// Lucide-style stroke icons for doc landing cards. All icons share the
// same visual language: 24×24 viewBox, 1.5px stroke, rounded caps,
// `currentColor` for fill/stroke so they pick up `text-*` Tailwind
// utilities + the theme tokens.
//
// Hand-rolled (vs depending on `lucide-react`) because we only need a
// dozen icons here and a 200KB dep for that is silly. Add more shapes
// to this file as the doc catalogue grows.
import type { ReactNode } from 'react'
interface DocIconProps {
readonly className?: string
/** Accessible label. When omitted the icon is `aria-hidden` and
* should sit next to text. */
readonly title?: string
}
const Icon = ({
children, className, title,
}: DocIconProps & { children: ReactNode }): ReactNode => (
)
export const RocketIcon = (p: DocIconProps): ReactNode => (
)
export const CompassIcon = (p: DocIconProps): ReactNode => (
)
export const PackageIcon = (p: DocIconProps): ReactNode => (
)
export const FolderIcon = (p: DocIconProps): ReactNode => (
)
export const FileIcon = (p: DocIconProps): ReactNode => (
)
export const BroadcastIcon = (p: DocIconProps): ReactNode => (
)
export const PencilIcon = (p: DocIconProps): ReactNode => (
)
export const BellIcon = (p: DocIconProps): ReactNode => (
)
export const CogIcon = (p: DocIconProps): ReactNode => (
)
export const BuildingIcon = (p: DocIconProps): ReactNode => (
)
export const DatabaseIcon = (p: DocIconProps): ReactNode => (
)
export const LockIcon = (p: DocIconProps): ReactNode => (
)
export const BotIcon = (p: DocIconProps): ReactNode => (
)
export const TerminalIcon = (p: DocIconProps): ReactNode => (
)
export const LayersIcon = (p: DocIconProps): ReactNode => (
)
export const PuzzleIcon = (p: DocIconProps): ReactNode => (
)
export const HookIcon = (p: DocIconProps): ReactNode => (
)
export const GlobeIcon = (p: DocIconProps): ReactNode => (
)
export const CloudIcon = (p: DocIconProps): ReactNode => (
)
export const HomeIcon = (p: DocIconProps): ReactNode => (
)
export const ChevronLeftIcon = (p: DocIconProps): ReactNode => (
)
export const ChevronRightIcon = (p: DocIconProps): ReactNode => (
)
export const SearchIcon = (p: DocIconProps): ReactNode => (
)
export const ArrowReturnIcon = (p: DocIconProps): ReactNode => (
)
// ---- Social / brand icons ----
//
// Filled (not stroked) — that's the convention for brand marks since
// the official lockups are filled. Same 24×24 viewBox + currentColor
// fill so they pick up text-* utilities and theme tokens.
const FilledIcon = ({
children, className, title,
}: DocIconProps & { children: ReactNode }): ReactNode => (
)
export const GitHubIcon = (p: DocIconProps): ReactNode => (
)
export const XIcon = (p: DocIconProps): ReactNode => (
)
export const DiscordIcon = (p: DocIconProps): ReactNode => (
)
export const LinkedInIcon = (p: DocIconProps): ReactNode => (
)
export const RssIcon = (p: DocIconProps): ReactNode => (
)
export const ChartIcon = (p: DocIconProps): ReactNode => (
)