import React from 'react';
import clsx from 'clsx';
import Link from '@docusaurus/Link';
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
import Layout from '@theme/Layout';
import styles from './index.module.css';
function HomepageHeader() {
const {siteConfig} = useDocusaurusContext();
return (
{siteConfig.title}
{siteConfig.tagline}
Get Started →
API Reference
);
}
const features = [
{
title: '🏠 Uniform API',
description: 'push, pop, shift, map, filter, reduce — same methods across all structures. Learn once, use everywhere.',
},
{
title: '🛡️ Type Safe',
description: 'Full generics with strict TypeScript support. Every method returns the correct type — no casting needed.',
},
{
title: '✨ Zero Friction',
description: 'Spread it [...tree], loop it for...of, pass it to new Set(). Works with every JavaScript API out of the box.',
},
{
title: '📦 Zero Dependencies',
description: 'Pure TypeScript. No runtime dependencies. Tree-shakeable with subpath exports — bundle only what you use.',
},
{
title: '🔄 Raw Data In, Structure Out',
description: 'Pass raw objects directly with toEntryFn, toElementFn, or comparator. No .map() pre-processing needed — unique to this library in JS/TS.',
},
{
title: '✅ Battle-Tested',
description: '2600+ tests, 99%+ coverage. CLRS-correct Red-Black Tree, ACL-style Segment Tree. Production-ready.',
},
];
const structures = [
{ category: 'Trees', items: 'RedBlackTree, AVLTree, BST, TreeMap, TreeSet, TreeMultiMap, TreeMultiSet' },
{ category: 'Heaps', items: 'Heap, MinHeap, MaxHeap, MinPriorityQueue, MaxPriorityQueue' },
{ category: 'Queues & Stacks', items: 'Queue, Deque, Stack' },
{ category: 'Linked Lists', items: 'SinglyLinkedList, DoublyLinkedList, SkipList' },
{ category: 'Hashing', items: 'HashMap' },
{ category: 'Graphs', items: 'DirectedGraph, UndirectedGraph' },
{ category: 'Strings', items: 'Trie' },
{ category: 'Arrays', items: 'SegmentTree, BinaryIndexedTree, Matrix' },
];
const useCases = [
{ title: 'Priority Queue', link: '/docs/guide/use-cases/priority-queue-typescript', desc: 'Task scheduling, top-k problems, Dijkstra' },
{ title: 'TreeMap / TreeSet', link: '/docs/guide/use-cases/treemap-javascript', desc: 'Sorted maps, floor/ceiling, range queries' },
{ title: 'Array + Sort Too Slow?', link: '/docs/guide/use-cases/array-sort-alternative', desc: 'O(log n) insert vs O(n log n) re-sort' },
{ title: 'Heap vs Sorting', link: '/docs/guide/use-cases/heap-vs-sorting', desc: 'When to use which' },
{ title: 'Map vs TreeMap', link: '/docs/guide/use-cases/map-vs-treemap', desc: 'When native Map isn\'t enough' },
];
export default function Home(): React.JSX.Element {
return (