> ## Documentation Index
> Fetch the complete documentation index at: https://docs.livepeer.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Icon Map

> Canonical icon-to-usage map for tabs, accordions, cards, and guide navigation across current Livepeer docs.

export const iconMapReviewQueue = [{
  icon: 'wand-magic-sparkles',
  issue: 'Overloaded across AI entry surfaces, product cards, quickstarts, badges, and managed-platform choices.',
  recommendation: 'Keep `wand-magic-sparkles` for AI entry surfaces only. Use product icons for named solutions, `bolt` for quickstarts, a badge-specific icon set for badges, and `cloud` for managed or hosted platforms.'
}, {
  icon: 'book',
  issue: 'Overloaded across generic guides, external docs, technical guides, references, tutorials, and GitHub links.',
  recommendation: 'Keep `book` for non-technical guides and concepts. Use `laptop-file` for technical guides, `circle-play` for tutorials, `file-lines` for references, and `github` for GitHub destinations.'
}, {
  icon: 'book-open',
  issue: 'Very high count (1237) because it is the default accordion icon across the codebase. This makes scan count meaningless as an overload signal for this icon specifically.',
  recommendation: 'Accept `book-open` as the accordion default. For card/CTA uses, keep the distinction from `book` (open-book = guide hub, book = learning resource).'
}, {
  icon: 'terminal',
  issue: 'Very high count (1135) because it is the default tab icon for OS/platform installation tabs.',
  recommendation: 'Accept `terminal` as the platform/CLI tab default. For non-CLI pages using `terminal` as a generic icon, migrate to the appropriate section or page-type default.'
}, {
  icon: 'server',
  issue: 'Sometimes used for Gateway, sometimes for generic infrastructure, sometimes for node software.',
  recommendation: 'Use `server` for Gateway, self-hosted infra, and direct-node paths. Use `microchip` for hardware/operator compute and `cube` for packaged runtimes.'
}, {
  icon: 'tools',
  issue: 'Overlaps with `gear` and `wrench` in operational docs.',
  recommendation: 'Use `tools` for tool collections, `gear` for settings/config metadata, `gears` for advanced multi-part config, and `wrench` for troubleshooting or maintenance.'
}, {
  icon: 'coins',
  issue: 'Used for delegator concepts, rewards, fees, and some funding contexts.',
  recommendation: 'Use `coins` for economics/rewards and `wallet` for balance/funding/payout state where the user action is wallet-centric.'
}, {
  icon: 'bolt',
  issue: 'Used interchangeably with `rocket` for quickstart and first-run surfaces.',
  recommendation: 'Use `bolt` as the canonical quickstart/fast-path icon. Reserve `rocket` for portal launch pages (orchestrators/portal, developers/portal).'
}, {
  icon: 'link',
  issue: 'Very high usage makes it a catch-all icon with weak semantics.',
  recommendation: 'Prefer it only for connection, routing, endpoint, or path concepts. Use `arrow-up-right` for generic external links and brand or domain-specific icons when the destination is otherwise clear.'
}];

export const iconMapPageTypeDefaults = [{
  pageType: 'quickstart',
  icon: 'bolt',
  rationale: 'Speed cue. Prefer over `rocket` for quick-start cards. `rocket` is reserved for launch/portal pages.'
}, {
  pageType: 'tutorial',
  icon: 'circle-play',
  rationale: 'Watch-first, interactive learning. Matches the play/demo metaphor.'
}, {
  pageType: 'concept',
  icon: 'book',
  rationale: 'Reading/learning. Non-technical concepts and foundational explainers.'
}, {
  pageType: 'reference',
  icon: 'file-lines',
  rationale: 'Document artefact. Technical references, spec pages, parameter lists.'
}, {
  pageType: 'guide-technical',
  icon: 'laptop-file',
  rationale: 'Code-heavy, developer-facing guides. Distinct from `book-open` which is for reading paths.'
}, {
  pageType: 'guide-general',
  icon: 'book-open',
  rationale: 'Reading-oriented guide hubs and non-technical how-to guides.'
}, {
  pageType: 'glossary',
  icon: 'table-columns',
  rationale: 'Structured reference. Glossary = lookup table.'
}, {
  pageType: 'faq',
  icon: 'circle-question',
  rationale: 'Question-answer format. Use consistently for all FAQ accordion or card links.'
}, {
  pageType: 'troubleshooting',
  icon: 'wrench',
  rationale: 'Fix/maintenance metaphor. Not `tools` (which is for tool collections).'
}, {
  pageType: 'navigator',
  icon: 'compass',
  rationale: 'Orientation hub. Reserve for tab/section-level navigators, not individual topic pages.'
}, {
  pageType: 'overview',
  icon: 'layer-group',
  rationale: 'Structural overview. Conveys layered/stacked content.'
}, {
  pageType: 'portal',
  icon: 'rocket',
  rationale: 'Launch/entry point. Top-level portal pages (orchestrators/portal, developers/portal).'
}, {
  pageType: 'changelog',
  icon: 'newspaper',
  rationale: 'Announcement/update log.'
}, {
  pageType: 'external-link',
  icon: 'arrow-up-right',
  rationale: 'Fallback for external destinations when no specific brand icon is available.'
}];

