chordia-ui 3.2.2 → 3.2.4

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.
Files changed (39) hide show
  1. package/README.md +61 -0
  2. package/dist/IntegrationCard.cjs.js +2 -0
  3. package/dist/IntegrationCard.cjs.js.map +1 -0
  4. package/dist/IntegrationCard.es.js +217 -0
  5. package/dist/IntegrationCard.es.js.map +1 -0
  6. package/dist/UploadInteraction.cjs.js +2 -0
  7. package/dist/UploadInteraction.cjs.js.map +1 -0
  8. package/dist/UploadInteraction.es.js +379 -0
  9. package/dist/UploadInteraction.es.js.map +1 -0
  10. package/dist/components/layout.cjs.js +2 -2
  11. package/dist/components/layout.cjs.js.map +1 -1
  12. package/dist/components/layout.es.js +202 -411
  13. package/dist/components/layout.es.js.map +1 -1
  14. package/dist/components/onboarding.cjs.js +2 -0
  15. package/dist/components/onboarding.cjs.js.map +1 -0
  16. package/dist/components/onboarding.es.js +712 -0
  17. package/dist/components/onboarding.es.js.map +1 -0
  18. package/dist/index.cjs.js +1 -1
  19. package/dist/index.cjs2.js +2 -2
  20. package/dist/index.cjs2.js.map +1 -1
  21. package/dist/index.es.js +49 -41
  22. package/dist/index.es.js.map +1 -1
  23. package/dist/index.es2.js +869 -811
  24. package/dist/index.es2.js.map +1 -1
  25. package/dist/pages/interactionDetails.cjs.js +1 -1
  26. package/dist/pages/interactionDetails.cjs.js.map +1 -1
  27. package/dist/pages/interactionDetails.es.js +16 -15
  28. package/dist/pages/interactionDetails.es.js.map +1 -1
  29. package/dist/style.css +1 -1
  30. package/package.json +5 -1
  31. package/src/components/index.js +3 -0
  32. package/src/components/login/LoginPage.jsx +107 -5
  33. package/src/components/onboarding/AddTeammates.jsx +278 -0
  34. package/src/components/onboarding/ConnectData.jsx +89 -0
  35. package/src/components/onboarding/GettingStarted.jsx +524 -0
  36. package/src/components/onboarding/UploadEvaluate.jsx +255 -0
  37. package/src/components/onboarding/UploadInteraction.jsx +186 -0
  38. package/src/components/onboarding/index.js +5 -0
  39. package/src/tokens/colors.css +13 -0
