Function bodies 151 total
searchDocuments function · javascript · L47-L76 (30 LOC)api/chat/index.js
async function searchDocuments(query) {
if (!AZURE_SEARCH_KEY) return [];
try {
const url = `${AZURE_SEARCH_ENDPOINT}/indexes/${SEARCH_INDEX}/docs/search?api-version=2024-07-01`;
const response = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'api-key': AZURE_SEARCH_KEY,
},
body: JSON.stringify({
search: query,
top: 5,
select: 'title,content',
queryType: 'simple',
}),
});
if (!response.ok) return [];
const data = await response.json();
return (data.value || []).map(doc => ({
title: doc.title || 'Unknown',
content: (doc.content || '').substring(0, 2000),
}));
} catch {
return [];
}
}NotFound function · typescript · L100-L112 (13 LOC)src/App.tsx
function NotFound() {
return (
<main style={{ flex: 1, display: 'flex', alignItems: 'center', justifyContent: 'center', padding: '80px 0' }}>
<div style={{ textAlign: 'center' }}>
<div style={{ fontSize: '80px', fontWeight: '700', color: 'var(--ibm-gray-80)' }}>404</div>
<div style={{ fontSize: '20px', color: 'var(--ibm-gray-50)', marginBottom: '24px' }}>Page not found</div>
<a href="/">
<button className="btn btn-primary">Go Home</button>
</a>
</div>
</main>
);
}App function · typescript · L114-L234 (121 LOC)src/App.tsx
function App() {
return (
<ThemeProvider>
<BrowserRouter>
<ScrollToTop />
<Navbar />
<Routes>
<Route path="/" element={<Home />} />
{/* Data Transformation offering */}
<Route path="/dt" element={<DTOffering />} />
<Route path="/dt/co-sell" element={<CoSellBattlecard />} />
<Route path="/dt/readiness" element={<ReadinessScorecard />} />
<Route path="/dt/cdo-guide" element={<CDOGuide />} />
<Route path="/dt/value-dashboard" element={<ValueDashboard />} />
<Route path="/dt/ebc" element={<EBCPackage />} />
<Route path="/dt/scorecard-template" element={<ScorecardTemplate />} />
<Route path="/dt/first-call" element={<FirstCallDeck />} />
<Route path="/dt/win-stories" element={<WinStories />} />
<Route path="/dt/fabric-vs-databricks" element={<FabricVsDatabricks />} />
<Route path="/dt/sprint-playbook" element={<SprintPlaybook BackToTop function · typescript · L4-L41 (38 LOC)src/components/BackToTop.tsx
export function BackToTop() {
const [visible, setVisible] = useState(false);
useEffect(() => {
const onScroll = () => setVisible(window.scrollY > 400);
window.addEventListener('scroll', onScroll);
return () => window.removeEventListener('scroll', onScroll);
}, []);
if (!visible) return null;
return (
<button
onClick={() => window.scrollTo({ top: 0, behavior: 'smooth' })}
aria-label="Back to top"
style={{
position: 'fixed',
bottom: '32px',
right: '32px',
width: '44px',
height: '44px',
borderRadius: '50%',
background: 'var(--ibm-blue)',
color: 'white',
border: 'none',
cursor: 'pointer',
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
boxShadow: '0 4px 12px rgba(0,0,0,0.3)',
zIndex: 999,
transition: 'opacity 0.3s, transform 0.3s',
}}
>
<ArrowUp size={20} />
</button>
);
}FooterLink function · typescript · L18-L31 (14 LOC)src/components/Footer.tsx
function FooterLink({ to, label }: { to: string; label: string }) {
return (
<li>
<Link
to={to}
style={linkStyle}
onMouseEnter={e => (e.currentTarget.style.color = 'white')}
onMouseLeave={e => (e.currentTarget.style.color = 'var(--ibm-gray-50)')}
>
{label}
</Link>
</li>
);
}Footer function · typescript · L33-L118 (86 LOC)src/components/Footer.tsx
export function Footer() {
const currentYear = new Date().getFullYear();
return (
<footer style={{
background: '#0d0d0d',
borderTop: '1px solid var(--ibm-gray-90)',
marginTop: 'auto',
}}>
<div className="container" style={{ padding: '48px 32px 32px' }}>
<div style={{
display: 'grid',
gridTemplateColumns: 'repeat(auto-fit, minmax(220px, 1fr))',
gap: '40px',
marginBottom: '40px',
}}>
{/* Column 1: Branding */}
<div>
<div style={{ display: 'flex', alignItems: 'center', gap: '8px', marginBottom: '16px' }}>
<img src="/images/ibm-logo.png" alt="IBM" style={{ height: '20px' }} />
<span style={{ color: 'var(--ibm-gray-50)', fontSize: '14px', fontWeight: '300' }}>+</span>
<img src="/images/ms-logo.png" alt="Microsoft" style={{ height: '16px' }} />
</div>
<p style={{ fontSize: '13px', color: 'var(--ibm-gray-MessageFormatter function · typescript · L11-L21 (11 LOC)src/components/MessageFormatter.tsx
export function MessageFormatter({ content }: Props) {
const blocks = parseBlocks(content);
return (
<div style={{ display: 'flex', flexDirection: 'column', gap: '6px' }}>
{blocks.map((block, i) => (
<BlockRenderer key={i} block={block} />
))}
</div>
);
}Repobility (the analyzer behind this table) · https://repobility.com
parseBlocks function · typescript · L37-L109 (73 LOC)src/components/MessageFormatter.tsx
function parseBlocks(raw: string): Block[] {
const lines = raw.split('\n');
const blocks: Block[] = [];
let i = 0;
while (i < lines.length) {
const line = lines[i];
// Code block
if (line.trimStart().startsWith('```')) {
const lang = line.trim().replace('```', '').trim();
const codeLines: string[] = [];
i++;
while (i < lines.length && !lines[i].trimStart().startsWith('```')) {
codeLines.push(lines[i]);
i++;
}
blocks.push({ type: 'code', language: lang, code: codeLines.join('\n') });
i++;
continue;
}
// Heading
const headingMatch = line.match(/^(#{1,4})\s+(.+)/);
if (headingMatch) {
blocks.push({ type: 'heading', level: headingMatch[1].length, text: headingMatch[2] });
i++;
continue;
}
// Horizontal rule
if (/^---+$/.test(line.trim())) {
blocks.push({ type: 'divider' });
i++;
continue;
}
// Bullet list
if (/^\s*[-*]\s+/.testformatInline function · typescript · L113-L211 (99 LOC)src/components/MessageFormatter.tsx
function formatInline(text: string): string {
return text
// Bold
.replace(/\*\*(.+?)\*\*/g, '<strong style="color:var(--text-primary)">$1</strong>')
// Italic
.replace(/(?<!\*)\*([^*]+)\*(?!\*)/g, '<em>$1</em>')
// Inline code
.replace(/`([^`]+)`/g, '<code style="background:var(--bg-elevated);padding:1px 4px;border-radius:3px;font-size:12px;font-family:var(--font-mono);color:var(--ibm-blue-light)">$1</code>')
// Links
.replace(/\[([^\]]+)\]\(([^)]+)\)/g, '<a href="$2" style="color:var(--ibm-blue-light);text-decoration:underline" target="_blank">$1</a>')
// Arrow link pattern: → See more: text
.replace(/→\s*(.+)/g, '<span style="color:var(--ibm-blue-light)">→ $1</span>');
}
// ── Block Renderer ──
function BlockRenderer({ block }: { block: Block }) {
switch (block.type) {
case 'heading':
return (
<div style={{
fontSize: block.level <= 2 ? '15px' : '14px',
fontWeight: '700',
color: 'var(--text-BlockRenderer function · typescript · L129-L211 (83 LOC)src/components/MessageFormatter.tsx
function BlockRenderer({ block }: { block: Block }) {
switch (block.type) {
case 'heading':
return (
<div style={{
fontSize: block.level <= 2 ? '15px' : '14px',
fontWeight: '700',
color: 'var(--text-primary)',
marginTop: block.level <= 2 ? '10px' : '6px',
marginBottom: '2px',
borderBottom: block.level <= 2 ? '1px solid var(--border-subtle)' : 'none',
paddingBottom: block.level <= 2 ? '4px' : '0',
}}
dangerouslySetInnerHTML={{ __html: formatInline(block.text) }}
/>
);
case 'paragraph':
return (
<div style={{ fontSize: '13px', lineHeight: '1.65', color: 'var(--text-secondary)' }}
dangerouslySetInnerHTML={{ __html: formatInline(block.text) }}
/>
);
case 'bullet':
return (
<div style={{ display: 'flex', gap: '8px', alignItems: 'flex-start', marginLeft: '4px' }}>
<span style={{ color: 'var(--ibm-blueMetricCard function · typescript · L9-L26 (18 LOC)src/components/MetricCard.tsx
export function MetricCard({ value, label, sublabel, color = 'var(--ibm-blue-light)', icon }: MetricCardProps) {
return (
<div className="card" style={{ textAlign: 'center' }}>
{icon && <div style={{ fontSize: '28px', marginBottom: '8px' }}>{icon}</div>}
<div style={{ fontSize: '40px', fontWeight: '700', color, lineHeight: '1', marginBottom: '8px' }}>
{value}
</div>
<div style={{ fontSize: '14px', fontWeight: '600', color: 'var(--ibm-gray-20)', marginBottom: '4px' }}>
{label}
</div>
{sublabel && (
<div style={{ fontSize: '12px', color: 'var(--ibm-gray-50)' }}>
{sublabel}
</div>
)}
</div>
);
}DatabricksIcon function · typescript · L14-L22 (9 LOC)src/components/MicrosoftIcons.tsx
export function DatabricksIcon({ size = 24, style, className }: IconProps) {
return (
<svg width={size} height={size} viewBox="0 0 24 24" fill="none" style={style} className={className}>
<path d="M12 2L2 7.5l10 5.5 10-5.5L12 2z" fill="#FF3621" />
<path d="M2 12l10 5.5L22 12" stroke="#FF3621" strokeWidth="1.5" fill="none" />
<path d="M2 16.5L12 22l10-5.5" stroke="#EE6C4D" strokeWidth="1.5" fill="none" />
</svg>
);
}FabricIcon function · typescript · L25-L34 (10 LOC)src/components/MicrosoftIcons.tsx
export function FabricIcon({ size = 24, style, className }: IconProps) {
return (
<svg width={size} height={size} viewBox="0 0 24 24" fill="none" style={style} className={className}>
<path d="M12 2L4 6.5V13l8 4.5 8-4.5V6.5L12 2z" fill="#0078D4" />
<path d="M12 2v15" stroke="#fff" strokeWidth="0.8" opacity="0.5" />
<path d="M4 6.5L12 11l8-4.5" stroke="#fff" strokeWidth="0.8" opacity="0.5" />
<path d="M8 18l4 4 4-4" fill="#005A9E" />
</svg>
);
}PowerBIIcon function · typescript · L37-L45 (9 LOC)src/components/MicrosoftIcons.tsx
export function PowerBIIcon({ size = 24, style, className }: IconProps) {
return (
<svg width={size} height={size} viewBox="0 0 24 24" fill="none" style={style} className={className}>
<rect x="4" y="14" width="4" height="7" rx="1" fill="#F2C811" />
<rect x="10" y="9" width="4" height="12" rx="1" fill="#E8B408" />
<rect x="16" y="3" width="4" height="18" rx="1" fill="#D4A106" />
</svg>
);
}EventHubIcon function · typescript · L48-L56 (9 LOC)src/components/MicrosoftIcons.tsx
export function EventHubIcon({ size = 24, style, className }: IconProps) {
return (
<svg width={size} height={size} viewBox="0 0 24 24" fill="none" style={style} className={className}>
<circle cx="12" cy="12" r="9" stroke="#0078D4" strokeWidth="1.5" fill="none" />
<path d="M7 8.5h10M7 12h10M7 15.5h10" stroke="#0078D4" strokeWidth="1.5" strokeLinecap="round" />
<circle cx="12" cy="12" r="2.5" fill="#0078D4" />
</svg>
);
}Source: Repobility analyzer · https://repobility.com
OneLakeIcon function · typescript · L59-L68 (10 LOC)src/components/MicrosoftIcons.tsx
export function OneLakeIcon({ size = 24, style, className }: IconProps) {
return (
<svg width={size} height={size} viewBox="0 0 24 24" fill="none" style={style} className={className}>
<ellipse cx="12" cy="8" rx="9" ry="4" fill="#0078D4" />
<path d="M3 8v8c0 2.2 4 4 9 4s9-1.8 9-4V8" fill="#005A9E" />
<ellipse cx="12" cy="16" rx="9" ry="4" fill="#0078D4" opacity="0.6" />
<path d="M8 10l4 3 4-3" stroke="#fff" strokeWidth="1.2" strokeLinecap="round" fill="none" />
</svg>
);
}AzureIcon function · typescript · L71-L78 (8 LOC)src/components/MicrosoftIcons.tsx
export function AzureIcon({ size = 24, style, className }: IconProps) {
return (
<svg width={size} height={size} viewBox="0 0 24 24" fill="none" style={style} className={className}>
<path d="M8.8 18.5H19l-5.4-6.3 3.6-8.7H13L6 15.5l2.8 3z" fill="#0078D4" />
<path d="M13 3.5l-3 8.2L5 18.5h4.5L13 3.5z" fill="#0091EA" opacity="0.8" />
</svg>
);
}CopilotIcon function · typescript · L81-L89 (9 LOC)src/components/MicrosoftIcons.tsx
export function CopilotIcon({ size = 24, style, className }: IconProps) {
return (
<svg width={size} height={size} viewBox="0 0 24 24" fill="none" style={style} className={className}>
<path d="M12 3l1.5 4.5L18 9l-4.5 1.5L12 15l-1.5-4.5L6 9l4.5-1.5L12 3z" fill="#0078D4" />
<path d="M18 14l1 3 3 1-3 1-1 3-1-3-3-1 3-1 1-3z" fill="#50E6FF" />
<path d="M5 15l.7 2.3L8 18l-2.3.7L5 21l-.7-2.3L2 18l2.3-.7L5 15z" fill="#9B59B6" />
</svg>
);
}TeamsIcon function · typescript · L92-L101 (10 LOC)src/components/MicrosoftIcons.tsx
export function TeamsIcon({ size = 24, style, className }: IconProps) {
return (
<svg width={size} height={size} viewBox="0 0 24 24" fill="none" style={style} className={className}>
<rect x="3" y="5" width="14" height="14" rx="2" fill="#5B5FC7" />
<text x="10" y="15" textAnchor="middle" fill="white" fontSize="9" fontWeight="700" fontFamily="Arial">T</text>
<circle cx="19" cy="7" r="3" fill="#7B83EB" />
<path d="M16 12h6v5c0 1.1-.9 2-2 2h-2c-1.1 0-2-.9-2-2v-5z" fill="#7B83EB" />
</svg>
);
}PurviewIcon function · typescript · L104-L111 (8 LOC)src/components/MicrosoftIcons.tsx
export function PurviewIcon({ size = 24, style, className }: IconProps) {
return (
<svg width={size} height={size} viewBox="0 0 24 24" fill="none" style={style} className={className}>
<path d="M12 2L4 6v6c0 5.1 3.4 9.8 8 11 4.6-1.2 8-5.9 8-11V6l-8-4z" fill="#0078D4" />
<path d="M10 12l2 2 4-4" stroke="white" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
</svg>
);
}M365Icon function · typescript · L114-L123 (10 LOC)src/components/MicrosoftIcons.tsx
export function M365Icon({ size = 24, style, className }: IconProps) {
return (
<svg width={size} height={size} viewBox="0 0 24 24" fill="none" style={style} className={className}>
<rect x="3" y="3" width="8" height="8" rx="1.5" fill="#D83B01" />
<rect x="13" y="3" width="8" height="8" rx="1.5" fill="#33AC2E" />
<rect x="3" y="13" width="8" height="8" rx="1.5" fill="#0078D4" />
<rect x="13" y="13" width="8" height="8" rx="1.5" fill="#FFB900" />
</svg>
);
}AIFoundryIcon function · typescript · L126-L137 (12 LOC)src/components/MicrosoftIcons.tsx
export function AIFoundryIcon({ size = 24, style, className }: IconProps) {
return (
<svg width={size} height={size} viewBox="0 0 24 24" fill="none" style={style} className={className}>
<circle cx="12" cy="10" r="7" fill="#0078D4" />
<circle cx="9" cy="9" r="1.2" fill="white" />
<circle cx="15" cy="9" r="1.2" fill="white" />
<path d="M9 12.5c0 1.7 1.3 3 3 3s3-1.3 3-3" stroke="white" strokeWidth="1.2" fill="none" />
<path d="M6 18h12" stroke="#0078D4" strokeWidth="1.5" strokeLinecap="round" />
<path d="M8 20h8" stroke="#50E6FF" strokeWidth="1.5" strokeLinecap="round" />
</svg>
);
}FabricIQIcon function · typescript · L140-L155 (16 LOC)src/components/MicrosoftIcons.tsx
export function FabricIQIcon({ size = 24, style, className }: IconProps) {
return (
<svg width={size} height={size} viewBox="0 0 24 24" fill="none" style={style} className={className}>
<circle cx="12" cy="12" r="9" stroke="#6B3FA0" strokeWidth="1.5" fill="none" />
<circle cx="12" cy="12" r="3" fill="#6B3FA0" />
<line x1="12" y1="3" x2="12" y2="9" stroke="#6B3FA0" strokeWidth="1.5" />
<line x1="12" y1="15" x2="12" y2="21" stroke="#6B3FA0" strokeWidth="1.5" />
<line x1="3" y1="12" x2="9" y2="12" stroke="#6B3FA0" strokeWidth="1.5" />
<line x1="15" y1="12" x2="21" y2="12" stroke="#6B3FA0" strokeWidth="1.5" />
<circle cx="12" cy="3" r="1.5" fill="#9B59B6" />
<circle cx="12" cy="21" r="1.5" fill="#9B59B6" />
<circle cx="3" cy="12" r="1.5" fill="#9B59B6" />
<circle cx="21" cy="12" r="1.5" fill="#9B59B6" />
</svg>
);
}Repobility · code-quality intelligence platform · https://repobility.com
DataFactoryIcon function · typescript · L158-L168 (11 LOC)src/components/MicrosoftIcons.tsx
export function DataFactoryIcon({ size = 24, style, className }: IconProps) {
return (
<svg width={size} height={size} viewBox="0 0 24 24" fill="none" style={style} className={className}>
<rect x="2" y="4" width="6" height="4" rx="1" fill="#0078D4" />
<rect x="2" y="10" width="6" height="4" rx="1" fill="#0078D4" />
<rect x="2" y="16" width="6" height="4" rx="1" fill="#0078D4" />
<rect x="16" y="8" width="6" height="8" rx="1" fill="#005A9E" />
<path d="M8 6h4l4 6-4 6H8" stroke="#50E6FF" strokeWidth="1.2" fill="none" />
</svg>
);
}MLflowIcon function · typescript · L171-L179 (9 LOC)src/components/MicrosoftIcons.tsx
export function MLflowIcon({ size = 24, style, className }: IconProps) {
return (
<svg width={size} height={size} viewBox="0 0 24 24" fill="none" style={style} className={className}>
<path d="M4 20L12 4l8 16H4z" stroke="#0194E2" strokeWidth="1.8" fill="none" />
<circle cx="12" cy="13" r="3" fill="#0194E2" />
<path d="M12 4v6" stroke="#0194E2" strokeWidth="1.5" />
</svg>
);
}MirroringIcon function · typescript · L182-L193 (12 LOC)src/components/MicrosoftIcons.tsx
export function MirroringIcon({ size = 24, style, className }: IconProps) {
return (
<svg width={size} height={size} viewBox="0 0 24 24" fill="none" style={style} className={className}>
<path d="M4 8h6v8H4z" fill="#0078D4" rx="1" />
<path d="M14 8h6v8h-6z" fill="#005A9E" rx="1" />
<path d="M10 10l4 0" stroke="#50E6FF" strokeWidth="1.5" markerEnd="url(#arrow)" />
<path d="M14 14l-4 0" stroke="#50E6FF" strokeWidth="1.5" />
<circle cx="10" cy="10" r="1" fill="#50E6FF" />
<circle cx="14" cy="14" r="1" fill="#50E6FF" />
</svg>
);
}Agent365Icon function · typescript · L196-L209 (14 LOC)src/components/MicrosoftIcons.tsx
export function Agent365Icon({ size = 24, style, className }: IconProps) {
return (
<svg width={size} height={size} viewBox="0 0 24 24" fill="none" style={style} className={className}>
<circle cx="12" cy="8" r="4" fill="#0078D4" />
<circle cx="9" cy="7.5" r="0.8" fill="white" />
<circle cx="15" cy="7.5" r="0.8" fill="white" />
<path d="M10 9.5c0 1.1.9 2 2 2s2-.9 2-2" stroke="white" strokeWidth="0.8" fill="none" />
<path d="M12 12v3" stroke="#0078D4" strokeWidth="1.5" />
<rect x="5" y="15" width="14" height="6" rx="2" fill="#005A9E" />
<path d="M8 18h8" stroke="#50E6FF" strokeWidth="1" />
<path d="M8 20h5" stroke="#50E6FF" strokeWidth="1" />
</svg>
);
}Navbar function · typescript · L20-L301 (282 LOC)src/components/Navbar.tsx
export function Navbar() {
const [mobileOpen, setMobileOpen] = useState(false);
const [dropdown, setDropdown] = useState<string | null>(null);
const location = useLocation();
const { theme, toggle } = useThemeContext();
const isActive = (href: string) =>
href === '/' ? location.pathname === '/' : location.pathname.startsWith(href);
const isResourcesActive =
location.pathname === '/contact' ||
location.pathname.startsWith('/dt/collateral') ||
location.pathname.startsWith('/dt/2026') ||
location.pathname.startsWith('/dt/demos') ||
location.pathname.startsWith('/docs') ||
location.pathname.startsWith('/archive') ||
location.pathname.startsWith('/dt/refresh') ||
location.pathname.startsWith('/dt/project-imagine') ||
location.pathname.startsWith('/insights');
const navLinkStyle = (active: boolean) => ({
padding: '0 18px',
height: '64px',
display: 'flex' as const,
alignItems: 'center' as const,
fontSize: '14px',
ScrollToTop function · typescript · L4-L12 (9 LOC)src/components/ScrollToTop.tsx
export function ScrollToTop() {
const { pathname } = useLocation();
useEffect(() => {
window.scrollTo(0, 0);
}, [pathname]);
return null;
}SectionHeader function · typescript · L9-L32 (24 LOC)src/components/SectionHeader.tsx
export function SectionHeader({ badge, badgeColor = 'blue', title, subtitle, centered = false }: SectionHeaderProps) {
return (
<div style={{
marginBottom: '48px',
textAlign: centered ? 'center' : 'left',
maxWidth: centered ? '680px' : undefined,
margin: centered ? '0 auto 48px' : '0 0 48px',
}}>
{badge && (
<div className={`badge badge-${badgeColor}`} style={{ marginBottom: '16px' }}>
{badge}
</div>
)}
<h2 style={{ fontSize: '36px', fontWeight: '700', marginBottom: '16px', lineHeight: '1.15' }}>
{title}
</h2>
{subtitle && (
<p style={{ fontSize: '18px', color: 'var(--ibm-gray-30)', lineHeight: '1.7' }}>
{subtitle}
</p>
)}
</div>
);
}UC1AsIsArchitectureDiagram function · typescript · L42-L213 (172 LOC)src/components/UC1ArchitectureDiagrams.tsx
export function UC1AsIsArchitectureDiagram() {
return (
<div style={diagramContainer}>
<div style={diagramHeader('#0043ce')}>
<span style={badge('#0043ce')}>AS-IS</span>
<span style={{ fontSize: '15px', fontWeight: 700, color: 'var(--ibm-blue-light)' }}>Fragmented Retail Analytics Stack</span>
<span style={{ fontSize: '12px', color: 'var(--text-muted)', marginLeft: 'auto', fontStyle: 'italic' }}>
"Transformation lives everywhere. Truth lives nowhere."
</span>
</div>
<svg viewBox="0 0 1100 540" xmlns="http://www.w3.org/2000/svg" style={{ width: '100%', height: 'auto', display: 'block', background: '#0a0f1e' }}>
<defs>
<marker id="u1as-arr" markerWidth="8" markerHeight="6" refX="8" refY="3" orient="auto"><polygon points="0 0, 8 3, 0 6" fill="#4589ff"/></marker>
<marker id="u1as-arr-dn" markerWidth="8" markerHeight="6" refX="8" refY="3" orient="auto"><polygon points="0 0, 8 3, 0 6" fill="#0043ceOpen data scored by Repobility · https://repobility.com
UC1ToBeArchitectureDiagram function · typescript · L219-L446 (228 LOC)src/components/UC1ArchitectureDiagrams.tsx
export function UC1ToBeArchitectureDiagram() {
return (
<div style={diagramContainer}>
<div style={diagramHeader('#0f62fe')}>
<span style={badge('#0f62fe')}>TO-BE</span>
<span style={{ fontSize: '15px', fontWeight: 700, color: 'var(--ibm-blue-light)' }}>Microsoft Fabric Medallion</span>
<span style={{ fontSize: '12px', color: 'var(--text-muted)', marginLeft: 'auto', fontStyle: 'italic' }}>
"Same source data. Different execution model."
</span>
</div>
{/* Platform role bar */}
<div style={{ display: 'grid', gridTemplateColumns: 'repeat(4, 1fr)', gap: '0', borderBottom: '1px solid var(--card-border)' }}>
{[
{ l: 'SOURCE', s: 'AS-IS ADLS (unchanged)', bg: 'rgba(69,137,255,0.06)', c: '#4589ff' },
{ l: 'CONTROL PLANE', s: 'Microsoft Fabric workspace', bg: 'rgba(15,98,254,0.08)', c: '#0f62fe' },
{ l: 'TRANSFORMATION', s: 'Notebooks (Bronze/Silver/Gold)', bg: 'rgba(130,207,255,0.06)'AsIsArchitectureDiagram function · typescript · L42-L182 (141 LOC)src/components/UC2ArchitectureDiagrams.tsx
export function AsIsArchitectureDiagram() {
return (
<div style={diagramContainer}>
{/* Header (theme-aware) */}
<div style={diagramHeader('#0043ce')}>
<span style={badge('#0043ce')}>AS-IS</span>
<span style={{ fontSize: '15px', fontWeight: 700, color: 'var(--ibm-blue-light)' }}>Reactive Alert Pattern</span>
<span style={{ fontSize: '12px', color: 'var(--text-muted)', marginLeft: 'auto', fontStyle: 'italic' }}>
"The data flows. The intelligence doesn't."
</span>
</div>
{/* SVG: dark canvas, white/blue IBM palette */}
<svg viewBox="0 0 1100 490" xmlns="http://www.w3.org/2000/svg" style={{ width: '100%', height: 'auto', display: 'block', background: '#0a0f1e' }}>
<defs>
<marker id="as-arr" markerWidth="8" markerHeight="6" refX="8" refY="3" orient="auto"><polygon points="0 0, 8 3, 0 6" fill="#4589ff"/></marker>
<marker id="as-arr-dn" markerWidth="8" markerHeight="6" refX="8" refY="3"ToBeArchitectureDiagram function · typescript · L188-L453 (266 LOC)src/components/UC2ArchitectureDiagrams.tsx
export function ToBeArchitectureDiagram() {
return (
<div style={diagramContainer}>
{/* Header (theme-aware) */}
<div style={diagramHeader('#0f62fe')}>
<span style={badge('#0f62fe')}>TO-BE</span>
<span style={{ fontSize: '15px', fontWeight: 700, color: 'var(--ibm-blue-light)' }}>AI-Driven Operational Intelligence</span>
<span style={{ fontSize: '12px', color: 'var(--text-muted)', marginLeft: 'auto', fontStyle: 'italic' }}>
"Model is replaceable. Pipeline is the asset."
</span>
</div>
{/* Platform Role Bar */}
<div style={{ display: 'grid', gridTemplateColumns: 'repeat(4, 1fr)', gap: '0', borderBottom: '1px solid var(--card-border)' }}>
{[
{ l: 'FOUNDATION', s: 'Event Hub + ADLS Gen2', bg: 'rgba(0,157,154,0.06)', c: '#009d9a' },
{ l: 'PRIMARY ENGINE', s: 'Azure Databricks (Medallion + MLflow)', bg: 'rgba(69,137,255,0.06)', c: '#4589ff' },
{ l: 'CONSUMPTION', s: 'MicrosoftVoiceChat function · typescript · L20-L350 (331 LOC)src/components/VoiceChat.tsx
export function VoiceChat() {
const [state, setState] = useState<State>('idle');
const [aiSpeaking, setAiSpeaking] = useState(false);
const [transcript, setTranscript] = useState('');
const [error, setError] = useState('');
const wsRef = useRef<WebSocket | null>(null);
const audioContextRef = useRef<AudioContext | null>(null);
const mediaStreamRef = useRef<MediaStream | null>(null);
const workletNodeRef = useRef<AudioWorkletNode | ScriptProcessorNode | null>(null);
const nextPlayTimeRef = useRef(0);
const aiSpeakingRef = useRef(false);
const playAudio = useCallback((base64Audio: string) => {
const ctx = audioContextRef.current;
if (!ctx) return;
const binaryStr = atob(base64Audio);
const bytes = new Uint8Array(binaryStr.length);
for (let i = 0; i < binaryStr.length; i++) bytes[i] = binaryStr.charCodeAt(i);
const pcm16 = new Int16Array(bytes.buffer);
const float32 = new Float32Array(pcm16.length);
for (let i = 0; i < pcm16.length;ThemeProvider function · typescript · L12-L15 (4 LOC)src/contexts/ThemeContext.tsx
export function ThemeProvider({ children }: { children: ReactNode }) {
const value = useTheme();
return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>;
}useThemeContext function · typescript · L17-L19 (3 LOC)src/contexts/ThemeContext.tsx
export function useThemeContext() {
return useContext(ThemeContext);
}getBreadcrumbs function · typescript · L80-L95 (16 LOC)src/data/docsNav.ts
export function getBreadcrumbs(currentHref: string): BreadcrumbItem[] {
const crumbs: BreadcrumbItem[] = [{ label: 'Home', href: '/' }, { label: 'Docs', href: '/docs' }];
if (currentHref === '/docs') return [{ label: 'Home', href: '/' }, { label: 'Docs' }];
if (currentHref === '/docs/chatbot') {
crumbs.push({ label: 'Chatbot Architecture' });
} else if (currentHref.startsWith('/docs/uc1/')) {
crumbs.push({ label: 'UC1', href: '/docs/uc1/overview' });
const item = docsNavFlat.find(i => i.href === currentHref);
if (item) crumbs.push({ label: item.label });
} else if (currentHref.startsWith('/docs/uc2/')) {
crumbs.push({ label: 'UC2', href: '/docs/uc2/overview' });
const item = docsNavFlat.find(i => i.href === currentHref);
if (item) crumbs.push({ label: item.label });
}
return crumbs;
}usePageTitle function · typescript · L3-L9 (7 LOC)src/hooks/usePageTitle.ts
export function usePageTitle(title: string) {
useEffect(() => {
const prev = document.title;
document.title = title ? `${title} | IBM Microsoft Practice` : 'IBM Microsoft Practice Portal';
return () => { document.title = prev; };
}, [title]);
}Repobility (the analyzer behind this table) · https://repobility.com
useTheme function · typescript · L5-L23 (19 LOC)src/hooks/useTheme.ts
export function useTheme() {
const [theme, setTheme] = useState<Theme>(
() => (localStorage.getItem('theme') as Theme) ?? 'dark'
);
useEffect(() => {
document.documentElement.setAttribute('data-theme', theme);
localStorage.setItem('theme', theme);
}, [theme]);
// Apply on mount immediately
useEffect(() => {
document.documentElement.setAttribute('data-theme', theme);
}, []);
const toggle = () => setTheme(t => (t === 'dark' ? 'light' : 'dark'));
return { theme, toggle };
}AIOffering function · typescript · L17-L127 (111 LOC)src/pages/ai/AIOffering.tsx
export function AIOffering() {
return (
<main style={{ flex: 1 }}>
{/* Hero */}
<section style={{
background: 'linear-gradient(135deg, var(--hero-from) 0%, var(--hero-mid) 40%, var(--hero-to) 100%)',
borderBottom: '1px solid var(--hero-border)',
padding: '100px 0 80px',
position: 'relative',
overflow: 'hidden',
}}>
<div style={{
position: 'absolute', inset: 0,
backgroundImage: 'radial-gradient(circle at 1px 1px, var(--dot-color) 1px, transparent 0)',
backgroundSize: '48px 48px', pointerEvents: 'none',
}} />
<div style={{ position: 'absolute', inset: 0, background: 'rgba(0,0,0,0.25)', pointerEvents: 'none' }} />
<div className="container" style={{ position: 'relative', zIndex: 1 }}>
<div style={{ display: 'flex', gap: '10px', marginBottom: '24px', flexWrap: 'wrap' }}>
<span className="badge badge-blue" style={{ fontSize: '13px', padding: '6pAMMOffering function · typescript · L17-L128 (112 LOC)src/pages/amm/AMMOffering.tsx
export function AMMOffering() {
return (
<main style={{ flex: 1 }}>
{/* Hero */}
<section style={{
background: 'linear-gradient(135deg, var(--hero-from) 0%, var(--hero-mid) 40%, var(--hero-to) 100%)',
borderBottom: '1px solid var(--hero-border)',
padding: '100px 0 80px',
position: 'relative',
overflow: 'hidden',
}}>
<div style={{
position: 'absolute', inset: 0,
backgroundImage: 'radial-gradient(circle at 1px 1px, var(--dot-color) 1px, transparent 0)',
backgroundSize: '48px 48px', pointerEvents: 'none',
}} />
{/* Muted overlay */}
<div style={{ position: 'absolute', inset: 0, background: 'rgba(0,0,0,0.25)', pointerEvents: 'none' }} />
<div className="container" style={{ position: 'relative', zIndex: 1 }}>
<div style={{ display: 'flex', gap: '10px', marginBottom: '24px', flexWrap: 'wrap' }}>
<span className="badge badge-purple" style=ArchiveHub function · typescript · L66-L178 (113 LOC)src/pages/archive/ArchiveHub.tsx
export function ArchiveHub() {
return (
<main style={{ flex: 1 }}>
{/* Hero */}
<section style={{
borderBottom: '1px solid var(--hero-border)',
padding: '80px 0 60px',
position: 'relative',
overflow: 'hidden',
background: 'linear-gradient(135deg, var(--hero-from) 0%, var(--hero-mid) 50%, var(--hero-to) 100%)',
}}>
<div style={{
position: 'absolute', inset: 0,
backgroundImage: 'radial-gradient(circle at 1px 1px, var(--dot-color) 1px, transparent 0)',
backgroundSize: '48px 48px', pointerEvents: 'none',
}} />
<div className="container" style={{ position: 'relative', zIndex: 1 }}>
<div style={{ display: 'flex', gap: '8px', marginBottom: '20px', flexWrap: 'wrap' }}>
<span className="badge badge-blue"><ArchiveIcon size={12} style={{ marginRight: '4px' }} /> Archive</span>
<span className="badge badge-blue">Research history</span>
</CollateralLayout function · typescript · L2-L4 (3 LOC)src/pages/collateral/CollateralLayout.tsx
export function CollateralLayout() {
return <Outlet />;
}ContactPage function · typescript · L13-L245 (233 LOC)src/pages/contact/ContactPage.tsx
export function ContactPage() {
const [form, setForm] = useState({
name: '',
email: '',
company: '',
role: '',
offering: '',
message: '',
});
const [submitted, setSubmitted] = useState(false);
const handleChange = (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>) => {
setForm({ ...form, [e.target.name]: e.target.value });
};
const handleSubmit = (e: React.FormEvent) => {
e.preventDefault();
setSubmitted(true);
};
return (
<main style={{ flex: 1 }}>
{/* Hero */}
<section style={{
background: 'linear-gradient(135deg, var(--hero-from) 0%, var(--hero-mid) 50%, var(--hero-to) 100%)',
borderBottom: '1px solid var(--hero-border)',
padding: '80px 0 60px',
position: 'relative',
overflow: 'hidden',
}}>
<div style={{
position: 'absolute', inset: 0,
backgroundImage: 'radial-gradient(circle at 1px 1px, var(--dot-color) 1px,DPDEOffering function · typescript · L19-L145 (127 LOC)src/pages/dpde/DPDEOffering.tsx
export function DPDEOffering() {
return (
<main style={{ flex: 1 }}>
{/* Hero */}
<section style={{
background: 'linear-gradient(135deg, var(--hero-from) 0%, var(--hero-mid) 40%, var(--hero-to) 100%)',
borderBottom: '1px solid var(--hero-border)',
padding: '100px 0 80px',
position: 'relative',
overflow: 'hidden',
}}>
<div style={{
position: 'absolute', inset: 0,
backgroundImage: 'radial-gradient(circle at 1px 1px, var(--dot-color) 1px, transparent 0)',
backgroundSize: '48px 48px', pointerEvents: 'none',
}} />
<div style={{ position: 'absolute', inset: 0, background: 'rgba(0,0,0,0.25)', pointerEvents: 'none' }} />
<div className="container" style={{ position: 'relative', zIndex: 1 }}>
<div style={{ display: 'flex', gap: '10px', marginBottom: '24px', flexWrap: 'wrap' }}>
<span className="badge badge-teal" style={{ fontSize: '13px', padding: 'Header function · typescript · L11-L19 (9 LOC)src/pages/dt/AgentPlaybook.tsx
function Header({ badge, title, desc }: { badge: string; title: string; desc?: string }) {
return (
<div style={{ marginBottom: '28px' }}>
<div className="badge badge-blue" style={{ marginBottom: '14px' }}>{badge}</div>
<h2 style={{ fontSize: 'clamp(22px, 2.8vw, 30px)', fontWeight: 700, marginBottom: '10px', lineHeight: 1.15 }}>{title}</h2>
{desc && <p style={{ color: 'var(--text-secondary)', fontSize: '15px', maxWidth: '820px', lineHeight: 1.7 }}>{desc}</p>}
</div>
);
}Source: Repobility analyzer · https://repobility.com
DataTable function · typescript · L21-L43 (23 LOC)src/pages/dt/AgentPlaybook.tsx
function DataTable({ headers, rows }: { headers: string[]; rows: string[][] }) {
return (
<div style={{ background: 'var(--card-bg)', border: '1px solid var(--card-border)', borderRadius: '2px', overflow: 'auto' }}>
<div style={{
display: 'grid', gridTemplateColumns: headers.map((_, i) => i === 0 ? '1.3fr' : '1fr').join(' '),
background: 'var(--bg-elevated)', padding: '12px 18px', fontSize: '11px', fontWeight: 600,
color: 'var(--text-muted)', textTransform: 'uppercase', letterSpacing: '0.05em', minWidth: `${headers.length * 140}px`,
}}>
{headers.map(h => <div key={h}>{h}</div>)}
</div>
{rows.map((row, i) => (
<div key={i} style={{
display: 'grid', gridTemplateColumns: headers.map((_, j) => j === 0 ? '1.3fr' : '1fr').join(' '),
padding: '12px 18px', borderTop: '1px solid var(--border-subtle)', fontSize: '13px', minWidth: `${headers.length * 140}px`,
}}>
{row.map((cell, j) => (
Checklist function · typescript · L45-L59 (15 LOC)src/pages/dt/AgentPlaybook.tsx
function Checklist({ title, items, color = TEAL }: { title: string; items: string[]; color?: string }) {
return (
<div style={{ background: 'var(--card-bg)', border: '1px solid var(--card-border)', borderLeft: `4px solid ${color}`, borderRadius: '2px', padding: '18px 20px' }}>
<h3 style={{ fontSize: '15px', fontWeight: 700, marginBottom: '14px' }}>{title}</h3>
<ul style={{ listStyle: 'none', padding: 0, margin: 0, display: 'flex', flexDirection: 'column', gap: '8px' }}>
{items.map((item, i) => (
<li key={i} style={{ display: 'flex', gap: '10px', alignItems: 'flex-start' }}>
<CheckmarkFilled size={16} color={color} style={{ flexShrink: 0, marginTop: '2px' }} />
<span style={{ fontSize: '13.5px', color: 'var(--text-secondary)', lineHeight: 1.6 }}>{item}</span>
</li>
))}
</ul>
</div>
);
}AgentPlaybook function · typescript · L61-L295 (235 LOC)src/pages/dt/AgentPlaybook.tsx
export function AgentPlaybook() {
return (
<main style={{ flex: 1 }}>
{/* HERO */}
<section style={{
background: 'linear-gradient(135deg, var(--hero-from) 0%, var(--hero-mid) 50%, var(--hero-to) 100%)',
borderBottom: '1px solid var(--hero-border)', padding: '80px 0 60px',
}}>
<div className="container">
<div style={{ display: 'flex', gap: '8px', marginBottom: '20px', fontSize: '13px', color: 'var(--text-muted)' }}>
<Link to="/dt" style={{ color: 'var(--text-muted)', textDecoration: 'none' }}>DT Offering</Link>
<span>/</span>
<span style={{ color: B }}>Agent Deployment Playbook</span>
</div>
<div style={{ display: 'flex', gap: '8px', marginBottom: '20px', flexWrap: 'wrap' }}>
<span className="badge badge-blue">Agent Deployment Playbook</span>
<span className="badge badge-blue">Foundry + Agent 365 + Security</span>
</div>
<h1 stylepage 1 / 4next ›