export const iconMapSections = [{
  id: 'actors',
  title: 'Actors And Personas',
  description: 'Use these when the icon is standing in for a role, operator path, or reader persona.',
  entries: [{
    icon: 'server',
    label: 'Gateway / self-managed infra',
    scanCount: 78,
    useFor: 'Gateway actor labels, direct-node deployment paths, self-hosted infrastructure, and fleet-oriented setup choices.',
    avoid: 'Avoid for generic configuration or any page that is really about hardware acceleration.',
    components: ['Card', 'Tab', 'Accordion', 'path selector'],
    examples: ['v2/developers/concepts/running-a-gateway.mdx', 'v2/orchestrators/guides/advanced-operations/orchestrator-transcoder-setup.mdx', 'v2/orchestrators/guides/setup-paths/find-your-path.mdx']
  }, {
    icon: 'microchip',
    label: 'Orchestrator / compute node',
    scanCount: 91,
    useFor: 'Orchestrator role labels, GPU-backed compute paths, hardware-oriented setup choices, and node runtime surfaces.',
    avoid: 'Avoid for general AI product pages where the focus is workflows rather than node hardware or operator runtime.',
    components: ['Card', 'Tab', 'Step', 'Accordion'],
    examples: ['v2/orchestrators/navigator.mdx', 'v2/orchestrators/guides/feasibility-and-hardware/benchmarking.mdx']
  }, {
    icon: 'user-robot',
    label: 'AI builder persona',
    scanCount: 13,
    useFor: 'AI-native builder paths, AI persona tabs, and product-entry surfaces aimed at developers building with AI workloads.',
    avoid: 'Avoid as the default icon for infrastructure operators or model-runtime internals.',
    components: ['Card', 'Tab', 'portal card'],
    examples: ['v2/developers/portal.mdx']
  }, {
    icon: 'coins',
    label: 'Delegator / economics / rewards',
    scanCount: 86,
    useFor: 'Delegator-facing paths, rewards, pricing, fees, funding, and economics sections.',
    avoid: 'Avoid when the page is specifically about balances or wallet actions rather than economics or incentives.',
    components: ['Card', 'Accordion', 'Tab', 'comparison row'],
    examples: ['v2/orchestrators/navigator.mdx', 'v2/developers/navigator.mdx', 'v2/gateways/guides/payments-and-pricing/clearinghouse-guide.mdx']
  }, {
    icon: 'wallet',
    label: 'Balances / funding / payout state',
    scanCount: 8,
    useFor: 'Funding guides, payout references, exchange/funding steps, and wallet-state concepts.',
    avoid: 'Avoid as the default icon for broader rewards or token-economics pages.',
    components: ['Card', 'Accordion', 'guide CTA'],
    examples: ['v2/orchestrators/navigator.mdx', 'v2/gateways/resources/technical/new-contract-addresses.mdx']
  }]
}, {
  id: 'ai-compute',
  title: 'AI And Compute',
  description: 'Reserve these for AI-specific workload, inference, BYOC, and compute-routing surfaces.',
  entries: [{
    icon: 'wand-magic-sparkles',
    label: 'AI hub / AI preview / AI jump pad',
    scanCount: 28,
    useFor: 'High-level AI entry points, AI jump-pad sections, preview badges, and AI-first navigation surfaces.',
    avoid: 'Avoid for generic novelty, general announcements, or low-level runtime/config pages.',
    components: ['Badge', 'Card', 'portal section', 'section header'],
    examples: ['v2/developers/portal.mdx', 'v2/orchestrators/portal.mdx', 'v2/developers/get-started/contributor-quickstart.mdx']
  }, {
    icon: 'brain-circuit',
    label: 'AI SDK / AI workflow logic',
    scanCount: 4,
    useFor: 'AI SDKs, AI pipeline explainers, and workflow-building surfaces where the focus is model logic rather than infrastructure.',
    avoid: 'Avoid for node hardware, GPU sizing, or general developer docs that are not AI-specific.',
    components: ['Card', 'Step', 'resource listing'],
    examples: ['v2/developers/resources/compendium/resources.mdx', 'v2/developers/guides/developer-guides.mdx']
  }, {
    icon: 'brain',
    label: 'AI model / machine learning concept',
    scanCount: 17,
    useFor: 'AI model references, machine learning concepts, and content specifically about model selection or capabilities.',
    avoid: 'Avoid for infrastructure or SDK pages — prefer `brain-circuit` for AI pipeline logic or `microchip-ai` for model runtime.',
    components: ['Card', 'Accordion', 'concept reference'],
    examples: ['v2/developers/resources/compendium/resources.mdx', 'v2/solutions/frameworks/overview.mdx']
  }, {
    icon: 'microchip-ai',
    label: 'AI node runtime / model support',
    scanCount: 10,
    useFor: 'AI pipeline runtime pages, model-support references, and operator-facing AI workload configuration.',
    avoid: 'Avoid as the top-level icon for AI product marketing or builder persona routing.',
    components: ['Card', 'Tab', 'reference CTA'],
    examples: ['v2/gateways/guides/node-pipelines/ai-pipelines.mdx', 'v2/orchestrators/quickstart/guide.mdx']
  }, {
    icon: 'cube',
    label: 'BYOC / containerised workload',
    scanCount: 15,
    useFor: 'BYOC, packaged runtimes, container-based integrations, and external compute packaging.',
    avoid: 'Avoid for generic infrastructure or network topology pages.',
    components: ['Card', 'Tab', 'setup choice'],
    examples: ['v2/developers/get-started/comfystream-quickstart.mdx', 'v2/developers/navigator.mdx']
  }, {
    icon: 'network-wired',
    label: 'Network integration / SDK connectivity',
    scanCount: 15,
    useFor: 'SDK collections, API connectivity, pools, or surfaces centred on integration into the network.',
    avoid: 'Avoid when the page is about business relationships or abstract architecture diagrams.',
    components: ['Card', 'reference CTA'],
    examples: ['v2/developers/resources/reference/sdks.mdx', 'v2/orchestrators/navigator.mdx']
  }]
}, {
  id: 'video-media',
  title: 'Video And Media',
  description: 'Use these when the content is distinctly about video workloads, playback, or media-facing product paths.',
  entries: [{
    icon: 'video',
    label: 'Video concept / video product page',
    scanCount: 45,
    useFor: 'Video product sections, video-specific concepts, and pages primarily about video processing as a topic.',
    avoid: 'Avoid where the focus is a specific workload type (use `film` for transcoding pipelines) or creator-facing app (use `video-camera`).',
    components: ['Card', 'Tab', 'Accordion'],
    examples: ['v2/solutions/livepeer-studio/docs/reference/overview.mdx', 'v2/about/concepts/livepeer-overview.mdx']
  }, {
    icon: 'film-canister',
    label: 'Video platform / gateway video route',
    scanCount: 6,
    useFor: 'Gateway video navigation, product-level video surfaces, and media-routing entry points.',
    avoid: 'Avoid for generic playback actions or individual tutorials about watching content.',
    components: ['Card', 'Tab', 'portal CTA'],
    examples: ['v2/gateways/portal.mdx', 'v2/gateways/setup/configure/configuration-overview.mdx']
  }, {
    icon: 'film',
    label: 'Video workload / transcoding',
    scanCount: 12,
    useFor: 'Video pipelines, transcoding workloads, and operator paths that are specifically about media processing.',
    avoid: 'Avoid for top-level product hubs or viewer-facing watch actions.',
    components: ['Card', 'Accordion', 'path selector'],
    examples: ['v2/orchestrators/navigator.mdx', 'v2/gateways/concepts/role.mdx']
  }, {
    icon: 'video-camera',
    label: 'Video app / creator-facing surface',
    scanCount: 6,
    useFor: 'Video app-builder paths, creator use cases, or pages framed around live/video experiences rather than backend pipelines.',
    avoid: 'Avoid for lower-level transcoding or node-operation pages.',
    components: ['Card', 'portal CTA', 'hero callout'],
    examples: ['v2/developers/portal.mdx', 'v2/home/about/benefits.mdx']
  }, {
    icon: 'circle-play',
    label: 'Watch / demo / start-with-video',
    scanCount: 17,
    useFor: 'Demo entry points, featured video tutorials, player examples, and watch-first surfaces.',
    avoid: 'Avoid as the default icon for all video pages when the content is really about processing or platform architecture.',
    components: ['BlinkingIcon', 'Card', 'featured link'],
    examples: ['v2/developers/portal.mdx', 'v2/gateways/portal.mdx']
  }, {
    icon: 'play',
    label: 'Playback / tutorial action / demo start',
    scanCount: 15,
    useFor: 'Tutorial action buttons, demo start CTAs, and playback-related navigation across delegator and developer surfaces.',
    avoid: 'Avoid where `circle-play` already covers watch/demo semantics. Use `play` for generic action triggers, `circle-play` for featured video.',
    components: ['Card', 'Accordion', 'Tab'],
    examples: ['v2/delegators/delegation/bridge-lpt-to-arbitrum.mdx', 'v2/delegators/delegation/choose-an-orchestrator.mdx']
  }, {
    icon: 'camera-movie',
    label: 'Video recording / streaming context',
    scanCount: 12,
    useFor: 'Streaming and recording contexts, gateway quickstart content that involves live video capture.',
    avoid: 'Avoid for post-processing or transcoding (use `film`). Avoid for viewer-side playback (use `play` or `circle-play`).',
    components: ['Card', 'Tab', 'Accordion'],
    examples: ['v2/gateways/custom/views/quickstart/docker/dockerOffChainTab.mdx', 'v2/gateways/custom/views/quickstart/docker/dockerOnChainTab.mdx']
  }]
}, {
  id: 'docs-ia',
  title: 'Docs And Information Architecture',
  description: 'These are best for documentation structure, reference collections, and authored-content building blocks.',
  entries: [{
    icon: 'book',
    label: 'General docs / learning resource',
    scanCount: 44,
    useFor: 'General documentation links, learning resources, and broad reference destinations.',
    avoid: 'Avoid when the destination is a specific guide collection or an open-book style reading path.',
    components: ['Card', 'Accordion', 'resource CTA'],
    examples: ['v2/developers/get-started/contributor-quickstart.mdx', 'v2/orchestrators/portal.mdx']
  }, {
    icon: 'book-open',
    label: 'Guide collection / open reference',
    scanCount: 1237,
    useFor: 'Guide hubs, docs repositories, or reading-oriented references where the open-book metaphor fits. Also the default accordion icon across the codebase — this is why the count is very high.',
    avoid: 'Avoid for every documentation link by default; keep a distinction from `book`.',
    components: ['Card', 'reference CTA', 'Accordion (default)'],
    examples: ['v2/developers/resources/compendium/resources.mdx', 'v2/orchestrators/rc-navigator.mdx']
  }, {
    icon: 'file-lines',
    label: 'Templates / documents / written artefacts',
    scanCount: 9,
    useFor: 'Proposal templates, content blocks, document examples, or other text-first artefacts.',
    avoid: 'Avoid for broader documentation libraries where `book` or `book-open` is clearer.',
    components: ['Card', 'Accordion'],
    examples: ['docs-guide/tooling/dev-tools.mdx', 'v2/developers/guides/opportunities/rfps-and-proposals.mdx']
  }, {
    icon: 'table-columns',
    label: 'Table / layout block library',
    scanCount: 3,
    useFor: 'Table snippets, layout-block collections, and content-structure references.',
    avoid: 'Avoid for general data references when the content is really about datasets or backends.',
    components: ['Accordion', 'tooling reference'],
    examples: ['docs-guide/tooling/dev-tools.mdx']
  }, {
    icon: 'layer-group',
    label: 'Page structure / layered system',
    scanCount: 26,
    useFor: 'Page-structure inventories, middleware/layered architecture, and platform-build surfaces.',
    avoid: 'Avoid for data or document-only references.',
    components: ['Accordion', 'Tab', 'Card'],
    examples: ['docs-guide/tooling/dev-tools.mdx', 'v2/gateways/navigator.mdx']
  }, {
    icon: 'database',
    label: 'Data source / dataset / subgraph',
    scanCount: 7,
    useFor: 'Data references, subgraphs, datasets, and data-centric tooling.',
    avoid: 'Avoid for general reference docs that are not data-oriented.',
    components: ['Accordion', 'Card', 'resource CTA'],
    examples: ['docs-guide/tooling/dev-tools.mdx', 'v2/developers/resources/compendium/resources.mdx']
  }, {
    icon: 'books',
    label: 'Knowledge library / documentation collection',
    scanCount: 12,
    useFor: 'Navigator and portal surfaces linking to documentation libraries, knowledge hubs, and curated reading paths.',
    avoid: 'Avoid for single-document links (use `book`). Avoid for guide collections (use `book-open`).',
    components: ['Card', 'Accordion', 'navigator CTA'],
    examples: ['v2/about/navigator.mdx', 'v2/delegators/delegation/overview.mdx']
  }, {
    icon: 'magnifying-glass',
    label: 'Search / discover / explore',
    scanCount: 11,
    useFor: 'Search surfaces, discovery CTAs, explorer links, and opportunity-finding navigation.',
    avoid: 'Avoid for detailed reference pages (use `table-list` or `file-lines`).',
    components: ['Card', 'Tab', 'Accordion'],
    examples: ['v2/developers/navigator.mdx', 'v2/developers/guides/opportunities/overview.mdx']
  }, {
    icon: 'file',
    label: 'Configuration file / document reference',
    scanCount: 10,
    useFor: 'Configuration files, governance proposals, treasury documents, and file-level references.',
    avoid: 'Avoid for broader documentation pages (use `book`). Avoid for templates (use `file-lines`).',
    components: ['Card', 'Accordion', 'Tab'],
    examples: ['v2/about/protocol/treasury.mdx', 'v2/gateways/custom/views/setup/configure/video-configuration-content.mdx']
  }]
}, {
  id: 'ops-tooling',
  title: 'Operations And Tooling',
  description: 'Use these for setup flow, CLI surfaces, configuration, validation, and troubleshooting.',
  entries: [{
    icon: 'rocket',
    label: 'Quickstart / launch path',
    scanCount: 36,
    useFor: 'Get-started routes, quickstart cards, launch paths, and first-run guidance.',
    avoid: 'Avoid for all forward navigation; use only when the page really represents a start or launch path. Prefer `bolt` for speed-cue quickstart cards.',
    components: ['Card', 'Accordion', 'guide CTA'],
    examples: ['docs-guide/tooling/lpd-cli.mdx', 'v2/developers/portal.mdx']
  }, {
    icon: 'terminal',
    label: 'CLI / shell / command execution',
    scanCount: 1135,
    useFor: 'CLI references, shell-based setup, command-heavy workflows, and terminal-first pages. Also used as the default tab icon for OS/platform tabs — this accounts for the very high count.',
    avoid: 'Avoid for general tooling pages that are not command-centric.',
    components: ['Accordion', 'Card', 'code-adjacent CTA', 'Tab (default)'],
    examples: ['docs-guide/tooling/lpd-cli.mdx', 'v2/orchestrators/setup/rs-install.mdx']
  }, {
    icon: 'gear',
    label: 'Settings / metadata / repo configuration',
    scanCount: 17,
    useFor: 'Metadata, settings, hook configuration, and repo-level operational controls.',
    avoid: 'Avoid as a synonym for troubleshooting or generic toolboxes.',
    components: ['Accordion', 'settings CTA'],
    examples: ['docs-guide/tooling/dev-tools.mdx', 'docs-guide/tooling/lpd-cli.mdx']
  }, {
    icon: 'gears',
    label: 'Advanced config / multi-component settings',
    scanCount: 11,
    useFor: 'Advanced or multi-part configuration, compound settings surfaces, and system-level tuning.',
    avoid: 'Avoid as a synonym for single-setting or metadata pages (use `gear` for those).',
    components: ['Card', 'Accordion'],
    examples: ['v2/orchestrators/guides/advanced-operations/orchestrator-transcoder-setup.mdx', 'v2/gateways/setup/configure/configuration-overview.mdx']
  }, {
    icon: 'sliders',
    label: 'Tuning / configuration knobs',
    scanCount: 29,
    useFor: 'Runtime configuration, tuning, pricing/config surfaces, and adjustable operating parameters.',
    avoid: 'Avoid for static metadata or install-only flows.',
    components: ['Card', 'config CTA'],
    examples: ['v2/orchestrators/setup/rs-install.mdx', 'v2/developers/resources/compendium/resources.mdx']
  }, {
    icon: 'tools',
    label: 'Operational toolset / admin toolkit',
    scanCount: 9,
    useFor: 'Collections of operational tools, admin utilities, or quick-access tooling hubs.',
    avoid: 'Avoid when the page is specifically about fixing problems (`wrench`) or metadata/config (`gear`).',
    components: ['Card', 'portal CTA'],
    examples: ['v2/developers/portal.mdx', 'v2/orchestrators/portal.mdx']
  }, {
    icon: 'wrench',
    label: 'Troubleshooting / maintenance',
    scanCount: 5,
    useFor: 'Troubleshooting pages, operational break-fix paths, and maintenance references.',
    avoid: 'Avoid for general tool listings or initial setup guidance.',
    components: ['Accordion', 'Card', 'support CTA'],
    examples: ['docs-guide/tooling/lpd-cli.mdx', 'v2/orchestrators/portal.mdx']
  }, {
    icon: 'check-circle',
    label: 'Validation / expected result',
    scanCount: 2,
    useFor: 'Validation and CI sections, expected-results accordions, and pass/fail verification points.',
    avoid: 'Avoid as a generic success icon on overview pages.',
    components: ['Accordion', 'validation callout'],
    examples: ['docs-guide/tooling/lpd-cli.mdx']
  }, {
    icon: 'check',
    label: 'Verification step / completed action',
    scanCount: 24,
    useFor: 'Verification steps in setup flows, completed-action indicators, contract verification, and funding confirmation.',
    avoid: 'Avoid for generic success messaging (use `check-circle`). Use `check` for inline step verification, `check-circle` for summary/result status.',
    components: ['Accordion', 'Tab', 'Card'],
    examples: ['v2/about/protocol/blockchain-contracts.mdx', 'v2/gateways/guides/payments-and-pricing/funding-guide.mdx']
  }, {
    icon: 'download',
    label: 'Install / download / fetch resource',
    scanCount: 18,
    useFor: 'Download actions, binary installation steps, SDK fetching, and resource acquisition CTAs.',
    avoid: 'Avoid for generic setup (use `bolt` or `rocket`). Use `download` only when the action is specifically downloading or installing.',
    components: ['Card', 'Tab', 'Step'],
    examples: ['v2/developers/get-started/contributor-quickstart.mdx', 'v2/gateways/guides/deployment-details/setup-options.mdx']
  }]
}, {
  id: 'network-external',
  title: 'Network, On-Chain, And External',
  description: 'Use these for protocol relationships, external sources, and community surfaces.',
  entries: [{
    icon: 'ethereum',
    label: 'ETH / on-chain / smart contracts',
    scanCount: 14,
    useFor: 'ETH funding, on-chain setup, contract tooling, and chain-specific references.',
    avoid: 'Avoid for generic crypto concepts when the page is not actually chain- or ETH-specific.',
    components: ['Card', 'Accordion', 'funding reference'],
    examples: ['v2/developers/resources/compendium/resources.mdx', 'v2/gateways/guides/payments-and-pricing/funding-guide.mdx']
  }, {
    icon: 'diagram-project',
    label: 'Relationships / topology / delegation model',
    scanCount: 32,
    useFor: 'Architecture relationships, staking/delegation models, and network topology surfaces.',
    avoid: 'Avoid for generic flowcharts where another more specific domain icon exists.',
    components: ['Card', 'concept CTA', 'relationship view'],
    examples: ['v2/orchestrators/concepts/role.mdx', 'v2/orchestrators/navigator.mdx']
  }, {
    icon: 'github',
    label: 'Source repo / issue tracker / code host',
    scanCount: 147,
    useFor: 'GitHub repos, issue trackers, code sources, and open-source references.',
    avoid: 'Avoid for generic external links. Keep it specific to GitHub destinations.',
    components: ['Card', 'portal CTA', 'external reference'],
    examples: ['v2/developers/portal.mdx', 'v2/developers/resources/knowledge-hub/awesome-livepeer.mdx']
  }, {
    icon: 'discord',
    label: 'Discord community / chat support',
    scanCount: 16,
    useFor: 'Discord join paths, live community help, and chat-based support destinations.',
    avoid: 'Avoid for the forum or long-form discussions.',
    components: ['Card', 'community CTA'],
    examples: ['v2/developers/resources/compendium/developer-help.mdx', 'v2/community/portal.mdx']
  }, {
    icon: 'comments',
    label: 'Forum / discussion thread',
    scanCount: 20,
    useFor: 'Forum links, community discussion threads, and long-form Q&A surfaces.',
    avoid: 'Avoid for synchronous chat destinations like Discord.',
    components: ['Card', 'forum CTA'],
    examples: ['v2/developers/resources/compendium/developer-help.mdx', 'v2/gateways/guides/payments-and-pricing/clearinghouse-guide.mdx']
  }, {
    icon: 'globe-pointer',
    label: 'External docs / knowledge map',
    scanCount: 2,
    useFor: 'External documentation sites, discovery maps, or third-party knowledge portals.',
    avoid: 'Avoid when a more specific brand or platform icon exists.',
    components: ['Card', 'reference CTA'],
    examples: ['v2/developers/resources/knowledge-hub/deepwiki.mdx']
  }, {
    icon: 'link',
    label: 'Connection / endpoint / path link',
    scanCount: 71,
    useFor: 'RPC endpoints, on-chain gateway/payment-path distinctions, or simple connection references.',
    avoid: 'Avoid as a generic external-link stand-in. It becomes too vague when overused.',
    components: ['Card', 'Tab', 'resource CTA'],
    examples: ['v2/developers/resources/compendium/resources.mdx', 'v2/gateways/concepts/role.mdx']
  }, {
    icon: 'lock',
    label: 'Security / authentication / access control',
    scanCount: 18,
    useFor: 'Authentication pages, security considerations, API key management, access control, and encryption references.',
    avoid: 'Avoid for general protocol governance (use `diagram-project`). Use `lock` only when the topic is specifically about securing access.',
    components: ['Card', 'Accordion', 'Tab'],
    examples: ['v2/developers/build/sdk-gateway.mdx', 'v2/developers/guides/ai/authentication.mdx']
  }, {
    icon: 'plug',
    label: 'Integration / connection / API endpoint',
    scanCount: 16,
    useFor: 'Integration guides, API connection references, SDK endpoints, and plugin/extension surfaces.',
    avoid: 'Avoid for general link/path semantics (use `link`). Use `plug` when the content is about connecting systems together.',
    components: ['Card', 'Accordion', 'Tab'],
    examples: ['v2/developers/resources/reference/sdks.mdx', 'v2/developers/resources/reference/pricing-rate-limits.mdx']
  }]
}, {
  id: 'platform-env',
  title: 'Platform And Environment',
  description: 'Use these when the icon signals an operating system, deployment environment, or distribution format.',
  entries: [{
    icon: 'docker',
    label: 'Docker / containerised deployment',
    scanCount: 62,
    useFor: 'Docker-based setup paths, container runtime tabs, and pages specifically about containerised deployments.',
    avoid: 'Avoid as a generic cloud or infra icon. Reserve for container-specific steps.',
    components: ['Tab', 'Card', 'Step'],
    examples: ['v2/gateways/quickstart/views/docker/dockerOnChainTab.mdx', 'v2/orchestrators/setup/rs-install.mdx']
  }, {
    icon: 'linux',
    label: 'Linux / server OS',
    scanCount: 37,
    useFor: 'Linux-specific setup tabs, server OS instructions, and binary deployment paths targeting Linux.',
    avoid: 'Avoid for general OS-agnostic setup guides.',
    components: ['Tab', 'Card'],
    examples: ['v2/orchestrators/setup/rs-install.mdx', 'v2/gateways/setup/requirements/setup.mdx']
  }, {
    icon: 'windows',
    label: 'Windows / desktop OS',
    scanCount: 31,
    useFor: 'Windows-specific setup tabs and instructions targeting Windows deployments.',
    avoid: 'Avoid for server or container paths where Linux or Docker is more appropriate.',
    components: ['Tab', 'Card'],
    examples: ['v2/orchestrators/setup/rs-install.mdx']
  }, {
    icon: 'apple',
    label: 'macOS / Apple platform',
    scanCount: 10,
    useFor: 'macOS-specific setup tabs, developer-workstation instructions, and Apple-platform paths.',
    avoid: 'Avoid for server or production deployment contexts.',
    components: ['Tab', 'Card'],
    examples: ['v2/orchestrators/setup/rs-install.mdx']
  }, {
    icon: 'cloud',
    label: 'Managed / hosted / cloud platform',
    scanCount: 24,
    useFor: 'Managed platform options, cloud-hosted deployments, and hosted-service entry points.',
    avoid: 'Avoid for self-hosted or on-premise paths (use `server`) or for generic infrastructure diagrams.',
    components: ['Card', 'Tab', 'setup choice'],
    examples: ['v2/gateways/guides/deployment-details/setup-options.mdx', 'v2/developers/portal.mdx']
  }, {
    icon: 'box',
    label: 'Package / bundle / distribution',
    scanCount: 15,
    useFor: 'Package references, software bundles, distribution archives, and release artefacts.',
    avoid: 'Avoid for Docker containers (use `docker`) or runtime environments.',
    components: ['Card', 'Accordion', 'resource CTA'],
    examples: ['v2/orchestrators/setup/rs-install.mdx']
  }]
}, {
  id: 'code-dev',
  title: 'Code And Development',
  description: 'Use these for code-facing surfaces, SDK and API references, developer integrations, and metrics.',
  entries: [{
    icon: 'code',
    label: 'Code snippet / developer surface',
    scanCount: 148,
    useFor: 'Code examples, inline code references, developer-oriented pages, and any surface where the primary output is code.',
    avoid: 'Avoid as a generic icon for all developer content. Reserve for code-first pages and snippets.',
    components: ['Card', 'Accordion', 'Tab'],
    examples: ['v2/developers/guides/developer-guides.mdx', 'v2/developers/resources/reference/apis.mdx']
  }, {
    icon: 'brackets-curly',
    label: 'JSON / config / structured data',
    scanCount: 10,
    useFor: 'JSON configuration references, structured data files, and config-schema documentation.',
    avoid: 'Avoid for general developer pages — prefer `code` for code surfaces and `database` for data storage.',
    components: ['Accordion', 'reference CTA'],
    examples: ['v2/developers/resources/reference/apis.mdx']
  }, {
    icon: 'python',
    label: 'Python SDK / Python-specific reference',
    scanCount: 11,
    useFor: 'Python SDK references, Python code examples, and Python-specific integration paths.',
    avoid: 'Avoid for general code surfaces; use `code` for language-agnostic examples.',
    components: ['Card', 'Tab', 'SDK reference'],
    examples: ['v2/developers/resources/reference/sdks.mdx', 'v2/gateways/guides/node-pipelines/ai-pipelines.mdx']
  }, {
    icon: 'puzzle-piece',
    label: 'Integration / plugin / extension',
    scanCount: 13,
    useFor: 'Third-party integrations, plugin surfaces, framework extensions, and composable additions.',
    avoid: 'Avoid for SDK or API references (use `network-wired` or `code`) where the focus is connectivity.',
    components: ['Card', 'Accordion'],
    examples: ['v2/developers/resources/compendium/resources.mdx', 'v2/solutions/frameworks/overview.mdx']
  }, {
    icon: 'code-branch',
    label: 'Version / branch / fork',
    scanCount: 12,
    useFor: 'Version references, branching strategies, fork guides, and release-branch documentation.',
    avoid: 'Avoid for general code surfaces; this is specifically for versioning and branching concepts.',
    components: ['Card', 'Accordion', 'version CTA'],
    examples: ['v2/resources/documentation-guide/contribute-to-the-docs.mdx', 'v2/developers/guides/opportunities/oss-contributions.mdx']
  }, {
    icon: 'chart-line',
    label: 'Metrics / analytics / performance chart',
    scanCount: 62,
    useFor: 'Performance dashboards, analytics surfaces, metrics references, and data visualisation entry points.',
    avoid: 'Avoid for static benchmark tables or hardware specs (use `gauge` for throughput/speed contexts).',
    components: ['Card', 'Accordion', 'dashboard CTA'],
    examples: ['v2/orchestrators/guides/feasibility-and-hardware/benchmarking.mdx', 'v2/developers/resources/compendium/resources.mdx']
  }, {
    icon: 'gauge',
    label: 'Performance benchmark / throughput indicator',
    scanCount: 22,
    useFor: 'Hardware performance pages, throughput references, GPU benchmark results, and speed-oriented setup guides.',
    avoid: 'Avoid for metrics dashboards (use `chart-line`) or general analytics.',
    components: ['Card', 'Accordion', 'benchmark reference'],
    examples: ['v2/orchestrators/guides/feasibility-and-hardware/benchmarking.mdx', 'v2/gateways/setup/requirements/setup.mdx']
  }, {
    icon: 'gauge-high',
    label: 'High-throughput / peak performance',
    scanCount: 15,
    useFor: 'Peak-performance references, high-throughput capability callouts, and top-tier benchmarking sections.',
    avoid: 'Use `gauge` for general performance pages and `gauge-high` only when the content specifically emphasises peak or maximum throughput.',
    components: ['Card', 'Accordion', 'benchmark reference'],
    examples: ['v2/orchestrators/guides/feasibility-and-hardware/benchmarking.mdx']
  }, {
    icon: 'floppy-disk',
    label: 'Save / persist / export artefact',
    scanCount: 14,
    useFor: 'Save-state references, export steps, persisted configuration, and output-artefact pages.',
    avoid: 'Avoid for general data storage (use `database`) or package distribution (use `box`).',
    components: ['Card', 'Step', 'action CTA'],
    examples: ['v2/orchestrators/setup/rs-install.mdx', 'v2/gateways/setup/configure/configuration-overview.mdx']
  }]
}, {
  id: 'protocol-economics',
  title: 'Protocol, Economics, And Governance',
  description: 'Use these for on-chain governance, ecosystem economics, institutional references, and partnership surfaces.',
  entries: [{
    icon: 'hand-holding-dollar',
    label: 'Grant / subsidy / financial support',
    scanCount: 28,
    useFor: 'Grant programmes, subsidised infrastructure, ecosystem funding, and financial-support entry points.',
    avoid: 'Avoid for general rewards or staking pages (use `coins`) or wallet-funding steps (use `wallet`).',
    components: ['Card', 'Accordion', 'programme CTA'],
    examples: ['v2/developers/guides/opportunities/grants-and-programmes.mdx', 'v2/gateways/guides/opportunities/community-ecosystem.mdx']
  }, {
    icon: 'building-columns',
    label: 'Protocol governance / treasury / institutional',
    scanCount: 27,
    useFor: 'Protocol governance pages, treasury discussions, voting surfaces, and institutional-level references.',
    avoid: 'Avoid for general blockchain or on-chain pages (use `ethereum` for ETH-specific).',
    components: ['Card', 'Accordion', 'governance CTA'],
    examples: ['v2/about/protocol/overview.mdx', 'v2/community/community/livepeer-latest-topics.mdx']
  }, {
    icon: 'scale-balanced',
    label: 'Policy / fairness / compliance',
    scanCount: 14,
    useFor: 'Policy documents, fairness references, compliance guides, and balance-of-terms surfaces.',
    avoid: 'Avoid for general governance — `building-columns` is the better fit for voting and treasury.',
    components: ['Card', 'Accordion'],
    examples: ['v2/gateways/guides/operator-considerations/policies.mdx']
  }, {
    icon: 'handshake',
    label: 'Partnership / collaboration / agreement',
    scanCount: 12,
    useFor: 'Partnership pages, collaboration surfaces, and agreement or terms-of-service references.',
    avoid: 'Avoid for community chat or forum surfaces (use `discord` or `comments`).',
    components: ['Card', 'Accordion', 'partner CTA'],
    examples: ['v2/solutions/frameworks/overview.mdx', 'v2/developers/guides/opportunities/grants-and-programmes.mdx']
  }, {
    icon: 'tag',
    label: 'Category / label / tier',
    scanCount: 20,
    useFor: 'Category labels, pricing tiers, classification tags, and tier-based comparison surfaces.',
    avoid: 'Avoid for general metadata or settings pages.',
    components: ['Card', 'Tab', 'comparison row'],
    examples: ['v2/gateways/guides/payments-and-pricing/pricing-strategy.mdx', 'v2/orchestrators/guides/staking-and-rewards/earnings.mdx']
  }, {
    icon: 'building',
    label: 'Organisation / company / entity',
    scanCount: 16,
    useFor: 'Organisation-level references, company profiles, and entity-facing content.',
    avoid: 'Avoid for protocol governance — `building-columns` is more specific to that context.',
    components: ['Card', 'Accordion'],
    examples: ['v2/about/concepts/livepeer-overview.mdx', 'v2/community/community/ecosystem.mdx']
  }, {
    icon: 'file-contract',
    label: 'Contract / terms / formal document',
    scanCount: 11,
    useFor: 'Smart contract references, terms of service, formal legal or protocol documents.',
    avoid: 'Avoid for general documentation (use `file-lines`) or governance voting (use `building-columns`).',
    components: ['Card', 'Accordion', 'reference CTA'],
    examples: ['v2/gateways/resources/technical/new-contract-addresses.mdx', 'v2/about/protocol/core-mechanisms.mdx']
  }]
}, {
  id: 'content-signals',
  title: 'Content Signals And Callouts',
  description: 'Use these for callout semantics, urgency cues, checklists, time signals, and navigation aids within page content.',
  entries: [{
    icon: 'bolt',
    label: 'Quickstart / fast path / speed-optimised',
    scanCount: 28,
    useFor: 'Quickstart cards, fast-path options, speed-optimised setup choices, and first-run shortcuts.',
    avoid: 'Avoid for general forward navigation. This should feel like a speed cue.',
    components: ['Card', 'Tab', 'hero CTA'],
    examples: ['v2/developers/portal.mdx', 'v2/orchestrators/quickstart/guide.mdx']
  }, {
    icon: 'bolt-lightning',
    label: 'High-power / instant / accelerated',
    scanCount: 14,
    useFor: 'GPU-accelerated contexts, instant-activation surfaces, and high-throughput capability callouts.',
    avoid: 'Avoid as a synonym for general quickstarts — use `bolt` for those.',
    components: ['Card', 'Accordion', 'capability badge'],
    examples: ['v2/orchestrators/guides/feasibility-and-hardware/benchmarking.mdx']
  }, {
    icon: 'triangle-exclamation',
    label: 'Warning / prerequisite / caution',
    scanCount: 26,
    useFor: 'Warning callouts, prerequisite blocks, and caution notices that must appear before the reader proceeds.',
    avoid: 'Avoid as a decoration. Use only when there is a genuine caution or prerequisite.',
    components: ['Accordion', 'Callout', 'warning block'],
    examples: ['v2/orchestrators/setup/dep-config.mdx', 'v2/gateways/setup/requirements/setup.mdx']
  }, {
    icon: 'circle-question',
    label: 'FAQ / help / unclear term',
    scanCount: 51,
    useFor: 'FAQ accordions, help sections, clarifying callouts, and "what is X?" reference surfaces.',
    avoid: 'Avoid for general reference pages that are not explicitly question-and-answer in structure.',
    components: ['Accordion', 'Card', 'FAQ block'],
    examples: ['v2/orchestrators/resources/faq.mdx', 'v2/gateways/resources/reference/faq.mdx']
  }, {
    icon: 'lightbulb',
    label: 'Tip / insight / recommendation',
    scanCount: 12,
    useFor: 'Tip callouts, non-obvious insights, and recommendation blocks that add value beyond the main flow.',
    avoid: 'Avoid for warnings (use `triangle-exclamation`) or general notes.',
    components: ['Accordion', 'Callout', 'tip block'],
    examples: ['v2/orchestrators/guides/advanced-operations/orchestrator-transcoder-setup.mdx']
  }, {
    icon: 'warning',
    label: 'Deprecation / breaking change / critical issue',
    scanCount: 12,
    useFor: 'Deprecation notices, breaking-change callouts, and critical status indicators where something is no longer recommended.',
    avoid: 'Avoid as a synonym for `triangle-exclamation`. Use `warning` for status, `triangle-exclamation` for instruction-level cautions.',
    components: ['Callout', 'status badge'],
    examples: ['v2/orchestrators/guides/advanced-operations/orchestrator-transcoder-setup.mdx']
  }, {
    icon: 'clock',
    label: 'Time-bound / scheduled / freshness indicator',
    scanCount: 12,
    useFor: 'Time-sensitive content, scheduled processes (cron), freshness indicators, and deadline-adjacent references.',
    avoid: 'Avoid for general history or changelog pages.',
    components: ['Callout', 'Accordion', 'status indicator'],
    examples: ['v2/developers/guides/opportunities/grants-and-programmes.mdx']
  }, {
    icon: 'clipboard-check',
    label: 'Requirements checklist / pre-flight',
    scanCount: 19,
    useFor: 'Pre-flight checklists, system requirements lists, and setup prerequisite summaries.',
    avoid: 'Avoid for general to-do or task surfaces not framed as explicit requirements.',
    components: ['Accordion', 'Card', 'requirements block'],
    examples: ['v2/gateways/setup/requirements/setup.mdx', 'v2/orchestrators/setup/rs-install.mdx']
  }, {
    icon: 'list-check',
    label: 'Step checklist / verification list',
    scanCount: 12,
    useFor: 'Step-by-step verification lists, post-setup confirmation checklists, and ordered task references.',
    avoid: 'Avoid for general documentation lists that do not carry a verification or completion meaning.',
    components: ['Accordion', 'Step', 'checklist block'],
    examples: ['v2/orchestrators/guides/advanced-operations/orchestrator-transcoder-setup.mdx']
  }, {
    icon: 'key',
    label: 'API key / access credential / authentication',
    scanCount: 19,
    useFor: 'API key setup, authentication credential steps, and access-control surfaces.',
    avoid: 'Avoid for general security pages (use `shield-check`) or smart contract references.',
    components: ['Card', 'Accordion', 'auth step'],
    examples: ['v2/gateways/setup/requirements/setup.mdx', 'v2/developers/resources/reference/apis.mdx']
  }, {
    icon: 'shield-halved',
    label: 'Partial security / in-progress hardening',
    scanCount: 13,
    useFor: 'Partial security coverage, in-progress hardening steps, and security configurations that are functional but not fully locked down.',
    avoid: 'Avoid when the security is fully verified — use `shield-check` for that state.',
    components: ['Callout', 'status badge', 'Accordion'],
    examples: ['v2/orchestrators/guides/advanced-operations/production-hardening.mdx']
  }, {
    icon: 'shield-check',
    label: 'Security / hardening / trust verification',
    scanCount: 15,
    useFor: 'Security hardening guides, trust-verification steps, and production-security references.',
    avoid: 'Avoid for key or credential setup (use `key`) or partial/in-progress security states.',
    components: ['Card', 'Accordion'],
    examples: ['v2/orchestrators/guides/advanced-operations/production-hardening.mdx', 'v2/gateways/guides/advanced-operations/production-hardening.mdx']
  }, {
    icon: 'pen-to-square',
    label: 'Edit / changelog entry / content update',
    scanCount: 34,
    useFor: 'Changelog entry accordions, edit actions, and content-update indicators.',
    avoid: 'Avoid for general writing or authoring surfaces (use `file-lines`). Use `pen-to-square` specifically for edit/update semantics.',
    components: ['Accordion', 'Card', 'changelog entry'],
    examples: ['v2/solutions/daydream/changelog.mdx']
  }]
}, {
  id: 'community-discovery',
  title: 'Community, Discovery, And People',
  description: 'Use these for community surfaces, people-oriented content, navigation aids, external destinations, and announcements.',
  entries: [{
    icon: 'users',
    label: 'Community / team / group of people',
    scanCount: 29,
    useFor: 'Community portal entries, team-facing content, and group-oriented sections.',
    avoid: 'Avoid for individual persona routing (use `user-robot` or role-specific icons).',
    components: ['Card', 'Tab', 'community CTA'],
    examples: ['v2/community/portal.mdx', 'v2/about/concepts/livepeer-overview.mdx']
  }, {
    icon: 'robot',
    label: 'Bot / agent / automated process',
    scanCount: 16,
    useFor: 'Bot references, AI agent surfaces, and automated pipeline descriptions.',
    avoid: 'Avoid for the AI builder persona (use `user-robot`) or AI models (use `brain`).',
    components: ['Card', 'Accordion'],
    examples: ['v2/developers/resources/compendium/resources.mdx']
  }, {
    icon: 'compass',
    label: 'Navigator / orientation / path selection',
    scanCount: 17,
    useFor: 'Navigator pages, orientation hubs, and path-selection surfaces where the reader is choosing a direction.',
    avoid: 'Avoid for individual guides or topic pages that are not genuinely orientation-level.',
    components: ['Card', 'portal CTA'],
    examples: ['v2/orchestrators/navigator.mdx', 'v2/gateways/navigator.mdx', 'v2/developers/navigator.mdx']
  }, {
    icon: 'globe',
    label: 'Global / multilingual / external web',
    scanCount: 13,
    useFor: 'Multilingual content pointers, global-reach references, and general external web destinations.',
    avoid: 'Avoid for specific external docs sites (use `globe-pointer`) or GitHub (use `github`).',
    components: ['Card', 'language selector'],
    examples: ['v2/resources/documentation-guide/contribute-to-the-docs.mdx']
  }, {
    icon: 'arrow-up-right',
    label: 'External link / leaves current context',
    scanCount: 14,
    useFor: 'Links that open in a new tab or navigate outside the docs. A general-purpose external-link cue.',
    avoid: 'Avoid when a more specific icon exists for the destination (github, discord, etc.).',
    components: ['Card', 'reference CTA'],
    examples: ['v2/developers/guides/opportunities/grants-and-programmes.mdx']
  }, {
    icon: 'newspaper',
    label: 'News / blog / announcement',
    scanCount: 13,
    useFor: 'Blog post links, news sections, ecosystem announcements, and changelog entries.',
    avoid: 'Avoid for technical reference pages or governance documents.',
    components: ['Card', 'Accordion'],
    examples: ['v2/community/community/livepeer-latest-topics.mdx', 'v2/home/about/benefits.mdx']
  }, {
    icon: 'pencil-line',
    label: 'Authoring / contribution / edit surface',
    scanCount: 10,
    useFor: 'Contribution guides, editing references, and authoring-workflow surfaces.',
    avoid: 'Avoid for general documentation links — this signals an action (write or edit), not a reading destination.',
    components: ['Card', 'Accordion', 'contribute CTA'],
    examples: ['v2/resources/documentation-guide/contribute-to-the-docs.mdx', 'docs-guide/tooling/dev-tools.mdx']
  }]
}];

