{"version":3,"file":"js/924-4dec7a9eacd31eed6ccb.js","mappings":"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","sources":["webpack://app/./app/javascript/components/ sync ^\\.\\/.*$","webpack://app/./app/javascript/components/CommissionCalculator.jsx","webpack://app/./app/javascript/components/analytics/MetricsDashboard.jsx","webpack://app/./app/javascript/components/analytics/StudentPerformance.jsx","webpack://app/./app/javascript/components/challenges/ChallengeInterface.jsx","webpack://app/./app/javascript/components/chat/AppLayout.jsx","webpack://app/./app/javascript/components/chat/ChatHistory.jsx","webpack://app/./app/javascript/components/chat/ChatInterface.jsx","webpack://app/./app/javascript/components/chat/ChatModal.jsx","webpack://app/./app/javascript/components/chat/ConversationContext.jsx","webpack://app/./app/javascript/components/chat/ConversationHeader.jsx","webpack://app/./app/javascript/components/chat/EmptyConversation.jsx","webpack://app/./app/javascript/components/chat/ErrorAlert.jsx","webpack://app/./app/javascript/components/chat/FileDisplay.jsx","webpack://app/./app/javascript/components/chat/FileStatusPoller.jsx","webpack://app/./app/javascript/components/chat/FileUpload.jsx","webpack://app/./app/javascript/components/chat/FooterInput.jsx","webpack://app/./app/javascript/components/chat/MainContent.jsx","webpack://app/./app/javascript/components/chat/Message.jsx","webpack://app/./app/javascript/components/chat/MessageList.jsx","webpack://app/./app/javascript/components/chat/MessageSkeleton.jsx","webpack://app/./app/javascript/components/chat/ModelSelector.jsx","webpack://app/./app/javascript/components/chat/ModelSettingsScreen.jsx","webpack://app/./app/javascript/components/chat/Sidebar.jsx","webpack://app/./app/javascript/components/chat/StudyAssistantInterface.jsx","webpack://app/./app/javascript/components/exam_materials/FileUploader.jsx","webpack://app/./app/javascript/components/quiz_generators/AnswerEditor.jsx","webpack://app/./app/javascript/components/quiz_generators/InspirationalQuote.jsx","webpack://app/./app/javascript/components/quiz_generators/QuestionEditor.jsx","webpack://app/./app/javascript/components/quiz_generators/QuizEditor.jsx","webpack://app/./app/javascript/components/quiz_generators/QuizProgress.jsx","webpack://app/./app/javascript/components/quizzes/AnswerOptions.jsx","webpack://app/./app/javascript/components/quizzes/QuizAttempt.jsx","webpack://app/./app/javascript/components/quizzes/QuizCompletionSummary.jsx","webpack://app/./app/javascript/components/quizzes/QuizTakingInterface.jsx","webpack://app/./app/javascript/components/study_plan/StudyPlanStatus.jsx","webpack://app/./app/javascript/components/token_usage/TokenUsageDisplay.jsx","webpack://app/./app/javascript/helpers.js"],"sourcesContent":["var map = {\n\t\"./CommissionCalculator\": 80232,\n\t\"./CommissionCalculator.jsx\": 80232,\n\t\"./analytics/MetricsDashboard\": 64656,\n\t\"./analytics/MetricsDashboard.jsx\": 64656,\n\t\"./analytics/StudentPerformance\": 23924,\n\t\"./analytics/StudentPerformance.jsx\": 23924,\n\t\"./challenges/ChallengeInterface\": 85020,\n\t\"./challenges/ChallengeInterface.jsx\": 85020,\n\t\"./chat/AppLayout\": 28268,\n\t\"./chat/AppLayout.jsx\": 28268,\n\t\"./chat/ChatHistory\": 70533,\n\t\"./chat/ChatHistory.jsx\": 70533,\n\t\"./chat/ChatInterface\": 62915,\n\t\"./chat/ChatInterface.jsx\": 62915,\n\t\"./chat/ChatModal\": 89479,\n\t\"./chat/ChatModal.jsx\": 89479,\n\t\"./chat/ConversationContext\": 15873,\n\t\"./chat/ConversationContext.jsx\": 15873,\n\t\"./chat/ConversationHeader\": 43005,\n\t\"./chat/ConversationHeader.jsx\": 43005,\n\t\"./chat/EmptyConversation\": 28474,\n\t\"./chat/EmptyConversation.jsx\": 28474,\n\t\"./chat/ErrorAlert\": 22191,\n\t\"./chat/ErrorAlert.jsx\": 22191,\n\t\"./chat/FileDisplay\": 8502,\n\t\"./chat/FileDisplay.jsx\": 8502,\n\t\"./chat/FileStatusPoller\": 27227,\n\t\"./chat/FileStatusPoller.jsx\": 27227,\n\t\"./chat/FileUpload\": 69755,\n\t\"./chat/FileUpload.jsx\": 69755,\n\t\"./chat/FooterInput\": 59220,\n\t\"./chat/FooterInput.jsx\": 59220,\n\t\"./chat/MainContent\": 24697,\n\t\"./chat/MainContent.jsx\": 24697,\n\t\"./chat/Message\": 62222,\n\t\"./chat/Message.jsx\": 62222,\n\t\"./chat/MessageList\": 41453,\n\t\"./chat/MessageList.jsx\": 41453,\n\t\"./chat/MessageSkeleton\": 78857,\n\t\"./chat/MessageSkeleton.jsx\": 78857,\n\t\"./chat/ModelSelector\": 4178,\n\t\"./chat/ModelSelector.jsx\": 4178,\n\t\"./chat/ModelSettingsScreen\": 20331,\n\t\"./chat/ModelSettingsScreen.jsx\": 20331,\n\t\"./chat/Sidebar\": 27994,\n\t\"./chat/Sidebar.jsx\": 27994,\n\t\"./chat/StudyAssistantInterface\": 89818,\n\t\"./chat/StudyAssistantInterface.jsx\": 89818,\n\t\"./exam_materials/FileUploader\": 24134,\n\t\"./exam_materials/FileUploader.jsx\": 24134,\n\t\"./quiz_generators/AnswerEditor\": 93548,\n\t\"./quiz_generators/AnswerEditor.jsx\": 93548,\n\t\"./quiz_generators/InspirationalQuote\": 80962,\n\t\"./quiz_generators/InspirationalQuote.jsx\": 80962,\n\t\"./quiz_generators/QuestionEditor\": 72398,\n\t\"./quiz_generators/QuestionEditor.jsx\": 72398,\n\t\"./quiz_generators/QuizEditor\": 39032,\n\t\"./quiz_generators/QuizEditor.jsx\": 39032,\n\t\"./quiz_generators/QuizProgress\": 73770,\n\t\"./quiz_generators/QuizProgress.jsx\": 73770,\n\t\"./quizzes/AnswerOptions\": 86723,\n\t\"./quizzes/AnswerOptions.jsx\": 86723,\n\t\"./quizzes/QuizAttempt\": 27375,\n\t\"./quizzes/QuizAttempt.jsx\": 27375,\n\t\"./quizzes/QuizCompletionSummary\": 20227,\n\t\"./quizzes/QuizCompletionSummary.jsx\": 20227,\n\t\"./quizzes/QuizTakingInterface\": 79146,\n\t\"./quizzes/QuizTakingInterface.jsx\": 79146,\n\t\"./study_plan/StudyPlanStatus\": 51907,\n\t\"./study_plan/StudyPlanStatus.jsx\": 51907,\n\t\"./token_usage/TokenUsageDisplay\": 55303,\n\t\"./token_usage/TokenUsageDisplay.jsx\": 55303\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 982;","import React, { useState, useEffect } from 'react';\n\nconst CommissionCalculator = ({ bundles }) => {\n const [referralCount, setReferralCount] = useState(1);\n const [selectedBundle, setSelectedBundle] = useState(null);\n const [purchaseFrequency, setPurchaseFrequency] = useState('once'); // once, monthly, quarterly\n const [estimatedEarnings, setEstimatedEarnings] = useState(0);\n\n const COMMISSION_RATE = 0.20; // 20%\n const MONTHS = 12;\n\n useEffect(() => {\n calculateEarnings();\n }, [referralCount, selectedBundle, purchaseFrequency]);\n\n const calculateEarnings = () => {\n if (!selectedBundle) return;\n\n const bundlePrice = selectedBundle.price / 100; // Convert from cents to GHS\n let totalPurchases = bundlePrice;\n\n // Calculate based on frequency\n switch (purchaseFrequency) {\n case 'monthly':\n totalPurchases *= MONTHS;\n break;\n case 'quarterly':\n totalPurchases *= 4; // 4 purchases per year\n break;\n default: // once\n break;\n }\n\n const commission = totalPurchases * COMMISSION_RATE * referralCount;\n setEstimatedEarnings(commission);\n };\n\n return (\n
\n Over 12 months period\n
\n{metrics.error}
\nYou can still view available information below.
\n{insight.message}
\nTotal Conversations | \n{metrics.assistant_metrics.total_conversations} | \n
Total Messages | \n{metrics.assistant_metrics.total_messages} | \n
File Uploads | \n{metrics.assistant_metrics.file_uploads.total_files} | \n
{achievement.description}
\n\n {completed_attempts} completed ({completion_rate}%)\n
\n\n {recent_trend.change_percentage > 0 ? '↑' : '↓'}\n {Math.abs(recent_trend.change_percentage || 0)}% from previous\n
\nPer quiz attempt
\n\n Longest: {streak_data.longest_streak || 0} days\n
\nTopic | \nScore | \nBelow Avg | \n
---|---|---|
{topic.name} | \n{topic.score}% | \n-{topic.below_avg_by}% | \n
Based on your performance data, consider focusing on these areas:
\nYou score better than {score_percentile.percentile}% of users
\nYou complete quizzes faster than {time_efficiency_percentile.percentile}% of users
\nSuccess Rate
\nTotal Exams
\nPassed
\n\n {practice_to_exam_correlation.difference >= 0\n ? \"You perform better on exams than practice\"\n : \"Your exam scores are lower than practice scores\"}\n
\nYou haven't generated any study plans yet.
\n \nExam | \nDays Left | \nProgress | \n
---|---|---|
{exam.exam_name} | \n{exam.days_remaining} | \n\n \n \n | \n
No upcoming exams found.
\n \nLoading your challenge...
\n{currentQuestion.explanation}
\nNo chat history yet. Start a new conversation!
\n$1
');\n\n // Process headers\n content = content\n .replace(/^### (.*$)/gm, '$1
')\n .replace(/\\[(.*?)\\]\\((.*?)\\)/g, '$1'); // Links\n\n // Process blockquotes\n content = content.replace(/^>\\s(.+)/gm, '$1');\n\n // Add some basic styling classes\n content = content\n .replace(/
/g, '')\n .replace(//g, '
')\n .replace(/
/g, '');\n\n // Split by newlines and wrap in divs\n return content\n .split('\\n')\n .map((line, i) => line.trim() ? `${line}` : '
')\n .join('');\n };\n\n const renderMessage = (message, index) => (\n\n\n );\n\n return (\n\n\n\n \n {message.role === 'user' ? 'You' : 'Assistant'}\n \n \n {message.timestamp.toLocaleTimeString()}\n \n\n \n {message.status && (\n\n \n \n \n\n )}\n\n {error && (\n\n );\n};\n\nexport default ChatInterface;\n","import React, { useState, useEffect, useCallback } from 'react';\nimport ChatInterface from './ChatInterface';\nimport ChatHistory from './ChatHistory';\n\nconst ChatModal = ({ examTrackerId, examTitle }) => {\n const [view, setView] = useState('chat');\n const [activeConversation, setActiveConversation] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n\n const resetModal = useCallback(() => {\n setView('chat');\n setActiveConversation(null);\n }, []);\n\n useEffect(() => {\n const handleModalHidden = () => resetModal();\n\n // Wait for document to be ready\n const modal = document.getElementById('studyAssistantModal');\n if (modal) {\n modal.addEventListener('hidden.bs.modal', handleModalHidden);\n\n // Cleanup listener\n return () => {\n modal.removeEventListener('hidden.bs.modal', handleModalHidden);\n };\n }\n }, [resetModal]);\n\n // Add event listener after component mounts\n useEffect(() => {\n const setupModalListener = () => {\n const modal = document.getElementById('studyAssistantModal');\n if (modal) {\n const modalInstance = new bootstrap.Modal(modal);\n modal.addEventListener('hidden.bs.modal', resetModal);\n return () => {\n modal.removeEventListener('hidden.bs.modal', resetModal);\n modalInstance.dispose();\n };\n }\n };\n\n // Small delay to ensure DOM is ready\n const timer = setTimeout(setupModalListener, 100);\n return () => clearTimeout(timer);\n }, [resetModal]);\n\n const handleConversationSelect = async (conversationId) => {\n setIsLoading(true);\n setActiveConversation(conversationId);\n setView('chat');\n setIsLoading(false);\n };\n\n const handleNewChat = () => {\n setActiveConversation(null);\n setView('chat');\n };\n\n return (\n\n \n {error}\n \n \n\n )}\n\n\n {messages.length === 0 && !isLoading ? (\n\n\n\n \n\n ) : (\nStart a conversation with your study assistant
\n\n {messages.map(renderMessage)}\n\n )}\n\n {isLoading && (\n\n\n )}\n \n\n \n \n \n\n\n \n\n\n \n\n\n );\n};\n\nexport default ChatModal;\n","import React, { createContext, useContext, useState, useEffect, useRef } from 'react';\nimport axios from 'axios';\nimport { setupAxiosCSRF } from '../../helpers';\n\n// Constants\nconst STREAM_TIMEOUT = 30000; // 30 seconds\nconst BUFFER_SIZE = 1000;\nconst DEBOUNCE_MS = 50;\nconst BACKPRESSURE_DELAY_MS = 50;\n\n// Create context\nconst ConversationContext = createContext(null);\n\n// Helper function to process streaming content\nconst processStreamingContent = (data) => {\n if (!data) return '';\n if (typeof data === 'string') return data;\n if (data.content && typeof data.content === 'string') return data.content;\n if (data.content.content && typeof data.content.content === 'string') return data.content.content;\n return '';\n};\n\nexport const ConversationProvider = ({\n children,\n userName,\n preferredModel,\n conversationId,\n initialConversation = null,\n initialMessages = []\n}) => {\n // State\n const [selectedModel, setSelectedModel] = useState(preferredModel);\n const [showSettings, setShowSettings] = useState(false);\n const [message, setMessage] = useState('');\n const [messages, setMessages] = useState(initialMessages);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState(null);\n const [activeConversation, setActiveConversation] = useState(initialConversation);\n const [conversations, setConversations] = useState([]);\n const [isLoadingHistory, setIsLoadingHistory] = useState(false);\n const [isStreaming, setIsStreaming] = useState(false);\n const [uploadedFile, setUploadedFile] = useState(null);\n const [fileContent, setFileContent] = useState(null);\n const [isFileProcessing, setIsFileProcessing] = useState(false);\n\n // Refs\n const messagesEndRef = useRef(null);\n const eventSourceRef = useRef(null);\n const abortControllerRef = useRef(null);\n const messageStateRef = useRef({\n retryCount: 0,\n accumulatedContent: '',\n hasAssistantMessage: false,\n aborted: false\n });\n\n // Load conversation on initial render if ID provided\n useEffect(() => {\n if (conversationId && !initialConversation) {\n loadConversation(conversationId);\n }\n fetchChatHistory();\n\n return () => {\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n }\n cleanupEventSource();\n };\n }, [conversationId, initialConversation]);\n\n // Auto-scroll messages\n useEffect(() => {\n if (messagesEndRef.current) {\n messagesEndRef.current.scrollIntoView({ behavior: 'smooth' });\n }\n }, [messages]);\n\n // Initialize offcanvas for sidebar\n useEffect(() => {\n if (typeof bootstrap !== 'undefined') {\n const offcanvasElements = document.querySelectorAll('.offcanvas');\n offcanvasElements.forEach(element => {\n new bootstrap.Offcanvas(element);\n });\n }\n }, []);\n\n // Browser history handling\n useEffect(() => {\n const handlePopState = (event) => {\n if (event.state && event.state.conversationId) {\n loadConversation(event.state.conversationId);\n } else {\n // Handle case when going back to new conversation\n setActiveConversation(null);\n setMessages([]);\n setMessage('');\n }\n };\n\n window.addEventListener('popstate', handlePopState);\n return () => window.removeEventListener('popstate', handlePopState);\n }, []);\n\n // Helper to update browser URL\n const updateBrowserHistory = (conversation) => {\n if (!conversation) return;\n\n const newUrl = `/study_assistant/conversations/${conversation.id}`;\n const newState = { conversationId: conversation.id };\n\n if (window.location.pathname !== newUrl) {\n window.history.pushState(newState, '', newUrl);\n }\n };\n\n // Cleanup SSE event source\n const cleanupEventSource = () => {\n if (eventSourceRef.current) {\n eventSourceRef.current.close();\n eventSourceRef.current = null;\n }\n };\n\n // Load conversation by ID\n const loadConversation = async (convId) => {\n try {\n setIsLoading(true);\n setupAxiosCSRF();\n const response = await axios.get(`/study_assistant/conversations/${convId}`, {\n headers: {\n 'Accept': 'application/json'\n }\n });\n\n // Ensure we have messages array\n const conversationMessages = response.data.messages || [];\n\n setActiveConversation(response.data.conversation);\n setMessages(conversationMessages);\n updateBrowserHistory(response.data.conversation);\n\n // Close the sidebar on mobile\n if (typeof bootstrap !== 'undefined') {\n const offcanvasElement = document.getElementById('chatSidebar');\n const offcanvas = bootstrap.Offcanvas.getInstance(offcanvasElement);\n if (offcanvas) offcanvas.hide();\n }\n } catch (error) {\n console.error('Failed to load conversation:', error);\n setError('Failed to load conversation. Please try again.');\n // If conversation not found or error, redirect to new conversation\n window.location.href = '/study_assistant/conversations/new';\n } finally {\n setIsLoading(false);\n }\n };\n\n // Fetch conversation history\n const fetchChatHistory = async () => {\n setIsLoadingHistory(true);\n try {\n setupAxiosCSRF();\n const response = await axios.get('/study_assistant/conversations/history');\n setConversations(response.data.conversations);\n } catch (error) {\n console.error('Failed to fetch chat history:', error);\n } finally {\n setIsLoadingHistory(false);\n }\n };\n\n // Create a new conversation\n const createConversation = async () => {\n try {\n setupAxiosCSRF();\n const response = await axios.post('/study_assistant/conversations', {\n selected_model: selectedModel\n });\n\n const newConversation = response.data.conversation;\n\n // Ensure we have a messages array, even if empty\n const conversationMessages = response.data.messages || [];\n\n // Update conversations list\n setConversations(prev => [\n {\n ...newConversation,\n messages_count: 0,\n title: 'Untitled Conversation'\n },\n ...prev\n ]);\n\n // Set active conversation\n setActiveConversation(newConversation);\n\n // Initialize empty messages array for new conversation\n setMessages(conversationMessages);\n\n // Update URL\n updateBrowserHistory(newConversation);\n\n return newConversation;\n } catch (error) {\n console.error('Conversation creation error:', error);\n setError('Failed to create new conversation. Please try again.');\n throw error;\n }\n };\n\n // Handle new conversation button click\n const handleNewConversation = () => {\n setActiveConversation(null);\n setMessages([]);\n setMessage('');\n setError(null);\n\n // Update URL to new conversation path\n window.history.pushState({}, '', '/study_assistant/conversations/new');\n\n // Close sidebar on mobile\n const offcanvasElement = document.getElementById('chatSidebar');\n if (offcanvasElement) {\n const offcanvas = bootstrap.Offcanvas.getInstance(offcanvasElement);\n if (offcanvas) offcanvas.hide();\n }\n };\n\n // Handle sending a message\n const sendMessage = async () => {\n // Allow sending if there's either text or a file\n if ((!message.trim() && !uploadedFile) || isLoading) return;\n\n const messageContent = message;\n setMessage('');\n setIsLoading(true);\n setIsStreaming(true);\n setError(null);\n\n // Reset message state\n messageStateRef.current = {\n retryCount: 0,\n accumulatedContent: '',\n hasAssistantMessage: false,\n aborted: false,\n lastUpdateTime: Date.now()\n };\n\n // Set timeout for long-running requests\n const timeoutId = setTimeout(() => {\n messageStateRef.current.aborted = true;\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n }\n handleSendError(new Error('Request timed out'), messageContent);\n }, STREAM_TIMEOUT);\n\n try {\n const conversation = activeConversation || await createConversation();\n\n // Create temporary user message\n const userMessage = {\n role: 'user',\n content: messageContent,\n created_at: new Date().toISOString(),\n isTemporary: true,\n tempId: Date.now(),\n file: uploadedFile ? {\n name: uploadedFile.name,\n type: uploadedFile.type,\n url: URL.createObjectURL(uploadedFile)\n } : null\n };\n\n // Add user message to chat\n setMessages(prev => [...prev, userMessage]);\n\n // Abort any existing request\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n }\n abortControllerRef.current = new AbortController();\n\n // Create request payload\n const requestPayload = {\n content: messageContent\n };\n\n // Add file_id to payload if we have one\n if (fileContent && fileContent.file_id) {\n requestPayload.file_id = fileContent.file_id;\n }\n\n // Send request\n const response = await fetch(\n `/study_assistant/conversations/${conversation.id}/messages`,\n {\n method: 'POST',\n headers: {\n 'Accept': 'text/event-stream',\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': document.querySelector('[name=\"csrf-token\"]').content,\n },\n body: JSON.stringify(requestPayload),\n credentials: 'same-origin',\n signal: abortControllerRef.current.signal,\n }\n );\n\n if (!response.ok) {\n const error = new Error(`HTTP error! status: ${response.status}`);\n error.response = { status: response.status };\n throw error;\n }\n\n // Process streaming response\n await processStreamingResponse(response);\n\n } catch (error) {\n if (error.name === 'AbortError') {\n console.log('Fetch aborted');\n } else if (!messageStateRef.current.aborted) {\n console.error(\"Error in sendMessage:\", error);\n handleSendError(error, messageContent);\n }\n } finally {\n // Clean up\n clearTimeout(timeoutId);\n abortControllerRef.current = null;\n\n // Reset file state after sending\n setUploadedFile(null);\n setFileContent(null);\n\n setIsLoading(false);\n setIsStreaming(false);\n }\n };\n\n // Process streaming response from server\n const processStreamingResponse = async (response) => {\n const reader = response.body.getReader();\n const decoder = new TextDecoder();\n let buffer = '';\n let assistantMessage = null;\n\n // Create debounced updater function\n const debouncedMessageUpdate = (content, tempId) => {\n setMessages(prev => prev.map(msg =>\n msg.tempId === tempId && msg.isTemporary\n ? { ...msg, content }\n : msg\n ));\n };\n\n // Debounce function implementation\n const debounce = (func, wait) => {\n let timeout;\n return (...args) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => func(...args), wait);\n };\n };\n\n // Create debounced update function\n const debouncedUpdate = debounce(debouncedMessageUpdate, DEBOUNCE_MS);\n\n while (true) {\n // Implement backpressure handling\n if (messageStateRef.current.accumulatedContent.length > BUFFER_SIZE) {\n await new Promise(resolve => setTimeout(resolve, BACKPRESSURE_DELAY_MS));\n }\n\n const { done, value } = await reader.read();\n if (done || messageStateRef.current.aborted) break;\n\n buffer += decoder.decode(value, { stream: true });\n const lines = buffer.split(\"\\n\");\n buffer = lines.pop() || '';\n\n for (const line of lines) {\n const trimmedLine = line.trim();\n if (!trimmedLine) continue;\n\n if (trimmedLine.startsWith('event:')) {\n // Process event type if needed\n } else if (trimmedLine.startsWith('data:') && trimmedLine.length > 5) {\n try {\n const data = JSON.parse(trimmedLine.slice(5).trim());\n\n // Handle error events\n if (data.content && data.content.event === 'error' && data.content.data.error) {\n const error = new Error(data.content.data.error);\n error.response = { status: 402 };\n throw error;\n }\n\n // Handle streaming content\n if (data.content) {\n const processedContent = processStreamingContent(data);\n\n if (processedContent) {\n messageStateRef.current.accumulatedContent += processedContent;\n\n if (!messageStateRef.current.hasAssistantMessage) {\n messageStateRef.current.hasAssistantMessage = true;\n assistantMessage = {\n role: 'assistant',\n content: messageStateRef.current.accumulatedContent,\n model_used: selectedModel,\n isTemporary: true,\n tempId: Date.now()\n };\n setMessages(prev => [...prev, assistantMessage]);\n } else {\n // Update the assistant message with accumulated content\n debouncedUpdate(\n messageStateRef.current.accumulatedContent,\n assistantMessage.tempId\n );\n }\n }\n }\n // Handle completion messages\n else if (data.messages && data.messages.length >= 2) {\n const [serverUserMsg, serverAssistantMsg] = data.messages;\n\n setMessages(prev => {\n const filtered = prev.filter(msg => !msg.isTemporary);\n return [\n ...filtered,\n { ...serverUserMsg },\n { ...serverAssistantMsg }\n ];\n });\n break;\n }\n // Handle direct error events\n else if (data.error) {\n const error = new Error(data.error);\n error.response = { status: 402 };\n throw error;\n }\n } catch (e) {\n console.error('Error parsing data:', e);\n const error = e instanceof Error ? e : new Error('Failed to parse server response');\n error.response = error.response || { status: 500 };\n throw error;\n }\n }\n }\n }\n };\n\n // Handle send message errors\n const handleSendError = (error, originalMessage) => {\n // Remove temporary messages on error\n setMessages(prev => prev.filter(msg => !msg.isTemporary));\n setIsStreaming(false);\n setIsLoading(false);\n\n if (error.response) {\n switch (error.response.status) {\n case 402:\n setError('Insufficient tokens. Please purchase more tokens to continue.');\n break;\n case 500:\n setError('Server error. Please try again later.');\n break;\n case 503:\n setError('Service temporarily unavailable. Please try again later.');\n break;\n default:\n setError(`Failed to send message. Status: ${error.response.status}. Please try again.`);\n }\n } else if (error.name === 'AbortError') {\n setError('Message sending was cancelled.');\n } else {\n setError('Failed to send message. Please check your connection and try again.');\n }\n\n setMessage(originalMessage);\n };\n\n // Handle file upload\n const handleFileUpload = async (file) => {\n setIsFileProcessing(true);\n setError(null);\n\n const formData = new FormData();\n formData.append('file', file);\n\n try {\n setupAxiosCSRF();\n const response = await axios.post(\n `/study_assistant/conversations/${activeConversation.id || 'new'}/upload`,\n formData,\n {\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n }\n );\n\n // If we don't have an active conversation, create one\n if (!activeConversation && response.data.conversation) {\n setActiveConversation(response.data.conversation);\n }\n\n // Store file data including ID\n setFileContent({\n file_id: response.data.file.id,\n name: response.data.file.name,\n type: response.data.file.type,\n url: response.data.file.url,\n processing_status: response.data.file.processing_status\n });\n\n setUploadedFile(file);\n\n // Add a system message to indicate file upload\n const systemMessage = {\n role: 'system',\n content: `File \"${response.data.file.name}\" uploaded and being processed. You can ask questions about it once processing is complete.`,\n created_at: new Date().toISOString(),\n id: `file-upload-${Date.now()}`\n };\n\n setMessages(prev => [...prev, systemMessage]);\n\n } catch (error) {\n console.error('File upload error:', error);\n setError('Failed to upload file. Please try again.');\n setUploadedFile(null);\n setFileContent(null);\n } finally {\n setIsFileProcessing(false);\n }\n\n return Promise.resolve();\n };\n\n // Handle file status changes\n const handleFileStatusChange = (status, fileData) => {\n setFileContent(prev => {\n // If status hasn't changed, don't show new messages\n if (prev && prev.processing_status === status) {\n return prev;\n }\n\n // Store current status before updating\n const previousStatus = prev && prev.processing_status;\n\n // Update the state\n const updatedFileContent = {\n ...prev,\n processing_status: status\n };\n\n // Only show completion message when transitioning from another state to completed\n if (status === 'completed' && previousStatus !== 'completed') {\n const systemMessage = {\n role: 'system',\n content: `File \"${fileData.name}\" is now ready. You can ask questions about it.`,\n created_at: new Date().toISOString(),\n id: `file-ready-${Date.now()}`\n };\n\n // Add system message to notify user\n setTimeout(() => {\n setMessages(msgs => [...msgs, systemMessage]);\n }, 0);\n }\n\n // Only show failure message when transitioning from another state to failed\n if (status === 'failed' && previousStatus !== 'failed') {\n const systemMessage = {\n role: 'system',\n content: `There was an issue processing \"${fileData.name}\". The AI may have limited ability to understand its contents.`,\n created_at: new Date().toISOString(),\n id: `file-failed-${Date.now()}`\n };\n\n // Add system message to notify user\n setTimeout(() => {\n setMessages(msgs => [...msgs, systemMessage]);\n }, 0);\n }\n\n return updatedFileContent;\n });\n };\n\n // Handle model change\n const handleModelChange = async (modelId) => {\n if (!activeConversation) {\n setSelectedModel(modelId);\n setShowSettings(false);\n return;\n }\n\n try {\n setupAxiosCSRF();\n await axios.patch(`/study_assistant/conversations/${activeConversation.id}`, {\n selected_model: modelId\n });\n setSelectedModel(modelId);\n setMessages(prev => [...prev, {\n role: 'system',\n content: `Switched to ${modelId}`\n }]);\n setShowSettings(false);\n } catch (error) {\n setError('Failed to change model');\n }\n };\n\n // Context value\n const contextValue = {\n // State\n userName,\n selectedModel,\n showSettings,\n message,\n messages,\n isLoading,\n error,\n activeConversation,\n conversations,\n isLoadingHistory,\n isStreaming,\n uploadedFile,\n fileContent,\n isFileProcessing,\n messagesEndRef,\n\n // Actions\n setSelectedModel,\n setShowSettings,\n setMessage,\n setError,\n loadConversation,\n handleNewConversation,\n sendMessage,\n handleFileUpload,\n handleFileStatusChange,\n handleModelChange,\n fetchChatHistory,\n\n // Events\n handleKeyDown: (e) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n sendMessage();\n }\n }\n };\n\n return (\n\n\n\n {/* Modal Header */}\n\n\n\n\n {/* Modal Body */}\n\n\n\n\n\n\n \n\n\n\nStudy Assistant
\n{examTitle}
\n\n {view === 'chat' && activeConversation && (\n \n )}\n\n {view === 'chat' ? (\n \n ) : (\n \n )}\n\n \n\n\n {isLoading ? (\n\n\n\n ) : (\n view === 'chat' ? (\n\n Loading...\n\nsetView('history')}\n />\n ) : (\n \n )\n )}\n \n {children}\n \n );\n};\n\n// Custom hook to use the conversation context\nexport const useConversation = () => {\n const context = useContext(ConversationContext);\n if (!context) {\n throw new Error('useConversation must be used within a ConversationProvider');\n }\n return context;\n};\n\nexport default ConversationContext;\n","import React from 'react';\nimport { Menu, MessageSquarePlus, Settings, ArrowLeft, X } from 'lucide-react';\nimport { useConversation } from './ConversationContext';\nimport ModelSelector from './ModelSelector';\n\n/**\n * Header component for the conversation interface\n */\nconst ConversationHeader = ({ models }) => {\n const {\n selectedModel,\n showSettings,\n setShowSettings,\n handleNewConversation,\n handleModelChange\n } = useConversation();\n\n return (\n\n\n );\n};\n\nexport default ConversationHeader;\n","import React from 'react';\nimport { ArrowUp } from 'lucide-react';\nimport { useConversation } from './ConversationContext';\n\n/**\n * Component displayed when there are no messages in the conversation\n */\nconst EmptyConversation = ({ userName }) => {\n const {\n message,\n setMessage,\n handleKeyDown,\n sendMessage,\n isLoading\n } = useConversation();\n\n // Get time-based greeting\n const getTimeBasedGreeting = () => {\n const hour = new Date().getHours();\n if (hour < 12) return 'Good morning';\n if (hour < 17) return 'Good afternoon';\n return 'Good evening';\n };\n\n return (\n\n \n\n\n\n\n\nMiss Odarl
\n\n {/* Model selector (desktop) */}\n\n\n\n {/* Model indicator (mobile) */}\n\n \n \n Using {models.find(m => m.id === selectedModel).name || selectedModel}\n \n\n\n {/* New conversation button */}\n \n\n {/* Settings toggle button */}\n \n\n {/* Close button (returns to dashboard) */}\n \n\n\n \n \n {/* Avatar */}\n\n );\n};\n\nexport default EmptyConversation;\n","import React from 'react';\n\n/**\n * Component to display error messages\n */\nconst ErrorAlert = ({ message, onClose }) => {\n return (\n\n\n\n {/* Greeting */}\n\n
{getTimeBasedGreeting()}, {userName}
\nHow can I help you today?
\n\n {/* Input area */}\n\n\n\n\n \n Miss Odarl can make mistakes. Please double-check responses.\n \n\n {message}\n \n\n );\n};\n\nexport default ErrorAlert;\n","import React, { useState, useEffect } from 'react';\nimport { FileText, Image, Download, Maximize, Minimize, FileType } from 'lucide-react';\n\nconst FileDisplay = ({ file }) => {\n const [expanded, setExpanded] = useState(false);\n const [textContent, setTextContent] = useState(null);\n const [isLoadingText, setIsLoadingText] = useState(false);\n\n useEffect(() => {\n // Load text content when a text file is expanded\n if (expanded && file.type === 'text/plain' && !textContent) {\n loadTextContent();\n }\n }, [expanded, file]);\n\n const loadTextContent = async () => {\n if (!file.url) return;\n\n setIsLoadingText(true);\n try {\n const response = await fetch(file.url);\n const text = await response.text();\n setTextContent(text);\n } catch (err) {\n console.error('Error loading text file:', err);\n } finally {\n setIsLoadingText(false);\n }\n };\n\n if (!file) return null;\n\n const toggleExpand = () => setExpanded(!expanded);\n\n const renderFilePreview = () => {\n const { type, url, name } = file;\n\n // hold off on allowing image uploads for now\n // perhaps we can add this feature in the future\n // if (type.startsWith('image/')) {\n // return (\n //\n //\n // );\n // }\n\n if (type === 'application/pdf') {\n return expanded ? (\n \n ) : (\n\n //
\n\n );\n }\n\n if (type === 'text/plain') {\n return expanded ? (\n\n {name}\n \n {isLoadingText ? (\n\n ) : (\n\n\n ) : (\n\n Loading...\n\n\n {textContent || 'No content available'}\n\n )}\n\n\n );\n }\n\n return (\n\n {name}\n \n\n );\n };\n\n return (\n\n {name}\n \n\n );\n};\n\nexport default FileDisplay;\n","import React, { useEffect, useState, useRef } from 'react';\nimport { setupAxiosCSRF } from '../../helpers';\nimport axios from 'axios';\nimport { AlertCircle, CheckCircle, Clock, Loader } from 'lucide-react';\n\nconst POLLING_INTERVAL = 1000; // Poll every second\nconst MAX_POLLS = 20; // Maximum number of polls before timing out\n\nconst FileStatusPoller = ({ fileId, conversationId, onStatusChange }) => {\n const [status, setStatus] = useState('pending');\n const [pollCount, setPollCount] = useState(0);\n const [error, setError] = useState(null);\n const isMounted = useRef(true);\n const isPolling = useRef(false);\n const pollTimer = useRef(null);\n\n // Clear polling on unmount\n useEffect(() => {\n return () => {\n isMounted.current = false;\n if (pollTimer.current) {\n clearTimeout(pollTimer.current);\n }\n };\n }, []);\n\n // Handle file ID changes\n useEffect(() => {\n if (!fileId || !conversationId) return;\n\n // Reset state for new file\n setStatus('pending');\n setPollCount(0);\n setError(null);\n\n // Start polling\n startPolling();\n\n return () => {\n // Clean up polling\n if (pollTimer.current) {\n clearTimeout(pollTimer.current);\n }\n };\n }, [fileId, conversationId]);\n\n const startPolling = async () => {\n // Prevent multiple polling loops\n if (isPolling.current) return;\n isPolling.current = true;\n\n try {\n await checkStatus();\n } finally {\n isPolling.current = false;\n }\n };\n\n const checkStatus = async () => {\n if (!isMounted.current) return;\n\n try {\n setupAxiosCSRF();\n const response = await axios.get(`/study_assistant/conversations/${conversationId}/files/${fileId}/status`);\n\n const newStatus = response.data.processing_status;\n\n // Only update if status changed\n if (newStatus !== status) {\n setStatus(newStatus);\n\n // Call the callback with new status\n if (onStatusChange) {\n onStatusChange(newStatus, response.data);\n }\n }\n\n // Only continue polling for non-terminal statuses\n const isTerminalStatus = newStatus === 'completed' || newStatus === 'failed';\n\n if (!isTerminalStatus && isMounted.current) {\n // Continue polling if within max count\n if (pollCount < MAX_POLLS) {\n setPollCount(count => count + 1);\n pollTimer.current = setTimeout(startPolling, POLLING_INTERVAL);\n } else {\n setError('File processing is taking longer than expected.');\n }\n }\n } catch (err) {\n console.error('Error checking file status:', err);\n setError('Could not check file status. Please try again.');\n }\n };\n\n const getStatusDisplay = () => {\n switch (status) {\n case 'pending':\n return (\n\n {file.type.startsWith('image/') ? (\n\n\n\n ) : file.type === 'text/plain' ? (\n \n ) : (\n \n )}\n {file.name}\n \n \n \n\n\n \n \n {renderFilePreview()}\n\n\n\n );\n case 'processing':\n return (\n\n Waiting to process...\n \n\n );\n case 'completed':\n return (\n\n Processing file...\n \n\n );\n case 'failed':\n return (\n\n Ready to use\n \n\n );\n default:\n return null;\n }\n };\n\n // Don't render anything if there's no file ID\n if (!fileId) return null;\n\n return (\n\n Processing failed\n \n {getStatusDisplay()}\n {error &&\n );\n};\n\nexport default FileStatusPoller;\n","import React, { useState, useRef } from 'react';\nimport { FileUp, X, FileText, Image, Loader } from 'lucide-react';\n\nconst FileUpload = ({ onFileSelect, allowedFileTypes = 'application/pdf,text/plain' }) => {\n const [file, setFile] = useState(null);\n const [preview, setPreview] = useState(null);\n const [isUploading, setIsUploading] = useState(false);\n const [error, setError] = useState(null);\n const fileInputRef = useRef(null);\n\n const handleFileChange = (e) => {\n const selectedFile = e.target.files[0];\n if (!selectedFile) return;\n\n // Validate file type\n if (!allowedFileTypes.includes(selectedFile.type)) {\n setError('File type not supported. Please upload a PDF or text (.txt) file.');\n return;\n }\n\n // Validate file size (10MB max)\n if (selectedFile.size > 10 * 1024 * 1024) {\n setError('File is too large. Maximum size is 10MB.');\n return;\n }\n\n setError(null);\n setFile(selectedFile);\n };\n\n const handleUpload = () => {\n if (!file) return;\n\n setIsUploading(true);\n onFileSelect(file)\n .then(() => {\n // Reset after successful upload\n setFile(null);\n setPreview(null);\n setIsUploading(false);\n })\n .catch(err => {\n setError('Upload failed. Please try again.');\n setIsUploading(false);\n });\n };\n\n const clearFile = () => {\n setFile(null);\n setPreview(null);\n setError(null);\n if (fileInputRef.current) {\n fileInputRef.current.value = '';\n }\n };\n\n const triggerFileInput = () => {\n fileInputRef.current.click();\n };\n\n const getFileIcon = () => {\n if (!file) return null;\n if (file.type.startsWith('image/')) {\n return{error}}\n;\n }\n return ;\n };\n\n return (\n \n {/* Hidden file input */}\n \n\n {/* Upload button or Selected file display */}\n {!file ? (\n \n ) : (\n\n );\n};\n\nexport default FileUpload;\n","import React from 'react';\nimport { ArrowUp, X, FileBadge } from 'lucide-react';\nimport { useConversation } from './ConversationContext';\nimport FileUpload from './FileUpload';\nimport FileStatusPoller from './FileStatusPoller';\n\n/**\n * Footer component with message input and file upload\n */\nconst FooterInput = () => {\n const {\n showSettings,\n messages,\n message,\n setMessage,\n sendMessage,\n handleKeyDown,\n isLoading,\n uploadedFile,\n setUploadedFile,\n fileContent,\n activeConversation,\n handleFileUpload,\n handleFileStatusChange\n } = useConversation();\n\n // Don't render if settings are shown or no messages exist yet\n if (showSettings || messages.length === 0) {\n return null;\n }\n\n return (\n\n {/* File preview */}\n\n )}\n\n {/* Error message */}\n {error && (\n\n {preview ? (\n\n\n {/* File name */}\n\n ) : (\n getFileIcon()\n )}\n
\n {file.name}\n\n\n {/* Action buttons */}\n\n {isUploading ? (\n\n\n ) : (\n \n \n \n\n )}\n\n {error}\n\n )}\n\n\n );\n};\n\nexport default FooterInput;\n","import React from 'react';\nimport { useConversation } from './ConversationContext';\nimport MessageList from './MessageList';\nimport EmptyConversation from './EmptyConversation';\nimport ModelSettingsScreen from './ModelSettingsScreen';\n\n/**\n * Main content area that shows either the messages, empty state, or model settings\n */\nconst MainContent = ({ models }) => {\n const {\n messages,\n showSettings,\n userName\n } = useConversation();\n\n return (\n\n {/* Display attached file if any */}\n {uploadedFile && (\n\n\n\n )}\n\n {/* File status polling */}\n {uploadedFile && fileContent && (\n\n {uploadedFile.name}\n \n \n )}\n\n {/* Message input with file upload */}\n \n\n\n {/* Disclaimer */}\n\n \n Miss Odarl can make mistakes. Please double-check responses.\n \n\n\n {showSettings ? (\n\n );\n};\n\nexport default MainContent;\n","import React, { useState } from 'react';\nimport { Copy, Check, Cpu } from 'lucide-react';\nimport ReactMarkdown from 'react-markdown';\nimport remarkMath from 'remark-math';\nimport rehypeKatex from 'rehype-katex';\nimport remarkGfm from 'remark-gfm'\nimport {Prism as SyntaxHighlighter} from 'react-syntax-highlighter'\nimport {vscDarkPlus} from 'react-syntax-highlighter/dist/esm/styles/prism'\nimport FileDisplay from './FileDisplay';\n\nconst CopyButton = ({ content }) => {\n const [copied, setCopied] = useState(false);\n const [showToast, setShowToast] = useState(false);\n\n const handleCopy = async () => {\n try {\n await navigator.clipboard.writeText(content);\n setCopied(true);\n setShowToast(true);\n\n setTimeout(() => {\n setCopied(false);\n }, 2000);\n\n setTimeout(() => {\n setShowToast(false);\n }, 3000);\n } catch (err) {\n console.error('Failed to copy text:', err);\n }\n };\n\n return (\n\n ) : (\n \n\n )}\n\n {messages.length === 0 ? (\n\n\n ) : (\n \n )}\n \n \n\n {showToast && (\n\n );\n};\n\nconst Message = ({ msg, models }) => {\n // this system was a fluke?\n if (msg.role === 'system') return null;\n // Find the model details from the models array\n const modelDetails = models.find(m => m.id === msg.model_used) || {\n name: msg.model_used,\n category: 'AI Model'\n };\n\n return (\n\n\n )}\n\n\n\n\n\n Message copied to clipboard!\n \n\n );\n};\n\n// Add this style to your existing styles\nconst MessageStyles = () => (\n \n);\n\nexport { Message, MessageStyles };\n","import React from 'react';\nimport { useConversation } from './ConversationContext';\nimport { Message } from './Message';\nimport MessageSkeleton from './MessageSkeleton';\n\n/**\n * Component that displays the list of messages in a conversation\n */\nconst MessageList = ({ models }) => {\n const {\n messages,\n isLoading,\n isStreaming,\n messagesEndRef\n } = useConversation();\n\n return (\n\n {msg.role !== 'user' && (\n\n\n\n )}\n\n
\n {/* Display attached file if present */}\n {msg.file && (\n\n {msg.role === 'user' && (\n\n )}\n\n {msg.role === 'user' ? (\n {msg.content}\n ) : (\n\n\n )}\n {msg.isTemporary && (\n\n ) : (\n \n {children}\n
\n )\n }\n }}\n >\n {msg.content }\n \n\n {/* Footer: Model info and Copy button for assistant messages */}\n {msg.role === 'assistant' && (\n\n\n )}\n\n\n\n \n {modelDetails.name}\n \n \n \n \n \n \n\n )}\n\n\n )}\n\n \n\n\n {/* Render all messages */}\n {messages.map((msg, index) => (\n\n );\n};\n\nexport default MessageList;\n","import React from 'react';\n\nconst MessageSkeleton = ({ streaming }) => {\n return (\n\n ))}\n\n {/* Show loading skeleton if loading or streaming */}\n {(isLoading || isStreaming) && (\n \n )}\n\n {/* Invisible element for auto-scrolling */}\n \n \n\n );\n};\n\nexport default MessageSkeleton;\n","import React, { useState } from 'react';\nimport { Zap, Brain, Sparkles } from 'lucide-react';\n\n/**\n * Helper function to get model characteristic for display\n */\nconst getModelCharacteristic = (model) => {\n if (model.id.includes('mini')) {\n return {\n icon:\n\n\n\n\n
\n {streaming ? (\n\n\n \n \n \n\n ) : (\n\n \n \n \n\n )}\n,\n label: 'Fast',\n className: 'bg-warning bg-opacity-10 text-warning'\n };\n } else if (model.id.includes('gpt-4')) {\n return {\n icon: ,\n label: 'Advanced',\n className: 'bg-primary bg-opacity-10 text-primary'\n };\n } else {\n return {\n icon: ,\n label: 'Balanced',\n className: 'bg-info bg-opacity-10 text-info'\n };\n }\n};\n\n/**\n * Dropdown component for selecting AI models\n */\nconst ModelSelector = ({ selectedModel, onModelSelect, models }) => {\n const [isOpen, setIsOpen] = useState(false);\n const currentModel = models.find(m => m.id === selectedModel) || {\n id: selectedModel,\n name: selectedModel,\n category: 'AI Model'\n };\n const modelCharacteristic = getModelCharacteristic(currentModel);\n\n return (\n \n {/* Current Model Button */}\n \n\n {/* Dropdown Menu */}\n\n );\n};\n\nexport default ModelSelector;\n","import React from 'react';\nimport { useConversation } from './ConversationContext';\n\n/**\n * Screen for selecting an AI model\n */\nconst ModelSettingsScreen = ({ models }) => {\n const { selectedModel, handleModelChange } = useConversation();\n\n return (\n\n\n\n {/* Dropdown styles */}\n \nSelect Learning Assistant
\n\n Choose the AI model that best fits your learning style\n
\n\n\n {models.map(model => {\n const characteristic = getModelCharacteristic(model);\n return (\n \n );\n })}\n\n\n\n );\n};\n\nexport default ModelSettingsScreen;\n","import React from 'react';\nimport { History, CircleGauge } from 'lucide-react';\nimport { useConversation } from './ConversationContext';\n\n/**\n * Sidebar component that displays chat history\n */\nconst Sidebar = ({ models }) => {\n const {\n conversations,\n isLoadingHistory,\n loadConversation\n } = useConversation();\n\n return (\nChoose Your Learning Assistant
\n\n {models.map(model => (\nhandleModelChange(model.id)}\n className={`p-4 rounded cursor-pointer ${\n selectedModel === model.id\n ? 'bg-primary bg-opacity-10 border border-primary'\n : 'bg-darker'\n }`}\n role=\"button\"\n tabIndex=\"0\"\n aria-selected={selectedModel === model.id}\n aria-label={`Select ${model.name}`}\n >\n\n ))}\n\n\n{model.name}
\n \n{model.description}
\n\n {/* Sidebar Header */}\n\n );\n};\n\nexport default Sidebar;\n","import React from 'react';\nimport { ConversationProvider } from './ConversationContext';\nimport AppLayout from './AppLayout';\n\n// MODELS constant defined at the top level for reuse in other components\nexport const MODELS = [\n // OpenAI Models\n {\n id: 'openai/o1-mini',\n name: 'OpenAI: o1-mini',\n description: 'Advanced STEM-focused model with PhD-level accuracy in physics, chemistry, and biology. Optimized for thoughtful responses.',\n category: 'OpenAI'\n },\n {\n id: 'openai/o3-mini',\n name: 'OpenAI: o3 Mini',\n description: 'Cost-efficient model for STEM reasoning with adjustable thinking levels.',\n category: 'OpenAI'\n },\n {\n id: 'openai/gpt-4o-mini',\n name: 'GPT 4.0 Mini',\n description: 'Fast and efficient for general learning assistance',\n category: 'OpenAI'\n },\n // Google Models\n {\n id: 'google/gemini-2.0-flash-001',\n name: 'Gemini 2.0 Flash',\n description: 'Quick responses with excellent accuracy',\n category: 'Google'\n },\n {\n id: 'google/gemini-2.0-flash-lite-001',\n name: 'Gemini 2.0 Flash Lite',\n description: 'Quickest responses with excellent accuracy',\n category: 'Google'\n },\n {\n id: 'google/gemini-flash-1.5',\n name: 'Gemini Flash 1.5',\n description: 'Gemini 1.5 Flash is a foundation model that excels at a variety of multimodal tasks such as visual understanding, classification, summarization, and content creation from images, audio, and video.',\n category: 'Google'\n },\n // Anthropic Models\n {\n id: 'anthropic/claude-3.5-haiku-20241022',\n name: 'Claude 3.5 Haiku',\n description: 'Balanced performance with clear explanations',\n category: 'Anthropic'\n },\n {\n id: 'anthropic/claude-3.5-sonnet',\n name: 'Claude 3.5 Sonnet',\n description: 'Balanced performance with excellent explanations for coding, data science, visual processing and agentic tasks',\n category: 'Anthropic'\n },\n {\n id: 'anthropic/claude-3.7-sonnet',\n name: 'Claude 3.7 Sonnet',\n description: 'An advanced LLM with enhanced reasoning, coding, and problem-solving utilizes a hybrid approach to offer rapid responses or detailed step-by-step processing for complex tasks and workflows.',\n category: 'Anthropic'\n },\n // Mistral Models\n {\n id: 'mistralai/mistral-small-24b-instruct-2501',\n name: 'Mistral Small',\n description: 'Efficient teaching with focused responses',\n category: 'Mistral'\n },\n // DeepSeek Models\n {\n id: 'deepseek/deepseek-r1',\n name: 'Deepseek R1',\n description: 'Deep understanding of complex topics',\n category: 'DeepSeek'\n },\n {\n id: 'deepseek/deepseek-chat',\n name: 'DeepSeek V3',\n description: 'Latest DeepSeek model with advanced instruction following and coding abilities.',\n category: 'DeepSeek'\n },\n // Meta Models\n {\n id: 'meta-llama/llama-3.2-3b-instruct',\n name: 'Llama 3.2',\n description: 'Balanced learning support with clear insights',\n category: 'Meta'\n },\n {\n id: 'meta-llama/llama-3.3-70b-instruct',\n name: 'Llama 3.3',\n description: 'Balanced learning support with clear insights',\n category: 'Meta'\n },\n // xAi Models\n {\n id: 'x-ai/grok-2-1212',\n name: 'Grok 2',\n description: 'A powerful and flexible highly steerable, intelligent model.',\n category: 'xAI'\n },\n];\n\n/**\n * Main StudyAssistant component that serves as the entry point\n */\nconst StudyAssistantInterface = ({\n userName,\n preferredModel,\n conversationId,\n initialConversation = null,\n initialMessages = []\n}) => {\n return (\n\n\n\n {/* Dashboard Link */}\n\n Chat History\n
\n \n\n \n\n\n {/* Chat History List */}\nDashboard\n \n \n {isLoadingHistory ? (\n\n\n\n ) : conversations.length === 0 ? (\n\n Loading...\n\n\n\n ) : (\n\n No chat history yet
\n\n {conversations.map((conversation) => (\n\n )}\nloadConversation(conversation.id)}\n className=\"chat-history-item d-flex flex-column p-3 border-bottom border-secondary cursor-pointer hover-bg-dark\"\n role=\"button\"\n tabIndex=\"0\"\n aria-label={`Load conversation: ${conversation.title || 'Untitled'}`}\n >\n\n ))}\n\n {conversation.title || 'Untitled Conversation'}\n
\n\n {new Date(conversation.created_at).toLocaleDateString()}\n •\n {conversation.messages_count} messages\n\n\n \n {models.find(m => m.id === conversation.selected_model).name || conversation.selected_model}\n \n\n\n \n );\n};\n\nexport default StudyAssistantInterface;\n","import React, { useState, useCallback } from 'react';\nimport { useDropzone } from 'react-dropzone';\nimport axios from 'axios';\nimport { setupAxiosCSRF } from '../../helpers';\n\nconst FileUploader = ({ examTrackerId }) => {\n const [uploadingFiles, setUploadingFiles] = useState([]);\n const [totalUploaded, setTotalUploaded] = useState(0);\n\n const MAX_FILE_SIZE = 10 * 1024 * 1024; // 10MB\n const MAX_TOTAL_SIZE = 30 * 1024 * 1024; // 30MB\n\n const validateFile = (file) => {\n // Check individual file size\n if (file.size > MAX_FILE_SIZE) {\n return `File ${file.name} is too large (${formatFileSize(file.size)}). Maximum file size is ${formatFileSize(MAX_FILE_SIZE)}.`;\n }\n\n // Check total quota\n if (totalUploaded + file.size > MAX_TOTAL_SIZE) {\n return `Adding this file (${formatFileSize(file.size)}) would exceed the total limit of ${formatFileSize(MAX_TOTAL_SIZE)}. You have ${formatFileSize(MAX_TOTAL_SIZE - totalUploaded)} remaining.`;\n }\n\n return null;\n };\n\n const handleUpload = async (file) => {\n // Validate file before attempting upload\n const validationError = validateFile(file);\n if (validationError) {\n setUploadingFiles(prev => [...prev, {\n file,\n progress: 0,\n status: 'error',\n error: validationError\n }]);\n\n // Remove error message after 5 seconds\n setTimeout(() => {\n setUploadingFiles(prev =>\n prev.filter(item => item.file !== file)\n );\n }, 5000);\n\n return;\n }\n\n setUploadingFiles(prev => [...prev, {\n file,\n progress: 0,\n status: 'uploading',\n error: null\n }]);\n\n const formData = new FormData();\n formData.append('exam_material[file]', file);\n\n try {\n setupAxiosCSRF();\n await axios.post(\n `/exam_trackers/${examTrackerId}/exam_materials`,\n formData,\n {\n headers: {\n 'Content-Type': 'multipart/form-data'\n },\n onUploadProgress: (progressEvent) => {\n const progress = (progressEvent.loaded / progressEvent.total) * 100;\n setUploadingFiles(prev =>\n prev.map(item =>\n item.file === file ? { ...item, progress } : item\n )\n );\n }\n }\n );\n\n // Update total uploaded size\n setTotalUploaded(prev => prev + file.size);\n\n // Set status to completed\n setUploadingFiles(prev =>\n prev.map(item =>\n item.file === file ? { ...item, status: 'completed' } : item\n )\n );\n\n // Remove completed upload after 3 seconds\n setTimeout(() => {\n setUploadingFiles(prev => prev.filter(item => item.file !== file));\n window.location.reload(); // Refresh to show updated list\n }, 3000);\n\n } catch (error) {\n setUploadingFiles(prev =>\n prev.map(item =>\n item.file === file ? {\n ...item,\n status: 'error',\n error: error.response.data.message || 'Upload failed'\n } : item\n )\n );\n }\n };\n\n const onDrop = useCallback(acceptedFiles => {\n acceptedFiles.forEach(handleUpload);\n }, [totalUploaded]);\n\n const { getRootProps, getInputProps, isDragActive, fileRejections } = useDropzone({\n onDrop,\n accept: {\n 'application/pdf': ['.pdf']\n },\n maxSize: MAX_FILE_SIZE,\n validator: validateFile\n });\n\n const formatFileSize = (bytes) => {\n if (bytes === 0) return '0 Bytes';\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\n };\n\n return (\n\n \n {/*\n );\n};\n\nexport default FileUploader;\n","import React, { useState } from 'react';\n\nconst AnswerEditor = ({ answer, onAnswerChange, label }) => {\n const [content, setContent] = useState(answer.content);\n const [is_correct, setIsCorrect] = useState(answer.is_correct);\n\n const handleContentChange = (e) => {\n const newContent = e.target.value;\n setContent(newContent);\n onAnswerChange(answer.id, { content: newContent, is_correct });\n };\n\n const handleCorrectChange = (e) => {\n const newCorrect = e.target.checked;\n setIsCorrect(newCorrect);\n onAnswerChange(answer.id, { content, is_correct: newCorrect });\n };\n\n return (\n\n*/}\n\n You can upload various types of study materials in PDF format:\n
\n\n\n\n\n\n \n\n\n\nLecture Notes
\nClass notes, summaries, and handouts
\n\n\n\n \n\n\n\nPast Questions
\nPrevious exam papers and practice tests
\n\n\n\n \n\n\n\nScholarly Articles
\nResearch papers and academic articles
\n\n\n\n \n\n\n\nTextbooks
\nRelevant book chapters or sections
\n\n \n\n\n {/* Show file rejections from dropzone */}\n {fileRejections.length > 0 && (\n\n \n\n\n {isDragActive ? 'Drop your files here' : 'Upload Study Materials'}\n
\n\n Drag and drop your files here or click to browse\n
\n\n\nAccepted formats: PDF files only\nMaximum file size: {formatFileSize(MAX_FILE_SIZE)}\n {/*Total upload limit: {formatFileSize(MAX_TOTAL_SIZE)}*/}\n {/*Remaining space: {formatFileSize(MAX_TOTAL_SIZE - totalUploaded)}*/}\n\n {fileRejections.map(({ file, errors }) => (\n\n )}\n\n {uploadingFiles.length > 0 && (\n\n {errors.map(error => (\n\n ))}\n{error.message}\n ))}\n\n {uploadingFiles.map(({ file, progress, status, error }, index) => (\n\n )}\n\n\n ))}\n\n \n \n {file.name}\n \n \n {status === 'completed' ? 'Complete' :\n status === 'error' ? 'Failed' :\n `${Math.round(progress)}%`}\n \n\n\n {status === 'uploading' && (\n\n \n\n )}\n\n {status === 'error' && (\n\n {error}\n
\n )}\n\n\n );\n};\n\nexport default AnswerEditor;\n","import React, { useState, useEffect } from 'react';\n\nconst InspirationalQuote = () => {\n const [quote, setQuote] = useState('');\n const [fadeIn, setFadeIn] = useState(true);\n\n const quotes = [\n {\n text: \"The best way to predict the future is to create it.\",\n author: \"Peter Drucker\"\n },\n {\n text: \"Education is not preparation for life; education is life itself.\",\n author: \"John Dewey\"\n },\n {\n text: \"The beautiful thing about learning is that no one can take it away from you.\",\n author: \"B.B. King\"\n },\n {\n text: \"The more that you read, the more things you will know, the more that you learn, the more places you'll go.\",\n author: \"Dr. Seuss\"\n },\n {\n text: \"Live as if you were to die tomorrow. Learn as if you were to live forever.\",\n author: \"Mahatma Gandhi\"\n },\n {\n text: \"Knowledge is power. Information is liberating. Education is the premise of progress.\",\n author: \"Kofi Annan\"\n },\n {\n text: \"The best way to predict the future is to create it.\",\n author: \"Peter Drucker\"\n },\n {\n text: \"Success is not the key to happiness. Happiness is the key to success.\",\n author: \"Albert Schweitzer\"\n },\n {\n text: \"Believe you can and you're halfway there.\",\n author: \"Theodore Roosevelt\"\n },\n {\n text: \"The only limit to our realization of tomorrow is our doubts of today.\",\n author: \"Franklin D. Roosevelt\"\n },\n {\n text: \"Your time is limited, don't waste it living someone else's life.\",\n author: \"Steve Jobs\"\n },\n {\n text: \"The most important point is to accept yourself and stand on your two feet.\",\n author: \"Shunryu Suzuki\"\n },\n {\n text: \"The only way to do great work is to love what you do.\",\n author: \"Steve Jobs\"\n },\n {\n text: \"The best preparation for tomorrow is doing your best today.\",\n author: \"H. Jackson Brown Jr.\"\n },\n {\n text: \"Change is inevitable but personal growth is a choice.\",\n author: \"Bob Proctor\"\n },\n {\n text: \"People seldom do what they believe in. They do what is convenient, then repent.\",\n author: \"Bob Dylan\"\n },\n {\n text: \"The only way to achieve the impossible is to believe it is possible.\",\n author: \"Charles Kingsleigh\"\n },\n {\n text: \"The only person you are destined to become is the person you decide to be.\",\n author: \"Ralph Waldo Emerson\"\n },\n {\n text: \"Life can be found only in the present moment. The past is gone, the future is not yet here, and if we do not go back to ourselves in the present moment, we cannot be in touch with life.\",\n author: \"Thich Nhat Hanh\"\n },\n {\n text: \"Success is not final, failure is not fatal: it is the courage to continue that counts.\",\n author: \"Winston Churchill\"\n },\n {\n text: \"Action is the foundational key to all success.\",\n author: \"Pablo Picasso\"\n },\n {\n text: \"Focused, hard work is the real key to success.\",\n author: \"John Carmack\"\n },\n {\n text: \"Work harder on yourself than you do on your job.\",\n author: \"Jim Rohn\"\n },\n {\n text: \"If you don't find the time, if you don't do the work, you don't get the results.\",\n author: \"Arnold Schwarzenegger\"\n }\n ];\n\n useEffect(() => {\n const getRandomQuote = () => {\n setFadeIn(false); // Start fade out\n\n setTimeout(() => {\n const randomIndex = Math.floor(Math.random() * quotes.length);\n setQuote(quotes[randomIndex]);\n setFadeIn(true); // Start fade in\n }, 500); // Half of the transition time\n };\n\n // Display initial quote\n getRandomQuote();\n\n const quoteInterval = setInterval(getRandomQuote, 5000); // Changed to 5 seconds\n\n return () => clearInterval(quoteInterval);\n }, []);\n\n return (\n\n\n\n {/* Answer Label */}\n\n\n {/* Correct Answer Indicator */}\n {is_correct && (\n\n {label}\n\n\n {/* Answer Input */}\n\n \n {content.length}/200\n \n \n\n\n {/* Correct Answer Toggle */}\n\n \n \n\n\n \n \n \n\n )}\n\n\n );\n};\n\nexport default InspirationalQuote;\n\nconst styles = `\n.quote-container {\n transition: opacity 0.5s ease-in-out;\n}\n\n.fade-in {\n opacity: 1;\n}\n\n.fade-out {\n opacity: 0;\n}\n\n.quote-content {\n position: relative;\n border: 1px solid var(--border-color);\n}\n\n.quote-icon {\n display: flex;\n justify-content: center;\n}\n\nblockquote {\n font-size: 1.125rem;\n line-height: 1.6;\n font-weight: 500;\n text-align: center;\n margin: 0;\n padding: 0;\n}\n\nfigcaption {\n text-align: center;\n font-size: 0.875rem;\n font-weight: 500;\n}\n\n/* Animation for quote icon */\n.quote-icon i {\n transform-origin: center;\n animation: quoteFloat 3s ease-in-out infinite;\n}\n\n@keyframes quoteFloat {\n 0% { transform: translateY(0) rotate(0); }\n 50% { transform: translateY(-5px) rotate(5deg); }\n 100% { transform: translateY(0) rotate(0); }\n}\n\n/* Mobile Optimizations */\n@media (max-width: 768px) {\n blockquote {\n font-size: 1rem;\n }\n\n .quote-icon i {\n font-size: 1.5rem;\n }\n}\n`;\n\n// Add styles to document\nconst styleSheet = document.createElement(\"style\");\nstyleSheet.innerText = styles;\ndocument.head.appendChild(styleSheet);\n","import React, { useState } from 'react';\nimport axios from 'axios';\nimport { setupAxiosCSRF } from '../../helpers';\nimport AnswerEditor from './AnswerEditor';\n\nconst QuestionEditor = ({ question, showAnswer }) => {\n const [isEditing, setIsEditing] = useState(false);\n const [content, setContent] = useState(question.content);\n const [explanation, setExplanation] = useState(question.explanation || '');\n const [answers, setAnswers] = useState(question.answers);\n const [errors, setErrors] = useState(null);\n const [isSaving, setIsSaving] = useState(false);\n const [saveSuccess, setSaveSuccess] = useState(false);\n\n const handleEditClick = () => {\n setIsEditing(true);\n setSaveSuccess(false);\n };\n\n const handleCancelClick = () => {\n setIsEditing(false);\n setContent(question.content);\n setExplanation(question.explanation || '');\n setAnswers(question.answers);\n setSaveSuccess(false);\n };\n\n const handleAnswerChange = (id, updatedAnswer) => {\n setAnswers((prevAnswers) =>\n prevAnswers.map((answer) =>\n answer.id === id ? { ...answer, ...updatedAnswer } : answer\n )\n );\n };\n\n const handleSaveClick = async () => {\n try {\n setIsSaving(true);\n setupAxiosCSRF();\n const response = await axios.patch(`/questions/${question.id}`, {\n question: {\n content,\n explanation,\n answers_attributes: answers.map(({ id, content, is_correct }) => ({\n id,\n content,\n is_correct,\n })),\n },\n });\n\n if (response.status === 200) {\n setContent(response.data.content);\n setExplanation(response.data.explanation);\n setAnswers(response.data.answers);\n setIsEditing(false);\n setErrors(null);\n setSaveSuccess(true);\n setTimeout(() => setSaveSuccess(false), 3000);\n }\n } catch (error) {\n if (error.response.data.errors) {\n setErrors(error.response.data.errors);\n }\n } finally {\n setIsSaving(false);\n }\n };\n\n return (\n\n\n\n \n\n\n {quote && (\n\n\n )}\n\n {quote.text}\n\n\n\n \n {quote.author}\n \n\n {isEditing ? (\n\n );\n};\n\nexport default QuestionEditor;\n","import React, { useState } from 'react';\nimport QuestionEditor from './QuestionEditor';\n\nconst QuizEditor = ({ quiz, subject, level, quizID }) => {\n const [showAnswer, setShowAnswer] = useState(false);\n const [status] = useState(quiz.status);\n\n return (\n\n {/* Question Content */}\n\n ) : (\n\n \n\n\n {/* Answer Options */}\n\n \n\n\n {/* Explanation */}\n\n {answers.map((answer, index) => (\n\n\n\n ))}\n\n \n \n\n\n {/* Error Messages */}\n {errors && (\n\n \n {errors.map((error, index) => (\n\n )}\n\n {/* Action Buttons */}\n{error}\n ))}\n\n \n \n\n\n\n )}\n\n {/* Question Content */}\n\n\n {/* Answer Options */}\n\n\n\n {/* Action Buttons */}\n{question.content}
\n\n {saveSuccess && (\n\n\n \n\n )}\n \n\n {answers.map((answer, index) => (\n\n\n {/* Explanation */}\n {showAnswer && explanation && (\n\n\n ))}\n\n\n\n {String.fromCharCode(65 + index)}\n\n {answer.content}\n {showAnswer && answer.is_correct && (\n \n )}\n\n\n )}\n\n \n\nExplanation
\n{explanation}
\n\n {/* Header Card */}\n\n );\n};\n\nexport default QuizEditor;\n","import React, { useState, useEffect } from 'react';\nimport InspirationalQuote from './InspirationalQuote';\n\nconst QuizProgress = ({ quizGeneratorId, initialStatus, initialProgress }) => {\n const [progress, setProgress] = useState(initialProgress || 0);\n const [status, setStatus] = useState(initialStatus || 'in_progress');\n const [errorMessage, setErrorMessage] = useState(null);\n const [errorData, setErrorData] = useState(null);\n\n useEffect(() => {\n let interval;\n\n const fetchProgress = () => {\n fetch(`/quiz_generators/${quizGeneratorId}/progress.json`, {\n headers: { 'Cache-Control': 'no-cache' },\n })\n .then(response => {\n if (!response.ok) throw new Error('Network response was not ok.');\n return response.json();\n })\n .then(data => {\n // console.log('Fetched progress:', data);\n setProgress(data.progress);\n setStatus(data.status);\n\n if (data.status === 'completed') {\n if (data.redirect_url) {\n window.location.href = data.redirect_url;\n } else {\n setErrorData({\n message: 'Quiz generation completed, but no redirect URL found.',\n suggestions: ['Refresh the page', 'Try accessing your quizzes directly']\n });\n clearInterval(interval);\n }\n } else if (data.status === 'failed') {\n setErrorData(data.error || {\n message: 'Quiz generation failed. Please try again.',\n suggestions: ['Try again', 'Contact support if the problem persists']\n });\n clearInterval(interval);\n }\n })\n .catch(error => {\n console.error('Error fetching progress:', error);\n setErrorData({\n message: 'An error occurred while fetching progress.',\n suggestions: ['Check your internet connection', 'Refresh the page']\n });\n clearInterval(interval);\n });\n };\n\n interval = setInterval(fetchProgress, 1000);\n return () => clearInterval(interval);\n }, [quizGeneratorId]);\n\n const renderFailedState = () => (\n\n\n\n {/* Questions List */}\n\n\n\n {/* Title and Status */}\n\n\n {/* Stats Row */}\n\n\n\n {/* Controls */}\n{quiz.title}
\n \n \n {status === 'hidden' ? 'Private' : 'Public'}\n \n\n {/* Show Answer Toggle */}\n\n\n setShowAnswer(!showAnswer)}\n />\n \n\n\n {/* Action Buttons */}\n\n \n Study Mode\n \n \n Edit Quiz\n \n\n\n\n\n\n\n\n\n\n\n Questions\n
\n{quiz.questions.length}
\n\n\n\n\n\n\n\n Subject\n
\n{subject}
\n\n\n\n\n\n\n\n Level\n
\n{level}
\n\n\n\n\n\n\n\n Status\n
\n\n {status.charAt(0).toUpperCase() + status.slice(1)}\n
\n\n {quiz.questions.map((question, index) => (\n\n\n\n ))}\n\n {index + 1}\n\n\n \n\n );\n\n return (\n\n \n\nGeneration Failed
\n\n {errorData.details}\n
\n\n {/* Show retry button */}\n\n \n\n\n\n );\n};\n\nexport default QuizProgress;\n","import React from 'react';\n\nconst AnswerOptions = ({\n question,\n selectedAnswer,\n onAnswerSelect,\n submissionStatus\n}) => {\n switch (question.question_type) {\n case 'multiple_choice':\n case 'true_false':\n return (\n\n\n\n\n\n\n\n {/* Status Icons and Messages */}\n\n\n {status === 'in_progress' && (\n\n\n {/* Progress Section */}\n {status === 'in_progress' && (\n\n\n )}\n\n {status === 'completed' && (\n\n \n\nGenerating Your Quiz
\n\n Our AI is crafting your perfect quiz\n
\n\n\n )}\n\n { status === 'failed' && renderFailedState() }\n\n \n\nQuiz Ready!
\n\n Redirecting you to your quiz...\n
\n\n {/* Progress Bar */}\n\n )}\n\n {/* Error Message */}\n {errorMessage && status !== 'failed' && (\n\n\n\n {/* Progress Steps */}\n\n\n\n \n {Math.floor(progress)}%\n \n\n\n\n\n {/* Inspirational Quote */}\n\n\n= 5 ? 'bg-success bg-opacity-10' : 'bg-darker'}`}>\n = 5 ? 'text-success' : 'text-theme-secondary'}`}>\n\n= 5 ? 'text-theme' : 'text-theme-secondary'}>\n Analyzing Content\n\n\n\n= 10 ? 'bg-success bg-opacity-10' : 'bg-darker'}`}>\n = 10 ? 'text-success' : 'text-theme-secondary'}`}>\n\n= 10 ? 'text-theme' : 'text-theme-secondary'}>\n Generating Questions\n\n\n\n= 90 ? 'bg-success bg-opacity-10' : 'bg-darker'}`}>\n = 90 ? 'text-success' : 'text-theme-secondary'}`}>\n\n= 90 ? 'text-theme' : 'text-theme-secondary'}>\n Finalizing Quiz\n\n\n\n\n \n\n )}\n\n \n\n\n\nOops! Something went wrong
\n{errorMessage}
\n\n {question.answers.map((answer) => (\n\n );\n\n case 'short_answer':\n return (\n\n\n ))}\n\n onAnswerSelect(answer.id)}\n className=\"visually-hidden\"\n />\n \n\n\n\n );\n\n case 'case_study':\n return (\n\n\n );\n\n default:\n return null;\n }\n};\n\nexport default AnswerOptions;\n","import React, { useState, useEffect } from 'react';\nimport axios from 'axios';\nimport { setupAxiosCSRF } from '../../helpers';\nimport AnswerOptions from './AnswerOptions';\n\nconst QuizAttempt = ({ studyBlockId, quizId, title, topic, questionCount }) => {\n // State Management\n const [questions, setQuestions] = useState([]);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(null);\n const [currentQuestionIndex, setCurrentQuestionIndex] = useState(0);\n const [selectedAnswers, setSelectedAnswers] = useState({});\n const [submissionStatus, setSubmissionStatus] = useState({});\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [showSubmitConfirm, setShowSubmitConfirm] = useState(false);\n const [showMobileNav, setShowMobileNav] = useState(false);\n\n // Calculate progress\n const progress = (Object.keys(selectedAnswers).length / questionCount) * 100;\n const currentProgress = ((currentQuestionIndex + 1) / questionCount) * 100;\n const isQuizComplete = Object.keys(selectedAnswers).length === questionCount;\n\n // Fetch questions when component mounts\n useEffect(() => {\n const fetchQuestions = async () => {\n try {\n setLoading(true);\n setupAxiosCSRF();\n const response = await axios.get(`/study_blocks/${studyBlockId}/quiz/questions`);\n setQuestions(response.data.questions);\n } catch (err) {\n setError('Failed to load quiz questions. Please try again.');\n console.error('Error fetching questions:', err);\n } finally {\n setLoading(false);\n }\n };\n\n fetchQuestions();\n }, [studyBlockId]);\n\n // Handle answer selection\n const handleAnswerSelect = async (answerId) => {\n const currentQuestion = questions[currentQuestionIndex];\n\n // Update local state\n setSelectedAnswers(prev => ({\n ...prev,\n [currentQuestion.id]: answerId\n }));\n\n // Update submission status\n setSubmissionStatus(prev => ({\n ...prev,\n [currentQuestion.id]: 'saving'\n }));\n\n try {\n // Save answer to server\n await axios.post(`/study_blocks/${studyBlockId}/quiz/answer`, {\n question_id: currentQuestion.id,\n answer_id: answerId\n });\n\n // Update status to saved\n setSubmissionStatus(prev => ({\n ...prev,\n [currentQuestion.id]: 'saved'\n }));\n\n // Auto-advance to next question for multiple choice/true-false\n if (\n ['multiple_choice', 'true_false'].includes(currentQuestion.question_type) &&\n currentQuestionIndex < questions.length - 1\n ) {\n setTimeout(() => handleNextQuestion(), 500);\n } else if (currentQuestionIndex === questions.length - 1) {\n // Show submit confirmation if this is the last question and all questions are answered\n if (Object.keys(selectedAnswers).length + 1 === questions.length) {\n setTimeout(() => setShowSubmitConfirm(true), 800);\n }\n }\n } catch (error) {\n console.error('Failed to save answer:', error);\n setSubmissionStatus(prev => ({\n ...prev,\n [currentQuestion.id]: 'error'\n }));\n }\n };\n\n // Navigation handlers\n const handlePreviousQuestion = () => {\n if (currentQuestionIndex > 0) {\n setCurrentQuestionIndex(currentQuestionIndex - 1);\n }\n };\n\n const handleNextQuestion = () => {\n if (currentQuestionIndex < questions.length - 1) {\n setCurrentQuestionIndex(currentQuestionIndex + 1);\n }\n };\n\n const handleQuestionJump = (index) => {\n if (index >= 0 && index < questions.length) {\n setCurrentQuestionIndex(index);\n setShowMobileNav(false); // Close mobile nav after selection\n }\n };\n\n // Quiz submission\n const handleSubmitAttempt = async () => {\n if (!isQuizComplete) {\n alert('Please answer all questions before submitting.');\n return;\n }\n\n setIsSubmitting(true);\n\n try {\n setupAxiosCSRF();\n await axios.post(`/study_blocks/${studyBlockId}/quiz/submit`);\n\n // Redirect to results page\n window.location.href = `/study_blocks/${studyBlockId}/quiz/result`;\n } catch (error) {\n console.error('Failed to submit quiz:', error);\n setIsSubmitting(false);\n alert('Failed to submit quiz. Please try again.');\n }\n };\n\n // Render desktop sidebar navigation\n const renderDesktopNavigation = () => (\n\n\nCase Study:
\n{question.scenario}
\n\n\n );\n\n // Render mobile navigation\n const renderMobileNavigation = () => (\n\n\n\n\n \n\nQuestions
\n\n {/* Question Grid */}\n\n\n {questions.map((question, index) => (\n \n ))}\n\n\n {/* Progress Bar */}\n\n \n\n\n \n {Object.keys(selectedAnswers).length} of {questionCount} answered\n \n\n {/* Submit Button */}\n {isQuizComplete && (\n\n \n\n )}\n\n\n );\n\n // Loading state\n if (loading) {\n return (\n\n {/* Top bar with navigation toggle and progress */}\n\n\n\n\n {/* Progress bars */}\n\n \n \n Question {currentQuestionIndex + 1} of {questionCount}\n \n\n\n \n \n {Object.keys(selectedAnswers).length}/{questionCount}\n \n\n\n\n\n {/* Expandable question navigation */}\n {showMobileNav && (\n\n \n\n\n \n\n\n\n )}\n\n {/* Submit button for mobile (when all questions are answered) */}\n {isQuizComplete && (\n\n {questions.map((question, index) => (\n \n ))}\n\n\n \n\n )}\n\n\n );\n }\n\n // Error state\n if (error) {\n return (\n\n Loading quiz...\n\n\n \n {error}\n\n );\n }\n\n const currentQuestion = questions[currentQuestionIndex];\n\n return (\n\n {/* Quiz Header */}\n\n );\n};\n\nexport default QuizAttempt;\n","import React from 'react';\n\nconst QuizCompletionSummary = ({\n score,\n totalPoints,\n percentage,\n duration,\n typePerformance,\n quizId,\n canRetake,\n attemptId\n}) => {\n return (\n\n\n\n {/* Mobile Navigation (only visible on small screens) */}\n\n\n\n\n\n\n{title}
\n\n {topic}\n
\n\n\n\n {/* Main Content */}\n\n\n\n {renderMobileNavigation()}\n\n\n {/* Desktop Question Navigation Sidebar (hidden on mobile) */}\n\n\n {/* Submit Confirmation Modal */}\n {showSubmitConfirm && (\n\n {renderDesktopNavigation()}\n\n\n {/* Main Question Area */}\n\n\n\n\n\n\n\n\n Question {currentQuestionIndex + 1} of {questions.length}\n
\n{currentQuestion.content}
\n\n {/* Answer Options */}\n\n\n {/* Navigation Footer */}\n\n\n {/* Answer Status Indicator */}\n {submissionStatus[currentQuestion.id] && (\n \n {submissionStatus[currentQuestion.id] === 'saving' && (\n\n )}\n\n \n Saving your answer...\n\n )}\n {submissionStatus[currentQuestion.id] === 'saved' && (\n\n \n Answer saved\n\n )}\n {submissionStatus[currentQuestion.id] === 'error' && (\n\n \n Failed to save answer\n\n )}\n\n\n\n \n\n \n\n\n\n )}\n\n {/* Styles */}\n \n\n\n\n\n\n\nSubmit Quiz
\n \n\n\n\n\n\n \n\nAll Questions Answered!
\nAre you sure you want to submit your quiz?
\n\n You won't be able to change your answers after submission.\n
\n\n \n \n\n\n\n );\n};\n\nexport default QuizCompletionSummary;\n","import React, { useState, useEffect } from \"react\";\nimport axios from 'axios';\nimport { setupAxiosCSRF } from '../../helpers';\nimport QuizCompletionSummary from './QuizCompletionSummary';\n\nconst QuizTakingInterface = ({ quiz, questions, quiz_id }) => {\n const [selectedAnswer, setSelectedAnswer] = useState({});\n const [currentQuestionIndex, setCurrentQuestionIndex] = useState(0);\n // const [isQuizSubmitted, setIsQuizSubmitted] = useState(false);\n const totalTime = questions.reduce((total, question) => total + question.time_limit, 0);\n const [timeLeft, setTimeLeft] = useState(totalTime);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [showSubmitDialog, setShowSubmitDialog] = useState(false);\n const [answerSubmissionStatus, setAnswerSubmissionStatus] = useState({});\n const [shuffledAnswers, setShuffledAnswers] = useState([]);\n const [showCompletionSummary, setShowCompletionSummary] = useState(false);\n const [quizSummary, setQuizSummary] = useState(null);\n const [countDownInterval, setCountDownInterval] = useState(null);\n const [showMobileNav, setShowMobileNav] = useState(false);\n const totalQuestions = questions.length;\n const progress = ((currentQuestionIndex + 1) / totalQuestions) * 100;\n const MAX_RETRIES = 3;\n const RETRY_DELAY = 3000;\n\n // Count answered questions\n const answeredCount = Object.keys(selectedAnswer).length;\n const answeredPercentage = (answeredCount / totalQuestions) * 100;\n\n const handleAnswerSelection = (questionId, answerId) => {\n // Update the selected answer in state\n setSelectedAnswer(prevState => {\n const newState = {\n ...prevState,\n [questionId]: answerId\n };\n\n // Check if this was the last unanswered question\n const isLastQuestion = currentQuestionIndex === questions.length - 1;\n const allQuestionsAnswered = questions.every(q => newState[q.id] !== undefined);\n\n // If this is the last question and all questions are now answered, prompt for submission\n if (isLastQuestion && allQuestionsAnswered) {\n // Show submission dialog after a small delay to let the user see their selection\n setTimeout(() => {\n setShowSubmitDialog(true);\n }, 800);\n }\n\n return newState;\n });\n\n // Update submission status\n setAnswerSubmissionStatus(prevStatus => ({\n ...prevStatus,\n [questionId]: 'saving'\n }));\n\n // Save answer to server\n saveAnswerToServer(questionId, answerId);\n\n // Auto-advance to next question after a brief delay\n setTimeout(() => {\n if (currentQuestionIndex < questions.length - 1) {\n setCurrentQuestionIndex(currentQuestionIndex + 1);\n }\n }, 500); // Small delay to show the saving status\n };\n\n const saveAnswerToServer = (questionId, answerId, retryCount = 0) => {\n setupAxiosCSRF();\n axios.post(`/quizzes/${quiz.id}/submit_answer`, {\n question_id: questionId,\n answer_id: answerId,\n })\n .then(response => {\n setAnswerSubmissionStatus(prevStatus => ({\n ...prevStatus,\n [questionId]: 'saved'\n }));\n })\n .catch(error => {\n if (retryCount < MAX_RETRIES) {\n setTimeout(() => {\n saveAnswerToServer(questionId, answerId, retryCount + 1);\n }, RETRY_DELAY);\n } else {\n setAnswerSubmissionStatus(prevStatus => ({\n ...prevStatus,\n [questionId]: 'error'\n }));\n }\n });\n };\n\n const handleQuestionJump = (questionIndex) => {\n if (questionIndex >= 0 && questionIndex < questions.length) {\n setCurrentQuestionIndex(questionIndex);\n // Hide mobile nav after selection on small screens\n setShowMobileNav(false);\n }\n };\n\n const handlePreviousQuestion = () => {\n if (currentQuestionIndex > 0) {\n setCurrentQuestionIndex(currentQuestionIndex - 1);\n }\n };\n\n const handleNextQuestion = () => {\n if (currentQuestionIndex < questions.length - 1) {\n setCurrentQuestionIndex(currentQuestionIndex + 1);\n }\n };\n\n const formatTime = (seconds) => {\n const h = Math.floor(seconds / 3600);\n const m = Math.floor((seconds % 3600) / 60);\n const s = seconds % 60;\n return `${h}:${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\n };\n\n useEffect(() => {\n const interval = setInterval(() => {\n setTimeLeft(prevTime => {\n if (prevTime <= 1) {\n clearInterval(interval);\n handleSubmit();\n return 0;\n }\n return prevTime - 1;\n });\n }, 1000);\n\n // Store the interval ID\n setCountDownInterval(interval);\n\n // Cleanup function\n return () => {\n if (interval) {\n clearInterval(interval);\n }\n };\n }, []);\n\n useEffect(() => {\n const shuffleArray = array => {\n let currentIndex = array.length;\n let temporaryValue, randomIndex;\n\n while (currentIndex !== 0) {\n randomIndex = Math.floor(Math.random() * currentIndex);\n currentIndex -= 1;\n\n temporaryValue = array[currentIndex];\n array[currentIndex] = array[randomIndex];\n array[randomIndex] = temporaryValue;\n }\n\n return array;\n };\n\n if (questions && questions.length > 0 && questions[currentQuestionIndex]) {\n const shuffled = shuffleArray([...questions[currentQuestionIndex].answers]);\n setShuffledAnswers(shuffled);\n }\n }, [questions, currentQuestionIndex]);\n\n const handleSubmitClick = () => {\n setShowSubmitDialog(true);\n };\n\n const handleSubmit = () => {\n if (countDownInterval) {\n clearInterval(countDownInterval);\n setCountDownInterval(null);\n }\n\n setIsSubmitting(true);\n setShowSubmitDialog(false);\n\n setupAxiosCSRF();\n axios.post(`/quizzes/${quiz_id}/finalize_submission`)\n .then(response => {\n setIsSubmitting(false);\n\n // Calculate total points and scored points\n let totalPoints = 0;\n let scoredPoints = 0;\n const typePerformance = {};\n\n questions.forEach(question => {\n const type = question.question_type;\n const questionPoints = question.points; // Get points for this question\n totalPoints += questionPoints;\n\n if (!typePerformance[type]) {\n typePerformance[type] = { total: 0, correct: 0, points: 0, maxPoints: 0, percentage: 0 };\n }\n\n typePerformance[type].total += 1;\n typePerformance[type].maxPoints += questionPoints;\n\n // Check if answer was correct and add points\n if (selectedAnswer[question.id] === question.answers.find(a => a.is_correct).id) {\n typePerformance[type].correct += 1;\n typePerformance[type].points += questionPoints;\n scoredPoints += questionPoints;\n }\n });\n\n // Calculate percentages for each type\n Object.keys(typePerformance).forEach(type => {\n typePerformance[type].percentage =\n (typePerformance[type].points / typePerformance[type].maxPoints) * 100;\n });\n\n // Set quiz summary data with actual points\n setQuizSummary({\n score: scoredPoints,\n totalPoints: totalPoints,\n percentage: (scoredPoints / totalPoints) * 100,\n duration: formatTime(totalTime - timeLeft),\n typePerformance,\n canRetake: response.data.can_retake,\n attemptId: response.data.attempt_id\n });\n\n setShowCompletionSummary(true);\n })\n .catch(error => {\n setIsSubmitting(false);\n console.error(\"Error submitting quiz:\", error);\n });\n };\n\n // Render the desktop sidebar navigation\n const renderDesktopNavigation = () => (\n\n\n {/* */}\n\n \n\n\n\n\n\n {/* Score Circle */}\n\n\n\n\n {/* Action Cards */}\n\n\n\n \n\n\n {Math.round(percentage)}%\n\n\n {/* Results Card */}\n\n\n {/* Performance by Question Type */}\n\n\n\n {/* Challenge Friends Card */}\n\n\n\n \n\nResults
\n\n {score}/{totalPoints} points
\n
\n Duration: {duration}\n\n\n\n {/* Retake Card */}\n\n\n\n \n\nChallenge Friends
\n \n\n\n\n\n\n \n\nRetake Quiz
\n {canRetake ? (\n \n ) : (\n\n Maximum attempts reached\n
\n )}\n\n\n\n {/* View Detailed Results Button */}\nPerformance by Question Type
\n\n {Object.entries(typePerformance).map(([type, data]) => (\n\n\n\n ))}\n\n\n\n \n {type.replace(/_/g, ' ')\n .split(' ')\n .map(word => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ')}\n \n {Math.round(data.percentage)}%\n\n\n \n\n \n {data.correct}/{data.total} correct\n \n\n \n\n\n\n );\n\n // Render mobile navigation\n const renderMobileNavigation = () => (\n\n\n\n\n\n\n \n\nQuestions
\n\n\n\n {questions.map((q, index) => {\n const isAnswered = !!selectedAnswer[q.id];\n let statusClass = isAnswered ? 'answered' :\n (index === currentQuestionIndex ? 'current' : '');\n\n return (\n \n );\n })}\n\n\n\n \n\n\n \n {currentQuestionIndex + 1} of {totalQuestions}\n \n\n\n );\n\n return (\n\n\n\n {/* Compact Progress Indicator */}\n\n\n\n\n {/* Progress Bars */}\n\n \n\n\n \n Question {currentQuestionIndex + 1} of {totalQuestions}\n \n\n\n \n \n {answeredCount}/{totalQuestions}\n \n\n\n\n\n {/* Expandable Question Navigation */}\n {showMobileNav && (\n\n \n\n\n \n\n\n\n )}\n\n {questions.map((q, index) => {\n const isAnswered = !!selectedAnswer[q.id];\n let statusClass = isAnswered ? 'answered' :\n (index === currentQuestionIndex ? 'current' : '');\n\n return (\n \n );\n })}\n\n\n {/* Quiz Header */}\n\n );\n};\n\nexport default QuizTakingInterface;\n","import React, { useState, useEffect } from 'react';\nimport axios from 'axios';\nimport { setupAxiosCSRF } from '../../helpers';\n\nconst StudyPlanStatus = ({ examTrackerId }) => {\n const [status, setStatus] = useState('loading');\n const [data, setData] = useState(null);\n const [error, setError] = useState(null);\n const [lastUpdate, setLastUpdate] = useState(null);\n\n // Polling interval in milliseconds (3 seconds)\n const POLL_INTERVAL = 3000;\n\n const fetchStatus = async () => {\n try {\n setupAxiosCSRF();\n const response = await axios.get(`/exam_trackers/${examTrackerId}/study_plan/generation_status`);\n setStatus(response.data.status);\n setData(response.data.data);\n setError(null);\n } catch (err) {\n setError(err.response.data.error || 'Failed to fetch status');\n }\n };\n\n useEffect(() => {\n let pollTimer;\n let mounted = true;\n\n const startPolling = async () => {\n if (mounted) {\n await fetchStatus();\n pollTimer = setInterval(fetchStatus, POLL_INTERVAL);\n }\n };\n\n startPolling();\n\n return () => {\n mounted = false;\n if (pollTimer) clearInterval(pollTimer);\n };\n }, [examTrackerId]);\n\n const handleStartAnalysis = async () => {\n try {\n setupAxiosCSRF();\n await axios.post(`/exam_trackers/${examTrackerId}/topic_relationship`);\n setStatus('analyzing_materials');\n await fetchStatus();\n } catch (err) {\n setError('Failed to start analysis');\n }\n };\n\n const handleGeneratePlan = async () => {\n try {\n setupAxiosCSRF();\n await axios.post(`/exam_trackers/${examTrackerId}/study_plan`);\n setStatus('generating');\n await fetchStatus();\n } catch (err) {\n setError('Failed to start plan generation');\n }\n };\n\n const handleRegeneratePlan = async () => {\n if (!confirm('This will replace your existing study plan. Are you sure?')) {\n return;\n }\n\n try {\n setupAxiosCSRF();\n await axios.post(`/exam_trackers/${examTrackerId}/study_plan/regenerate`);\n setStatus('analyzing_materials');\n await fetchStatus();\n } catch (err) {\n setError('Failed to start plan regeneration');\n }\n };\n\n const handleRetryAnalysis = async () => {\n try {\n setupAxiosCSRF();\n await axios.post(`/exam_trackers/${examTrackerId}/topic_relationship/retry_analysis`);\n setStatus('analyzing_materials');\n await fetchStatus();\n } catch (err) {\n setError('Failed to restart topic analysis');\n }\n };\n\n if (error) {\n return (\n\n\n\n {/* Mobile Navigation (top) */}\n\n\n\n\n\n\n\n\n\n\n\n{quiz.title}
\n\n \n {questions.length} Questions\n
\n\n\n\n \n \n {formatTime(timeLeft)}\n \n\n\n\n\n {/* Main Content */}\n\n {renderMobileNavigation()}\n\n\n {/* Question Navigation Sidebar (desktop) */}\n\n\n {/* Submit Confirmation Modal */}\n {showSubmitDialog && (\n\n {renderDesktopNavigation()}\n\n\n {/* Main Question Area */}\n\n\n\n\n\n\n\n\n\n\n Question {currentQuestionIndex + 1}\n
\n\n {questions[currentQuestionIndex].content}\n
\n\n\n\n\n {shuffledAnswers.map(answer => (\n\n\n\n ))}\n\n {answerSubmissionStatus[questions[currentQuestionIndex].id] && (\n\n handleAnswerSelection(questions[currentQuestionIndex].id, answer.id)}\n className=\"visually-hidden\"\n />\n \n\n\n {answerSubmissionStatus[questions[currentQuestionIndex].id] === 'saving' && (\n\n )}\n\n \n Saving your answer...\n\n )}\n {answerSubmissionStatus[questions[currentQuestionIndex].id] === 'saved' && (\n\n \n Answer saved successfully\n\n )}\n {answerSubmissionStatus[questions[currentQuestionIndex].id] === 'error' && (\n\n \n Failed to save answer\n\n )}\n\n\n\n \n\n {Object.keys(selectedAnswer).length === questions.length ? (\n \n ) : (\n \n )}\n\n\n\n )}\n\n {showCompletionSummary && quizSummary && (\n\n\n\n\n\n\nSubmit Quiz
\n\n\nAre you sure you want to submit your quiz?
\n\n You won't be able to change your answers after submission.\n
\n\n \n \n\nwindow.location.href = `/quizzes/${quiz_id}/result`}\n />\n )}\n\n {/* Modal Backdrop */}\n {showSubmitDialog && (\n \n )}\n\n {/* Additional Styles */}\n \n \n\n );\n }\n\n switch (status) {\n case 'loading':\n return (\n\n \n\nError
\n{error}
\n \n\n\n );\n\n case 'analyzing_materials':\n return (\n\n Loading...\n\n\n\n );\n\n case 'ready_for_analysis':\n return (\n\n\n\n Loading...\n\nAnalyzing Study Materials
\n\n Please wait while we analyze your materials. You can start Study plan generation once analysis is complete.\n
\n\n\n );\n\n case 'analysis_failed':\n return (\n\n \n\nMaterials Ready for Analysis
\n\n Your materials have been processed. Ready to analyze topics and relationships?\n
\n \n\n\n );\n\n case 'ready_to_generate':\n return (\n\n \n\nMaterial Analysis Failed
\n\n {data.error_message || 'An error occurred while analyzing your study materials.'}\n
\n \n\n\n );\n\n case 'materials_changed':\n return (\n\n \n\nAnalysis Complete!
\n\n Topic analysis is complete. Ready to generate your personalized study plan?\n
\n \n\n\n );\n\n case 'ready_to_generate':\n return (\n\n \n\nStudy Materials Have Changed
\n\n Your study materials have been modified since your last study plan was generated.\n We recommend regenerating your plan to include these changes.\n
\n \n\n\n );\n\n case 'generating':\n return (\n\n \n\nReady to Create Your Study Plan?
\n\n We'll analyze your study materials and create a personalized study plan\n to help you prepare for your exam.\n
\n \n\n\n );\n\n case 'generation_failed':\n return (\n\n\n\n Loading...\n\nGenerating Your Study Plan
\n\n Please wait while we analyze your materials and create your personalized study plan. This may take a few minutes. You will receive an email once your study plan is ready\n
\n\n\n );\n\n case 'generated':\n return (\n\n \n\nGeneration Failed
\n\n {data.error_message || 'An error occurred while generating your study plan.'}\n
\n \n\n\n );\n\n case 'awaiting_materials':\n return (\n\n \n\nStudy Plan Generated!
\n\n Your personalized study plan is ready. Start your structured preparation for the exam.\n
\n \n View Study Plan\n \n\n\n );\n\n default:\n return null;\n }\n};\n\nexport default StudyPlanStatus;\n","import React from 'react';\nimport { LineChart, Line, PieChart, Pie, BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer } from 'recharts';\n\nconst ActivityLabel = ({ activityType }) => {\n const translations = {\n document_processing: \"Processing Study Materials\",\n study_advice: \"Creating Study Advice\",\n learning_plan_creation: \"Creating Learning Plan\",\n practice_quiz_creation: \"Creating Practice Quiz\",\n exam_quiz_creation: \"Creating Exam Quiz\",\n content_indexing: \"Organizing Content\",\n study_note_creation: \"Creating Study Notes\",\n content_summary: \"Summarizing Content\",\n topic_identification: \"Identifying Topics\",\n topic_connection_analysis: \"Analyzing Topic Connections\",\n assistant_chat: \"Chat with Study Assistant\"\n };\n\n return {translations[activityType] || activityType};\n};\n\n// Activity color mapping\nconst activityColors = {\n study_advice: '#4F46E5', // Indigo\n learning_plan_creation: '#06B6D4', // Cyan\n practice_quiz_creation: '#10B981', // Emerald\n exam_quiz_creation: '#F59E0B', // Amber\n content_indexing: '#EC4899', // Pink\n study_note_creation: '#8B5CF6', // Violet\n content_summary: '#14B8A6', // Teal\n topic_identification: '#6366F1', // Indigo\n topic_connection_analysis: '#8B5CF6', // Violet\n document_processing: '#3B82F6', // Blue\n assistant_chat: '#FFFFFF' // Green\n};\n\n// Function to get color for activity\nconst getActivityColor = (activity) => activityColors[activity] || '#4F46E5';\n\n// Translation mapping (as we discussed earlier)\nconst translations = {\n document_processing: \"Processing Study Materials\",\n study_advice: \"Creating Study Advice\",\n learning_plan_creation: \"Creating Learning Plan\",\n practice_quiz_creation: \"Creating Practice Quiz\",\n exam_quiz_creation: \"Creating Exam Quiz\",\n content_indexing: \"Organizing Content\",\n study_note_creation: \"Creating Study Notes\",\n content_summary: \"Summarizing Content\",\n topic_identification: \"Identifying Topics\",\n topic_connection_analysis: \"Analyzing Topic Connections\",\n assistant_chat: \"Chat with Study Assistant\"\n};\n\nconst TokenUsageDisplay = ({ report, current_user }) => {\n return (\n\n \n\nUpload Materials First
\n\n Upload and process your study materials to generate a personalized study plan.\n
\n\n {/* Summary Statistics */}\n\n );\n};\n\nexport default TokenUsageDisplay;\n","import axios from 'axios'\n\nexport const setupAxiosCSRF = () => {\n const tokenDom = document.querySelector(\"meta[name=csrf-token]\")\n if (tokenDom) {\n const csrfToken = tokenDom.content\n axios.defaults.headers.common['X-CSRF-Token'] = csrfToken\n }\n};\n"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","CommissionCalculator","bundles","referralCount","setReferralCount","useState","selectedBundle","setSelectedBundle","purchaseFrequency","setPurchaseFrequency","estimatedEarnings","setEstimatedEarnings","useEffect","calculateEarnings","totalPurchases","price","React","className","type","min","value","onChange","Math","max","parseInt","target","defaultValue","disabled","entries","key","bundle","name","toFixed","MetricsDashboard","userId","timeRange","metrics","setMetrics","loading","setLoading","error","setError","activeTimeRange","setActiveTimeRange","COLORS","CHART_COLORS","fetchMetrics","async","token","document","querySelector","content","axios","defaults","headers","common","response","get","range","data","err","console","handleTimeRangeChange","style","height","role","summary","total_quizzes_taken","study_blocks_completed","formatDate","dateString","Date","toLocaleDateString","month","day","safeGetData","obj","path","result","split","reduce","acc","undefined","length","attemptsByDayData","date","count","attempts","tokenUsageTrendData","tokens","onClick","active_days","current_streak","insights","insight","index","category","replace","toUpperCase","message","ResponsiveContainer","width","BarChart","CartesianGrid","strokeDasharray","stroke","XAxis","dataKey","YAxis","Tooltip","contentStyle","backgroundColor","borderColor","color","labelStyle","Legend","wrapperStyle","Bar","fill","LineChart","Line","activeDot","r","PieChart","Pie","filter","cx","cy","labelLine","outerRadius","nameKey","label","percent","entry","Cell","time","score","charAt","slice","domain","formatter","topic","model","pop","assistant_metrics","total_conversations","total_messages","file_uploads","total_files","achievements","achievement","icon","title","description","StudentPerformance","user","activeTab","setActiveTab","setData","overview","performance","skills","comparison","timeAnalytics","examPrep","overviewRes","fetch","overviewData","json","prev","fetchAllData","endpoint","loadTabData","full_name","Alert","variant","Tabs","activeKey","onSelect","Tab","eventKey","Spinner","animation","renderOverview","total_attempts","completed_attempts","average_score","average_time","completion_rate","recent_trend","weekly_activity","streak_data","Card","Body","improving","change_percentage","abs","floor","round","longest_streak","margin","top","right","left","bottom","yAxisId","orientation","border","renderPerformance","score_distribution","pass_rate","best_scores","quiz_type_performance","performance_by_time","improvement_trend","scoreDistData","bucket","quiz_type_label","avg_score","layout","tick","fontSize","renderSkills","subject_performance","question_type_analysis","topic_weakness","recommended_topics","subjectData","subject","attempt_count","RadarChart","PolarGrid","PolarAngleAxis","PolarRadiusAxis","angle","Radar","fillOpacity","idx","below_avg_by","weak_areas","under_practiced","renderTimeAnalytics","daily_activity","performance_trend","study_consistency","average_session_duration","average_minutes","session_count","longest_session_minutes","renderComparison","subject_comparison","difficulty_comparison","score_percentile","time_efficiency_percentile","percentile","ProgressBar","now","user_average","class_average","user_average_seconds","class_average_seconds","renderExamPrep","exam_success_rate","practice_to_exam_correlation","study_plan_impact","recent_progress","success_rate","total_exams","passed_exams","practice_avg","exam_avg","difference","has_impact_data","with_plan_avg","without_plan_avg","improvement","exam","exam_name","days_remaining","avg_recent_score","ChallengeInterface","challengeId","duration","questions","setQuestions","currentIndex","setCurrentIndex","selectedOption","setSelectedOption","answered","setAnswered","setScore","streak","setStreak","timeLeft","setTimeLeft","showHint","setShowHint","isSubmitting","setIsSubmitting","usedHint","setUsedHint","completed","setCompleted","timerRef","useRef","fetchQuestions","clearInterval","current","startTimer","ok","setInterval","completeChallenge","submitAnswer","method","body","JSON","stringify","question_id","selected_option","optionIndex","hint_used","response_time","points_earned","is_correct","setTimeout","moveToNextQuestion","window","location","href","progressPercentage","currentQuestion","seconds","secs","toString","padStart","formatTime","minWidth","maxWidth","borderRadius","difficulty","question","options","option","correct_option","handleSelectOption","String","fromCharCode","hint","toggleHint","explanation","points","propTypes","PropTypes","isRequired","AppLayout","models","useConversation","Sidebar","ConversationHeader","MainContent","ErrorAlert","onClose","FooterInput","MessageStyles","truncateText","text","maxLength","substring","ChatHistory","examTrackerId","onSelectConversation","onNewChat","conversations","setConversations","pagination","setPagination","page","setPage","fetchHistory","pageNumber","conversation","messages_count","last_message","formatDistanceToNow","last_message_at","addSuffix","pages","ChatInterface","conversationId","messages","setMessages","newMessage","setNewMessage","isLoading","setIsLoading","isRetrying","setIsRetrying","messagesEndRef","inputRef","loadConversation","scrollToBottom","setupAxiosCSRF","msg","timestamp","status","scrollIntoView","behavior","handleSubmit","preventDefault","trim","post","conversation_id","handleRetry","finally","renderMessage","toLocaleTimeString","dangerouslySetInnerHTML","__html","line","i","join","ref","onSubmit","placeholder","onKeyDown","ctrlKey","metaKey","jsx","ChatModal","examTitle","view","setView","activeConversation","setActiveConversation","resetModal","useCallback","handleModalHidden","modal","getElementById","addEventListener","removeEventListener","timer","setupModalListener","modalInstance","bootstrap","Modal","dispose","clearTimeout","handleNewChat","tabIndex","onBackToHistory","ConversationContext","createContext","processStreamingContent","ConversationProvider","children","userName","preferredModel","initialConversation","initialMessages","selectedModel","setSelectedModel","showSettings","setShowSettings","setMessage","isLoadingHistory","setIsLoadingHistory","isStreaming","setIsStreaming","uploadedFile","setUploadedFile","fileContent","setFileContent","isFileProcessing","setIsFileProcessing","eventSourceRef","abortControllerRef","messageStateRef","retryCount","accumulatedContent","hasAssistantMessage","aborted","fetchChatHistory","abort","cleanupEventSource","querySelectorAll","forEach","element","Offcanvas","handlePopState","event","state","updateBrowserHistory","newUrl","newState","pathname","history","pushState","close","convId","conversationMessages","offcanvasElement","offcanvas","getInstance","hide","sendMessage","messageContent","lastUpdateTime","timeoutId","handleSendError","selected_model","newConversation","createConversation","userMessage","created_at","toISOString","isTemporary","tempId","file","url","URL","createObjectURL","AbortController","requestPayload","file_id","credentials","signal","processStreamingResponse","log","reader","getReader","decoder","TextDecoder","buffer","assistantMessage","debouncedUpdate","debounce","func","wait","timeout","args","debouncedMessageUpdate","Promise","done","read","decode","stream","lines","trimmedLine","startsWith","parse","processedContent","model_used","serverUserMsg","serverAssistantMsg","originalMessage","contextValue","handleNewConversation","handleFileUpload","formData","FormData","append","processing_status","systemMessage","handleFileStatusChange","fileData","previousStatus","updatedFileContent","msgs","handleModelChange","modelId","patch","handleKeyDown","shiftKey","Provider","context","useContext","Menu","size","ModelSelector","onModelSelect","find","m","MessageSquarePlus","ArrowLeft","Settings","X","EmptyConversation","src","alt","getTimeBasedGreeting","hour","getHours","rows","ArrowUp","FileDisplay","expanded","setExpanded","textContent","setTextContent","isLoadingText","setIsLoadingText","loadTextContent","Image","FileType","FileText","toggleExpand","Minimize","Maximize","download","Download","renderFilePreview","maxHeight","whiteSpace","FileStatusPoller","fileId","onStatusChange","setStatus","pollCount","setPollCount","isMounted","isPolling","pollTimer","startPolling","checkStatus","newStatus","getStatusDisplay","Clock","Loader","CheckCircle","AlertCircle","FileUpload","onFileSelect","allowedFileTypes","setFile","preview","setPreview","isUploading","setIsUploading","fileInputRef","selectedFile","files","includes","accept","handleUpload","then","catch","clearFile","triggerFileInput","click","FileUp","FileBadge","ModelSettingsScreen","MessageList","CopyButton","copied","setCopied","showToast","setShowToast","navigator","clipboard","writeText","Check","Copy","zIndex","Message","modelDetails","textAlign","ReactMarkdown","remarkPlugins","remarkMath","remarkGfm","rehypePlugins","rehypeKatex","components","props","node","rest","match","exec","SyntaxHighlighter","_extends","PreTag","language","vscDarkPlus","showLineNumbers","wrapLines","Cpu","MessageSkeleton","streaming","getModelCharacteristic","Zap","Brain","Sparkles","isOpen","setIsOpen","currentModel","modelCharacteristic","overflowY","characteristic","CircleGauge","History","MODELS","StudyAssistantInterface","FileUploader","uploadingFiles","setUploadingFiles","totalUploaded","setTotalUploaded","MAX_FILE_SIZE","MAX_TOTAL_SIZE","validateFile","formatFileSize","validationError","progress","item","onUploadProgress","progressEvent","loaded","total","reload","onDrop","acceptedFiles","getRootProps","getInputProps","isDragActive","fileRejections","useDropzone","maxSize","validator","bytes","parseFloat","pow","errors","AnswerEditor","answer","onAnswerChange","setContent","setIsCorrect","newContent","checked","newCorrect","htmlFor","InspirationalQuote","quote","setQuote","fadeIn","setFadeIn","quotes","author","getRandomQuote","randomIndex","random","quoteInterval","styleSheet","createElement","innerText","head","appendChild","QuestionEditor","showAnswer","isEditing","setIsEditing","setExplanation","answers","setAnswers","setErrors","isSaving","setIsSaving","saveSuccess","setSaveSuccess","handleAnswerChange","updatedAnswer","prevAnswers","handleCancelClick","answers_attributes","handleEditClick","QuizEditor","quiz","level","quizID","setShowAnswer","marginLeft","QuizProgress","quizGeneratorId","initialStatus","initialProgress","setProgress","errorMessage","setErrorMessage","errorData","setErrorData","interval","fetchProgress","redirect_url","suggestions","details","transition","AnswerOptions","selectedAnswer","onAnswerSelect","submissionStatus","question_type","scenario","QuizAttempt","studyBlockId","quizId","questionCount","currentQuestionIndex","setCurrentQuestionIndex","selectedAnswers","setSelectedAnswers","setSubmissionStatus","showSubmitConfirm","setShowSubmitConfirm","showMobileNav","setShowMobileNav","currentProgress","isQuizComplete","handleNextQuestion","handleQuestionJump","answerId","answer_id","handlePreviousQuestion","alert","QuizCompletionSummary","totalPoints","percentage","typePerformance","canRetake","attemptId","display","viewBox","strokeWidth","PI","strokeDashoffset","origin","word","correct","QuizTakingInterface","quiz_id","setSelectedAnswer","totalTime","time_limit","showSubmitDialog","setShowSubmitDialog","answerSubmissionStatus","setAnswerSubmissionStatus","shuffledAnswers","setShuffledAnswers","showCompletionSummary","setShowCompletionSummary","quizSummary","setQuizSummary","countDownInterval","setCountDownInterval","totalQuestions","answeredCount","answeredPercentage","saveAnswerToServer","questionId","prevStatus","questionIndex","s","prevTime","shuffled","array","temporaryValue","shuffleArray","scoredPoints","questionPoints","maxPoints","a","can_retake","attempt_id","q","isAnswered","statusClass","handleAnswerSelection","prevState","isLastQuestion","allQuestionsAnswered","every","handleSubmitClick","StudyPlanStatus","lastUpdate","setLastUpdate","fetchStatus","mounted","handleStartAnalysis","handleGeneratePlan","handleRegeneratePlan","confirm","handleRetryAnalysis","error_message","study_plan_url","ActivityLabel","activityType","document_processing","study_advice","learning_plan_creation","practice_quiz_creation","exam_quiz_creation","content_indexing","study_note_creation","content_summary","topic_identification","topic_connection_analysis","assistant_chat","activityColors","getActivityColor","activity","translations","TokenUsageDisplay","report","current_user","Intl","NumberFormat","format","tokens_remaining","tokens_purchased","total_tokens_used","average_daily_usage","ceil","tokens_expiry","daily_usage","tickFormatter","by_activity","total_tokens","midAngle","innerRadius","RADIAN","radius","x","cos","y","sin","textAnchor","dominantBaseline","toLocaleString","align","verticalAlign","tokenDom","csrfToken"],"sourceRoot":""}\n\n\n {/* Usage Trends */}\n\n\n\n {/* Total Usage */}\n\n\n\n\n\n\n\n \n\n\n\nTokens Remaining
\n\n {new Intl.NumberFormat().format(current_user.tokens_remaining)}\n
\n\n \n\n\n\n\n {/* Daily Average */}\n\n\n\n\n\n\n\n \n\n\n\nTotal Usage
\n\n {new Intl.NumberFormat().format(report.summary.total_tokens_used)}\n
\n\n\n\n {/* Expiry */}\n\n\n\n\n\n\n\n \n\n\n\nDaily Average
\n\n {new Intl.NumberFormat().format(Math.round(report.summary.average_daily_usage))}\n
\n\n\n\n\n\n\n\n\n\n \n\n\n\nDays Until Expiry
\n\n {Math.max(0, Math.ceil((new Date(current_user.tokens_expiry) - new Date()) / (1000 * 60 * 60 * 24)))}\n
\n\n\n\n {/* Activity Distribution */}\n\n\nDaily Usage Trends
\n\n \n\n \n\n new Date(date).toLocaleDateString()}\n />\n \n \n \n \n \n {/* Table - Show on all screen sizes */}\n\n\n\n\n {/* Pie Chart - Hide on mobile, show on lg screens and up */}\n\n\n\n\nUsage by Activity
\n\n\n\n \n
\n\n \n \n \n {report.by_activity.map((activity, index) => (\nActivity \nTokens \nPercentage \n\n \n ))}\n \n\n \n {new Intl.NumberFormat().format(activity.total_tokens)}\n \n{activity.percentage}% \n\n\n\n\n\n\nDistribution Chart
\n\n \n\n \n({\n ...activity,\n name: translations[activity.activity] || activity.activity,\n fill: getActivityColor(activity.activity)\n }))}\n dataKey=\"total_tokens\"\n nameKey=\"name\"\n cx=\"50%\"\n cy=\"50%\"\n outerRadius={100}\n label={({\n cx,\n cy,\n midAngle,\n innerRadius,\n outerRadius,\n value,\n index\n }) => {\n const RADIAN = Math.PI / 180;\n const radius = 25 + innerRadius + (outerRadius - innerRadius);\n const x = cx + radius * Math.cos(-midAngle * RADIAN);\n const y = cy + radius * Math.sin(-midAngle * RADIAN);\n\n return (\n cx ? 'start' : 'end'}\n dominantBaseline=\"central\"\n >\n {`${value.toLocaleString()} tokens`}\n \n );\n }}\n />\n