'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 (
{/* Breadcrumb / Current Step */}
{/* Actions */}
{/* Command Bar Trigger */} {/* Progress Indicator */}
{completionPercentage}%
{/* Help Button */}
) } // ============================================================================= // 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} ) }