export const iconMapMethodology = {
  generatedOn: '2026-04-09',
  scope: 'Current English MDX under v2/ and docs-guide/ (locale copies and internal excluded)',
  exclusions: ['_archive', 'x-archived', 'v2/cn', 'v2/fr', 'v2/es', 'v2/internal'],
  notes: ['This is a canonical semantic map, not a hard validation contract.', 'Scan counts reflect current repo usage and indicate overload risk.', 'The map covers all icons with 10+ occurrences in the corpus.', 'Use audit-icon-usage.js to check compliance against this map.', 'The map feeds validators, authoring helpers, and generated reference pages.']
};

export const TableCell = ({children, align = "left", header = false, style = {}, className = "", ...rest}) => {
  const Component = header ? "th" : "td";
  return <Component className={className} style={{
    padding: "0.75rem 1rem",
    textAlign: align,
    border: header ? "none" : "1px solid var(--lp-color-border-default)",
    ...style
  }} {...rest}>
      {children}
    </Component>;
};

export const TableRow = ({children, header = false, hover = false, style = {}, className = "", ...rest}) => {
  const rowId = `table-row-${Math.random().toString(36).substr(2, 9)}`;
  return <>
      {hover && <style>{`
          #${rowId}:hover {
            background-color: var(--lp-color-bg-card);
          }
        `}</style>}
      <tr id={rowId} className={className} style={{
    ...header && ({
      backgroundColor: "var(--lp-color-accent-strong)",
      color: "var(--lp-color-on-accent)",
      fontWeight: "bold"
    }),
    ...style
  }} {...rest}>
        {children}
      </tr>
    </>;
};

