chordia-ui 3.3.8 → 3.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AgentLiftCard.cjs.js.map +1 -1
- package/dist/AgentLiftCard.es.js +5 -3
- package/dist/AgentLiftCard.es.js.map +1 -1
- package/dist/CustomFilterChips.cjs.js.map +1 -1
- package/dist/CustomFilterChips.es.js +2 -1
- package/dist/CustomFilterChips.es.js.map +1 -1
- package/dist/FileUploadingState.cjs.js.map +1 -1
- package/dist/FileUploadingState.es.js +16 -10
- package/dist/FileUploadingState.es.js.map +1 -1
- package/dist/IntegrationCard.cjs.js.map +1 -1
- package/dist/IntegrationCard.es.js +3 -3
- package/dist/IntegrationCard.es.js.map +1 -1
- package/dist/SectionLabel.cjs.js.map +1 -1
- package/dist/SectionLabel.es.js.map +1 -1
- package/dist/SmallButton.cjs.js.map +1 -1
- package/dist/SmallButton.es.js +16 -16
- package/dist/SmallButton.es.js.map +1 -1
- package/dist/SummarySection.cjs.js.map +1 -1
- package/dist/SummarySection.es.js +11 -9
- package/dist/SummarySection.es.js.map +1 -1
- package/dist/TextInput.cjs.js.map +1 -1
- package/dist/TextInput.es.js.map +1 -1
- package/dist/Timeline.cjs.js.map +1 -1
- package/dist/Timeline.es.js +14 -8
- package/dist/Timeline.es.js.map +1 -1
- package/dist/Tooltip.cjs.js +1 -1
- package/dist/Tooltip.cjs.js.map +1 -1
- package/dist/Tooltip.es.js +31 -20
- package/dist/Tooltip.es.js.map +1 -1
- package/dist/TourGuideTooltip.cjs.js.map +1 -1
- package/dist/TourGuideTooltip.es.js +2 -1
- package/dist/TourGuideTooltip.es.js.map +1 -1
- package/dist/UpdatedInteractionRecording.cjs.js +1 -1
- package/dist/UpdatedInteractionRecording.cjs.js.map +1 -1
- package/dist/UpdatedInteractionRecording.es.js +79 -97
- package/dist/UpdatedInteractionRecording.es.js.map +1 -1
- package/dist/UploadInteraction.cjs.js.map +1 -1
- package/dist/UploadInteraction.es.js.map +1 -1
- package/dist/colors.cjs.js +2 -0
- package/dist/colors.cjs.js.map +1 -0
- package/dist/colors.es.js +2 -0
- package/dist/colors.es.js.map +1 -0
- package/dist/components/UpdatedInteractionDetails.cjs.js +10 -1
- package/dist/components/UpdatedInteractionDetails.cjs.js.map +1 -1
- package/dist/components/UpdatedInteractionDetails.es.js +1531 -9
- package/dist/components/UpdatedInteractionDetails.es.js.map +1 -1
- package/dist/components/chat.cjs.js +30 -1
- package/dist/components/chat.cjs.js.map +1 -1
- package/dist/components/chat.es.js +2222 -7
- package/dist/components/chat.es.js.map +1 -1
- package/dist/components/common.cjs.js +1 -1
- package/dist/components/common.es.js +32 -25
- package/dist/components/common.es.js.map +1 -1
- package/dist/components/data.cjs.js +1 -1
- package/dist/components/data.cjs.js.map +1 -1
- package/dist/components/data.es.js +1033 -4
- package/dist/components/data.es.js.map +1 -1
- package/dist/components/layout.cjs.js +3 -1
- package/dist/components/layout.cjs.js.map +1 -1
- package/dist/components/layout.es.js +1533 -8
- package/dist/components/layout.es.js.map +1 -1
- package/dist/components/login.cjs.js +1 -1
- package/dist/components/login.es.js +6 -2
- package/dist/components/login.es.js.map +1 -1
- package/dist/components/media.cjs.js +1 -1
- package/dist/components/media.cjs.js.map +1 -1
- package/dist/components/media.es.js +220 -6
- package/dist/components/media.es.js.map +1 -1
- package/dist/components/models.cjs.js +1 -1
- package/dist/components/models.cjs.js.map +1 -1
- package/dist/components/models.es.js +91 -2
- package/dist/components/models.es.js.map +1 -1
- package/dist/components/navigation.cjs.js +1 -1
- package/dist/components/navigation.cjs.js.map +1 -1
- package/dist/components/navigation.es.js +766 -7
- package/dist/components/navigation.es.js.map +1 -1
- package/dist/components/notifications.cjs.js +1 -1
- package/dist/components/notifications.cjs.js.map +1 -1
- package/dist/components/notifications.es.js +368 -3
- package/dist/components/notifications.es.js.map +1 -1
- package/dist/components/onboarding.cjs.js +1 -1
- package/dist/components/onboarding.cjs.js.map +1 -1
- package/dist/components/onboarding.es.js +985 -7
- package/dist/components/onboarding.es.js.map +1 -1
- package/dist/components/primitives.cjs.js +1 -1
- package/dist/components/primitives.cjs.js.map +1 -1
- package/dist/components/primitives.es.js +635 -25
- package/dist/components/primitives.es.js.map +1 -1
- package/dist/debugger-wc.cjs.js +4 -4
- package/dist/debugger-wc.cjs.js.map +1 -1
- package/dist/debugger-wc.es.js +15 -11
- package/dist/debugger-wc.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs2.js +2 -49
- package/dist/index.cjs2.js.map +1 -1
- package/dist/index.cjs3.js +50 -0
- package/dist/index.cjs3.js.map +1 -0
- package/dist/index.es.js +104 -99
- package/dist/index.es.js.map +1 -1
- package/dist/index.es2.js +2632 -1776
- package/dist/index.es2.js.map +1 -1
- package/dist/index.es3.js +1944 -0
- package/dist/index.es3.js.map +1 -0
- package/dist/pages/interactionDetails.cjs.js +1 -1
- package/dist/pages/interactionDetails.cjs.js.map +1 -1
- package/dist/pages/interactionDetails.es.js +70 -47
- package/dist/pages/interactionDetails.es.js.map +1 -1
- package/dist/sortable.esm.cjs.js +1 -1
- package/dist/sortable.esm.cjs.js.map +1 -1
- package/dist/sortable.esm.es.js +55 -53
- package/dist/sortable.esm.es.js.map +1 -1
- package/dist/{chordia-ui.css → style.css} +1 -1
- package/package.json +1 -1
- package/src/components/UpdatedInteractionDetails/UpdatedInteractionDetails.jsx +318 -77
- package/src/components/UpdatedInteractionDetails/UpdatedInteractionRecording.jsx +7 -17
- package/dist/ChartRenderer.cjs.js +0 -31
- package/dist/ChartRenderer.cjs.js.map +0 -1
- package/dist/ChartRenderer.es.js +0 -2210
- package/dist/ChartRenderer.es.js.map +0 -1
- package/dist/GettingStarted.cjs.js +0 -2
- package/dist/GettingStarted.cjs.js.map +0 -1
- package/dist/GettingStarted.es.js +0 -983
- package/dist/GettingStarted.es.js.map +0 -1
- package/dist/InlineConfirm.cjs.js +0 -2
- package/dist/InlineConfirm.cjs.js.map +0 -1
- package/dist/InlineConfirm.es.js +0 -618
- package/dist/InlineConfirm.es.js.map +0 -1
- package/dist/InteractionSummaryCard.cjs.js +0 -2
- package/dist/InteractionSummaryCard.cjs.js.map +0 -1
- package/dist/InteractionSummaryCard.es.js +0 -216
- package/dist/InteractionSummaryCard.es.js.map +0 -1
- package/dist/LoginPage.cjs.js +0 -3
- package/dist/LoginPage.cjs.js.map +0 -1
- package/dist/LoginPage.es.js +0 -2618
- package/dist/LoginPage.es.js.map +0 -1
- package/dist/NavigationBar.cjs.js +0 -2
- package/dist/NavigationBar.cjs.js.map +0 -1
- package/dist/NavigationBar.es.js +0 -762
- package/dist/NavigationBar.es.js.map +0 -1
- package/dist/NotificationPanel.cjs.js +0 -2
- package/dist/NotificationPanel.cjs.js.map +0 -1
- package/dist/NotificationPanel.es.js +0 -371
- package/dist/NotificationPanel.es.js.map +0 -1
- package/dist/OverlayPanel.cjs.js +0 -2
- package/dist/OverlayPanel.cjs.js.map +0 -1
- package/dist/OverlayPanel.es.js +0 -93
- package/dist/OverlayPanel.es.js.map +0 -1
- package/dist/SplitPane.cjs.js +0 -4
- package/dist/SplitPane.cjs.js.map +0 -1
- package/dist/SplitPane.es.js +0 -1531
- package/dist/SplitPane.es.js.map +0 -1
- package/dist/SummaryStatsPanel.cjs.js +0 -2
- package/dist/SummaryStatsPanel.cjs.js.map +0 -1
- package/dist/SummaryStatsPanel.es.js +0 -1027
- package/dist/SummaryStatsPanel.es.js.map +0 -1
- package/dist/UpdatedInteractionDetails.cjs.js +0 -11
- package/dist/UpdatedInteractionDetails.cjs.js.map +0 -1
- package/dist/UpdatedInteractionDetails.es.js +0 -1310
- package/dist/UpdatedInteractionDetails.es.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SummarySection.es.js","sources":["../src/components/common/ObservationCard.jsx","../src/components/common/SmallObservationCard.jsx","../src/components/common/ScoreDriverCard.jsx","../src/components/common/ScoreDriverCardVariant.jsx","../src/components/common/SignalCard.jsx","../src/components/common/ConditionCard.jsx","../src/components/common/ModelScoreCard.jsx","../src/components/common/SummarySection.jsx"],"sourcesContent":["\"use client\";\n\nimport React, { useState } from \"react\";\nimport { ChevronDown } from \"lucide-react\";\nimport DeviationIndicator from \"../primitives/DeviationIndicator\";\n\n/**\n * ObservationCard Component\n * Displays an observation card with expandable details, required conditions, tags, and implementation.\n * \n * @param {Object} data - The observation data object\n * @param {string} data.category - Category label\n * @param {string} data.title - Main title\n * @param {string} data.key - Technical key\n * @param {Object} data.metadata - Metadata object with valueType, allowed, version\n * @param {string} data.description - Description text\n * @param {Array} data.requiredConditions - Array of required condition objects\n * @param {Array} data.tags - Array of tag strings\n * @param {string} data.implementation - Implementation details\n * @param {string} data.railColor - Color for the left rail\n * @param {number} data.deviation - Deviation level (1-5)\n * @param {string} data.deviationDirection - Deviation direction ('up' or 'down')\n */\nexport default function ObservationCard({ data }) {\n const [isExpanded, setIsExpanded] = useState(false);\n\n return (\n <div\n className=\"flex rounded-2xl overflow-hidden bg-white/85 shadow-lg border border-slate-200/50\"\n style={{ maxWidth: \"900px\" }}\n >\n {/* Left color rail */}\n <div\n className=\"w-1.5 flex-shrink-0\"\n style={{ backgroundColor: data.railColor }}\n />\n\n {/* Main content */}\n <div className=\"flex-1\">\n {/* Summary (always visible) */}\n <button\n onClick={() => setIsExpanded(!isExpanded)}\n className=\"w-full text-left px-6 py-4 hover:bg-white/40 transition-colors\"\n >\n {/* Category label */}\n <div\n className=\"text-[11px] tracking-[0.16em] uppercase mb-2.5\"\n style={{ color: \"rgba(30, 33, 37, 0.36)\", fontWeight: 650 }}\n >\n {data.category}\n </div>\n\n {/* Title and Deviation */}\n <div className=\"flex items-start justify-between gap-4 mb-3\">\n <h2\n className=\"flex-1\"\n style={{\n fontSize: \"18px\",\n fontWeight: 720,\n letterSpacing: \"-0.01em\",\n lineHeight: 1.25,\n color: \"rgba(30, 33, 37, 0.92)\",\n }}\n >\n {data.title}\n </h2>\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"flex-end\",\n gap: \"8px\",\n }}\n >\n {data.deviation && (\n <DeviationIndicator\n level={data.deviation}\n color={data.railColor}\n direction={data.deviationDirection}\n />\n )}\n <ChevronDown\n size={18}\n style={{\n color: \"rgba(30, 33, 37, 0.42)\",\n flexShrink: 0,\n transform: isExpanded ? \"rotate(180deg)\" : \"rotate(0deg)\",\n transition: \"transform 0.2s ease\",\n }}\n />\n </div>\n </div>\n\n {/* Key */}\n <div\n className=\"text-[11.5px] font-mono\"\n style={{ color: \"rgba(30, 33, 37, 0.52)\" }}\n >\n {data.key}\n </div>\n\n {/* Metadata */}\n <div\n className=\"mt-1 text-[11.5px]\"\n style={{ color: \"rgba(30, 33, 37, 0.52)\" }}\n >\n value_type <strong>{data.metadata.valueType}</strong>\n {\" · \"} allowed{\" \"}\n {data.metadata.allowed.map((val, i) => (\n <span key={val}>\n <strong>{val}</strong>\n {i < data.metadata.allowed.length - 1 && \", \"}\n </span>\n ))}\n {\" · \"} version <strong>{data.metadata.version}</strong>\n </div>\n\n {/* Description */}\n <p\n className=\"mt-3 text-[13px] leading-relaxed\"\n style={{ color: \"rgba(30, 33, 37, 0.68)\" }}\n >\n {data.description}\n </p>\n\n {/* Expand hint */}\n <p\n className=\"mt-3 text-xs\"\n style={{ color: \"rgba(30, 33, 37, 0.56)\" }}\n >\n {isExpanded\n ? \"Collapse to hide details\"\n : \"Expand to view required conditions and implementation details.\"}\n </p>\n </button>\n\n {/* Expanded content */}\n {isExpanded && (\n <div className=\"border-t border-slate-200/40 bg-white/60 px-6 py-4\">\n {/* Required conditions */}\n <div\n className=\"text-[11px] tracking-[0.16em] uppercase mb-3\"\n style={{ color: \"rgba(30, 33, 37, 0.36)\", fontWeight: 650 }}\n >\n Required conditions\n </div>\n <div className=\"flex flex-col gap-3 mb-5\">\n {data.requiredConditions.map((condition) => (\n <div\n key={condition.technicalName}\n className=\"flex rounded-xl overflow-hidden bg-white/82 border border-slate-200/50\"\n >\n <div\n className=\"w-1.5 flex-shrink-0\"\n style={{ backgroundColor: condition.railColor }}\n />\n <div className=\"flex-1 px-4 py-3\">\n <div\n className=\"text-[13px]\"\n style={{\n fontWeight: 680,\n lineHeight: 1.2,\n color: \"rgba(30, 33, 37, 0.92)\",\n }}\n >\n {condition.title}\n </div>\n <div\n className=\"mt-1 text-[11.5px] font-mono\"\n style={{ color: \"rgba(30, 33, 37, 0.52)\" }}\n >\n {condition.technicalName}\n </div>\n <div\n className=\"mt-1 text-[11.5px]\"\n style={{ color: \"rgba(30, 33, 37, 0.52)\" }}\n >\n role <strong>{condition.role}</strong>\n </div>\n </div>\n </div>\n ))}\n </div>\n\n {/* Tags */}\n <div\n className=\"text-[11px] tracking-[0.16em] uppercase mb-2.5\"\n style={{ color: \"rgba(30, 33, 37, 0.36)\", fontWeight: 650 }}\n >\n Tags\n </div>\n <div className=\"flex flex-wrap gap-2 mb-5\">\n {data.tags.map((tag) => (\n <span\n key={tag}\n className=\"text-[11px] px-2 py-0.5 rounded-full border font-mono\"\n style={{\n borderColor: \"rgba(30, 33, 37, 0.50)\",\n background: \"rgba(255, 255, 255, 0.70)\",\n color: \"rgba(30, 33, 37, 0.60)\",\n }}\n >\n {tag}\n </span>\n ))}\n </div>\n\n {/* Implementation */}\n <div\n className=\"text-[11px] tracking-[0.16em] uppercase mb-2.5\"\n style={{ color: \"rgba(30, 33, 37, 0.36)\", fontWeight: 650 }}\n >\n Implementation\n </div>\n <div\n className=\"text-[12.5px] leading-relaxed font-mono\"\n style={{ color: \"rgba(30, 33, 37, 0.62)\" }}\n >\n {data.implementation}\n </div>\n </div>\n )}\n </div>\n </div>\n );\n}\n","\"use client\";\n\nimport React, { useState } from \"react\";\nimport { ChevronDown } from \"lucide-react\";\nimport { Tooltip, TooltipTrigger, TooltipContent } from \"../primitives/Tooltip\";\nimport DeviationIndicator from \"../primitives/DeviationIndicator\";\n\n/**\n * SmallObservationCard Component\n * Displays a compact observation card with expandable nested observations.\n * Shows category, statement, technical key, metrics (value, confidence, relevance),\n * timestamps, and deviation indicator.\n */\nexport default function SmallObservationCard({\n category,\n statement,\n technicalKey,\n value,\n confidence,\n relevance,\n timestamps = [],\n railColor,\n expanded = false,\n nestedObservations = [],\n onPlayTimestamp,\n onToggle,\n selected = false,\n onClick,\n deviation,\n deviationDirection,\n}) {\n const [isHovered, setIsHovered] = useState(false);\n\n return (\n <div\n style={{\n position: \"relative\",\n display: \"flex\",\n border: `1px solid ${\n selected\n ? \"rgba(94, 136, 176, 0.35)\"\n : isHovered\n ? \"rgba(52, 58, 64, 0.18)\"\n : \"rgba(52, 58, 64, 0.12)\"\n }`,\n borderRadius: \"16px\",\n overflow: \"hidden\",\n background: selected\n ? \"rgba(231, 212, 162, 0.18)\"\n : isHovered\n ? \"rgba(231, 212, 162, 0.12)\"\n : \"rgba(255, 255, 255, 0.85)\",\n boxShadow: selected\n ? \"0 12px 32px rgba(30, 33, 37, 0.20), 0 4px 12px rgba(94, 136, 176, 0.15)\"\n : isHovered\n ? \"0 8px 18px rgba(30, 33, 37, 0.12)\"\n : \"0 6px 14px rgba(30, 33, 37, 0.08)\",\n transform: selected ? \"translateY(-3px)\" : \"none\",\n transition: \"all 0.2s ease-out\",\n cursor: onClick || onToggle ? \"pointer\" : \"default\",\n }}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n onClick={onClick || onToggle}\n >\n {/* Left color rail */}\n <div style={{ width: \"5px\", background: railColor }}></div>\n\n {/* Content area */}\n <div style={{ flex: 1 }}>\n {/* Header (always visible) */}\n <div style={{ padding: \"14px 16px 12px\" }}>\n <div style={{ display: \"flex\", gap: \"12px\" }}>\n {/* Left side: Main content */}\n <div style={{ flex: 1, minWidth: 0 }}>\n {/* Category label */}\n <div\n className=\"text-[11px] tracking-[0.16em] uppercase mb-2\"\n style={{ color: \"rgba(30, 33, 37, 0.36)\", fontWeight: 650 }}\n >\n {category}\n </div>\n\n {/* Statement */}\n <div\n style={{\n fontSize: \"16px\",\n fontWeight: 720,\n letterSpacing: \"-0.01em\",\n color: \"rgba(30, 33, 37, 0.92)\",\n lineHeight: 1.3,\n }}\n >\n {statement}\n </div>\n\n {/* Technical key */}\n <div\n style={{\n marginTop: \"6px\",\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n fontFamily: \"ui-monospace, monospace\",\n }}\n >\n {technicalKey}\n </div>\n\n {/* Metrics */}\n <div\n style={{\n marginTop: \"3px\",\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n display: \"flex\",\n alignItems: \"center\",\n flexWrap: \"wrap\",\n gap: \"8px\",\n }}\n >\n <span style={{ display: \"flex\", alignItems: \"center\", gap: \"4px\" }}>\n <span style={{ color: \"rgba(94, 136, 176, 0.65)\" }}>value</span>{\" \"}\n <strong style={{ color: \"rgba(94, 136, 176, 0.85)\" }}>{value}</strong>\n </span>\n <span>·</span>\n <span style={{ display: \"flex\", alignItems: \"center\", gap: \"4px\" }}>\n <Tooltip>\n <TooltipTrigger asChild>\n <span\n style={{\n color: \"rgba(184, 156, 106, 0.65)\",\n cursor: \"help\",\n borderBottom: \"1px dotted rgba(184, 156, 106, 0.35)\",\n }}\n >\n conf\n </span>\n </TooltipTrigger>\n <TooltipContent>\n <div>\n <div style={{ fontWeight: 600, marginBottom: \"4px\" }}>\n Confidence measures evidence.\n </div>\n <div style={{ color: \"rgba(255, 255, 255, 0.85)\" }}>\n How strongly the evidence supports this observation in this\n session.\n </div>\n </div>\n </TooltipContent>\n </Tooltip>{\" \"}\n <strong style={{ color: `rgba(184, 156, 106, ${confidence})` }}>\n {confidence.toFixed(2)}\n </strong>\n <span\n style={{\n display: \"inline-block\",\n width: \"45px\",\n height: \"3px\",\n background: \"rgba(30, 33, 37, 0.12)\",\n borderRadius: \"2px\",\n position: \"relative\",\n overflow: \"hidden\",\n }}\n >\n <span\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n height: \"100%\",\n width: `${confidence * 100}%`,\n background: `rgba(184, 156, 106, ${confidence})`,\n borderRadius: \"2px\",\n transition: \"width 0.3s ease\",\n }}\n />\n </span>\n </span>\n {relevance && (\n <>\n <span>·</span>\n <span style={{ display: \"flex\", alignItems: \"center\", gap: \"4px\" }}>\n <span style={{ color: \"rgba(139, 123, 168, 0.65)\" }}>rel</span>{\" \"}\n <strong style={{ color: \"rgba(139, 123, 168, 0.85)\" }}>\n {relevance}\n </strong>\n </span>\n </>\n )}\n </div>\n\n {/* Timestamp pills */}\n {timestamps.length > 0 && (\n <div\n style={{\n marginTop: \"4px\",\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: \"6px\",\n alignItems: \"center\",\n }}\n >\n <span style={{ fontSize: \"11px\", color: \"rgba(30, 33, 37, 0.52)\" }}>\n @\n </span>\n {timestamps.map((ts, i) => (\n <button\n key={i}\n onClick={(e) => {\n e.stopPropagation();\n if (onPlayTimestamp) {\n onPlayTimestamp(ts.start, ts.end);\n }\n }}\n style={{\n fontSize: \"11px\",\n padding: \"2px 6px\",\n borderRadius: \"999px\",\n border: \"1px solid rgba(52, 58, 64, 0.16)\",\n background: \"rgba(255, 255, 255, 0.70)\",\n color: \"rgba(30, 33, 37, 0.60)\",\n fontFamily: \"ui-monospace, monospace\",\n cursor: \"pointer\",\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: \"4px\",\n transition: \"all 0.15s ease\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.background = \"rgba(255, 255, 255, 0.95)\";\n e.currentTarget.style.borderColor = \"rgba(52, 58, 64, 0.24)\";\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = \"rgba(255, 255, 255, 0.70)\";\n e.currentTarget.style.borderColor = \"rgba(52, 58, 64, 0.16)\";\n }}\n >\n <svg\n width=\"9\"\n height=\"9\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M3 2.5L9 6L3 9.5V2.5Z\" fill=\"currentColor\" />\n </svg>\n {ts.start}–{ts.end}\n </button>\n ))}\n </div>\n )}\n </div>\n\n {/* Right side: Deviation indicator only */}\n {deviation && (\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n flexShrink: 0,\n }}\n >\n <DeviationIndicator\n level={deviation}\n color={railColor}\n direction={deviationDirection}\n />\n </div>\n )}\n </div>\n\n {/* Chevron at bottom right */}\n {nestedObservations.length > 0 && (onToggle || onClick) && (\n <div\n style={{\n marginTop: \"8px\",\n display: \"flex\",\n justifyContent: \"flex-end\",\n paddingTop: \"8px\",\n borderTop: \"1px solid rgba(52, 58, 64, 0.08)\",\n }}\n >\n <div\n style={{\n color: \"rgba(30, 33, 37, 0.42)\",\n display: \"flex\",\n alignItems: \"center\",\n gap: \"6px\",\n }}\n >\n <span\n style={{\n fontSize: \"11px\",\n fontWeight: 600,\n color: \"rgba(30, 33, 37, 0.52)\",\n }}\n >\n {expanded ? \"Hide\" : \"Show\"} nested observations\n </span>\n <ChevronDown\n size={18}\n style={{\n transform: expanded ? \"rotate(180deg)\" : \"rotate(0deg)\",\n transition: \"transform 0.2s ease\",\n }}\n />\n </div>\n </div>\n )}\n </div>\n\n {/* Supporting conditions (expanded state) */}\n {expanded && nestedObservations.length > 0 && (\n <div\n style={{\n borderTop: \"1px solid rgba(52, 58, 64, 0.10)\",\n background: \"rgba(255, 255, 255, 0.60)\",\n padding: \"14px 16px 16px\",\n }}\n >\n <div\n className=\"text-[11px] tracking-[0.16em] uppercase mb-3\"\n style={{ color: \"rgba(30, 33, 37, 0.36)\", fontWeight: 650 }}\n >\n Supporting conditions\n </div>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: \"12px\" }}>\n {nestedObservations.map((condition, i) => {\n // Ensure all required props are present\n if (!condition || !condition.category || !condition.statement || !condition.technicalKey) {\n return null;\n }\n return (\n <SmallObservationCard\n key={i}\n category={condition.category || \"Condition\"}\n statement={condition.statement || \"\"}\n technicalKey={condition.technicalKey || \"\"}\n value={condition.value || \"present\"}\n confidence={condition.confidence || 0.8}\n relevance={condition.relevance}\n timestamps={condition.timestamps || []}\n railColor={condition.railColor || \"#6B7C93\"}\n deviation={condition.deviation}\n deviationDirection={condition.deviationDirection}\n onPlayTimestamp={onPlayTimestamp}\n />\n );\n })}\n </div>\n </div>\n )}\n </div>\n </div>\n );\n}\n","\"use client\";\n\nimport React, { useState } from \"react\";\nimport DeviationIndicator from \"../primitives/DeviationIndicator\";\nimport { Tooltip, TooltipTrigger, TooltipContent } from \"../primitives/Tooltip\";\n\n/**\n * ScoreDriverCard Component\n * Displays a score driver condition with state, confidence, probability, weight, and timestamps.\n * \n * @param {Object} props - Component props\n * @param {Object} props.driver - Score driver object\n * @param {string} props.driver.title - Condition title\n * @param {string} props.driver.technicalName - Technical/internal key\n * @param {string} props.driver.state - State: 'present', 'absent', or 'unknown'\n * @param {number} props.driver.confidence - Confidence level (0-1)\n * @param {number} props.driver.probability - Probability level (0-1)\n * @param {number} props.driver.weight - Weight contribution (+ or -)\n * @param {string} props.driver.railColor - Color for the left rail\n * @param {Array} props.driver.timestamps - Array of timestamp objects with start and end\n * @param {number} props.driver.deviation - Deviation level (1-5)\n * @param {string} props.driver.deviationDirection - Deviation direction ('up' or 'down')\n * @param {Function} props.onPlayTimestamp - Callback when play button is clicked\n * @param {boolean} props.selected - Whether the card is selected\n * @param {Function} props.onClick - Click handler for the card\n * @param {boolean} props.showWeight - Whether to show the weight\n * @param {boolean} props.hideMetrics - Whether to hide the metrics section\n */\nexport default function ScoreDriverCard({\n driver,\n onPlayTimestamp,\n selected = false,\n onClick,\n showWeight = false,\n hideMetrics = false,\n}) {\n const [isHovered, setIsHovered] = useState(false);\n const isAbsent = driver.state === \"absent\";\n const hasTimestamps = driver.timestamps && driver.timestamps.length > 0;\n\n const getCardBackground = () => {\n if (isAbsent) {\n return isHovered\n ? \"linear-gradient(135deg, rgba(30, 33, 37, 0.06) 0%, rgba(30, 33, 37, 0.06) 35%, rgba(255, 255, 255, 0.82) 35%, rgba(255, 255, 255, 0.82) 100%)\"\n : \"linear-gradient(135deg, rgba(30, 33, 37, 0.04) 0%, rgba(30, 33, 37, 0.04) 35%, rgba(255, 255, 255, 0.82) 35%, rgba(255, 255, 255, 0.82) 100%)\";\n }\n if (selected) {\n return \"rgba(231, 212, 162, 0.18)\";\n }\n if (isHovered) {\n return \"rgba(231, 212, 162, 0.12)\";\n }\n return \"rgba(255, 255, 255, 0.82)\";\n };\n\n return (\n <div\n style={{\n position: \"relative\",\n display: \"flex\",\n border: `1px solid ${\n selected\n ? \"rgba(94, 136, 176, 0.35)\"\n : isHovered\n ? \"rgba(52, 58, 64, 0.18)\"\n : \"rgba(52, 58, 64, 0.12)\"\n }`,\n borderRadius: \"12px\",\n overflow: \"hidden\",\n background: getCardBackground(),\n boxShadow: selected\n ? \"0 8px 24px rgba(30, 33, 37, 0.18), 0 2px 8px rgba(94, 136, 176, 0.12)\"\n : \"0 2px 4px rgba(30, 33, 37, 0.06)\",\n transform: selected ? \"translateY(-2px)\" : \"none\",\n cursor: onClick ? \"pointer\" : \"default\",\n transition: \"all 0.2s ease-out\",\n }}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n onClick={onClick}\n >\n {/* Left rail = cluster color */}\n <div style={{ width: \"5px\", background: driver.railColor }}></div>\n\n <div style={{ flex: 1, padding: \"10px 12px\" }}>\n {/* Title and Deviation */}\n <div\n style={{\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"flex-start\",\n gap: \"8px\",\n marginBottom: driver.deviation ? \"4px\" : \"0\",\n }}\n >\n <div\n style={{\n flex: 1,\n fontSize: \"13px\",\n fontWeight: 680,\n color: isAbsent\n ? \"rgba(30, 33, 37, 0.70)\"\n : \"rgba(30, 33, 37, 0.92)\",\n lineHeight: 1.2,\n textDecoration: isAbsent ? \"line-through\" : \"none\",\n textDecorationThickness: isAbsent ? \"2px\" : undefined,\n }}\n >\n {driver.title}\n </div>\n {driver.deviation && (\n <DeviationIndicator\n level={driver.deviation}\n color={driver.railColor}\n direction={driver.deviationDirection}\n />\n )}\n </div>\n\n {/* Technical name */}\n <div\n style={{\n marginTop: \"3px\",\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n fontFamily: \"ui-monospace, monospace\",\n }}\n >\n {driver.technicalName}\n </div>\n\n {/* Metrics */}\n {!hideMetrics && (\n <div\n style={{\n marginTop: \"3px\",\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n display: \"flex\",\n alignItems: \"center\",\n flexWrap: \"wrap\",\n gap: \"8px\",\n }}\n >\n <span style={{ display: \"flex\", alignItems: \"center\", gap: \"4px\" }}>\n <Tooltip>\n <TooltipTrigger asChild>\n <span\n style={{\n color: \"rgba(94, 136, 176, 0.65)\",\n cursor: \"help\",\n borderBottom: \"1px dotted rgba(94, 136, 176, 0.35)\",\n }}\n >\n state\n </span>\n </TooltipTrigger>\n <TooltipContent side=\"top\" className=\"max-w-[320px]\">\n <div style={{ fontSize: \"11px\", lineHeight: 1.5 }}>\n <div\n style={{\n fontWeight: 600,\n marginBottom: \"6px\",\n }}\n >\n Condition states describe what the evidence supports.\n </div>\n <div\n style={{\n marginBottom: \"8px\",\n color: \"rgba(255, 255, 255, 0.85)\",\n }}\n >\n <strong>Present</strong> — Clear evidence shows this condition\n occurred in the session.\n </div>\n <div\n style={{\n marginBottom: \"8px\",\n color: \"rgba(255, 255, 255, 0.85)\",\n }}\n >\n <strong>Absent</strong> — Evidence indicates this condition did\n not occur.\n </div>\n <div style={{ color: \"rgba(255, 255, 255, 0.85)\" }}>\n <strong>Unknown</strong> — There {'isn\\'t'} enough evidence to decide\n either way.\n </div>\n </div>\n </TooltipContent>\n </Tooltip>\n {\" \"}\n <strong\n style={{\n color: `rgba(94, 136, 176, ${\n driver.state === \"present\"\n ? 0.85\n : driver.state === \"absent\"\n ? 0.45\n : 0.65\n })`,\n }}\n >\n {driver.state}\n </strong>\n </span>\n <span>·</span>\n <span style={{ display: \"flex\", alignItems: \"center\", gap: \"4px\" }}>\n <Tooltip>\n <TooltipTrigger asChild>\n <span\n style={{\n color: \"rgba(184, 156, 106, 0.65)\",\n cursor: \"help\",\n borderBottom: \"1px dotted rgba(184, 156, 106, 0.35)\",\n }}\n >\n conf\n </span>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n <div style={{ fontSize: \"11px\", lineHeight: 1.5 }}>\n <div\n style={{\n fontWeight: 600,\n marginBottom: \"4px\",\n }}\n >\n Confidence measures evidence.\n </div>\n <div style={{ color: \"rgba(255, 255, 255, 0.85)\" }}>\n How strongly the evidence supports this observation in this\n session.\n </div>\n </div>\n </TooltipContent>\n </Tooltip>\n {\" \"}\n <strong\n style={{\n color: `rgba(184, 156, 106, ${driver.confidence})`,\n }}\n >\n {driver.confidence.toFixed(2)}\n </strong>\n <span\n style={{\n display: \"inline-block\",\n width: \"45px\",\n height: \"3px\",\n background: \"rgba(30, 33, 37, 0.12)\",\n borderRadius: \"2px\",\n position: \"relative\",\n overflow: \"hidden\",\n }}\n >\n <span\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n height: \"100%\",\n width: `${driver.confidence * 100}%`,\n background: `rgba(184, 156, 106, ${driver.confidence})`,\n borderRadius: \"2px\",\n transition: \"width 0.3s ease\",\n }}\n />\n </span>\n </span>\n <span>·</span>\n <span style={{ display: \"flex\", alignItems: \"center\", gap: \"4px\" }}>\n <Tooltip>\n <TooltipTrigger asChild>\n <span\n style={{\n color: \"rgba(75, 135, 125, 0.75)\",\n cursor: \"help\",\n borderBottom: \"1px dotted rgba(75, 135, 125, 0.45)\",\n }}\n >\n prob\n </span>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n <div style={{ fontSize: \"11px\", lineHeight: 1.5 }}>\n <div\n style={{\n fontWeight: 600,\n marginBottom: \"4px\",\n }}\n >\n Probability measures expectation.\n </div>\n <div style={{ color: \"rgba(255, 255, 255, 0.85)\" }}>\n How likely this observation is given past sessions and current\n evidence.\n </div>\n </div>\n </TooltipContent>\n </Tooltip>\n {\" \"}\n <strong\n style={{\n color: `rgba(75, 135, 125, ${Math.max(driver.probability, 0.75)})`,\n }}\n >\n {driver.probability.toFixed(2)}\n </strong>\n <span\n style={{\n display: \"inline-block\",\n width: \"45px\",\n height: \"3px\",\n background: \"rgba(30, 33, 37, 0.12)\",\n borderRadius: \"2px\",\n position: \"relative\",\n overflow: \"hidden\",\n }}\n >\n <span\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n height: \"100%\",\n width: `${driver.probability * 100}%`,\n background: `rgba(75, 135, 125, ${Math.max(\n driver.probability,\n 0.75\n )})`,\n borderRadius: \"2px\",\n transition: \"width 0.3s ease\",\n }}\n />\n </span>\n </span>\n {showWeight && <span>·</span>}\n {showWeight && (\n <span style={{ display: \"flex\", alignItems: \"center\", gap: \"4px\" }}>\n <span style={{ color: \"rgba(107, 123, 147, 0.65)\" }}>weight</span>{\" \"}\n <strong style={{ color: \"rgba(107, 123, 147, 0.85)\" }}>\n {driver.weight > 0 ? \"+\" : \"\"}\n {driver.weight}\n </strong>\n </span>\n )}\n </div>\n )}\n\n {/* Timestamps or fallback */}\n {hasTimestamps ? (\n <div\n style={{\n marginTop: \"4px\",\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: \"6px\",\n alignItems: \"center\",\n }}\n >\n <span\n style={{ fontSize: \"11px\", color: \"rgba(30, 33, 37, 0.52)\" }}\n >\n @\n </span>\n {driver.timestamps.map((ts, i) => (\n <button\n key={i}\n type=\"button\"\n aria-label={`Play ${ts.start}–${ts.end}`}\n onClick={(e) => {\n e.stopPropagation();\n if (onPlayTimestamp) {\n onPlayTimestamp(ts.start, ts.end);\n }\n }}\n style={{\n fontSize: \"11px\",\n padding: \"2px 6px\",\n borderRadius: \"999px\",\n border: \"1px solid rgba(52, 58, 64, 0.16)\",\n background: \"rgba(255, 255, 255, 0.70)\",\n color: \"rgba(30, 33, 37, 0.60)\",\n fontFamily: \"ui-monospace, monospace\",\n cursor: \"pointer\",\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: \"4px\",\n transition: \"all 0.15s ease\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.background = \"rgba(255, 255, 255, 0.95)\";\n e.currentTarget.style.borderColor = \"rgba(52, 58, 64, 0.24)\";\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = \"rgba(255, 255, 255, 0.70)\";\n e.currentTarget.style.borderColor = \"rgba(52, 58, 64, 0.16)\";\n }}\n >\n <svg\n width=\"9\"\n height=\"9\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3 2.5L9 6L3 9.5V2.5Z\"\n fill=\"currentColor\"\n />\n </svg>\n {ts.start}–{ts.end}\n </button>\n ))}\n </div>\n ) : (\n <div\n style={{\n marginTop: \"4px\",\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n }}\n >\n @ <strong>timestamps checked</strong>\n </div>\n )}\n </div>\n </div>\n );\n}\n","\"use client\";\n\nimport React, { useState } from \"react\";\nimport { Play } from \"lucide-react\";\nimport DeviationIndicator from \"../primitives/DeviationIndicator\";\n\n/**\n * ScoreDriverCardVariant Component\n * Demonstrates different visual variants for displaying absent states in score driver cards.\n */\nexport default function ScoreDriverCardVariant({\n driver,\n variant,\n onPlayTimestamp,\n}) {\n const [isHovered, setIsHovered] = useState(false);\n const isAbsent = driver.state === \"absent\";\n const hasTimestamps = driver.timestamps && driver.timestamps.length > 0;\n\n // Helper to desaturate a color\n const desaturateColor = (hex) => {\n const r = parseInt(hex.slice(1, 3), 16);\n const g = parseInt(hex.slice(3, 5), 16);\n const b = parseInt(hex.slice(5, 7), 16);\n const gray = Math.round(r * 0.299 + g * 0.587 + b * 0.114);\n const newR = Math.round(gray * 0.7 + r * 0.3);\n const newG = Math.round(gray * 0.7 + g * 0.3);\n const newB = Math.round(gray * 0.7 + b * 0.3);\n return `#${newR.toString(16).padStart(2, \"0\")}${newG\n .toString(16)\n .padStart(2, \"0\")}${newB.toString(16).padStart(2, \"0\")}`;\n };\n\n const getTitleStyle = () => {\n if (!isAbsent) return {};\n\n switch (variant) {\n case \"strikethrough\":\n return {\n textDecoration: \"line-through\",\n textDecorationThickness: \"2px\",\n color: \"rgba(30, 33, 37, 0.70)\",\n };\n case \"opacity\":\n return {\n opacity: 0.45,\n };\n case \"badge\":\n case \"background\":\n case \"desaturated-rail\":\n return {};\n default:\n return {};\n }\n };\n\n const getCardStyle = () => {\n if (isAbsent && variant === \"background\") {\n return {\n background: isHovered\n ? \"rgba(30, 33, 37, 0.06)\"\n : \"rgba(30, 33, 37, 0.03)\",\n };\n }\n if (isAbsent && variant === \"angled-background-tl\") {\n return {\n background: isHovered\n ? \"linear-gradient(135deg, rgba(30, 33, 37, 0.06) 0%, rgba(30, 33, 37, 0.06) 35%, rgba(255, 255, 255, 0.82) 35%, rgba(255, 255, 255, 0.82) 100%)\"\n : \"linear-gradient(135deg, rgba(30, 33, 37, 0.04) 0%, rgba(30, 33, 37, 0.04) 35%, rgba(255, 255, 255, 0.82) 35%, rgba(255, 255, 255, 0.82) 100%)\",\n };\n }\n if (isAbsent && variant === \"angled-background-tr\") {\n return {\n background: isHovered\n ? \"linear-gradient(225deg, rgba(30, 33, 37, 0.06) 0%, rgba(30, 33, 37, 0.06) 35%, rgba(255, 255, 255, 0.82) 35%, rgba(255, 255, 255, 0.82) 100%)\"\n : \"linear-gradient(225deg, rgba(30, 33, 37, 0.04) 0%, rgba(30, 33, 37, 0.04) 35%, rgba(255, 255, 255, 0.82) 35%, rgba(255, 255, 255, 0.82) 100%)\",\n };\n }\n return {\n background: isHovered\n ? \"rgba(231, 212, 162, 0.12)\"\n : \"rgba(255, 255, 255, 0.82)\",\n };\n };\n\n const getRailColor = () => {\n if (isAbsent && variant === \"desaturated-rail\") {\n return desaturateColor(driver.railColor);\n }\n return driver.railColor;\n };\n\n const getRailOpacity = () => {\n if (isAbsent && variant === \"desaturated-rail\") {\n return 0.4;\n }\n return 1;\n };\n\n return (\n <div\n style={{\n position: \"relative\",\n display: \"flex\",\n border: `1px solid ${\n isHovered ? \"rgba(52, 58, 64, 0.18)\" : \"rgba(52, 58, 64, 0.12)\"\n }`,\n borderRadius: \"12px\",\n overflow: \"hidden\",\n ...getCardStyle(),\n boxShadow: \"0 2px 4px rgba(30, 33, 37, 0.06)\",\n transition: \"all 0.2s ease-out\",\n }}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n {/* Left rail = cluster color */}\n <div\n style={{\n width: \"5px\",\n background: getRailColor(),\n opacity: getRailOpacity(),\n }}\n ></div>\n <div style={{ flex: 1, padding: \"10px 12px\" }}>\n {/* Title */}\n <div\n style={{\n fontSize: \"13px\",\n fontWeight: 680,\n color: \"rgba(30, 33, 37, 0.92)\",\n lineHeight: 1.2,\n display: \"flex\",\n alignItems: \"center\",\n gap: \"6px\",\n ...getTitleStyle(),\n }}\n >\n {driver.title}\n {isAbsent && variant === \"badge\" && (\n <span\n style={{\n fontSize: \"9px\",\n padding: \"2px 6px\",\n borderRadius: \"4px\",\n background: \"rgba(30, 33, 37, 0.08)\",\n color: \"rgba(30, 33, 37, 0.60)\",\n fontWeight: 600,\n textDecoration: \"none\",\n }}\n >\n not detected\n </span>\n )}\n </div>\n\n {/* Technical name */}\n <div\n style={{\n marginTop: \"3px\",\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n fontFamily: \"ui-monospace, monospace\",\n ...(isAbsent && variant === \"opacity\" && { opacity: 1 }),\n }}\n >\n {driver.technicalName}\n </div>\n\n {/* Metrics */}\n <div\n style={{\n marginTop: \"3px\",\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n display: \"flex\",\n alignItems: \"center\",\n flexWrap: \"wrap\",\n gap: \"8px\",\n ...(isAbsent && variant === \"opacity\" && { opacity: 1 }),\n }}\n >\n <span style={{ display: \"flex\", alignItems: \"center\", gap: \"4px\" }}>\n state <strong>{driver.state}</strong>\n </span>\n <span>·</span>\n <span style={{ display: \"flex\", alignItems: \"center\", gap: \"4px\" }}>\n conf <strong>{driver.confidence.toFixed(2)}</strong>\n <span\n style={{\n display: \"inline-block\",\n width: \"45px\",\n height: \"3px\",\n background: \"rgba(30, 33, 37, 0.12)\",\n borderRadius: \"2px\",\n position: \"relative\",\n overflow: \"hidden\",\n }}\n >\n <span\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n height: \"100%\",\n width: `${driver.confidence * 100}%`,\n background: \"rgba(30, 33, 37, 0.45)\",\n borderRadius: \"2px\",\n transition: \"width 0.3s ease\",\n }}\n />\n </span>\n </span>\n <span>·</span>\n <span style={{ display: \"flex\", alignItems: \"center\", gap: \"4px\" }}>\n prob <strong>{driver.probability.toFixed(2)}</strong>\n <span\n style={{\n display: \"inline-block\",\n width: \"45px\",\n height: \"3px\",\n background: \"rgba(30, 33, 37, 0.12)\",\n borderRadius: \"2px\",\n position: \"relative\",\n overflow: \"hidden\",\n }}\n >\n <span\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n height: \"100%\",\n width: `${driver.probability * 100}%`,\n background: \"rgba(30, 33, 37, 0.45)\",\n borderRadius: \"2px\",\n transition: \"width 0.3s ease\",\n }}\n />\n </span>\n </span>\n </div>\n\n {/* Timestamps or fallback */}\n {hasTimestamps ? (\n <div\n style={{\n marginTop: \"4px\",\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: \"6px\",\n alignItems: \"center\",\n }}\n >\n <span\n style={{ fontSize: \"11px\", color: \"rgba(30, 33, 37, 0.52)\" }}\n >\n @\n </span>\n {driver.timestamps.map((ts, i) => (\n <span\n key={i}\n style={{ display: \"flex\", gap: \"6px\", alignItems: \"center\" }}\n >\n <span\n style={{\n fontSize: \"11px\",\n padding: \"2px 6px\",\n borderRadius: \"999px\",\n border: \"1px solid rgba(52, 58, 64, 0.16)\",\n background: \"rgba(255, 255, 255, 0.70)\",\n color: \"rgba(30, 33, 37, 0.60)\",\n fontFamily: \"ui-monospace, monospace\",\n }}\n >\n {ts.start}–{ts.end}\n </span>\n <button\n type=\"button\"\n aria-label={`Play ${ts.start}–${ts.end}`}\n onClick={() => onPlayTimestamp?.(ts.start, ts.end)}\n style={{\n width: \"18px\",\n height: \"18px\",\n borderRadius: \"999px\",\n border: \"1px solid rgba(52, 58, 64, 0.22)\",\n background: \"rgba(255, 255, 255, 0.80)\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n padding: 0,\n cursor: \"pointer\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.background = \"rgba(255, 255, 255, 1)\";\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background =\n \"rgba(255, 255, 255, 0.80)\";\n }}\n >\n <Play\n size={8}\n style={{\n marginLeft: \"1px\",\n color: \"rgba(30, 33, 37, 0.70)\",\n }}\n fill=\"rgba(30, 33, 37, 0.70)\"\n />\n </button>\n </span>\n ))}\n </div>\n ) : (\n <div\n style={{\n marginTop: \"4px\",\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n ...(isAbsent && variant === \"opacity\" && { opacity: 1 }),\n }}\n >\n @ <strong>timestamps checked</strong>\n </div>\n )}\n\n {/* Deviation Indicator */}\n {driver.deviation && (\n <div\n style={{\n marginTop: \"6px\",\n display: \"flex\",\n ...(isAbsent && variant === \"opacity\" && { opacity: 1 }),\n }}\n >\n <DeviationIndicator\n level={driver.deviation}\n color={driver.railColor}\n direction={driver.deviationDirection}\n />\n </div>\n )}\n </div>\n </div>\n );\n}\n","\"use client\";\n\nimport React, { useState } from \"react\";\nimport { ChevronDown, Play, Pause } from \"lucide-react\";\nimport { Tooltip, TooltipTrigger, TooltipContent } from \"../primitives/Tooltip\";\nimport DeviationIndicator from \"../primitives/DeviationIndicator\";\n\n/**\n * SignalCard Component\n * Displays a signal card with probability, confidence, and contributing observations.\n */\nexport default function SignalCard({\n signal,\n onExpandObservation,\n activeObservationId = null,\n isObservationPlaying = false,\n showObservationPlaybackControls = true,\n useFallbackObservationDuration = true,\n}) {\n const [isExpanded, setIsExpanded] = useState(false);\n\n const formatObservationTime = (startMs, endMs) => {\n const start = Number(startMs);\n const end = Number(endMs);\n if (!Number.isFinite(start) || !Number.isFinite(end) || end <= start) return null;\n const format = (ms) => {\n const totalSeconds = Math.floor(ms / 1000);\n const minutes = Math.floor(totalSeconds / 60)\n .toString()\n .padStart(2, \"0\");\n const seconds = (totalSeconds % 60).toString().padStart(2, \"0\");\n return `${minutes}:${seconds}`;\n };\n return `${format(start)}–${format(end)}`;\n };\n\n return (\n <div\n style={{\n position: \"relative\",\n background: \"rgba(255, 255, 255, 0.82)\",\n border: \"1px solid rgba(52, 58, 64, 0.12)\",\n borderRadius: \"12px\",\n overflow: \"hidden\",\n boxShadow: \"0 2px 4px rgba(30, 33, 37, 0.06)\",\n }}\n >\n {/* Left rail - subtle color for signal type */}\n {signal.railColor && (\n <div\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n bottom: 0,\n width: \"5px\",\n background: signal.railColor,\n opacity: 0.6,\n }}\n />\n )}\n\n {/* Header - Clickable to expand/collapse */}\n <button\n type=\"button\"\n onClick={() => setIsExpanded(!isExpanded)}\n style={{\n width: \"100%\",\n padding: \"14px 16px 14px 21px\",\n background: \"transparent\",\n border: \"none\",\n cursor: \"pointer\",\n textAlign: \"left\",\n transition: \"background 0.15s ease\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.background = \"rgba(231, 212, 162, 0.08)\";\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = \"transparent\";\n }}\n >\n {/* Content */}\n <div style={{ display: \"flex\", alignItems: \"flex-start\", gap: \"12px\" }}>\n <div style={{ flex: 1, minWidth: 0 }}>\n {/* Signal name and badge */}\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"8px\",\n marginBottom: \"6px\",\n flexWrap: \"wrap\",\n }}\n >\n <span\n style={{\n fontSize: \"16px\",\n fontWeight: 700,\n color: \"rgba(30, 33, 37, 0.92)\",\n lineHeight: 1.15,\n }}\n >\n {signal.name}\n </span>\n {signal.state && (\n <span\n style={{\n fontSize: \"11px\",\n fontWeight: 600,\n color: \"#1F8F5A\",\n background: \"rgba(31, 143, 90, 0.10)\",\n padding: \"6px 8px\",\n borderRadius: \"999px\",\n border: \"1px solid rgba(31,143,90,0.12)\",\n }}\n >\n {String(signal.state).toLowerCase() === \"present\" ? \"present\" : signal.state}\n </span>\n )}\n {signal.isPreview && (\n <span\n style={{\n fontSize: \"9px\",\n fontWeight: 650,\n letterSpacing: \"0.06em\",\n textTransform: \"uppercase\",\n color: \"rgba(184, 156, 106, 0.75)\",\n background: \"rgba(184, 156, 106, 0.12)\",\n padding: \"2px 6px\",\n borderRadius: \"4px\",\n border: \"1px solid rgba(184, 156, 106, 0.2)\",\n }}\n >\n Preview\n </span>\n )}\n </div>\n\n {/* Description */}\n <div\n style={{\n fontSize: \"13px\",\n color: \"rgba(30, 33, 37, 0.66)\",\n lineHeight: 1.4,\n marginBottom: \"8px\",\n }}\n >\n {signal.description}\n </div>\n\n {/* Technical key */}\n <div\n style={{\n fontSize: \"11px\",\n color: \"rgba(30, 33, 37, 0.48)\",\n fontFamily: \"ui-monospace, monospace\",\n marginBottom: \"10px\",\n }}\n >\n {signal.technicalKey}\n </div>\n\n {/* Metrics row */}\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n flexWrap: \"wrap\",\n gap: \"12px\",\n fontSize: \"11.5px\",\n }}\n >\n {/* Probability */}\n <div style={{ display: \"flex\", alignItems: \"center\", gap: \"6px\" }}>\n <Tooltip>\n <TooltipTrigger asChild>\n <span\n style={{\n color: \"rgba(139, 157, 127, 0.65)\",\n cursor: \"help\",\n borderBottom: \"1px dotted rgba(139, 157, 127, 0.35)\",\n }}\n >\n prob\n </span>\n </TooltipTrigger>\n <TooltipContent className=\"w-fit max-w-[34ch] h-auto min-h-0 px-4 py-3 whitespace-normal break-words text-left text-[13px] leading-[1.45]\">\n <div>\n <div style={{ fontWeight: 600, marginBottom: \"4px\", maxWidth: \"34ch\" }}>\n Probability measures expectation.\n </div>\n <div style={{ color: \"rgba(255, 255, 255, 0.85)\", maxWidth: \"34ch\" }}>\n How likely this pattern is, given past sessions and current observations.\n </div>\n </div>\n </TooltipContent>\n </Tooltip>\n <strong\n style={{\n color: `rgba(139, 157, 127, ${signal.probability})`,\n }}\n >\n {signal.probability.toFixed(2)}\n </strong>\n {signal.probabilityRange && (\n <span\n style={{\n color: \"rgba(30, 33, 37, 0.42)\",\n fontSize: \"10.5px\",\n }}\n >\n ({signal.probabilityRange.min.toFixed(2)}–\n {signal.probabilityRange.max.toFixed(2)})\n </span>\n )}\n <span\n style={{\n display: \"inline-block\",\n width: \"50px\",\n height: \"3px\",\n background: \"rgba(30, 33, 37, 0.12)\",\n borderRadius: \"2px\",\n position: \"relative\",\n overflow: \"hidden\",\n }}\n >\n <span\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n height: \"100%\",\n width: `${signal.probability * 100}%`,\n background: `rgba(139, 157, 127, ${signal.probability})`,\n borderRadius: \"2px\",\n transition: \"width 0.3s ease\",\n }}\n />\n </span>\n </div>\n\n <span style={{ color: \"rgba(30, 33, 37, 0.24)\" }}>·</span>\n\n {/* Confidence */}\n <div style={{ display: \"flex\", alignItems: \"center\", gap: \"6px\" }}>\n <Tooltip>\n <TooltipTrigger asChild>\n <span\n style={{\n color: \"rgba(184, 156, 106, 0.65)\",\n cursor: \"help\",\n borderBottom: \"1px dotted rgba(184, 156, 106, 0.35)\",\n }}\n >\n conf\n </span>\n </TooltipTrigger>\n <TooltipContent className=\"w-fit max-w-[34ch] h-auto min-h-0 px-4 py-3 whitespace-normal break-words text-left text-[12px] leading-[1.45]\">\n <div>\n <div style={{ fontWeight: 600, marginBottom: \"4px\", maxWidth: \"34ch\" }}>\n Confidence measures evidence.\n </div>\n <div style={{ color: \"rgba(255, 255, 255, 0.85)\", maxWidth: \"34ch\" }}>\n How strongly the observations in this session support this signal.\n </div>\n </div>\n </TooltipContent>\n </Tooltip>\n <strong\n style={{\n color: `rgba(184, 156, 106, ${signal.confidence})`,\n }}\n >\n {signal.confidence.toFixed(2)}\n </strong>\n <span\n style={{\n display: \"inline-block\",\n width: \"50px\",\n height: \"3px\",\n background: \"rgba(30, 33, 37, 0.12)\",\n borderRadius: \"2px\",\n position: \"relative\",\n overflow: \"hidden\",\n }}\n >\n <span\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n height: \"100%\",\n width: `${signal.confidence * 100}%`,\n background: `rgba(184, 156, 106, ${signal.confidence})`,\n borderRadius: \"2px\",\n transition: \"width 0.3s ease\",\n }}\n />\n </span>\n </div>\n\n <span style={{ color: \"rgba(30, 33, 37, 0.24)\" }}>·</span>\n\n {/* Observation count */}\n <div\n style={{\n color: \"rgba(30, 33, 37, 0.52)\",\n fontSize: \"11px\",\n }}\n >\n {(signal.contributingObservations || []).length} observation\n {(signal.contributingObservations || []).length !== 1 ? \"s\" : \"\"}\n </div>\n </div>\n </div>\n\n {/* Rotating chevron on right */}\n <div\n style={{\n paddingTop: \"2px\",\n color: \"rgba(30, 33, 37, 0.42)\",\n flexShrink: 0,\n transition: \"transform 0.2s ease\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"flex-end\",\n gap: \"8px\",\n }}\n >\n {signal.deviation && (\n <DeviationIndicator\n level={signal.deviation}\n color={signal.railColor || \"rgba(30, 33, 37, 0.65)\"}\n direction={signal.deviationDirection}\n />\n )}\n <ChevronDown\n size={18}\n style={{\n transform: isExpanded ? \"rotate(180deg)\" : \"rotate(0deg)\",\n transition: \"transform 0.2s ease\",\n }}\n />\n </div>\n </div>\n </button>\n\n {/* Expanded view - Contributing observations */}\n {isExpanded && (\n <div\n style={{\n borderTop: \"1px solid rgba(52, 58, 64, 0.08)\",\n background: \"rgba(244, 241, 230, 0.25)\",\n padding: \"16px 16px 16px 21px\",\n }}\n >\n <div\n style={{\n fontSize: \"10px\",\n fontWeight: 650,\n letterSpacing: \"0.08em\",\n textTransform: \"uppercase\",\n color: \"rgba(30, 33, 37, 0.52)\",\n marginBottom: \"12px\",\n }}\n >\n Contributing Observations\n </div>\n\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"8px\",\n }}\n >\n {(signal.contributingObservations || []).map((obs, idx) => {\n const durationLabel = formatObservationTime(obs?.startMs, obs?.endMs);\n const playbackDurationLabel =\n durationLabel || (useFallbackObservationDuration ? \"00:00–00:04\" : null);\n const canPlayObservation = Boolean(playbackDurationLabel);\n const handleObservationAction = () => onExpandObservation?.(obs.key);\n const isCurrentObservationPlaying =\n Boolean(isObservationPlaying) &&\n Boolean(activeObservationId) &&\n String(activeObservationId) === String(obs?.playbackId || \"\");\n\n return (\n <div\n key={idx}\n role=\"button\"\n tabIndex={0}\n onClick={handleObservationAction}\n onKeyDown={(event) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n handleObservationAction();\n }\n }}\n style={{\n background: isCurrentObservationPlaying\n ? \"rgba(94, 136, 176, 0.08)\"\n : \"rgba(255, 255, 255, 0.85)\",\n border: isCurrentObservationPlaying\n ? \"1px solid rgba(94, 136, 176, 0.35)\"\n : \"1px solid rgba(52, 58, 64, 0.12)\",\n borderRadius: \"8px\",\n padding: \"10px 12px\",\n textAlign: \"left\",\n cursor: \"pointer\",\n transition: \"all 0.15s ease\",\n position: \"relative\",\n overflow: \"hidden\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.background = \"rgba(255, 255, 255, 1)\";\n e.currentTarget.style.borderColor = \"rgba(52, 58, 64, 0.20)\";\n e.currentTarget.style.transform = \"translateX(2px)\";\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = \"rgba(255, 255, 255, 0.85)\";\n e.currentTarget.style.borderColor = \"rgba(52, 58, 64, 0.12)\";\n e.currentTarget.style.transform = \"translateX(0)\";\n }}\n >\n {/* Influence indicator - subtle left accent */}\n <div\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n bottom: 0,\n width: \"3px\",\n background:\n obs.influence === \"increases\"\n ? \"rgba(107, 123, 147, 0.35)\"\n : obs.influence === \"decreases\"\n ? \"rgba(30, 33, 37, 0.15)\"\n : \"rgba(30, 33, 37, 0.08)\",\n borderRadius: \"8px 0 0 8px\",\n }}\n />\n\n <div style={{ paddingLeft: \"6px\", marginBottom: \"6px\" }}>\n <div\n style={{\n fontSize: \"12px\",\n color: \"rgba(30, 33, 37, 0.82)\",\n lineHeight: 1.4,\n }}\n >\n {obs.statement}\n </div>\n </div>\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"8px\",\n fontSize: \"10.5px\",\n paddingLeft: \"6px\",\n }}\n >\n <span\n style={{\n fontFamily: \"ui-monospace, monospace\",\n color: \"rgba(30, 33, 37, 0.42)\",\n }}\n >\n {obs.key}\n </span>\n <span style={{ color: \"rgba(30, 33, 37, 0.24)\" }}>·</span>\n <span style={{ color: \"rgba(184, 156, 106, 0.65)\" }}>\n conf\n </span>\n <strong\n style={{\n color: `rgba(184, 156, 106, ${obs.confidence})`,\n }}\n >\n {obs.confidence.toFixed(2)}\n </strong>\n <span style={{ color: \"rgba(30, 33, 37, 0.24)\" }}>·</span>\n <span\n style={{\n fontSize: \"10px\",\n color:\n obs.influence === \"increases\"\n ? \"rgba(107, 123, 147, 0.75)\"\n : obs.influence === \"decreases\"\n ? \"rgba(30, 33, 37, 0.52)\"\n : \"rgba(30, 33, 37, 0.42)\",\n }}\n >\n {obs.influence === \"increases\"\n ? \"↑ increases signal\"\n : obs.influence === \"decreases\"\n ? \"↓ decreases signal\"\n : \"− neutral\"}\n </span>\n </div>\n\n {showObservationPlaybackControls && canPlayObservation ? (\n <div\n style={{\n marginTop: \"8px\",\n paddingLeft: \"6px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: \"8px\",\n }}\n >\n <span\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n border: isCurrentObservationPlaying\n ? \"1px solid rgba(94, 136, 176, 0.35)\"\n : \"1px solid rgba(148, 163, 184, 0.35)\",\n borderRadius: \"999px\",\n padding: \"2px 9px\",\n fontFamily: \"ui-monospace, monospace\",\n fontSize: \"10px\",\n color: \"rgba(71, 85, 105, 0.9)\",\n background: \"rgba(255,255,255,0.9)\",\n }}\n >\n {playbackDurationLabel}\n </span>\n <button\n type=\"button\"\n onClick={(event) => {\n event.stopPropagation();\n handleObservationAction();\n }}\n aria-label={\n isCurrentObservationPlaying\n ? \"Pause observation segment\"\n : \"Play observation segment\"\n }\n title={\n isCurrentObservationPlaying\n ? \"Pause observation segment\"\n : \"Play observation segment\"\n }\n disabled={!canPlayObservation}\n style={{\n width: \"26px\",\n height: \"26px\",\n borderRadius: \"999px\",\n border: isCurrentObservationPlaying\n ? \"1px solid rgba(94, 136, 176, 0.45)\"\n : \"1px solid rgba(148, 163, 184, 0.35)\",\n background: isCurrentObservationPlaying\n ? \"rgba(94,136,176,0.12)\"\n : \"rgba(255,255,255,0.95)\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n cursor: \"pointer\",\n color: isCurrentObservationPlaying\n ? \"rgba(94,136,176,0.95)\"\n : \"rgba(30, 33, 37, 0.72)\",\n opacity: canPlayObservation ? 1 : 0.45,\n }}\n >\n {isCurrentObservationPlaying ? <Pause size={12} /> : <Play size={12} />}\n </button>\n </div>\n ) : null}\n </div>\n );\n })}\n </div>\n\n {/* Reasoning note */}\n <div\n style={{\n marginTop: \"12px\",\n padding: \"10px 12px\",\n background: \"rgba(255, 255, 255, 0.6)\",\n borderRadius: \"6px\",\n fontSize: \"11px\",\n color: \"rgba(30, 33, 37, 0.65)\",\n lineHeight: 1.5,\n fontStyle: \"italic\",\n }}\n >\n <strong\n style={{ fontStyle: \"normal\", color: \"rgba(30, 33, 37, 0.75)\" }}\n >\n Note:\n </strong>{\" \"}\n This signal summarizes patterns observed in this session. It does not\n replace human judgment or constitute a conclusion.\n </div>\n </div>\n )}\n </div>\n );\n}\n\n","\"use client\";\n\nimport React, { useState } from \"react\";\nimport { Pencil } from \"lucide-react\";\nimport DeviationIndicator from \"../primitives/DeviationIndicator\";\n\n/**\n * ConditionCard Component\n * Displays a condition card with category, title, metadata, definition, and editable policy section.\n * \n * @param {Object} data - The condition data object\n * @param {string} data.category - Category label\n * @param {string} data.title - Main title\n * @param {string} data.shortName - Short name\n * @param {string} data.technicalName - Technical name\n * @param {Object} data.metadata - Metadata object with type, tier, priority, vertical\n * @param {string} data.definition - Definition text\n * @param {Object} data.policy - Policy object with requiresPolicy and text\n * @param {string} data.railColor - Color for the left rail\n * @param {number} data.deviation - Deviation level (1-5)\n * @param {string} data.deviationDirection - Deviation direction ('up' or 'down')\n */\nexport default function ConditionCard({ data }) {\n const [isEditingPolicy, setIsEditingPolicy] = useState(false);\n const [policyText, setPolicyText] = useState(data.policy.text);\n\n const handleEditPolicy = () => {\n setIsEditingPolicy(true);\n };\n\n const handleSavePolicy = () => {\n setIsEditingPolicy(false);\n // In a real app, this would save to a backend\n console.log(\"Saving policy:\", policyText);\n };\n\n const handleCancelEdit = () => {\n setIsEditingPolicy(false);\n setPolicyText(data.policy.text);\n };\n\n return (\n <div\n className=\"flex rounded-2xl bg-white/85 shadow-lg border border-slate-200/50\"\n style={{ maxWidth: \"900px\", overflow: \"visible\" }}\n >\n {/* Left color rail */}\n <div\n className=\"w-1.5 flex-shrink-0 rounded-l-2xl\"\n style={{ backgroundColor: data.railColor }}\n />\n\n {/* Main content */}\n <div className=\"flex-1 p-6 overflow-visible\">\n {/* Category label */}\n <div\n className=\"text-[11px] tracking-[0.16em] uppercase mb-2.5\"\n style={{ color: \"rgba(30, 33, 37, 0.36)\", fontWeight: 650 }}\n >\n {data.category}\n </div>\n\n {/* Title and Deviation */}\n <div className=\"flex items-start justify-between gap-4 mb-1.5 relative\">\n <h2\n className=\"flex-1\"\n style={{\n fontSize: \"18px\",\n fontWeight: 720,\n letterSpacing: \"-0.01em\",\n lineHeight: 1.25,\n color: \"rgba(30, 33, 37, 0.92)\",\n }}\n >\n {data.title}\n </h2>\n {data.deviation && (\n <div className=\"flex-shrink-0\">\n <DeviationIndicator\n level={data.deviation}\n color={data.railColor}\n direction={data.deviationDirection}\n />\n </div>\n )}\n </div>\n\n {/* Short name */}\n <div\n className=\"text-[13px] leading-snug mt-1.5\"\n style={{ color: \"rgba(30, 33, 37, 0.68)\" }}\n >\n Short name: <strong>{data.shortName}</strong>\n </div>\n\n {/* Technical name */}\n <div\n className=\"mt-2 text-[11.5px] font-mono\"\n style={{ color: \"rgba(30, 33, 37, 0.52)\" }}\n >\n {data.technicalName}\n </div>\n\n {/* Metadata */}\n <div\n className=\"mt-0.5 text-[11.5px]\"\n style={{ color: \"rgba(30, 33, 37, 0.52)\" }}\n >\n type <strong>{data.metadata.type}</strong> · tier{\" \"}\n <strong>{data.metadata.tier}</strong> · priority{\" \"}\n <strong>{data.metadata.priority}</strong> · vertical{\" \"}\n <strong>{data.metadata.vertical}</strong>\n </div>\n\n {/* Definition section */}\n <div className=\"mt-5\">\n <div\n className=\"text-[11px] tracking-[0.16em] uppercase mb-2.5\"\n style={{ color: \"rgba(30, 33, 37, 0.36)\", fontWeight: 650 }}\n >\n Definition\n </div>\n <p\n className=\"text-[13px] leading-relaxed\"\n style={{ color: \"rgba(30, 33, 37, 0.72)\" }}\n >\n {data.definition}\n </p>\n </div>\n\n {/* Policy section */}\n <div className=\"mt-6 border border-slate-200/50 rounded-xl bg-white/70 p-4\">\n {/* Policy header */}\n <div className=\"flex items-center justify-between gap-3 mb-3\">\n <div className=\"flex items-center gap-2.5\">\n <div\n className=\"text-[11px] tracking-[0.16em] uppercase\"\n style={{ color: \"rgba(30, 33, 37, 0.36)\", fontWeight: 650 }}\n >\n Policy\n </div>\n\n {data.policy.requiresPolicy && (\n <div\n className=\"text-[10px] tracking-[0.12em] uppercase border px-2 py-1 rounded-full\"\n style={{\n color: \"rgba(30, 33, 37, 0.55)\",\n borderColor: \"rgba(30, 33, 37, 0.40)\",\n background: \"rgba(255, 255, 255, 0.70)\",\n }}\n >\n requires_policy\n </div>\n )}\n </div>\n\n {/* Edit button */}\n {!isEditingPolicy && (\n <button\n onClick={handleEditPolicy}\n className=\"inline-flex items-center gap-2 text-xs px-3 py-1.5 rounded-lg border shadow-sm transition-all hover:shadow-md\"\n style={{\n borderColor: \"rgba(30, 33, 37, 0.40)\",\n background: \"rgba(255, 255, 255, 0.92)\",\n color: \"rgba(30, 33, 37, 0.78)\",\n }}\n aria-label=\"Edit policy\"\n >\n <Pencil\n className=\"w-3.5 h-3.5\"\n style={{ color: \"rgba(30, 33, 37, 0.70)\" }}\n />\n Edit policy\n </button>\n )}\n </div>\n\n {/* Policy text or editor */}\n {isEditingPolicy ? (\n <div className=\"space-y-3\">\n <textarea\n value={policyText}\n onChange={(e) => setPolicyText(e.target.value)}\n className=\"w-full text-[12.5px] leading-relaxed border rounded-lg p-3 focus:outline-none focus:ring-2 focus:ring-blue-500/50 focus:border-blue-500/50 resize-none\"\n style={{\n color: \"rgba(30, 33, 37, 0.62)\",\n borderColor: \"rgba(30, 33, 37, 0.30)\",\n }}\n rows={6}\n />\n <div className=\"flex gap-2 justify-end\">\n <button\n onClick={handleCancelEdit}\n className=\"px-3 py-1.5 text-xs rounded-lg border transition-colors\"\n style={{\n borderColor: \"rgba(30, 33, 37, 0.30)\",\n background: \"white\",\n color: \"rgba(30, 33, 37, 0.70)\",\n }}\n >\n Cancel\n </button>\n <button\n onClick={handleSavePolicy}\n className=\"px-3 py-1.5 text-xs rounded-lg text-white transition-colors shadow-sm\"\n style={{\n background: \"#2563eb\",\n }}\n >\n Save policy\n </button>\n </div>\n </div>\n ) : (\n <p\n className=\"text-[12.5px] leading-relaxed\"\n style={{ color: \"rgba(30, 33, 37, 0.62)\" }}\n >\n {policyText}\n </p>\n )}\n </div>\n </div>\n </div>\n );\n}\n\n","\"use client\";\n\nimport React, { useState } from \"react\";\nimport { ChevronDown } from \"lucide-react\";\nimport ScoreDriverCard from \"./ScoreDriverCard\";\n\n/**\n * ModelScoreCard Component\n * Displays a model score with expandable drivers/conditions.\n * \n * @param {Object} props - Component props\n * @param {number} props.score - The score value (0-100)\n * @param {number} props.confidence - Confidence level (0-1)\n * @param {Object} props.range - Range object with min and max\n * @param {string} props.modelKey - Model key identifier\n * @param {string} props.modelVersion - Model version\n * @param {string} props.title - Title for the score\n * @param {boolean} props.expanded - Whether drivers section is expanded\n * @param {Array} props.drivers - Array of score driver objects\n * @param {Function} props.onViewDrivers - Callback when expand/collapse is clicked\n * @param {Function} props.onPlayTimestamp - Callback when play timestamp is clicked\n */\nexport default function ModelScoreCard({\n score,\n confidence,\n range,\n modelKey = \"legacy_overall\",\n modelVersion = \"v2026_01_11_01\",\n title = \"Agent Score\",\n expanded: initialExpanded = false,\n drivers = [],\n onViewDrivers,\n onPlayTimestamp,\n}) {\n const [expanded, setExpanded] = useState(initialExpanded);\n\n const handleToggle = () => {\n const newExpanded = !expanded;\n setExpanded(newExpanded);\n if (onViewDrivers) {\n onViewDrivers();\n }\n };\n\n return (\n <div>\n {/* Section header */}\n <div style={{ marginBottom: \"12px\" }}>\n <div\n className=\"text-[11px] tracking-[0.14em] uppercase mb-2\"\n style={{ color: \"rgba(30, 33, 37, 0.42)\", fontWeight: 650 }}\n >\n MODEL OUTPUT\n </div>\n <div\n style={{\n fontSize: \"16px\",\n fontWeight: 720,\n letterSpacing: \"-0.01em\",\n color: \"rgba(30, 33, 37, 0.92)\",\n lineHeight: 1.2,\n }}\n >\n {title}\n <span\n style={{\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n fontFamily: \"ui-monospace, monospace\",\n marginLeft: \"10px\",\n }}\n >\n model_key: {modelKey} · {modelVersion}\n </span>\n </div>\n </div>\n\n {/* Model output block */}\n <div\n style={{\n border: \"1px solid rgba(52, 58, 64, 0.12)\",\n borderRadius: \"14px\",\n background: \"rgba(255, 255, 255, 0.82)\",\n overflow: \"hidden\",\n }}\n >\n {/* Clickable header area */}\n <button\n type=\"button\"\n onClick={handleToggle}\n disabled={drivers.length === 0}\n style={{\n width: \"100%\",\n padding: \"16px 18px\",\n background: \"transparent\",\n border: \"none\",\n cursor: drivers.length > 0 ? \"pointer\" : \"default\",\n textAlign: \"left\",\n transition: \"background 0.15s ease\",\n }}\n onMouseEnter={(e) => {\n if (drivers.length > 0) {\n e.currentTarget.style.background = \"rgba(231, 212, 162, 0.08)\";\n }\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = \"transparent\";\n }}\n >\n <div style={{ display: \"flex\", alignItems: \"flex-start\", gap: \"16px\" }}>\n <div style={{ flex: 1, minWidth: 0 }}>\n {/* Score row */}\n <div\n style={{\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: \"16px\",\n alignItems: \"baseline\",\n marginBottom: \"12px\",\n }}\n >\n <div\n style={{\n fontSize: \"32px\",\n fontWeight: 760,\n letterSpacing: \"-0.02em\",\n color: \"rgba(30, 33, 37, 0.92)\",\n lineHeight: 1,\n }}\n >\n {score}\n </div>\n <div\n style={{\n fontSize: \"12px\",\n color: \"rgba(30, 33, 37, 0.62)\",\n lineHeight: 1.4,\n }}\n >\n score (0–100) · confidence <strong>{confidence.toFixed(2)}</strong> ·{\" \"}\n <span\n style={{\n borderBottom: \"1px dashed rgba(231, 212, 162, 0.65)\",\n }}\n >\n model-based estimate\n </span>\n </div>\n </div>\n\n {/* Range + normalization note */}\n <div\n style={{\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n lineHeight: 1.5,\n }}\n >\n range <strong>{range.min}–{range.max}</strong> (illustrative) · normalized for comparability across calls ·{\" \"}\n {expanded\n ? \"based on evidence-weighted condition signals\"\n : \"evidence-weighted condition signals\"}\n </div>\n </div>\n\n {/* Rotating chevron on right */}\n {drivers.length > 0 && (\n <div\n style={{\n paddingTop: \"6px\",\n color: \"rgba(30, 33, 37, 0.42)\",\n flexShrink: 0,\n transition: \"transform 0.2s ease\",\n }}\n >\n <ChevronDown\n size={18}\n style={{\n transform: expanded ? \"rotate(180deg)\" : \"rotate(0deg)\",\n transition: \"transform 0.2s ease\",\n }}\n />\n </div>\n )}\n </div>\n </button>\n\n {/* Expanded state: drivers */}\n {expanded && drivers.length > 0 && (\n <div\n style={{\n borderTop: \"1px solid rgba(52, 58, 64, 0.10)\",\n padding: \"16px 18px 18px 18px\",\n }}\n >\n {/* Drivers header */}\n <div\n className=\"text-[10px] tracking-[0.12em] uppercase mb-4\"\n style={{ color: \"rgba(30, 33, 37, 0.36)\", fontWeight: 650 }}\n >\n SCORE CONDITIONS FOR THIS INTERACTION\n </div>\n\n {/* Drivers list */}\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: \"14px\" }}>\n {drivers.map((driver, i) => (\n <ScoreDriverCard\n key={i}\n driver={driver}\n onPlayTimestamp={onPlayTimestamp}\n showWeight={true}\n />\n ))}\n </div>\n\n {/* Note */}\n <div\n style={{\n marginTop: \"16px\",\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n lineHeight: 1.5,\n }}\n >\n Conditions shown are the largest contributors for this model on this interaction. Inspect timestamps to verify supporting evidence.\n </div>\n </div>\n )}\n </div>\n </div>\n );\n}\n","\"use client\";\n\n/**\n * SummarySection component\n * Provides narrative context at the session level.\n * Uses neutral, evidence-aware language with explicit boundaries about what can be known from the transcript.\n */\n\nexport default function SummarySection({ \n title = \"Interaction overview\", \n summary,\n boundaryNote = \"This summary reflects observed conversation content and is bounded by transcript quality and available evidence.\"\n}) {\n return (\n <div className=\"pb-2\">\n {/* Section header */}\n <div className=\"mb-3\">\n <div \n className=\"text-[11px] tracking-[0.14em] uppercase mb-1.5\"\n style={{ color: 'rgba(30, 33, 37, 0.42)', fontWeight: 650 }}\n >\n Summary\n </div>\n <h2 \n className=\"text-[15px] leading-tight\"\n style={{ \n fontWeight: 700, \n letterSpacing: '-0.01em',\n color: 'rgba(30, 33, 37, 0.90)',\n lineHeight: 1.2\n }}\n >\n {title}\n </h2>\n </div>\n\n {/* Summary body */}\n <div \n className=\"text-[13.5px] max-w-[860px]\"\n style={{ \n lineHeight: 1.6,\n color: 'rgba(30, 33, 37, 0.70)'\n }}\n >\n {summary}\n </div>\n\n {/* Boundary / confidence note */}\n {boundaryNote && (\n <div \n className=\"mt-2 text-[11.5px]\"\n style={{ \n color: 'rgba(30, 33, 37, 0.52)',\n lineHeight: 1.5\n }}\n >\n {boundaryNote}\n </div>\n )}\n </div>\n );\n}\n\n"],"names":["ObservationCard","data","isExpanded","setIsExpanded","useState","jsxs","jsx","DeviationIndicator","ChevronDown","val","i","condition","tag","SmallObservationCard","category","statement","technicalKey","value","confidence","relevance","timestamps","railColor","expanded","nestedObservations","onPlayTimestamp","onToggle","selected","onClick","deviation","deviationDirection","isHovered","setIsHovered","Tooltip","TooltipTrigger","TooltipContent","Fragment","ts","e","ScoreDriverCard","driver","showWeight","hideMetrics","isAbsent","hasTimestamps","ScoreDriverCardVariant","variant","desaturateColor","hex","r","g","b","gray","newR","newG","newB","getTitleStyle","getCardStyle","getRailColor","getRailOpacity","Play","SignalCard","signal","onExpandObservation","activeObservationId","isObservationPlaying","showObservationPlaybackControls","useFallbackObservationDuration","formatObservationTime","startMs","endMs","start","end","format","ms","totalSeconds","minutes","seconds","obs","idx","playbackDurationLabel","canPlayObservation","handleObservationAction","isCurrentObservationPlaying","event","Pause","ConditionCard","isEditingPolicy","setIsEditingPolicy","policyText","setPolicyText","handleEditPolicy","handleSavePolicy","handleCancelEdit","Pencil","ModelScoreCard","score","range","modelKey","modelVersion","title","initialExpanded","drivers","onViewDrivers","setExpanded","SummarySection","summary","boundaryNote"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SummarySection.es.js","sources":["../src/components/common/ObservationCard.jsx","../src/components/common/SmallObservationCard.jsx","../src/components/common/ScoreDriverCard.jsx","../src/components/common/ScoreDriverCardVariant.jsx","../src/components/common/SignalCard.jsx","../src/components/common/ConditionCard.jsx","../src/components/common/ModelScoreCard.jsx","../src/components/common/SummarySection.jsx"],"sourcesContent":["\"use client\";\n\nimport React, { useState } from \"react\";\nimport { ChevronDown } from \"lucide-react\";\nimport DeviationIndicator from \"../primitives/DeviationIndicator\";\n\n/**\n * ObservationCard Component\n * Displays an observation card with expandable details, required conditions, tags, and implementation.\n * \n * @param {Object} data - The observation data object\n * @param {string} data.category - Category label\n * @param {string} data.title - Main title\n * @param {string} data.key - Technical key\n * @param {Object} data.metadata - Metadata object with valueType, allowed, version\n * @param {string} data.description - Description text\n * @param {Array} data.requiredConditions - Array of required condition objects\n * @param {Array} data.tags - Array of tag strings\n * @param {string} data.implementation - Implementation details\n * @param {string} data.railColor - Color for the left rail\n * @param {number} data.deviation - Deviation level (1-5)\n * @param {string} data.deviationDirection - Deviation direction ('up' or 'down')\n */\nexport default function ObservationCard({ data }) {\n const [isExpanded, setIsExpanded] = useState(false);\n\n return (\n <div\n className=\"flex rounded-2xl overflow-hidden bg-white/85 shadow-lg border border-slate-200/50\"\n style={{ maxWidth: \"900px\" }}\n >\n {/* Left color rail */}\n <div\n className=\"w-1.5 flex-shrink-0\"\n style={{ backgroundColor: data.railColor }}\n />\n\n {/* Main content */}\n <div className=\"flex-1\">\n {/* Summary (always visible) */}\n <button\n onClick={() => setIsExpanded(!isExpanded)}\n className=\"w-full text-left px-6 py-4 hover:bg-white/40 transition-colors\"\n >\n {/* Category label */}\n <div\n className=\"text-[11px] tracking-[0.16em] uppercase mb-2.5\"\n style={{ color: \"rgba(30, 33, 37, 0.36)\", fontWeight: 650 }}\n >\n {data.category}\n </div>\n\n {/* Title and Deviation */}\n <div className=\"flex items-start justify-between gap-4 mb-3\">\n <h2\n className=\"flex-1\"\n style={{\n fontSize: \"18px\",\n fontWeight: 720,\n letterSpacing: \"-0.01em\",\n lineHeight: 1.25,\n color: \"rgba(30, 33, 37, 0.92)\",\n }}\n >\n {data.title}\n </h2>\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"flex-end\",\n gap: \"8px\",\n }}\n >\n {data.deviation && (\n <DeviationIndicator\n level={data.deviation}\n color={data.railColor}\n direction={data.deviationDirection}\n />\n )}\n <ChevronDown\n size={18}\n style={{\n color: \"rgba(30, 33, 37, 0.42)\",\n flexShrink: 0,\n transform: isExpanded ? \"rotate(180deg)\" : \"rotate(0deg)\",\n transition: \"transform 0.2s ease\",\n }}\n />\n </div>\n </div>\n\n {/* Key */}\n <div\n className=\"text-[11.5px] font-mono\"\n style={{ color: \"rgba(30, 33, 37, 0.52)\" }}\n >\n {data.key}\n </div>\n\n {/* Metadata */}\n <div\n className=\"mt-1 text-[11.5px]\"\n style={{ color: \"rgba(30, 33, 37, 0.52)\" }}\n >\n value_type <strong>{data.metadata.valueType}</strong>\n {\" · \"} allowed{\" \"}\n {data.metadata.allowed.map((val, i) => (\n <span key={val}>\n <strong>{val}</strong>\n {i < data.metadata.allowed.length - 1 && \", \"}\n </span>\n ))}\n {\" · \"} version <strong>{data.metadata.version}</strong>\n </div>\n\n {/* Description */}\n <p\n className=\"mt-3 text-[13px] leading-relaxed\"\n style={{ color: \"rgba(30, 33, 37, 0.68)\" }}\n >\n {data.description}\n </p>\n\n {/* Expand hint */}\n <p\n className=\"mt-3 text-xs\"\n style={{ color: \"rgba(30, 33, 37, 0.56)\" }}\n >\n {isExpanded\n ? \"Collapse to hide details\"\n : \"Expand to view required conditions and implementation details.\"}\n </p>\n </button>\n\n {/* Expanded content */}\n {isExpanded && (\n <div className=\"border-t border-slate-200/40 bg-white/60 px-6 py-4\">\n {/* Required conditions */}\n <div\n className=\"text-[11px] tracking-[0.16em] uppercase mb-3\"\n style={{ color: \"rgba(30, 33, 37, 0.36)\", fontWeight: 650 }}\n >\n Required conditions\n </div>\n <div className=\"flex flex-col gap-3 mb-5\">\n {data.requiredConditions.map((condition) => (\n <div\n key={condition.technicalName}\n className=\"flex rounded-xl overflow-hidden bg-white/82 border border-slate-200/50\"\n >\n <div\n className=\"w-1.5 flex-shrink-0\"\n style={{ backgroundColor: condition.railColor }}\n />\n <div className=\"flex-1 px-4 py-3\">\n <div\n className=\"text-[13px]\"\n style={{\n fontWeight: 680,\n lineHeight: 1.2,\n color: \"rgba(30, 33, 37, 0.92)\",\n }}\n >\n {condition.title}\n </div>\n <div\n className=\"mt-1 text-[11.5px] font-mono\"\n style={{ color: \"rgba(30, 33, 37, 0.52)\" }}\n >\n {condition.technicalName}\n </div>\n <div\n className=\"mt-1 text-[11.5px]\"\n style={{ color: \"rgba(30, 33, 37, 0.52)\" }}\n >\n role <strong>{condition.role}</strong>\n </div>\n </div>\n </div>\n ))}\n </div>\n\n {/* Tags */}\n <div\n className=\"text-[11px] tracking-[0.16em] uppercase mb-2.5\"\n style={{ color: \"rgba(30, 33, 37, 0.36)\", fontWeight: 650 }}\n >\n Tags\n </div>\n <div className=\"flex flex-wrap gap-2 mb-5\">\n {data.tags.map((tag) => (\n <span\n key={tag}\n className=\"text-[11px] px-2 py-0.5 rounded-full border font-mono\"\n style={{\n borderColor: \"rgba(30, 33, 37, 0.50)\",\n background: \"rgba(255, 255, 255, 0.70)\",\n color: \"rgba(30, 33, 37, 0.60)\",\n }}\n >\n {tag}\n </span>\n ))}\n </div>\n\n {/* Implementation */}\n <div\n className=\"text-[11px] tracking-[0.16em] uppercase mb-2.5\"\n style={{ color: \"rgba(30, 33, 37, 0.36)\", fontWeight: 650 }}\n >\n Implementation\n </div>\n <div\n className=\"text-[12.5px] leading-relaxed font-mono\"\n style={{ color: \"rgba(30, 33, 37, 0.62)\" }}\n >\n {data.implementation}\n </div>\n </div>\n )}\n </div>\n </div>\n );\n}\n","\"use client\";\n\nimport React, { useState } from \"react\";\nimport { ChevronDown } from \"lucide-react\";\nimport { Tooltip, TooltipTrigger, TooltipContent } from \"../primitives/Tooltip\";\nimport DeviationIndicator from \"../primitives/DeviationIndicator\";\n\n/**\n * SmallObservationCard Component\n * Displays a compact observation card with expandable nested observations.\n * Shows category, statement, technical key, metrics (value, confidence, relevance),\n * timestamps, and deviation indicator.\n */\nexport default function SmallObservationCard({\n category,\n statement,\n technicalKey,\n value,\n confidence,\n relevance,\n timestamps = [],\n railColor,\n expanded = false,\n nestedObservations = [],\n onPlayTimestamp,\n onToggle,\n selected = false,\n onClick,\n deviation,\n deviationDirection,\n}) {\n const [isHovered, setIsHovered] = useState(false);\n\n return (\n <div\n style={{\n position: \"relative\",\n display: \"flex\",\n border: `1px solid ${\n selected\n ? \"rgba(94, 136, 176, 0.35)\"\n : isHovered\n ? \"rgba(52, 58, 64, 0.18)\"\n : \"rgba(52, 58, 64, 0.12)\"\n }`,\n borderRadius: \"16px\",\n overflow: \"hidden\",\n background: selected\n ? \"rgba(231, 212, 162, 0.18)\"\n : isHovered\n ? \"rgba(231, 212, 162, 0.12)\"\n : \"rgba(255, 255, 255, 0.85)\",\n boxShadow: selected\n ? \"0 12px 32px rgba(30, 33, 37, 0.20), 0 4px 12px rgba(94, 136, 176, 0.15)\"\n : isHovered\n ? \"0 8px 18px rgba(30, 33, 37, 0.12)\"\n : \"0 6px 14px rgba(30, 33, 37, 0.08)\",\n transform: selected ? \"translateY(-3px)\" : \"none\",\n transition: \"all 0.2s ease-out\",\n cursor: onClick || onToggle ? \"pointer\" : \"default\",\n }}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n onClick={onClick || onToggle}\n >\n {/* Left color rail */}\n <div style={{ width: \"5px\", background: railColor }}></div>\n\n {/* Content area */}\n <div style={{ flex: 1 }}>\n {/* Header (always visible) */}\n <div style={{ padding: \"14px 16px 12px\" }}>\n <div style={{ display: \"flex\", gap: \"12px\" }}>\n {/* Left side: Main content */}\n <div style={{ flex: 1, minWidth: 0 }}>\n {/* Category label */}\n <div\n className=\"text-[11px] tracking-[0.16em] uppercase mb-2\"\n style={{ color: \"rgba(30, 33, 37, 0.36)\", fontWeight: 650 }}\n >\n {category}\n </div>\n\n {/* Statement */}\n <div\n style={{\n fontSize: \"16px\",\n fontWeight: 720,\n letterSpacing: \"-0.01em\",\n color: \"rgba(30, 33, 37, 0.92)\",\n lineHeight: 1.3,\n }}\n >\n {statement}\n </div>\n\n {/* Technical key */}\n <div\n style={{\n marginTop: \"6px\",\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n fontFamily: \"ui-monospace, monospace\",\n }}\n >\n {technicalKey}\n </div>\n\n {/* Metrics */}\n <div\n style={{\n marginTop: \"3px\",\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n display: \"flex\",\n alignItems: \"center\",\n flexWrap: \"wrap\",\n gap: \"8px\",\n }}\n >\n <span style={{ display: \"flex\", alignItems: \"center\", gap: \"4px\" }}>\n <span style={{ color: \"rgba(94, 136, 176, 0.65)\" }}>value</span>{\" \"}\n <strong style={{ color: \"rgba(94, 136, 176, 0.85)\" }}>{value}</strong>\n </span>\n <span>·</span>\n <span style={{ display: \"flex\", alignItems: \"center\", gap: \"4px\" }}>\n <Tooltip>\n <TooltipTrigger asChild>\n <span\n style={{\n color: \"rgba(184, 156, 106, 0.65)\",\n cursor: \"help\",\n borderBottom: \"1px dotted rgba(184, 156, 106, 0.35)\",\n }}\n >\n conf\n </span>\n </TooltipTrigger>\n <TooltipContent>\n <div>\n <div style={{ fontWeight: 600, marginBottom: \"4px\" }}>\n Confidence measures evidence.\n </div>\n <div style={{ color: \"rgba(255, 255, 255, 0.85)\" }}>\n How strongly the evidence supports this observation in this\n session.\n </div>\n </div>\n </TooltipContent>\n </Tooltip>{\" \"}\n <strong style={{ color: `rgba(184, 156, 106, ${confidence})` }}>\n {confidence.toFixed(2)}\n </strong>\n <span\n style={{\n display: \"inline-block\",\n width: \"45px\",\n height: \"3px\",\n background: \"rgba(30, 33, 37, 0.12)\",\n borderRadius: \"2px\",\n position: \"relative\",\n overflow: \"hidden\",\n }}\n >\n <span\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n height: \"100%\",\n width: `${confidence * 100}%`,\n background: `rgba(184, 156, 106, ${confidence})`,\n borderRadius: \"2px\",\n transition: \"width 0.3s ease\",\n }}\n />\n </span>\n </span>\n {relevance && (\n <>\n <span>·</span>\n <span style={{ display: \"flex\", alignItems: \"center\", gap: \"4px\" }}>\n <span style={{ color: \"rgba(139, 123, 168, 0.65)\" }}>rel</span>{\" \"}\n <strong style={{ color: \"rgba(139, 123, 168, 0.85)\" }}>\n {relevance}\n </strong>\n </span>\n </>\n )}\n </div>\n\n {/* Timestamp pills */}\n {timestamps.length > 0 && (\n <div\n style={{\n marginTop: \"4px\",\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: \"6px\",\n alignItems: \"center\",\n }}\n >\n <span style={{ fontSize: \"11px\", color: \"rgba(30, 33, 37, 0.52)\" }}>\n @\n </span>\n {timestamps.map((ts, i) => (\n <button\n key={i}\n onClick={(e) => {\n e.stopPropagation();\n if (onPlayTimestamp) {\n onPlayTimestamp(ts.start, ts.end);\n }\n }}\n style={{\n fontSize: \"11px\",\n padding: \"2px 6px\",\n borderRadius: \"999px\",\n border: \"1px solid rgba(52, 58, 64, 0.16)\",\n background: \"rgba(255, 255, 255, 0.70)\",\n color: \"rgba(30, 33, 37, 0.60)\",\n fontFamily: \"ui-monospace, monospace\",\n cursor: \"pointer\",\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: \"4px\",\n transition: \"all 0.15s ease\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.background = \"rgba(255, 255, 255, 0.95)\";\n e.currentTarget.style.borderColor = \"rgba(52, 58, 64, 0.24)\";\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = \"rgba(255, 255, 255, 0.70)\";\n e.currentTarget.style.borderColor = \"rgba(52, 58, 64, 0.16)\";\n }}\n >\n <svg\n width=\"9\"\n height=\"9\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M3 2.5L9 6L3 9.5V2.5Z\" fill=\"currentColor\" />\n </svg>\n {ts.start}–{ts.end}\n </button>\n ))}\n </div>\n )}\n </div>\n\n {/* Right side: Deviation indicator only */}\n {deviation && (\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n flexShrink: 0,\n }}\n >\n <DeviationIndicator\n level={deviation}\n color={railColor}\n direction={deviationDirection}\n />\n </div>\n )}\n </div>\n\n {/* Chevron at bottom right */}\n {nestedObservations.length > 0 && (onToggle || onClick) && (\n <div\n style={{\n marginTop: \"8px\",\n display: \"flex\",\n justifyContent: \"flex-end\",\n paddingTop: \"8px\",\n borderTop: \"1px solid rgba(52, 58, 64, 0.08)\",\n }}\n >\n <div\n style={{\n color: \"rgba(30, 33, 37, 0.42)\",\n display: \"flex\",\n alignItems: \"center\",\n gap: \"6px\",\n }}\n >\n <span\n style={{\n fontSize: \"11px\",\n fontWeight: 600,\n color: \"rgba(30, 33, 37, 0.52)\",\n }}\n >\n {expanded ? \"Hide\" : \"Show\"} nested observations\n </span>\n <ChevronDown\n size={18}\n style={{\n transform: expanded ? \"rotate(180deg)\" : \"rotate(0deg)\",\n transition: \"transform 0.2s ease\",\n }}\n />\n </div>\n </div>\n )}\n </div>\n\n {/* Supporting conditions (expanded state) */}\n {expanded && nestedObservations.length > 0 && (\n <div\n style={{\n borderTop: \"1px solid rgba(52, 58, 64, 0.10)\",\n background: \"rgba(255, 255, 255, 0.60)\",\n padding: \"14px 16px 16px\",\n }}\n >\n <div\n className=\"text-[11px] tracking-[0.16em] uppercase mb-3\"\n style={{ color: \"rgba(30, 33, 37, 0.36)\", fontWeight: 650 }}\n >\n Supporting conditions\n </div>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: \"12px\" }}>\n {nestedObservations.map((condition, i) => {\n // Ensure all required props are present\n if (!condition || !condition.category || !condition.statement || !condition.technicalKey) {\n return null;\n }\n return (\n <SmallObservationCard\n key={i}\n category={condition.category || \"Condition\"}\n statement={condition.statement || \"\"}\n technicalKey={condition.technicalKey || \"\"}\n value={condition.value || \"present\"}\n confidence={condition.confidence || 0.8}\n relevance={condition.relevance}\n timestamps={condition.timestamps || []}\n railColor={condition.railColor || \"#6B7C93\"}\n deviation={condition.deviation}\n deviationDirection={condition.deviationDirection}\n onPlayTimestamp={onPlayTimestamp}\n />\n );\n })}\n </div>\n </div>\n )}\n </div>\n </div>\n );\n}\n","\"use client\";\n\nimport React, { useState } from \"react\";\nimport DeviationIndicator from \"../primitives/DeviationIndicator\";\nimport { Tooltip, TooltipTrigger, TooltipContent } from \"../primitives/Tooltip\";\n\n/**\n * ScoreDriverCard Component\n * Displays a score driver condition with state, confidence, probability, weight, and timestamps.\n * \n * @param {Object} props - Component props\n * @param {Object} props.driver - Score driver object\n * @param {string} props.driver.title - Condition title\n * @param {string} props.driver.technicalName - Technical/internal key\n * @param {string} props.driver.state - State: 'present', 'absent', or 'unknown'\n * @param {number} props.driver.confidence - Confidence level (0-1)\n * @param {number} props.driver.probability - Probability level (0-1)\n * @param {number} props.driver.weight - Weight contribution (+ or -)\n * @param {string} props.driver.railColor - Color for the left rail\n * @param {Array} props.driver.timestamps - Array of timestamp objects with start and end\n * @param {number} props.driver.deviation - Deviation level (1-5)\n * @param {string} props.driver.deviationDirection - Deviation direction ('up' or 'down')\n * @param {Function} props.onPlayTimestamp - Callback when play button is clicked\n * @param {boolean} props.selected - Whether the card is selected\n * @param {Function} props.onClick - Click handler for the card\n * @param {boolean} props.showWeight - Whether to show the weight\n * @param {boolean} props.hideMetrics - Whether to hide the metrics section\n */\nexport default function ScoreDriverCard({\n driver,\n onPlayTimestamp,\n selected = false,\n onClick,\n showWeight = false,\n hideMetrics = false,\n}) {\n const [isHovered, setIsHovered] = useState(false);\n const isAbsent = driver.state === \"absent\";\n const hasTimestamps = driver.timestamps && driver.timestamps.length > 0;\n\n const getCardBackground = () => {\n if (isAbsent) {\n return isHovered\n ? \"linear-gradient(135deg, rgba(30, 33, 37, 0.06) 0%, rgba(30, 33, 37, 0.06) 35%, rgba(255, 255, 255, 0.82) 35%, rgba(255, 255, 255, 0.82) 100%)\"\n : \"linear-gradient(135deg, rgba(30, 33, 37, 0.04) 0%, rgba(30, 33, 37, 0.04) 35%, rgba(255, 255, 255, 0.82) 35%, rgba(255, 255, 255, 0.82) 100%)\";\n }\n if (selected) {\n return \"rgba(231, 212, 162, 0.18)\";\n }\n if (isHovered) {\n return \"rgba(231, 212, 162, 0.12)\";\n }\n return \"rgba(255, 255, 255, 0.82)\";\n };\n\n return (\n <div\n style={{\n position: \"relative\",\n display: \"flex\",\n border: `1px solid ${\n selected\n ? \"rgba(94, 136, 176, 0.35)\"\n : isHovered\n ? \"rgba(52, 58, 64, 0.18)\"\n : \"rgba(52, 58, 64, 0.12)\"\n }`,\n borderRadius: \"12px\",\n overflow: \"hidden\",\n background: getCardBackground(),\n boxShadow: selected\n ? \"0 8px 24px rgba(30, 33, 37, 0.18), 0 2px 8px rgba(94, 136, 176, 0.12)\"\n : \"0 2px 4px rgba(30, 33, 37, 0.06)\",\n transform: selected ? \"translateY(-2px)\" : \"none\",\n cursor: onClick ? \"pointer\" : \"default\",\n transition: \"all 0.2s ease-out\",\n }}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n onClick={onClick}\n >\n {/* Left rail = cluster color */}\n <div style={{ width: \"5px\", background: driver.railColor }}></div>\n\n <div style={{ flex: 1, padding: \"10px 12px\" }}>\n {/* Title and Deviation */}\n <div\n style={{\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"flex-start\",\n gap: \"8px\",\n marginBottom: driver.deviation ? \"4px\" : \"0\",\n }}\n >\n <div\n style={{\n flex: 1,\n fontSize: \"13px\",\n fontWeight: 680,\n color: isAbsent\n ? \"rgba(30, 33, 37, 0.70)\"\n : \"rgba(30, 33, 37, 0.92)\",\n lineHeight: 1.2,\n textDecoration: isAbsent ? \"line-through\" : \"none\",\n textDecorationThickness: isAbsent ? \"2px\" : undefined,\n }}\n >\n {driver.title}\n </div>\n {driver.deviation && (\n <DeviationIndicator\n level={driver.deviation}\n color={driver.railColor}\n direction={driver.deviationDirection}\n />\n )}\n </div>\n\n {/* Technical name */}\n <div\n style={{\n marginTop: \"3px\",\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n fontFamily: \"ui-monospace, monospace\",\n }}\n >\n {driver.technicalName}\n </div>\n\n {/* Metrics */}\n {!hideMetrics && (\n <div\n style={{\n marginTop: \"3px\",\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n display: \"flex\",\n alignItems: \"center\",\n flexWrap: \"wrap\",\n gap: \"8px\",\n }}\n >\n <span style={{ display: \"flex\", alignItems: \"center\", gap: \"4px\" }}>\n <Tooltip>\n <TooltipTrigger asChild>\n <span\n style={{\n color: \"rgba(94, 136, 176, 0.65)\",\n cursor: \"help\",\n borderBottom: \"1px dotted rgba(94, 136, 176, 0.35)\",\n }}\n >\n state\n </span>\n </TooltipTrigger>\n <TooltipContent side=\"top\" className=\"max-w-[320px]\">\n <div style={{ fontSize: \"11px\", lineHeight: 1.5 }}>\n <div\n style={{\n fontWeight: 600,\n marginBottom: \"6px\",\n }}\n >\n Condition states describe what the evidence supports.\n </div>\n <div\n style={{\n marginBottom: \"8px\",\n color: \"rgba(255, 255, 255, 0.85)\",\n }}\n >\n <strong>Present</strong> — Clear evidence shows this condition\n occurred in the session.\n </div>\n <div\n style={{\n marginBottom: \"8px\",\n color: \"rgba(255, 255, 255, 0.85)\",\n }}\n >\n <strong>Absent</strong> — Evidence indicates this condition did\n not occur.\n </div>\n <div style={{ color: \"rgba(255, 255, 255, 0.85)\" }}>\n <strong>Unknown</strong> — There {'isn\\'t'} enough evidence to decide\n either way.\n </div>\n </div>\n </TooltipContent>\n </Tooltip>\n {\" \"}\n <strong\n style={{\n color: `rgba(94, 136, 176, ${\n driver.state === \"present\"\n ? 0.85\n : driver.state === \"absent\"\n ? 0.45\n : 0.65\n })`,\n }}\n >\n {driver.state}\n </strong>\n </span>\n <span>·</span>\n <span style={{ display: \"flex\", alignItems: \"center\", gap: \"4px\" }}>\n <Tooltip>\n <TooltipTrigger asChild>\n <span\n style={{\n color: \"rgba(184, 156, 106, 0.65)\",\n cursor: \"help\",\n borderBottom: \"1px dotted rgba(184, 156, 106, 0.35)\",\n }}\n >\n conf\n </span>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n <div style={{ fontSize: \"11px\", lineHeight: 1.5 }}>\n <div\n style={{\n fontWeight: 600,\n marginBottom: \"4px\",\n }}\n >\n Confidence measures evidence.\n </div>\n <div style={{ color: \"rgba(255, 255, 255, 0.85)\" }}>\n How strongly the evidence supports this observation in this\n session.\n </div>\n </div>\n </TooltipContent>\n </Tooltip>\n {\" \"}\n <strong\n style={{\n color: `rgba(184, 156, 106, ${driver.confidence})`,\n }}\n >\n {driver.confidence.toFixed(2)}\n </strong>\n <span\n style={{\n display: \"inline-block\",\n width: \"45px\",\n height: \"3px\",\n background: \"rgba(30, 33, 37, 0.12)\",\n borderRadius: \"2px\",\n position: \"relative\",\n overflow: \"hidden\",\n }}\n >\n <span\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n height: \"100%\",\n width: `${driver.confidence * 100}%`,\n background: `rgba(184, 156, 106, ${driver.confidence})`,\n borderRadius: \"2px\",\n transition: \"width 0.3s ease\",\n }}\n />\n </span>\n </span>\n <span>·</span>\n <span style={{ display: \"flex\", alignItems: \"center\", gap: \"4px\" }}>\n <Tooltip>\n <TooltipTrigger asChild>\n <span\n style={{\n color: \"rgba(75, 135, 125, 0.75)\",\n cursor: \"help\",\n borderBottom: \"1px dotted rgba(75, 135, 125, 0.45)\",\n }}\n >\n prob\n </span>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n <div style={{ fontSize: \"11px\", lineHeight: 1.5 }}>\n <div\n style={{\n fontWeight: 600,\n marginBottom: \"4px\",\n }}\n >\n Probability measures expectation.\n </div>\n <div style={{ color: \"rgba(255, 255, 255, 0.85)\" }}>\n How likely this observation is given past sessions and current\n evidence.\n </div>\n </div>\n </TooltipContent>\n </Tooltip>\n {\" \"}\n <strong\n style={{\n color: `rgba(75, 135, 125, ${Math.max(driver.probability, 0.75)})`,\n }}\n >\n {driver.probability.toFixed(2)}\n </strong>\n <span\n style={{\n display: \"inline-block\",\n width: \"45px\",\n height: \"3px\",\n background: \"rgba(30, 33, 37, 0.12)\",\n borderRadius: \"2px\",\n position: \"relative\",\n overflow: \"hidden\",\n }}\n >\n <span\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n height: \"100%\",\n width: `${driver.probability * 100}%`,\n background: `rgba(75, 135, 125, ${Math.max(\n driver.probability,\n 0.75\n )})`,\n borderRadius: \"2px\",\n transition: \"width 0.3s ease\",\n }}\n />\n </span>\n </span>\n {showWeight && <span>·</span>}\n {showWeight && (\n <span style={{ display: \"flex\", alignItems: \"center\", gap: \"4px\" }}>\n <span style={{ color: \"rgba(107, 123, 147, 0.65)\" }}>weight</span>{\" \"}\n <strong style={{ color: \"rgba(107, 123, 147, 0.85)\" }}>\n {driver.weight > 0 ? \"+\" : \"\"}\n {driver.weight}\n </strong>\n </span>\n )}\n </div>\n )}\n\n {/* Timestamps or fallback */}\n {hasTimestamps ? (\n <div\n style={{\n marginTop: \"4px\",\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: \"6px\",\n alignItems: \"center\",\n }}\n >\n <span\n style={{ fontSize: \"11px\", color: \"rgba(30, 33, 37, 0.52)\" }}\n >\n @\n </span>\n {driver.timestamps.map((ts, i) => (\n <button\n key={i}\n type=\"button\"\n aria-label={`Play ${ts.start}–${ts.end}`}\n onClick={(e) => {\n e.stopPropagation();\n if (onPlayTimestamp) {\n onPlayTimestamp(ts.start, ts.end);\n }\n }}\n style={{\n fontSize: \"11px\",\n padding: \"2px 6px\",\n borderRadius: \"999px\",\n border: \"1px solid rgba(52, 58, 64, 0.16)\",\n background: \"rgba(255, 255, 255, 0.70)\",\n color: \"rgba(30, 33, 37, 0.60)\",\n fontFamily: \"ui-monospace, monospace\",\n cursor: \"pointer\",\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: \"4px\",\n transition: \"all 0.15s ease\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.background = \"rgba(255, 255, 255, 0.95)\";\n e.currentTarget.style.borderColor = \"rgba(52, 58, 64, 0.24)\";\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = \"rgba(255, 255, 255, 0.70)\";\n e.currentTarget.style.borderColor = \"rgba(52, 58, 64, 0.16)\";\n }}\n >\n <svg\n width=\"9\"\n height=\"9\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3 2.5L9 6L3 9.5V2.5Z\"\n fill=\"currentColor\"\n />\n </svg>\n {ts.start}–{ts.end}\n </button>\n ))}\n </div>\n ) : (\n <div\n style={{\n marginTop: \"4px\",\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n }}\n >\n @ <strong>timestamps checked</strong>\n </div>\n )}\n </div>\n </div>\n );\n}\n","\"use client\";\n\nimport React, { useState } from \"react\";\nimport { Play } from \"lucide-react\";\nimport DeviationIndicator from \"../primitives/DeviationIndicator\";\n\n/**\n * ScoreDriverCardVariant Component\n * Demonstrates different visual variants for displaying absent states in score driver cards.\n */\nexport default function ScoreDriverCardVariant({\n driver,\n variant,\n onPlayTimestamp,\n}) {\n const [isHovered, setIsHovered] = useState(false);\n const isAbsent = driver.state === \"absent\";\n const hasTimestamps = driver.timestamps && driver.timestamps.length > 0;\n\n // Helper to desaturate a color\n const desaturateColor = (hex) => {\n const r = parseInt(hex.slice(1, 3), 16);\n const g = parseInt(hex.slice(3, 5), 16);\n const b = parseInt(hex.slice(5, 7), 16);\n const gray = Math.round(r * 0.299 + g * 0.587 + b * 0.114);\n const newR = Math.round(gray * 0.7 + r * 0.3);\n const newG = Math.round(gray * 0.7 + g * 0.3);\n const newB = Math.round(gray * 0.7 + b * 0.3);\n return `#${newR.toString(16).padStart(2, \"0\")}${newG\n .toString(16)\n .padStart(2, \"0\")}${newB.toString(16).padStart(2, \"0\")}`;\n };\n\n const getTitleStyle = () => {\n if (!isAbsent) return {};\n\n switch (variant) {\n case \"strikethrough\":\n return {\n textDecoration: \"line-through\",\n textDecorationThickness: \"2px\",\n color: \"rgba(30, 33, 37, 0.70)\",\n };\n case \"opacity\":\n return {\n opacity: 0.45,\n };\n case \"badge\":\n case \"background\":\n case \"desaturated-rail\":\n return {};\n default:\n return {};\n }\n };\n\n const getCardStyle = () => {\n if (isAbsent && variant === \"background\") {\n return {\n background: isHovered\n ? \"rgba(30, 33, 37, 0.06)\"\n : \"rgba(30, 33, 37, 0.03)\",\n };\n }\n if (isAbsent && variant === \"angled-background-tl\") {\n return {\n background: isHovered\n ? \"linear-gradient(135deg, rgba(30, 33, 37, 0.06) 0%, rgba(30, 33, 37, 0.06) 35%, rgba(255, 255, 255, 0.82) 35%, rgba(255, 255, 255, 0.82) 100%)\"\n : \"linear-gradient(135deg, rgba(30, 33, 37, 0.04) 0%, rgba(30, 33, 37, 0.04) 35%, rgba(255, 255, 255, 0.82) 35%, rgba(255, 255, 255, 0.82) 100%)\",\n };\n }\n if (isAbsent && variant === \"angled-background-tr\") {\n return {\n background: isHovered\n ? \"linear-gradient(225deg, rgba(30, 33, 37, 0.06) 0%, rgba(30, 33, 37, 0.06) 35%, rgba(255, 255, 255, 0.82) 35%, rgba(255, 255, 255, 0.82) 100%)\"\n : \"linear-gradient(225deg, rgba(30, 33, 37, 0.04) 0%, rgba(30, 33, 37, 0.04) 35%, rgba(255, 255, 255, 0.82) 35%, rgba(255, 255, 255, 0.82) 100%)\",\n };\n }\n return {\n background: isHovered\n ? \"rgba(231, 212, 162, 0.12)\"\n : \"rgba(255, 255, 255, 0.82)\",\n };\n };\n\n const getRailColor = () => {\n if (isAbsent && variant === \"desaturated-rail\") {\n return desaturateColor(driver.railColor);\n }\n return driver.railColor;\n };\n\n const getRailOpacity = () => {\n if (isAbsent && variant === \"desaturated-rail\") {\n return 0.4;\n }\n return 1;\n };\n\n return (\n <div\n style={{\n position: \"relative\",\n display: \"flex\",\n border: `1px solid ${\n isHovered ? \"rgba(52, 58, 64, 0.18)\" : \"rgba(52, 58, 64, 0.12)\"\n }`,\n borderRadius: \"12px\",\n overflow: \"hidden\",\n ...getCardStyle(),\n boxShadow: \"0 2px 4px rgba(30, 33, 37, 0.06)\",\n transition: \"all 0.2s ease-out\",\n }}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n {/* Left rail = cluster color */}\n <div\n style={{\n width: \"5px\",\n background: getRailColor(),\n opacity: getRailOpacity(),\n }}\n ></div>\n <div style={{ flex: 1, padding: \"10px 12px\" }}>\n {/* Title */}\n <div\n style={{\n fontSize: \"13px\",\n fontWeight: 680,\n color: \"rgba(30, 33, 37, 0.92)\",\n lineHeight: 1.2,\n display: \"flex\",\n alignItems: \"center\",\n gap: \"6px\",\n ...getTitleStyle(),\n }}\n >\n {driver.title}\n {isAbsent && variant === \"badge\" && (\n <span\n style={{\n fontSize: \"9px\",\n padding: \"2px 6px\",\n borderRadius: \"4px\",\n background: \"rgba(30, 33, 37, 0.08)\",\n color: \"rgba(30, 33, 37, 0.60)\",\n fontWeight: 600,\n textDecoration: \"none\",\n }}\n >\n not detected\n </span>\n )}\n </div>\n\n {/* Technical name */}\n <div\n style={{\n marginTop: \"3px\",\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n fontFamily: \"ui-monospace, monospace\",\n ...(isAbsent && variant === \"opacity\" && { opacity: 1 }),\n }}\n >\n {driver.technicalName}\n </div>\n\n {/* Metrics */}\n <div\n style={{\n marginTop: \"3px\",\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n display: \"flex\",\n alignItems: \"center\",\n flexWrap: \"wrap\",\n gap: \"8px\",\n ...(isAbsent && variant === \"opacity\" && { opacity: 1 }),\n }}\n >\n <span style={{ display: \"flex\", alignItems: \"center\", gap: \"4px\" }}>\n state <strong>{driver.state}</strong>\n </span>\n <span>·</span>\n <span style={{ display: \"flex\", alignItems: \"center\", gap: \"4px\" }}>\n conf <strong>{driver.confidence.toFixed(2)}</strong>\n <span\n style={{\n display: \"inline-block\",\n width: \"45px\",\n height: \"3px\",\n background: \"rgba(30, 33, 37, 0.12)\",\n borderRadius: \"2px\",\n position: \"relative\",\n overflow: \"hidden\",\n }}\n >\n <span\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n height: \"100%\",\n width: `${driver.confidence * 100}%`,\n background: \"rgba(30, 33, 37, 0.45)\",\n borderRadius: \"2px\",\n transition: \"width 0.3s ease\",\n }}\n />\n </span>\n </span>\n <span>·</span>\n <span style={{ display: \"flex\", alignItems: \"center\", gap: \"4px\" }}>\n prob <strong>{driver.probability.toFixed(2)}</strong>\n <span\n style={{\n display: \"inline-block\",\n width: \"45px\",\n height: \"3px\",\n background: \"rgba(30, 33, 37, 0.12)\",\n borderRadius: \"2px\",\n position: \"relative\",\n overflow: \"hidden\",\n }}\n >\n <span\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n height: \"100%\",\n width: `${driver.probability * 100}%`,\n background: \"rgba(30, 33, 37, 0.45)\",\n borderRadius: \"2px\",\n transition: \"width 0.3s ease\",\n }}\n />\n </span>\n </span>\n </div>\n\n {/* Timestamps or fallback */}\n {hasTimestamps ? (\n <div\n style={{\n marginTop: \"4px\",\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: \"6px\",\n alignItems: \"center\",\n }}\n >\n <span\n style={{ fontSize: \"11px\", color: \"rgba(30, 33, 37, 0.52)\" }}\n >\n @\n </span>\n {driver.timestamps.map((ts, i) => (\n <span\n key={i}\n style={{ display: \"flex\", gap: \"6px\", alignItems: \"center\" }}\n >\n <span\n style={{\n fontSize: \"11px\",\n padding: \"2px 6px\",\n borderRadius: \"999px\",\n border: \"1px solid rgba(52, 58, 64, 0.16)\",\n background: \"rgba(255, 255, 255, 0.70)\",\n color: \"rgba(30, 33, 37, 0.60)\",\n fontFamily: \"ui-monospace, monospace\",\n }}\n >\n {ts.start}–{ts.end}\n </span>\n <button\n type=\"button\"\n aria-label={`Play ${ts.start}–${ts.end}`}\n onClick={() => onPlayTimestamp?.(ts.start, ts.end)}\n style={{\n width: \"18px\",\n height: \"18px\",\n borderRadius: \"999px\",\n border: \"1px solid rgba(52, 58, 64, 0.22)\",\n background: \"rgba(255, 255, 255, 0.80)\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n padding: 0,\n cursor: \"pointer\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.background = \"rgba(255, 255, 255, 1)\";\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background =\n \"rgba(255, 255, 255, 0.80)\";\n }}\n >\n <Play\n size={8}\n style={{\n marginLeft: \"1px\",\n color: \"rgba(30, 33, 37, 0.70)\",\n }}\n fill=\"rgba(30, 33, 37, 0.70)\"\n />\n </button>\n </span>\n ))}\n </div>\n ) : (\n <div\n style={{\n marginTop: \"4px\",\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n ...(isAbsent && variant === \"opacity\" && { opacity: 1 }),\n }}\n >\n @ <strong>timestamps checked</strong>\n </div>\n )}\n\n {/* Deviation Indicator */}\n {driver.deviation && (\n <div\n style={{\n marginTop: \"6px\",\n display: \"flex\",\n ...(isAbsent && variant === \"opacity\" && { opacity: 1 }),\n }}\n >\n <DeviationIndicator\n level={driver.deviation}\n color={driver.railColor}\n direction={driver.deviationDirection}\n />\n </div>\n )}\n </div>\n </div>\n );\n}\n","\"use client\";\n\nimport React, { useState } from \"react\";\nimport { ChevronDown, Play, Pause } from \"lucide-react\";\nimport { Tooltip, TooltipTrigger, TooltipContent } from \"../primitives/Tooltip\";\nimport DeviationIndicator from \"../primitives/DeviationIndicator\";\n\n/**\n * SignalCard Component\n * Displays a signal card with probability, confidence, and contributing observations.\n */\nexport default function SignalCard({\n signal,\n onExpandObservation,\n activeObservationId = null,\n isObservationPlaying = false,\n showObservationPlaybackControls = true,\n useFallbackObservationDuration = true,\n}) {\n const [isExpanded, setIsExpanded] = useState(false);\n\n const formatObservationTime = (startMs, endMs) => {\n const start = Number(startMs);\n const end = Number(endMs);\n if (!Number.isFinite(start) || !Number.isFinite(end) || end <= start) return null;\n const format = (ms) => {\n const totalSeconds = Math.floor(ms / 1000);\n const minutes = Math.floor(totalSeconds / 60)\n .toString()\n .padStart(2, \"0\");\n const seconds = (totalSeconds % 60).toString().padStart(2, \"0\");\n return `${minutes}:${seconds}`;\n };\n return `${format(start)}–${format(end)}`;\n };\n\n return (\n <div\n style={{\n position: \"relative\",\n background: \"rgba(255, 255, 255, 0.82)\",\n border: \"1px solid rgba(52, 58, 64, 0.12)\",\n borderRadius: \"12px\",\n overflow: \"hidden\",\n boxShadow: \"0 2px 4px rgba(30, 33, 37, 0.06)\",\n }}\n >\n {/* Left rail - subtle color for signal type */}\n {signal.railColor && (\n <div\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n bottom: 0,\n width: \"5px\",\n background: signal.railColor,\n opacity: 0.6,\n }}\n />\n )}\n\n {/* Header - Clickable to expand/collapse */}\n <button\n type=\"button\"\n onClick={() => setIsExpanded(!isExpanded)}\n style={{\n width: \"100%\",\n padding: \"14px 16px 14px 21px\",\n background: \"transparent\",\n border: \"none\",\n cursor: \"pointer\",\n textAlign: \"left\",\n transition: \"background 0.15s ease\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.background = \"rgba(231, 212, 162, 0.08)\";\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = \"transparent\";\n }}\n >\n {/* Content */}\n <div style={{ display: \"flex\", alignItems: \"flex-start\", gap: \"12px\" }}>\n <div style={{ flex: 1, minWidth: 0 }}>\n {/* Signal name and badge */}\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"8px\",\n marginBottom: \"6px\",\n flexWrap: \"wrap\",\n }}\n >\n <span\n style={{\n fontSize: \"16px\",\n fontWeight: 700,\n color: \"rgba(30, 33, 37, 0.92)\",\n lineHeight: 1.15,\n }}\n >\n {signal.name}\n </span>\n {signal.state && (\n <span\n style={{\n fontSize: \"11px\",\n fontWeight: 600,\n color: \"#1F8F5A\",\n background: \"rgba(31, 143, 90, 0.10)\",\n padding: \"6px 8px\",\n borderRadius: \"999px\",\n border: \"1px solid rgba(31,143,90,0.12)\",\n }}\n >\n {String(signal.state).toLowerCase() === \"present\" ? \"present\" : signal.state}\n </span>\n )}\n {signal.isPreview && (\n <span\n style={{\n fontSize: \"9px\",\n fontWeight: 650,\n letterSpacing: \"0.06em\",\n textTransform: \"uppercase\",\n color: \"rgba(184, 156, 106, 0.75)\",\n background: \"rgba(184, 156, 106, 0.12)\",\n padding: \"2px 6px\",\n borderRadius: \"4px\",\n border: \"1px solid rgba(184, 156, 106, 0.2)\",\n }}\n >\n Preview\n </span>\n )}\n </div>\n\n {/* Description */}\n <div\n style={{\n fontSize: \"13px\",\n color: \"rgba(30, 33, 37, 0.66)\",\n lineHeight: 1.4,\n marginBottom: \"8px\",\n }}\n >\n {signal.description}\n </div>\n\n {/* Technical key */}\n <div\n style={{\n fontSize: \"11px\",\n color: \"rgba(30, 33, 37, 0.48)\",\n fontFamily: \"ui-monospace, monospace\",\n marginBottom: \"10px\",\n }}\n >\n {signal.technicalKey}\n </div>\n\n {/* Metrics row */}\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n flexWrap: \"wrap\",\n gap: \"12px\",\n fontSize: \"11.5px\",\n }}\n >\n {/* Probability */}\n <div style={{ display: \"flex\", alignItems: \"center\", gap: \"6px\" }}>\n <Tooltip>\n <TooltipTrigger asChild>\n <span\n style={{\n color: \"rgba(139, 157, 127, 0.65)\",\n cursor: \"help\",\n borderBottom: \"1px dotted rgba(139, 157, 127, 0.35)\",\n }}\n >\n prob\n </span>\n </TooltipTrigger>\n <TooltipContent className=\"w-fit max-w-[34ch] h-auto min-h-0 px-4 py-3 whitespace-normal break-words text-left text-[13px] leading-[1.45]\">\n <div>\n <div style={{ fontWeight: 600, marginBottom: \"4px\", maxWidth: \"34ch\" }}>\n Probability measures expectation.\n </div>\n <div style={{ color: \"rgba(255, 255, 255, 0.85)\", maxWidth: \"34ch\" }}>\n How likely this pattern is, given past sessions and current observations.\n </div>\n </div>\n </TooltipContent>\n </Tooltip>\n <strong\n style={{\n color: `rgba(139, 157, 127, ${signal.probability})`,\n }}\n >\n {signal.probability.toFixed(2)}\n </strong>\n {signal.probabilityRange && (\n <span\n style={{\n color: \"rgba(30, 33, 37, 0.42)\",\n fontSize: \"10.5px\",\n }}\n >\n ({signal.probabilityRange.min.toFixed(2)}–\n {signal.probabilityRange.max.toFixed(2)})\n </span>\n )}\n <span\n style={{\n display: \"inline-block\",\n width: \"50px\",\n height: \"3px\",\n background: \"rgba(30, 33, 37, 0.12)\",\n borderRadius: \"2px\",\n position: \"relative\",\n overflow: \"hidden\",\n }}\n >\n <span\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n height: \"100%\",\n width: `${signal.probability * 100}%`,\n background: `rgba(139, 157, 127, ${signal.probability})`,\n borderRadius: \"2px\",\n transition: \"width 0.3s ease\",\n }}\n />\n </span>\n </div>\n\n <span style={{ color: \"rgba(30, 33, 37, 0.24)\" }}>·</span>\n\n {/* Confidence */}\n <div style={{ display: \"flex\", alignItems: \"center\", gap: \"6px\" }}>\n <Tooltip>\n <TooltipTrigger asChild>\n <span\n style={{\n color: \"rgba(184, 156, 106, 0.65)\",\n cursor: \"help\",\n borderBottom: \"1px dotted rgba(184, 156, 106, 0.35)\",\n }}\n >\n conf\n </span>\n </TooltipTrigger>\n <TooltipContent className=\"w-fit max-w-[34ch] h-auto min-h-0 px-4 py-3 whitespace-normal break-words text-left text-[12px] leading-[1.45]\">\n <div>\n <div style={{ fontWeight: 600, marginBottom: \"4px\", maxWidth: \"34ch\" }}>\n Confidence measures evidence.\n </div>\n <div style={{ color: \"rgba(255, 255, 255, 0.85)\", maxWidth: \"34ch\" }}>\n How strongly the observations in this session support this signal.\n </div>\n </div>\n </TooltipContent>\n </Tooltip>\n <strong\n style={{\n color: `rgba(184, 156, 106, ${signal.confidence})`,\n }}\n >\n {signal.confidence.toFixed(2)}\n </strong>\n <span\n style={{\n display: \"inline-block\",\n width: \"50px\",\n height: \"3px\",\n background: \"rgba(30, 33, 37, 0.12)\",\n borderRadius: \"2px\",\n position: \"relative\",\n overflow: \"hidden\",\n }}\n >\n <span\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n height: \"100%\",\n width: `${signal.confidence * 100}%`,\n background: `rgba(184, 156, 106, ${signal.confidence})`,\n borderRadius: \"2px\",\n transition: \"width 0.3s ease\",\n }}\n />\n </span>\n </div>\n\n <span style={{ color: \"rgba(30, 33, 37, 0.24)\" }}>·</span>\n\n {/* Observation count */}\n <div\n style={{\n color: \"rgba(30, 33, 37, 0.52)\",\n fontSize: \"11px\",\n }}\n >\n {(signal.contributingObservations || []).length} observation\n {(signal.contributingObservations || []).length !== 1 ? \"s\" : \"\"}\n </div>\n </div>\n </div>\n\n {/* Rotating chevron on right */}\n <div\n style={{\n paddingTop: \"2px\",\n color: \"rgba(30, 33, 37, 0.42)\",\n flexShrink: 0,\n transition: \"transform 0.2s ease\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"flex-end\",\n gap: \"8px\",\n }}\n >\n {signal.deviation && (\n <DeviationIndicator\n level={signal.deviation}\n color={signal.railColor || \"rgba(30, 33, 37, 0.65)\"}\n direction={signal.deviationDirection}\n />\n )}\n <ChevronDown\n size={18}\n style={{\n transform: isExpanded ? \"rotate(180deg)\" : \"rotate(0deg)\",\n transition: \"transform 0.2s ease\",\n }}\n />\n </div>\n </div>\n </button>\n\n {/* Expanded view - Contributing observations */}\n {isExpanded && (\n <div\n style={{\n borderTop: \"1px solid rgba(52, 58, 64, 0.08)\",\n background: \"rgba(244, 241, 230, 0.25)\",\n padding: \"16px 16px 16px 21px\",\n }}\n >\n <div\n style={{\n fontSize: \"10px\",\n fontWeight: 650,\n letterSpacing: \"0.08em\",\n textTransform: \"uppercase\",\n color: \"rgba(30, 33, 37, 0.52)\",\n marginBottom: \"12px\",\n }}\n >\n Contributing Observations\n </div>\n\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"8px\",\n }}\n >\n {(signal.contributingObservations || []).map((obs, idx) => {\n const durationLabel = formatObservationTime(obs?.startMs, obs?.endMs);\n const playbackDurationLabel =\n durationLabel || (useFallbackObservationDuration ? \"00:00–00:04\" : null);\n const canPlayObservation = Boolean(playbackDurationLabel);\n const handleObservationAction = () => onExpandObservation?.(obs.key);\n const isCurrentObservationPlaying =\n Boolean(isObservationPlaying) &&\n Boolean(activeObservationId) &&\n String(activeObservationId) === String(obs?.playbackId || \"\");\n\n return (\n <div\n key={idx}\n role=\"button\"\n tabIndex={0}\n onClick={handleObservationAction}\n onKeyDown={(event) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n handleObservationAction();\n }\n }}\n style={{\n background: isCurrentObservationPlaying\n ? \"rgba(94, 136, 176, 0.08)\"\n : \"rgba(255, 255, 255, 0.85)\",\n border: isCurrentObservationPlaying\n ? \"1px solid rgba(94, 136, 176, 0.35)\"\n : \"1px solid rgba(52, 58, 64, 0.12)\",\n borderRadius: \"8px\",\n padding: \"10px 12px\",\n textAlign: \"left\",\n cursor: \"pointer\",\n transition: \"all 0.15s ease\",\n position: \"relative\",\n overflow: \"hidden\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.background = \"rgba(255, 255, 255, 1)\";\n e.currentTarget.style.borderColor = \"rgba(52, 58, 64, 0.20)\";\n e.currentTarget.style.transform = \"translateX(2px)\";\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = \"rgba(255, 255, 255, 0.85)\";\n e.currentTarget.style.borderColor = \"rgba(52, 58, 64, 0.12)\";\n e.currentTarget.style.transform = \"translateX(0)\";\n }}\n >\n {/* Influence indicator - subtle left accent */}\n <div\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n bottom: 0,\n width: \"3px\",\n background:\n obs.influence === \"increases\"\n ? \"rgba(107, 123, 147, 0.35)\"\n : obs.influence === \"decreases\"\n ? \"rgba(30, 33, 37, 0.15)\"\n : \"rgba(30, 33, 37, 0.08)\",\n borderRadius: \"8px 0 0 8px\",\n }}\n />\n\n <div style={{ paddingLeft: \"6px\", marginBottom: \"6px\" }}>\n <div\n style={{\n fontSize: \"12px\",\n color: \"rgba(30, 33, 37, 0.82)\",\n lineHeight: 1.4,\n }}\n >\n {obs.statement}\n </div>\n </div>\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"8px\",\n fontSize: \"10.5px\",\n paddingLeft: \"6px\",\n }}\n >\n <span\n style={{\n fontFamily: \"ui-monospace, monospace\",\n color: \"rgba(30, 33, 37, 0.42)\",\n }}\n >\n {obs.key}\n </span>\n <span style={{ color: \"rgba(30, 33, 37, 0.24)\" }}>·</span>\n <span style={{ color: \"rgba(184, 156, 106, 0.65)\" }}>\n conf\n </span>\n <strong\n style={{\n color: `rgba(184, 156, 106, ${obs.confidence})`,\n }}\n >\n {obs.confidence.toFixed(2)}\n </strong>\n <span style={{ color: \"rgba(30, 33, 37, 0.24)\" }}>·</span>\n <span\n style={{\n fontSize: \"10px\",\n color:\n obs.influence === \"increases\"\n ? \"rgba(107, 123, 147, 0.75)\"\n : obs.influence === \"decreases\"\n ? \"rgba(30, 33, 37, 0.52)\"\n : \"rgba(30, 33, 37, 0.42)\",\n }}\n >\n {obs.influence === \"increases\"\n ? \"↑ increases signal\"\n : obs.influence === \"decreases\"\n ? \"↓ decreases signal\"\n : \"− neutral\"}\n </span>\n </div>\n\n {showObservationPlaybackControls && canPlayObservation ? (\n <div\n style={{\n marginTop: \"8px\",\n paddingLeft: \"6px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: \"8px\",\n }}\n >\n <span\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n border: isCurrentObservationPlaying\n ? \"1px solid rgba(94, 136, 176, 0.35)\"\n : \"1px solid rgba(148, 163, 184, 0.35)\",\n borderRadius: \"999px\",\n padding: \"2px 9px\",\n fontFamily: \"ui-monospace, monospace\",\n fontSize: \"10px\",\n color: \"rgba(71, 85, 105, 0.9)\",\n background: \"rgba(255,255,255,0.9)\",\n }}\n >\n {playbackDurationLabel}\n </span>\n <button\n type=\"button\"\n onClick={(event) => {\n event.stopPropagation();\n handleObservationAction();\n }}\n aria-label={\n isCurrentObservationPlaying\n ? \"Pause observation segment\"\n : \"Play observation segment\"\n }\n title={\n isCurrentObservationPlaying\n ? \"Pause observation segment\"\n : \"Play observation segment\"\n }\n disabled={!canPlayObservation}\n style={{\n width: \"26px\",\n height: \"26px\",\n borderRadius: \"999px\",\n border: isCurrentObservationPlaying\n ? \"1px solid rgba(94, 136, 176, 0.45)\"\n : \"1px solid rgba(148, 163, 184, 0.35)\",\n background: isCurrentObservationPlaying\n ? \"rgba(94,136,176,0.12)\"\n : \"rgba(255,255,255,0.95)\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n cursor: \"pointer\",\n color: isCurrentObservationPlaying\n ? \"rgba(94,136,176,0.95)\"\n : \"rgba(30, 33, 37, 0.72)\",\n opacity: canPlayObservation ? 1 : 0.45,\n }}\n >\n {isCurrentObservationPlaying ? <Pause size={12} /> : <Play size={12} />}\n </button>\n </div>\n ) : null}\n </div>\n );\n })}\n </div>\n\n {/* Reasoning note */}\n <div\n style={{\n marginTop: \"12px\",\n padding: \"10px 12px\",\n background: \"rgba(255, 255, 255, 0.6)\",\n borderRadius: \"6px\",\n fontSize: \"11px\",\n color: \"rgba(30, 33, 37, 0.65)\",\n lineHeight: 1.5,\n fontStyle: \"italic\",\n }}\n >\n <strong\n style={{ fontStyle: \"normal\", color: \"rgba(30, 33, 37, 0.75)\" }}\n >\n Note:\n </strong>{\" \"}\n This signal summarizes patterns observed in this session. It does not\n replace human judgment or constitute a conclusion.\n </div>\n </div>\n )}\n </div>\n );\n}\n\n","\"use client\";\n\nimport React, { useState } from \"react\";\nimport { Pencil } from \"lucide-react\";\nimport DeviationIndicator from \"../primitives/DeviationIndicator\";\n\n/**\n * ConditionCard Component\n * Displays a condition card with category, title, metadata, definition, and editable policy section.\n * \n * @param {Object} data - The condition data object\n * @param {string} data.category - Category label\n * @param {string} data.title - Main title\n * @param {string} data.shortName - Short name\n * @param {string} data.technicalName - Technical name\n * @param {Object} data.metadata - Metadata object with type, tier, priority, vertical\n * @param {string} data.definition - Definition text\n * @param {Object} data.policy - Policy object with requiresPolicy and text\n * @param {string} data.railColor - Color for the left rail\n * @param {number} data.deviation - Deviation level (1-5)\n * @param {string} data.deviationDirection - Deviation direction ('up' or 'down')\n */\nexport default function ConditionCard({ data }) {\n const [isEditingPolicy, setIsEditingPolicy] = useState(false);\n const [policyText, setPolicyText] = useState(data.policy.text);\n\n const handleEditPolicy = () => {\n setIsEditingPolicy(true);\n };\n\n const handleSavePolicy = () => {\n setIsEditingPolicy(false);\n // In a real app, this would save to a backend\n console.log(\"Saving policy:\", policyText);\n };\n\n const handleCancelEdit = () => {\n setIsEditingPolicy(false);\n setPolicyText(data.policy.text);\n };\n\n return (\n <div\n className=\"flex rounded-2xl bg-white/85 shadow-lg border border-slate-200/50\"\n style={{ maxWidth: \"900px\", overflow: \"visible\" }}\n >\n {/* Left color rail */}\n <div\n className=\"w-1.5 flex-shrink-0 rounded-l-2xl\"\n style={{ backgroundColor: data.railColor }}\n />\n\n {/* Main content */}\n <div className=\"flex-1 p-6 overflow-visible\">\n {/* Category label */}\n <div\n className=\"text-[11px] tracking-[0.16em] uppercase mb-2.5\"\n style={{ color: \"rgba(30, 33, 37, 0.36)\", fontWeight: 650 }}\n >\n {data.category}\n </div>\n\n {/* Title and Deviation */}\n <div className=\"flex items-start justify-between gap-4 mb-1.5 relative\">\n <h2\n className=\"flex-1\"\n style={{\n fontSize: \"18px\",\n fontWeight: 720,\n letterSpacing: \"-0.01em\",\n lineHeight: 1.25,\n color: \"rgba(30, 33, 37, 0.92)\",\n }}\n >\n {data.title}\n </h2>\n {data.deviation && (\n <div className=\"flex-shrink-0\">\n <DeviationIndicator\n level={data.deviation}\n color={data.railColor}\n direction={data.deviationDirection}\n />\n </div>\n )}\n </div>\n\n {/* Short name */}\n <div\n className=\"text-[13px] leading-snug mt-1.5\"\n style={{ color: \"rgba(30, 33, 37, 0.68)\" }}\n >\n Short name: <strong>{data.shortName}</strong>\n </div>\n\n {/* Technical name */}\n <div\n className=\"mt-2 text-[11.5px] font-mono\"\n style={{ color: \"rgba(30, 33, 37, 0.52)\" }}\n >\n {data.technicalName}\n </div>\n\n {/* Metadata */}\n <div\n className=\"mt-0.5 text-[11.5px]\"\n style={{ color: \"rgba(30, 33, 37, 0.52)\" }}\n >\n type <strong>{data.metadata.type}</strong> · tier{\" \"}\n <strong>{data.metadata.tier}</strong> · priority{\" \"}\n <strong>{data.metadata.priority}</strong> · vertical{\" \"}\n <strong>{data.metadata.vertical}</strong>\n </div>\n\n {/* Definition section */}\n <div className=\"mt-5\">\n <div\n className=\"text-[11px] tracking-[0.16em] uppercase mb-2.5\"\n style={{ color: \"rgba(30, 33, 37, 0.36)\", fontWeight: 650 }}\n >\n Definition\n </div>\n <p\n className=\"text-[13px] leading-relaxed\"\n style={{ color: \"rgba(30, 33, 37, 0.72)\" }}\n >\n {data.definition}\n </p>\n </div>\n\n {/* Policy section */}\n <div className=\"mt-6 border border-slate-200/50 rounded-xl bg-white/70 p-4\">\n {/* Policy header */}\n <div className=\"flex items-center justify-between gap-3 mb-3\">\n <div className=\"flex items-center gap-2.5\">\n <div\n className=\"text-[11px] tracking-[0.16em] uppercase\"\n style={{ color: \"rgba(30, 33, 37, 0.36)\", fontWeight: 650 }}\n >\n Policy\n </div>\n\n {data.policy.requiresPolicy && (\n <div\n className=\"text-[10px] tracking-[0.12em] uppercase border px-2 py-1 rounded-full\"\n style={{\n color: \"rgba(30, 33, 37, 0.55)\",\n borderColor: \"rgba(30, 33, 37, 0.40)\",\n background: \"rgba(255, 255, 255, 0.70)\",\n }}\n >\n requires_policy\n </div>\n )}\n </div>\n\n {/* Edit button */}\n {!isEditingPolicy && (\n <button\n onClick={handleEditPolicy}\n className=\"inline-flex items-center gap-2 text-xs px-3 py-1.5 rounded-lg border shadow-sm transition-all hover:shadow-md\"\n style={{\n borderColor: \"rgba(30, 33, 37, 0.40)\",\n background: \"rgba(255, 255, 255, 0.92)\",\n color: \"rgba(30, 33, 37, 0.78)\",\n }}\n aria-label=\"Edit policy\"\n >\n <Pencil\n className=\"w-3.5 h-3.5\"\n style={{ color: \"rgba(30, 33, 37, 0.70)\" }}\n />\n Edit policy\n </button>\n )}\n </div>\n\n {/* Policy text or editor */}\n {isEditingPolicy ? (\n <div className=\"space-y-3\">\n <textarea\n value={policyText}\n onChange={(e) => setPolicyText(e.target.value)}\n className=\"w-full text-[12.5px] leading-relaxed border rounded-lg p-3 focus:outline-none focus:ring-2 focus:ring-blue-500/50 focus:border-blue-500/50 resize-none\"\n style={{\n color: \"rgba(30, 33, 37, 0.62)\",\n borderColor: \"rgba(30, 33, 37, 0.30)\",\n }}\n rows={6}\n />\n <div className=\"flex gap-2 justify-end\">\n <button\n onClick={handleCancelEdit}\n className=\"px-3 py-1.5 text-xs rounded-lg border transition-colors\"\n style={{\n borderColor: \"rgba(30, 33, 37, 0.30)\",\n background: \"white\",\n color: \"rgba(30, 33, 37, 0.70)\",\n }}\n >\n Cancel\n </button>\n <button\n onClick={handleSavePolicy}\n className=\"px-3 py-1.5 text-xs rounded-lg text-white transition-colors shadow-sm\"\n style={{\n background: \"#2563eb\",\n }}\n >\n Save policy\n </button>\n </div>\n </div>\n ) : (\n <p\n className=\"text-[12.5px] leading-relaxed\"\n style={{ color: \"rgba(30, 33, 37, 0.62)\" }}\n >\n {policyText}\n </p>\n )}\n </div>\n </div>\n </div>\n );\n}\n\n","\"use client\";\n\nimport React, { useState } from \"react\";\nimport { ChevronDown } from \"lucide-react\";\nimport ScoreDriverCard from \"./ScoreDriverCard\";\n\n/**\n * ModelScoreCard Component\n * Displays a model score with expandable drivers/conditions.\n * \n * @param {Object} props - Component props\n * @param {number} props.score - The score value (0-100)\n * @param {number} props.confidence - Confidence level (0-1)\n * @param {Object} props.range - Range object with min and max\n * @param {string} props.modelKey - Model key identifier\n * @param {string} props.modelVersion - Model version\n * @param {string} props.title - Title for the score\n * @param {boolean} props.expanded - Whether drivers section is expanded\n * @param {Array} props.drivers - Array of score driver objects\n * @param {Function} props.onViewDrivers - Callback when expand/collapse is clicked\n * @param {Function} props.onPlayTimestamp - Callback when play timestamp is clicked\n */\nexport default function ModelScoreCard({\n score,\n confidence,\n range,\n modelKey = \"legacy_overall\",\n modelVersion = \"v2026_01_11_01\",\n title = \"Agent Score\",\n expanded: initialExpanded = false,\n drivers = [],\n onViewDrivers,\n onPlayTimestamp,\n}) {\n const [expanded, setExpanded] = useState(initialExpanded);\n\n const handleToggle = () => {\n const newExpanded = !expanded;\n setExpanded(newExpanded);\n if (onViewDrivers) {\n onViewDrivers();\n }\n };\n\n return (\n <div>\n {/* Section header */}\n <div style={{ marginBottom: \"12px\" }}>\n <div\n className=\"text-[11px] tracking-[0.14em] uppercase mb-2\"\n style={{ color: \"rgba(30, 33, 37, 0.42)\", fontWeight: 650 }}\n >\n MODEL OUTPUT\n </div>\n <div\n style={{\n fontSize: \"16px\",\n fontWeight: 720,\n letterSpacing: \"-0.01em\",\n color: \"rgba(30, 33, 37, 0.92)\",\n lineHeight: 1.2,\n }}\n >\n {title}\n <span\n style={{\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n fontFamily: \"ui-monospace, monospace\",\n marginLeft: \"10px\",\n }}\n >\n model_key: {modelKey} · {modelVersion}\n </span>\n </div>\n </div>\n\n {/* Model output block */}\n <div\n style={{\n border: \"1px solid rgba(52, 58, 64, 0.12)\",\n borderRadius: \"14px\",\n background: \"rgba(255, 255, 255, 0.82)\",\n overflow: \"hidden\",\n }}\n >\n {/* Clickable header area */}\n <button\n type=\"button\"\n onClick={handleToggle}\n disabled={drivers.length === 0}\n style={{\n width: \"100%\",\n padding: \"16px 18px\",\n background: \"transparent\",\n border: \"none\",\n cursor: drivers.length > 0 ? \"pointer\" : \"default\",\n textAlign: \"left\",\n transition: \"background 0.15s ease\",\n }}\n onMouseEnter={(e) => {\n if (drivers.length > 0) {\n e.currentTarget.style.background = \"rgba(231, 212, 162, 0.08)\";\n }\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = \"transparent\";\n }}\n >\n <div style={{ display: \"flex\", alignItems: \"flex-start\", gap: \"16px\" }}>\n <div style={{ flex: 1, minWidth: 0 }}>\n {/* Score row */}\n <div\n style={{\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: \"16px\",\n alignItems: \"baseline\",\n marginBottom: \"12px\",\n }}\n >\n <div\n style={{\n fontSize: \"32px\",\n fontWeight: 760,\n letterSpacing: \"-0.02em\",\n color: \"rgba(30, 33, 37, 0.92)\",\n lineHeight: 1,\n }}\n >\n {score}\n </div>\n <div\n style={{\n fontSize: \"12px\",\n color: \"rgba(30, 33, 37, 0.62)\",\n lineHeight: 1.4,\n }}\n >\n score (0–100) · confidence <strong>{confidence.toFixed(2)}</strong> ·{\" \"}\n <span\n style={{\n borderBottom: \"1px dashed rgba(231, 212, 162, 0.65)\",\n }}\n >\n model-based estimate\n </span>\n </div>\n </div>\n\n {/* Range + normalization note */}\n <div\n style={{\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n lineHeight: 1.5,\n }}\n >\n range <strong>{range.min}–{range.max}</strong> (illustrative) · normalized for comparability across calls ·{\" \"}\n {expanded\n ? \"based on evidence-weighted condition signals\"\n : \"evidence-weighted condition signals\"}\n </div>\n </div>\n\n {/* Rotating chevron on right */}\n {drivers.length > 0 && (\n <div\n style={{\n paddingTop: \"6px\",\n color: \"rgba(30, 33, 37, 0.42)\",\n flexShrink: 0,\n transition: \"transform 0.2s ease\",\n }}\n >\n <ChevronDown\n size={18}\n style={{\n transform: expanded ? \"rotate(180deg)\" : \"rotate(0deg)\",\n transition: \"transform 0.2s ease\",\n }}\n />\n </div>\n )}\n </div>\n </button>\n\n {/* Expanded state: drivers */}\n {expanded && drivers.length > 0 && (\n <div\n style={{\n borderTop: \"1px solid rgba(52, 58, 64, 0.10)\",\n padding: \"16px 18px 18px 18px\",\n }}\n >\n {/* Drivers header */}\n <div\n className=\"text-[10px] tracking-[0.12em] uppercase mb-4\"\n style={{ color: \"rgba(30, 33, 37, 0.36)\", fontWeight: 650 }}\n >\n SCORE CONDITIONS FOR THIS INTERACTION\n </div>\n\n {/* Drivers list */}\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: \"14px\" }}>\n {drivers.map((driver, i) => (\n <ScoreDriverCard\n key={i}\n driver={driver}\n onPlayTimestamp={onPlayTimestamp}\n showWeight={true}\n />\n ))}\n </div>\n\n {/* Note */}\n <div\n style={{\n marginTop: \"16px\",\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n lineHeight: 1.5,\n }}\n >\n Conditions shown are the largest contributors for this model on this interaction. Inspect timestamps to verify supporting evidence.\n </div>\n </div>\n )}\n </div>\n </div>\n );\n}\n","\"use client\";\n\n/**\n * SummarySection component\n * Provides narrative context at the session level.\n * Uses neutral, evidence-aware language with explicit boundaries about what can be known from the transcript.\n */\n\nexport default function SummarySection({ \n title = \"Interaction overview\", \n summary,\n boundaryNote = \"This summary reflects observed conversation content and is bounded by transcript quality and available evidence.\"\n}) {\n return (\n <div className=\"pb-2\">\n {/* Section header */}\n <div className=\"mb-3\">\n <div \n className=\"text-[11px] tracking-[0.14em] uppercase mb-1.5\"\n style={{ color: 'rgba(30, 33, 37, 0.42)', fontWeight: 650 }}\n >\n Summary\n </div>\n <h2 \n className=\"text-[15px] leading-tight\"\n style={{ \n fontWeight: 700, \n letterSpacing: '-0.01em',\n color: 'rgba(30, 33, 37, 0.90)',\n lineHeight: 1.2\n }}\n >\n {title}\n </h2>\n </div>\n\n {/* Summary body */}\n <div \n className=\"text-[13.5px] max-w-[860px]\"\n style={{ \n lineHeight: 1.6,\n color: 'rgba(30, 33, 37, 0.70)'\n }}\n >\n {summary}\n </div>\n\n {/* Boundary / confidence note */}\n {boundaryNote && (\n <div \n className=\"mt-2 text-[11.5px]\"\n style={{ \n color: 'rgba(30, 33, 37, 0.52)',\n lineHeight: 1.5\n }}\n >\n {boundaryNote}\n </div>\n )}\n </div>\n );\n}\n\n"],"names":["ObservationCard","data","isExpanded","setIsExpanded","useState","jsxs","jsx","DeviationIndicator","ChevronDown","val","i","condition","tag","SmallObservationCard","category","statement","technicalKey","value","confidence","relevance","timestamps","railColor","expanded","nestedObservations","onPlayTimestamp","onToggle","selected","onClick","deviation","deviationDirection","isHovered","setIsHovered","Tooltip","TooltipTrigger","TooltipContent","Fragment","ts","e","ScoreDriverCard","driver","showWeight","hideMetrics","isAbsent","hasTimestamps","ScoreDriverCardVariant","variant","desaturateColor","hex","r","g","b","gray","newR","newG","newB","getTitleStyle","getCardStyle","getRailColor","getRailOpacity","Play","SignalCard","signal","onExpandObservation","activeObservationId","isObservationPlaying","showObservationPlaybackControls","useFallbackObservationDuration","formatObservationTime","startMs","endMs","start","end","format","ms","totalSeconds","minutes","seconds","obs","idx","playbackDurationLabel","canPlayObservation","handleObservationAction","isCurrentObservationPlaying","event","Pause","ConditionCard","isEditingPolicy","setIsEditingPolicy","policyText","setPolicyText","handleEditPolicy","handleSavePolicy","handleCancelEdit","Pencil","ModelScoreCard","score","range","modelKey","modelVersion","title","initialExpanded","drivers","onViewDrivers","setExpanded","SummarySection","summary","boundaryNote"],"mappings":";;;;;AAuBwB,SAAAA,EAAgB,EAAE,MAAAC,KAAQ;AAChD,QAAM,CAACC,GAAYC,CAAa,IAAIC,EAAS,EAAK;AAGhD,SAAA,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,OAAO,EAAE,UAAU,QAAQ;AAAA,MAG3B,UAAA;AAAA,QAAA,gBAAAC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,OAAO,EAAE,iBAAiBL,EAAK,UAAU;AAAA,UAAA;AAAA,QAC3C;AAAA,QAGA,gBAAAI,EAAC,OAAI,EAAA,WAAU,UAEb,UAAA;AAAA,UAAA,gBAAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,SAAS,MAAMF,EAAc,CAACD,CAAU;AAAA,cACxC,WAAU;AAAA,cAGV,UAAA;AAAA,gBAAA,gBAAAI;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,WAAU;AAAA,oBACV,OAAO,EAAE,OAAO,0BAA0B,YAAY,IAAI;AAAA,oBAEzD,UAAKL,EAAA;AAAA,kBAAA;AAAA,gBACR;AAAA,gBAGA,gBAAAI,EAAC,OAAI,EAAA,WAAU,+CACb,UAAA;AAAA,kBAAA,gBAAAC;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,WAAU;AAAA,sBACV,OAAO;AAAA,wBACL,UAAU;AAAA,wBACV,YAAY;AAAA,wBACZ,eAAe;AAAA,wBACf,YAAY;AAAA,wBACZ,OAAO;AAAA,sBACT;AAAA,sBAEC,UAAKL,EAAA;AAAA,oBAAA;AAAA,kBACR;AAAA,kBACA,gBAAAI;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,OAAO;AAAA,wBACL,SAAS;AAAA,wBACT,eAAe;AAAA,wBACf,YAAY;AAAA,wBACZ,KAAK;AAAA,sBACP;AAAA,sBAEC,UAAA;AAAA,wBAAAJ,EAAK,aACJ,gBAAAK;AAAA,0BAACC;AAAA,0BAAA;AAAA,4BACC,OAAON,EAAK;AAAA,4BACZ,OAAOA,EAAK;AAAA,4BACZ,WAAWA,EAAK;AAAA,0BAAA;AAAA,wBAClB;AAAA,wBAEF,gBAAAK;AAAA,0BAACE;AAAA,0BAAA;AAAA,4BACC,MAAM;AAAA,4BACN,OAAO;AAAA,8BACL,OAAO;AAAA,8BACP,YAAY;AAAA,8BACZ,WAAWN,IAAa,mBAAmB;AAAA,8BAC3C,YAAY;AAAA,4BACd;AAAA,0BAAA;AAAA,wBACF;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBACF;AAAA,gBAAA,GACF;AAAA,gBAGA,gBAAAI;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,WAAU;AAAA,oBACV,OAAO,EAAE,OAAO,yBAAyB;AAAA,oBAExC,UAAKL,EAAA;AAAA,kBAAA;AAAA,gBACR;AAAA,gBAGA,gBAAAI;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,WAAU;AAAA,oBACV,OAAO,EAAE,OAAO,yBAAyB;AAAA,oBAC1C,UAAA;AAAA,sBAAA;AAAA,sBACa,gBAAAC,EAAA,UAAA,EAAQ,UAAKL,EAAA,SAAS,WAAU;AAAA,sBAC3C;AAAA,sBAAM;AAAA,sBAAS;AAAA,sBACfA,EAAK,SAAS,QAAQ,IAAI,CAACQ,GAAKC,wBAC9B,QACC,EAAA,UAAA;AAAA,wBAAA,gBAAAJ,EAAC,YAAQ,UAAIG,EAAA,CAAA;AAAA,wBACZC,IAAIT,EAAK,SAAS,QAAQ,SAAS,KAAK;AAAA,sBAAA,EAAA,GAFhCQ,CAGX,CACD;AAAA,sBACA;AAAA,sBAAM;AAAA,sBAAU,gBAAAH,EAAA,UAAA,EAAQ,UAAKL,EAAA,SAAS,SAAQ;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACjD;AAAA,gBAGA,gBAAAK;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,WAAU;AAAA,oBACV,OAAO,EAAE,OAAO,yBAAyB;AAAA,oBAExC,UAAKL,EAAA;AAAA,kBAAA;AAAA,gBACR;AAAA,gBAGA,gBAAAK;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,WAAU;AAAA,oBACV,OAAO,EAAE,OAAO,yBAAyB;AAAA,oBAExC,cACG,6BACA;AAAA,kBAAA;AAAA,gBACN;AAAA,cAAA;AAAA,YAAA;AAAA,UACF;AAAA,UAGCJ,KACC,gBAAAG,EAAC,OAAI,EAAA,WAAU,sDAEb,UAAA;AAAA,YAAA,gBAAAC;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,OAAO,EAAE,OAAO,0BAA0B,YAAY,IAAI;AAAA,gBAC3D,UAAA;AAAA,cAAA;AAAA,YAED;AAAA,YACA,gBAAAA,EAAC,SAAI,WAAU,4BACZ,YAAK,mBAAmB,IAAI,CAACK,MAC5B,gBAAAN;AAAA,cAAC;AAAA,cAAA;AAAA,gBAEC,WAAU;AAAA,gBAEV,UAAA;AAAA,kBAAA,gBAAAC;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,WAAU;AAAA,sBACV,OAAO,EAAE,iBAAiBK,EAAU,UAAU;AAAA,oBAAA;AAAA,kBAChD;AAAA,kBACA,gBAAAN,EAAC,OAAI,EAAA,WAAU,oBACb,UAAA;AAAA,oBAAA,gBAAAC;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,WAAU;AAAA,wBACV,OAAO;AAAA,0BACL,YAAY;AAAA,0BACZ,YAAY;AAAA,0BACZ,OAAO;AAAA,wBACT;AAAA,wBAEC,UAAUK,EAAA;AAAA,sBAAA;AAAA,oBACb;AAAA,oBACA,gBAAAL;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,WAAU;AAAA,wBACV,OAAO,EAAE,OAAO,yBAAyB;AAAA,wBAExC,UAAUK,EAAA;AAAA,sBAAA;AAAA,oBACb;AAAA,oBACA,gBAAAN;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,WAAU;AAAA,wBACV,OAAO,EAAE,OAAO,yBAAyB;AAAA,wBAC1C,UAAA;AAAA,0BAAA;AAAA,0BACM,gBAAAC,EAAC,UAAQ,EAAA,UAAAK,EAAU,KAAK,CAAA;AAAA,wBAAA;AAAA,sBAAA;AAAA,oBAC/B;AAAA,kBAAA,GACF;AAAA,gBAAA;AAAA,cAAA;AAAA,cA9BKA,EAAU;AAAA,YAgClB,CAAA,GACH;AAAA,YAGA,gBAAAL;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,OAAO,EAAE,OAAO,0BAA0B,YAAY,IAAI;AAAA,gBAC3D,UAAA;AAAA,cAAA;AAAA,YAED;AAAA,YACA,gBAAAA,EAAC,SAAI,WAAU,6BACZ,YAAK,KAAK,IAAI,CAACM,MACd,gBAAAN;AAAA,cAAC;AAAA,cAAA;AAAA,gBAEC,WAAU;AAAA,gBACV,OAAO;AAAA,kBACL,aAAa;AAAA,kBACb,YAAY;AAAA,kBACZ,OAAO;AAAA,gBACT;AAAA,gBAEC,UAAAM;AAAA,cAAA;AAAA,cARIA;AAAA,YAUR,CAAA,GACH;AAAA,YAGA,gBAAAN;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,OAAO,EAAE,OAAO,0BAA0B,YAAY,IAAI;AAAA,gBAC3D,UAAA;AAAA,cAAA;AAAA,YAED;AAAA,YACA,gBAAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,OAAO,EAAE,OAAO,yBAAyB;AAAA,gBAExC,UAAKL,EAAA;AAAA,cAAA;AAAA,YACR;AAAA,UAAA,GACF;AAAA,QAAA,GAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;ACpNA,SAAwBY,EAAqB;AAAA,EAC3C,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,cAAAC;AAAA,EACA,OAAAC;AAAA,EACA,YAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC,IAAa,CAAC;AAAA,EACd,WAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,oBAAAC,IAAqB,CAAC;AAAA,EACtB,iBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,oBAAAC;AACF,GAAG;AACD,QAAM,CAACC,GAAWC,CAAY,IAAI3B,EAAS,EAAK;AAG9C,SAAA,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,QACL,UAAU;AAAA,QACV,SAAS;AAAA,QACT,QAAQ,aACNqB,IACI,6BACAI,IACA,2BACA,wBACN;AAAA,QACA,cAAc;AAAA,QACd,UAAU;AAAA,QACV,YAAYJ,IACR,8BACAI,IACA,8BACA;AAAA,QACJ,WAAWJ,IACP,4EACAI,IACA,sCACA;AAAA,QACJ,WAAWJ,IAAW,qBAAqB;AAAA,QAC3C,YAAY;AAAA,QACZ,QAAQC,KAAWF,IAAW,YAAY;AAAA,MAC5C;AAAA,MACA,cAAc,MAAMM,EAAa,EAAI;AAAA,MACrC,cAAc,MAAMA,EAAa,EAAK;AAAA,MACtC,SAASJ,KAAWF;AAAA,MAGpB,UAAA;AAAA,QAAA,gBAAAnB,EAAC,SAAI,OAAO,EAAE,OAAO,OAAO,YAAYe,KAAa;AAAA,0BAGpD,OAAI,EAAA,OAAO,EAAE,MAAM,EAElB,GAAA,UAAA;AAAA,UAAA,gBAAAhB,EAAC,OAAI,EAAA,OAAO,EAAE,SAAS,iBACrB,GAAA,UAAA;AAAA,YAAA,gBAAAA,EAAC,SAAI,OAAO,EAAE,SAAS,QAAQ,KAAK,OAElC,GAAA,UAAA;AAAA,cAAA,gBAAAA,EAAC,SAAI,OAAO,EAAE,MAAM,GAAG,UAAU,EAE/B,GAAA,UAAA;AAAA,gBAAA,gBAAAC;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,WAAU;AAAA,oBACV,OAAO,EAAE,OAAO,0BAA0B,YAAY,IAAI;AAAA,oBAEzD,UAAAQ;AAAA,kBAAA;AAAA,gBACH;AAAA,gBAGA,gBAAAR;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,OAAO;AAAA,sBACL,UAAU;AAAA,sBACV,YAAY;AAAA,sBACZ,eAAe;AAAA,sBACf,OAAO;AAAA,sBACP,YAAY;AAAA,oBACd;AAAA,oBAEC,UAAAS;AAAA,kBAAA;AAAA,gBACH;AAAA,gBAGA,gBAAAT;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,OAAO;AAAA,sBACL,WAAW;AAAA,sBACX,UAAU;AAAA,sBACV,OAAO;AAAA,sBACP,YAAY;AAAA,oBACd;AAAA,oBAEC,UAAAU;AAAA,kBAAA;AAAA,gBACH;AAAA,gBAGA,gBAAAX;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,OAAO;AAAA,sBACL,WAAW;AAAA,sBACX,UAAU;AAAA,sBACV,OAAO;AAAA,sBACP,SAAS;AAAA,sBACT,YAAY;AAAA,sBACZ,UAAU;AAAA,sBACV,KAAK;AAAA,oBACP;AAAA,oBAEA,UAAA;AAAA,sBAAC,gBAAAA,EAAA,QAAA,EAAK,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,MAAA,GACzD,UAAA;AAAA,wBAAA,gBAAAC,EAAC,UAAK,OAAO,EAAE,OAAO,8BAA8B,UAAK,SAAA;AAAA,wBAAQ;AAAA,0CAChE,UAAO,EAAA,OAAO,EAAE,OAAO,8BAA+B,UAAMW,GAAA;AAAA,sBAAA,GAC/D;AAAA,sBACA,gBAAAX,EAAC,UAAK,UAAC,IAAA,CAAA;AAAA,sBACP,gBAAAD,EAAC,QAAK,EAAA,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,MAAA,GACzD,UAAA;AAAA,wBAAA,gBAAAA,EAAC2B,GACC,EAAA,UAAA;AAAA,0BAAC,gBAAA1B,EAAA2B,GAAA,EAAe,SAAO,IACrB,UAAA,gBAAA3B;AAAA,4BAAC;AAAA,4BAAA;AAAA,8BACC,OAAO;AAAA,gCACL,OAAO;AAAA,gCACP,QAAQ;AAAA,gCACR,cAAc;AAAA,8BAChB;AAAA,8BACD,UAAA;AAAA,4BAAA;AAAA,0BAAA,GAGH;AAAA,0BACA,gBAAAA,EAAC4B,GACC,EAAA,UAAA,gBAAA7B,EAAC,OACC,EAAA,UAAA;AAAA,4BAAC,gBAAAC,EAAA,OAAA,EAAI,OAAO,EAAE,YAAY,KAAK,cAAc,MAAA,GAAS,UAEtD,gCAAA,CAAA;AAAA,8CACC,OAAI,EAAA,OAAO,EAAE,OAAO,+BAA+B,UAGpD,wEAAA;AAAA,0BAAA,EAAA,CACF,EACF,CAAA;AAAA,wBAAA,GACF;AAAA,wBAAW;AAAA,wBACV,gBAAAA,EAAA,UAAA,EAAO,OAAO,EAAE,OAAO,uBAAuBY,CAAU,IAAA,GACtD,UAAAA,EAAW,QAAQ,CAAC,EACvB,CAAA;AAAA,wBACA,gBAAAZ;AAAA,0BAAC;AAAA,0BAAA;AAAA,4BACC,OAAO;AAAA,8BACL,SAAS;AAAA,8BACT,OAAO;AAAA,8BACP,QAAQ;AAAA,8BACR,YAAY;AAAA,8BACZ,cAAc;AAAA,8BACd,UAAU;AAAA,8BACV,UAAU;AAAA,4BACZ;AAAA,4BAEA,UAAA,gBAAAA;AAAA,8BAAC;AAAA,8BAAA;AAAA,gCACC,OAAO;AAAA,kCACL,UAAU;AAAA,kCACV,MAAM;AAAA,kCACN,KAAK;AAAA,kCACL,QAAQ;AAAA,kCACR,OAAO,GAAGY,IAAa,GAAG;AAAA,kCAC1B,YAAY,uBAAuBA,CAAU;AAAA,kCAC7C,cAAc;AAAA,kCACd,YAAY;AAAA,gCACd;AAAA,8BAAA;AAAA,4BACF;AAAA,0BAAA;AAAA,wBACF;AAAA,sBAAA,GACF;AAAA,sBACCC,KAEG,gBAAAd,EAAA8B,GAAA,EAAA,UAAA;AAAA,wBAAA,gBAAA7B,EAAC,UAAK,UAAC,IAAA,CAAA;AAAA,wBACP,gBAAAD,EAAC,QAAK,EAAA,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,MAAA,GACzD,UAAA;AAAA,0BAAA,gBAAAC,EAAC,UAAK,OAAO,EAAE,OAAO,+BAA+B,UAAG,OAAA;AAAA,0BAAQ;AAAA,4CAC/D,UAAO,EAAA,OAAO,EAAE,OAAO,+BACrB,UACHa,GAAA;AAAA,wBAAA,GACF;AAAA,sBAAA,GACF;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBAEJ;AAAA,gBAGCC,EAAW,SAAS,KACnB,gBAAAf;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,OAAO;AAAA,sBACL,WAAW;AAAA,sBACX,SAAS;AAAA,sBACT,UAAU;AAAA,sBACV,KAAK;AAAA,sBACL,YAAY;AAAA,oBACd;AAAA,oBAEA,UAAA;AAAA,sBAAC,gBAAAC,EAAA,QAAA,EAAK,OAAO,EAAE,UAAU,QAAQ,OAAO,yBAAA,GAA4B,UAEpE,IAAA,CAAA;AAAA,sBACCc,EAAW,IAAI,CAACgB,GAAI1B,MACnB,gBAAAL;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BAEC,SAAS,CAACgC,MAAM;AACd,4BAAAA,EAAE,gBAAgB,GACdb,KACcA,EAAAY,EAAG,OAAOA,EAAG,GAAG;AAAA,0BAEpC;AAAA,0BACA,OAAO;AAAA,4BACL,UAAU;AAAA,4BACV,SAAS;AAAA,4BACT,cAAc;AAAA,4BACd,QAAQ;AAAA,4BACR,YAAY;AAAA,4BACZ,OAAO;AAAA,4BACP,YAAY;AAAA,4BACZ,QAAQ;AAAA,4BACR,SAAS;AAAA,4BACT,YAAY;AAAA,4BACZ,KAAK;AAAA,4BACL,YAAY;AAAA,0BACd;AAAA,0BACA,cAAc,CAACC,MAAM;AACjB,4BAAAA,EAAA,cAAc,MAAM,aAAa,6BACjCA,EAAA,cAAc,MAAM,cAAc;AAAA,0BACtC;AAAA,0BACA,cAAc,CAACA,MAAM;AACjB,4BAAAA,EAAA,cAAc,MAAM,aAAa,6BACjCA,EAAA,cAAc,MAAM,cAAc;AAAA,0BACtC;AAAA,0BAEA,UAAA;AAAA,4BAAA,gBAAA/B;AAAA,8BAAC;AAAA,8BAAA;AAAA,gCACC,OAAM;AAAA,gCACN,QAAO;AAAA,gCACP,SAAQ;AAAA,gCACR,MAAK;AAAA,gCACL,OAAM;AAAA,gCAEN,UAAC,gBAAAA,EAAA,QAAA,EAAK,GAAE,yBAAwB,MAAK,gBAAe;AAAA,8BAAA;AAAA,4BACtD;AAAA,4BACC8B,EAAG;AAAA,4BAAM;AAAA,4BAAEA,EAAG;AAAA,0BAAA;AAAA,wBAAA;AAAA,wBAvCV1B;AAAA,sBAAA,CAyCR;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACH;AAAA,cAAA,GAEJ;AAAA,cAGCkB,KACC,gBAAAtB;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO;AAAA,oBACL,SAAS;AAAA,oBACT,eAAe;AAAA,oBACf,YAAY;AAAA,oBACZ,YAAY;AAAA,kBACd;AAAA,kBAEA,UAAA,gBAAAA;AAAA,oBAACC;AAAA,oBAAA;AAAA,sBACC,OAAOqB;AAAA,sBACP,OAAOP;AAAA,sBACP,WAAWQ;AAAA,oBAAA;AAAA,kBACb;AAAA,gBAAA;AAAA,cACF;AAAA,YAAA,GAEJ;AAAA,YAGCN,EAAmB,SAAS,MAAME,KAAYE,MAC7C,gBAAArB;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAO;AAAA,kBACL,WAAW;AAAA,kBACX,SAAS;AAAA,kBACT,gBAAgB;AAAA,kBAChB,YAAY;AAAA,kBACZ,WAAW;AAAA,gBACb;AAAA,gBAEA,UAAA,gBAAAD;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,OAAO;AAAA,sBACL,OAAO;AAAA,sBACP,SAAS;AAAA,sBACT,YAAY;AAAA,sBACZ,KAAK;AAAA,oBACP;AAAA,oBAEA,UAAA;AAAA,sBAAA,gBAAAA;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,OAAO;AAAA,4BACL,UAAU;AAAA,4BACV,YAAY;AAAA,4BACZ,OAAO;AAAA,0BACT;AAAA,0BAEC,UAAA;AAAA,4BAAAiB,IAAW,SAAS;AAAA,4BAAO;AAAA,0BAAA;AAAA,wBAAA;AAAA,sBAC9B;AAAA,sBACA,gBAAAhB;AAAA,wBAACE;AAAA,wBAAA;AAAA,0BACC,MAAM;AAAA,0BACN,OAAO;AAAA,4BACL,WAAWc,IAAW,mBAAmB;AAAA,4BACzC,YAAY;AAAA,0BACd;AAAA,wBAAA;AAAA,sBACF;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACF;AAAA,cAAA;AAAA,YACF;AAAA,UAAA,GAEJ;AAAA,UAGCA,KAAYC,EAAmB,SAAS,KACvC,gBAAAlB;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO;AAAA,gBACL,WAAW;AAAA,gBACX,YAAY;AAAA,gBACZ,SAAS;AAAA,cACX;AAAA,cAEA,UAAA;AAAA,gBAAA,gBAAAC;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,WAAU;AAAA,oBACV,OAAO,EAAE,OAAO,0BAA0B,YAAY,IAAI;AAAA,oBAC3D,UAAA;AAAA,kBAAA;AAAA,gBAED;AAAA,gBACC,gBAAAA,EAAA,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,OAC1D,GAAA,UAAAiB,EAAmB,IAAI,CAACZ,GAAWD,MAE9B,CAACC,KAAa,CAACA,EAAU,YAAY,CAACA,EAAU,aAAa,CAACA,EAAU,eACnE,OAGP,gBAAAL;AAAA,kBAACO;AAAA,kBAAA;AAAA,oBAEC,UAAUF,EAAU,YAAY;AAAA,oBAChC,WAAWA,EAAU,aAAa;AAAA,oBAClC,cAAcA,EAAU,gBAAgB;AAAA,oBACxC,OAAOA,EAAU,SAAS;AAAA,oBAC1B,YAAYA,EAAU,cAAc;AAAA,oBACpC,WAAWA,EAAU;AAAA,oBACrB,YAAYA,EAAU,cAAc,CAAC;AAAA,oBACrC,WAAWA,EAAU,aAAa;AAAA,oBAClC,WAAWA,EAAU;AAAA,oBACrB,oBAAoBA,EAAU;AAAA,oBAC9B,iBAAAa;AAAA,kBAAA;AAAA,kBAXKd;AAAA,gBAAA,CAcV,GACH;AAAA,cAAA;AAAA,YAAA;AAAA,UACF;AAAA,QAAA,GAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;ACxUA,SAAwB4B,EAAgB;AAAA,EACtC,QAAAC;AAAA,EACA,iBAAAf;AAAA,EACA,UAAAE,IAAW;AAAA,EACX,SAAAC;AAAA,EACA,YAAAa,IAAa;AAAA,EACb,aAAAC,IAAc;AAChB,GAAG;AACD,QAAM,CAACX,GAAWC,CAAY,IAAI3B,EAAS,EAAK,GAC1CsC,IAAWH,EAAO,UAAU,UAC5BI,IAAgBJ,EAAO,cAAcA,EAAO,WAAW,SAAS;AAkBpE,SAAA,gBAAAlC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,QACL,UAAU;AAAA,QACV,SAAS;AAAA,QACT,QAAQ,aACNqB,IACI,6BACAI,IACA,2BACA,wBACN;AAAA,QACA,cAAc;AAAA,QACd,UAAU;AAAA,QACV,aA7BoB,MACpBY,IACKZ,IACH,kJACA,kJAEFJ,IACK,8BAELI,IACK,8BAEF,6BAiB2B;AAAA,QAC9B,WAAWJ,IACP,0EACA;AAAA,QACJ,WAAWA,IAAW,qBAAqB;AAAA,QAC3C,QAAQC,IAAU,YAAY;AAAA,QAC9B,YAAY;AAAA,MACd;AAAA,MACA,cAAc,MAAMI,EAAa,EAAI;AAAA,MACrC,cAAc,MAAMA,EAAa,EAAK;AAAA,MACtC,SAAAJ;AAAA,MAGA,UAAA;AAAA,QAAC,gBAAArB,EAAA,OAAA,EAAI,OAAO,EAAE,OAAO,OAAO,YAAYiC,EAAO,aAAa;AAAA,QAE5D,gBAAAlC,EAAC,SAAI,OAAO,EAAE,MAAM,GAAG,SAAS,YAE9B,GAAA,UAAA;AAAA,UAAA,gBAAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO;AAAA,gBACL,SAAS;AAAA,gBACT,gBAAgB;AAAA,gBAChB,YAAY;AAAA,gBACZ,KAAK;AAAA,gBACL,cAAckC,EAAO,YAAY,QAAQ;AAAA,cAC3C;AAAA,cAEA,UAAA;AAAA,gBAAA,gBAAAjC;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,OAAO;AAAA,sBACL,MAAM;AAAA,sBACN,UAAU;AAAA,sBACV,YAAY;AAAA,sBACZ,OAAOoC,IACH,2BACA;AAAA,sBACJ,YAAY;AAAA,sBACZ,gBAAgBA,IAAW,iBAAiB;AAAA,sBAC5C,yBAAyBA,IAAW,QAAQ;AAAA,oBAC9C;AAAA,oBAEC,UAAOH,EAAA;AAAA,kBAAA;AAAA,gBACV;AAAA,gBACCA,EAAO,aACN,gBAAAjC;AAAA,kBAACC;AAAA,kBAAA;AAAA,oBACC,OAAOgC,EAAO;AAAA,oBACd,OAAOA,EAAO;AAAA,oBACd,WAAWA,EAAO;AAAA,kBAAA;AAAA,gBACpB;AAAA,cAAA;AAAA,YAAA;AAAA,UAEJ;AAAA,UAGA,gBAAAjC;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO;AAAA,gBACL,WAAW;AAAA,gBACX,UAAU;AAAA,gBACV,OAAO;AAAA,gBACP,YAAY;AAAA,cACd;AAAA,cAEC,UAAOiC,EAAA;AAAA,YAAA;AAAA,UACV;AAAA,UAGC,CAACE,KACA,gBAAApC;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO;AAAA,gBACL,WAAW;AAAA,gBACX,UAAU;AAAA,gBACV,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,YAAY;AAAA,gBACZ,UAAU;AAAA,gBACV,KAAK;AAAA,cACP;AAAA,cAEA,UAAA;AAAA,gBAAC,gBAAAA,EAAA,QAAA,EAAK,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,MAAA,GACzD,UAAA;AAAA,kBAAA,gBAAAA,EAAC2B,GACC,EAAA,UAAA;AAAA,oBAAC,gBAAA1B,EAAA2B,GAAA,EAAe,SAAO,IACrB,UAAA,gBAAA3B;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,OAAO;AAAA,0BACL,OAAO;AAAA,0BACP,QAAQ;AAAA,0BACR,cAAc;AAAA,wBAChB;AAAA,wBACD,UAAA;AAAA,sBAAA;AAAA,oBAAA,GAGH;AAAA,oBACC,gBAAAA,EAAA4B,GAAA,EAAe,MAAK,OAAM,WAAU,iBACnC,UAAA,gBAAA7B,EAAC,OAAI,EAAA,OAAO,EAAE,UAAU,QAAQ,YAAY,IAC1C,GAAA,UAAA;AAAA,sBAAA,gBAAAC;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,OAAO;AAAA,4BACL,YAAY;AAAA,4BACZ,cAAc;AAAA,0BAChB;AAAA,0BACD,UAAA;AAAA,wBAAA;AAAA,sBAED;AAAA,sBACA,gBAAAD;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,OAAO;AAAA,4BACL,cAAc;AAAA,4BACd,OAAO;AAAA,0BACT;AAAA,0BAEA,UAAA;AAAA,4BAAA,gBAAAC,EAAC,YAAO,UAAO,UAAA,CAAA;AAAA,4BAAS;AAAA,0BAAA;AAAA,wBAAA;AAAA,sBAE1B;AAAA,sBACA,gBAAAD;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,OAAO;AAAA,4BACL,cAAc;AAAA,4BACd,OAAO;AAAA,0BACT;AAAA,0BAEA,UAAA;AAAA,4BAAA,gBAAAC,EAAC,YAAO,UAAM,SAAA,CAAA;AAAA,4BAAS;AAAA,0BAAA;AAAA,wBAAA;AAAA,sBAEzB;AAAA,wCACC,OAAI,EAAA,OAAO,EAAE,OAAO,4BACnB,GAAA,UAAA;AAAA,wBAAA,gBAAAA,EAAC,YAAO,UAAO,UAAA,CAAA;AAAA,wBAAS;AAAA,wBAAU;AAAA,wBAAS;AAAA,sBAAA,GAE7C;AAAA,oBAAA,EAAA,CACF,EACF,CAAA;AAAA,kBAAA,GACF;AAAA,kBACC;AAAA,kBACD,gBAAAA;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,OAAO;AAAA,wBACL,OAAO,sBACLiC,EAAO,UAAU,YACb,OACAA,EAAO,UAAU,WACjB,OACA,IACN;AAAA,sBACF;AAAA,sBAEC,UAAOA,EAAA;AAAA,oBAAA;AAAA,kBACV;AAAA,gBAAA,GACF;AAAA,gBACA,gBAAAjC,EAAC,UAAK,UAAC,IAAA,CAAA;AAAA,gBACP,gBAAAD,EAAC,QAAK,EAAA,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,MAAA,GACzD,UAAA;AAAA,kBAAA,gBAAAA,EAAC2B,GACC,EAAA,UAAA;AAAA,oBAAC,gBAAA1B,EAAA2B,GAAA,EAAe,SAAO,IACrB,UAAA,gBAAA3B;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,OAAO;AAAA,0BACL,OAAO;AAAA,0BACP,QAAQ;AAAA,0BACR,cAAc;AAAA,wBAChB;AAAA,wBACD,UAAA;AAAA,sBAAA;AAAA,oBAAA,GAGH;AAAA,oBACC,gBAAAA,EAAA4B,GAAA,EAAe,MAAK,OACnB,UAAC,gBAAA7B,EAAA,OAAA,EAAI,OAAO,EAAE,UAAU,QAAQ,YAAY,IAC1C,GAAA,UAAA;AAAA,sBAAA,gBAAAC;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,OAAO;AAAA,4BACL,YAAY;AAAA,4BACZ,cAAc;AAAA,0BAChB;AAAA,0BACD,UAAA;AAAA,wBAAA;AAAA,sBAED;AAAA,wCACC,OAAI,EAAA,OAAO,EAAE,OAAO,+BAA+B,UAGpD,wEAAA;AAAA,oBAAA,EAAA,CACF,EACF,CAAA;AAAA,kBAAA,GACF;AAAA,kBACC;AAAA,kBACD,gBAAAA;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,OAAO;AAAA,wBACL,OAAO,uBAAuBiC,EAAO,UAAU;AAAA,sBACjD;AAAA,sBAEC,UAAAA,EAAO,WAAW,QAAQ,CAAC;AAAA,oBAAA;AAAA,kBAC9B;AAAA,kBACA,gBAAAjC;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,OAAO;AAAA,wBACL,SAAS;AAAA,wBACT,OAAO;AAAA,wBACP,QAAQ;AAAA,wBACR,YAAY;AAAA,wBACZ,cAAc;AAAA,wBACd,UAAU;AAAA,wBACV,UAAU;AAAA,sBACZ;AAAA,sBAEA,UAAA,gBAAAA;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,OAAO;AAAA,4BACL,UAAU;AAAA,4BACV,MAAM;AAAA,4BACN,KAAK;AAAA,4BACL,QAAQ;AAAA,4BACR,OAAO,GAAGiC,EAAO,aAAa,GAAG;AAAA,4BACjC,YAAY,uBAAuBA,EAAO,UAAU;AAAA,4BACpD,cAAc;AAAA,4BACd,YAAY;AAAA,0BACd;AAAA,wBAAA;AAAA,sBACF;AAAA,oBAAA;AAAA,kBACF;AAAA,gBAAA,GACF;AAAA,gBACA,gBAAAjC,EAAC,UAAK,UAAC,IAAA,CAAA;AAAA,gBACP,gBAAAD,EAAC,QAAK,EAAA,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,MAAA,GACzD,UAAA;AAAA,kBAAA,gBAAAA,EAAC2B,GACC,EAAA,UAAA;AAAA,oBAAC,gBAAA1B,EAAA2B,GAAA,EAAe,SAAO,IACrB,UAAA,gBAAA3B;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,OAAO;AAAA,0BACL,OAAO;AAAA,0BACP,QAAQ;AAAA,0BACR,cAAc;AAAA,wBAChB;AAAA,wBACD,UAAA;AAAA,sBAAA;AAAA,oBAAA,GAGH;AAAA,oBACC,gBAAAA,EAAA4B,GAAA,EAAe,MAAK,OACnB,UAAC,gBAAA7B,EAAA,OAAA,EAAI,OAAO,EAAE,UAAU,QAAQ,YAAY,IAC1C,GAAA,UAAA;AAAA,sBAAA,gBAAAC;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,OAAO;AAAA,4BACL,YAAY;AAAA,4BACZ,cAAc;AAAA,0BAChB;AAAA,0BACD,UAAA;AAAA,wBAAA;AAAA,sBAED;AAAA,wCACC,OAAI,EAAA,OAAO,EAAE,OAAO,+BAA+B,UAGpD,4EAAA;AAAA,oBAAA,EAAA,CACF,EACF,CAAA;AAAA,kBAAA,GACF;AAAA,kBACC;AAAA,kBACD,gBAAAA;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,OAAO;AAAA,wBACL,OAAO,sBAAsB,KAAK,IAAIiC,EAAO,aAAa,IAAI,CAAC;AAAA,sBACjE;AAAA,sBAEC,UAAAA,EAAO,YAAY,QAAQ,CAAC;AAAA,oBAAA;AAAA,kBAC/B;AAAA,kBACA,gBAAAjC;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,OAAO;AAAA,wBACL,SAAS;AAAA,wBACT,OAAO;AAAA,wBACP,QAAQ;AAAA,wBACR,YAAY;AAAA,wBACZ,cAAc;AAAA,wBACd,UAAU;AAAA,wBACV,UAAU;AAAA,sBACZ;AAAA,sBAEA,UAAA,gBAAAA;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,OAAO;AAAA,4BACL,UAAU;AAAA,4BACV,MAAM;AAAA,4BACN,KAAK;AAAA,4BACL,QAAQ;AAAA,4BACR,OAAO,GAAGiC,EAAO,cAAc,GAAG;AAAA,4BAClC,YAAY,sBAAsB,KAAK;AAAA,8BACrCA,EAAO;AAAA,8BACP;AAAA,4BACD,CAAA;AAAA,4BACD,cAAc;AAAA,4BACd,YAAY;AAAA,0BACd;AAAA,wBAAA;AAAA,sBACF;AAAA,oBAAA;AAAA,kBACF;AAAA,gBAAA,GACF;AAAA,gBACCC,KAAe,gBAAAlC,EAAA,QAAA,EAAK,UAAC,IAAA,CAAA;AAAA,gBACrBkC,KACE,gBAAAnC,EAAA,QAAA,EAAK,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,MAAA,GACzD,UAAA;AAAA,kBAAA,gBAAAC,EAAC,UAAK,OAAO,EAAE,OAAO,+BAA+B,UAAM,UAAA;AAAA,kBAAQ;AAAA,oCAClE,UAAO,EAAA,OAAO,EAAE,OAAO,4BACrB,GAAA,UAAA;AAAA,oBAAOiC,EAAA,SAAS,IAAI,MAAM;AAAA,oBAC1BA,EAAO;AAAA,kBAAA,GACV;AAAA,gBAAA,GACF;AAAA,cAAA;AAAA,YAAA;AAAA,UAEJ;AAAA,UAIDI,IACC,gBAAAtC;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO;AAAA,gBACL,WAAW;AAAA,gBACX,SAAS;AAAA,gBACT,UAAU;AAAA,gBACV,KAAK;AAAA,gBACL,YAAY;AAAA,cACd;AAAA,cAEA,UAAA;AAAA,gBAAA,gBAAAC;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,OAAO,EAAE,UAAU,QAAQ,OAAO,yBAAyB;AAAA,oBAC5D,UAAA;AAAA,kBAAA;AAAA,gBAED;AAAA,gBACCiC,EAAO,WAAW,IAAI,CAACH,GAAI1B,MAC1B,gBAAAL;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBAEC,MAAK;AAAA,oBACL,cAAY,QAAQ+B,EAAG,KAAK,IAAIA,EAAG,GAAG;AAAA,oBACtC,SAAS,CAACC,MAAM;AACd,sBAAAA,EAAE,gBAAgB,GACdb,KACcA,EAAAY,EAAG,OAAOA,EAAG,GAAG;AAAA,oBAEpC;AAAA,oBACA,OAAO;AAAA,sBACL,UAAU;AAAA,sBACV,SAAS;AAAA,sBACT,cAAc;AAAA,sBACd,QAAQ;AAAA,sBACR,YAAY;AAAA,sBACZ,OAAO;AAAA,sBACP,YAAY;AAAA,sBACZ,QAAQ;AAAA,sBACR,SAAS;AAAA,sBACT,YAAY;AAAA,sBACZ,KAAK;AAAA,sBACL,YAAY;AAAA,oBACd;AAAA,oBACA,cAAc,CAACC,MAAM;AACjB,sBAAAA,EAAA,cAAc,MAAM,aAAa,6BACjCA,EAAA,cAAc,MAAM,cAAc;AAAA,oBACtC;AAAA,oBACA,cAAc,CAACA,MAAM;AACjB,sBAAAA,EAAA,cAAc,MAAM,aAAa,6BACjCA,EAAA,cAAc,MAAM,cAAc;AAAA,oBACtC;AAAA,oBAEA,UAAA;AAAA,sBAAA,gBAAA/B;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,OAAM;AAAA,0BACN,QAAO;AAAA,0BACP,SAAQ;AAAA,0BACR,MAAK;AAAA,0BACL,OAAM;AAAA,0BAEN,UAAA,gBAAAA;AAAA,4BAAC;AAAA,4BAAA;AAAA,8BACC,GAAE;AAAA,8BACF,MAAK;AAAA,4BAAA;AAAA,0BACP;AAAA,wBAAA;AAAA,sBACF;AAAA,sBACC8B,EAAG;AAAA,sBAAM;AAAA,sBAAEA,EAAG;AAAA,oBAAA;AAAA,kBAAA;AAAA,kBA5CV1B;AAAA,gBAAA,CA8CR;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA,IAGH,gBAAAL;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO;AAAA,gBACL,WAAW;AAAA,gBACX,UAAU;AAAA,gBACV,OAAO;AAAA,cACT;AAAA,cACD,UAAA;AAAA,gBAAA;AAAA,gBACG,gBAAAC,EAAC,YAAO,UAAkB,qBAAA,CAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAC9B;AAAA,QAAA,GAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;ACraA,SAAwBsC,EAAuB;AAAA,EAC7C,QAAAL;AAAA,EACA,SAAAM;AAAA,EACA,iBAAArB;AACF,GAAG;AACD,QAAM,CAACM,GAAWC,CAAY,IAAI3B,EAAS,EAAK,GAC1CsC,IAAWH,EAAO,UAAU,UAC5BI,IAAgBJ,EAAO,cAAcA,EAAO,WAAW,SAAS,GAGhEO,IAAkB,CAACC,MAAQ;AAC/B,UAAMC,IAAI,SAASD,EAAI,MAAM,GAAG,CAAC,GAAG,EAAE,GAChCE,IAAI,SAASF,EAAI,MAAM,GAAG,CAAC,GAAG,EAAE,GAChCG,IAAI,SAASH,EAAI,MAAM,GAAG,CAAC,GAAG,EAAE,GAChCI,IAAO,KAAK,MAAMH,IAAI,QAAQC,IAAI,QAAQC,IAAI,KAAK,GACnDE,IAAO,KAAK,MAAMD,IAAO,MAAMH,IAAI,GAAG,GACtCK,IAAO,KAAK,MAAMF,IAAO,MAAMF,IAAI,GAAG,GACtCK,IAAO,KAAK,MAAMH,IAAO,MAAMD,IAAI,GAAG;AACrC,WAAA,IAAIE,EAAK,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,GAAGC,EAC7C,SAAS,EAAE,EACX,SAAS,GAAG,GAAG,CAAC,GAAGC,EAAK,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC;AAAA,EAAA,GAGpDC,IAAgB,MAAM;AAC1B,QAAI,CAACb;AAAU,aAAO;AAEtB,YAAQG,GAAS;AAAA,MACf,KAAK;AACI,eAAA;AAAA,UACL,gBAAgB;AAAA,UAChB,yBAAyB;AAAA,UACzB,OAAO;AAAA,QAAA;AAAA,MAEX,KAAK;AACI,eAAA;AAAA,UACL,SAAS;AAAA,QAAA;AAAA,MAEb,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH,eAAO;MACT;AACE,eAAO;IACX;AAAA,EAAA,GAGIW,IAAe,MACfd,KAAYG,MAAY,eACnB;AAAA,IACL,YAAYf,IACR,2BACA;AAAA,EAAA,IAGJY,KAAYG,MAAY,yBACnB;AAAA,IACL,YAAYf,IACR,kJACA;AAAA,EAAA,IAGJY,KAAYG,MAAY,yBACnB;AAAA,IACL,YAAYf,IACR,kJACA;AAAA,EAAA,IAGD;AAAA,IACL,YAAYA,IACR,8BACA;AAAA,EAAA,GAIF2B,IAAe,MACff,KAAYG,MAAY,qBACnBC,EAAgBP,EAAO,SAAS,IAElCA,EAAO,WAGVmB,IAAiB,MACjBhB,KAAYG,MAAY,qBACnB,MAEF;AAIP,SAAA,gBAAAxC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,QACL,UAAU;AAAA,QACV,SAAS;AAAA,QACT,QAAQ,aACNyB,IAAY,2BAA2B,wBACzC;AAAA,QACA,cAAc;AAAA,QACd,UAAU;AAAA,QACV,GAAG0B,EAAa;AAAA,QAChB,WAAW;AAAA,QACX,YAAY;AAAA,MACd;AAAA,MACA,cAAc,MAAMzB,EAAa,EAAI;AAAA,MACrC,cAAc,MAAMA,EAAa,EAAK;AAAA,MAGtC,UAAA;AAAA,QAAA,gBAAAzB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,OAAO;AAAA,cACP,YAAYmD,EAAa;AAAA,cACzB,SAASC,EAAe;AAAA,YAC1B;AAAA,UAAA;AAAA,QACD;AAAA,QACD,gBAAArD,EAAC,SAAI,OAAO,EAAE,MAAM,GAAG,SAAS,YAE9B,GAAA,UAAA;AAAA,UAAA,gBAAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO;AAAA,gBACL,UAAU;AAAA,gBACV,YAAY;AAAA,gBACZ,OAAO;AAAA,gBACP,YAAY;AAAA,gBACZ,SAAS;AAAA,gBACT,YAAY;AAAA,gBACZ,KAAK;AAAA,gBACL,GAAGkD,EAAc;AAAA,cACnB;AAAA,cAEC,UAAA;AAAA,gBAAOhB,EAAA;AAAA,gBACPG,KAAYG,MAAY,WACvB,gBAAAvC;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,OAAO;AAAA,sBACL,UAAU;AAAA,sBACV,SAAS;AAAA,sBACT,cAAc;AAAA,sBACd,YAAY;AAAA,sBACZ,OAAO;AAAA,sBACP,YAAY;AAAA,sBACZ,gBAAgB;AAAA,oBAClB;AAAA,oBACD,UAAA;AAAA,kBAAA;AAAA,gBAED;AAAA,cAAA;AAAA,YAAA;AAAA,UAEJ;AAAA,UAGA,gBAAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO;AAAA,gBACL,WAAW;AAAA,gBACX,UAAU;AAAA,gBACV,OAAO;AAAA,gBACP,YAAY;AAAA,gBACZ,GAAIoC,KAAYG,MAAY,aAAa,EAAE,SAAS,EAAE;AAAA,cACxD;AAAA,cAEC,UAAON,EAAA;AAAA,YAAA;AAAA,UACV;AAAA,UAGA,gBAAAlC;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO;AAAA,gBACL,WAAW;AAAA,gBACX,UAAU;AAAA,gBACV,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,YAAY;AAAA,gBACZ,UAAU;AAAA,gBACV,KAAK;AAAA,gBACL,GAAIqC,KAAYG,MAAY,aAAa,EAAE,SAAS,EAAE;AAAA,cACxD;AAAA,cAEA,UAAA;AAAA,gBAAC,gBAAAxC,EAAA,QAAA,EAAK,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,MAAA,GAAS,UAAA;AAAA,kBAAA;AAAA,kBAC5D,gBAAAC,EAAC,UAAQ,EAAA,UAAAiC,EAAO,MAAM,CAAA;AAAA,gBAAA,GAC9B;AAAA,gBACA,gBAAAjC,EAAC,UAAK,UAAC,IAAA,CAAA;AAAA,gBACP,gBAAAD,EAAC,QAAK,EAAA,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,MAAA,GAAS,UAAA;AAAA,kBAAA;AAAA,oCAC5D,UAAQ,EAAA,UAAAkC,EAAO,WAAW,QAAQ,CAAC,GAAE;AAAA,kBAC3C,gBAAAjC;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,OAAO;AAAA,wBACL,SAAS;AAAA,wBACT,OAAO;AAAA,wBACP,QAAQ;AAAA,wBACR,YAAY;AAAA,wBACZ,cAAc;AAAA,wBACd,UAAU;AAAA,wBACV,UAAU;AAAA,sBACZ;AAAA,sBAEA,UAAA,gBAAAA;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,OAAO;AAAA,4BACL,UAAU;AAAA,4BACV,MAAM;AAAA,4BACN,KAAK;AAAA,4BACL,QAAQ;AAAA,4BACR,OAAO,GAAGiC,EAAO,aAAa,GAAG;AAAA,4BACjC,YAAY;AAAA,4BACZ,cAAc;AAAA,4BACd,YAAY;AAAA,0BACd;AAAA,wBAAA;AAAA,sBACF;AAAA,oBAAA;AAAA,kBACF;AAAA,gBAAA,GACF;AAAA,gBACA,gBAAAjC,EAAC,UAAK,UAAC,IAAA,CAAA;AAAA,gBACP,gBAAAD,EAAC,QAAK,EAAA,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,MAAA,GAAS,UAAA;AAAA,kBAAA;AAAA,oCAC5D,UAAQ,EAAA,UAAAkC,EAAO,YAAY,QAAQ,CAAC,GAAE;AAAA,kBAC5C,gBAAAjC;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,OAAO;AAAA,wBACL,SAAS;AAAA,wBACT,OAAO;AAAA,wBACP,QAAQ;AAAA,wBACR,YAAY;AAAA,wBACZ,cAAc;AAAA,wBACd,UAAU;AAAA,wBACV,UAAU;AAAA,sBACZ;AAAA,sBAEA,UAAA,gBAAAA;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,OAAO;AAAA,4BACL,UAAU;AAAA,4BACV,MAAM;AAAA,4BACN,KAAK;AAAA,4BACL,QAAQ;AAAA,4BACR,OAAO,GAAGiC,EAAO,cAAc,GAAG;AAAA,4BAClC,YAAY;AAAA,4BACZ,cAAc;AAAA,4BACd,YAAY;AAAA,0BACd;AAAA,wBAAA;AAAA,sBACF;AAAA,oBAAA;AAAA,kBACF;AAAA,gBAAA,GACF;AAAA,cAAA;AAAA,YAAA;AAAA,UACF;AAAA,UAGCI,IACC,gBAAAtC;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO;AAAA,gBACL,WAAW;AAAA,gBACX,SAAS;AAAA,gBACT,UAAU;AAAA,gBACV,KAAK;AAAA,gBACL,YAAY;AAAA,cACd;AAAA,cAEA,UAAA;AAAA,gBAAA,gBAAAC;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,OAAO,EAAE,UAAU,QAAQ,OAAO,yBAAyB;AAAA,oBAC5D,UAAA;AAAA,kBAAA;AAAA,gBAED;AAAA,gBACCiC,EAAO,WAAW,IAAI,CAACH,GAAI1B,MAC1B,gBAAAL;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBAEC,OAAO,EAAE,SAAS,QAAQ,KAAK,OAAO,YAAY,SAAS;AAAA,oBAE3D,UAAA;AAAA,sBAAA,gBAAAA;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,OAAO;AAAA,4BACL,UAAU;AAAA,4BACV,SAAS;AAAA,4BACT,cAAc;AAAA,4BACd,QAAQ;AAAA,4BACR,YAAY;AAAA,4BACZ,OAAO;AAAA,4BACP,YAAY;AAAA,0BACd;AAAA,0BAEC,UAAA;AAAA,4BAAG+B,EAAA;AAAA,4BAAM;AAAA,4BAAEA,EAAG;AAAA,0BAAA;AAAA,wBAAA;AAAA,sBACjB;AAAA,sBACA,gBAAA9B;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,MAAK;AAAA,0BACL,cAAY,QAAQ8B,EAAG,KAAK,IAAIA,EAAG,GAAG;AAAA,0BACtC,SAAS,MAAMZ,KAAA,gBAAAA,EAAkBY,EAAG,OAAOA,EAAG;AAAA,0BAC9C,OAAO;AAAA,4BACL,OAAO;AAAA,4BACP,QAAQ;AAAA,4BACR,cAAc;AAAA,4BACd,QAAQ;AAAA,4BACR,YAAY;AAAA,4BACZ,SAAS;AAAA,4BACT,YAAY;AAAA,4BACZ,gBAAgB;AAAA,4BAChB,SAAS;AAAA,4BACT,QAAQ;AAAA,0BACV;AAAA,0BACA,cAAc,CAACC,MAAM;AACjB,4BAAAA,EAAA,cAAc,MAAM,aAAa;AAAA,0BACrC;AAAA,0BACA,cAAc,CAACA,MAAM;AACjB,4BAAAA,EAAA,cAAc,MAAM,aACpB;AAAA,0BACJ;AAAA,0BAEA,UAAA,gBAAA/B;AAAA,4BAACqD;AAAA,4BAAA;AAAA,8BACC,MAAM;AAAA,8BACN,OAAO;AAAA,gCACL,YAAY;AAAA,gCACZ,OAAO;AAAA,8BACT;AAAA,8BACA,MAAK;AAAA,4BAAA;AAAA,0BACP;AAAA,wBAAA;AAAA,sBACF;AAAA,oBAAA;AAAA,kBAAA;AAAA,kBAhDKjD;AAAA,gBAAA,CAkDR;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA,IAGH,gBAAAL;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO;AAAA,gBACL,WAAW;AAAA,gBACX,UAAU;AAAA,gBACV,OAAO;AAAA,gBACP,GAAIqC,KAAYG,MAAY,aAAa,EAAE,SAAS,EAAE;AAAA,cACxD;AAAA,cACD,UAAA;AAAA,gBAAA;AAAA,gBACG,gBAAAvC,EAAC,YAAO,UAAkB,qBAAA,CAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAC9B;AAAA,UAIDiC,EAAO,aACN,gBAAAjC;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO;AAAA,gBACL,WAAW;AAAA,gBACX,SAAS;AAAA,gBACT,GAAIoC,KAAYG,MAAY,aAAa,EAAE,SAAS,EAAE;AAAA,cACxD;AAAA,cAEA,UAAA,gBAAAvC;AAAA,gBAACC;AAAA,gBAAA;AAAA,kBACC,OAAOgC,EAAO;AAAA,kBACd,OAAOA,EAAO;AAAA,kBACd,WAAWA,EAAO;AAAA,gBAAA;AAAA,cACpB;AAAA,YAAA;AAAA,UACF;AAAA,QAAA,GAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;AC9UA,SAAwBqB,EAAW;AAAA,EACjC,QAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,qBAAAC,IAAsB;AAAA,EACtB,sBAAAC,IAAuB;AAAA,EACvB,iCAAAC,IAAkC;AAAA,EAClC,gCAAAC,IAAiC;AACnC,GAAG;AACD,QAAM,CAAChE,GAAYC,CAAa,IAAIC,EAAS,EAAK,GAE5C+D,IAAwB,CAACC,GAASC,MAAU;AAC1C,UAAAC,IAAQ,OAAOF,CAAO,GACtBG,IAAM,OAAOF,CAAK;AACpB,QAAA,CAAC,OAAO,SAASC,CAAK,KAAK,CAAC,OAAO,SAASC,CAAG,KAAKA,KAAOD;AAAc,aAAA;AACvE,UAAAE,IAAS,CAACC,MAAO;AACrB,YAAMC,IAAe,KAAK,MAAMD,IAAK,GAAI,GACnCE,IAAU,KAAK,MAAMD,IAAe,EAAE,EACzC,WACA,SAAS,GAAG,GAAG,GACZE,KAAWF,IAAe,IAAI,WAAW,SAAS,GAAG,GAAG;AACvD,aAAA,GAAGC,CAAO,IAAIC,CAAO;AAAA,IAAA;AAE9B,WAAO,GAAGJ,EAAOF,CAAK,CAAC,IAAIE,EAAOD,CAAG,CAAC;AAAA,EAAA;AAItC,SAAA,gBAAAlE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,QACL,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,cAAc;AAAA,QACd,UAAU;AAAA,QACV,WAAW;AAAA,MACb;AAAA,MAGC,UAAA;AAAA,QAAAwD,EAAO,aACN,gBAAAvD;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,UAAU;AAAA,cACV,MAAM;AAAA,cACN,KAAK;AAAA,cACL,QAAQ;AAAA,cACR,OAAO;AAAA,cACP,YAAYuD,EAAO;AAAA,cACnB,SAAS;AAAA,YACX;AAAA,UAAA;AAAA,QACF;AAAA,QAIF,gBAAAvD;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,SAAS,MAAMH,EAAc,CAACD,CAAU;AAAA,YACxC,OAAO;AAAA,cACL,OAAO;AAAA,cACP,SAAS;AAAA,cACT,YAAY;AAAA,cACZ,QAAQ;AAAA,cACR,QAAQ;AAAA,cACR,WAAW;AAAA,cACX,YAAY;AAAA,YACd;AAAA,YACA,cAAc,CAACmC,MAAM;AACjB,cAAAA,EAAA,cAAc,MAAM,aAAa;AAAA,YACrC;AAAA,YACA,cAAc,CAACA,MAAM;AACjB,cAAAA,EAAA,cAAc,MAAM,aAAa;AAAA,YACrC;AAAA,YAGA,UAAA,gBAAAhC,EAAC,OAAI,EAAA,OAAO,EAAE,SAAS,QAAQ,YAAY,cAAc,KAAK,OAAA,GAC5D,UAAA;AAAA,cAAA,gBAAAA,EAAC,SAAI,OAAO,EAAE,MAAM,GAAG,UAAU,EAE/B,GAAA,UAAA;AAAA,gBAAA,gBAAAA;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACG,OAAO;AAAA,sBACL,SAAS;AAAA,sBACT,YAAY;AAAA,sBACZ,KAAK;AAAA,sBACL,cAAc;AAAA,sBACd,UAAU;AAAA,oBACZ;AAAA,oBAEF,UAAA;AAAA,sBAAA,gBAAAC;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,OAAO;AAAA,4BACL,UAAU;AAAA,4BACV,YAAY;AAAA,4BACZ,OAAO;AAAA,4BACP,YAAY;AAAA,0BACd;AAAA,0BAEC,UAAOuD,EAAA;AAAA,wBAAA;AAAA,sBACV;AAAA,sBACCA,EAAO,SACN,gBAAAvD;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,OAAO;AAAA,4BACL,UAAU;AAAA,4BACV,YAAY;AAAA,4BACZ,OAAO;AAAA,4BACP,YAAY;AAAA,4BACZ,SAAS;AAAA,4BACT,cAAc;AAAA,4BACd,QAAQ;AAAA,0BACV;AAAA,0BAEC,UAAA,OAAOuD,EAAO,KAAK,EAAE,kBAAkB,YAAY,YAAYA,EAAO;AAAA,wBAAA;AAAA,sBACzE;AAAA,sBAEDA,EAAO,aACN,gBAAAvD;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,OAAO;AAAA,4BACL,UAAU;AAAA,4BACV,YAAY;AAAA,4BACZ,eAAe;AAAA,4BACf,eAAe;AAAA,4BACf,OAAO;AAAA,4BACP,YAAY;AAAA,4BACZ,SAAS;AAAA,4BACT,cAAc;AAAA,4BACd,QAAQ;AAAA,0BACV;AAAA,0BACD,UAAA;AAAA,wBAAA;AAAA,sBAED;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBAEJ;AAAA,gBAGA,gBAAAA;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACD,OAAO;AAAA,sBACH,UAAU;AAAA,sBACV,OAAO;AAAA,sBACP,YAAY;AAAA,sBACZ,cAAc;AAAA,oBAChB;AAAA,oBAEC,UAAOuD,EAAA;AAAA,kBAAA;AAAA,gBACV;AAAA,gBAGA,gBAAAvD;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACD,OAAO;AAAA,sBACH,UAAU;AAAA,sBACV,OAAO;AAAA,sBACP,YAAY;AAAA,sBACZ,cAAc;AAAA,oBAChB;AAAA,oBAEC,UAAOuD,EAAA;AAAA,kBAAA;AAAA,gBACV;AAAA,gBAGA,gBAAAxD;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,OAAO;AAAA,sBACL,SAAS;AAAA,sBACT,YAAY;AAAA,sBACZ,UAAU;AAAA,sBACV,KAAK;AAAA,sBACL,UAAU;AAAA,oBACZ;AAAA,oBAGA,UAAA;AAAA,sBAAC,gBAAAA,EAAA,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,MAAA,GACxD,UAAA;AAAA,wBAAA,gBAAAA,EAAC2B,GACC,EAAA,UAAA;AAAA,0BAAC,gBAAA1B,EAAA2B,GAAA,EAAe,SAAO,IACrB,UAAA,gBAAA3B;AAAA,4BAAC;AAAA,4BAAA;AAAA,8BACC,OAAO;AAAA,gCACL,OAAO;AAAA,gCACP,QAAQ;AAAA,gCACR,cAAc;AAAA,8BAChB;AAAA,8BACD,UAAA;AAAA,4BAAA;AAAA,0BAAA,GAGH;AAAA,0BACC,gBAAAA,EAAA4B,GAAA,EAAe,WAAU,kHACxB,4BAAC,OACC,EAAA,UAAA;AAAA,4BAAC,gBAAA5B,EAAA,OAAA,EAAI,OAAO,EAAE,YAAY,KAAK,cAAc,OAAO,UAAU,OAAO,GAAG,UAExE,oCAAA,CAAA;AAAA,4BACA,gBAAAA,EAAC,SAAI,OAAO,EAAE,OAAO,6BAA6B,UAAU,OAAO,GAAG,UAEtE,4EAAA,CAAA;AAAA,0BAAA,EAAA,CACF,EACF,CAAA;AAAA,wBAAA,GACF;AAAA,wBACA,gBAAAA;AAAA,0BAAC;AAAA,0BAAA;AAAA,4BACC,OAAO;AAAA,8BACL,OAAO,uBAAuBuD,EAAO,WAAW;AAAA,4BAClD;AAAA,4BAEC,UAAAA,EAAO,YAAY,QAAQ,CAAC;AAAA,0BAAA;AAAA,wBAC/B;AAAA,wBACCA,EAAO,oBACN,gBAAAxD;AAAA,0BAAC;AAAA,0BAAA;AAAA,4BACC,OAAO;AAAA,8BACL,OAAO;AAAA,8BACP,UAAU;AAAA,4BACZ;AAAA,4BACD,UAAA;AAAA,8BAAA;AAAA,8BACGwD,EAAO,iBAAiB,IAAI,QAAQ,CAAC;AAAA,8BAAE;AAAA,8BACxCA,EAAO,iBAAiB,IAAI,QAAQ,CAAC;AAAA,8BAAE;AAAA,4BAAA;AAAA,0BAAA;AAAA,wBAC1C;AAAA,wBAEF,gBAAAvD;AAAA,0BAAC;AAAA,0BAAA;AAAA,4BACC,OAAO;AAAA,8BACL,SAAS;AAAA,8BACT,OAAO;AAAA,8BACP,QAAQ;AAAA,8BACR,YAAY;AAAA,8BACZ,cAAc;AAAA,8BACd,UAAU;AAAA,8BACV,UAAU;AAAA,4BACZ;AAAA,4BAEA,UAAA,gBAAAA;AAAA,8BAAC;AAAA,8BAAA;AAAA,gCACC,OAAO;AAAA,kCACL,UAAU;AAAA,kCACV,MAAM;AAAA,kCACN,KAAK;AAAA,kCACL,QAAQ;AAAA,kCACR,OAAO,GAAGuD,EAAO,cAAc,GAAG;AAAA,kCAClC,YAAY,uBAAuBA,EAAO,WAAW;AAAA,kCACrD,cAAc;AAAA,kCACd,YAAY;AAAA,gCACd;AAAA,8BAAA;AAAA,4BACF;AAAA,0BAAA;AAAA,wBACF;AAAA,sBAAA,GACF;AAAA,wCAEC,QAAK,EAAA,OAAO,EAAE,OAAO,4BAA4B,UAAC,KAAA;AAAA,sBAGnD,gBAAAxD,EAAC,OAAI,EAAA,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,MAAA,GACxD,UAAA;AAAA,wBAAA,gBAAAA,EAAC2B,GACC,EAAA,UAAA;AAAA,0BAAC,gBAAA1B,EAAA2B,GAAA,EAAe,SAAO,IACrB,UAAA,gBAAA3B;AAAA,4BAAC;AAAA,4BAAA;AAAA,8BACC,OAAO;AAAA,gCACL,OAAO;AAAA,gCACP,QAAQ;AAAA,gCACR,cAAc;AAAA,8BAChB;AAAA,8BACD,UAAA;AAAA,4BAAA;AAAA,0BAAA,GAGH;AAAA,0BACC,gBAAAA,EAAA4B,GAAA,EAAe,WAAU,kHACxB,4BAAC,OACC,EAAA,UAAA;AAAA,4BAAC,gBAAA5B,EAAA,OAAA,EAAI,OAAO,EAAE,YAAY,KAAK,cAAc,OAAO,UAAU,OAAO,GAAG,UAExE,gCAAA,CAAA;AAAA,4BACA,gBAAAA,EAAC,SAAI,OAAO,EAAE,OAAO,6BAA6B,UAAU,OAAO,GAAG,UAEtE,qEAAA,CAAA;AAAA,0BAAA,EAAA,CACF,EACF,CAAA;AAAA,wBAAA,GACF;AAAA,wBACA,gBAAAA;AAAA,0BAAC;AAAA,0BAAA;AAAA,4BACC,OAAO;AAAA,8BACL,OAAO,uBAAuBuD,EAAO,UAAU;AAAA,4BACjD;AAAA,4BAEC,UAAAA,EAAO,WAAW,QAAQ,CAAC;AAAA,0BAAA;AAAA,wBAC9B;AAAA,wBACA,gBAAAvD;AAAA,0BAAC;AAAA,0BAAA;AAAA,4BACC,OAAO;AAAA,8BACL,SAAS;AAAA,8BACT,OAAO;AAAA,8BACP,QAAQ;AAAA,8BACR,YAAY;AAAA,8BACZ,cAAc;AAAA,8BACd,UAAU;AAAA,8BACV,UAAU;AAAA,4BACZ;AAAA,4BAEA,UAAA,gBAAAA;AAAA,8BAAC;AAAA,8BAAA;AAAA,gCACC,OAAO;AAAA,kCACL,UAAU;AAAA,kCACV,MAAM;AAAA,kCACN,KAAK;AAAA,kCACL,QAAQ;AAAA,kCACR,OAAO,GAAGuD,EAAO,aAAa,GAAG;AAAA,kCACjC,YAAY,uBAAuBA,EAAO,UAAU;AAAA,kCACpD,cAAc;AAAA,kCACd,YAAY;AAAA,gCACd;AAAA,8BAAA;AAAA,4BACF;AAAA,0BAAA;AAAA,wBACF;AAAA,sBAAA,GACF;AAAA,wCAEC,QAAK,EAAA,OAAO,EAAE,OAAO,4BAA4B,UAAC,KAAA;AAAA,sBAGnD,gBAAAxD;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,OAAO;AAAA,4BACL,OAAO;AAAA,4BACP,UAAU;AAAA,0BACZ;AAAA,0BAEE,UAAA;AAAA,6BAAOwD,EAAA,4BAA4B,CAAA,GAAI;AAAA,4BAAO;AAAA,6BAC9CA,EAAO,4BAA4B,CAAA,GAAI,WAAW,IAAI,MAAM;AAAA,0BAAA;AAAA,wBAAA;AAAA,sBAChE;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACF;AAAA,cAAA,GACF;AAAA,cAGA,gBAAAxD;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO;AAAA,oBACL,YAAY;AAAA,oBACZ,OAAO;AAAA,oBACP,YAAY;AAAA,oBACZ,YAAY;AAAA,oBACZ,SAAS;AAAA,oBACT,eAAe;AAAA,oBACf,YAAY;AAAA,oBACZ,KAAK;AAAA,kBACP;AAAA,kBAEC,UAAA;AAAA,oBAAAwD,EAAO,aACN,gBAAAvD;AAAA,sBAACC;AAAA,sBAAA;AAAA,wBACC,OAAOsD,EAAO;AAAA,wBACd,OAAOA,EAAO,aAAa;AAAA,wBAC3B,WAAWA,EAAO;AAAA,sBAAA;AAAA,oBACpB;AAAA,oBAEF,gBAAAvD;AAAA,sBAACE;AAAA,sBAAA;AAAA,wBACC,MAAM;AAAA,wBACN,OAAO;AAAA,0BACL,WAAWN,IAAa,mBAAmB;AAAA,0BAC3C,YAAY;AAAA,wBACd;AAAA,sBAAA;AAAA,oBACF;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACF;AAAA,YAAA,GACF;AAAA,UAAA;AAAA,QACF;AAAA,QAGCA,KACC,gBAAAG;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,WAAW;AAAA,cACX,YAAY;AAAA,cACZ,SAAS;AAAA,YACX;AAAA,YAEA,UAAA;AAAA,cAAA,gBAAAC;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO;AAAA,oBACL,UAAU;AAAA,oBACV,YAAY;AAAA,oBACZ,eAAe;AAAA,oBACf,eAAe;AAAA,oBACf,OAAO;AAAA,oBACP,cAAc;AAAA,kBAChB;AAAA,kBACD,UAAA;AAAA,gBAAA;AAAA,cAED;AAAA,cAEA,gBAAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO;AAAA,oBACL,SAAS;AAAA,oBACT,eAAe;AAAA,oBACf,KAAK;AAAA,kBACP;AAAA,kBAEE,aAAO,4BAA4B,IAAI,IAAI,CAACuE,GAAKC,MAAQ;AAEnD,0BAAAC,IADgBZ,EAAsBU,KAAA,gBAAAA,EAAK,SAASA,KAAA,gBAAAA,EAAK,KAAK,MAEhDX,IAAiC,gBAAgB,OAC/Dc,IAAqB,EAAQD,GAC7BE,IAA0B,MAAMnB,KAAA,gBAAAA,EAAsBe,EAAI,MAC1DK,IACJ,EAAQlB,KACR,EAAQD,KACR,OAAOA,CAAmB,MAAM,QAAOc,KAAA,gBAAAA,EAAK,eAAc,EAAE;AAG9D,2BAAA,gBAAAxE;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBAEC,MAAK;AAAA,wBACL,UAAU;AAAA,wBACV,SAAS4E;AAAA,wBACT,WAAW,CAACE,MAAU;AACpB,2BAAIA,EAAM,QAAQ,WAAWA,EAAM,QAAQ,SACzCA,EAAM,eAAe,GACGF;wBAE5B;AAAA,wBACA,OAAO;AAAA,0BACL,YAAYC,IACR,6BACA;AAAA,0BACJ,QAAQA,IACJ,uCACA;AAAA,0BACJ,cAAc;AAAA,0BACd,SAAS;AAAA,0BACT,WAAW;AAAA,0BACX,QAAQ;AAAA,0BACR,YAAY;AAAA,0BACZ,UAAU;AAAA,0BACV,UAAU;AAAA,wBACZ;AAAA,wBACA,cAAc,CAAC7C,MAAM;AACjB,0BAAAA,EAAA,cAAc,MAAM,aAAa,0BACjCA,EAAA,cAAc,MAAM,cAAc,0BAClCA,EAAA,cAAc,MAAM,YAAY;AAAA,wBACpC;AAAA,wBACA,cAAc,CAACA,MAAM;AACjB,0BAAAA,EAAA,cAAc,MAAM,aAAa,6BACjCA,EAAA,cAAc,MAAM,cAAc,0BAClCA,EAAA,cAAc,MAAM,YAAY;AAAA,wBACpC;AAAA,wBAGA,UAAA;AAAA,0BAAA,gBAAA/B;AAAA,4BAAC;AAAA,4BAAA;AAAA,8BACC,OAAO;AAAA,gCACL,UAAU;AAAA,gCACV,MAAM;AAAA,gCACN,KAAK;AAAA,gCACL,QAAQ;AAAA,gCACR,OAAO;AAAA,gCACP,YACEuE,EAAI,cAAc,cACd,8BACAA,EAAI,cAAc,cAClB,2BACA;AAAA,gCACN,cAAc;AAAA,8BAChB;AAAA,4BAAA;AAAA,0BACF;AAAA,0BAEA,gBAAAvE,EAAC,SAAI,OAAO,EAAE,aAAa,OAAO,cAAc,SAC9C,UAAA,gBAAAA;AAAA,4BAAC;AAAA,4BAAA;AAAA,8BACC,OAAO;AAAA,gCACL,UAAU;AAAA,gCACV,OAAO;AAAA,gCACP,YAAY;AAAA,8BACd;AAAA,8BAEC,UAAIuE,EAAA;AAAA,4BAAA;AAAA,0BAAA,GAET;AAAA,0BACA,gBAAAxE;AAAA,4BAAC;AAAA,4BAAA;AAAA,8BACC,OAAO;AAAA,gCACL,SAAS;AAAA,gCACT,YAAY;AAAA,gCACZ,KAAK;AAAA,gCACL,UAAU;AAAA,gCACV,aAAa;AAAA,8BACf;AAAA,8BAEA,UAAA;AAAA,gCAAA,gBAAAC;AAAA,kCAAC;AAAA,kCAAA;AAAA,oCACC,OAAO;AAAA,sCACL,YAAY;AAAA,sCACZ,OAAO;AAAA,oCACT;AAAA,oCAEC,UAAIuE,EAAA;AAAA,kCAAA;AAAA,gCACP;AAAA,kDACC,QAAK,EAAA,OAAO,EAAE,OAAO,4BAA4B,UAAC,KAAA;AAAA,kDAClD,QAAK,EAAA,OAAO,EAAE,OAAO,+BAA+B,UAErD,QAAA;AAAA,gCACA,gBAAAvE;AAAA,kCAAC;AAAA,kCAAA;AAAA,oCACC,OAAO;AAAA,sCACL,OAAO,uBAAuBuE,EAAI,UAAU;AAAA,oCAC9C;AAAA,oCAEC,UAAAA,EAAI,WAAW,QAAQ,CAAC;AAAA,kCAAA;AAAA,gCAC3B;AAAA,kDACC,QAAK,EAAA,OAAO,EAAE,OAAO,4BAA4B,UAAC,KAAA;AAAA,gCACnD,gBAAAvE;AAAA,kCAAC;AAAA,kCAAA;AAAA,oCACC,OAAO;AAAA,sCACL,UAAU;AAAA,sCACV,OACEuE,EAAI,cAAc,cACd,8BACAA,EAAI,cAAc,cAClB,2BACA;AAAA,oCACR;AAAA,oCAEC,YAAI,cAAc,cACf,uBACAA,EAAI,cAAc,cAClB,uBACA;AAAA,kCAAA;AAAA,gCACN;AAAA,8BAAA;AAAA,4BAAA;AAAA,0BACF;AAAA,0BAECZ,KAAmCe,IAClC,gBAAA3E;AAAA,4BAAC;AAAA,4BAAA;AAAA,8BACC,OAAO;AAAA,gCACL,WAAW;AAAA,gCACX,aAAa;AAAA,gCACb,SAAS;AAAA,gCACT,YAAY;AAAA,gCACZ,gBAAgB;AAAA,gCAChB,KAAK;AAAA,8BACP;AAAA,8BAEA,UAAA;AAAA,gCAAA,gBAAAC;AAAA,kCAAC;AAAA,kCAAA;AAAA,oCACC,OAAO;AAAA,sCACL,SAAS;AAAA,sCACT,YAAY;AAAA,sCACZ,QAAQ4E,IACJ,uCACA;AAAA,sCACJ,cAAc;AAAA,sCACd,SAAS;AAAA,sCACT,YAAY;AAAA,sCACZ,UAAU;AAAA,sCACV,OAAO;AAAA,sCACP,YAAY;AAAA,oCACd;AAAA,oCAEC,UAAAH;AAAA,kCAAA;AAAA,gCACH;AAAA,gCACA,gBAAAzE;AAAA,kCAAC;AAAA,kCAAA;AAAA,oCACC,MAAK;AAAA,oCACL,SAAS,CAAC6E,MAAU;AAClB,sCAAAA,EAAM,gBAAgB,GACEF;oCAC1B;AAAA,oCACA,cACEC,IACI,8BACA;AAAA,oCAEN,OACEA,IACI,8BACA;AAAA,oCAEN,UAAU,CAACF;AAAA,oCACX,OAAO;AAAA,sCACL,OAAO;AAAA,sCACP,QAAQ;AAAA,sCACR,cAAc;AAAA,sCACd,QAAQE,IACJ,uCACA;AAAA,sCACJ,YAAYA,IACR,0BACA;AAAA,sCACJ,SAAS;AAAA,sCACT,YAAY;AAAA,sCACZ,gBAAgB;AAAA,sCAChB,QAAQ;AAAA,sCACR,OAAOA,IACH,0BACA;AAAA,sCACJ,SAASF,IAAqB,IAAI;AAAA,oCACpC;AAAA,oCAEC,UAAAE,sBAA+BE,GAAM,EAAA,MAAM,IAAI,IAAK,gBAAA9E,EAACqD,GAAK,EAAA,MAAM,GAAI,CAAA;AAAA,kCAAA;AAAA,gCACvE;AAAA,8BAAA;AAAA,4BAAA;AAAA,0BAAA,IAEA;AAAA,wBAAA;AAAA,sBAAA;AAAA,sBArLCmB;AAAA,oBAAA;AAAA,kBAsLP,CAED;AAAA,gBAAA;AAAA,cACH;AAAA,cAGA,gBAAAzE;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO;AAAA,oBACL,WAAW;AAAA,oBACX,SAAS;AAAA,oBACT,YAAY;AAAA,oBACZ,cAAc;AAAA,oBACd,UAAU;AAAA,oBACV,OAAO;AAAA,oBACP,YAAY;AAAA,oBACZ,WAAW;AAAA,kBACb;AAAA,kBAEA,UAAA;AAAA,oBAAA,gBAAAC;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,OAAO,EAAE,WAAW,UAAU,OAAO,yBAAyB;AAAA,wBAC/D,UAAA;AAAA,sBAAA;AAAA,oBAED;AAAA,oBAAU;AAAA,oBAAI;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAGhB;AAAA,YAAA;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;ACpkBwB,SAAA+E,EAAc,EAAE,MAAApF,KAAQ;AAC9C,QAAM,CAACqF,GAAiBC,CAAkB,IAAInF,EAAS,EAAK,GACtD,CAACoF,GAAYC,CAAa,IAAIrF,EAASH,EAAK,OAAO,IAAI,GAEvDyF,IAAmB,MAAM;AAC7B,IAAAH,EAAmB,EAAI;AAAA,EAAA,GAGnBI,IAAmB,MAAM;AAC7B,IAAAJ,EAAmB,EAAK,GAEhB,QAAA,IAAI,kBAAkBC,CAAU;AAAA,EAAA,GAGpCI,IAAmB,MAAM;AAC7B,IAAAL,EAAmB,EAAK,GACVE,EAAAxF,EAAK,OAAO,IAAI;AAAA,EAAA;AAI9B,SAAA,gBAAAI;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,OAAO,EAAE,UAAU,SAAS,UAAU,UAAU;AAAA,MAGhD,UAAA;AAAA,QAAA,gBAAAC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,OAAO,EAAE,iBAAiBL,EAAK,UAAU;AAAA,UAAA;AAAA,QAC3C;AAAA,QAGA,gBAAAI,EAAC,OAAI,EAAA,WAAU,+BAEb,UAAA;AAAA,UAAA,gBAAAC;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO,EAAE,OAAO,0BAA0B,YAAY,IAAI;AAAA,cAEzD,UAAKL,EAAA;AAAA,YAAA;AAAA,UACR;AAAA,UAGA,gBAAAI,EAAC,OAAI,EAAA,WAAU,0DACb,UAAA;AAAA,YAAA,gBAAAC;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,OAAO;AAAA,kBACL,UAAU;AAAA,kBACV,YAAY;AAAA,kBACZ,eAAe;AAAA,kBACf,YAAY;AAAA,kBACZ,OAAO;AAAA,gBACT;AAAA,gBAEC,UAAKL,EAAA;AAAA,cAAA;AAAA,YACR;AAAA,YACCA,EAAK,aACH,gBAAAK,EAAA,OAAA,EAAI,WAAU,iBACb,UAAA,gBAAAA;AAAA,cAACC;AAAA,cAAA;AAAA,gBACC,OAAON,EAAK;AAAA,gBACZ,OAAOA,EAAK;AAAA,gBACZ,WAAWA,EAAK;AAAA,cAAA;AAAA,YAAA,GAEpB;AAAA,UAAA,GAEJ;AAAA,UAGA,gBAAAI;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO,EAAE,OAAO,yBAAyB;AAAA,cAC1C,UAAA;AAAA,gBAAA;AAAA,gBACa,gBAAAC,EAAC,UAAQ,EAAA,UAAAL,EAAK,UAAU,CAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UACtC;AAAA,UAGA,gBAAAK;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO,EAAE,OAAO,yBAAyB;AAAA,cAExC,UAAKL,EAAA;AAAA,YAAA;AAAA,UACR;AAAA,UAGA,gBAAAI;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO,EAAE,OAAO,yBAAyB;AAAA,cAC1C,UAAA;AAAA,gBAAA;AAAA,gBACO,gBAAAC,EAAA,UAAA,EAAQ,UAAKL,EAAA,SAAS,MAAK;AAAA,gBAAS;AAAA,gBAAQ;AAAA,gBACjD,gBAAAK,EAAA,UAAA,EAAQ,UAAKL,EAAA,SAAS,MAAK;AAAA,gBAAS;AAAA,gBAAY;AAAA,gBAChD,gBAAAK,EAAA,UAAA,EAAQ,UAAKL,EAAA,SAAS,UAAS;AAAA,gBAAS;AAAA,gBAAY;AAAA,gBACpD,gBAAAK,EAAA,UAAA,EAAQ,UAAKL,EAAA,SAAS,UAAS;AAAA,cAAA;AAAA,YAAA;AAAA,UAClC;AAAA,UAGA,gBAAAI,EAAC,OAAI,EAAA,WAAU,QACb,UAAA;AAAA,YAAA,gBAAAC;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,OAAO,EAAE,OAAO,0BAA0B,YAAY,IAAI;AAAA,gBAC3D,UAAA;AAAA,cAAA;AAAA,YAED;AAAA,YACA,gBAAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,OAAO,EAAE,OAAO,yBAAyB;AAAA,gBAExC,UAAKL,EAAA;AAAA,cAAA;AAAA,YACR;AAAA,UAAA,GACF;AAAA,UAGA,gBAAAI,EAAC,OAAI,EAAA,WAAU,8DAEb,UAAA;AAAA,YAAC,gBAAAA,EAAA,OAAA,EAAI,WAAU,gDACb,UAAA;AAAA,cAAC,gBAAAA,EAAA,OAAA,EAAI,WAAU,6BACb,UAAA;AAAA,gBAAA,gBAAAC;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,WAAU;AAAA,oBACV,OAAO,EAAE,OAAO,0BAA0B,YAAY,IAAI;AAAA,oBAC3D,UAAA;AAAA,kBAAA;AAAA,gBAED;AAAA,gBAECL,EAAK,OAAO,kBACX,gBAAAK;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,WAAU;AAAA,oBACV,OAAO;AAAA,sBACL,OAAO;AAAA,sBACP,aAAa;AAAA,sBACb,YAAY;AAAA,oBACd;AAAA,oBACD,UAAA;AAAA,kBAAA;AAAA,gBAED;AAAA,cAAA,GAEJ;AAAA,cAGC,CAACgF,KACA,gBAAAjF;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,SAASqF;AAAA,kBACT,WAAU;AAAA,kBACV,OAAO;AAAA,oBACL,aAAa;AAAA,oBACb,YAAY;AAAA,oBACZ,OAAO;AAAA,kBACT;AAAA,kBACA,cAAW;AAAA,kBAEX,UAAA;AAAA,oBAAA,gBAAApF;AAAA,sBAACuF;AAAA,sBAAA;AAAA,wBACC,WAAU;AAAA,wBACV,OAAO,EAAE,OAAO,yBAAyB;AAAA,sBAAA;AAAA,oBAC3C;AAAA,oBAAE;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAEJ;AAAA,YAAA,GAEJ;AAAA,YAGCP,IACC,gBAAAjF,EAAC,OAAI,EAAA,WAAU,aACb,UAAA;AAAA,cAAA,gBAAAC;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAOkF;AAAA,kBACP,UAAU,CAACnD,MAAMoD,EAAcpD,EAAE,OAAO,KAAK;AAAA,kBAC7C,WAAU;AAAA,kBACV,OAAO;AAAA,oBACL,OAAO;AAAA,oBACP,aAAa;AAAA,kBACf;AAAA,kBACA,MAAM;AAAA,gBAAA;AAAA,cACR;AAAA,cACA,gBAAAhC,EAAC,OAAI,EAAA,WAAU,0BACb,UAAA;AAAA,gBAAA,gBAAAC;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,SAASsF;AAAA,oBACT,WAAU;AAAA,oBACV,OAAO;AAAA,sBACL,aAAa;AAAA,sBACb,YAAY;AAAA,sBACZ,OAAO;AAAA,oBACT;AAAA,oBACD,UAAA;AAAA,kBAAA;AAAA,gBAED;AAAA,gBACA,gBAAAtF;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,SAASqF;AAAA,oBACT,WAAU;AAAA,oBACV,OAAO;AAAA,sBACL,YAAY;AAAA,oBACd;AAAA,oBACD,UAAA;AAAA,kBAAA;AAAA,gBAED;AAAA,cAAA,GACF;AAAA,YAAA,EAAA,CACF,IAEA,gBAAArF;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,OAAO,EAAE,OAAO,yBAAyB;AAAA,gBAExC,UAAAkF;AAAA,cAAA;AAAA,YACH;AAAA,UAAA,GAEJ;AAAA,QAAA,GACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;AC3MA,SAAwBM,EAAe;AAAA,EACrC,OAAAC;AAAA,EACA,YAAA7E;AAAA,EACA,OAAA8E;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,cAAAC,IAAe;AAAA,EACf,OAAAC,IAAQ;AAAA,EACR,UAAUC,IAAkB;AAAA,EAC5B,SAAAC,IAAU,CAAC;AAAA,EACX,eAAAC;AAAA,EACA,iBAAA9E;AACF,GAAG;AACD,QAAM,CAACF,GAAUiF,CAAW,IAAInG,EAASgG,CAAe;AAUxD,2BACG,OAEC,EAAA,UAAA;AAAA,IAAA,gBAAA/F,EAAC,OAAI,EAAA,OAAO,EAAE,cAAc,OAC1B,GAAA,UAAA;AAAA,MAAA,gBAAAC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,OAAO,EAAE,OAAO,0BAA0B,YAAY,IAAI;AAAA,UAC3D,UAAA;AAAA,QAAA;AAAA,MAED;AAAA,MACA,gBAAAD;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,OAAO;AAAA,YACL,UAAU;AAAA,YACV,YAAY;AAAA,YACZ,eAAe;AAAA,YACf,OAAO;AAAA,YACP,YAAY;AAAA,UACd;AAAA,UAEC,UAAA;AAAA,YAAA8F;AAAA,YACD,gBAAA9F;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAO;AAAA,kBACL,UAAU;AAAA,kBACV,OAAO;AAAA,kBACP,YAAY;AAAA,kBACZ,YAAY;AAAA,gBACd;AAAA,gBACD,UAAA;AAAA,kBAAA;AAAA,kBACa4F;AAAA,kBAAS;AAAA,kBAAIC;AAAA,gBAAA;AAAA,cAAA;AAAA,YAC3B;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA,GACF;AAAA,IAGA,gBAAA7F;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO;AAAA,UACL,QAAQ;AAAA,UACR,cAAc;AAAA,UACd,YAAY;AAAA,UACZ,UAAU;AAAA,QACZ;AAAA,QAGA,UAAA;AAAA,UAAA,gBAAAC;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,SArDa,MAAM;AAEzB,gBAAAiG,EADoB,CAACjF,CACE,GACnBgF,KACYA;cAChB;AAAA,cAiDM,UAAUD,EAAQ,WAAW;AAAA,cAC7B,OAAO;AAAA,gBACL,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,YAAY;AAAA,gBACZ,QAAQ;AAAA,gBACR,QAAQA,EAAQ,SAAS,IAAI,YAAY;AAAA,gBACzC,WAAW;AAAA,gBACX,YAAY;AAAA,cACd;AAAA,cACA,cAAc,CAAChE,MAAM;AACf,gBAAAgE,EAAQ,SAAS,MACjBhE,EAAA,cAAc,MAAM,aAAa;AAAA,cAEvC;AAAA,cACA,cAAc,CAACA,MAAM;AACjB,gBAAAA,EAAA,cAAc,MAAM,aAAa;AAAA,cACrC;AAAA,cAEA,UAAA,gBAAAhC,EAAC,OAAI,EAAA,OAAO,EAAE,SAAS,QAAQ,YAAY,cAAc,KAAK,OAAA,GAC5D,UAAA;AAAA,gBAAA,gBAAAA,EAAC,SAAI,OAAO,EAAE,MAAM,GAAG,UAAU,EAE/B,GAAA,UAAA;AAAA,kBAAA,gBAAAA;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,OAAO;AAAA,wBACL,SAAS;AAAA,wBACT,UAAU;AAAA,wBACV,KAAK;AAAA,wBACL,YAAY;AAAA,wBACZ,cAAc;AAAA,sBAChB;AAAA,sBAEA,UAAA;AAAA,wBAAA,gBAAAC;AAAA,0BAAC;AAAA,0BAAA;AAAA,4BACC,OAAO;AAAA,8BACL,UAAU;AAAA,8BACV,YAAY;AAAA,8BACZ,eAAe;AAAA,8BACf,OAAO;AAAA,8BACP,YAAY;AAAA,4BACd;AAAA,4BAEC,UAAAyF;AAAA,0BAAA;AAAA,wBACH;AAAA,wBACA,gBAAA1F;AAAA,0BAAC;AAAA,0BAAA;AAAA,4BACC,OAAO;AAAA,8BACL,UAAU;AAAA,8BACV,OAAO;AAAA,8BACP,YAAY;AAAA,4BACd;AAAA,4BACD,UAAA;AAAA,8BAAA;AAAA,8BAC6B,gBAAAC,EAAA,UAAA,EAAQ,UAAWY,EAAA,QAAQ,CAAC,GAAE;AAAA,8BAAS;AAAA,8BAAG;AAAA,8BACtE,gBAAAZ;AAAA,gCAAC;AAAA,gCAAA;AAAA,kCACC,OAAO;AAAA,oCACL,cAAc;AAAA,kCAChB;AAAA,kCACD,UAAA;AAAA,gCAAA;AAAA,8BAED;AAAA,4BAAA;AAAA,0BAAA;AAAA,wBACF;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBACF;AAAA,kBAGA,gBAAAD;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,OAAO;AAAA,wBACL,UAAU;AAAA,wBACV,OAAO;AAAA,wBACP,YAAY;AAAA,sBACd;AAAA,sBACD,UAAA;AAAA,wBAAA;AAAA,0CACQ,UAAQ,EAAA,UAAA;AAAA,0BAAM2F,EAAA;AAAA,0BAAI;AAAA,0BAAEA,EAAM;AAAA,wBAAA,GAAI;AAAA,wBAAS;AAAA,wBAA8D;AAAA,wBAC3G1E,IACG,iDACA;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBACN;AAAA,gBAAA,GACF;AAAA,gBAGC+E,EAAQ,SAAS,KAChB,gBAAA/F;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,OAAO;AAAA,sBACL,YAAY;AAAA,sBACZ,OAAO;AAAA,sBACP,YAAY;AAAA,sBACZ,YAAY;AAAA,oBACd;AAAA,oBAEA,UAAA,gBAAAA;AAAA,sBAACE;AAAA,sBAAA;AAAA,wBACC,MAAM;AAAA,wBACN,OAAO;AAAA,0BACL,WAAWc,IAAW,mBAAmB;AAAA,0BACzC,YAAY;AAAA,wBACd;AAAA,sBAAA;AAAA,oBACF;AAAA,kBAAA;AAAA,gBACF;AAAA,cAAA,GAEJ;AAAA,YAAA;AAAA,UACF;AAAA,UAGCA,KAAY+E,EAAQ,SAAS,KAC5B,gBAAAhG;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO;AAAA,gBACL,WAAW;AAAA,gBACX,SAAS;AAAA,cACX;AAAA,cAGA,UAAA;AAAA,gBAAA,gBAAAC;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,WAAU;AAAA,oBACV,OAAO,EAAE,OAAO,0BAA0B,YAAY,IAAI;AAAA,oBAC3D,UAAA;AAAA,kBAAA;AAAA,gBAED;AAAA,gBAGC,gBAAAA,EAAA,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,UAC1D,UAAA+F,EAAQ,IAAI,CAAC9D,GAAQ7B,MACpB,gBAAAJ;AAAA,kBAACgC;AAAA,kBAAA;AAAA,oBAEC,QAAAC;AAAA,oBACA,iBAAAf;AAAA,oBACA,YAAY;AAAA,kBAAA;AAAA,kBAHPd;AAAA,gBAKR,CAAA,GACH;AAAA,gBAGA,gBAAAJ;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,OAAO;AAAA,sBACL,WAAW;AAAA,sBACX,UAAU;AAAA,sBACV,OAAO;AAAA,sBACP,YAAY;AAAA,oBACd;AAAA,oBACD,UAAA;AAAA,kBAAA;AAAA,gBAED;AAAA,cAAA;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MAAA;AAAA,IAEJ;AAAA,EACF,EAAA,CAAA;AAEJ;AC/NA,SAAwBkG,EAAe;AAAA,EACrC,OAAAL,IAAQ;AAAA,EACR,SAAAM;AAAA,EACA,cAAAC,IAAe;AACjB,GAAG;AAEC,SAAA,gBAAArG,EAAC,OAAI,EAAA,WAAU,QAEb,UAAA;AAAA,IAAC,gBAAAA,EAAA,OAAA,EAAI,WAAU,QACb,UAAA;AAAA,MAAA,gBAAAC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,OAAO,EAAE,OAAO,0BAA0B,YAAY,IAAI;AAAA,UAC3D,UAAA;AAAA,QAAA;AAAA,MAED;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,OAAO;AAAA,YACL,YAAY;AAAA,YACZ,eAAe;AAAA,YACf,OAAO;AAAA,YACP,YAAY;AAAA,UACd;AAAA,UAEC,UAAA6F;AAAA,QAAA;AAAA,MACH;AAAA,IAAA,GACF;AAAA,IAGA,gBAAA7F;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO;AAAA,UACL,YAAY;AAAA,UACZ,OAAO;AAAA,QACT;AAAA,QAEC,UAAAmG;AAAA,MAAA;AAAA,IACH;AAAA,IAGCC,KACC,gBAAApG;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO;AAAA,UACL,OAAO;AAAA,UACP,YAAY;AAAA,QACd;AAAA,QAEC,UAAAoG;AAAA,MAAA;AAAA,IACH;AAAA,EAEJ,EAAA,CAAA;AAEJ;"}
|