"use client"; import { Button, Image, Link as HeroUILink, Dropdown, DropdownSection, DropdownMenu, DropdownItem, Tooltip, } from "@heroui/react"; import {useInView} from "framer-motion"; import {clsx} from "@heroui/shared-utils"; import { AddNoteBulkIcon, CopyDocumentBulkIcon, EditDocumentBulkIcon, DeleteDocumentBulkIcon, } from "@heroui/shared-icons"; import Link from "next/link"; import dynamic from "next/dynamic"; import {Fragment, useEffect, useRef, useState} from "react"; import {FeaturesGrid} from "./features-grid"; import landingContent from "@/content/landing"; import {GradientBox} from "@/components"; import { KeyboardBoldIcon, MouseCircleBoldIcon, SquaresBoldIcon, FatrowsBoldIcon, EyeBoldIcon, KeyboardOpenBoldIcon, InfoBoldIcon, } from "@/components/icons"; import {title, subtitle, titleWrapper, sectionWrapper} from "@/components/primitives"; import {useIsMobile} from "@/hooks/use-media-query"; const DemoCodeModal = dynamic(() => import("../demo-code-modal").then((mod) => mod.DemoCodeModal), { ssr: false, }); const a11yItems = [ { title: "Keyboard navigation", icon: , }, { title: "Managed focus", icon: , }, { title: "Collision aware", icon: , }, { title: "Alignment control", icon: , }, { title: "Screen reader support", icon: , }, { title: "Typehead support", icon: , }, ]; const iconClasses = "text-2xl text-default-500 pointer-events-none shrink-0"; export const A11yOtb = () => { const [isModalOpen, setIsModalOpen] = useState(false); const [isDropdownOpen, setIsDropdownOpen] = useState(false); const ref = useRef(null); const triggerRef = useRef(null); const isMobile = useIsMobile(); const isInView = useInView(ref, { margin: isMobile ? "0px" : "-300px", }); useEffect(() => { setIsDropdownOpen(!isMobile && isInView); }, [isMobile, isInView]); return (

Accessibility

out of the 

box.

HeroUI components are built on top of  React Aria  ensuring exceptional accessibility support as a top priority.

{ref.current && ( } > New file } > Copy link } > Edit file } > Delete file )}
a11y background
setIsModalOpen(false)} />
); };