export const StyledTable = ({children, variant = "default", style = {}, className = "", ...rest}) => {
  const wrapperVariants = {
    default: {
      border: "1px solid var(--lp-color-border-default)",
      backgroundColor: "var(--lp-color-bg-card)",
      overflow: "hidden"
    },
    bordered: {
      border: "2px solid var(--lp-color-accent)",
      backgroundColor: "var(--lp-color-bg-page)",
      overflow: "hidden"
    },
    minimal: {
      border: "none",
      backgroundColor: "transparent",
      overflow: "visible"
    }
  };
  return <div data-docs-styled-table-shell className={className} style={{
    width: "100%",
    padding: 0,
    margin: 0,
    ...wrapperVariants[variant],
    ...style
  }} {...rest}>
      <table data-docs-styled-table style={{
    width: "100%",
    borderCollapse: "collapse",
    borderSpacing: 0,
    margin: 0,
    backgroundColor: "transparent"
  }}>
        {children}
      </table>
    </div>;
};

export const CustomDivider = ({color = "var(--lp-color-border-default)", middleText = "", spacing = "default", style = {}, className = "", ...rest}) => {
  const spacingPresets = {
    default: {
      margin: "24px 0"
    },
    overlap: {
      margin: "-1rem 0 -1rem 0"
    },
    tight: {
      margin: "0 0 -1rem 0"
    },
    section: {
      margin: "0 0 -2rem 0"
    },
    sectionOverlap: {
      margin: "-1rem 0 -2rem 0"
    },
    deepOverlap: {
      margin: "-1rem 0 -1.5rem 0"
    }
  };
  const spacingStyle = spacingPresets[spacing] || spacingPresets.default;
  return <div role="separator" aria-orientation="horizontal" className={className} style={{
    display: "flex",
    alignItems: "center",
    ...spacingStyle,
    fontSize: style?.fontSize || "16px",
    height: "fit-content",
    ...style
  }} {...rest}>
      <span style={{
    marginRight: "var(--lp-spacing-px-8)",
    opacity: 0.2
  }}>
        <Icon icon="/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg" />
      </span>
      <div style={{
    flex: 1,
    height: "1px",
    background: "var(--lp-color-border-default)",
    opacity: 0.4
  }}></div>
      {middleText && <>
          <Icon icon="circle" size={2} />
          <span style={{
    margin: "0 8px",
    fontWeight: "bold",
    color: color,
    opacity: 0.7
  }}>
            {middleText}
          </span>
          <Icon icon="circle" size={2} />
        </>}
      <div style={{
    flex: 1,
    height: "1px",
    background: "var(--lp-color-border-default)",
    opacity: 0.4
  }}></div>
      <span style={{
    marginLeft: "var(--lp-spacing-px-8)",
    opacity: 0.2
  }}>
        <span style={{
    display: "inline-block",
    transform: "scaleX(-1)"
  }}>
          <Icon icon="/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg" />
        </span>
      </span>
    </div>;
};

