{"version":3,"file":"TableOfContent.DMDR9nDM.mjs","names":["useRef","useState","useCallback","container","_Fragment","useState","useRef"],"sources":["https:/framerusercontent.com/modules/n0nApumoQ33CGhnplIyU/INAO7VRgFs2betXvZD98/Blog_code_header.js","https:/framerusercontent.com/modules/MZqRlyJ8y0fAhhvD6TyV/NQ9yrgKJfymmh7NeUhl3/Content_code.js","https:/framerusercontent.com/modules/E5ReP48sf9Tu4uZd0HcU/VWpWcuM3Mnd1edPLSuRy/TableOfContent.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";export function ArticleHeader(props){const{title=\"Article Title\",authorName=\"Author Name\",authorRole=\"Role, Company\",authorAvatar=\"\",publishDate=\"Dec 15, 2025\",tags=[]}=props;// Handle tags - can be array or comma-separated string from CMS\nconst displayTags=Array.isArray(tags)?tags.filter(Boolean).slice(0,20):typeof tags===\"string\"&&tags.trim()?tags.split(\",\").map(t=>t.trim()).filter(Boolean).slice(0,20):[];return /*#__PURE__*/_jsxs(\"div\",{style:{fontFamily:\"Manrope, sans-serif\",maxWidth:\"800px\"},children:[/*#__PURE__*/_jsx(\"h1\",{style:{fontSize:\"32px\",fontWeight:700,lineHeight:1.3,color:\"#fff\",margin:\"0 0 24px 0\",letterSpacing:\"-0.01em\"},children:title}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:\"16px\",marginBottom:\"24px\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{width:\"48px\",height:\"48px\",borderRadius:\"50%\",background:authorAvatar?`url(${authorAvatar}) center/cover`:\"linear-gradient(135deg, #7E4CFF 0%, #9D7CFF 100%)\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",flexShrink:0},children:!authorAvatar&&/*#__PURE__*/_jsx(\"span\",{style:{color:\"#fff\",fontWeight:600,fontSize:\"18px\"},children:authorName.charAt(0)})}),/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"div\",{style:{color:\"#fff\",fontSize:\"16px\",fontWeight:600,marginBottom:\"2px\"},children:authorName}),/*#__PURE__*/_jsx(\"div\",{style:{color:\"rgba(255, 255, 255, 0.6)\",fontSize:\"14px\"},children:authorRole}),/*#__PURE__*/_jsx(\"div\",{style:{color:\"rgba(255, 255, 255, 0.5)\",fontSize:\"13px\",marginTop:\"2px\"},children:publishDate})]})]}),displayTags.length>0&&/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexWrap:\"wrap\",gap:\"8px\",marginBottom:\"24px\"},children:displayTags.map((tag,index)=>/*#__PURE__*/_jsx(\"div\",{style:{padding:\"6px 12px\",fontSize:\"12px\",fontWeight:500,color:\"#7E4CFF\",background:\"rgba(126, 76, 255, 0.1)\",borderRadius:\"6px\",textDecoration:\"none\",transition:\"background 0.2s, color 0.2s\"},onMouseEnter:e=>{e.currentTarget.style.background=\"rgba(126, 76, 255, 0.2)\";e.currentTarget.style.color=\"#9D7CFF\";},onMouseLeave:e=>{e.currentTarget.style.background=\"rgba(126, 76, 255, 0.1)\";e.currentTarget.style.color=\"#7E4CFF\";},children:tag},index))}),/*#__PURE__*/_jsx(\"div\",{style:{height:\"1px\",background:\"rgba(255, 255, 255, 0.1)\",marginTop:\"8px\",width:\"100vw\",position:\"relative\",left:\"50%\",transform:\"translateX(-50%)\"}})]});}addPropertyControls(ArticleHeader,{title:{type:ControlType.String,defaultValue:\"How to connect ai agent on xpander to AWS Redshift Using IAM and Secrets Manager\"},authorName:{type:ControlType.String,defaultValue:\"David Twizer\"},authorRole:{type:ControlType.String,defaultValue:\"CEO, xpander.ai\"},authorAvatar:{type:ControlType.Image,title:\"Avatar\"},publishDate:{type:ControlType.String,defaultValue:\"Dec 15, 2025\"},tags:{type:ControlType.String,title:\"Tags\",description:\"Comma-separated tags or connect to CMS Tags field\",defaultValue:\"AWS, IAM, Secrets Manager, Redshift\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"ArticleHeader\":{\"type\":\"reactComponent\",\"name\":\"ArticleHeader\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Blog_code_header.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useState,useEffect,useRef,useCallback}from\"react\";import{motion,AnimatePresence}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";const defaultContent=`\n<h2>Getting Started</h2>\n<p>This guide walks you through setting up a secure connection. This approach provides a scalable way to query your data warehouse.</p>\n\n<h3>Prerequisites</h3>\n<ul>\n  <li>An active AWS account</li>\n  <li>IAM permissions to create users and policies</li>\n  <li>Access to Secrets Manager</li>\n</ul>\n\n<h3>Configuration</h3>\n<p>Run the following command to create credentials:</p>\n<pre><code>aws secretsmanager create-secret \\\\\n  --name redshift-credentials \\\\\n  --secret-string '{\"username\":\"admin\",\"password\":\"SecurePass123\"}'</code></pre>\n\n<p>Note the Secret ARN from the output - you'll need it for the connector screen.</p>\n`;// Prism.js syntax highlighting styles (One Dark theme)\nconst prismStyles=`\n  code[class*=\"language-\"],\n  pre[class*=\"language-\"] {\n    color: #abb2bf;\n    text-shadow: none;\n    font-family: 'SF Mono', 'Monaco', 'Consolas', 'Menlo', monospace;\n    font-size: 0.875em;\n    text-align: left;\n    white-space: pre;\n    word-spacing: normal;\n    word-break: normal;\n    word-wrap: normal;\n    line-height: 1.5;\n    tab-size: 2;\n    hyphens: none;\n  }\n  .token.comment,\n  .token.prolog,\n  .token.doctype,\n  .token.cdata {\n    color: #5c6370;\n    font-style: italic;\n  }\n  .token.punctuation {\n    color: #abb2bf;\n  }\n  .token.selector,\n  .token.tag {\n    color: #e06c75;\n  }\n  .token.property,\n  .token.boolean,\n  .token.number,\n  .token.constant,\n  .token.symbol,\n  .token.attr-name,\n  .token.deleted {\n    color: #d19a66;\n  }\n  .token.string,\n  .token.char,\n  .token.attr-value,\n  .token.builtin,\n  .token.inserted {\n    color: #98c379;\n  }\n  .token.operator,\n  .token.entity,\n  .token.url,\n  .language-css .token.string,\n  .style .token.string {\n    color: #56b6c2;\n  }\n  .token.atrule,\n  .token.keyword {\n    color: #c678dd;\n  }\n  .token.function,\n  .token.class-name {\n    color: #61afef;\n  }\n  .token.regex,\n  .token.important,\n  .token.variable {\n    color: #c678dd;\n  }\n`;const articleStyles=`\n  .article-content h1,\n  .article-content * h1,\n  .article-content div h1,\n  .article-content [class*=\"heading1\"],\n  .article-content [class*=\"Heading1\"] {\n    font-size: 1.5rem !important;\n    font-weight: 700 !important;\n    margin: 0 0 0.75rem 0 !important;\n    line-height: 1.25 !important;\n    color: #fff !important;\n  }\n  .article-content h1 *,\n  .article-content h1 span,\n  .article-content h1 div {\n    font-size: inherit !important;\n    font-weight: inherit !important;\n    color: inherit !important;\n    line-height: inherit !important;\n  }\n  .article-content h2,\n  .article-content * h2,\n  .article-content div h2,\n  .article-content [class*=\"heading2\"],\n  .article-content [class*=\"Heading2\"] {\n    font-size: 1.35rem !important;\n    font-weight: 700 !important;\n    margin: 2rem 0 0.75rem 0 !important;\n    line-height: 1.3 !important;\n    color: #fff !important;\n  }\n  .article-content h2 *,\n  .article-content h2 span,\n  .article-content h2 div {\n    font-size: inherit !important;\n    font-weight: inherit !important;\n    color: inherit !important;\n    line-height: inherit !important;\n  }\n  .article-content h3,\n  .article-content * h3,\n  .article-content div h3,\n  .article-content [class*=\"heading3\"],\n  .article-content [class*=\"Heading3\"] {\n    font-size: 1rem !important;\n    font-weight: 600 !important;\n    margin: 1rem 0 0.25rem 0 !important;\n    line-height: 1.35 !important;\n    color: rgba(255, 255, 255, 0.9) !important;\n  }\n  .article-content h3 *,\n  .article-content h3 span,\n  .article-content h3 div {\n    font-size: inherit !important;\n    font-weight: inherit !important;\n    color: inherit !important;\n    line-height: inherit !important;\n  }\n  .article-content h4,\n  .article-content * h4,\n  .article-content div h4,\n  .article-content [class*=\"heading4\"] {\n    font-size: 0.75rem !important;\n    font-weight: 700 !important;\n    margin: 0.75rem 0 0.15rem 0 !important;\n    line-height: 1.4 !important;\n    color: rgba(255, 255, 255, 0.5) !important;\n    text-transform: uppercase !important;\n    letter-spacing: 0.08em !important;\n  }\n  .article-content h5,\n  .article-content h6,\n  .article-content [class*=\"heading5\"],\n  .article-content [class*=\"heading6\"] {\n    font-size: 0.7rem !important;\n    font-weight: 600 !important;\n    margin: 0.5rem 0 0.1rem 0 !important;\n    color: rgba(255, 255, 255, 0.45) !important;\n    text-transform: uppercase !important;\n    letter-spacing: 0.08em !important;\n  }\n  .article-content p,\n  .article-content [class*=\"paragraph\"] {\n    margin: 0 0 0.6rem 0 !important;\n  }\n  .article-content ul,\n  .article-content ol,\n  .article-content [class*=\"list\"] {\n    margin: 0 0 0.5rem 0 !important;\n    padding-left: 1.25rem !important;\n  }\n  .article-content li {\n    margin: 0 !important;\n    padding: 0 !important;\n  }\n  .article-content li::marker {\n    color: rgba(255, 255, 255, 0.4);\n  }\n  .article-content blockquote {\n    margin: 0.6rem 0 !important;\n    padding: 0.5rem 0.75rem !important;\n    border-left: 3px solid #8b5cf6 !important;\n    background: rgba(139, 92, 246, 0.08) !important;\n    border-radius: 0 4px 4px 0 !important;\n    color: rgba(255, 255, 255, 0.85) !important;\n  }\n  .article-content pre,\n  .article-content [class*=\"code-block\"],\n  .article-content [class*=\"codeBlock\"] {\n    position: relative !important;\n    margin: 0 0 1rem 0 !important;\n    padding: 0 !important;\n    background: rgba(0, 0, 0, 0.25) !important;\n    border: 1px solid rgba(255, 255, 255, 0.12) !important;\n    border-radius: 8px !important;\n    overflow: clip !important;\n  }\n  .article-content [class*=\"code-block\"] > *,\n  .article-content [class*=\"codeBlock\"] > *,\n  .article-content [class*=\"code-block\"] [class*=\"sp-\"],\n  .article-content [class*=\"codeBlock\"] [class*=\"sp-\"],\n  .article-content [class*=\"sp-layout\"],\n  .article-content [class*=\"sp-wrapper\"],\n  .article-content [class*=\"sp-stack\"],\n  .article-content [class*=\"sp-editor\"] {\n    background: transparent !important;\n    background-color: transparent !important;\n    border: none !important;\n    border-radius: 0 !important;\n    margin: 0 !important;\n    --sp-colors-surface1: transparent !important;\n    --sp-colors-surface2: transparent !important;\n    --sp-colors-surface3: transparent !important;\n  }\n  .article-content [class*=\"sp-layout\"] {\n    padding: 0.75rem 1rem !important;\n  }\n  .article-content .cm-editor,\n  .article-content [class*=\"code-block\"] .cm-editor,\n  .article-content [class*=\"codeBlock\"] .cm-editor {\n    background: transparent !important;\n    border: none !important;\n    border-radius: 0 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    overflow: visible !important;\n  }\n  .article-content .cm-scroller,\n  .article-content [class*=\"code-block\"] .cm-scroller,\n  .article-content [class*=\"codeBlock\"] .cm-scroller {\n    border: none !important;\n    margin: 0 !important;\n    padding: 0.75rem 1rem !important;\n    background: transparent !important;\n    overflow-x: auto !important;\n    overflow-y: hidden !important;\n  }\n  .article-content .cm-content,\n  .article-content [class*=\"code-block\"] .cm-content,\n  .article-content [class*=\"codeBlock\"] .cm-content {\n    font-family: 'SF Mono', 'Monaco', 'Consolas', 'Menlo', monospace !important;\n    font-size: 0.875em !important;\n    padding: 0 !important;\n    margin: 0 !important;\n    min-height: auto !important;\n  }\n  .article-content .cm-line,\n  .article-content [class*=\"code-block\"] .cm-line,\n  .article-content [class*=\"codeBlock\"] .cm-line {\n    padding: 0 !important;\n    padding-left: 0 !important;\n    margin: 0 !important;\n    text-indent: 0 !important;\n  }\n  .article-content .cm-gutters,\n  .article-content .cm-activeLineGutter,\n  .article-content .cm-lineNumbers {\n    display: none !important;\n    width: 0 !important;\n    min-width: 0 !important;\n    border: none !important;\n  }\n  .article-content .copy-btn {\n    position: absolute !important;\n    top: 0.5rem !important;\n    right: 0.5rem !important;\n    padding: 0.3rem 0.6rem !important;\n    background: rgba(255, 255, 255, 0.1) !important;\n    border: none !important;\n    border-radius: 4px !important;\n    color: rgba(255, 255, 255, 0.6) !important;\n    font-size: 0.75rem !important;\n    font-family: inherit !important;\n    cursor: pointer !important;\n    transition: all 0.15s !important;\n    z-index: 10 !important;\n  }\n  .article-content .copy-btn:hover {\n    background: rgba(255, 255, 255, 0.2) !important;\n    color: #fff !important;\n  }\n  .article-content code {\n    font-family: 'SF Mono', 'Monaco', 'Consolas', monospace !important;\n    font-size: 0.875em !important;\n  }\n  .article-content pre code {\n    background: none !important;\n    padding: 0 !important;\n    color: #e2e8f0 !important;\n  }\n  .article-content :not(pre) > code,\n  .article-content [class*=\"inline-code\"],\n  .article-content [class*=\"inlineCode\"] {\n    background: rgba(139, 92, 246, 0.15) !important;\n    padding: 0.15em 0.4em !important;\n    border-radius: 4px !important;\n    color: #c4b5fd !important;\n  }\n  .article-content a {\n    color: #a78bfa !important;\n    text-decoration: none !important;\n  }\n  .article-content a:hover {\n    text-decoration: underline !important;\n  }\n  .article-content hr {\n    margin: 1.5rem 0 !important;\n    border: none !important;\n    border-top: 1px solid rgba(255, 255, 255, 0.1) !important;\n    width: 100% !important;\n  }\n  .article-content strong,\n  .article-content b {\n    font-weight: 600 !important;\n    color: #fff !important;\n  }\n  .article-content > *:first-child,\n  .article-content > div > *:first-child {\n    margin-top: 0 !important;\n    padding-top: 0 !important;\n  }\n  .article-content > *:last-child {\n    margin-bottom: 0 !important;\n  }\n  .article-content img {\n    max-width: 100% !important;\n    max-height: 600px !important;\n    width: auto !important;\n    height: auto !important;\n    border-radius: 6px !important;\n    display: block !important;\n    object-fit: contain !important;\n  }\n  .article-content .glass-image-wrapper {\n    display: flex !important;\n    justify-content: center !important;\n    align-items: center !important;\n    margin: 1rem auto !important;\n    padding: 0.75rem !important;\n    max-width: 100% !important;\n    background: rgba(255, 255, 255, 0.03) !important;\n    border: 1px solid rgba(255, 255, 255, 0.08) !important;\n    border-radius: 8px !important;\n    cursor: zoom-in !important;\n    transition: transform 0.2s, box-shadow 0.2s !important;\n  }\n  .article-content .glass-image-wrapper:hover {\n    transform: translateY(-1px) !important;\n    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25) !important;\n  }\n`;export function ArticleContent(props){const{children,content}=props;const contentRef=useRef(null);const[expandedSrc,setExpandedSrc]=useState(null);const handleCopy=useCallback(async e=>{const btn=e.target;if(!btn.classList.contains(\"copy-btn\"))return;// Find the code block container (pre, Framer's code-block classes, or CodeMirror)\nconst codeBlock=btn.closest('pre, [class*=\"code-block\"], [class*=\"codeBlock\"], [class*=\"CodeBlock\"], .cm-editor');if(!codeBlock)return;// Try to get code from various sources\nconst cmContent=codeBlock.querySelector(\".cm-content\");const codeEl=codeBlock.querySelector(\"code\");const code=cmContent?.textContent||codeEl?.textContent||codeBlock.textContent;const cleanCode=(code||\"\").replace(/^Copy$|^Copied!$/gm,\"\").trim();await navigator.clipboard.writeText(cleanCode);btn.textContent=\"Copied!\";setTimeout(()=>{btn.textContent=\"Copy\";},2e3);},[]);const handleImageClick=useCallback(e=>{const target=e.target;if(target.tagName===\"IMG\"){setExpandedSrc(target.src);}},[]);useEffect(()=>{const container=contentRef.current;if(!container)return;const processContent=()=>{// Style headings directly (override Framer's inline styles)\n// Also style all child elements to ensure text inherits properly\ncontainer.querySelectorAll('h1, [class*=\"heading1\"], [class*=\"Heading1\"]').forEach(el=>{const htmlEl=el;htmlEl.style.cssText=\"font-size: 1.5rem !important; font-weight: 700 !important; margin: 0 0 0.75rem 0 !important; line-height: 1.25 !important; color: #fff !important;\";// Also style any spans/divs inside\nhtmlEl.querySelectorAll(\"*\").forEach(child=>{const c=child;c.style.cssText=\"font-size: inherit !important; font-weight: inherit !important; color: inherit !important; line-height: inherit !important;\";});});container.querySelectorAll('h2, [class*=\"heading2\"], [class*=\"Heading2\"]').forEach(el=>{const htmlEl=el;htmlEl.style.cssText=\"font-size: 1.35rem !important; font-weight: 700 !important; margin: 2rem 0 0.75rem 0 !important; line-height: 1.3 !important; color: #fff !important;\";htmlEl.querySelectorAll(\"*\").forEach(child=>{const c=child;c.style.cssText=\"font-size: inherit !important; font-weight: inherit !important; color: inherit !important; line-height: inherit !important;\";});});container.querySelectorAll('h3, [class*=\"heading3\"], [class*=\"Heading3\"]').forEach(el=>{const htmlEl=el;htmlEl.style.cssText=\"font-size: 1.1rem !important; font-weight: 600 !important; margin: 0.85rem 0 0.25rem 0 !important; line-height: 1.35 !important; color: #fff !important;\";htmlEl.querySelectorAll(\"*\").forEach(child=>{const c=child;c.style.cssText=\"font-size: inherit !important; font-weight: inherit !important; color: inherit !important; line-height: inherit !important;\";});});container.querySelectorAll('h4, [class*=\"heading4\"], [class*=\"Heading4\"]').forEach(el=>{const htmlEl=el;htmlEl.style.cssText=\"font-size: 0.75rem !important; font-weight: 700 !important; margin: 0.75rem 0 0.15rem 0 !important; line-height: 1.4 !important; color: rgba(255,255,255,0.5) !important; text-transform: uppercase !important; letter-spacing: 0.08em !important;\";});container.querySelectorAll('h5, h6, [class*=\"heading5\"], [class*=\"heading6\"], [class*=\"Heading5\"], [class*=\"Heading6\"]').forEach(el=>{const htmlEl=el;htmlEl.style.cssText=\"font-size: 0.7rem !important; font-weight: 600 !important; margin: 0.5rem 0 0.1rem 0 !important; color: rgba(255,255,255,0.45) !important; text-transform: uppercase !important; letter-spacing: 0.08em !important;\";});container.querySelectorAll(\"p\").forEach(el=>{const htmlEl=el;htmlEl.style.cssText=\"margin: 0 0 0.6rem 0 !important;\";});container.querySelectorAll(\"ul, ol\").forEach(el=>{const htmlEl=el;htmlEl.style.cssText=\"margin: 0 0 0.5rem 0 !important; padding-left: 1.25rem !important;\";});container.querySelectorAll(\"li\").forEach(el=>{const htmlEl=el;htmlEl.style.cssText=\"margin: 0 !important; padding: 0 !important;\";});// Add copy buttons to pre elements, Framer code blocks, and CodeMirror editors\n// Find the outermost code block container (avoid duplicates)\ncontainer.querySelectorAll('pre, [class*=\"code-block\"], [class*=\"codeBlock\"], [class*=\"CodeBlock\"], .cm-editor').forEach(codeBlock=>{const htmlBlock=codeBlock;// Skip if this element is inside another code block container\nconst parent=codeBlock.parentElement;if(parent?.closest('pre, [class*=\"code-block\"], [class*=\"codeBlock\"], .cm-editor'))return;// Only the outermost container gets the full styling - no padding, let cm-editor handle it\nhtmlBlock.style.cssText=\"position: relative !important; margin: 0 0 1rem 0 !important; padding: 0 !important; background: rgba(0,0,0,0.25) !important; border: 1px solid rgba(255,255,255,0.12) !important; border-radius: 8px !important; overflow: clip !important;\";// Reset all nested elements backgrounds to prevent overflow issues\ncodeBlock.querySelectorAll(\"*\").forEach(child=>{const childEl=child;if(!childEl.classList.contains(\"copy-btn\")){const className=childEl.className||\"\";// Reset Sandpack sp- elements and all nested wrappers\nif(className.includes(\"sp-\")||childEl.tagName===\"DIV\"){childEl.style.background=\"transparent\";childEl.style.backgroundColor=\"transparent\";childEl.style.border=\"none\";childEl.style.borderRadius=\"0\";childEl.style.margin=\"0\";childEl.style.setProperty(\"--sp-colors-surface1\",\"transparent\");childEl.style.setProperty(\"--sp-colors-surface2\",\"transparent\");childEl.style.setProperty(\"--sp-colors-surface3\",\"transparent\");}}});// Add padding to sp-layout elements\ncodeBlock.querySelectorAll('[class*=\"sp-layout\"]').forEach(layout=>{const layoutEl=layout;layoutEl.style.padding=\"0.75rem 1rem\";});// Style CodeMirror inner elements - put padding on cm-scroller\ncodeBlock.querySelectorAll(\".cm-editor\").forEach(nested=>{const nestedEl=nested;nestedEl.style.cssText=\"background: transparent !important; border: none !important; margin: 0 !important; padding: 0 !important; overflow: visible !important;\";});codeBlock.querySelectorAll(\".cm-scroller\").forEach(nested=>{const nestedEl=nested;nestedEl.style.cssText=\"background: transparent !important; border: none !important; margin: 0 !important; padding: 0.75rem 1rem !important; overflow-x: auto !important; overflow-y: hidden !important;\";});codeBlock.querySelectorAll(\".cm-content\").forEach(nested=>{const nestedEl=nested;nestedEl.style.cssText=\"padding: 0 !important; margin: 0 !important; min-height: auto !important;\";});codeBlock.querySelectorAll(\".cm-line\").forEach(line=>{const lineEl=line;lineEl.style.cssText=\"padding: 0 !important; padding-left: 0 !important; margin: 0 !important; text-indent: 0 !important;\";});codeBlock.querySelectorAll(\".cm-gutters, .cm-activeLineGutter, .cm-lineNumbers\").forEach(gutter=>{const gutterEl=gutter;gutterEl.style.cssText=\"display: none !important; width: 0 !important; min-width: 0 !important; border: none !important;\";});if(codeBlock.querySelector(\".copy-btn\"))return;const copyBtn=document.createElement(\"button\");copyBtn.className=\"copy-btn\";copyBtn.textContent=\"Copy\";copyBtn.style.cssText=\"position: absolute !important; top: 0.5rem !important; right: 0.5rem !important; padding: 0.25rem 0.5rem !important; background: rgba(255,255,255,0.08) !important; border: 1px solid rgba(255,255,255,0.1) !important; border-radius: 4px !important; color: rgba(255,255,255,0.5) !important; font-size: 0.7rem !important; cursor: pointer !important; z-index: 10 !important;\";codeBlock.appendChild(copyBtn);});// Style code elements\ncontainer.querySelectorAll(\"code\").forEach(el=>{const htmlEl=el;htmlEl.style.cssText=\"font-family: 'SF Mono', 'Monaco', 'Consolas', monospace !important; font-size: 0.875em !important;\";});container.querySelectorAll(\"pre code\").forEach(el=>{const htmlEl=el;htmlEl.style.cssText=\"font-family: 'SF Mono', 'Monaco', 'Consolas', monospace !important; font-size: 0.875em !important; background: none !important; padding: 0 !important; color: #e2e8f0 !important;\";});// Wrap images in glass frame\ncontainer.querySelectorAll(\"img\").forEach(img=>{if(img.parentElement?.classList.contains(\"glass-image-wrapper\"))return;const wrapper=document.createElement(\"div\");wrapper.className=\"glass-image-wrapper\";wrapper.style.cssText=\"display: flex !important; justify-content: center !important; align-items: center !important; margin: 1rem auto !important; padding: 0.75rem !important; max-width: 100% !important; background: rgba(255,255,255,0.03) !important; border: 1px solid rgba(255,255,255,0.08) !important; border-radius: 8px !important; cursor: zoom-in !important;\";const htmlImg=img;htmlImg.style.cssText=\"max-width: 100% !important; max-height: 600px !important; width: auto !important; height: auto !important; border-radius: 6px !important; display: block !important; object-fit: contain !important;\";img.parentNode?.insertBefore(wrapper,img);wrapper.appendChild(img);});};// Process immediately\nprocessContent();// Process after delays for dynamic content\nconst timer1=setTimeout(processContent,100);const timer2=setTimeout(processContent,300);const timer3=setTimeout(processContent,500);// Use MutationObserver to catch when Framer renders content\nconst observer=new MutationObserver(()=>{processContent();});observer.observe(container,{childList:true,subtree:true});container.addEventListener(\"click\",handleCopy);container.addEventListener(\"click\",handleImageClick);return()=>{clearTimeout(timer1);clearTimeout(timer2);clearTimeout(timer3);observer.disconnect();container.removeEventListener(\"click\",handleCopy);container.removeEventListener(\"click\",handleImageClick);};},[content,children,handleCopy,handleImageClick]);useEffect(()=>{const handleKeyDown=e=>{if(e.key===\"Escape\")setExpandedSrc(null);};window.addEventListener(\"keydown\",handleKeyDown);return()=>window.removeEventListener(\"keydown\",handleKeyDown);},[]);// Load Prism.js for syntax highlighting\nuseEffect(()=>{const loadPrism=async()=>{if(window.Prism){highlightCode();return;}// Load Prism core\nconst script=document.createElement(\"script\");script.src=\"https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js\";script.async=true;script.onload=()=>{// Load common language components\nconst languages=[\"bash\",\"javascript\",\"typescript\",\"python\",\"json\",\"yaml\",\"sql\",\"jsx\",\"tsx\",\"css\",\"markup\"];let loaded=0;languages.forEach(lang=>{const langScript=document.createElement(\"script\");langScript.src=`https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-${lang}.min.js`;langScript.async=true;langScript.onload=()=>{loaded++;if(loaded===languages.length){highlightCode();}};document.head.appendChild(langScript);});};document.head.appendChild(script);};const detectLanguage=code=>{// Auto-detect based on content\nif(code.includes(\"aws \")||code.includes(\"npm \")||code.includes(\"curl \")||code.includes(\"#!/bin\")||/^\\s*#/.test(code)){return\"bash\";}else if(code.includes(\"import \")&&(code.includes(\"from \")||code.includes(\"{\"))){return code.includes(\": \")?\"typescript\":\"javascript\";}else if(code.includes(\"def \")||code.includes(\"print(\")||code.includes(\"import \")&&!code.includes(\"{\")){return\"python\";}else if(code.trim().startsWith(\"{\")&&code.includes('\"')){return\"json\";}else if(/SELECT\\s|INSERT\\s|CREATE\\s|UPDATE\\s|DELETE\\s/i.test(code)){return\"sql\";}else if(code.includes(\"--\")&&(code.includes(\"arn:\")||code.includes(\"policy\"))){return\"bash\";}return\"bash\"// default\n;};const highlightCode=()=>{const container=contentRef.current;if(!container||!window.Prism)return;// Handle standard pre > code elements\ncontainer.querySelectorAll('pre code, [class*=\"code-block\"] code, [class*=\"codeBlock\"] code').forEach(block=>{const codeEl=block;if(codeEl.classList.contains(\"prism-highlighted\"))return;const classMatch=codeEl.className.match(/language-(\\w+)/);const language=classMatch?classMatch[1]:detectLanguage(codeEl.textContent||\"\");if(!codeEl.className.includes(\"language-\")){codeEl.className=`language-${language} ${codeEl.className}`;}window.Prism.highlightElement(codeEl);codeEl.classList.add(\"prism-highlighted\");});// Handle Framer's CodeMirror-based code blocks\n// Skip if CodeMirror already has syntax highlighting (check for colored spans)\ncontainer.querySelectorAll(\".cm-content\").forEach(cmContent=>{const htmlEl=cmContent;if(htmlEl.classList.contains(\"prism-highlighted\"))return;// Check if CodeMirror already applied syntax highlighting (has colored spans)\nconst hasExistingHighlight=htmlEl.querySelector('[style*=\"color\"]')||htmlEl.querySelector(\".cm-keyword, .cm-string, .cm-comment, .cm-number, .cm-operator, .ͼb, .ͼc, .ͼd, .ͼe, .ͼf, .ͼg, .ͼh, .ͼi, .ͼj, .ͼk, .ͼl, .ͼm, .ͼn, .ͼo, .ͼp\");if(hasExistingHighlight){// CodeMirror already has highlighting, skip Prism\nhtmlEl.classList.add(\"prism-highlighted\");return;}const text=htmlEl.textContent||\"\";if(!text.trim())return;const language=detectLanguage(text);// Apply Prism highlighting by replacing content with highlighted HTML\nconst grammar=window.Prism.languages[language]||window.Prism.languages.bash;const highlighted=window.Prism.highlight(text,grammar,language);// Create a wrapper to hold highlighted content\nhtmlEl.innerHTML=`<pre class=\"language-${language}\" style=\"margin:0;padding:0;background:none;\"><code class=\"language-${language}\">${highlighted}</code></pre>`;htmlEl.classList.add(\"prism-highlighted\");});// Handle pre elements WITHOUT code children\ncontainer.querySelectorAll('pre, [class*=\"code-block\"], [class*=\"codeBlock\"]').forEach(pre=>{const htmlPre=pre;if(pre.querySelector(\"code\")||pre.querySelector(\".cm-content\")||htmlPre.classList.contains(\"prism-highlighted\"))return;const text=htmlPre.textContent||\"\";if(!text.trim())return;const language=detectLanguage(text);const codeEl=document.createElement(\"code\");codeEl.className=`language-${language}`;codeEl.textContent=text;htmlPre.textContent=\"\";htmlPre.appendChild(codeEl);window.Prism.highlightElement(codeEl);htmlPre.classList.add(\"prism-highlighted\");});};loadPrism();// Re-highlight when content changes - multiple attempts for dynamic content\nconst timer1=setTimeout(highlightCode,300);const timer2=setTimeout(highlightCode,600);const timer3=setTimeout(highlightCode,1e3);const timer4=setTimeout(highlightCode,2e3);// Also use MutationObserver for dynamically loaded content\nconst container=contentRef.current;let observer=null;if(container){observer=new MutationObserver(()=>{setTimeout(highlightCode,100);});observer.observe(container,{childList:true,subtree:true});}return()=>{clearTimeout(timer1);clearTimeout(timer2);clearTimeout(timer3);clearTimeout(timer4);observer?.disconnect();};},[content,children]);const hasContent=content||children;return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:articleStyles}),/*#__PURE__*/_jsx(\"style\",{children:prismStyles}),/*#__PURE__*/_jsx(\"div\",{ref:contentRef,className:\"article-content\",style:{fontFamily:\"Manrope, -apple-system, sans-serif\",fontSize:\"16px\",lineHeight:1.7,color:\"rgba(255, 255, 255, 0.85)\",width:\"100%\"},children:hasContent?content||children:/*#__PURE__*/_jsx(\"div\",{dangerouslySetInnerHTML:{__html:defaultContent}})}),/*#__PURE__*/_jsx(AnimatePresence,{children:expandedSrc&&/*#__PURE__*/_jsxs(motion.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.15},onClick:()=>setExpandedSrc(null),style:{position:\"fixed\",inset:0,zIndex:9999,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",background:\"rgba(0, 0, 0, 0.92)\",backdropFilter:\"blur(8px)\",cursor:\"zoom-out\",padding:\"2rem\"},children:[/*#__PURE__*/_jsx(motion.img,{src:expandedSrc,alt:\"Expanded view\",initial:{scale:.95},animate:{scale:1},exit:{scale:.95},style:{maxWidth:\"90vw\",maxHeight:\"90vh\",borderRadius:\"8px\",boxShadow:\"0 24px 48px rgba(0,0,0,0.5)\"}}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",bottom:\"1.5rem\",color:\"rgba(255,255,255,0.4)\",fontSize:\"13px\"},children:\"Click anywhere or press ESC to close\"})]})})]});}addPropertyControls(ArticleContent,{content:{type:ControlType.RichText,title:\"Content\"},children:{type:ControlType.ComponentInstance,title:\"Children\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"ArticleContent\":{\"type\":\"reactComponent\",\"name\":\"ArticleContent\",\"slots\":[\"children\",\"content\"],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Content_code.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useState,useRef}from\"react\";import{motion,useMotionValue}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";export function TableOfContents(props){const{minLevel,contentSelector,excludeText=\"\"}=props;const[headings,setHeadings]=useState([]);const[activeId,setActiveId]=useState(\"\");const[isScrolling,setIsScrolling]=useState(false);const tocRef=useRef(null);const progress=useMotionValue(0);// Helper to detect heading level from element (handles both native h1/h2/h3 and Framer's class-based headings)\nconst getHeadingLevel=el=>{const tagName=el.tagName.toLowerCase();if(tagName===\"h1\")return 2// Treat h1 as h2 for TOC purposes\n;if(tagName===\"h2\")return 2;if(tagName===\"h3\")return 3;// Check for Framer class patterns\nconst className=el.className||\"\";if(/heading1|Heading1/i.test(className))return 2// Treat h1 as h2 for TOC\n;if(/heading2|Heading2/i.test(className))return 2;if(/heading3|Heading3/i.test(className))return 3;// Check data attributes that Framer might use\nconst dataLevel=el.getAttribute(\"data-heading-level\");if(dataLevel)return parseInt(dataLevel);return 0;};// Helper to check if element is inside footer or nav\nconst isInFooterOrNav=el=>{let current=el.parentElement;while(current){const tag=current.tagName.toLowerCase();const className=current.className||\"\";const id=current.id||\"\";// Check for footer/nav elements\nif(tag===\"footer\"||tag===\"nav\")return true;// Check for common footer/nav class patterns and IDs\nif(/footer|navigation|navbar|nav-|site-footer/i.test(className))return true;if(/footer|navigation|navbar|nav-/i.test(id))return true;current=current.parentElement;}return false;};// Helper to check if heading text should be excluded\nconst shouldExcludeText=text=>{if(!excludeText)return false;const normalizedText=text.toLowerCase().trim();const excludeTerms=excludeText.toLowerCase().split(\",\").map(s=>s.trim());return excludeTerms.some(term=>normalizedText.includes(term));};// Selector that includes h1, h2, h3 and Framer's class-based headings\nconst selector='h1, h2, h3, [class*=\"heading1\"], [class*=\"Heading1\"], [class*=\"heading2\"], [class*=\"Heading2\"], [class*=\"heading3\"], [class*=\"Heading3\"]';const fullSelector=contentSelector?`${contentSelector} ${selector}`:selector;// Observe headings\nuseEffect(()=>{const elements=Array.from(document.querySelectorAll(fullSelector)).filter(el=>!tocRef.current?.contains(el)&&getHeadingLevel(el)>=2&&!isInFooterOrNav(el)&&!shouldExcludeText(el.textContent||\"\"));const observer=new IntersectionObserver(entries=>{if(isScrolling)return;const visible=entries.find(e=>e.isIntersecting);if(visible){setActiveId(visible.target.id);}},{rootMargin:\"-100px 0px -70% 0px\",threshold:0});elements.forEach(el=>observer.observe(el));return()=>observer.disconnect();},[fullSelector,isScrolling,excludeText]);// Build TOC\nuseEffect(()=>{const items=Array.from(document.querySelectorAll(fullSelector)).filter(el=>!isInFooterOrNav(el)&&!shouldExcludeText(el.textContent||\"\")).map(el=>{if(!el.id){el.id=el.textContent?.toLowerCase().replace(/[^\\w\\s.-]/g,\"\").replace(/\\s+/g,\"-\")??\"\";}return{id:el.id,text:el.textContent??\"\",level:getHeadingLevel(el)};}).filter(h=>h.text.trim().length>0&&h.level>=2&&h.level<=3&&h.level>=parseInt(minLevel.substring(1)));setHeadings(items);},[fullSelector,minLevel,excludeText]);// Scroll progress\nuseEffect(()=>{const update=()=>{const max=document.body.scrollHeight-window.innerHeight;const value=max>0?window.scrollY/max:0;progress.set(Math.min(1,Math.max(0,value)));};window.addEventListener(\"scroll\",update);update();return()=>window.removeEventListener(\"scroll\",update);},[progress]);const scrollToHeading=id=>{const el=document.getElementById(id);if(!el)return;setIsScrolling(true);setActiveId(id);const top=el.getBoundingClientRect().top+window.scrollY-120;window.scrollTo({top,behavior:\"smooth\"});setTimeout(()=>setIsScrolling(false),1e3);};return /*#__PURE__*/_jsx(\"div\",{ref:tocRef,style:{position:\"relative\",padding:\"18px 16px 22px\",borderRadius:\"14px\",background:\"rgba(255,255,255,0.08)\",backdropFilter:\"blur(18px) saturate(140%)\",WebkitBackdropFilter:\"blur(18px) saturate(140%)\",border:\"1px solid rgba(255,255,255,0.12)\",boxShadow:\"0 8px 30px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.08)\",fontFamily:\"Manrope, sans-serif\"},children:/*#__PURE__*/_jsx(\"ul\",{style:{listStyle:\"none\",padding:0,margin:0,display:\"flex\",flexDirection:\"column\",gap:\"8px\"},children:headings.map((h,i)=>{const isActive=h.id===activeId;const isH3=h.level===3;// Find parent H2 for this H3\nlet parentH2Id=null;if(isH3){for(let j=i-1;j>=0;j--){if(headings[j].level===2){parentH2Id=headings[j].id;break;}}}// Find the active H2 (either directly active or parent of active H3)\nlet activeH2Id=null;const activeIndex=headings.findIndex(x=>x.id===activeId);if(activeIndex!==-1){if(headings[activeIndex].level===2){activeH2Id=activeId;}else{for(let j=activeIndex-1;j>=0;j--){if(headings[j].level===2){activeH2Id=headings[j].id;break;}}}}// Hide H3 if its parent H2 is not the active H2\nif(isH3&&parentH2Id!==activeH2Id){return null;}return /*#__PURE__*/_jsx(\"li\",{style:{marginLeft:isH3?14:0},children:/*#__PURE__*/_jsxs(motion.a,{href:`#${h.id}`,onClick:e=>{e.preventDefault();scrollToHeading(h.id);},style:{position:\"relative\",display:\"block\",padding:\"6px 10px\",borderRadius:\"8px\",fontSize:\"14px\",fontWeight:500,textDecoration:\"none\",color:isActive?\"#FFFFFF\":\"rgba(255,255,255,0.65)\",background:isActive?\"rgba(126,76,255,0.18)\":\"transparent\"},whileHover:{background:\"rgba(255,255,255,0.06)\",color:\"#FFFFFF\"},children:[isActive&&/*#__PURE__*/_jsx(\"span\",{style:{position:\"absolute\",left:-8,top:\"50%\",transform:\"translateY(-50%)\",width:4,height:\"60%\",borderRadius:4,background:\"linear-gradient(180deg, #9D7CFF, #7E4CFF)\",boxShadow:\"0 0 10px rgba(126,76,255,0.9)\"}}),h.text]})},h.id);})})});}addPropertyControls(TableOfContents,{title:{type:ControlType.String,defaultValue:\"On this page\"},contentSelector:{type:ControlType.String,placeholder:\"#content\"},minLevel:{type:ControlType.Enum,options:[\"h2\",\"h3\"],defaultValue:\"h2\"},excludeText:{type:ControlType.String,title:\"Exclude Text\",placeholder:\"AI agent platform, enterprise teams\",description:\"Comma-separated phrases to exclude from TOC\",defaultValue:\"\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"TableOfContents\":{\"type\":\"reactComponent\",\"name\":\"TableOfContents\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TableOfContent.map"],"mappings":"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"}