@@ -1 +1 @@
1
- {"version":3,"file":"layout.es.js","sources":["../../src/components/layout/FirstCallScreen.jsx","../../src/components/layout/OnboardingChecklist.jsx","../../src/components/layout/DemoProjectBanner.jsx","../../src/components/layout/IntegrationCard.jsx","../../src/components/layout/LoginForm.jsx","../../src/components/layout/SplitPane.jsx"],"sourcesContent":["\"use client\";\n\nimport React, { useState, useRef } from \"react\";\nimport { Upload, Link, Sparkles, CheckCircle2, X } from \"lucide-react\";\n\n/**\n * FirstCallScreen Component\n * Displays an onboarding screen with three options for getting started:\n * Upload an interaction, Explore a demonstration project, or Connect a data source.\n */\nexport default function FirstCallScreen({\n onUploadCall,\n onConnectSource,\n onUseSample,\n showExamples = false,\n}) {\n const [hoveredCard, setHoveredCard] = useState(null);\n const [uploadedFile, setUploadedFile] = useState(null);\n const [connectedSource, setConnectedSource] = useState(null);\n const [selectedProject, setSelectedProject] = useState(null);\n const fileInputRef = useRef(null);\n\n // Dummy data sources for testing\n const dummyDataSources = [\n { id: \"five9\", name: \"Five9\", status: \"available\", description: \"Cloud contact center platform\" },\n { id: \"twilio\", name: \"Twilio Flex\", status: \"available\", description: \"Programmable contact center\" },\n { id: \"genesys\", name: \"Genesys Cloud\", status: \"available\", description: \"All-in-one cloud contact center\" },\n { id: \"zoom\", name: \"Zoom Phone\", status: \"coming-soon\", description: \"Cloud phone system\" },\n ];\n\n // Dummy demo projects for testing\n const dummyProjects = [\n {\n id: \"retail-support\",\n name: \"Retail Customer Support\",\n description: \"Sample interactions from retail customer service team\",\n interactions: 24,\n dateRange: \"Last 30 days\",\n },\n {\n id: \"healthcare-billing\",\n name: \"Healthcare Billing Inquiries\",\n description: \"Patient billing and insurance verification calls\",\n interactions: 18,\n dateRange: \"Last 2 weeks\",\n },\n {\n id: \"financial-services\",\n name: \"Financial Services Compliance\",\n description: \"Banking and financial advisory interactions\",\n interactions: 32,\n dateRange: \"Last 45 days\",\n },\n ];\n\n const handleFileUpload = (event) => {\n const file = event.target.files?.[0];\n if (file) {\n // Check if file is audio or video\n const isAudio = file.type.startsWith(\"audio/\");\n const isVideo = file.type.startsWith(\"video/\");\n \n if (isAudio || isVideo) {\n setUploadedFile({\n name: file.name,\n type: file.type,\n size: file.size,\n lastModified: new Date(file.lastModified),\n });\n if (onUploadCall) {\n onUploadCall(file);\n } else {\n console.log(\"File uploaded:\", file.name, file.type, `(${(file.size / 1024 / 1024).toFixed(2)} MB)`);\n }\n } else {\n alert(\"Please select an audio or video file.\");\n }\n }\n // Reset input so the same file can be selected again\n if (fileInputRef.current) {\n fileInputRef.current.value = \"\";\n }\n };\n\n const handleConnectSource = (sourceId) => {\n const source = dummyDataSources.find((s) => s.id === sourceId);\n if (source && source.status === \"available\") {\n setConnectedSource(source);\n if (onConnectSource) {\n onConnectSource(source);\n } else {\n console.log(\"Connected to:\", source.name);\n }\n }\n };\n\n const handleSelectProject = (projectId) => {\n const project = dummyProjects.find((p) => p.id === projectId);\n if (project) {\n setSelectedProject(project);\n if (onUseSample) {\n onUseSample(project);\n } else {\n console.log(\"Selected project:\", project.name);\n }\n }\n };\n\n const handleUploadClick = () => {\n if (fileInputRef.current) {\n fileInputRef.current.click();\n }\n };\n\n const handleSampleClick = () => {\n if (showExamples && !selectedProject) {\n // Show project selection if examples are enabled\n return;\n }\n if (onUseSample) {\n onUseSample(selectedProject || { id: \"default\", name: \"Demo Project\" });\n }\n };\n\n const handleConnectClick = () => {\n if (showExamples && !connectedSource) {\n // Show data source selection if examples are enabled\n return;\n }\n if (onConnectSource) {\n onConnectSource(connectedSource || { id: \"default\", name: \"Data Source\" });\n }\n };\n\n const options = [\n {\n id: \"upload\",\n icon: Upload,\n title: \"Upload an interaction\",\n description:\n \"Drop an audio or video recording to see what Compass surfaces\",\n recommended: false,\n onClick: handleUploadClick,\n },\n {\n id: \"sample\",\n icon: Sparkles,\n title: \"Explore a demonstration project\",\n description:\n \"See how Chordia Compass surfaces insights from real interaction data\",\n recommended: true,\n onClick: handleSampleClick,\n },\n {\n id: \"connect\",\n icon: Link,\n title: \"Connect a data source\",\n description:\n \"Link your existing system to automatically analyze interactions\",\n recommended: false,\n onClick: handleConnectClick,\n },\n ];\n\n return (\n <div\n style={{\n minHeight: \"100vh\",\n background: \"var(--surface-warm)\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n padding: \"32px\",\n }}\n >\n {/* Hidden file input */}\n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\"audio/*,video/*\"\n onChange={handleFileUpload}\n style={{ display: \"none\" }}\n />\n <div style={{ maxWidth: \"680px\", width: \"100%\" }}>\n {/* Header */}\n <div style={{ textAlign: \"center\", marginBottom: \"48px\" }}>\n <h1\n style={{\n fontSize: \"32px\",\n fontWeight: 760,\n letterSpacing: \"-0.02em\",\n color: \"rgba(30, 33, 37, 0.92)\",\n marginBottom: \"12px\",\n lineHeight: 1.2,\n }}\n >\n Experience Compass with one interaction\n </h1>\n <p\n style={{\n fontSize: \"15px\",\n color: \"rgba(30, 33, 37, 0.65)\",\n lineHeight: 1.5,\n maxWidth: \"520px\",\n margin: \"0 auto\",\n }}\n >\n Compass surfaces evidence, signals, and actionable insights from\n customer interactions. Start by exploring what it reveals.\n </p>\n </div>\n\n {/* Options */}\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"16px\",\n }}\n >\n {options.map((option) => {\n const Icon = option.icon;\n const isHovered = hoveredCard === option.id;\n\n return (\n <button\n key={option.id}\n type=\"button\"\n onClick={option.onClick}\n onMouseEnter={() => setHoveredCard(option.id)}\n onMouseLeave={() => setHoveredCard(null)}\n style={{\n position: \"relative\",\n width: \"100%\",\n padding: \"24px 28px\",\n background: isHovered\n ? \"rgba(255, 255, 255, 0.95)\"\n : \"rgba(255, 255, 255, 0.85)\",\n border: option.recommended\n ? \"2px solid rgba(184, 156, 106, 0.35)\"\n : isHovered\n ? \"1px solid rgba(52, 58, 64, 0.20)\"\n : \"1px solid rgba(52, 58, 64, 0.12)\",\n borderRadius: \"16px\",\n cursor: \"pointer\",\n textAlign: \"left\",\n transition: \"all 0.2s ease\",\n transform: isHovered ? \"translateY(-2px)\" : \"translateY(0)\",\n boxShadow: isHovered\n ? \"0 12px 28px rgba(30, 33, 37, 0.12)\"\n : \"0 4px 12px rgba(30, 33, 37, 0.06)\",\n }}\n >\n {/* Recommended badge */}\n {option.recommended && (\n <div\n style={{\n position: \"absolute\",\n top: \"16px\",\n right: \"20px\",\n fontSize: \"10px\",\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: \"4px 8px\",\n borderRadius: \"6px\",\n border: \"1px solid rgba(184, 156, 106, 0.2)\",\n }}\n >\n Recommended\n </div>\n )}\n <div\n style={{\n display: \"flex\",\n alignItems: \"flex-start\",\n gap: \"18px\",\n }}\n >\n {/* Icon */}\n <div\n style={{\n width: \"48px\",\n height: \"48px\",\n borderRadius: \"12px\",\n background: option.recommended\n ? \"rgba(184, 156, 106, 0.12)\"\n : \"rgba(231, 212, 162, 0.20)\",\n border: option.recommended\n ? \"1px solid rgba(184, 156, 106, 0.25)\"\n : \"1px solid rgba(231, 212, 162, 0.35)\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n }}\n >\n <Icon\n size={22}\n style={{\n color: option.recommended\n ? \"rgba(184, 156, 106, 0.75)\"\n : \"rgba(30, 33, 37, 0.52)\",\n }}\n />\n </div>\n\n {/* Content */}\n <div style={{ flex: 1, paddingTop: \"2px\" }}>\n <div\n style={{\n fontSize: \"17px\",\n fontWeight: 680,\n letterSpacing: \"-0.01em\",\n color: \"rgba(30, 33, 37, 0.92)\",\n marginBottom: \"6px\",\n lineHeight: 1.3,\n }}\n >\n {option.title}\n </div>\n <div\n style={{\n fontSize: \"13.5px\",\n color: \"rgba(30, 33, 37, 0.62)\",\n lineHeight: 1.5,\n }}\n >\n {option.description}\n </div>\n </div>\n </div>\n </button>\n );\n })}\n </div>\n\n {/* Footer note */}\n <div\n style={{\n marginTop: \"32px\",\n textAlign: \"center\",\n fontSize: \"12px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n lineHeight: 1.5,\n }}\n >\n Your workspace has been created automatically. You can configure\n settings and add teammates later.\n </div>\n\n {/* Testing Examples Section */}\n {showExamples && (\n <div style={{ marginTop: \"48px\", paddingTop: \"32px\", borderTop: \"1px solid rgba(52, 58, 64, 0.12)\" }}>\n <h2\n style={{\n fontSize: \"20px\",\n fontWeight: 680,\n letterSpacing: \"-0.01em\",\n color: \"rgba(30, 33, 37, 0.92)\",\n marginBottom: \"24px\",\n }}\n >\n Testing Examples\n </h2>\n\n {/* Uploaded File Example */}\n {uploadedFile && (\n <div\n style={{\n marginBottom: \"24px\",\n padding: \"16px\",\n background: \"rgba(255, 255, 255, 0.85)\",\n border: \"1px solid rgba(52, 58, 64, 0.12)\",\n borderRadius: \"12px\",\n }}\n >\n <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\", marginBottom: \"8px\" }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: \"8px\" }}>\n <CheckCircle2 size={18} style={{ color: \"#1F8F5A\" }} />\n <span style={{ fontSize: \"14px\", fontWeight: 650, color: \"rgba(30, 33, 37, 0.92)\" }}>\n File Uploaded\n </span>\n </div>\n <button\n onClick={() => setUploadedFile(null)}\n style={{\n background: \"none\",\n border: \"none\",\n cursor: \"pointer\",\n padding: \"4px\",\n display: \"flex\",\n alignItems: \"center\",\n }}\n >\n <X size={16} style={{ color: \"rgba(30, 33, 37, 0.42)\" }} />\n </button>\n </div>\n <div style={{ fontSize: \"13px\", color: \"rgba(30, 33, 37, 0.65)\", lineHeight: 1.5 }}>\n <div><strong>Name:</strong> {uploadedFile.name}</div>\n <div><strong>Type:</strong> {uploadedFile.type}</div>\n <div><strong>Size:</strong> {(uploadedFile.size / 1024 / 1024).toFixed(2)} MB</div>\n <div><strong>Uploaded:</strong> {uploadedFile.lastModified.toLocaleString()}</div>\n </div>\n </div>\n )}\n\n {/* Demo Projects Selection */}\n {!selectedProject && (\n <div style={{ marginBottom: \"24px\" }}>\n <h3\n style={{\n fontSize: \"15px\",\n fontWeight: 650,\n color: \"rgba(30, 33, 37, 0.82)\",\n marginBottom: \"12px\",\n }}\n >\n Select a Demonstration Project:\n </h3>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: \"8px\" }}>\n {dummyProjects.map((project) => (\n <button\n key={project.id}\n onClick={() => handleSelectProject(project.id)}\n style={{\n padding: \"12px 16px\",\n background: \"rgba(255, 255, 255, 0.85)\",\n border: \"1px solid rgba(52, 58, 64, 0.12)\",\n borderRadius: \"8px\",\n textAlign: \"left\",\n cursor: \"pointer\",\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.20)\";\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 }}\n >\n <div style={{ fontSize: \"14px\", fontWeight: 650, color: \"rgba(30, 33, 37, 0.92)\", marginBottom: \"4px\" }}>\n {project.name}\n </div>\n <div style={{ fontSize: \"12px\", color: \"rgba(30, 33, 37, 0.62)\", marginBottom: \"4px\" }}>\n {project.description}\n </div>\n <div style={{ fontSize: \"11px\", color: \"rgba(30, 33, 37, 0.52)\" }}>\n {project.interactions} interactions · {project.dateRange}\n </div>\n </button>\n ))}\n </div>\n </div>\n )}\n\n {/* Selected Project Example */}\n {selectedProject && (\n <div\n style={{\n marginBottom: \"24px\",\n padding: \"16px\",\n background: \"rgba(255, 255, 255, 0.85)\",\n border: \"1px solid rgba(52, 58, 64, 0.12)\",\n borderRadius: \"12px\",\n }}\n >\n <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\", marginBottom: \"8px\" }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: \"8px\" }}>\n <CheckCircle2 size={18} style={{ color: \"#1F8F5A\" }} />\n <span style={{ fontSize: \"14px\", fontWeight: 650, color: \"rgba(30, 33, 37, 0.92)\" }}>\n Project Selected: {selectedProject.name}\n </span>\n </div>\n <button\n onClick={() => setSelectedProject(null)}\n style={{\n background: \"none\",\n border: \"none\",\n cursor: \"pointer\",\n padding: \"4px\",\n display: \"flex\",\n alignItems: \"center\",\n }}\n >\n <X size={16} style={{ color: \"rgba(30, 33, 37, 0.42)\" }} />\n </button>\n </div>\n <div style={{ fontSize: \"13px\", color: \"rgba(30, 33, 37, 0.65)\", lineHeight: 1.5 }}>\n <div>{selectedProject.description}</div>\n <div style={{ marginTop: \"4px\" }}>\n <strong>{selectedProject.interactions}</strong> interactions · <strong>{selectedProject.dateRange}</strong>\n </div>\n </div>\n </div>\n )}\n\n {/* Data Sources Selection */}\n {!connectedSource && (\n <div style={{ marginBottom: \"24px\" }}>\n <h3\n style={{\n fontSize: \"15px\",\n fontWeight: 650,\n color: \"rgba(30, 33, 37, 0.82)\",\n marginBottom: \"12px\",\n }}\n >\n Connect a Data Source:\n </h3>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: \"8px\" }}>\n {dummyDataSources.map((source) => (\n <button\n key={source.id}\n onClick={() => handleConnectSource(source.id)}\n disabled={source.status === \"coming-soon\"}\n style={{\n padding: \"12px 16px\",\n background: source.status === \"coming-soon\" \n ? \"rgba(255, 255, 255, 0.5)\" \n : \"rgba(255, 255, 255, 0.85)\",\n border: \"1px solid rgba(52, 58, 64, 0.12)\",\n borderRadius: \"8px\",\n textAlign: \"left\",\n cursor: source.status === \"coming-soon\" ? \"not-allowed\" : \"pointer\",\n transition: \"all 0.15s ease\",\n opacity: source.status === \"coming-soon\" ? 0.6 : 1,\n }}\n onMouseEnter={(e) => {\n if (source.status !== \"coming-soon\") {\n e.currentTarget.style.background = \"rgba(255, 255, 255, 0.95)\";\n e.currentTarget.style.borderColor = \"rgba(52, 58, 64, 0.20)\";\n }\n }}\n onMouseLeave={(e) => {\n if (source.status !== \"coming-soon\") {\n e.currentTarget.style.background = \"rgba(255, 255, 255, 0.85)\";\n e.currentTarget.style.borderColor = \"rgba(52, 58, 64, 0.12)\";\n }\n }}\n >\n <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\" }}>\n <div>\n <div style={{ fontSize: \"14px\", fontWeight: 650, color: \"rgba(30, 33, 37, 0.92)\", marginBottom: \"4px\" }}>\n {source.name}\n </div>\n <div style={{ fontSize: \"12px\", color: \"rgba(30, 33, 37, 0.62)\" }}>\n {source.description}\n </div>\n </div>\n {source.status === \"coming-soon\" && (\n <span\n style={{\n fontSize: \"10px\",\n fontWeight: 600,\n color: \"rgba(30, 33, 37, 0.42)\",\n background: \"rgba(30, 33, 37, 0.08)\",\n padding: \"4px 8px\",\n borderRadius: \"4px\",\n }}\n >\n Coming Soon\n </span>\n )}\n </div>\n </button>\n ))}\n </div>\n </div>\n )}\n\n {/* Connected Source Example */}\n {connectedSource && (\n <div\n style={{\n marginBottom: \"24px\",\n padding: \"16px\",\n background: \"rgba(255, 255, 255, 0.85)\",\n border: \"1px solid rgba(52, 58, 64, 0.12)\",\n borderRadius: \"12px\",\n }}\n >\n <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\", marginBottom: \"8px\" }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: \"8px\" }}>\n <CheckCircle2 size={18} style={{ color: \"#1F8F5A\" }} />\n <span style={{ fontSize: \"14px\", fontWeight: 650, color: \"rgba(30, 33, 37, 0.92)\" }}>\n Connected: {connectedSource.name}\n </span>\n </div>\n <button\n onClick={() => setConnectedSource(null)}\n style={{\n background: \"none\",\n border: \"none\",\n cursor: \"pointer\",\n padding: \"4px\",\n display: \"flex\",\n alignItems: \"center\",\n }}\n >\n <X size={16} style={{ color: \"rgba(30, 33, 37, 0.42)\" }} />\n </button>\n </div>\n <div style={{ fontSize: \"13px\", color: \"rgba(30, 33, 37, 0.65)\", lineHeight: 1.5 }}>\n {connectedSource.description}\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n );\n}\n\n","\"use client\";\n\nimport React, { useState } from \"react\";\nimport {\n X,\n CheckCircle2,\n Circle,\n ChevronRight,\n Sparkles,\n Users,\n FolderOpen,\n Link,\n Settings,\n BookOpen,\n} from \"lucide-react\";\n\n/**\n * OnboardingChecklist Component\n * Displays a collapsible checklist of onboarding tasks with progress tracking.\n * Shows completed items with checkmarks and allows interaction with incomplete items.\n */\nexport default function OnboardingChecklist({\n onDismiss,\n onItemClick,\n completedItems = [],\n}) {\n const [isCollapsed, setIsCollapsed] = useState(false);\n const [hoveredItem, setHoveredItem] = useState(null);\n\n const checklistItems = [\n {\n id: \"name-project\",\n title: \"Name your workspace\",\n description: \"Give your default project a meaningful name\",\n icon: FolderOpen,\n completed: completedItems.includes(\"name-project\"),\n optional: true,\n },\n {\n id: \"evaluate-second-interaction\",\n title: \"Evaluate another interaction\",\n description: \"Upload or connect a second interaction to see patterns\",\n icon: Sparkles,\n completed: completedItems.includes(\"evaluate-second-interaction\"),\n },\n {\n id: \"connect-source\",\n title: \"Connect a data source\",\n description: \"Link your system or platform for automatic evaluation\",\n icon: Link,\n completed: completedItems.includes(\"connect-source\"),\n },\n {\n id: \"invite-team\",\n title: \"Add teammates\",\n description: \"Invite managers or QA team members to collaborate\",\n icon: Users,\n completed: completedItems.includes(\"invite-team\"),\n optional: true,\n },\n {\n id: \"learn-concepts\",\n title: \"Understand Chordia concepts\",\n description: \"Learn how conditions, evidence, and confidence work\",\n icon: BookOpen,\n completed: completedItems.includes(\"learn-concepts\"),\n optional: true,\n },\n {\n id: \"configure-scope\",\n title: \"Clarify evaluation scope\",\n description: \"Customize which signals and conditions matter for your team\",\n icon: Settings,\n completed: completedItems.includes(\"configure-scope\"),\n optional: true,\n },\n ];\n\n const completedCount = checklistItems.filter((item) => item.completed).length;\n const totalCount = checklistItems.length;\n const progressPercent = (completedCount / totalCount) * 100;\n\n if (isCollapsed) {\n return (\n <button\n type=\"button\"\n onClick={() => setIsCollapsed(false)}\n style={{\n width: \"100%\",\n padding: \"14px 16px\",\n background: \"rgba(255, 255, 255, 0.85)\",\n border: \"1px solid rgba(52, 58, 64, 0.12)\",\n borderRadius: \"12px\",\n cursor: \"pointer\",\n textAlign: \"left\",\n transition: \"all 0.15s ease\",\n boxShadow: \"0 2px 8px rgba(30, 33, 37, 0.04)\",\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.18)\";\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 }}\n >\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: \"12px\",\n }}\n >\n <div\n style={{\n fontSize: \"13px\",\n fontWeight: 600,\n color: \"rgba(30, 33, 37, 0.75)\",\n }}\n >\n Getting started ({completedCount}/{totalCount})\n </div>\n <ChevronRight size={16} style={{ color: \"rgba(30, 33, 37, 0.42)\" }} />\n </div>\n </button>\n );\n }\n\n return (\n <div\n style={{\n background: \"rgba(255, 255, 255, 0.85)\",\n border: \"1px solid rgba(52, 58, 64, 0.12)\",\n borderRadius: \"16px\",\n overflow: \"hidden\",\n boxShadow: \"0 4px 16px rgba(30, 33, 37, 0.06)\",\n }}\n >\n {/* Header */}\n <div\n style={{\n padding: \"18px 20px 16px\",\n borderBottom: \"1px solid rgba(52, 58, 64, 0.08)\",\n }}\n >\n <div\n style={{\n display: \"flex\",\n alignItems: \"flex-start\",\n justifyContent: \"space-between\",\n gap: \"12px\",\n }}\n >\n <div style={{ flex: 1 }}>\n <div\n style={{\n fontSize: \"15px\",\n fontWeight: 680,\n letterSpacing: \"-0.01em\",\n color: \"rgba(30, 33, 37, 0.92)\",\n marginBottom: \"6px\",\n lineHeight: 1.3,\n }}\n >\n Getting started with Chordia\n </div>\n <div\n style={{\n fontSize: \"12px\",\n color: \"rgba(30, 33, 37, 0.58)\",\n lineHeight: 1.4,\n }}\n >\n {completedCount} of {totalCount} completed\n </div>\n </div>\n <div style={{ display: \"flex\", gap: \"4px\" }}>\n {/* Collapse button */}\n <button\n type=\"button\"\n onClick={() => setIsCollapsed(true)}\n style={{\n width: \"28px\",\n height: \"28px\",\n borderRadius: \"6px\",\n background: \"transparent\",\n border: \"1px solid rgba(52, 58, 64, 0.12)\",\n cursor: \"pointer\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n transition: \"all 0.15s ease\",\n color: \"rgba(30, 33, 37, 0.52)\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.background = \"rgba(231, 212, 162, 0.12)\";\n e.currentTarget.style.borderColor = \"rgba(52, 58, 64, 0.18)\";\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = \"transparent\";\n e.currentTarget.style.borderColor = \"rgba(52, 58, 64, 0.12)\";\n }}\n title=\"Collapse\"\n >\n <ChevronRight size={14} />\n </button>\n {/* Dismiss button */}\n {onDismiss && (\n <button\n type=\"button\"\n onClick={onDismiss}\n style={{\n width: \"28px\",\n height: \"28px\",\n borderRadius: \"6px\",\n background: \"transparent\",\n border: \"1px solid rgba(52, 58, 64, 0.12)\",\n cursor: \"pointer\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n transition: \"all 0.15s ease\",\n color: \"rgba(30, 33, 37, 0.52)\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.background = \"rgba(231, 212, 162, 0.12)\";\n e.currentTarget.style.borderColor = \"rgba(52, 58, 64, 0.18)\";\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = \"transparent\";\n e.currentTarget.style.borderColor = \"rgba(52, 58, 64, 0.12)\";\n }}\n title=\"Dismiss checklist\"\n >\n <X size={14} />\n </button>\n )}\n </div>\n </div>\n {/* Progress bar */}\n <div\n style={{\n marginTop: \"14px\",\n height: \"6px\",\n background: \"rgba(30, 33, 37, 0.08)\",\n borderRadius: \"999px\",\n overflow: \"hidden\",\n }}\n >\n <div\n style={{\n height: \"100%\",\n width: `${progressPercent}%`,\n background:\n \"linear-gradient(90deg, rgba(184, 156, 106, 0.75) 0%, rgba(139, 157, 127, 0.75) 100%)\",\n borderRadius: \"999px\",\n transition: \"width 0.4s ease\",\n }}\n />\n </div>\n </div>\n\n {/* Checklist items */}\n <div style={{ padding: \"8px\" }}>\n {checklistItems.map((item, index) => {\n const Icon = item.icon;\n const isHovered = hoveredItem === item.id;\n\n return (\n <button\n key={item.id}\n type=\"button\"\n onClick={() => onItemClick?.(item.id)}\n onMouseEnter={() => setHoveredItem(item.id)}\n onMouseLeave={() => setHoveredItem(null)}\n disabled={item.completed}\n style={{\n width: \"100%\",\n padding: \"12px 14px\",\n background: item.completed\n ? \"rgba(139, 157, 127, 0.06)\"\n : isHovered\n ? \"rgba(231, 212, 162, 0.12)\"\n : \"transparent\",\n border: \"none\",\n borderRadius: \"10px\",\n cursor: item.completed ? \"default\" : \"pointer\",\n textAlign: \"left\",\n transition: \"all 0.15s ease\",\n marginBottom: index < checklistItems.length - 1 ? \"4px\" : \"0\",\n opacity: item.completed ? 0.7 : 1,\n }}\n >\n <div\n style={{\n display: \"flex\",\n alignItems: \"flex-start\",\n gap: \"12px\",\n }}\n >\n {/* Icon/Checkbox */}\n <div\n style={{\n width: \"20px\",\n height: \"20px\",\n marginTop: \"1px\",\n flexShrink: 0,\n }}\n >\n {item.completed ? (\n <CheckCircle2\n size={20}\n style={{ color: \"rgba(139, 157, 127, 0.75)\" }}\n />\n ) : (\n <Circle\n size={20}\n style={{ color: \"rgba(30, 33, 37, 0.24)\" }}\n />\n )}\n </div>\n {/* Content */}\n <div style={{ flex: 1, minWidth: 0 }}>\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"8px\",\n marginBottom: \"3px\",\n }}\n >\n <Icon\n size={14}\n style={{ color: \"rgba(30, 33, 37, 0.52)\", flexShrink: 0 }}\n />\n <span\n style={{\n fontSize: \"13px\",\n fontWeight: 600,\n color: item.completed\n ? \"rgba(30, 33, 37, 0.52)\"\n : \"rgba(30, 33, 37, 0.85)\",\n textDecoration: item.completed ? \"line-through\" : \"none\",\n lineHeight: 1.3,\n }}\n >\n {item.title}\n </span>\n {item.optional && !item.completed && (\n <span\n style={{\n fontSize: \"9px\",\n fontWeight: 600,\n letterSpacing: \"0.04em\",\n textTransform: \"uppercase\",\n color: \"rgba(30, 33, 37, 0.42)\",\n background: \"rgba(30, 33, 37, 0.06)\",\n padding: \"2px 5px\",\n borderRadius: \"4px\",\n }}\n >\n Optional\n </span>\n )}\n </div>\n <div\n style={{\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n lineHeight: 1.4,\n paddingLeft: \"22px\",\n }}\n >\n {item.description}\n </div>\n </div>\n {/* Arrow indicator (only for incomplete items on hover) */}\n {!item.completed && isHovered && (\n <ChevronRight\n size={16}\n style={{\n color: \"rgba(30, 33, 37, 0.32)\",\n marginTop: \"2px\",\n flexShrink: 0,\n }}\n />\n )}\n </div>\n </button>\n );\n })}\n </div>\n\n {/* Footer note */}\n <div\n style={{\n padding: \"12px 20px 16px\",\n borderTop: \"1px solid rgba(52, 58, 64, 0.08)\",\n }}\n >\n <div\n style={{\n fontSize: \"11px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n lineHeight: 1.5,\n fontStyle: \"italic\",\n }}\n >\n You can dismiss this checklist anytime. These steps help you get the\n most from Chordia, but {'aren\\'t'} required.\n </div>\n </div>\n </div>\n );\n}\n\n","\"use client\";\n\nimport React from \"react\";\n\n/**\n * DemoProjectBanner Component\n * Displays a diagonal banner in the top-right corner indicating a demo project.\n * Creates a triangular ribbon effect with rotated text.\n */\nexport default function DemoProjectBanner({\n text = \"Demo Project\",\n accentColor = \"#B89C6A\",\n textColor = \"rgba(255, 255, 255, 0.95)\",\n size = \"medium\",\n position = \"fixed\",\n}) {\n // Size configurations\n const sizeConfig = {\n small: {\n width: 140,\n height: 140,\n fontSize: \"11px\",\n letterSpacing: \"0.08em\",\n fontWeight: 650,\n },\n medium: {\n width: 180,\n height: 180,\n fontSize: \"12px\",\n letterSpacing: \"0.1em\",\n fontWeight: 680,\n },\n large: {\n width: 220,\n height: 220,\n fontSize: \"13px\",\n letterSpacing: \"0.12em\",\n fontWeight: 700,\n },\n };\n\n const config = sizeConfig[size];\n\n return (\n <div\n style={{\n position: position,\n top: 0,\n right: 0,\n width: config.width,\n height: config.height,\n overflow: \"hidden\",\n zIndex: position === \"fixed\" ? 9999 : 1,\n pointerEvents: \"none\",\n }}\n >\n {/* Triangle background */}\n <div\n style={{\n position: \"absolute\",\n top: 0,\n right: 0,\n width: 0,\n height: 0,\n borderStyle: \"solid\",\n borderWidth: `0 ${config.width}px ${config.height}px 0`,\n borderColor: `transparent ${accentColor} transparent transparent`,\n opacity: 0.92,\n }}\n />\n\n {/* Diagonal stripe for depth */}\n <div\n style={{\n position: \"absolute\",\n top: 0,\n right: 0,\n width: 0,\n height: 0,\n borderStyle: \"solid\",\n borderWidth: `0 ${config.width}px ${config.height}px 0`,\n borderColor: \"transparent rgba(0, 0, 0, 0.08) transparent transparent\",\n }}\n />\n\n {/* Text container - rotated 45deg */}\n <div\n style={{\n position: \"absolute\",\n top:\n size === \"small\"\n ? \"28px\"\n : size === \"medium\"\n ? \"38px\"\n : \"48px\",\n right:\n size === \"small\"\n ? \"-32px\"\n : size === \"medium\"\n ? \"-42px\"\n : \"-52px\",\n width:\n size === \"small\" ? \"160px\" : size === \"medium\" ? \"200px\" : \"240px\",\n transform: \"rotate(45deg)\",\n transformOrigin: \"center\",\n textAlign: \"center\",\n }}\n >\n <div\n style={{\n fontSize: config.fontSize,\n fontWeight: config.fontWeight,\n letterSpacing: config.letterSpacing,\n textTransform: \"uppercase\",\n color: textColor,\n textShadow: \"0 1px 2px rgba(0, 0, 0, 0.15)\",\n whiteSpace: \"nowrap\",\n userSelect: \"none\",\n }}\n >\n {text}\n </div>\n </div>\n\n {/* Subtle shadow for depth */}\n <div\n style={{\n position: \"absolute\",\n top: 0,\n right: 0,\n width: config.width,\n height: config.height,\n background:\n \"linear-gradient(135deg, transparent 0%, rgba(0, 0, 0, 0.04) 100%)\",\n pointerEvents: \"none\",\n }}\n />\n </div>\n );\n}\n\n","\"use client\";\n\nimport React from \"react\";\nimport { CheckCircle2, Circle, Settings } from \"lucide-react\";\n\n/**\n * IntegrationCard Component\n * Displays an integration provider card with status, logo, and configuration options\n */\nexport default function IntegrationCard({\n providerName,\n description,\n status = \"available\",\n railColor,\n logoUrl,\n icon,\n onConfigure,\n}) {\n const statusConfig = {\n connected: {\n label: \"Connected\",\n color: \"#6B7C93\",\n bgColor: \"rgba(107, 124, 147, 0.08)\",\n borderColor: \"rgba(107, 124, 147, 0.20)\",\n icon: <CheckCircle2 size={14} strokeWidth={2.5} />,\n },\n available: {\n label: \"Available\",\n color: \"#1E2125\",\n bgColor: \"rgba(30, 33, 37, 0.04)\",\n borderColor: \"rgba(30, 33, 37, 0.12)\",\n icon: <Circle size={14} strokeWidth={2} />,\n },\n \"coming-soon\": {\n label: \"Coming Soon\",\n color: \"rgba(30, 33, 37, 0.42)\",\n bgColor: \"transparent\",\n borderColor: \"rgba(30, 33, 37, 0.12)\",\n icon: <Circle size={14} strokeWidth={2} style={{ opacity: 0.4 }} />,\n },\n };\n\n const config = statusConfig[status] || statusConfig.available;\n\n return (\n <div\n style={{\n background: \"#FFFFFF\",\n border: `1px solid ${railColor}20`,\n borderRadius: \"8px\",\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n transition: \"all 0.15s ease\",\n cursor: status === \"coming-soon\" ? \"default\" : \"pointer\",\n opacity: status === \"coming-soon\" ? 0.6 : 1,\n overflow: \"hidden\",\n height: \"100%\",\n }}\n className=\"hover:shadow-sm\"\n >\n {/* Rail */}\n <div\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n bottom: 0,\n width: \"4px\",\n background: railColor,\n opacity: status === \"coming-soon\" ? 0.4 : 1,\n }}\n />\n\n {/* Content wrapper with padding */}\n <div\n style={{\n padding: \"20px\",\n paddingLeft: \"24px\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"16px\",\n height: \"100%\",\n }}\n >\n {/* Header: Logo + Status */}\n <div\n style={{\n display: \"flex\",\n alignItems: \"flex-start\",\n justifyContent: \"space-between\",\n gap: \"12px\",\n }}\n >\n {/* Logo/Icon */}\n <div\n style={{\n width: \"48px\",\n height: \"48px\",\n borderRadius: \"6px\",\n background: `${railColor}08`,\n border: `1px solid ${railColor}18`,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n }}\n >\n {logoUrl ? (\n <img\n src={logoUrl}\n alt={providerName}\n style={{ width: \"32px\", height: \"32px\", objectFit: \"contain\" }}\n />\n ) : (\n <div\n style={{\n color: railColor,\n fontSize: \"20px\",\n fontWeight: 650,\n opacity: 0.8,\n }}\n >\n {icon || (providerName ? providerName.charAt(0) : \"\")}\n </div>\n )}\n </div>\n\n {/* Status Badge */}\n <div\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: \"6px\",\n padding: \"4px 10px\",\n borderRadius: \"4px\",\n background: config.bgColor,\n border: `1px solid ${config.borderColor}`,\n fontSize: \"11px\",\n fontWeight: 600,\n letterSpacing: \"0.01em\",\n color: config.color,\n flexShrink: 0,\n }}\n >\n {config.icon}\n {config.label}\n </div>\n </div>\n\n {/* Content */}\n <div style={{ flex: 1, minHeight: 0 }}>\n <h3\n style={{\n fontSize: \"15px\",\n fontWeight: 650,\n color: \"rgba(30, 33, 37, 0.92)\",\n marginBottom: \"6px\",\n letterSpacing: \"-0.01em\",\n }}\n >\n {providerName}\n </h3>\n <p\n style={{\n fontSize: \"13px\",\n lineHeight: 1.5,\n color: \"rgba(30, 33, 37, 0.65)\",\n }}\n >\n {description}\n </p>\n </div>\n\n {/* Action Button - aligned to bottom */}\n {status !== \"coming-soon\" && (\n <button\n onClick={(e) => {\n e.stopPropagation();\n onConfigure?.();\n }}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"8px\",\n padding: \"8px 14px\",\n border: \"1px solid rgba(30, 33, 37, 0.15)\",\n borderRadius: \"5px\",\n background: status === \"connected\" ? \"transparent\" : \"rgba(30, 33, 37, 0.03)\",\n fontSize: \"13px\",\n fontWeight: 600,\n color: \"rgba(30, 33, 37, 0.92)\",\n cursor: \"pointer\",\n transition: \"all 0.15s ease\",\n width: \"100%\",\n marginTop: \"auto\",\n }}\n className=\"hover:bg-[rgba(30,33,37,0.06)] hover:border-[rgba(30,33,37,0.20)]\"\n >\n <Settings size={14} strokeWidth={2.5} />\n {status === \"connected\" ? \"Configure\" : \"Connect\"}\n </button>\n )}\n </div>\n </div>\n );\n}\n\n","\"use client\";\nimport React, { useState } from 'react';\nimport { Lock, Mail, Eye, EyeOff, ArrowRight } from 'lucide-react';\n\n// Logo asset — concentric circles + wordmark\n// const LOGO_URL = new URL('../../assets/chordia-logo.png', import.meta.url).href;\nconst LOGO_URL = \"../../assets/chordia-logo.png\";\n\n/**\n * LoginForm — Chordia design system login component.\n *\n * Warm parchment aesthetic. Gold accents on focus, earth-tone CTA.\n * Purple is intentionally avoided — it's reserved for AI presence.\n *\n * Props:\n * - title: string (default: \"Chordia\") — only shown if no logo\n * - subtitle: string (default: \"Sign in to continue\")\n * - logo: ReactNode (optional — replaces the default logo image + subtitle)\n * - onLogin: (email, password) => Promise<void> | void\n * - loading: boolean\n * - error: string | null\n * - footer: ReactNode (optional — e.g. links, version info)\n * - showLabels: boolean (default: true)\n * - emailPlaceholder: string\n * - passwordPlaceholder: string\n * - onForgotPassword: () => void (optional — shows \"Forgot password?\" link)\n * - compact: boolean (default: false — skips the full-page centering wrapper)\n */\nexport default function LoginForm({\n title = 'Chordia',\n subtitle = 'Sign in to continue',\n logo,\n onLogin,\n loading = false,\n error = null,\n footer,\n showLabels = true,\n emailPlaceholder = 'you@company.com',\n passwordPlaceholder = 'Password',\n onForgotPassword,\n compact = false,\n}) {\n const [email, setEmail] = useState('');\n const [password, setPassword] = useState('');\n const [showPassword, setShowPassword] = useState(false);\n const [focused, setFocused] = useState(null);\n\n const handleSubmit = (e) => {\n e.preventDefault();\n if (!email || !password || loading) return;\n onLogin?.(email, password);\n };\n\n const canSubmit = email && password && !loading;\n\n // Warm earth accent — compliance orange, used for focus/CTA (not purple)\n const accentColor = 'var(--rail-compliance)';\n const accentRgba = '201, 138, 90'; // --rail-compliance raw\n\n const card = (\n <div style={{\n width: '100%',\n maxWidth: 400,\n background: 'var(--paper-elevated)',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius-lg)',\n padding: '44px 36px 36px',\n boxShadow: '0 8px 32px rgba(30, 33, 37, 0.06), 0 1px 3px rgba(30, 33, 37, 0.04)',\n position: 'relative',\n overflow: 'hidden',\n }}>\n {/* Decorative top rail — warm gold gradient */}\n <div style={{\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n height: 3,\n background: `linear-gradient(90deg, var(--state-unknown), ${accentColor})`,\n opacity: 0.6,\n }} />\n\n {/* Logo / Title area */}\n <div style={{ textAlign: 'center', marginBottom: 32 }}>\n {logo || (\n <>\n {/* Logo on a dark pill so the light-colored asset is visible */}\n <div style={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '12px 24px',\n borderRadius: 'var(--radius-lg)',\n background: 'rgba(30, 33, 37, 0.92)',\n marginBottom: 16,\n }}>\n <img\n src={LOGO_URL}\n alt={title}\n style={{ height: 28, display: 'block' }}\n />\n </div>\n {subtitle && (\n <p style={{\n fontSize: 'var(--text-sm)',\n color: 'var(--text-muted)',\n marginTop: 4,\n marginBottom: 0,\n }}>{subtitle}</p>\n )}\n </>\n )}\n </div>\n\n <form onSubmit={handleSubmit}>\n {/* Email field */}\n <div style={{ marginBottom: 18 }}>\n {showLabels && (\n <label style={{\n display: 'block',\n fontSize: 'var(--text-sm)',\n fontWeight: 550,\n color: 'var(--text-strong)',\n marginBottom: 6,\n fontFamily: 'var(--font-sans)',\n }}>Email</label>\n )}\n <div style={{ position: 'relative', display: 'flex', alignItems: 'center' }}>\n <Mail size={15} style={{\n position: 'absolute',\n left: 12,\n color: focused === 'email' ? `rgba(${accentRgba}, 0.7)` : 'var(--text-faint)',\n pointerEvents: 'none',\n transition: 'color 0.2s ease',\n }} />\n <input\n type=\"email\"\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n placeholder={emailPlaceholder}\n required\n autoFocus\n autoComplete=\"email\"\n style={{\n width: '100%',\n padding: '11px 12px 11px 38px',\n fontSize: 'var(--text-md)',\n border: '1px solid',\n borderColor: focused === 'email' ? accentColor : 'var(--border)',\n borderRadius: 'var(--radius)',\n backgroundColor: focused === 'email' ? 'rgba(255,255,255,0.95)' : 'var(--paper)',\n color: 'var(--text-ink)',\n fontFamily: 'var(--font-sans)',\n outline: 'none',\n transition: 'border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease',\n boxShadow: focused === 'email' ? `0 0 0 3px rgba(${accentRgba}, 0.1)` : 'none',\n }}\n onFocus={() => setFocused('email')}\n onBlur={() => setFocused(null)}\n />\n </div>\n </div>\n\n {/* Password field */}\n <div style={{ marginBottom: 6 }}>\n {showLabels && (\n <label style={{\n display: 'block',\n fontSize: 'var(--text-sm)',\n fontWeight: 550,\n color: 'var(--text-strong)',\n marginBottom: 6,\n fontFamily: 'var(--font-sans)',\n }}>Password</label>\n )}\n <div style={{ position: 'relative', display: 'flex', alignItems: 'center' }}>\n <Lock size={15} style={{\n position: 'absolute',\n left: 12,\n color: focused === 'password' ? `rgba(${accentRgba}, 0.7)` : 'var(--text-faint)',\n pointerEvents: 'none',\n transition: 'color 0.2s ease',\n }} />\n <input\n type={showPassword ? 'text' : 'password'}\n value={password}\n onChange={(e) => setPassword(e.target.value)}\n placeholder={passwordPlaceholder}\n required\n autoComplete=\"current-password\"\n style={{\n width: '100%',\n padding: '11px 42px 11px 38px',\n fontSize: 'var(--text-md)',\n border: '1px solid',\n borderColor: focused === 'password' ? accentColor : 'var(--border)',\n borderRadius: 'var(--radius)',\n backgroundColor: focused === 'password' ? 'rgba(255,255,255,0.95)' : 'var(--paper)',\n color: 'var(--text-ink)',\n fontFamily: 'var(--font-sans)',\n outline: 'none',\n transition: 'border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease',\n boxShadow: focused === 'password' ? `0 0 0 3px rgba(${accentRgba}, 0.1)` : 'none',\n }}\n onFocus={() => setFocused('password')}\n onBlur={() => setFocused(null)}\n />\n <button\n type=\"button\"\n onClick={() => setShowPassword(!showPassword)}\n style={{\n position: 'absolute',\n right: 8,\n background: 'none',\n border: 'none',\n padding: 4,\n cursor: 'pointer',\n color: 'var(--text-faint)',\n display: 'flex',\n alignItems: 'center',\n transition: 'color 0.15s ease',\n borderRadius: 'var(--radius-sm)',\n }}\n tabIndex={-1}\n onMouseEnter={(e) => { e.currentTarget.style.color = 'var(--text-muted)'; }}\n onMouseLeave={(e) => { e.currentTarget.style.color = 'var(--text-faint)'; }}\n >\n {showPassword ? <EyeOff size={16} /> : <Eye size={16} />}\n </button>\n </div>\n </div>\n\n {/* Forgot password link */}\n {onForgotPassword && (\n <div style={{ textAlign: 'right', marginBottom: 4 }}>\n <button\n type=\"button\"\n onClick={onForgotPassword}\n style={{\n background: 'none',\n border: 'none',\n padding: '2px 0',\n fontSize: 'var(--text-xs)',\n color: 'var(--text-muted)',\n cursor: 'pointer',\n fontFamily: 'var(--font-sans)',\n transition: 'color 0.15s ease',\n }}\n onMouseEnter={(e) => { e.currentTarget.style.color = 'var(--text-strong)'; }}\n onMouseLeave={(e) => { e.currentTarget.style.color = 'var(--text-muted)'; }}\n >\n Forgot password?\n </button>\n </div>\n )}\n\n {/* Error message — gold warning tint, no red */}\n {error && (\n <div style={{\n fontSize: 'var(--text-sm)',\n color: 'var(--text-strong)',\n marginTop: 12,\n padding: '8px 12px',\n background: 'color-mix(in srgb, var(--state-unknown) 10%, transparent)',\n border: '1px solid color-mix(in srgb, var(--state-unknown) 25%, transparent)',\n borderRadius: 'var(--radius-sm)',\n textAlign: 'center',\n fontWeight: 500,\n }}>{error}</div>\n )}\n\n {/* Submit button — dark ink, warm and authoritative */}\n <button\n type=\"submit\"\n disabled={!canSubmit}\n style={{\n width: '100%',\n padding: '11px 0',\n marginTop: 20,\n background: canSubmit ? 'var(--text-ink)' : 'var(--text-xfaint)',\n color: '#ffffff',\n border: 'none',\n borderRadius: 'var(--radius)',\n fontSize: 'var(--text-md)',\n fontWeight: 600,\n fontFamily: 'var(--font-sans)',\n cursor: canSubmit ? 'pointer' : 'not-allowed',\n transition: 'opacity 0.15s ease, transform 0.1s ease',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 8,\n }}\n onMouseEnter={(e) => {\n if (canSubmit) {\n e.currentTarget.style.opacity = '0.85';\n e.currentTarget.style.transform = 'translateY(-1px)';\n }\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.opacity = '1';\n e.currentTarget.style.transform = 'translateY(0)';\n }}\n onMouseDown={(e) => {\n if (canSubmit) e.currentTarget.style.transform = 'translateY(0)';\n }}\n onMouseUp={(e) => {\n if (canSubmit) e.currentTarget.style.transform = 'translateY(-1px)';\n }}\n >\n {loading ? 'Signing in…' : (\n <>\n Sign In\n <ArrowRight size={16} />\n </>\n )}\n </button>\n </form>\n\n {/* Divider + Footer */}\n {footer && (\n <>\n <div style={{\n display: 'flex',\n alignItems: 'center',\n gap: 12,\n margin: '24px 0 16px',\n }}>\n <div style={{ flex: 1, height: 1, background: 'var(--border)' }} />\n <span style={{ fontSize: 'var(--text-xs)', color: 'var(--text-faint)' }}>or</span>\n <div style={{ flex: 1, height: 1, background: 'var(--border)' }} />\n </div>\n <div style={{\n textAlign: 'center',\n fontSize: 'var(--text-xs)',\n color: 'var(--text-faint)',\n }}>{footer}</div>\n </>\n )}\n </div>\n );\n\n if (compact) return card;\n\n return (\n <div style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: '100vh',\n background: 'var(--bg-chordia)',\n padding: 'var(--spacing-6)',\n }}>\n {card}\n </div>\n );\n}\n","\"use client\";\n\nimport React, { useState, useRef, useCallback, useEffect, useLayoutEffect } from \"react\";\n\n/**\n * SplitPane Component\n * Resizable two-pane layout with draggable divider and collapsible panels.\n *\n * Props:\n * left - React node for left pane\n * right - React node for right pane\n * defaultWidth - Initial left pane width in px (default: 260). Ignored if defaultRatio is set.\n * defaultRatio - Initial left pane width as ratio 0-1 (e.g. 0.5 for 50%). Overrides defaultWidth.\n * minWidth - Minimum left pane width in px (default: 180)\n * maxWidth - Maximum left pane width in px (default: 450)\n * minRatio - Minimum left pane width as ratio 0-1. Overrides minWidth when set.\n * maxRatio - Maximum left pane width as ratio 0-1. Overrides maxWidth when set.\n * collapsedWidth - Width of the collapsed strip in px (default: 0)\n * collapsed - Controlled collapsed state (optional)\n * onCollapsedChange - (collapsed: boolean) => void (optional)\n * collapseSide - Which side(s) can collapse: \"left\" | \"right\" | \"both\" | \"none\" (default: \"left\")\n * collapseThreshold - Drag below this px to auto-collapse left (default: minWidth - 40)\n * dividerWidth - Divider hit area width in px (default: 7)\n * style - Style for the outer container\n */\nexport default function SplitPane({\n left,\n right,\n defaultWidth = 260,\n defaultRatio,\n minWidth = 180,\n maxWidth = 450,\n minRatio,\n maxRatio,\n collapsedWidth = 0,\n collapsed: controlledCollapsed,\n onCollapsedChange,\n collapseSide = \"left\",\n collapseThreshold,\n dividerWidth = 7,\n style,\n}) {\n const isControlled = controlledCollapsed !== undefined;\n const [internalCollapsed, setInternalCollapsed] = useState(false);\n const collapsed = isControlled ? controlledCollapsed : internalCollapsed;\n\n const setCollapsed = useCallback(\n (val) => {\n const next = typeof val === \"function\" ? val(collapsed) : val;\n if (!isControlled) setInternalCollapsed(next);\n onCollapsedChange?.(next);\n },\n [isControlled, collapsed, onCollapsedChange]\n );\n\n const containerRef = useRef(null);\n const [containerWidth, setContainerWidth] = useState(0);\n const [width, setWidth] = useState(defaultWidth);\n const [dragging, setDragging] = useState(false);\n const [initialized, setInitialized] = useState(false);\n const startXRef = useRef(0);\n const startWidthRef = useRef(0);\n\n // Measure container and set initial width from ratio\n useLayoutEffect(() => {\n if (!containerRef.current) return;\n const w = containerRef.current.offsetWidth;\n setContainerWidth(w);\n if (!initialized && w > 0) {\n if (defaultRatio != null) {\n setWidth(Math.round(w * defaultRatio));\n }\n setInitialized(true);\n }\n }, []);\n\n // Observe container resize\n useEffect(() => {\n if (!containerRef.current) return;\n const ro = new ResizeObserver((entries) => {\n for (const entry of entries) {\n setContainerWidth(entry.contentRect.width);\n }\n });\n ro.observe(containerRef.current);\n return () => ro.disconnect();\n }, []);\n\n // Compute effective min/max from ratios if provided\n const effectiveMin = minRatio != null ? Math.round(containerWidth * minRatio) : minWidth;\n const effectiveMax = maxRatio != null ? Math.round(containerWidth * maxRatio) : maxWidth;\n const effectiveCollapseThreshold =\n collapseThreshold ?? (collapseSide === \"none\" ? 0 : effectiveMin - 40);\n\n const handleMouseDown = useCallback(\n (e) => {\n e.preventDefault();\n startXRef.current = e.clientX;\n startWidthRef.current = collapsed ? collapsedWidth : width;\n setDragging(true);\n },\n [width, collapsed, collapsedWidth]\n );\n\n useEffect(() => {\n if (!dragging) return;\n\n const handleMouseMove = (e) => {\n const delta = e.clientX - startXRef.current;\n const newWidth = startWidthRef.current + delta;\n\n const canCollapseLeft = collapseSide === \"left\" || collapseSide === \"both\";\n const canCollapseRight = collapseSide === \"right\" || collapseSide === \"both\";\n\n // Collapse left: dragged too far left\n if (canCollapseLeft && newWidth < effectiveCollapseThreshold) {\n if (!collapsed) setCollapsed(true);\n return;\n }\n\n // Collapse right: dragged too far right (right pane too narrow)\n const rightRemaining = containerWidth - newWidth - dividerWidth;\n if (canCollapseRight && containerWidth > 0 && rightRemaining < effectiveCollapseThreshold) {\n // Don't collapse right in this version — just clamp at max\n }\n\n if (collapsed) setCollapsed(false);\n setWidth(Math.min(Math.max(newWidth, effectiveMin), effectiveMax));\n };\n\n const handleMouseUp = () => setDragging(false);\n\n document.addEventListener(\"mousemove\", handleMouseMove);\n document.addEventListener(\"mouseup\", handleMouseUp);\n document.body.style.userSelect = \"none\";\n document.body.style.cursor = \"col-resize\";\n\n return () => {\n document.removeEventListener(\"mousemove\", handleMouseMove);\n document.removeEventListener(\"mouseup\", handleMouseUp);\n document.body.style.userSelect = \"\";\n document.body.style.cursor = \"\";\n };\n }, [\n dragging, collapsed, effectiveMin, effectiveMax, effectiveCollapseThreshold,\n containerWidth, dividerWidth, collapseSide, setCollapsed,\n ]);\n\n const handleDoubleClick = useCallback(() => {\n if (collapseSide !== \"none\") {\n setCollapsed((c) => !c);\n }\n }, [setCollapsed, collapseSide]);\n\n const actualLeftWidth = collapsed ? collapsedWidth : width;\n\n return (\n <div\n ref={containerRef}\n style={{\n display: \"flex\",\n height: \"100%\",\n overflow: \"hidden\",\n position: \"relative\",\n ...style,\n }}\n >\n {/* Left pane */}\n {(actualLeftWidth > 0 || !collapsed) && (\n <div\n style={{\n width: actualLeftWidth,\n flexShrink: 0,\n overflow: \"hidden\",\n transition: dragging ? \"none\" : \"width 0.2s ease\",\n height: \"100%\",\n }}\n >\n {!collapsed && left}\n </div>\n )}\n\n {/* Divider */}\n <div\n onMouseDown={handleMouseDown}\n onDoubleClick={handleDoubleClick}\n style={{\n width: `${dividerWidth}px`,\n flexShrink: 0,\n cursor: \"col-resize\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n position: \"relative\",\n zIndex: 2,\n }}\n >\n {/* Visual line */}\n <div\n style={{\n width: \"1px\",\n height: \"100%\",\n background: dragging\n ? \"var(--rail-discovery, #5E88B0)\"\n : \"var(--border, rgba(52,58,64,0.12))\",\n transition: \"background 0.15s ease\",\n }}\n />\n {/* Hover grip */}\n <div\n style={{\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n width: \"5px\",\n height: \"28px\",\n borderRadius: \"3px\",\n background: dragging\n ? \"var(--rail-discovery, #5E88B0)\"\n : \"var(--border, rgba(52,58,64,0.12))\",\n opacity: dragging ? 1 : 0,\n transition: \"opacity 0.15s ease, background 0.15s ease\",\n }}\n className=\"splitpane-grip\"\n />\n <style>{`\n div:hover > .splitpane-grip { opacity: 0.7 !important; }\n `}</style>\n </div>\n\n {/* Right pane */}\n <div\n style={{\n flex: 1,\n minWidth: 0,\n overflow: \"hidden\",\n height: \"100%\",\n }}\n >\n {right}\n </div>\n </div>\n );\n}\n"],"names":["FirstCallScreen","onUploadCall","onConnectSource","onUseSample","showExamples","hoveredCard","setHoveredCard","useState","uploadedFile","setUploadedFile","connectedSource","setConnectedSource","selectedProject","setSelectedProject","fileInputRef","useRef","dummyDataSources","dummyProjects","handleFileUpload","event","file","_a","isAudio","isVideo","handleConnectSource","sourceId","source","s","handleSelectProject","projectId","project","p","jsxs","jsx","Upload","Sparkles","Link","option","Icon","isHovered","CheckCircle2","X","e","OnboardingChecklist","onDismiss","onItemClick","completedItems","isCollapsed","setIsCollapsed","hoveredItem","setHoveredItem","checklistItems","FolderOpen","Users","BookOpen","Settings","completedCount","item","totalCount","progressPercent","ChevronRight","index","Circle","DemoProjectBanner","text","accentColor","textColor","size","position","config","IntegrationCard","providerName","description","status","railColor","logoUrl","icon","onConfigure","statusConfig","LOGO_URL","LoginForm","title","subtitle","logo","onLogin","loading","error","footer","showLabels","emailPlaceholder","passwordPlaceholder","onForgotPassword","compact","email","setEmail","password","setPassword","showPassword","setShowPassword","focused","setFocused","handleSubmit","canSubmit","accentRgba","card","Fragment","Mail","Lock","EyeOff","Eye","ArrowRight","SplitPane","left","right","defaultWidth","defaultRatio","minWidth","maxWidth","minRatio","maxRatio","collapsedWidth","controlledCollapsed","onCollapsedChange","collapseSide","collapseThreshold","dividerWidth","style","isControlled","internalCollapsed","setInternalCollapsed","collapsed","setCollapsed","useCallback","val","next","containerRef","containerWidth","setContainerWidth","width","setWidth","dragging","setDragging","initialized","setInitialized","startXRef","startWidthRef","useLayoutEffect","w","useEffect","ro","entries","entry","effectiveMin","effectiveMax","effectiveCollapseThreshold","handleMouseDown","handleMouseMove","delta","newWidth","handleMouseUp","handleDoubleClick","c","actualLeftWidth"],"mappings":"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"}
1
+ {"version":3,"file":"layout.es.js","sources":["../../src/components/layout/FirstCallScreen.jsx","../../src/components/layout/OnboardingChecklist.jsx","../../src/components/layout/DemoProjectBanner.jsx","../../src/components/layout/LoginForm.jsx","../../src/components/layout/SplitPane.jsx"],"sourcesContent":["\"use client\";\n\nimport React, { useState, useRef } from \"react\";\nimport { Upload, Link, Sparkles, CheckCircle2, X } from \"lucide-react\";\n\n/**\n * FirstCallScreen Component\n * Displays an onboarding screen with three options for getting started:\n * Upload an interaction, Explore a demonstration project, or Connect a data source.\n */\nexport default function FirstCallScreen({\n onUploadCall,\n onConnectSource,\n onUseSample,\n showExamples = false,\n}) {\n const [hoveredCard, setHoveredCard] = useState(null);\n const [uploadedFile, setUploadedFile] = useState(null);\n const [connectedSource, setConnectedSource] = useState(null);\n const [selectedProject, setSelectedProject] = useState(null);\n const fileInputRef = useRef(null);\n\n // Dummy data sources for testing\n const dummyDataSources = [\n { id: \"five9\", name: \"Five9\", status: \"available\", description: \"Cloud contact center platform\" },\n { id: \"twilio\", name: \"Twilio Flex\", status: \"available\", description: \"Programmable contact center\" },\n { id: \"genesys\", name: \"Genesys Cloud\", status: \"available\", description: \"All-in-one cloud contact center\" },\n { id: \"zoom\", name: \"Zoom Phone\", status: \"coming-soon\", description: \"Cloud phone system\" },\n ];\n\n // Dummy demo projects for testing\n const dummyProjects = [\n {\n id: \"retail-support\",\n name: \"Retail Customer Support\",\n description: \"Sample interactions from retail customer service team\",\n interactions: 24,\n dateRange: \"Last 30 days\",\n },\n {\n id: \"healthcare-billing\",\n name: \"Healthcare Billing Inquiries\",\n description: \"Patient billing and insurance verification calls\",\n interactions: 18,\n dateRange: \"Last 2 weeks\",\n },\n {\n id: \"financial-services\",\n name: \"Financial Services Compliance\",\n description: \"Banking and financial advisory interactions\",\n interactions: 32,\n dateRange: \"Last 45 days\",\n },\n ];\n\n const handleFileUpload = (event) => {\n const file = event.target.files?.[0];\n if (file) {\n // Check if file is audio or video\n const isAudio = file.type.startsWith(\"audio/\");\n const isVideo = file.type.startsWith(\"video/\");\n \n if (isAudio || isVideo) {\n setUploadedFile({\n name: file.name,\n type: file.type,\n size: file.size,\n lastModified: new Date(file.lastModified),\n });\n if (onUploadCall) {\n onUploadCall(file);\n } else {\n console.log(\"File uploaded:\", file.name, file.type, `(${(file.size / 1024 / 1024).toFixed(2)} MB)`);\n }\n } else {\n alert(\"Please select an audio or video file.\");\n }\n }\n // Reset input so the same file can be selected again\n if (fileInputRef.current) {\n fileInputRef.current.value = \"\";\n }\n };\n\n const handleConnectSource = (sourceId) => {\n const source = dummyDataSources.find((s) => s.id === sourceId);\n if (source && source.status === \"available\") {\n setConnectedSource(source);\n if (onConnectSource) {\n onConnectSource(source);\n } else {\n console.log(\"Connected to:\", source.name);\n }\n }\n };\n\n const handleSelectProject = (projectId) => {\n const project = dummyProjects.find((p) => p.id === projectId);\n if (project) {\n setSelectedProject(project);\n if (onUseSample) {\n onUseSample(project);\n } else {\n console.log(\"Selected project:\", project.name);\n }\n }\n };\n\n const handleUploadClick = () => {\n if (fileInputRef.current) {\n fileInputRef.current.click();\n }\n };\n\n const handleSampleClick = () => {\n if (showExamples && !selectedProject) {\n // Show project selection if examples are enabled\n return;\n }\n if (onUseSample) {\n onUseSample(selectedProject || { id: \"default\", name: \"Demo Project\" });\n }\n };\n\n const handleConnectClick = () => {\n if (showExamples && !connectedSource) {\n // Show data source selection if examples are enabled\n return;\n }\n if (onConnectSource) {\n onConnectSource(connectedSource || { id: \"default\", name: \"Data Source\" });\n }\n };\n\n const options = [\n {\n id: \"upload\",\n icon: Upload,\n title: \"Upload an interaction\",\n description:\n \"Drop an audio or video recording to see what Compass surfaces\",\n recommended: false,\n onClick: handleUploadClick,\n },\n {\n id: \"sample\",\n icon: Sparkles,\n title: \"Explore a demonstration project\",\n description:\n \"See how Chordia Compass surfaces insights from real interaction data\",\n recommended: true,\n onClick: handleSampleClick,\n },\n {\n id: \"connect\",\n icon: Link,\n title: \"Connect a data source\",\n description:\n \"Link your existing system to automatically analyze interactions\",\n recommended: false,\n onClick: handleConnectClick,\n },\n ];\n\n return (\n <div\n style={{\n minHeight: \"100vh\",\n background: \"var(--surface-warm)\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n padding: \"32px\",\n }}\n >\n {/* Hidden file input */}\n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\"audio/*,video/*\"\n onChange={handleFileUpload}\n style={{ display: \"none\" }}\n />\n <div style={{ maxWidth: \"680px\", width: \"100%\" }}>\n {/* Header */}\n <div style={{ textAlign: \"center\", marginBottom: \"48px\" }}>\n <h1\n style={{\n fontSize: \"32px\",\n fontWeight: 760,\n letterSpacing: \"-0.02em\",\n color: \"rgba(30, 33, 37, 0.92)\",\n marginBottom: \"12px\",\n lineHeight: 1.2,\n }}\n >\n Experience Compass with one interaction\n </h1>\n <p\n style={{\n fontSize: \"15px\",\n color: \"rgba(30, 33, 37, 0.65)\",\n lineHeight: 1.5,\n maxWidth: \"520px\",\n margin: \"0 auto\",\n }}\n >\n Compass surfaces evidence, signals, and actionable insights from\n customer interactions. Start by exploring what it reveals.\n </p>\n </div>\n\n {/* Options */}\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"16px\",\n }}\n >\n {options.map((option) => {\n const Icon = option.icon;\n const isHovered = hoveredCard === option.id;\n\n return (\n <button\n key={option.id}\n type=\"button\"\n onClick={option.onClick}\n onMouseEnter={() => setHoveredCard(option.id)}\n onMouseLeave={() => setHoveredCard(null)}\n style={{\n position: \"relative\",\n width: \"100%\",\n padding: \"24px 28px\",\n background: isHovered\n ? \"rgba(255, 255, 255, 0.95)\"\n : \"rgba(255, 255, 255, 0.85)\",\n border: option.recommended\n ? \"2px solid rgba(184, 156, 106, 0.35)\"\n : isHovered\n ? \"1px solid rgba(52, 58, 64, 0.20)\"\n : \"1px solid rgba(52, 58, 64, 0.12)\",\n borderRadius: \"16px\",\n cursor: \"pointer\",\n textAlign: \"left\",\n transition: \"all 0.2s ease\",\n transform: isHovered ? \"translateY(-2px)\" : \"translateY(0)\",\n boxShadow: isHovered\n ? \"0 12px 28px rgba(30, 33, 37, 0.12)\"\n : \"0 4px 12px rgba(30, 33, 37, 0.06)\",\n }}\n >\n {/* Recommended badge */}\n {option.recommended && (\n <div\n style={{\n position: \"absolute\",\n top: \"16px\",\n right: \"20px\",\n fontSize: \"10px\",\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: \"4px 8px\",\n borderRadius: \"6px\",\n border: \"1px solid rgba(184, 156, 106, 0.2)\",\n }}\n >\n Recommended\n </div>\n )}\n <div\n style={{\n display: \"flex\",\n alignItems: \"flex-start\",\n gap: \"18px\",\n }}\n >\n {/* Icon */}\n <div\n style={{\n width: \"48px\",\n height: \"48px\",\n borderRadius: \"12px\",\n background: option.recommended\n ? \"rgba(184, 156, 106, 0.12)\"\n : \"rgba(231, 212, 162, 0.20)\",\n border: option.recommended\n ? \"1px solid rgba(184, 156, 106, 0.25)\"\n : \"1px solid rgba(231, 212, 162, 0.35)\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n }}\n >\n <Icon\n size={22}\n style={{\n color: option.recommended\n ? \"rgba(184, 156, 106, 0.75)\"\n : \"rgba(30, 33, 37, 0.52)\",\n }}\n />\n </div>\n\n {/* Content */}\n <div style={{ flex: 1, paddingTop: \"2px\" }}>\n <div\n style={{\n fontSize: \"17px\",\n fontWeight: 680,\n letterSpacing: \"-0.01em\",\n color: \"rgba(30, 33, 37, 0.92)\",\n marginBottom: \"6px\",\n lineHeight: 1.3,\n }}\n >\n {option.title}\n </div>\n <div\n style={{\n fontSize: \"13.5px\",\n color: \"rgba(30, 33, 37, 0.62)\",\n lineHeight: 1.5,\n }}\n >\n {option.description}\n </div>\n </div>\n </div>\n </button>\n );\n })}\n </div>\n\n {/* Footer note */}\n <div\n style={{\n marginTop: \"32px\",\n textAlign: \"center\",\n fontSize: \"12px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n lineHeight: 1.5,\n }}\n >\n Your workspace has been created automatically. You can configure\n settings and add teammates later.\n </div>\n\n {/* Testing Examples Section */}\n {showExamples && (\n <div style={{ marginTop: \"48px\", paddingTop: \"32px\", borderTop: \"1px solid rgba(52, 58, 64, 0.12)\" }}>\n <h2\n style={{\n fontSize: \"20px\",\n fontWeight: 680,\n letterSpacing: \"-0.01em\",\n color: \"rgba(30, 33, 37, 0.92)\",\n marginBottom: \"24px\",\n }}\n >\n Testing Examples\n </h2>\n\n {/* Uploaded File Example */}\n {uploadedFile && (\n <div\n style={{\n marginBottom: \"24px\",\n padding: \"16px\",\n background: \"rgba(255, 255, 255, 0.85)\",\n border: \"1px solid rgba(52, 58, 64, 0.12)\",\n borderRadius: \"12px\",\n }}\n >\n <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\", marginBottom: \"8px\" }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: \"8px\" }}>\n <CheckCircle2 size={18} style={{ color: \"#1F8F5A\" }} />\n <span style={{ fontSize: \"14px\", fontWeight: 650, color: \"rgba(30, 33, 37, 0.92)\" }}>\n File Uploaded\n </span>\n </div>\n <button\n onClick={() => setUploadedFile(null)}\n style={{\n background: \"none\",\n border: \"none\",\n cursor: \"pointer\",\n padding: \"4px\",\n display: \"flex\",\n alignItems: \"center\",\n }}\n >\n <X size={16} style={{ color: \"rgba(30, 33, 37, 0.42)\" }} />\n </button>\n </div>\n <div style={{ fontSize: \"13px\", color: \"rgba(30, 33, 37, 0.65)\", lineHeight: 1.5 }}>\n <div><strong>Name:</strong> {uploadedFile.name}</div>\n <div><strong>Type:</strong> {uploadedFile.type}</div>\n <div><strong>Size:</strong> {(uploadedFile.size / 1024 / 1024).toFixed(2)} MB</div>\n <div><strong>Uploaded:</strong> {uploadedFile.lastModified.toLocaleString()}</div>\n </div>\n </div>\n )}\n\n {/* Demo Projects Selection */}\n {!selectedProject && (\n <div style={{ marginBottom: \"24px\" }}>\n <h3\n style={{\n fontSize: \"15px\",\n fontWeight: 650,\n color: \"rgba(30, 33, 37, 0.82)\",\n marginBottom: \"12px\",\n }}\n >\n Select a Demonstration Project:\n </h3>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: \"8px\" }}>\n {dummyProjects.map((project) => (\n <button\n key={project.id}\n onClick={() => handleSelectProject(project.id)}\n style={{\n padding: \"12px 16px\",\n background: \"rgba(255, 255, 255, 0.85)\",\n border: \"1px solid rgba(52, 58, 64, 0.12)\",\n borderRadius: \"8px\",\n textAlign: \"left\",\n cursor: \"pointer\",\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.20)\";\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 }}\n >\n <div style={{ fontSize: \"14px\", fontWeight: 650, color: \"rgba(30, 33, 37, 0.92)\", marginBottom: \"4px\" }}>\n {project.name}\n </div>\n <div style={{ fontSize: \"12px\", color: \"rgba(30, 33, 37, 0.62)\", marginBottom: \"4px\" }}>\n {project.description}\n </div>\n <div style={{ fontSize: \"11px\", color: \"rgba(30, 33, 37, 0.52)\" }}>\n {project.interactions} interactions · {project.dateRange}\n </div>\n </button>\n ))}\n </div>\n </div>\n )}\n\n {/* Selected Project Example */}\n {selectedProject && (\n <div\n style={{\n marginBottom: \"24px\",\n padding: \"16px\",\n background: \"rgba(255, 255, 255, 0.85)\",\n border: \"1px solid rgba(52, 58, 64, 0.12)\",\n borderRadius: \"12px\",\n }}\n >\n <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\", marginBottom: \"8px\" }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: \"8px\" }}>\n <CheckCircle2 size={18} style={{ color: \"#1F8F5A\" }} />\n <span style={{ fontSize: \"14px\", fontWeight: 650, color: \"rgba(30, 33, 37, 0.92)\" }}>\n Project Selected: {selectedProject.name}\n </span>\n </div>\n <button\n onClick={() => setSelectedProject(null)}\n style={{\n background: \"none\",\n border: \"none\",\n cursor: \"pointer\",\n padding: \"4px\",\n display: \"flex\",\n alignItems: \"center\",\n }}\n >\n <X size={16} style={{ color: \"rgba(30, 33, 37, 0.42)\" }} />\n </button>\n </div>\n <div style={{ fontSize: \"13px\", color: \"rgba(30, 33, 37, 0.65)\", lineHeight: 1.5 }}>\n <div>{selectedProject.description}</div>\n <div style={{ marginTop: \"4px\" }}>\n <strong>{selectedProject.interactions}</strong> interactions · <strong>{selectedProject.dateRange}</strong>\n </div>\n </div>\n </div>\n )}\n\n {/* Data Sources Selection */}\n {!connectedSource && (\n <div style={{ marginBottom: \"24px\" }}>\n <h3\n style={{\n fontSize: \"15px\",\n fontWeight: 650,\n color: \"rgba(30, 33, 37, 0.82)\",\n marginBottom: \"12px\",\n }}\n >\n Connect a Data Source:\n </h3>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: \"8px\" }}>\n {dummyDataSources.map((source) => (\n <button\n key={source.id}\n onClick={() => handleConnectSource(source.id)}\n disabled={source.status === \"coming-soon\"}\n style={{\n padding: \"12px 16px\",\n background: source.status === \"coming-soon\" \n ? \"rgba(255, 255, 255, 0.5)\" \n : \"rgba(255, 255, 255, 0.85)\",\n border: \"1px solid rgba(52, 58, 64, 0.12)\",\n borderRadius: \"8px\",\n textAlign: \"left\",\n cursor: source.status === \"coming-soon\" ? \"not-allowed\" : \"pointer\",\n transition: \"all 0.15s ease\",\n opacity: source.status === \"coming-soon\" ? 0.6 : 1,\n }}\n onMouseEnter={(e) => {\n if (source.status !== \"coming-soon\") {\n e.currentTarget.style.background = \"rgba(255, 255, 255, 0.95)\";\n e.currentTarget.style.borderColor = \"rgba(52, 58, 64, 0.20)\";\n }\n }}\n onMouseLeave={(e) => {\n if (source.status !== \"coming-soon\") {\n e.currentTarget.style.background = \"rgba(255, 255, 255, 0.85)\";\n e.currentTarget.style.borderColor = \"rgba(52, 58, 64, 0.12)\";\n }\n }}\n >\n <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\" }}>\n <div>\n <div style={{ fontSize: \"14px\", fontWeight: 650, color: \"rgba(30, 33, 37, 0.92)\", marginBottom: \"4px\" }}>\n {source.name}\n </div>\n <div style={{ fontSize: \"12px\", color: \"rgba(30, 33, 37, 0.62)\" }}>\n {source.description}\n </div>\n </div>\n {source.status === \"coming-soon\" && (\n <span\n style={{\n fontSize: \"10px\",\n fontWeight: 600,\n color: \"rgba(30, 33, 37, 0.42)\",\n background: \"rgba(30, 33, 37, 0.08)\",\n padding: \"4px 8px\",\n borderRadius: \"4px\",\n }}\n >\n Coming Soon\n </span>\n )}\n </div>\n </button>\n ))}\n </div>\n </div>\n )}\n\n {/* Connected Source Example */}\n {connectedSource && (\n <div\n style={{\n marginBottom: \"24px\",\n padding: \"16px\",\n background: \"rgba(255, 255, 255, 0.85)\",\n border: \"1px solid rgba(52, 58, 64, 0.12)\",\n borderRadius: \"12px\",\n }}\n >\n <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\", marginBottom: \"8px\" }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: \"8px\" }}>\n <CheckCircle2 size={18} style={{ color: \"#1F8F5A\" }} />\n <span style={{ fontSize: \"14px\", fontWeight: 650, color: \"rgba(30, 33, 37, 0.92)\" }}>\n Connected: {connectedSource.name}\n </span>\n </div>\n <button\n onClick={() => setConnectedSource(null)}\n style={{\n background: \"none\",\n border: \"none\",\n cursor: \"pointer\",\n padding: \"4px\",\n display: \"flex\",\n alignItems: \"center\",\n }}\n >\n <X size={16} style={{ color: \"rgba(30, 33, 37, 0.42)\" }} />\n </button>\n </div>\n <div style={{ fontSize: \"13px\", color: \"rgba(30, 33, 37, 0.65)\", lineHeight: 1.5 }}>\n {connectedSource.description}\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n );\n}\n\n","\"use client\";\n\nimport React, { useState } from \"react\";\nimport {\n X,\n CheckCircle2,\n Circle,\n ChevronRight,\n Sparkles,\n Users,\n FolderOpen,\n Link,\n Settings,\n BookOpen,\n} from \"lucide-react\";\n\n/**\n * OnboardingChecklist Component\n * Displays a collapsible checklist of onboarding tasks with progress tracking.\n * Shows completed items with checkmarks and allows interaction with incomplete items.\n */\nexport default function OnboardingChecklist({\n onDismiss,\n onItemClick,\n completedItems = [],\n}) {\n const [isCollapsed, setIsCollapsed] = useState(false);\n const [hoveredItem, setHoveredItem] = useState(null);\n\n const checklistItems = [\n {\n id: \"name-project\",\n title: \"Name your workspace\",\n description: \"Give your default project a meaningful name\",\n icon: FolderOpen,\n completed: completedItems.includes(\"name-project\"),\n optional: true,\n },\n {\n id: \"evaluate-second-interaction\",\n title: \"Evaluate another interaction\",\n description: \"Upload or connect a second interaction to see patterns\",\n icon: Sparkles,\n completed: completedItems.includes(\"evaluate-second-interaction\"),\n },\n {\n id: \"connect-source\",\n title: \"Connect a data source\",\n description: \"Link your system or platform for automatic evaluation\",\n icon: Link,\n completed: completedItems.includes(\"connect-source\"),\n },\n {\n id: \"invite-team\",\n title: \"Add teammates\",\n description: \"Invite managers or QA team members to collaborate\",\n icon: Users,\n completed: completedItems.includes(\"invite-team\"),\n optional: true,\n },\n {\n id: \"learn-concepts\",\n title: \"Understand Chordia concepts\",\n description: \"Learn how conditions, evidence, and confidence work\",\n icon: BookOpen,\n completed: completedItems.includes(\"learn-concepts\"),\n optional: true,\n },\n {\n id: \"configure-scope\",\n title: \"Clarify evaluation scope\",\n description: \"Customize which signals and conditions matter for your team\",\n icon: Settings,\n completed: completedItems.includes(\"configure-scope\"),\n optional: true,\n },\n ];\n\n const completedCount = checklistItems.filter((item) => item.completed).length;\n const totalCount = checklistItems.length;\n const progressPercent = (completedCount / totalCount) * 100;\n\n if (isCollapsed) {\n return (\n <button\n type=\"button\"\n onClick={() => setIsCollapsed(false)}\n style={{\n width: \"100%\",\n padding: \"14px 16px\",\n background: \"rgba(255, 255, 255, 0.85)\",\n border: \"1px solid rgba(52, 58, 64, 0.12)\",\n borderRadius: \"12px\",\n cursor: \"pointer\",\n textAlign: \"left\",\n transition: \"all 0.15s ease\",\n boxShadow: \"0 2px 8px rgba(30, 33, 37, 0.04)\",\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.18)\";\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 }}\n >\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: \"12px\",\n }}\n >\n <div\n style={{\n fontSize: \"13px\",\n fontWeight: 600,\n color: \"rgba(30, 33, 37, 0.75)\",\n }}\n >\n Getting started ({completedCount}/{totalCount})\n </div>\n <ChevronRight size={16} style={{ color: \"rgba(30, 33, 37, 0.42)\" }} />\n </div>\n </button>\n );\n }\n\n return (\n <div\n style={{\n background: \"rgba(255, 255, 255, 0.85)\",\n border: \"1px solid rgba(52, 58, 64, 0.12)\",\n borderRadius: \"16px\",\n overflow: \"hidden\",\n boxShadow: \"0 4px 16px rgba(30, 33, 37, 0.06)\",\n }}\n >\n {/* Header */}\n <div\n style={{\n padding: \"18px 20px 16px\",\n borderBottom: \"1px solid rgba(52, 58, 64, 0.08)\",\n }}\n >\n <div\n style={{\n display: \"flex\",\n alignItems: \"flex-start\",\n justifyContent: \"space-between\",\n gap: \"12px\",\n }}\n >\n <div style={{ flex: 1 }}>\n <div\n style={{\n fontSize: \"15px\",\n fontWeight: 680,\n letterSpacing: \"-0.01em\",\n color: \"rgba(30, 33, 37, 0.92)\",\n marginBottom: \"6px\",\n lineHeight: 1.3,\n }}\n >\n Getting started with Chordia\n </div>\n <div\n style={{\n fontSize: \"12px\",\n color: \"rgba(30, 33, 37, 0.58)\",\n lineHeight: 1.4,\n }}\n >\n {completedCount} of {totalCount} completed\n </div>\n </div>\n <div style={{ display: \"flex\", gap: \"4px\" }}>\n {/* Collapse button */}\n <button\n type=\"button\"\n onClick={() => setIsCollapsed(true)}\n style={{\n width: \"28px\",\n height: \"28px\",\n borderRadius: \"6px\",\n background: \"transparent\",\n border: \"1px solid rgba(52, 58, 64, 0.12)\",\n cursor: \"pointer\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n transition: \"all 0.15s ease\",\n color: \"rgba(30, 33, 37, 0.52)\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.background = \"rgba(231, 212, 162, 0.12)\";\n e.currentTarget.style.borderColor = \"rgba(52, 58, 64, 0.18)\";\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = \"transparent\";\n e.currentTarget.style.borderColor = \"rgba(52, 58, 64, 0.12)\";\n }}\n title=\"Collapse\"\n >\n <ChevronRight size={14} />\n </button>\n {/* Dismiss button */}\n {onDismiss && (\n <button\n type=\"button\"\n onClick={onDismiss}\n style={{\n width: \"28px\",\n height: \"28px\",\n borderRadius: \"6px\",\n background: \"transparent\",\n border: \"1px solid rgba(52, 58, 64, 0.12)\",\n cursor: \"pointer\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n transition: \"all 0.15s ease\",\n color: \"rgba(30, 33, 37, 0.52)\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.background = \"rgba(231, 212, 162, 0.12)\";\n e.currentTarget.style.borderColor = \"rgba(52, 58, 64, 0.18)\";\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = \"transparent\";\n e.currentTarget.style.borderColor = \"rgba(52, 58, 64, 0.12)\";\n }}\n title=\"Dismiss checklist\"\n >\n <X size={14} />\n </button>\n )}\n </div>\n </div>\n {/* Progress bar */}\n <div\n style={{\n marginTop: \"14px\",\n height: \"6px\",\n background: \"rgba(30, 33, 37, 0.08)\",\n borderRadius: \"999px\",\n overflow: \"hidden\",\n }}\n >\n <div\n style={{\n height: \"100%\",\n width: `${progressPercent}%`,\n background:\n \"linear-gradient(90deg, rgba(184, 156, 106, 0.75) 0%, rgba(139, 157, 127, 0.75) 100%)\",\n borderRadius: \"999px\",\n transition: \"width 0.4s ease\",\n }}\n />\n </div>\n </div>\n\n {/* Checklist items */}\n <div style={{ padding: \"8px\" }}>\n {checklistItems.map((item, index) => {\n const Icon = item.icon;\n const isHovered = hoveredItem === item.id;\n\n return (\n <button\n key={item.id}\n type=\"button\"\n onClick={() => onItemClick?.(item.id)}\n onMouseEnter={() => setHoveredItem(item.id)}\n onMouseLeave={() => setHoveredItem(null)}\n disabled={item.completed}\n style={{\n width: \"100%\",\n padding: \"12px 14px\",\n background: item.completed\n ? \"rgba(139, 157, 127, 0.06)\"\n : isHovered\n ? \"rgba(231, 212, 162, 0.12)\"\n : \"transparent\",\n border: \"none\",\n borderRadius: \"10px\",\n cursor: item.completed ? \"default\" : \"pointer\",\n textAlign: \"left\",\n transition: \"all 0.15s ease\",\n marginBottom: index < checklistItems.length - 1 ? \"4px\" : \"0\",\n opacity: item.completed ? 0.7 : 1,\n }}\n >\n <div\n style={{\n display: \"flex\",\n alignItems: \"flex-start\",\n gap: \"12px\",\n }}\n >\n {/* Icon/Checkbox */}\n <div\n style={{\n width: \"20px\",\n height: \"20px\",\n marginTop: \"1px\",\n flexShrink: 0,\n }}\n >\n {item.completed ? (\n <CheckCircle2\n size={20}\n style={{ color: \"rgba(139, 157, 127, 0.75)\" }}\n />\n ) : (\n <Circle\n size={20}\n style={{ color: \"rgba(30, 33, 37, 0.24)\" }}\n />\n )}\n </div>\n {/* Content */}\n <div style={{ flex: 1, minWidth: 0 }}>\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"8px\",\n marginBottom: \"3px\",\n }}\n >\n <Icon\n size={14}\n style={{ color: \"rgba(30, 33, 37, 0.52)\", flexShrink: 0 }}\n />\n <span\n style={{\n fontSize: \"13px\",\n fontWeight: 600,\n color: item.completed\n ? \"rgba(30, 33, 37, 0.52)\"\n : \"rgba(30, 33, 37, 0.85)\",\n textDecoration: item.completed ? \"line-through\" : \"none\",\n lineHeight: 1.3,\n }}\n >\n {item.title}\n </span>\n {item.optional && !item.completed && (\n <span\n style={{\n fontSize: \"9px\",\n fontWeight: 600,\n letterSpacing: \"0.04em\",\n textTransform: \"uppercase\",\n color: \"rgba(30, 33, 37, 0.42)\",\n background: \"rgba(30, 33, 37, 0.06)\",\n padding: \"2px 5px\",\n borderRadius: \"4px\",\n }}\n >\n Optional\n </span>\n )}\n </div>\n <div\n style={{\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n lineHeight: 1.4,\n paddingLeft: \"22px\",\n }}\n >\n {item.description}\n </div>\n </div>\n {/* Arrow indicator (only for incomplete items on hover) */}\n {!item.completed && isHovered && (\n <ChevronRight\n size={16}\n style={{\n color: \"rgba(30, 33, 37, 0.32)\",\n marginTop: \"2px\",\n flexShrink: 0,\n }}\n />\n )}\n </div>\n </button>\n );\n })}\n </div>\n\n {/* Footer note */}\n <div\n style={{\n padding: \"12px 20px 16px\",\n borderTop: \"1px solid rgba(52, 58, 64, 0.08)\",\n }}\n >\n <div\n style={{\n fontSize: \"11px\",\n color: \"rgba(30, 33, 37, 0.52)\",\n lineHeight: 1.5,\n fontStyle: \"italic\",\n }}\n >\n You can dismiss this checklist anytime. These steps help you get the\n most from Chordia, but {'aren\\'t'} required.\n </div>\n </div>\n </div>\n );\n}\n\n","\"use client\";\n\nimport React from \"react\";\n\n/**\n * DemoProjectBanner Component\n * Displays a diagonal banner in the top-right corner indicating a demo project.\n * Creates a triangular ribbon effect with rotated text.\n */\nexport default function DemoProjectBanner({\n text = \"Demo Project\",\n accentColor = \"#B89C6A\",\n textColor = \"rgba(255, 255, 255, 0.95)\",\n size = \"medium\",\n position = \"fixed\",\n}) {\n // Size configurations\n const sizeConfig = {\n small: {\n width: 140,\n height: 140,\n fontSize: \"11px\",\n letterSpacing: \"0.08em\",\n fontWeight: 650,\n },\n medium: {\n width: 180,\n height: 180,\n fontSize: \"12px\",\n letterSpacing: \"0.1em\",\n fontWeight: 680,\n },\n large: {\n width: 220,\n height: 220,\n fontSize: \"13px\",\n letterSpacing: \"0.12em\",\n fontWeight: 700,\n },\n };\n\n const config = sizeConfig[size];\n\n return (\n <div\n style={{\n position: position,\n top: 0,\n right: 0,\n width: config.width,\n height: config.height,\n overflow: \"hidden\",\n zIndex: position === \"fixed\" ? 9999 : 1,\n pointerEvents: \"none\",\n }}\n >\n {/* Triangle background */}\n <div\n style={{\n position: \"absolute\",\n top: 0,\n right: 0,\n width: 0,\n height: 0,\n borderStyle: \"solid\",\n borderWidth: `0 ${config.width}px ${config.height}px 0`,\n borderColor: `transparent ${accentColor} transparent transparent`,\n opacity: 0.92,\n }}\n />\n\n {/* Diagonal stripe for depth */}\n <div\n style={{\n position: \"absolute\",\n top: 0,\n right: 0,\n width: 0,\n height: 0,\n borderStyle: \"solid\",\n borderWidth: `0 ${config.width}px ${config.height}px 0`,\n borderColor: \"transparent rgba(0, 0, 0, 0.08) transparent transparent\",\n }}\n />\n\n {/* Text container - rotated 45deg */}\n <div\n style={{\n position: \"absolute\",\n top:\n size === \"small\"\n ? \"28px\"\n : size === \"medium\"\n ? \"38px\"\n : \"48px\",\n right:\n size === \"small\"\n ? \"-32px\"\n : size === \"medium\"\n ? \"-42px\"\n : \"-52px\",\n width:\n size === \"small\" ? \"160px\" : size === \"medium\" ? \"200px\" : \"240px\",\n transform: \"rotate(45deg)\",\n transformOrigin: \"center\",\n textAlign: \"center\",\n }}\n >\n <div\n style={{\n fontSize: config.fontSize,\n fontWeight: config.fontWeight,\n letterSpacing: config.letterSpacing,\n textTransform: \"uppercase\",\n color: textColor,\n textShadow: \"0 1px 2px rgba(0, 0, 0, 0.15)\",\n whiteSpace: \"nowrap\",\n userSelect: \"none\",\n }}\n >\n {text}\n </div>\n </div>\n\n {/* Subtle shadow for depth */}\n <div\n style={{\n position: \"absolute\",\n top: 0,\n right: 0,\n width: config.width,\n height: config.height,\n background:\n \"linear-gradient(135deg, transparent 0%, rgba(0, 0, 0, 0.04) 100%)\",\n pointerEvents: \"none\",\n }}\n />\n </div>\n );\n}\n\n","\"use client\";\nimport React, { useState } from 'react';\nimport { Lock, Mail, Eye, EyeOff, ArrowRight } from 'lucide-react';\n\n// Logo asset — concentric circles + wordmark\n// const LOGO_URL = new URL('../../assets/chordia-logo.png', import.meta.url).href;\nconst LOGO_URL = \"../../assets/chordia-logo.png\";\n\n/**\n * LoginForm — Chordia design system login component.\n *\n * Warm parchment aesthetic. Gold accents on focus, earth-tone CTA.\n * Purple is intentionally avoided — it's reserved for AI presence.\n *\n * Props:\n * - title: string (default: \"Chordia\") — only shown if no logo\n * - subtitle: string (default: \"Sign in to continue\")\n * - logo: ReactNode (optional — replaces the default logo image + subtitle)\n * - onLogin: (email, password) => Promise<void> | void\n * - loading: boolean\n * - error: string | null\n * - footer: ReactNode (optional — e.g. links, version info)\n * - showLabels: boolean (default: true)\n * - emailPlaceholder: string\n * - passwordPlaceholder: string\n * - onForgotPassword: () => void (optional — shows \"Forgot password?\" link)\n * - compact: boolean (default: false — skips the full-page centering wrapper)\n */\nexport default function LoginForm({\n title = 'Chordia',\n subtitle = 'Sign in to continue',\n logo,\n onLogin,\n loading = false,\n error = null,\n footer,\n showLabels = true,\n emailPlaceholder = 'you@company.com',\n passwordPlaceholder = 'Password',\n onForgotPassword,\n compact = false,\n}) {\n const [email, setEmail] = useState('');\n const [password, setPassword] = useState('');\n const [showPassword, setShowPassword] = useState(false);\n const [focused, setFocused] = useState(null);\n\n const handleSubmit = (e) => {\n e.preventDefault();\n if (!email || !password || loading) return;\n onLogin?.(email, password);\n };\n\n const canSubmit = email && password && !loading;\n\n // Warm earth accent — compliance orange, used for focus/CTA (not purple)\n const accentColor = 'var(--rail-compliance)';\n const accentRgba = '201, 138, 90'; // --rail-compliance raw\n\n const card = (\n <div style={{\n width: '100%',\n maxWidth: 400,\n background: 'var(--paper-elevated)',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius-lg)',\n padding: '44px 36px 36px',\n boxShadow: '0 8px 32px rgba(30, 33, 37, 0.06), 0 1px 3px rgba(30, 33, 37, 0.04)',\n position: 'relative',\n overflow: 'hidden',\n }}>\n {/* Decorative top rail — warm gold gradient */}\n <div style={{\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n height: 3,\n background: `linear-gradient(90deg, var(--state-unknown), ${accentColor})`,\n opacity: 0.6,\n }} />\n\n {/* Logo / Title area */}\n <div style={{ textAlign: 'center', marginBottom: 32 }}>\n {logo || (\n <>\n {/* Logo on a dark pill so the light-colored asset is visible */}\n <div style={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '12px 24px',\n borderRadius: 'var(--radius-lg)',\n background: 'rgba(30, 33, 37, 0.92)',\n marginBottom: 16,\n }}>\n <img\n src={LOGO_URL}\n alt={title}\n style={{ height: 28, display: 'block' }}\n />\n </div>\n {subtitle && (\n <p style={{\n fontSize: 'var(--text-sm)',\n color: 'var(--text-muted)',\n marginTop: 4,\n marginBottom: 0,\n }}>{subtitle}</p>\n )}\n </>\n )}\n </div>\n\n <form onSubmit={handleSubmit}>\n {/* Email field */}\n <div style={{ marginBottom: 18 }}>\n {showLabels && (\n <label style={{\n display: 'block',\n fontSize: 'var(--text-sm)',\n fontWeight: 550,\n color: 'var(--text-strong)',\n marginBottom: 6,\n fontFamily: 'var(--font-sans)',\n }}>Email</label>\n )}\n <div style={{ position: 'relative', display: 'flex', alignItems: 'center' }}>\n <Mail size={15} style={{\n position: 'absolute',\n left: 12,\n color: focused === 'email' ? `rgba(${accentRgba}, 0.7)` : 'var(--text-faint)',\n pointerEvents: 'none',\n transition: 'color 0.2s ease',\n }} />\n <input\n type=\"email\"\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n placeholder={emailPlaceholder}\n required\n autoFocus\n autoComplete=\"email\"\n style={{\n width: '100%',\n padding: '11px 12px 11px 38px',\n fontSize: 'var(--text-md)',\n border: '1px solid',\n borderColor: focused === 'email' ? accentColor : 'var(--border)',\n borderRadius: 'var(--radius)',\n backgroundColor: focused === 'email' ? 'rgba(255,255,255,0.95)' : 'var(--paper)',\n color: 'var(--text-ink)',\n fontFamily: 'var(--font-sans)',\n outline: 'none',\n transition: 'border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease',\n boxShadow: focused === 'email' ? `0 0 0 3px rgba(${accentRgba}, 0.1)` : 'none',\n }}\n onFocus={() => setFocused('email')}\n onBlur={() => setFocused(null)}\n />\n </div>\n </div>\n\n {/* Password field */}\n <div style={{ marginBottom: 6 }}>\n {showLabels && (\n <label style={{\n display: 'block',\n fontSize: 'var(--text-sm)',\n fontWeight: 550,\n color: 'var(--text-strong)',\n marginBottom: 6,\n fontFamily: 'var(--font-sans)',\n }}>Password</label>\n )}\n <div style={{ position: 'relative', display: 'flex', alignItems: 'center' }}>\n <Lock size={15} style={{\n position: 'absolute',\n left: 12,\n color: focused === 'password' ? `rgba(${accentRgba}, 0.7)` : 'var(--text-faint)',\n pointerEvents: 'none',\n transition: 'color 0.2s ease',\n }} />\n <input\n type={showPassword ? 'text' : 'password'}\n value={password}\n onChange={(e) => setPassword(e.target.value)}\n placeholder={passwordPlaceholder}\n required\n autoComplete=\"current-password\"\n style={{\n width: '100%',\n padding: '11px 42px 11px 38px',\n fontSize: 'var(--text-md)',\n border: '1px solid',\n borderColor: focused === 'password' ? accentColor : 'var(--border)',\n borderRadius: 'var(--radius)',\n backgroundColor: focused === 'password' ? 'rgba(255,255,255,0.95)' : 'var(--paper)',\n color: 'var(--text-ink)',\n fontFamily: 'var(--font-sans)',\n outline: 'none',\n transition: 'border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease',\n boxShadow: focused === 'password' ? `0 0 0 3px rgba(${accentRgba}, 0.1)` : 'none',\n }}\n onFocus={() => setFocused('password')}\n onBlur={() => setFocused(null)}\n />\n <button\n type=\"button\"\n onClick={() => setShowPassword(!showPassword)}\n style={{\n position: 'absolute',\n right: 8,\n background: 'none',\n border: 'none',\n padding: 4,\n cursor: 'pointer',\n color: 'var(--text-faint)',\n display: 'flex',\n alignItems: 'center',\n transition: 'color 0.15s ease',\n borderRadius: 'var(--radius-sm)',\n }}\n tabIndex={-1}\n onMouseEnter={(e) => { e.currentTarget.style.color = 'var(--text-muted)'; }}\n onMouseLeave={(e) => { e.currentTarget.style.color = 'var(--text-faint)'; }}\n >\n {showPassword ? <EyeOff size={16} /> : <Eye size={16} />}\n </button>\n </div>\n </div>\n\n {/* Forgot password link */}\n {onForgotPassword && (\n <div style={{ textAlign: 'right', marginBottom: 4 }}>\n <button\n type=\"button\"\n onClick={onForgotPassword}\n style={{\n background: 'none',\n border: 'none',\n padding: '2px 0',\n fontSize: 'var(--text-xs)',\n color: 'var(--text-muted)',\n cursor: 'pointer',\n fontFamily: 'var(--font-sans)',\n transition: 'color 0.15s ease',\n }}\n onMouseEnter={(e) => { e.currentTarget.style.color = 'var(--text-strong)'; }}\n onMouseLeave={(e) => { e.currentTarget.style.color = 'var(--text-muted)'; }}\n >\n Forgot password?\n </button>\n </div>\n )}\n\n {/* Error message — gold warning tint, no red */}\n {error && (\n <div style={{\n fontSize: 'var(--text-sm)',\n color: 'var(--text-strong)',\n marginTop: 12,\n padding: '8px 12px',\n background: 'color-mix(in srgb, var(--state-unknown) 10%, transparent)',\n border: '1px solid color-mix(in srgb, var(--state-unknown) 25%, transparent)',\n borderRadius: 'var(--radius-sm)',\n textAlign: 'center',\n fontWeight: 500,\n }}>{error}</div>\n )}\n\n {/* Submit button — dark ink, warm and authoritative */}\n <button\n type=\"submit\"\n disabled={!canSubmit}\n style={{\n width: '100%',\n padding: '11px 0',\n marginTop: 20,\n background: canSubmit ? 'var(--text-ink)' : 'var(--text-xfaint)',\n color: '#ffffff',\n border: 'none',\n borderRadius: 'var(--radius)',\n fontSize: 'var(--text-md)',\n fontWeight: 600,\n fontFamily: 'var(--font-sans)',\n cursor: canSubmit ? 'pointer' : 'not-allowed',\n transition: 'opacity 0.15s ease, transform 0.1s ease',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 8,\n }}\n onMouseEnter={(e) => {\n if (canSubmit) {\n e.currentTarget.style.opacity = '0.85';\n e.currentTarget.style.transform = 'translateY(-1px)';\n }\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.opacity = '1';\n e.currentTarget.style.transform = 'translateY(0)';\n }}\n onMouseDown={(e) => {\n if (canSubmit) e.currentTarget.style.transform = 'translateY(0)';\n }}\n onMouseUp={(e) => {\n if (canSubmit) e.currentTarget.style.transform = 'translateY(-1px)';\n }}\n >\n {loading ? 'Signing in…' : (\n <>\n Sign In\n <ArrowRight size={16} />\n </>\n )}\n </button>\n </form>\n\n {/* Divider + Footer */}\n {footer && (\n <>\n <div style={{\n display: 'flex',\n alignItems: 'center',\n gap: 12,\n margin: '24px 0 16px',\n }}>\n <div style={{ flex: 1, height: 1, background: 'var(--border)' }} />\n <span style={{ fontSize: 'var(--text-xs)', color: 'var(--text-faint)' }}>or</span>\n <div style={{ flex: 1, height: 1, background: 'var(--border)' }} />\n </div>\n <div style={{\n textAlign: 'center',\n fontSize: 'var(--text-xs)',\n color: 'var(--text-faint)',\n }}>{footer}</div>\n </>\n )}\n </div>\n );\n\n if (compact) return card;\n\n return (\n <div style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: '100vh',\n background: 'var(--bg-chordia)',\n padding: 'var(--spacing-6)',\n }}>\n {card}\n </div>\n );\n}\n","\"use client\";\n\nimport React, { useState, useRef, useCallback, useEffect, useLayoutEffect } from \"react\";\n\n/**\n * SplitPane Component\n * Resizable two-pane layout with draggable divider and collapsible panels.\n *\n * Props:\n * left - React node for left pane\n * right - React node for right pane\n * defaultWidth - Initial left pane width in px (default: 260). Ignored if defaultRatio is set.\n * defaultRatio - Initial left pane width as ratio 0-1 (e.g. 0.5 for 50%). Overrides defaultWidth.\n * minWidth - Minimum left pane width in px (default: 180)\n * maxWidth - Maximum left pane width in px (default: 450)\n * minRatio - Minimum left pane width as ratio 0-1. Overrides minWidth when set.\n * maxRatio - Maximum left pane width as ratio 0-1. Overrides maxWidth when set.\n * collapsedWidth - Width of the collapsed strip in px (default: 0)\n * collapsed - Controlled collapsed state (optional)\n * onCollapsedChange - (collapsed: boolean) => void (optional)\n * collapseSide - Which side(s) can collapse: \"left\" | \"right\" | \"both\" | \"none\" (default: \"left\")\n * collapseThreshold - Drag below this px to auto-collapse left (default: minWidth - 40)\n * dividerWidth - Divider hit area width in px (default: 7)\n * style - Style for the outer container\n */\nexport default function SplitPane({\n left,\n right,\n defaultWidth = 260,\n defaultRatio,\n minWidth = 180,\n maxWidth = 450,\n minRatio,\n maxRatio,\n collapsedWidth = 0,\n collapsed: controlledCollapsed,\n onCollapsedChange,\n collapseSide = \"left\",\n collapseThreshold,\n dividerWidth = 7,\n style,\n}) {\n const isControlled = controlledCollapsed !== undefined;\n const [internalCollapsed, setInternalCollapsed] = useState(false);\n const collapsed = isControlled ? controlledCollapsed : internalCollapsed;\n\n const setCollapsed = useCallback(\n (val) => {\n const next = typeof val === \"function\" ? val(collapsed) : val;\n if (!isControlled) setInternalCollapsed(next);\n onCollapsedChange?.(next);\n },\n [isControlled, collapsed, onCollapsedChange]\n );\n\n const containerRef = useRef(null);\n const [containerWidth, setContainerWidth] = useState(0);\n const [width, setWidth] = useState(defaultWidth);\n const [dragging, setDragging] = useState(false);\n const [initialized, setInitialized] = useState(false);\n const startXRef = useRef(0);\n const startWidthRef = useRef(0);\n\n // Measure container and set initial width from ratio\n useLayoutEffect(() => {\n if (!containerRef.current) return;\n const w = containerRef.current.offsetWidth;\n setContainerWidth(w);\n if (!initialized && w > 0) {\n if (defaultRatio != null) {\n setWidth(Math.round(w * defaultRatio));\n }\n setInitialized(true);\n }\n }, []);\n\n // Observe container resize\n useEffect(() => {\n if (!containerRef.current) return;\n const ro = new ResizeObserver((entries) => {\n for (const entry of entries) {\n setContainerWidth(entry.contentRect.width);\n }\n });\n ro.observe(containerRef.current);\n return () => ro.disconnect();\n }, []);\n\n // Compute effective min/max from ratios if provided\n const effectiveMin = minRatio != null ? Math.round(containerWidth * minRatio) : minWidth;\n const effectiveMax = maxRatio != null ? Math.round(containerWidth * maxRatio) : maxWidth;\n const effectiveCollapseThreshold =\n collapseThreshold ?? (collapseSide === \"none\" ? 0 : effectiveMin - 40);\n\n const handleMouseDown = useCallback(\n (e) => {\n e.preventDefault();\n startXRef.current = e.clientX;\n startWidthRef.current = collapsed ? collapsedWidth : width;\n setDragging(true);\n },\n [width, collapsed, collapsedWidth]\n );\n\n useEffect(() => {\n if (!dragging) return;\n\n const handleMouseMove = (e) => {\n const delta = e.clientX - startXRef.current;\n const newWidth = startWidthRef.current + delta;\n\n const canCollapseLeft = collapseSide === \"left\" || collapseSide === \"both\";\n const canCollapseRight = collapseSide === \"right\" || collapseSide === \"both\";\n\n // Collapse left: dragged too far left\n if (canCollapseLeft && newWidth < effectiveCollapseThreshold) {\n if (!collapsed) setCollapsed(true);\n return;\n }\n\n // Collapse right: dragged too far right (right pane too narrow)\n const rightRemaining = containerWidth - newWidth - dividerWidth;\n if (canCollapseRight && containerWidth > 0 && rightRemaining < effectiveCollapseThreshold) {\n // Don't collapse right in this version — just clamp at max\n }\n\n if (collapsed) setCollapsed(false);\n setWidth(Math.min(Math.max(newWidth, effectiveMin), effectiveMax));\n };\n\n const handleMouseUp = () => setDragging(false);\n\n document.addEventListener(\"mousemove\", handleMouseMove);\n document.addEventListener(\"mouseup\", handleMouseUp);\n document.body.style.userSelect = \"none\";\n document.body.style.cursor = \"col-resize\";\n\n return () => {\n document.removeEventListener(\"mousemove\", handleMouseMove);\n document.removeEventListener(\"mouseup\", handleMouseUp);\n document.body.style.userSelect = \"\";\n document.body.style.cursor = \"\";\n };\n }, [\n dragging, collapsed, effectiveMin, effectiveMax, effectiveCollapseThreshold,\n containerWidth, dividerWidth, collapseSide, setCollapsed,\n ]);\n\n const handleDoubleClick = useCallback(() => {\n if (collapseSide !== \"none\") {\n setCollapsed((c) => !c);\n }\n }, [setCollapsed, collapseSide]);\n\n const actualLeftWidth = collapsed ? collapsedWidth : width;\n\n return (\n <div\n ref={containerRef}\n style={{\n display: \"flex\",\n height: \"100%\",\n overflow: \"hidden\",\n position: \"relative\",\n ...style,\n }}\n >\n {/* Left pane */}\n {(actualLeftWidth > 0 || !collapsed) && (\n <div\n style={{\n width: actualLeftWidth,\n flexShrink: 0,\n overflow: \"hidden\",\n transition: dragging ? \"none\" : \"width 0.2s ease\",\n height: \"100%\",\n }}\n >\n {!collapsed && left}\n </div>\n )}\n\n {/* Divider */}\n <div\n onMouseDown={handleMouseDown}\n onDoubleClick={handleDoubleClick}\n style={{\n width: `${dividerWidth}px`,\n flexShrink: 0,\n cursor: \"col-resize\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n position: \"relative\",\n zIndex: 2,\n }}\n >\n {/* Visual line */}\n <div\n style={{\n width: \"1px\",\n height: \"100%\",\n background: dragging\n ? \"var(--rail-discovery, #5E88B0)\"\n : \"var(--border, rgba(52,58,64,0.12))\",\n transition: \"background 0.15s ease\",\n }}\n />\n {/* Hover grip */}\n <div\n style={{\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n width: \"5px\",\n height: \"28px\",\n borderRadius: \"3px\",\n background: dragging\n ? \"var(--rail-discovery, #5E88B0)\"\n : \"var(--border, rgba(52,58,64,0.12))\",\n opacity: dragging ? 1 : 0,\n transition: \"opacity 0.15s ease, background 0.15s ease\",\n }}\n className=\"splitpane-grip\"\n />\n <style>{`\n div:hover > .splitpane-grip { opacity: 0.7 !important; }\n `}</style>\n </div>\n\n {/* Right pane */}\n <div\n style={{\n flex: 1,\n minWidth: 0,\n overflow: \"hidden\",\n height: \"100%\",\n }}\n >\n {right}\n </div>\n </div>\n );\n}\n"],"names":["FirstCallScreen","onUploadCall","onConnectSource","onUseSample","showExamples","hoveredCard","setHoveredCard","useState","uploadedFile","setUploadedFile","connectedSource","setConnectedSource","selectedProject","setSelectedProject","fileInputRef","useRef","dummyDataSources","dummyProjects","handleFileUpload","event","file","_a","isAudio","isVideo","handleConnectSource","sourceId","source","s","handleSelectProject","projectId","project","p","jsxs","jsx","Upload","Sparkles","Link","option","Icon","isHovered","CheckCircle2","X","e","OnboardingChecklist","onDismiss","onItemClick","completedItems","isCollapsed","setIsCollapsed","hoveredItem","setHoveredItem","checklistItems","FolderOpen","Users","BookOpen","Settings","completedCount","item","totalCount","progressPercent","ChevronRight","index","Circle","DemoProjectBanner","text","accentColor","textColor","size","position","config","LOGO_URL","LoginForm","title","subtitle","logo","onLogin","loading","error","footer","showLabels","emailPlaceholder","passwordPlaceholder","onForgotPassword","compact","email","setEmail","password","setPassword","showPassword","setShowPassword","focused","setFocused","handleSubmit","canSubmit","accentRgba","card","Fragment","Mail","Lock","EyeOff","Eye","ArrowRight","SplitPane","left","right","defaultWidth","defaultRatio","minWidth","maxWidth","minRatio","maxRatio","collapsedWidth","controlledCollapsed","onCollapsedChange","collapseSide","collapseThreshold","dividerWidth","style","isControlled","internalCollapsed","setInternalCollapsed","collapsed","setCollapsed","useCallback","val","next","containerRef","containerWidth","setContainerWidth","width","setWidth","dragging","setDragging","initialized","setInitialized","startXRef","startWidthRef","useLayoutEffect","w","useEffect","ro","entries","entry","effectiveMin","effectiveMax","effectiveCollapseThreshold","handleMouseDown","handleMouseMove","delta","newWidth","handleMouseUp","handleDoubleClick","actualLeftWidth"],"mappings":";;;;AAUA,SAAwBA,GAAgB;AAAA,EACtC,cAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,aAAAC;AAAA,EACA,cAAAC,IAAe;AACjB,GAAG;AACD,QAAM,CAACC,GAAaC,CAAc,IAAIC,EAAS,IAAI,GAC7C,CAACC,GAAcC,CAAe,IAAIF,EAAS,IAAI,GAC/C,CAACG,GAAiBC,CAAkB,IAAIJ,EAAS,IAAI,GACrD,CAACK,GAAiBC,CAAkB,IAAIN,EAAS,IAAI,GACrDO,IAAeC,EAAO,IAAI,GAG1BC,IAAmB;AAAA,IACvB,EAAE,IAAI,SAAS,MAAM,SAAS,QAAQ,aAAa,aAAa,gCAAgC;AAAA,IAChG,EAAE,IAAI,UAAU,MAAM,eAAe,QAAQ,aAAa,aAAa,8BAA8B;AAAA,IACrG,EAAE,IAAI,WAAW,MAAM,iBAAiB,QAAQ,aAAa,aAAa,kCAAkC;AAAA,IAC5G,EAAE,IAAI,QAAQ,MAAM,cAAc,QAAQ,eAAe,aAAa,qBAAqB;AAAA,EAAA,GAIvFC,IAAgB;AAAA,IACpB;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,MACb,cAAc;AAAA,MACd,WAAW;AAAA,IACb;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,MACb,cAAc;AAAA,MACd,WAAW;AAAA,IACb;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,MACb,cAAc;AAAA,MACd,WAAW;AAAA,IACb;AAAA,EAAA,GAGIC,IAAmB,CAACC,MAAU;;AAClC,UAAMC,KAAOC,IAAAF,EAAM,OAAO,UAAb,gBAAAE,EAAqB;AAClC,QAAID,GAAM;AAER,YAAME,IAAUF,EAAK,KAAK,WAAW,QAAQ,GACvCG,IAAUH,EAAK,KAAK,WAAW,QAAQ;AAE7C,MAAIE,KAAWC,KACGd,EAAA;AAAA,QACd,MAAMW,EAAK;AAAA,QACX,MAAMA,EAAK;AAAA,QACX,MAAMA,EAAK;AAAA,QACX,cAAc,IAAI,KAAKA,EAAK,YAAY;AAAA,MAAA,CACzC,GACGnB,IACFA,EAAamB,CAAI,IAEjB,QAAQ,IAAI,kBAAkBA,EAAK,MAAMA,EAAK,MAAM,KAAKA,EAAK,OAAO,OAAO,MAAM,QAAQ,CAAC,CAAC,MAAM,KAGpG,MAAM,uCAAuC;AAAA,IAEjD;AAEA,IAAIN,EAAa,YACfA,EAAa,QAAQ,QAAQ;AAAA,EAC/B,GAGIU,IAAsB,CAACC,MAAa;AACxC,UAAMC,IAASV,EAAiB,KAAK,CAACW,MAAMA,EAAE,OAAOF,CAAQ;AACzD,IAAAC,KAAUA,EAAO,WAAW,gBAC9Bf,EAAmBe,CAAM,GACrBxB,IACFA,EAAgBwB,CAAM,IAEd,QAAA,IAAI,iBAAiBA,EAAO,IAAI;AAAA,EAE5C,GAGIE,IAAsB,CAACC,MAAc;AACzC,UAAMC,IAAUb,EAAc,KAAK,CAACc,MAAMA,EAAE,OAAOF,CAAS;AAC5D,IAAIC,MACFjB,EAAmBiB,CAAO,GACtB3B,IACFA,EAAY2B,CAAO,IAEX,QAAA,IAAI,qBAAqBA,EAAQ,IAAI;AAAA,EAEjD;AA4DA,SAAA,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,QACL,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,gBAAgB;AAAA,QAChB,SAAS;AAAA,MACX;AAAA,MAGA,UAAA;AAAA,QAAA,gBAAAC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAKnB;AAAA,YACL,MAAK;AAAA,YACL,QAAO;AAAA,YACP,UAAUI;AAAA,YACV,OAAO,EAAE,SAAS,OAAO;AAAA,UAAA;AAAA,QAC3B;AAAA,QACA,gBAAAc,EAAC,SAAI,OAAO,EAAE,UAAU,SAAS,OAAO,OAEtC,GAAA,UAAA;AAAA,UAAA,gBAAAA,EAAC,SAAI,OAAO,EAAE,WAAW,UAAU,cAAc,OAC/C,GAAA,UAAA;AAAA,YAAA,gBAAAC;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAO;AAAA,kBACL,UAAU;AAAA,kBACV,YAAY;AAAA,kBACZ,eAAe;AAAA,kBACf,OAAO;AAAA,kBACP,cAAc;AAAA,kBACd,YAAY;AAAA,gBACd;AAAA,gBACD,UAAA;AAAA,cAAA;AAAA,YAED;AAAA,YACA,gBAAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAO;AAAA,kBACL,UAAU;AAAA,kBACV,OAAO;AAAA,kBACP,YAAY;AAAA,kBACZ,UAAU;AAAA,kBACV,QAAQ;AAAA,gBACV;AAAA,gBACD,UAAA;AAAA,cAAA;AAAA,YAGD;AAAA,UAAA,GACF;AAAA,UAGA,gBAAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO;AAAA,gBACL,SAAS;AAAA,gBACT,eAAe;AAAA,gBACf,KAAK;AAAA,cACP;AAAA,cAEC,UAtFO;AAAA,gBACd;AAAA,kBACE,IAAI;AAAA,kBACJ,MAAMC;AAAA,kBACN,OAAO;AAAA,kBACP,aACE;AAAA,kBACF,aAAa;AAAA,kBACb,SAlCsB,MAAM;AAC9B,oBAAIpB,EAAa,WACfA,EAAa,QAAQ;kBACvB;AAAA,gBAgCA;AAAA,gBACA;AAAA,kBACE,IAAI;AAAA,kBACJ,MAAMqB;AAAA,kBACN,OAAO;AAAA,kBACP,aACE;AAAA,kBACF,aAAa;AAAA,kBACb,SArCsB,MAAM;AAC1B,oBAAA/B,KAAgB,CAACQ,KAIjBT,KACFA,EAAYS,KAAmB,EAAE,IAAI,WAAW,MAAM,gBAAgB;AAAA,kBACxE;AAAA,gBA+BA;AAAA,gBACA;AAAA,kBACE,IAAI;AAAA,kBACJ,MAAMwB;AAAA,kBACN,OAAO;AAAA,kBACP,aACE;AAAA,kBACF,aAAa;AAAA,kBACb,SApCuB,MAAM;AAC3B,oBAAAhC,KAAgB,CAACM,KAIjBR,KACFA,EAAgBQ,KAAmB,EAAE,IAAI,WAAW,MAAM,eAAe;AAAA,kBAC3E;AAAA,gBA8BA;AAAA,cAAA,EA2De,IAAI,CAAC2B,MAAW;AACvB,sBAAMC,IAAOD,EAAO,MACdE,IAAYlC,MAAgBgC,EAAO;AAGvC,uBAAA,gBAAAL;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBAEC,MAAK;AAAA,oBACL,SAASK,EAAO;AAAA,oBAChB,cAAc,MAAM/B,EAAe+B,EAAO,EAAE;AAAA,oBAC5C,cAAc,MAAM/B,EAAe,IAAI;AAAA,oBACvC,OAAO;AAAA,sBACL,UAAU;AAAA,sBACV,OAAO;AAAA,sBACP,SAAS;AAAA,sBACT,YAAYiC,IACR,8BACA;AAAA,sBACJ,QAAQF,EAAO,cACX,wCACAE,IACA,qCACA;AAAA,sBACJ,cAAc;AAAA,sBACd,QAAQ;AAAA,sBACR,WAAW;AAAA,sBACX,YAAY;AAAA,sBACZ,WAAWA,IAAY,qBAAqB;AAAA,sBAC5C,WAAWA,IACP,uCACA;AAAA,oBACN;AAAA,oBAGC,UAAA;AAAA,sBAAAF,EAAO,eACN,gBAAAJ;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,OAAO;AAAA,4BACL,UAAU;AAAA,4BACV,KAAK;AAAA,4BACL,OAAO;AAAA,4BACP,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,sBAEF,gBAAAD;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,OAAO;AAAA,4BACL,SAAS;AAAA,4BACT,YAAY;AAAA,4BACZ,KAAK;AAAA,0BACP;AAAA,0BAGA,UAAA;AAAA,4BAAA,gBAAAC;AAAA,8BAAC;AAAA,8BAAA;AAAA,gCACC,OAAO;AAAA,kCACL,OAAO;AAAA,kCACP,QAAQ;AAAA,kCACR,cAAc;AAAA,kCACd,YAAYI,EAAO,cACf,8BACA;AAAA,kCACJ,QAAQA,EAAO,cACX,wCACA;AAAA,kCACJ,SAAS;AAAA,kCACT,YAAY;AAAA,kCACZ,gBAAgB;AAAA,kCAChB,YAAY;AAAA,gCACd;AAAA,gCAEA,UAAA,gBAAAJ;AAAA,kCAACK;AAAA,kCAAA;AAAA,oCACC,MAAM;AAAA,oCACN,OAAO;AAAA,sCACL,OAAOD,EAAO,cACV,8BACA;AAAA,oCACN;AAAA,kCAAA;AAAA,gCACF;AAAA,8BAAA;AAAA,4BACF;AAAA,4BAGA,gBAAAL,EAAC,SAAI,OAAO,EAAE,MAAM,GAAG,YAAY,MACjC,GAAA,UAAA;AAAA,8BAAA,gBAAAC;AAAA,gCAAC;AAAA,gCAAA;AAAA,kCACC,OAAO;AAAA,oCACL,UAAU;AAAA,oCACV,YAAY;AAAA,oCACZ,eAAe;AAAA,oCACf,OAAO;AAAA,oCACP,cAAc;AAAA,oCACd,YAAY;AAAA,kCACd;AAAA,kCAEC,UAAOI,EAAA;AAAA,gCAAA;AAAA,8BACV;AAAA,8BACA,gBAAAJ;AAAA,gCAAC;AAAA,gCAAA;AAAA,kCACC,OAAO;AAAA,oCACL,UAAU;AAAA,oCACV,OAAO;AAAA,oCACP,YAAY;AAAA,kCACd;AAAA,kCAEC,UAAOI,EAAA;AAAA,gCAAA;AAAA,8BACV;AAAA,4BAAA,GACF;AAAA,0BAAA;AAAA,wBAAA;AAAA,sBACF;AAAA,oBAAA;AAAA,kBAAA;AAAA,kBA3GKA,EAAO;AAAA,gBAAA;AAAA,cA4Gd,CAEH;AAAA,YAAA;AAAA,UACH;AAAA,UAGA,gBAAAJ;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO;AAAA,gBACL,WAAW;AAAA,gBACX,WAAW;AAAA,gBACX,UAAU;AAAA,gBACV,OAAO;AAAA,gBACP,YAAY;AAAA,cACd;AAAA,cACD,UAAA;AAAA,YAAA;AAAA,UAGD;AAAA,UAGC7B,KACE,gBAAA4B,EAAA,OAAA,EAAI,OAAO,EAAE,WAAW,QAAQ,YAAY,QAAQ,WAAW,mCAAA,GAC9D,UAAA;AAAA,YAAA,gBAAAC;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAO;AAAA,kBACL,UAAU;AAAA,kBACV,YAAY;AAAA,kBACZ,eAAe;AAAA,kBACf,OAAO;AAAA,kBACP,cAAc;AAAA,gBAChB;AAAA,gBACD,UAAA;AAAA,cAAA;AAAA,YAED;AAAA,YAGCzB,KACC,gBAAAwB;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAO;AAAA,kBACL,cAAc;AAAA,kBACd,SAAS;AAAA,kBACT,YAAY;AAAA,kBACZ,QAAQ;AAAA,kBACR,cAAc;AAAA,gBAChB;AAAA,gBAEA,UAAA;AAAA,kBAAC,gBAAAA,EAAA,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,gBAAgB,iBAAiB,cAAc,MAAA,GAClG,UAAA;AAAA,oBAAC,gBAAAA,EAAA,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,MAAA,GACxD,UAAA;AAAA,sBAAA,gBAAAC,EAACO,KAAa,MAAM,IAAI,OAAO,EAAE,OAAO,aAAa;AAAA,sBACrD,gBAAAP,EAAC,QAAK,EAAA,OAAO,EAAE,UAAU,QAAQ,YAAY,KAAK,OAAO,yBAAyB,GAAG,UAErF,gBAAA,CAAA;AAAA,oBAAA,GACF;AAAA,oBACA,gBAAAA;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,SAAS,MAAMxB,EAAgB,IAAI;AAAA,wBACnC,OAAO;AAAA,0BACL,YAAY;AAAA,0BACZ,QAAQ;AAAA,0BACR,QAAQ;AAAA,0BACR,SAAS;AAAA,0BACT,SAAS;AAAA,0BACT,YAAY;AAAA,wBACd;AAAA,wBAEA,UAAA,gBAAAwB,EAACQ,KAAE,MAAM,IAAI,OAAO,EAAE,OAAO,4BAA4B;AAAA,sBAAA;AAAA,oBAC3D;AAAA,kBAAA,GACF;AAAA,kBACA,gBAAAT,EAAC,OAAI,EAAA,OAAO,EAAE,UAAU,QAAQ,OAAO,0BAA0B,YAAY,IAAA,GAC3E,UAAA;AAAA,oBAAA,gBAAAA,EAAC,OAAI,EAAA,UAAA;AAAA,sBAAA,gBAAAC,EAAC,YAAO,UAAK,QAAA,CAAA;AAAA,sBAAS;AAAA,sBAAEzB,EAAa;AAAA,oBAAA,GAAK;AAAA,sCAC9C,OAAI,EAAA,UAAA;AAAA,sBAAA,gBAAAyB,EAAC,YAAO,UAAK,QAAA,CAAA;AAAA,sBAAS;AAAA,sBAAEzB,EAAa;AAAA,oBAAA,GAAK;AAAA,sCAC9C,OAAI,EAAA,UAAA;AAAA,sBAAA,gBAAAyB,EAAC,YAAO,UAAK,QAAA,CAAA;AAAA,sBAAS;AAAA,uBAAGzB,EAAa,OAAO,OAAO,MAAM,QAAQ,CAAC;AAAA,sBAAE;AAAA,oBAAA,GAAG;AAAA,sCAC5E,OAAI,EAAA,UAAA;AAAA,sBAAA,gBAAAyB,EAAC,YAAO,UAAS,YAAA,CAAA;AAAA,sBAAS;AAAA,sBAAEzB,EAAa,aAAa,eAAe;AAAA,oBAAA,GAAE;AAAA,kBAAA,GAC9E;AAAA,gBAAA;AAAA,cAAA;AAAA,YACF;AAAA,YAID,CAACI,KACC,gBAAAoB,EAAA,OAAA,EAAI,OAAO,EAAE,cAAc,OAC1B,GAAA,UAAA;AAAA,cAAA,gBAAAC;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO;AAAA,oBACL,UAAU;AAAA,oBACV,YAAY;AAAA,oBACZ,OAAO;AAAA,oBACP,cAAc;AAAA,kBAChB;AAAA,kBACD,UAAA;AAAA,gBAAA;AAAA,cAED;AAAA,cACC,gBAAAA,EAAA,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,MAAM,GAChE,UAAchB,EAAA,IAAI,CAACa,MAClB,gBAAAE;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBAEC,SAAS,MAAMJ,EAAoBE,EAAQ,EAAE;AAAA,kBAC7C,OAAO;AAAA,oBACL,SAAS;AAAA,oBACT,YAAY;AAAA,oBACZ,QAAQ;AAAA,oBACR,cAAc;AAAA,oBACd,WAAW;AAAA,oBACX,QAAQ;AAAA,oBACR,YAAY;AAAA,kBACd;AAAA,kBACA,cAAc,CAACY,MAAM;AACjB,oBAAAA,EAAA,cAAc,MAAM,aAAa,6BACjCA,EAAA,cAAc,MAAM,cAAc;AAAA,kBACtC;AAAA,kBACA,cAAc,CAACA,MAAM;AACjB,oBAAAA,EAAA,cAAc,MAAM,aAAa,6BACjCA,EAAA,cAAc,MAAM,cAAc;AAAA,kBACtC;AAAA,kBAEA,UAAA;AAAA,oBAAA,gBAAAT,EAAC,OAAI,EAAA,OAAO,EAAE,UAAU,QAAQ,YAAY,KAAK,OAAO,0BAA0B,cAAc,MAAM,GACnG,YAAQ,MACX;AAAA,oBACC,gBAAAA,EAAA,OAAA,EAAI,OAAO,EAAE,UAAU,QAAQ,OAAO,0BAA0B,cAAc,MAC5E,GAAA,UAAAH,EAAQ,YACX,CAAA;AAAA,oBACA,gBAAAE,EAAC,SAAI,OAAO,EAAE,UAAU,QAAQ,OAAO,yBACpC,GAAA,UAAA;AAAA,sBAAQF,EAAA;AAAA,sBAAa;AAAA,sBAAiBA,EAAQ;AAAA,oBAAA,GACjD;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBA5BKA,EAAQ;AAAA,cA8BhB,CAAA,GACH;AAAA,YAAA,GACF;AAAA,YAIDlB,KACC,gBAAAoB;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAO;AAAA,kBACL,cAAc;AAAA,kBACd,SAAS;AAAA,kBACT,YAAY;AAAA,kBACZ,QAAQ;AAAA,kBACR,cAAc;AAAA,gBAChB;AAAA,gBAEA,UAAA;AAAA,kBAAC,gBAAAA,EAAA,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,gBAAgB,iBAAiB,cAAc,MAAA,GAClG,UAAA;AAAA,oBAAC,gBAAAA,EAAA,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,MAAA,GACxD,UAAA;AAAA,sBAAA,gBAAAC,EAACO,KAAa,MAAM,IAAI,OAAO,EAAE,OAAO,aAAa;AAAA,sBACrD,gBAAAR,EAAC,QAAK,EAAA,OAAO,EAAE,UAAU,QAAQ,YAAY,KAAK,OAAO,yBAAA,GAA4B,UAAA;AAAA,wBAAA;AAAA,wBAChEpB,EAAgB;AAAA,sBAAA,GACrC;AAAA,oBAAA,GACF;AAAA,oBACA,gBAAAqB;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,SAAS,MAAMpB,EAAmB,IAAI;AAAA,wBACtC,OAAO;AAAA,0BACL,YAAY;AAAA,0BACZ,QAAQ;AAAA,0BACR,QAAQ;AAAA,0BACR,SAAS;AAAA,0BACT,SAAS;AAAA,0BACT,YAAY;AAAA,wBACd;AAAA,wBAEA,UAAA,gBAAAoB,EAACQ,KAAE,MAAM,IAAI,OAAO,EAAE,OAAO,4BAA4B;AAAA,sBAAA;AAAA,oBAC3D;AAAA,kBAAA,GACF;AAAA,kBACA,gBAAAT,EAAC,OAAI,EAAA,OAAO,EAAE,UAAU,QAAQ,OAAO,0BAA0B,YAAY,IAAA,GAC3E,UAAA;AAAA,oBAAC,gBAAAC,EAAA,OAAA,EAAK,YAAgB,YAAY,CAAA;AAAA,sCACjC,OAAI,EAAA,OAAO,EAAE,WAAW,MACvB,GAAA,UAAA;AAAA,sBAAC,gBAAAA,EAAA,UAAA,EAAQ,YAAgB,aAAa,CAAA;AAAA,sBAAS;AAAA,sBAAgB,gBAAAA,EAAC,UAAQ,EAAA,UAAArB,EAAgB,UAAU,CAAA;AAAA,oBAAA,GACpG;AAAA,kBAAA,GACF;AAAA,gBAAA;AAAA,cAAA;AAAA,YACF;AAAA,YAID,CAACF,KACC,gBAAAsB,EAAA,OAAA,EAAI,OAAO,EAAE,cAAc,OAC1B,GAAA,UAAA;AAAA,cAAA,gBAAAC;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO;AAAA,oBACL,UAAU;AAAA,oBACV,YAAY;AAAA,oBACZ,OAAO;AAAA,oBACP,cAAc;AAAA,kBAChB;AAAA,kBACD,UAAA;AAAA,gBAAA;AAAA,cAED;AAAA,cACC,gBAAAA,EAAA,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,MAAM,GAChE,UAAiBjB,EAAA,IAAI,CAACU,MACrB,gBAAAO;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBAEC,SAAS,MAAMT,EAAoBE,EAAO,EAAE;AAAA,kBAC5C,UAAUA,EAAO,WAAW;AAAA,kBAC5B,OAAO;AAAA,oBACL,SAAS;AAAA,oBACT,YAAYA,EAAO,WAAW,gBAC1B,6BACA;AAAA,oBACJ,QAAQ;AAAA,oBACR,cAAc;AAAA,oBACd,WAAW;AAAA,oBACX,QAAQA,EAAO,WAAW,gBAAgB,gBAAgB;AAAA,oBAC1D,YAAY;AAAA,oBACZ,SAASA,EAAO,WAAW,gBAAgB,MAAM;AAAA,kBACnD;AAAA,kBACA,cAAc,CAACgB,MAAM;AACf,oBAAAhB,EAAO,WAAW,kBAClBgB,EAAA,cAAc,MAAM,aAAa,6BACjCA,EAAA,cAAc,MAAM,cAAc;AAAA,kBAExC;AAAA,kBACA,cAAc,CAACA,MAAM;AACf,oBAAAhB,EAAO,WAAW,kBAClBgB,EAAA,cAAc,MAAM,aAAa,6BACjCA,EAAA,cAAc,MAAM,cAAc;AAAA,kBAExC;AAAA,kBAEA,UAAA,gBAAAV,EAAC,OAAI,EAAA,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,gBAAgB,gBAAA,GACnE,UAAA;AAAA,oBAAA,gBAAAA,EAAC,OACC,EAAA,UAAA;AAAA,sBAAA,gBAAAC,EAAC,OAAI,EAAA,OAAO,EAAE,UAAU,QAAQ,YAAY,KAAK,OAAO,0BAA0B,cAAc,MAAM,GACnG,YAAO,MACV;AAAA,sBACA,gBAAAA,EAAC,OAAI,EAAA,OAAO,EAAE,UAAU,QAAQ,OAAO,yBAAA,GACpC,UAAAP,EAAO,YACV,CAAA;AAAA,oBAAA,GACF;AAAA,oBACCA,EAAO,WAAW,iBACjB,gBAAAO;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,OAAO;AAAA,0BACL,UAAU;AAAA,0BACV,YAAY;AAAA,0BACZ,OAAO;AAAA,0BACP,YAAY;AAAA,0BACZ,SAAS;AAAA,0BACT,cAAc;AAAA,wBAChB;AAAA,wBACD,UAAA;AAAA,sBAAA;AAAA,oBAED;AAAA,kBAAA,GAEJ;AAAA,gBAAA;AAAA,gBAnDKP,EAAO;AAAA,cAqDf,CAAA,GACH;AAAA,YAAA,GACF;AAAA,YAIDhB,KACC,gBAAAsB;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAO;AAAA,kBACL,cAAc;AAAA,kBACd,SAAS;AAAA,kBACT,YAAY;AAAA,kBACZ,QAAQ;AAAA,kBACR,cAAc;AAAA,gBAChB;AAAA,gBAEA,UAAA;AAAA,kBAAC,gBAAAA,EAAA,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,gBAAgB,iBAAiB,cAAc,MAAA,GAClG,UAAA;AAAA,oBAAC,gBAAAA,EAAA,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,MAAA,GACxD,UAAA;AAAA,sBAAA,gBAAAC,EAACO,KAAa,MAAM,IAAI,OAAO,EAAE,OAAO,aAAa;AAAA,sBACrD,gBAAAR,EAAC,QAAK,EAAA,OAAO,EAAE,UAAU,QAAQ,YAAY,KAAK,OAAO,yBAAA,GAA4B,UAAA;AAAA,wBAAA;AAAA,wBACvEtB,EAAgB;AAAA,sBAAA,GAC9B;AAAA,oBAAA,GACF;AAAA,oBACA,gBAAAuB;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,SAAS,MAAMtB,EAAmB,IAAI;AAAA,wBACtC,OAAO;AAAA,0BACL,YAAY;AAAA,0BACZ,QAAQ;AAAA,0BACR,QAAQ;AAAA,0BACR,SAAS;AAAA,0BACT,SAAS;AAAA,0BACT,YAAY;AAAA,wBACd;AAAA,wBAEA,UAAA,gBAAAsB,EAACQ,KAAE,MAAM,IAAI,OAAO,EAAE,OAAO,4BAA4B;AAAA,sBAAA;AAAA,oBAC3D;AAAA,kBAAA,GACF;AAAA,kBACC,gBAAAR,EAAA,OAAA,EAAI,OAAO,EAAE,UAAU,QAAQ,OAAO,0BAA0B,YAAY,IAC1E,GAAA,UAAAvB,EAAgB,YACnB,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,YACF;AAAA,UAAA,GAEJ;AAAA,QAAA,GAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;ACplBA,SAAwBiC,GAAoB;AAAA,EAC1C,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,gBAAAC,IAAiB,CAAC;AACpB,GAAG;AACD,QAAM,CAACC,GAAaC,CAAc,IAAIzC,EAAS,EAAK,GAC9C,CAAC0C,GAAaC,CAAc,IAAI3C,EAAS,IAAI,GAE7C4C,IAAiB;AAAA,IACrB;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,aAAa;AAAA,MACb,MAAMC;AAAA,MACN,WAAWN,EAAe,SAAS,cAAc;AAAA,MACjD,UAAU;AAAA,IACZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,aAAa;AAAA,MACb,MAAMX;AAAA,MACN,WAAWW,EAAe,SAAS,6BAA6B;AAAA,IAClE;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,aAAa;AAAA,MACb,MAAMV;AAAA,MACN,WAAWU,EAAe,SAAS,gBAAgB;AAAA,IACrD;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,aAAa;AAAA,MACb,MAAMO;AAAA,MACN,WAAWP,EAAe,SAAS,aAAa;AAAA,MAChD,UAAU;AAAA,IACZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,aAAa;AAAA,MACb,MAAMQ;AAAA,MACN,WAAWR,EAAe,SAAS,gBAAgB;AAAA,MACnD,UAAU;AAAA,IACZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,aAAa;AAAA,MACb,MAAMS;AAAA,MACN,WAAWT,EAAe,SAAS,iBAAiB;AAAA,MACpD,UAAU;AAAA,IACZ;AAAA,EAAA,GAGIU,IAAiBL,EAAe,OAAO,CAACM,MAASA,EAAK,SAAS,EAAE,QACjEC,IAAaP,EAAe,QAC5BQ,IAAmBH,IAAiBE,IAAc;AAExD,SAAIX,IAEA,gBAAAd;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,SAAS,MAAMe,EAAe,EAAK;AAAA,MACnC,OAAO;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,cAAc;AAAA,QACd,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,WAAW;AAAA,MACb;AAAA,MACA,cAAc,CAACN,MAAM;AACjB,QAAAA,EAAA,cAAc,MAAM,aAAa,6BACjCA,EAAA,cAAc,MAAM,cAAc;AAAA,MACtC;AAAA,MACA,cAAc,CAACA,MAAM;AACjB,QAAAA,EAAA,cAAc,MAAM,aAAa,6BACjCA,EAAA,cAAc,MAAM,cAAc;AAAA,MACtC;AAAA,MAEA,UAAA,gBAAAV;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,OAAO;AAAA,YACL,SAAS;AAAA,YACT,YAAY;AAAA,YACZ,gBAAgB;AAAA,YAChB,KAAK;AAAA,UACP;AAAA,UAEA,UAAA;AAAA,YAAA,gBAAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAO;AAAA,kBACL,UAAU;AAAA,kBACV,YAAY;AAAA,kBACZ,OAAO;AAAA,gBACT;AAAA,gBACD,UAAA;AAAA,kBAAA;AAAA,kBACmBwB;AAAA,kBAAe;AAAA,kBAAEE;AAAA,kBAAW;AAAA,gBAAA;AAAA,cAAA;AAAA,YAChD;AAAA,YACA,gBAAAzB,EAAC2B,KAAa,MAAM,IAAI,OAAO,EAAE,OAAO,4BAA4B;AAAA,UAAA;AAAA,QAAA;AAAA,MACtE;AAAA,IAAA;AAAA,EAAA,IAMJ,gBAAA5B;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,QACL,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,cAAc;AAAA,QACd,UAAU;AAAA,QACV,WAAW;AAAA,MACb;AAAA,MAGA,UAAA;AAAA,QAAA,gBAAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,SAAS;AAAA,cACT,cAAc;AAAA,YAChB;AAAA,YAEA,UAAA;AAAA,cAAA,gBAAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO;AAAA,oBACL,SAAS;AAAA,oBACT,YAAY;AAAA,oBACZ,gBAAgB;AAAA,oBAChB,KAAK;AAAA,kBACP;AAAA,kBAEA,UAAA;AAAA,oBAAA,gBAAAA,EAAC,OAAI,EAAA,OAAO,EAAE,MAAM,EAClB,GAAA,UAAA;AAAA,sBAAA,gBAAAC;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,OAAO;AAAA,4BACL,UAAU;AAAA,4BACV,YAAY;AAAA,4BACZ,eAAe;AAAA,4BACf,OAAO;AAAA,4BACP,cAAc;AAAA,4BACd,YAAY;AAAA,0BACd;AAAA,0BACD,UAAA;AAAA,wBAAA;AAAA,sBAED;AAAA,sBACA,gBAAAD;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,OAAO;AAAA,4BACL,UAAU;AAAA,4BACV,OAAO;AAAA,4BACP,YAAY;AAAA,0BACd;AAAA,0BAEC,UAAA;AAAA,4BAAAwB;AAAA,4BAAe;AAAA,4BAAKE;AAAA,4BAAW;AAAA,0BAAA;AAAA,wBAAA;AAAA,sBAClC;AAAA,oBAAA,GACF;AAAA,oBACA,gBAAA1B,EAAC,SAAI,OAAO,EAAE,SAAS,QAAQ,KAAK,MAElC,GAAA,UAAA;AAAA,sBAAA,gBAAAC;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,MAAK;AAAA,0BACL,SAAS,MAAMe,EAAe,EAAI;AAAA,0BAClC,OAAO;AAAA,4BACL,OAAO;AAAA,4BACP,QAAQ;AAAA,4BACR,cAAc;AAAA,4BACd,YAAY;AAAA,4BACZ,QAAQ;AAAA,4BACR,QAAQ;AAAA,4BACR,SAAS;AAAA,4BACT,YAAY;AAAA,4BACZ,gBAAgB;AAAA,4BAChB,YAAY;AAAA,4BACZ,OAAO;AAAA,0BACT;AAAA,0BACA,cAAc,CAACN,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,eACjCA,EAAA,cAAc,MAAM,cAAc;AAAA,0BACtC;AAAA,0BACA,OAAM;AAAA,0BAEN,UAAA,gBAAAT,EAAC2B,GAAa,EAAA,MAAM,GAAI,CAAA;AAAA,wBAAA;AAAA,sBAC1B;AAAA,sBAEChB,KACC,gBAAAX;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,MAAK;AAAA,0BACL,SAASW;AAAA,0BACT,OAAO;AAAA,4BACL,OAAO;AAAA,4BACP,QAAQ;AAAA,4BACR,cAAc;AAAA,4BACd,YAAY;AAAA,4BACZ,QAAQ;AAAA,4BACR,QAAQ;AAAA,4BACR,SAAS;AAAA,4BACT,YAAY;AAAA,4BACZ,gBAAgB;AAAA,4BAChB,YAAY;AAAA,4BACZ,OAAO;AAAA,0BACT;AAAA,0BACA,cAAc,CAACF,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,eACjCA,EAAA,cAAc,MAAM,cAAc;AAAA,0BACtC;AAAA,0BACA,OAAM;AAAA,0BAEN,UAAA,gBAAAT,EAACQ,GAAE,EAAA,MAAM,GAAI,CAAA;AAAA,wBAAA;AAAA,sBACf;AAAA,oBAAA,GAEJ;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACF;AAAA,cAEA,gBAAAR;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO;AAAA,oBACL,WAAW;AAAA,oBACX,QAAQ;AAAA,oBACR,YAAY;AAAA,oBACZ,cAAc;AAAA,oBACd,UAAU;AAAA,kBACZ;AAAA,kBAEA,UAAA,gBAAAA;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,OAAO;AAAA,wBACL,QAAQ;AAAA,wBACR,OAAO,GAAG0B,CAAe;AAAA,wBACzB,YACE;AAAA,wBACF,cAAc;AAAA,wBACd,YAAY;AAAA,sBACd;AAAA,oBAAA;AAAA,kBACF;AAAA,gBAAA;AAAA,cACF;AAAA,YAAA;AAAA,UAAA;AAAA,QACF;AAAA,QAGA,gBAAA1B,EAAC,OAAI,EAAA,OAAO,EAAE,SAAS,SACpB,UAAekB,EAAA,IAAI,CAACM,GAAMI,MAAU;AACnC,gBAAMvB,IAAOmB,EAAK,MACZlB,IAAYU,MAAgBQ,EAAK;AAGrC,iBAAA,gBAAAxB;AAAA,YAAC;AAAA,YAAA;AAAA,cAEC,MAAK;AAAA,cACL,SAAS,MAAMY,KAAA,gBAAAA,EAAcY,EAAK;AAAA,cAClC,cAAc,MAAMP,EAAeO,EAAK,EAAE;AAAA,cAC1C,cAAc,MAAMP,EAAe,IAAI;AAAA,cACvC,UAAUO,EAAK;AAAA,cACf,OAAO;AAAA,gBACL,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,YAAYA,EAAK,YACb,8BACAlB,IACA,8BACA;AAAA,gBACJ,QAAQ;AAAA,gBACR,cAAc;AAAA,gBACd,QAAQkB,EAAK,YAAY,YAAY;AAAA,gBACrC,WAAW;AAAA,gBACX,YAAY;AAAA,gBACZ,cAAcI,IAAQV,EAAe,SAAS,IAAI,QAAQ;AAAA,gBAC1D,SAASM,EAAK,YAAY,MAAM;AAAA,cAClC;AAAA,cAEA,UAAA,gBAAAzB;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO;AAAA,oBACL,SAAS;AAAA,oBACT,YAAY;AAAA,oBACZ,KAAK;AAAA,kBACP;AAAA,kBAGA,UAAA;AAAA,oBAAA,gBAAAC;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,OAAO;AAAA,0BACL,OAAO;AAAA,0BACP,QAAQ;AAAA,0BACR,WAAW;AAAA,0BACX,YAAY;AAAA,wBACd;AAAA,wBAEC,YAAK,YACJ,gBAAAA;AAAA,0BAACO;AAAA,0BAAA;AAAA,4BACC,MAAM;AAAA,4BACN,OAAO,EAAE,OAAO,4BAA4B;AAAA,0BAAA;AAAA,wBAAA,IAG9C,gBAAAP;AAAA,0BAAC6B;AAAA,0BAAA;AAAA,4BACC,MAAM;AAAA,4BACN,OAAO,EAAE,OAAO,yBAAyB;AAAA,0BAAA;AAAA,wBAC3C;AAAA,sBAAA;AAAA,oBAEJ;AAAA,oBAEA,gBAAA9B,EAAC,SAAI,OAAO,EAAE,MAAM,GAAG,UAAU,EAC/B,GAAA,UAAA;AAAA,sBAAA,gBAAAA;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,OAAO;AAAA,4BACL,SAAS;AAAA,4BACT,YAAY;AAAA,4BACZ,KAAK;AAAA,4BACL,cAAc;AAAA,0BAChB;AAAA,0BAEA,UAAA;AAAA,4BAAA,gBAAAC;AAAA,8BAACK;AAAA,8BAAA;AAAA,gCACC,MAAM;AAAA,gCACN,OAAO,EAAE,OAAO,0BAA0B,YAAY,EAAE;AAAA,8BAAA;AAAA,4BAC1D;AAAA,4BACA,gBAAAL;AAAA,8BAAC;AAAA,8BAAA;AAAA,gCACC,OAAO;AAAA,kCACL,UAAU;AAAA,kCACV,YAAY;AAAA,kCACZ,OAAOwB,EAAK,YACR,2BACA;AAAA,kCACJ,gBAAgBA,EAAK,YAAY,iBAAiB;AAAA,kCAClD,YAAY;AAAA,gCACd;AAAA,gCAEC,UAAKA,EAAA;AAAA,8BAAA;AAAA,4BACR;AAAA,4BACCA,EAAK,YAAY,CAACA,EAAK,aACtB,gBAAAxB;AAAA,8BAAC;AAAA,8BAAA;AAAA,gCACC,OAAO;AAAA,kCACL,UAAU;AAAA,kCACV,YAAY;AAAA,kCACZ,eAAe;AAAA,kCACf,eAAe;AAAA,kCACf,OAAO;AAAA,kCACP,YAAY;AAAA,kCACZ,SAAS;AAAA,kCACT,cAAc;AAAA,gCAChB;AAAA,gCACD,UAAA;AAAA,8BAAA;AAAA,4BAED;AAAA,0BAAA;AAAA,wBAAA;AAAA,sBAEJ;AAAA,sBACA,gBAAAA;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,OAAO;AAAA,4BACL,UAAU;AAAA,4BACV,OAAO;AAAA,4BACP,YAAY;AAAA,4BACZ,aAAa;AAAA,0BACf;AAAA,0BAEC,UAAKwB,EAAA;AAAA,wBAAA;AAAA,sBACR;AAAA,oBAAA,GACF;AAAA,oBAEC,CAACA,EAAK,aAAalB,KAClB,gBAAAN;AAAA,sBAAC2B;AAAA,sBAAA;AAAA,wBACC,MAAM;AAAA,wBACN,OAAO;AAAA,0BACL,OAAO;AAAA,0BACP,WAAW;AAAA,0BACX,YAAY;AAAA,wBACd;AAAA,sBAAA;AAAA,oBACF;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAEJ;AAAA,YAAA;AAAA,YArHKH,EAAK;AAAA,UAAA;AAAA,QAwHf,CAAA,GACH;AAAA,QAGA,gBAAAxB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,SAAS;AAAA,cACT,WAAW;AAAA,YACb;AAAA,YAEA,UAAA,gBAAAD;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAO;AAAA,kBACL,UAAU;AAAA,kBACV,OAAO;AAAA,kBACP,YAAY;AAAA,kBACZ,WAAW;AAAA,gBACb;AAAA,gBACD,UAAA;AAAA,kBAAA;AAAA,kBAEyB;AAAA,kBAAU;AAAA,gBAAA;AAAA,cAAA;AAAA,YACpC;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;ACvZA,SAAwB+B,GAAkB;AAAA,EACxC,MAAAC,IAAO;AAAA,EACP,aAAAC,IAAc;AAAA,EACd,WAAAC,IAAY;AAAA,EACZ,MAAAC,IAAO;AAAA,EACP,UAAAC,IAAW;AACb,GAAG;AA0BK,QAAAC,IAxBa;AAAA,IACjB,OAAO;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,eAAe;AAAA,MACf,YAAY;AAAA,IACd;AAAA,IACA,QAAQ;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,eAAe;AAAA,MACf,YAAY;AAAA,IACd;AAAA,IACA,OAAO;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,eAAe;AAAA,MACf,YAAY;AAAA,IACd;AAAA,EAAA,EAGwBF,CAAI;AAG5B,SAAA,gBAAAnC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,QACL,UAAAoC;AAAA,QACA,KAAK;AAAA,QACL,OAAO;AAAA,QACP,OAAOC,EAAO;AAAA,QACd,QAAQA,EAAO;AAAA,QACf,UAAU;AAAA,QACV,QAAQD,MAAa,UAAU,OAAO;AAAA,QACtC,eAAe;AAAA,MACjB;AAAA,MAGA,UAAA;AAAA,QAAA,gBAAAnC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,UAAU;AAAA,cACV,KAAK;AAAA,cACL,OAAO;AAAA,cACP,OAAO;AAAA,cACP,QAAQ;AAAA,cACR,aAAa;AAAA,cACb,aAAa,KAAKoC,EAAO,KAAK,MAAMA,EAAO,MAAM;AAAA,cACjD,aAAa,eAAeJ,CAAW;AAAA,cACvC,SAAS;AAAA,YACX;AAAA,UAAA;AAAA,QACF;AAAA,QAGA,gBAAAhC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,UAAU;AAAA,cACV,KAAK;AAAA,cACL,OAAO;AAAA,cACP,OAAO;AAAA,cACP,QAAQ;AAAA,cACR,aAAa;AAAA,cACb,aAAa,KAAKoC,EAAO,KAAK,MAAMA,EAAO,MAAM;AAAA,cACjD,aAAa;AAAA,YACf;AAAA,UAAA;AAAA,QACF;AAAA,QAGA,gBAAApC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,UAAU;AAAA,cACV,KACEkC,MAAS,UACL,SACAA,MAAS,WACT,SACA;AAAA,cACN,OACEA,MAAS,UACL,UACAA,MAAS,WACT,UACA;AAAA,cACN,OACEA,MAAS,UAAU,UAAUA,MAAS,WAAW,UAAU;AAAA,cAC7D,WAAW;AAAA,cACX,iBAAiB;AAAA,cACjB,WAAW;AAAA,YACb;AAAA,YAEA,UAAA,gBAAAlC;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAO;AAAA,kBACL,UAAUoC,EAAO;AAAA,kBACjB,YAAYA,EAAO;AAAA,kBACnB,eAAeA,EAAO;AAAA,kBACtB,eAAe;AAAA,kBACf,OAAOH;AAAA,kBACP,YAAY;AAAA,kBACZ,YAAY;AAAA,kBACZ,YAAY;AAAA,gBACd;AAAA,gBAEC,UAAAF;AAAA,cAAA;AAAA,YACH;AAAA,UAAA;AAAA,QACF;AAAA,QAGA,gBAAA/B;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,UAAU;AAAA,cACV,KAAK;AAAA,cACL,OAAO;AAAA,cACP,OAAOoC,EAAO;AAAA,cACd,QAAQA,EAAO;AAAA,cACf,YACE;AAAA,cACF,eAAe;AAAA,YACjB;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;ACrIA,MAAMC,KAAW;AAsBjB,SAAwBC,GAAU;AAAA,EAChC,OAAAC,IAAQ;AAAA,EACR,UAAAC,IAAW;AAAA,EACX,MAAAC;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,OAAAC,IAAQ;AAAA,EACR,QAAAC;AAAA,EACA,YAAAC,IAAa;AAAA,EACb,kBAAAC,IAAmB;AAAA,EACnB,qBAAAC,IAAsB;AAAA,EACtB,kBAAAC;AAAA,EACA,SAAAC,IAAU;AACZ,GAAG;AACD,QAAM,CAACC,GAAOC,CAAQ,IAAI9E,EAAS,EAAE,GAC/B,CAAC+E,GAAUC,CAAW,IAAIhF,EAAS,EAAE,GACrC,CAACiF,GAAcC,CAAe,IAAIlF,EAAS,EAAK,GAChD,CAACmF,GAASC,CAAU,IAAIpF,EAAS,IAAI,GAErCqF,IAAe,CAAClD,MAAM;AAEtB,IADJA,EAAE,eAAe,GACb,GAAC0C,KAAS,CAACE,KAAYV,OAC3BD,KAAA,QAAAA,EAAUS,GAAOE;AAAA,EAAQ,GAGrBO,IAAYT,KAASE,KAAY,CAACV,GAGlCX,IAAc,0BACd6B,IAAa,gBAEbC,IACH,gBAAA/D,EAAA,OAAA,EAAI,OAAO;AAAA,IACV,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,SAAS;AAAA,IACT,WAAW;AAAA,IACX,UAAU;AAAA,IACV,UAAU;AAAA,EAGV,GAAA,UAAA;AAAA,IAAA,gBAAAC,EAAC,SAAI,OAAO;AAAA,MACV,UAAU;AAAA,MACV,KAAK;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,YAAY,gDAAgDgC,CAAW;AAAA,MACvE,SAAS;AAAA,IAAA,GACR;AAAA,IAGH,gBAAAhC,EAAC,OAAI,EAAA,OAAO,EAAE,WAAW,UAAU,cAAc,GAC9C,GAAA,UAAAyC,KAGG,gBAAA1C,EAAAgE,GAAA,EAAA,UAAA;AAAA,MAAA,gBAAA/D,EAAC,SAAI,OAAO;AAAA,QACV,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,gBAAgB;AAAA,QAChB,SAAS;AAAA,QACT,cAAc;AAAA,QACd,YAAY;AAAA,QACZ,cAAc;AAAA,MAEd,GAAA,UAAA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAKqC;AAAA,UACL,KAAKE;AAAA,UACL,OAAO,EAAE,QAAQ,IAAI,SAAS,QAAQ;AAAA,QAAA;AAAA,MAAA,GAE1C;AAAA,MACCC,KACE,gBAAAxC,EAAA,KAAA,EAAE,OAAO;AAAA,QACR,UAAU;AAAA,QACV,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc;AAAA,MAAA,GACZ,UAASwC,GAAA;AAAA,IAAA,EAAA,CAEjB,EAEJ,CAAA;AAAA,IAEA,gBAAAzC,EAAC,QAAK,EAAA,UAAU4D,GAEd,UAAA;AAAA,MAAA,gBAAA5D,EAAC,OAAI,EAAA,OAAO,EAAE,cAAc,GACzB,GAAA,UAAA;AAAA,QACC+C,KAAA,gBAAA9C,EAAC,WAAM,OAAO;AAAA,UACZ,SAAS;AAAA,UACT,UAAU;AAAA,UACV,YAAY;AAAA,UACZ,OAAO;AAAA,UACP,cAAc;AAAA,UACd,YAAY;AAAA,QAAA,GACX,UAAK,SAAA;AAAA,QAEV,gBAAAD,EAAC,OAAI,EAAA,OAAO,EAAE,UAAU,YAAY,SAAS,QAAQ,YAAY,SAAA,GAC/D,UAAA;AAAA,UAAC,gBAAAC,EAAAgE,IAAA,EAAK,MAAM,IAAI,OAAO;AAAA,YACrB,UAAU;AAAA,YACV,MAAM;AAAA,YACN,OAAOP,MAAY,UAAU,QAAQI,CAAU,WAAW;AAAA,YAC1D,eAAe;AAAA,YACf,YAAY;AAAA,UAAA,GACX;AAAA,UACH,gBAAA7D;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,OAAOmD;AAAA,cACP,UAAU,CAAC1C,MAAM2C,EAAS3C,EAAE,OAAO,KAAK;AAAA,cACxC,aAAasC;AAAA,cACb,UAAQ;AAAA,cACR,WAAS;AAAA,cACT,cAAa;AAAA,cACb,OAAO;AAAA,gBACL,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,UAAU;AAAA,gBACV,QAAQ;AAAA,gBACR,aAAaU,MAAY,UAAUzB,IAAc;AAAA,gBACjD,cAAc;AAAA,gBACd,iBAAiByB,MAAY,UAAU,2BAA2B;AAAA,gBAClE,OAAO;AAAA,gBACP,YAAY;AAAA,gBACZ,SAAS;AAAA,gBACT,YAAY;AAAA,gBACZ,WAAWA,MAAY,UAAU,kBAAkBI,CAAU,WAAW;AAAA,cAC1E;AAAA,cACA,SAAS,MAAMH,EAAW,OAAO;AAAA,cACjC,QAAQ,MAAMA,EAAW,IAAI;AAAA,YAAA;AAAA,UAC/B;AAAA,QAAA,GACF;AAAA,MAAA,GACF;AAAA,wBAGC,OAAI,EAAA,OAAO,EAAE,cAAc,EACzB,GAAA,UAAA;AAAA,QACCZ,KAAA,gBAAA9C,EAAC,WAAM,OAAO;AAAA,UACZ,SAAS;AAAA,UACT,UAAU;AAAA,UACV,YAAY;AAAA,UACZ,OAAO;AAAA,UACP,cAAc;AAAA,UACd,YAAY;AAAA,QAAA,GACX,UAAQ,YAAA;AAAA,QAEb,gBAAAD,EAAC,OAAI,EAAA,OAAO,EAAE,UAAU,YAAY,SAAS,QAAQ,YAAY,SAAA,GAC/D,UAAA;AAAA,UAAC,gBAAAC,EAAAiE,IAAA,EAAK,MAAM,IAAI,OAAO;AAAA,YACrB,UAAU;AAAA,YACV,MAAM;AAAA,YACN,OAAOR,MAAY,aAAa,QAAQI,CAAU,WAAW;AAAA,YAC7D,eAAe;AAAA,YACf,YAAY;AAAA,UAAA,GACX;AAAA,UACH,gBAAA7D;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAMuD,IAAe,SAAS;AAAA,cAC9B,OAAOF;AAAA,cACP,UAAU,CAAC5C,MAAM6C,EAAY7C,EAAE,OAAO,KAAK;AAAA,cAC3C,aAAauC;AAAA,cACb,UAAQ;AAAA,cACR,cAAa;AAAA,cACb,OAAO;AAAA,gBACL,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,UAAU;AAAA,gBACV,QAAQ;AAAA,gBACR,aAAaS,MAAY,aAAazB,IAAc;AAAA,gBACpD,cAAc;AAAA,gBACd,iBAAiByB,MAAY,aAAa,2BAA2B;AAAA,gBACrE,OAAO;AAAA,gBACP,YAAY;AAAA,gBACZ,SAAS;AAAA,gBACT,YAAY;AAAA,gBACZ,WAAWA,MAAY,aAAa,kBAAkBI,CAAU,WAAW;AAAA,cAC7E;AAAA,cACA,SAAS,MAAMH,EAAW,UAAU;AAAA,cACpC,QAAQ,MAAMA,EAAW,IAAI;AAAA,YAAA;AAAA,UAC/B;AAAA,UACA,gBAAA1D;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,SAAS,MAAMwD,EAAgB,CAACD,CAAY;AAAA,cAC5C,OAAO;AAAA,gBACL,UAAU;AAAA,gBACV,OAAO;AAAA,gBACP,YAAY;AAAA,gBACZ,QAAQ;AAAA,gBACR,SAAS;AAAA,gBACT,QAAQ;AAAA,gBACR,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,YAAY;AAAA,gBACZ,YAAY;AAAA,gBACZ,cAAc;AAAA,cAChB;AAAA,cACA,UAAU;AAAA,cACV,cAAc,CAAC9C,MAAM;AAAI,gBAAAA,EAAA,cAAc,MAAM,QAAQ;AAAA,cAAqB;AAAA,cAC1E,cAAc,CAACA,MAAM;AAAI,gBAAAA,EAAA,cAAc,MAAM,QAAQ;AAAA,cAAqB;AAAA,cAEzE,UAAA8C,sBAAgBW,IAAO,EAAA,MAAM,IAAI,IAAK,gBAAAlE,EAACmE,IAAI,EAAA,MAAM,GAAI,CAAA;AAAA,YAAA;AAAA,UACxD;AAAA,QAAA,GACF;AAAA,MAAA,GACF;AAAA,MAGClB,uBACE,OAAI,EAAA,OAAO,EAAE,WAAW,SAAS,cAAc,EAC9C,GAAA,UAAA,gBAAAjD;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,SAASiD;AAAA,UACT,OAAO;AAAA,YACL,YAAY;AAAA,YACZ,QAAQ;AAAA,YACR,SAAS;AAAA,YACT,UAAU;AAAA,YACV,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,YAAY;AAAA,YACZ,YAAY;AAAA,UACd;AAAA,UACA,cAAc,CAACxC,MAAM;AAAI,YAAAA,EAAA,cAAc,MAAM,QAAQ;AAAA,UAAsB;AAAA,UAC3E,cAAc,CAACA,MAAM;AAAI,YAAAA,EAAA,cAAc,MAAM,QAAQ;AAAA,UAAqB;AAAA,UAC3E,UAAA;AAAA,QAAA;AAAA,MAAA,GAGH;AAAA,MAIDmC,KACE,gBAAA5C,EAAA,OAAA,EAAI,OAAO;AAAA,QACV,UAAU;AAAA,QACV,OAAO;AAAA,QACP,WAAW;AAAA,QACX,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,cAAc;AAAA,QACd,WAAW;AAAA,QACX,YAAY;AAAA,MAAA,GACV,UAAM4C,GAAA;AAAA,MAIZ,gBAAA5C;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,UAAU,CAAC4D;AAAA,UACX,OAAO;AAAA,YACL,OAAO;AAAA,YACP,SAAS;AAAA,YACT,WAAW;AAAA,YACX,YAAYA,IAAY,oBAAoB;AAAA,YAC5C,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,cAAc;AAAA,YACd,UAAU;AAAA,YACV,YAAY;AAAA,YACZ,YAAY;AAAA,YACZ,QAAQA,IAAY,YAAY;AAAA,YAChC,YAAY;AAAA,YACZ,SAAS;AAAA,YACT,YAAY;AAAA,YACZ,gBAAgB;AAAA,YAChB,KAAK;AAAA,UACP;AAAA,UACA,cAAc,CAACnD,MAAM;AACnB,YAAImD,MACAnD,EAAA,cAAc,MAAM,UAAU,QAC9BA,EAAA,cAAc,MAAM,YAAY;AAAA,UAEtC;AAAA,UACA,cAAc,CAACA,MAAM;AACjB,YAAAA,EAAA,cAAc,MAAM,UAAU,KAC9BA,EAAA,cAAc,MAAM,YAAY;AAAA,UACpC;AAAA,UACA,aAAa,CAACA,MAAM;AACd,YAAAmD,MAAanD,EAAA,cAAc,MAAM,YAAY;AAAA,UACnD;AAAA,UACA,WAAW,CAACA,MAAM;AACZ,YAAAmD,MAAanD,EAAA,cAAc,MAAM,YAAY;AAAA,UACnD;AAAA,UAEC,UAAAkC,IAAU,gBACP,gBAAA5C,EAAAgE,GAAA,EAAA,UAAA;AAAA,YAAA;AAAA,YAEA,gBAAA/D,EAACoE,IAAW,EAAA,MAAM,GAAI,CAAA;AAAA,UAAA,GACxB;AAAA,QAAA;AAAA,MAEJ;AAAA,IAAA,GACF;AAAA,IAGCvB,KAEG,gBAAA9C,EAAAgE,GAAA,EAAA,UAAA;AAAA,MAAA,gBAAAhE,EAAC,SAAI,OAAO;AAAA,QACV,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,KAAK;AAAA,QACL,QAAQ;AAAA,MAER,GAAA,UAAA;AAAA,QAAC,gBAAAC,EAAA,OAAA,EAAI,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,YAAY,gBAAmB,EAAA,CAAA;AAAA,QACjE,gBAAAA,EAAC,UAAK,OAAO,EAAE,UAAU,kBAAkB,OAAO,oBAAoB,GAAG,UAAE,KAAA,CAAA;AAAA,QAC3E,gBAAAA,EAAC,OAAI,EAAA,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,YAAY,gBAAmB,EAAA,CAAA;AAAA,MAAA,GACnE;AAAA,MACA,gBAAAA,EAAC,SAAI,OAAO;AAAA,QACV,WAAW;AAAA,QACX,UAAU;AAAA,QACV,OAAO;AAAA,MAAA,GACL,UAAO6C,GAAA;AAAA,IAAA,GACb;AAAA,EAEJ,EAAA,CAAA;AAGE,SAAAK,IAAgBY,IAGlB,gBAAA9D,EAAC,SAAI,OAAO;AAAA,IACV,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,EAAA,GAER,UACH8D,EAAA,CAAA;AAEJ;AC3UA,SAAwBO,GAAU;AAAA,EAChC,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,cAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,UAAAC,IAAW;AAAA,EACX,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,gBAAAC,IAAiB;AAAA,EACjB,WAAWC;AAAA,EACX,mBAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,mBAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,OAAAC;AACF,GAAG;AACD,QAAMC,IAAeN,MAAwB,QACvC,CAACO,GAAmBC,CAAoB,IAAIjH,EAAS,EAAK,GAC1DkH,IAAYH,IAAeN,IAAsBO,GAEjDG,IAAeC;AAAA,IACnB,CAACC,MAAQ;AACP,YAAMC,IAAO,OAAOD,KAAQ,aAAaA,EAAIH,CAAS,IAAIG;AAC1D,MAAKN,KAAcE,EAAqBK,CAAI,GAC5CZ,KAAA,QAAAA,EAAoBY;AAAA,IACtB;AAAA,IACA,CAACP,GAAcG,GAAWR,CAAiB;AAAA,EAAA,GAGvCa,IAAe/G,EAAO,IAAI,GAC1B,CAACgH,GAAgBC,CAAiB,IAAIzH,EAAS,CAAC,GAChD,CAAC0H,GAAOC,CAAQ,IAAI3H,EAASkG,CAAY,GACzC,CAAC0B,GAAUC,CAAW,IAAI7H,EAAS,EAAK,GACxC,CAAC8H,GAAaC,CAAc,IAAI/H,EAAS,EAAK,GAC9CgI,IAAYxH,EAAO,CAAC,GACpByH,IAAgBzH,EAAO,CAAC;AAG9B,EAAA0H,GAAgB,MAAM;AACpB,QAAI,CAACX,EAAa;AAAS;AACrB,UAAAY,IAAIZ,EAAa,QAAQ;AAC/B,IAAAE,EAAkBU,CAAC,GACf,CAACL,KAAeK,IAAI,MAClBhC,KAAgB,QAClBwB,EAAS,KAAK,MAAMQ,IAAIhC,CAAY,CAAC,GAEvC4B,EAAe,EAAI;AAAA,EAEvB,GAAG,CAAE,CAAA,GAGLK,EAAU,MAAM;AACd,QAAI,CAACb,EAAa;AAAS;AAC3B,UAAMc,IAAK,IAAI,eAAe,CAACC,MAAY;AACzC,iBAAWC,KAASD;AACA,QAAAb,EAAAc,EAAM,YAAY,KAAK;AAAA,IAC3C,CACD;AACE,WAAAF,EAAA,QAAQd,EAAa,OAAO,GACxB,MAAMc,EAAG;EAClB,GAAG,CAAE,CAAA;AAGL,QAAMG,IAAelC,KAAY,OAAO,KAAK,MAAMkB,IAAiBlB,CAAQ,IAAIF,GAC1EqC,IAAelC,KAAY,OAAO,KAAK,MAAMiB,IAAiBjB,CAAQ,IAAIF,GAC1EqC,IACJ9B,MAAsBD,MAAiB,SAAS,IAAI6B,IAAe,KAE/DG,IAAkBvB;AAAA,IACtB,CAACjF,MAAM;AACL,MAAAA,EAAE,eAAe,GACjB6F,EAAU,UAAU7F,EAAE,SACR8F,EAAA,UAAUf,IAAYV,IAAiBkB,GACrDG,EAAY,EAAI;AAAA,IAClB;AAAA,IACA,CAACH,GAAOR,GAAWV,CAAc;AAAA,EAAA;AAGnC,EAAA4B,EAAU,MAAM;AACd,QAAI,CAACR;AAAU;AAET,UAAAgB,IAAkB,CAACzG,MAAM;AACvB,YAAA0G,IAAQ1G,EAAE,UAAU6F,EAAU,SAC9Bc,IAAWb,EAAc,UAAUY;AAMrC,WAJoBlC,MAAiB,UAAUA,MAAiB,WAI7CmC,IAAWJ,GAA4B;AAC5D,QAAKxB,KAAWC,EAAa,EAAI;AACjC;AAAA,MACF;AAQI,MAAAD,KAAWC,EAAa,EAAK,GACxBQ,EAAA,KAAK,IAAI,KAAK,IAAImB,GAAUN,CAAY,GAAGC,CAAY,CAAC;AAAA,IAAA,GAG7DM,IAAgB,MAAMlB,EAAY,EAAK;AAEpC,oBAAA,iBAAiB,aAAae,CAAe,GAC7C,SAAA,iBAAiB,WAAWG,CAAa,GACzC,SAAA,KAAK,MAAM,aAAa,QACxB,SAAA,KAAK,MAAM,SAAS,cAEtB,MAAM;AACF,eAAA,oBAAoB,aAAaH,CAAe,GAChD,SAAA,oBAAoB,WAAWG,CAAa,GAC5C,SAAA,KAAK,MAAM,aAAa,IACxB,SAAA,KAAK,MAAM,SAAS;AAAA,IAAA;AAAA,EAC/B,GACC;AAAA,IACDnB;AAAA,IAAUV;AAAA,IAAWsB;AAAA,IAAcC;AAAA,IAAcC;AAAA,IACjDlB;AAAA,IAAgBX;AAAA,IAAcF;AAAA,IAAcQ;AAAA,EAAA,CAC7C;AAEK,QAAA6B,IAAoB5B,EAAY,MAAM;AAC1C,IAAIT,MAAiB,UACNQ,EAAA,CAAC,MAAM,CAAC,CAAC;AAAA,EACxB,GACC,CAACA,GAAcR,CAAY,CAAC,GAEzBsC,IAAkB/B,IAAYV,IAAiBkB;AAGnD,SAAA,gBAAAjG;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAK8F;AAAA,MACL,OAAO;AAAA,QACL,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,UAAU;AAAA,QACV,GAAGT;AAAA,MACL;AAAA,MAGE,UAAA;AAAA,SAAkBmC,IAAA,KAAK,CAAC/B,MACxB,gBAAAxF;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,OAAOuH;AAAA,cACP,YAAY;AAAA,cACZ,UAAU;AAAA,cACV,YAAYrB,IAAW,SAAS;AAAA,cAChC,QAAQ;AAAA,YACV;AAAA,YAEC,WAACV,KAAalB;AAAA,UAAA;AAAA,QACjB;AAAA,QAIF,gBAAAvE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,aAAakH;AAAA,YACb,eAAeK;AAAA,YACf,OAAO;AAAA,cACL,OAAO,GAAGnC,CAAY;AAAA,cACtB,YAAY;AAAA,cACZ,QAAQ;AAAA,cACR,SAAS;AAAA,cACT,YAAY;AAAA,cACZ,gBAAgB;AAAA,cAChB,UAAU;AAAA,cACV,QAAQ;AAAA,YACV;AAAA,YAGA,UAAA;AAAA,cAAA,gBAAAnF;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO;AAAA,oBACL,OAAO;AAAA,oBACP,QAAQ;AAAA,oBACR,YAAYkG,IACR,mCACA;AAAA,oBACJ,YAAY;AAAA,kBACd;AAAA,gBAAA;AAAA,cACF;AAAA,cAEA,gBAAAlG;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO;AAAA,oBACL,UAAU;AAAA,oBACV,KAAK;AAAA,oBACL,MAAM;AAAA,oBACN,WAAW;AAAA,oBACX,OAAO;AAAA,oBACP,QAAQ;AAAA,oBACR,cAAc;AAAA,oBACd,YAAYkG,IACR,mCACA;AAAA,oBACJ,SAASA,IAAW,IAAI;AAAA,oBACxB,YAAY;AAAA,kBACd;AAAA,kBACA,WAAU;AAAA,gBAAA;AAAA,cACZ;AAAA,gCACC,SAAO,EAAA,UAAA;AAAA;AAAA,WAEN;AAAA,YAAA;AAAA,UAAA;AAAA,QACJ;AAAA,QAGA,gBAAAlG;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,MAAM;AAAA,cACN,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAQ;AAAA,YACV;AAAA,YAEC,UAAAuE;AAAA,UAAA;AAAA,QACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const j=require("../UploadInteraction.cjs.js"),e=require("react/jsx-runtime"),y=require("react"),m=require("lucide-react"),z=require("../IntegrationCard.cjs.js"),w="var(--font-sans)",W={fontFamily:w},R={fontSize:20,fontWeight:600,fontStyle:"normal",fontFamily:w,color:"var(--grey-strong)",margin:0,lineHeight:"normal"},L={fontSize:13,fontWeight:400,fontStyle:"normal",color:"var(--color-text-secondary)",fontFamily:w,margin:"4px 0 0",lineHeight:"140%"},H={display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:16,marginTop:24},E=[{providerName:"Five9",description:"Cloud contact center platform for voice and digital channels",status:"connected",railColor:"#5E88B0"},{providerName:"Twilio Flex",description:"Programmable contact center with custom workflows",status:"available",railColor:"#9B7AA8"},{providerName:"Zoom Phone",description:"Cloud phone system with recording capabilities",status:"coming-soon",railColor:"#6B7C93"}],C=({integrations:n=E,onConfigure:a})=>e.jsxs("div",{style:W,children:[e.jsx("h2",{style:R,children:"Connect Data Source"}),e.jsx("p",{style:L,children:"Choose your preferred platforms to synchronise data."}),e.jsx("div",{style:H,children:n.map(o=>e.jsx(z.IntegrationCard,{providerName:o.providerName,description:o.description,status:o.status,railColor:o.railColor,logoUrl:o.logoUrl,icon:o.icon,onConfigure:()=>a==null?void 0:a(o)},o.providerName))})]}),p="var(--font-sans)",B={fontFamily:p},A={fontSize:20,fontWeight:600,fontStyle:"normal",fontFamily:p,color:"var(--grey-strong)",margin:0,lineHeight:"normal"},D={fontSize:13,fontWeight:400,fontStyle:"normal",color:"var(--color-text-secondary)",fontFamily:p,margin:"4px 0 0",lineHeight:"140%"},M={display:"flex",alignItems:"center",gap:12,marginTop:24},N={display:"flex",alignItems:"center",flex:1,height:44,padding:"0 14px",borderRadius:10,border:"1px solid var(--color-input-border)",background:"var(--grey-white)",boxSizing:"border-box",gap:8},U={flexShrink:0,color:"var(--color-text-secondary)"},$={display:"inline-flex",alignItems:"center",gap:4,padding:"4px 10px",borderRadius:6,background:"var(--hover-warm)",fontSize:14,fontWeight:500,fontFamily:p,color:"var(--grey-strong)",whiteSpace:"nowrap"},G={cursor:"pointer",fontSize:16,lineHeight:1,color:"var(--color-text-secondary)",marginLeft:2},q={flex:1,border:"none",outline:"none",fontSize:14,fontWeight:400,fontFamily:p,color:"var(--grey-strong)",background:"transparent",height:"100%"},P={display:"flex",height:44,padding:"0 24px",justifyContent:"center",alignItems:"center",borderRadius:10,background:"var(--grey-strong)",fontSize:14,fontWeight:600,fontFamily:p,color:"var(--grey-white)",border:"none",cursor:"pointer",transition:"var(--transition-fast)",outline:"none",flexShrink:0},O={marginTop:8,border:"1px solid var(--border)",borderRadius:10,overflow:"hidden",background:"var(--grey-white)"},_={display:"flex",alignItems:"center",gap:12,padding:"14px 16px",cursor:"pointer",transition:"var(--transition-fast)",borderBottom:"1px solid var(--border-subtle)"},K=n=>({width:40,height:40,borderRadius:9999,background:n||"var(--hover-warm)",display:"flex",alignItems:"center",justifyContent:"center",fontSize:14,fontWeight:600,fontFamily:p,color:"var(--color-green)",flexShrink:0}),V={fontSize:14,fontWeight:600,fontFamily:p,color:"var(--grey-strong)",margin:0,lineHeight:"120%"},Z={fontSize:13,fontWeight:400,fontFamily:p,color:"var(--color-text-secondary)",margin:"2px 0 0",lineHeight:"140%"},J=[{name:"Alex Rivera",email:"alex.rivera@company.com",initials:"AR"},{name:"Alexandra Smith",email:"a.smith@design.co",initials:"AS"}],F=({suggestions:n=J,onInvite:a})=>{const[o,d]=y.useState(""),[r,c]=y.useState([]),[l,u]=y.useState(!1),g=n.filter(t=>!r.includes(t.email)&&(t.name.toLowerCase().includes(o.toLowerCase())||t.email.toLowerCase().includes(o.toLowerCase()))),h=t=>{t&&!r.includes(t)&&(c([...r,t]),d(""))},f=t=>{c(r.filter(x=>x!==t))},b=t=>{t.key==="Enter"&&o.includes("@")&&(t.preventDefault(),h(o.trim())),t.key==="Backspace"&&!o&&r.length&&f(r[r.length-1])},S=()=>{r.length&&(a==null||a(r))};return e.jsxs("div",{style:B,children:[e.jsx("h2",{style:A,children:"Add Teammates"}),e.jsx("p",{style:D,children:"Collaborate with your team to accelerate your workflow."}),e.jsxs("div",{style:M,children:[e.jsxs("div",{style:{...N,borderColor:l?"var(--color-green)":"var(--color-input-border)",boxShadow:l?"0 0 0 3px var(--color-green-ring)":"none"},children:[e.jsx(m.Search,{size:18,style:U}),r.map(t=>e.jsxs("span",{style:$,children:[t,e.jsx("span",{style:G,onClick:()=>f(t),children:"×"})]},t)),e.jsx("input",{type:"text",placeholder:r.length?"":"Search by name or email...",value:o,onChange:t=>d(t.target.value),onFocus:()=>u(!0),onBlur:()=>setTimeout(()=>u(!1),150),onKeyDown:b,style:q})]}),e.jsx("button",{style:P,onClick:S,onMouseEnter:t=>{t.currentTarget.style.opacity="0.85"},onMouseLeave:t=>{t.currentTarget.style.opacity="1"},children:"Invite"})]}),l&&g.length>0&&e.jsx("div",{style:O,children:g.map((t,x)=>e.jsxs("div",{style:{..._,...x===g.length-1?{borderBottom:"none"}:{}},onMouseDown:()=>h(t.email),onMouseEnter:v=>{v.currentTarget.style.background="var(--hover-warm-subtle)"},onMouseLeave:v=>{v.currentTarget.style.background="var(--grey-white)"},children:[e.jsx("div",{style:K(),children:t.initials}),e.jsxs("div",{children:[e.jsx("p",{style:V,children:t.name}),e.jsx("p",{style:Z,children:t.email})]})]},t.email))})]})},s="var(--font-sans)",Q=[{id:"workspace",label:"Workspace Name",description:"Give your project a title.",icon:m.Briefcase},{id:"interaction",label:"Add Interaction",description:"Connect data to see patterns.",icon:m.MessageSquare},{id:"connect",label:"Connect Data",description:"Link your platform for auto-evaluation.",icon:m.Database},{id:"invite",label:"Invite Team",description:"Add members to collaborate.",icon:m.Users},{id:"concepts",label:"Learn Concepts",description:"Explore conditions and evidence.",icon:m.BookOpen},{id:"scope",label:"Define Scope",description:"Customize evaluation signals.",icon:m.SlidersHorizontal}],X={fontFamily:s,background:"var(--grey-white)",minHeight:"100vh",boxSizing:"border-box"},Y={padding:"24px 48px",borderBottom:"1px solid var(--border)",background:"var(--grey-white)"},ee={display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8},te={fontSize:24,fontWeight:600,fontStyle:"normal",fontFamily:s,color:"var(--grey-strong)",margin:0,lineHeight:"normal"},oe={fontSize:14,fontWeight:400,lineHeight:"140%",color:"var(--text-muted)",margin:"4px 0 0",fontFamily:s},re={display:"flex",alignItems:"center",gap:12},ne={display:"flex",height:36,padding:"0 16px",justifyContent:"center",alignItems:"center",borderRadius:10,background:"transparent",border:"1px solid var(--border-strong)",fontSize:14,fontWeight:500,fontFamily:s,color:"var(--text-base)",cursor:"pointer",transition:"var(--transition-fast)",outline:"none"},ie={display:"flex",height:36,padding:"0 20px",justifyContent:"center",alignItems:"center",borderRadius:10,background:"var(--grey-strong)",fontSize:14,fontWeight:600,fontFamily:s,color:"var(--grey-white)",border:"none",cursor:"pointer",transition:"var(--transition-fast)",outline:"none"},ae={width:"100%",height:6,borderRadius:3,background:"var(--border)",overflow:"hidden",marginTop:12},se=n=>({width:`${n}%`,height:"100%",borderRadius:3,background:"var(--color-green)",transition:"width 0.4s ease-out"}),le={display:"flex",flex:1,minHeight:"calc(100vh - 140px)"},ce={width:312,minWidth:312,borderRight:"1px solid var(--border)",padding:"24px 24px",background:"var(--grey-white)",boxSizing:"border-box"},de={fontSize:13,fontWeight:500,color:"var(--text-muted)",fontFamily:s,margin:"0 0 12px"},ge={display:"flex",width:264,flexDirection:"column",alignItems:"flex-start",gap:8,alignSelf:"stretch"},he=n=>({display:"flex",alignItems:"center",gap:4,padding:"8px 4px",cursor:"pointer",transition:"var(--transition-fast)",background:n?"var(--hover-warm)":"var(--grey-white)",borderRadius:8,alignSelf:"stretch"}),ye={width:40,height:40,flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center"},pe={fontSize:14,fontWeight:600,fontStyle:"normal",color:"var(--grey-strong)",fontFamily:s,margin:0,lineHeight:"120%"},ue={fontSize:12,fontWeight:400,color:"var(--text-muted)",fontFamily:s,margin:"2px 0 0",lineHeight:1.3},me={flex:1,padding:"40px 48px",background:"var(--grey-white)",boxSizing:"border-box"},xe={fontSize:20,fontWeight:600,fontStyle:"normal",fontFamily:s,color:"var(--grey-strong)",margin:0,lineHeight:"normal"},fe={fontSize:13,fontWeight:400,fontStyle:"normal",color:"var(--color-text-secondary)",fontFamily:s,margin:"4px 0 0",lineHeight:"140%"},k={fontSize:16,fontWeight:600,fontStyle:"normal",color:"var(--grey-strong)",fontFamily:s,lineHeight:"normal",margin:0,display:"block"},ve={width:"100%",height:44,padding:"0 14px",borderRadius:6,border:"1px solid var(--color-input-border)",fontSize:16,fontWeight:400,fontStyle:"normal",lineHeight:"normal",fontFamily:s,color:"var(--color-text-secondary)",background:"var(--grey-white)",boxSizing:"border-box",outline:"none",transition:"var(--transition-fast)"},be={position:"relative",marginTop:8},Se={width:"100%",minHeight:160,padding:"12px 14px 28px 14px",borderRadius:6,border:"1px solid var(--color-input-border)",fontSize:16,fontWeight:400,fontStyle:"normal",lineHeight:"normal",fontFamily:s,color:"var(--color-text-secondary)",background:"var(--grey-white)",boxSizing:"border-box",outline:"none",resize:"vertical",lineHeight:"140%",transition:"var(--transition-fast)"},je={position:"absolute",bottom:10,right:14,fontSize:12,fontWeight:400,color:"var(--text-faint)",fontFamily:s,margin:0,pointerEvents:"none"};function we(){return e.jsx("div",{style:{width:24,height:24,borderRadius:6,background:"var(--grey-strong)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:e.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:e.jsx("path",{d:"M2.5 7.5L5.5 10.5L11.5 4",stroke:"var(--grey-white)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})}function ke(){return e.jsxs("div",{style:{width:24,height:24,borderRadius:"50%",border:"2px solid var(--grey-muted)",background:"transparent",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,gap:2,boxSizing:"border-box"},children:[e.jsx("span",{style:{width:3,height:3,borderRadius:"50%",background:"var(--grey-muted)"}}),e.jsx("span",{style:{width:3,height:3,borderRadius:"50%",background:"var(--grey-muted)"}}),e.jsx("span",{style:{width:3,height:3,borderRadius:"50%",background:"var(--grey-muted)"}})]})}function Ce({step:n,isCompleted:a,isActive:o,onClick:d}){const[r,c]=y.useState(!1);return e.jsxs("div",{style:{...he(o),...r&&!o?{background:"var(--hover-warm-subtle)"}:{}},onClick:d,onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),children:[e.jsx("div",{style:ye,children:a?e.jsx(we,{}):e.jsx(ke,{})}),e.jsxs("div",{children:[e.jsx("p",{style:pe,children:n.label}),e.jsx("p",{style:ue,children:n.description})]})]})}function Fe({workspaceName:n,setWorkspaceName:a,description:o,setDescription:d,maxDescLength:r}){const[c,l]=y.useState(!1),[u,g]=y.useState(!1);return e.jsxs("div",{children:[e.jsx("h2",{style:xe,children:"Name of your workspace"}),e.jsx("p",{style:fe,children:"Tell us about the project or company you're organizing here."}),e.jsxs("div",{style:{marginTop:28},children:[e.jsx("label",{style:k,children:"Workspace Name"}),e.jsx("input",{type:"text",placeholder:"e.g. Acme Marketing",value:n,onChange:h=>a(h.target.value),onFocus:()=>l(!0),onBlur:()=>l(!1),style:{...ve,marginTop:8,borderColor:c?"var(--color-green)":"var(--color-input-border)",boxShadow:c?"0 0 0 3px var(--color-green-ring)":"none"}})]}),e.jsxs("div",{style:{marginTop:24},children:[e.jsx("label",{style:k,children:"Description"}),e.jsxs("div",{style:be,children:[e.jsx("textarea",{placeholder:"what's the goal of this workspace?",value:o,onChange:h=>{h.target.value.length<=r&&d(h.target.value)},onFocus:()=>g(!0),onBlur:()=>g(!1),style:{...Se,borderColor:u?"var(--color-green)":"var(--color-input-border)",boxShadow:u?"0 0 0 3px var(--color-green-ring)":"none"}}),e.jsxs("span",{style:je,children:[o.length,"/",r]})]})]})]})}const Te=({steps:n=Q,completedSteps:a=["workspace","invite"],initialActiveStep:o="workspace",onSaveNext:d,onRemindLater:r,onStepChange:c})=>{const[l,u]=y.useState(o),[g,h]=y.useState(""),[f,b]=y.useState(""),S=1e3,t=a.length,x=n.length,v=t/x*100,T=i=>{u(i),c==null||c(i)},I=()=>{d==null||d({stepId:l,workspaceName:g,description:f})};return e.jsxs("div",{style:X,children:[e.jsxs("div",{style:Y,children:[e.jsxs("div",{style:ee,children:[e.jsxs("div",{children:[e.jsx("h1",{style:te,children:"Getting started with Chordia"}),e.jsx("p",{style:oe,children:"Complete these steps to get the most out of Chordia."})]}),e.jsxs("div",{style:re,children:[e.jsx("button",{style:ne,onClick:r,onMouseEnter:i=>{i.currentTarget.style.background="var(--hover-warm-subtle)"},onMouseLeave:i=>{i.currentTarget.style.background="transparent"},children:"Remind me Later"}),e.jsx("button",{style:ie,onClick:I,onMouseEnter:i=>{i.currentTarget.style.opacity="0.85"},onMouseLeave:i=>{i.currentTarget.style.opacity="1"},children:"Save & Next"})]})]}),e.jsx("div",{style:ae,children:e.jsx("div",{style:se(v)})})]}),e.jsxs("div",{style:le,children:[e.jsxs("div",{style:ce,children:[e.jsxs("p",{style:de,children:[t," of ",x," steps completed"]}),e.jsx("div",{style:ge,children:n.map(i=>e.jsx(Ce,{step:i,isCompleted:a.includes(i.id),isActive:l===i.id,onClick:()=>T(i.id)},i.id))})]}),e.jsxs("div",{style:me,children:[l==="workspace"&&e.jsx(Fe,{workspaceName:g,setWorkspaceName:h,description:f,setDescription:b,maxDescLength:S}),l==="interaction"&&e.jsx(j.UploadInteraction,{}),l==="connect"&&e.jsx(C,{}),l==="invite"&&e.jsx(F,{})]})]})]})};exports.UploadEvaluate=j.UploadEvaluate;exports.UploadInteraction=j.UploadInteraction;exports.AddTeammates=F;exports.ConnectData=C;exports.GettingStarted=Te;
2
+ //# sourceMappingURL=onboarding.cjs.js.map