<Note>
  This is the canonical semantic icon map for Livepeer docs. Use it to make consistent icon choices across cards, tabs, accordions, and navigation surfaces. When in doubt, check the page-type defaults table first.
</Note>

<Tip>
  The rendered page is backed by `/snippets/data/reference-maps/icon-map.jsx` so the same mapping feeds validators, authoring helpers, and audit scripts — it does not live only in this MDX file.

  To check compliance: `node operations/scripts/audits/content/reference/audit-icon-usage.js --md --verbose`
</Tip>

<CustomDivider />

## Scope

* Scan scope: {iconMapMethodology.scope}
* Exclusions: {Array.isArray(iconMapMethodology.exclusions) ? iconMapMethodology.exclusions.join(', ') : ''}
* Updated: {iconMapMethodology.generatedOn}
* Coverage: 78 icons mapped out of 365 unique icons in the corpus. All icons with 10+ occurrences are mapped.

<CustomDivider />

## Page-Type Canonical Defaults

When a component icon (Card, Accordion, Tab) is linking to a page and no specific semantic icon fits the destination, use the default for the page type being linked to.

<StyledTable>
  <TableRow header>
    <TableCell header>Page Type</TableCell>
    <TableCell header>Default Icon</TableCell>
    <TableCell header>Rationale</TableCell>
  </TableRow>

  {iconMapPageTypeDefaults.map((entry) => (
      <TableRow key={entry.pageType}>
        <TableCell><strong>{entry.pageType}</strong></TableCell>
        <TableCell>
          <Icon icon={entry.icon} size={18} /> <code>{entry.icon}</code>
        </TableCell>
        <TableCell>{entry.rationale}</TableCell>
      </TableRow>
    ))}
