+ );
+ }
+);
SearchBox.displayName = "SearchBox";
diff --git a/src/hooks/index.ts b/src/hooks/index.ts
index 89ce52213..a4db764dc 100644
--- a/src/hooks/index.ts
+++ b/src/hooks/index.ts
@@ -1,7 +1,9 @@
-export { useWindowFitment } from "./useWindowFitment";
+export { useClickOutside } from "./useClickOutside";
+export { useId } from "./useId";
export { useListener } from "./useListener";
+export { useOnEscapePressed } from "./useOnEscapePressed";
export { usePrevious } from "./usePrevious";
export { useThrottle } from "./useThrottle";
-export { useId } from "./useId";
export { usePagination } from "./usePagination";
+export { useWindowFitment } from "./useWindowFitment";
export type { WindowFitment } from "./useWindowFitment";
diff --git a/src/hooks/useClickOutside.test.tsx b/src/hooks/useClickOutside.test.tsx
new file mode 100644
index 000000000..9527212a9
--- /dev/null
+++ b/src/hooks/useClickOutside.test.tsx
@@ -0,0 +1,50 @@
+import { render, screen } from "@testing-library/react";
+import userEvent from "@testing-library/user-event";
+import React, { PropsWithChildren } from "react";
+import { useClickOutside } from "./useClickOutside";
+
+describe("useClickOutside", () => {
+ const TestComponent = ({
+ children,
+ onClickOutside,
+ }: PropsWithChildren<{
+ onClickOutside: () => void;
+ }>) => {
+ const [wrapperRef, id] = useClickOutside