'use client'
import { useEffect, useState } from 'react'
import { usePathname } from 'next/navigation'
import { SDKProvider } from '@/lib/sdk'
import { SDKSidebar } from '@/components/sdk/Sidebar/SDKSidebar'
import { CommandBar } from '@/components/sdk/CommandBar'
import { SDKPipelineSidebar } from '@/components/sdk/SDKPipelineSidebar'
import { ComplianceAdvisorWidget } from '@/components/sdk/ComplianceAdvisorWidget'
import { useSDK } from '@/lib/sdk'
// =============================================================================
// SDK HEADER
// =============================================================================
function SDKHeader({ sidebarCollapsed }: { sidebarCollapsed: boolean }) {
const { currentStep, setCommandBarOpen, completionPercentage } = useSDK()
return (
)
}
// =============================================================================
// INNER LAYOUT (needs SDK context)
// =============================================================================
function SDKInnerLayout({ children }: { children: React.ReactNode }) {
const { isCommandBarOpen, setCommandBarOpen } = useSDK()
const [sidebarCollapsed, setSidebarCollapsed] = useState(false)
const pathname = usePathname()
// Extract current step from pathname (e.g., /sdk/vvt -> vvt)
const currentStep = pathname?.split('/').pop() || 'default'
// Load collapsed state from localStorage
useEffect(() => {
const stored = localStorage.getItem('sdk-sidebar-collapsed')
if (stored !== null) {
setSidebarCollapsed(stored === 'true')
}
}, [])
// Save collapsed state to localStorage
const handleCollapsedChange = (collapsed: boolean) => {
setSidebarCollapsed(collapsed)
localStorage.setItem('sdk-sidebar-collapsed', String(collapsed))
}
return (
{/* Sidebar */}
{/* Main Content - dynamic margin based on sidebar state */}
{/* Header */}
{/* Page Content */}
{children}
{/* Command Bar Modal */}
{isCommandBarOpen &&
setCommandBarOpen(false)} />}
{/* Pipeline Sidebar (FAB on mobile/tablet, fixed on desktop xl+) */}
{/* Compliance Advisor Widget */}
)
}
// =============================================================================
// MAIN LAYOUT
// =============================================================================
export default function SDKRootLayout({
children,
}: {
children: React.ReactNode
}) {
return (
{children}
)
}