</StyledTable>

<CustomDivider />

## Section Jump

<CardGroup cols={3}>
  {iconMapSections.map((section) => (
      <Card
        key={section.id}
        title={section.title}
        icon={section.entries[0].icon}
        href={`#${section.id}`}
        arrow
      >
        {section.description}
      </Card>
    ))}
</CardGroup>

{iconMapSections.map((section) => (
<div key={section.id} id={section.id}>
  <CustomDivider />

  <h2>{section.title}</h2>

  <p>{section.description}</p>

  <StyledTable>
    <TableRow header>
      <TableCell header>Icon</TableCell>
      <TableCell header>Use for</TableCell>
      <TableCell header>Avoid for</TableCell>
      <TableCell header>Best in</TableCell>
      <TableCell header>Scan</TableCell>
      <TableCell header>Examples</TableCell>
    </TableRow>

    {section.entries.map((entry) => (
      <TableRow key={`${section.id}-${entry.icon}`}>
        <TableCell>
          <Icon icon={entry.icon} size={18} /> <strong>{entry.label}</strong>
          <br />
          <code>{entry.icon}</code>
        </TableCell>
        <TableCell>{entry.useFor}</TableCell>
        <TableCell>{entry.avoid}</TableCell>
        <TableCell>{Array.isArray(entry.components) ? entry.components.join(', ') : ''}</TableCell>
        <TableCell>{entry.scanCount}</TableCell>
        <TableCell>
          <ul>
            {(Array.isArray(entry.examples) ? entry.examples : []).map((example) => (
              <li key={example}>
                <code>{example}</code>
              </li>
            ))}
          </ul>
        </TableCell>
      </TableRow>
    ))}
  </StyledTable>
</div>
))}

