main repo

This commit is contained in:
Basilosaurusrex
2025-11-24 18:09:40 +01:00
parent b636ee5e70
commit f027651f9b
34146 changed files with 4436636 additions and 0 deletions

55
node_modules/next/dist/esm/client/route-announcer.js generated vendored Normal file
View File

@@ -0,0 +1,55 @@
import React from "react";
import { useRouter } from "./router";
const nextjsRouteAnnouncerStyles = {
border: 0,
clip: "rect(0 0 0 0)",
height: "1px",
margin: "-1px",
overflow: "hidden",
padding: 0,
position: "absolute",
top: 0,
width: "1px",
// https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
whiteSpace: "nowrap",
wordWrap: "normal"
};
export const RouteAnnouncer = ()=>{
const { asPath } = useRouter();
const [routeAnnouncement, setRouteAnnouncement] = React.useState("");
// Only announce the path change, but not for the first load because screen
// reader will do that automatically.
const previouslyLoadedPath = React.useRef(asPath);
// Every time the path changes, announce the new pages title following this
// priority: first the document title (from head), otherwise the first h1, or
// if none of these exist, then the pathname from the URL. This methodology is
// inspired by Marcy Suttons accessible client routing user testing. More
// information can be found here:
// https://www.gatsbyjs.com/blog/2019-07-11-user-testing-accessible-client-routing/
React.useEffect(()=>{
// If the path hasn't change, we do nothing.
if (previouslyLoadedPath.current === asPath) return;
previouslyLoadedPath.current = asPath;
if (document.title) {
setRouteAnnouncement(document.title);
} else {
const pageHeader = document.querySelector("h1");
var _pageHeader_innerText;
const content = (_pageHeader_innerText = pageHeader == null ? void 0 : pageHeader.innerText) != null ? _pageHeader_innerText : pageHeader == null ? void 0 : pageHeader.textContent;
setRouteAnnouncement(content || asPath);
}
}, // TODO: switch to pathname + query object of dynamic route requirements
[
asPath
]);
return /*#__PURE__*/ React.createElement("p", {
"aria-live": "assertive" // Make the announcement immediately.
,
id: "__next-route-announcer__",
role: "alert",
style: nextjsRouteAnnouncerStyles
}, routeAnnouncement);
};
export default RouteAnnouncer;
//# sourceMappingURL=route-announcer.js.map