{"version":3,"names":["STATUS_PAGE_URL","FEED_URL","COMPONENTS","Set","SEVERITY_CLASSES","info","disruption","outage","STATE_CATEGORIES","URL_REGEX","extractUrlFromText","text","match","appendLinkifiedText","parent","split","forEach","line","index","appendChild","document","createElement","lastIndex","matchAll","createTextNode","slice","link","href","target","rel","textContent","length","getRelativeTimeString","date","now","Date","diffInMs","diffInSecs","Math","floor","diffInMins","diffInHours","diffInDays","createStatusElement","incident","description","learnMoreUrl","container","classList","add","severity","style","display","inner","textContainer","text1","title","text2","metaParts","components","push","join","createdAt","updatedAt","timeInfo","button","currentUrl","window","location","shouldShowButton","includes","onclick","startsWith","open","url","buildIncidentBanner","body","extractedUrl","replace","trim","renderStatus","incidents","existing","getElementById","remove","id","outlet","parentNode","insertBefore","setTimeout","childText","element","tagName","getElementsByTagName","getComponentId","URL","pathname","filter","Boolean","parseLatestUpdate","descriptionHtml","doc","DOMParser","parseFromString","update","querySelector","children","Array","from","headingIndex","findIndex","child","bodyParts","map","parseActiveIncidents","xmlText","Error","Map","item","categories","category","toLowerCase","has","rawTitle","componentName","get","severityCategory","find","latestUpdate","set","values","fetchStatus","__cursorStatusOverride","res","fetch","ok","status","err","console","error","overrideCursorStatus","warn","setInterval"],"sources":["theme-240-inline-common-head_tag.js"],"sourcesContent":["\n  (function () {\n    const STATUS_PAGE_URL = \"https://status.x.ai\";\n    // The status.x.ai JSON API (/api/incidents) only sends CORS headers for cursor.com,\n    // so the forum reads the RSS feed, which allows any origin.\n    const FEED_URL = \"https://status.x.ai/feed.xml\";\n\n    // status.x.ai covers every xAI product; only incidents on these components show on the forum.\n    // Ids are the first path segment of each feed item's <link>.\n    const COMPONENTS = new Set([\n      \"cursor-desktop\",\n      \"cursor-ios\",\n      \"cursor-cli\",\n      \"cursor-com\",\n      \"cloud-agents\",\n      \"automations\",\n      \"bugbot\",\n      \"agent-sdk\",\n      \"third-party-models\"\n    ]);\n\n    // Feed severity categories mapped to the Statuspage-style classes in common.scss.\n    const SEVERITY_CLASSES = {\n      info: \"none\",\n      disruption: \"minor\",\n      outage: \"major\"\n    };\n    const STATE_CATEGORIES = new Set([\"active\", \"resolved\"]);\n\n    const URL_REGEX = /https?:\\/\\/[^\\s<>\"]*[^\\s<>\".,;:!?)\\]]/g;\n\n    function extractUrlFromText(text) {\n      const match = text.match(URL_REGEX);\n      return match ? match[0] : null;\n    }\n\n    function appendLinkifiedText(parent, text) {\n      text.split(\"\\n\").forEach((line, index) => {\n        if (index > 0) parent.appendChild(document.createElement(\"br\"));\n\n        let lastIndex = 0;\n        for (const match of line.matchAll(URL_REGEX)) {\n          parent.appendChild(document.createTextNode(line.slice(lastIndex, match.index)));\n          const link = document.createElement(\"a\");\n          link.href = match[0];\n          link.target = \"_blank\";\n          link.rel = \"noopener noreferrer\";\n          link.textContent = match[0];\n          parent.appendChild(link);\n          lastIndex = match.index + match[0].length;\n        }\n        parent.appendChild(document.createTextNode(line.slice(lastIndex)));\n      });\n    }\n\n    function getRelativeTimeString(date) {\n      const now = new Date();\n      const diffInMs = now - date;\n\n      const diffInSecs = Math.floor(diffInMs / 1000);\n      const diffInMins = Math.floor(diffInSecs / 60);\n      const diffInHours = Math.floor(diffInMins / 60);\n      const diffInDays = Math.floor(diffInHours / 24);\n\n      if (diffInDays > 0) {\n        return diffInDays === 1 ? \"1 day ago\" : `${diffInDays} days ago`;\n      } else if (diffInHours > 0) {\n        return diffInHours === 1 ? \"1 hour ago\" : `${diffInHours} hours ago`;\n      } else if (diffInMins > 0) {\n        return diffInMins === 1 ? \"1 min ago\" : `${diffInMins} mins ago`;\n      } else {\n        return \"just now\";\n      }\n    }\n\n    function createStatusElement(incident, description, learnMoreUrl) {\n      const container = document.createElement(\"div\");\n      container.classList.add(\"cursorstatus\", incident.severity);\n      container.style.display = \"flex\";\n\n      const inner = document.createElement(\"div\");\n      inner.classList.add(\"cursorstatus-inner\");\n\n      const textContainer = document.createElement(\"div\");\n      textContainer.classList.add(\"cursorstatustextcontainer\");\n\n      const text1 = document.createElement(\"p\");\n      text1.classList.add(\"cursorstatustext1\");\n      text1.textContent = `⚠️ ${incident.title}`;\n\n      const text2 = document.createElement(\"p\");\n      text2.classList.add(\"cursorstatustext2\");\n      appendLinkifiedText(text2, description);\n\n      textContainer.appendChild(text1);\n      textContainer.appendChild(text2);\n\n      const metaParts = [];\n      if (incident.components.length > 0) {\n        metaParts.push(`Affects: ${incident.components.join(\", \")}`);\n      }\n      if (incident.createdAt) {\n        metaParts.push(`Created: ${getRelativeTimeString(new Date(incident.createdAt))}`);\n      }\n      if (incident.updatedAt) {\n        metaParts.push(`Updated: ${getRelativeTimeString(new Date(incident.updatedAt))}`);\n      }\n      if (metaParts.length > 0) {\n        const timeInfo = document.createElement(\"p\");\n        timeInfo.classList.add(\"cursorstatustimes\");\n        timeInfo.textContent = metaParts.join(\" • \");\n        textContainer.appendChild(timeInfo);\n      }\n\n      const button = document.createElement(\"button\");\n      button.textContent = learnMoreUrl ? \"Learn More →\" : \"View Incident →\";\n\n      // Check if current URL matches the extracted URL to avoid sending users to the page they're already on\n      const currentUrl = window.location.href;\n      const shouldShowButton = !learnMoreUrl || !currentUrl.includes(learnMoreUrl);\n\n      if (shouldShowButton) {\n        button.onclick = () => {\n          if (learnMoreUrl && learnMoreUrl.startsWith(\"https://forum.cursor.com\")) {\n            window.location.href = learnMoreUrl;\n          } else {\n            window.open(learnMoreUrl || incident.url || STATUS_PAGE_URL, \"_blank\");\n          }\n        };\n      }\n\n      inner.appendChild(textContainer);\n\n      // Only append button if it should be shown\n      if (shouldShowButton) {\n        inner.appendChild(button);\n      }\n\n      container.appendChild(inner);\n\n      return container;\n    }\n\n    function buildIncidentBanner(incident) {\n      let description = incident.body || \"We're investigating an issue affecting Cursor.\";\n\n      // Extract URL from description if present\n      const extractedUrl = extractUrlFromText(description);\n      if (extractedUrl) {\n        // Remove the URL from the description\n        description = description.replace(extractedUrl, \"\").trim();\n      }\n\n      return createStatusElement(incident, description, extractedUrl);\n    }\n\n    function renderStatus(incidents) {\n      const existing = document.getElementById(\"cursorstatus-container\");\n      if (existing) existing.remove();\n\n      if (incidents && incidents.length > 0) {\n        const container = document.createElement(\"div\");\n        container.id = \"cursorstatus-container\";\n\n        for (const incident of incidents) {\n          container.appendChild(buildIncidentBanner(incident));\n        }\n\n        const outlet = document.getElementById(\"main-outlet-wrapper\");\n        if (outlet) {\n          outlet.parentNode.insertBefore(container, outlet);\n          return true;\n        } else {\n          setTimeout(() => {\n            if (!renderStatus(incidents)) {\n              setTimeout(() => {\n                if (!renderStatus(incidents)) {\n                  setTimeout(() => {\n                    if (!renderStatus(incidents)) {\n                      setTimeout(() => {\n                        renderStatus(incidents);\n                      }, 2000);\n                    }\n                  }, 1000);\n                }\n              }, 500);\n            }\n          }, 200);\n        }\n      }\n    }\n\n    function childText(element, tagName) {\n      return element.getElementsByTagName(tagName)[0]?.textContent.trim() || \"\";\n    }\n\n    function getComponentId(link) {\n      try {\n        return new URL(link).pathname.split(\"/\").filter(Boolean)[0] || null;\n      } catch {\n        return null;\n      }\n    }\n\n    // Item descriptions are HTML: a status header, then one <div> per update, newest first.\n    // Each update <div> is <p><strong>date</strong></p><h3>state</h3> followed by the body.\n    function parseLatestUpdate(descriptionHtml) {\n      const doc = new DOMParser().parseFromString(descriptionHtml, \"text/html\");\n      const update = doc.body.querySelector(\"div\");\n      if (!update) return { body: \"\", createdAt: null };\n\n      const children = Array.from(update.children);\n      const headingIndex = children.findIndex((child) => child.tagName === \"H3\");\n      const bodyParts = children\n        .slice(headingIndex >= 0 ? headingIndex + 1 : 1)\n        .map((child) => child.textContent.trim())\n        .filter(Boolean);\n\n      return {\n        body: bodyParts.join(\"\\n\"),\n        createdAt: update.querySelector(\"strong\")?.textContent.trim() || null\n      };\n    }\n\n    // The feed has one <item> per affected component, so items sharing a <guid> are merged.\n    function parseActiveIncidents(xmlText) {\n      const doc = new DOMParser().parseFromString(xmlText, \"application/xml\");\n      if (doc.getElementsByTagName(\"parsererror\").length > 0) {\n        throw new Error(\"Status feed is not valid XML\");\n      }\n\n      const incidents = new Map();\n      for (const item of doc.getElementsByTagName(\"item\")) {\n        const categories = Array.from(item.getElementsByTagName(\"category\"), (category) =>\n          category.textContent.trim().toLowerCase()\n        );\n        if (!categories.includes(\"active\")) continue;\n\n        const link = childText(item, \"link\");\n        if (!COMPONENTS.has(getComponentId(link))) continue;\n\n        const rawTitle = childText(item, \"title\");\n        const componentName = rawTitle.match(/^\\[([^\\]]+)\\]/)?.[1];\n        const id = childText(item, \"guid\") || link;\n\n        const existing = incidents.get(id);\n        if (existing) {\n          if (componentName && !existing.components.includes(componentName)) {\n            existing.components.push(componentName);\n          }\n          continue;\n        }\n\n        const severityCategory = categories.find((category) => !STATE_CATEGORIES.has(category));\n        const latestUpdate = parseLatestUpdate(childText(item, \"description\"));\n\n        incidents.set(id, {\n          title: rawTitle.replace(/^\\[[^\\]]+\\]\\s*/, \"\") || \"Service Issue\",\n          severity: SEVERITY_CLASSES[severityCategory] || \"unknown\",\n          url: link,\n          components: componentName ? [componentName] : [],\n          body: latestUpdate.body,\n          createdAt: childText(item, \"pubDate\") || null,\n          updatedAt: latestUpdate.createdAt\n        });\n      }\n\n      return Array.from(incidents.values());\n    }\n\n    async function fetchStatus() {\n      try {\n        if (typeof window.__cursorStatusOverride === \"string\") {\n          renderStatus([\n            {\n              title: \"Test Incident\",\n              severity: window.__cursorStatusOverride,\n              components: [\"Cloud Agents\"],\n              body: \"This is a test description.\"\n            },\n            {\n              title: \"Second Test Incident\",\n              severity: window.__cursorStatusOverride,\n              components: [\"Cursor IDE (Desktop)\", \"CLI\"],\n              body: \"This is a second concurrent incident.\"\n            }\n          ]);\n          return;\n        }\n\n        const res = await fetch(FEED_URL);\n        if (!res.ok) throw new Error(`Status feed returned HTTP ${res.status}`);\n\n        renderStatus(parseActiveIncidents(await res.text()));\n      } catch (err) {\n        console.error(\"Failed to fetch Cursor status:\", err);\n      }\n    }\n\n    // Global override for manual testing\n    window.overrideCursorStatus = function (status) {\n      if ([\"critical\", \"major\", \"minor\", \"none\"].includes(status)) {\n        window.__cursorStatusOverride = status;\n        fetchStatus();\n      } else {\n        console.warn(\"Invalid override status. Use 'critical', 'major', 'minor', or 'none'.\");\n      }\n    };\n\n    // Run immediately and every 5 minutes\n    fetchStatus();\n    setInterval(fetchStatus, 5 * 60 * 1000);\n  })();\n"],"mappings":"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","ignoreList":[]}