<CustomDivider />

## Review Queue

These are the icons that look most overloaded or ambiguous in the current docs set.

<StyledTable>
  <TableRow header>
    <TableCell header>Icon</TableCell>
    <TableCell header>Current issue</TableCell>
    <TableCell header>Recommendation</TableCell>
  </TableRow>

  {iconMapReviewQueue.map((entry) => (
      <TableRow key={entry.icon}>
        <TableCell>
          <Icon icon={entry.icon} size={18} /> <code>{entry.icon}</code>
        </TableCell>
        <TableCell>{entry.issue}</TableCell>
        <TableCell>{entry.recommendation}</TableCell>
      </TableRow>
    ))}
</StyledTable>

### Inline Review Notes

### `wand-magic-sparkles`

* **Decision:** keep `wand-magic-sparkles` for AI entry surfaces only. Good fits are `Build an AI product` in `v2/gateways/navigator.mdx` and `ComfyStream` in `v2/gateways/guides/node-pipelines/guide.mdx`.
* **Products and named solutions should not inherit `wand-magic-sparkles` by default:** pages such as `What is Daydream?` in `v2/solutions/daydream/overview.mdx` and `Transcode` in `v2/solutions/livepeer-studio/docs/reference/overview.mdx` should use a product icon or brand icon instead.
* **Quickstarts should use `bolt`, not `wand-magic-sparkles` or `rocket`:** this should become the default quickstart cue across portal and setup-entry surfaces.
* **Badges need their own icon map:** the current `Developer Level Up` badge on `Run a Gateway` in `v2/gateways/portal.mdx` and `Run an Orchestrator` in `v2/orchestrators/portal.mdx` should move to a badge-specific set. Candidate icons: `gamepad`, `trophy`, or `medal`. Follow-up: fold badge semantics into this icon map rather than creating a separate disconnected reference.
* **Managed or hosted platforms should use a consistent platform icon:** `Managed Platform` in `v2/gateways/guides/deployment-details/setup-options.mdx` should converge on `cloud` as the default unless the platform has its own product icon.
* **Tutorials, guides, and references should use page-type icons instead:** for example, `Building Real-Time AI Video Effects with ComfyStream` in `v2/developers/guides/developer-guides.mdx` should resolve through tutorial or guide defaults rather than the AI-entry icon.

### `book`

* **Decision:** keep `book` for generic non-technical guides and concept pages. Good fits are `Contribution Guide` in `v2/developers/get-started/contributor-quickstart.mdx` and concept-oriented reading surfaces where the destination is primarily explanatory.
* **References, tutorials, and resources should not default to `book`:** `Orchestrator References` in `v2/orchestrators/portal.mdx` and `Orchestrator Offerings Reference` in `v2/gateways/guides/advanced-operations/production-hardening.mdx` should align to the resources/reference icon family instead. Tutorials should have their own default icon, likely `circle-play`.
* **External docs should use a product icon first, then an external-doc fallback:** `Daydream docs` in `v2/solutions/daydream/overview.mdx`, `ComfyStream documentation` in `v2/developers/get-started/comfystream-quickstart.mdx`, and `Frameworks docs` in `v2/solutions/frameworks/overview.mdx` should use a product icon where available, otherwise a generic external-link cue such as `up-right-from-square`.
* **Technical guides should use a technical-guide icon, not `book`:** items like `Python SDK Quickstart (Official Docs)` in `v2/developers/guides/developer-guides.mdx` should likely move to `laptop-file` or the agreed technical-guide default.
* **GitHub destinations should always use `github`:** `Documentation` and `Livepeer Docs` in `v2/developers/guides/contribution-guide.mdx` are GitHub links and should be branded as such, not rendered as generic books.

### `server`

* **Gateway or node deployment paths:** used when the reader is choosing a self-hosted path. Examples: `Set Up a Gateway` in `v2/developers/concepts/running-a-gateway.mdx` and `Solo orchestrator (go-livepeer)` in `v2/orchestrators/guides/setup-paths/find-your-path.mdx`.
* **Direct infrastructure configuration:** used when the page is about explicit node-to-node or self-managed infrastructure setup.
* **Infra software and node-adjacent services:** also used for software or infrastructure resources rather than operator roles. Examples: `Livepeer Catalyst (MistServer)` in `v2/developers/resources/compendium/resources.mdx`.
* **Provider personas and opportunities:** used for role-routing and grant surfaces as well. Examples: `Workload Provider` in `v2/developers/navigator.mdx` and `Earn from Idle GPU` in `v2/home/get-started.mdx`.

### `bolt` vs `rocket`

* **`bolt` is the canonical quickstart icon.** Use it for fast-path cards, get-started shortcuts, and setup-entry choices labelled as quickstart or fast. Replaces the previous ambiguity between `bolt` and `rocket`.
* **`rocket` is the portal/launch icon.** Keep it for top-level portal pages (`v2/developers/portal.mdx`, `v2/orchestrators/portal.mdx`) where the metaphor is launch rather than speed.
* **Do not mix them.** A card linking to a quickstart page uses `bolt`. A card that is the portal entry point uses `rocket`.

### `tools`

* **Tooling or quickstart hubs:** used when the destination is positioned as a tooling collection or jump-off page.
* **Distinguish from `gear` (single settings/config), `gears` (multi-part advanced config), and `wrench` (troubleshooting).**

### `coins`

* **Staking, rewards, and earnings:** used when the topic is protocol economics or operator returns.
* **Gateway funding and payment steps:** also used when the action is specifically about ETH funding or payment setup.
* **Distinguish from `hand-holding-dollar` (grants, subsidies, external financial support) and `wallet` (balance/payout state).**

### `link`

* **On-chain mode labels:** used when the icon stands in for the on-chain operational mode itself.
* **Discovery, routing, and connection flows:** used when the page is specifically about connecting to the network or discovering orchestrators.
* **RPC and endpoint references:** used for endpoint or connection resource links.
* **Prefer `arrow-up-right` for generic external destinations** — `link` should signal connection or routing, not "this opens in a new tab".

<CustomDivider />

## Data Location

The mapping lives in `/snippets/data/reference-maps/icon-map.jsx`.

That is deliberate:

* the page can render a reusable data source
* future validators can consume the same map without copying MDX tables
* more reference maps can sit beside it under `snippets/data/reference-maps/`

## Audit Tooling

Run the icon usage audit to check how well the current docs comply with this map:

```bash theme={"theme":{"light":"github-light","dark":"dark-plus"}}
node operations/scripts/audits/content/reference/audit-icon-usage.js --md --verbose
```

Output: `workspace/reports/_local/icon-usage-report.json` (and `.md` with `--md`).

The audit reports:

* Total unique icon values in use
* Which icons are mapped vs unmapped in this canonical map
* Frequency and page coverage for each icon

After updating the map, regenerate the report to verify coverage improved.

If a map is only narrative and will never be reused, inline MDX is fine. For
reusable authoring/reference maps consumed by docs pages, `snippets/data/reference-maps/`
is the better home. `tools/config/` should stay reserved for governed runtime or
script-facing config.
