gitextract_oyjuehk2/ ├── .all-contributorsrc ├── .changeset/ │ ├── README.md │ └── config.json ├── .editorconfig ├── .github/ │ ├── CODE_OF_CONDUCT.md │ ├── CONTRIBUTING.md │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug-report.yml │ │ ├── config.yml │ │ └── update-docs.yml │ └── workflows/ │ ├── ci.yml │ └── update-algolia-index.yml ├── .gitignore ├── .prettierignore ├── .prettierrc ├── .vscode/ │ └── settings.json ├── LICENSE ├── README.md ├── apps/ │ └── www/ │ ├── .eslintrc.cjs │ ├── .gitignore │ ├── CHANGELOG.md │ ├── env.js │ ├── next-sitemap.config.js │ ├── next.config.js │ ├── package.json │ ├── postcss.config.cjs │ ├── public/ │ │ └── site.webmanifest │ ├── src/ │ │ ├── app/ │ │ │ ├── (docs)/ │ │ │ │ ├── introduction/ │ │ │ │ │ └── page.tsx │ │ │ │ ├── layout.tsx │ │ │ │ ├── migrate-to-v3/ │ │ │ │ │ └── page.tsx │ │ │ │ └── react-hook/ │ │ │ │ └── [slug]/ │ │ │ │ └── page.tsx │ │ │ ├── (marketing)/ │ │ │ │ ├── layout.tsx │ │ │ │ └── page.tsx │ │ │ ├── globals.css │ │ │ ├── layout.tsx │ │ │ └── prism.css │ │ ├── components/ │ │ │ ├── buy-me-a-coffee.tsx │ │ │ ├── carbon-ads/ │ │ │ │ ├── ads.tsx │ │ │ │ ├── index.ts │ │ │ │ └── use-script.ts │ │ │ ├── command-copy.tsx │ │ │ ├── doc-search/ │ │ │ │ ├── command-menu.tsx │ │ │ │ ├── doc-search.tsx │ │ │ │ ├── footer.tsx │ │ │ │ ├── hits.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── input.tsx │ │ │ │ ├── modal.context.tsx │ │ │ │ ├── open-button.tsx │ │ │ │ ├── types.ts │ │ │ │ └── use-cmd-k.ts │ │ │ ├── docs/ │ │ │ │ ├── left-sidebar.tsx │ │ │ │ ├── page-header.tsx │ │ │ │ ├── pager.tsx │ │ │ │ ├── right-sidebar.tsx │ │ │ │ └── table-of-content.tsx │ │ │ ├── main-nav.tsx │ │ │ ├── mobile-nav.tsx │ │ │ └── ui/ │ │ │ ├── button.tsx │ │ │ ├── command.tsx │ │ │ ├── components.tsx │ │ │ ├── dialog.tsx │ │ │ ├── dropdown-menu.tsx │ │ │ └── icons.tsx │ │ ├── config/ │ │ │ ├── docs.ts │ │ │ ├── marketing.ts │ │ │ └── site.ts │ │ ├── lib/ │ │ │ ├── api.ts │ │ │ └── utils.ts │ │ └── types/ │ │ └── index.ts │ ├── tailwind.config.js │ └── tsconfig.json ├── package.json ├── packages/ │ ├── eslint-config-custom/ │ │ ├── .eslintrc.cjs │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── index.cjs │ │ └── package.json │ └── usehooks-ts/ │ ├── .eslintrc.cjs │ ├── .gitignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── index.ts │ │ ├── useBoolean/ │ │ │ ├── index.ts │ │ │ ├── useBoolean.demo.tsx │ │ │ ├── useBoolean.md │ │ │ ├── useBoolean.test.ts │ │ │ └── useBoolean.ts │ │ ├── useClickAnyWhere/ │ │ │ ├── index.ts │ │ │ ├── useClickAnyWhere.demo.tsx │ │ │ ├── useClickAnyWhere.md │ │ │ ├── useClickAnyWhere.test.ts │ │ │ └── useClickAnyWhere.ts │ │ ├── useCopyToClipboard/ │ │ │ ├── index.ts │ │ │ ├── useCopyToClipboard.demo.tsx │ │ │ ├── useCopyToClipboard.md │ │ │ ├── useCopyToClipboard.test.ts │ │ │ └── useCopyToClipboard.ts │ │ ├── useCountdown/ │ │ │ ├── index.ts │ │ │ ├── useCountdown.demo.tsx │ │ │ ├── useCountdown.md │ │ │ ├── useCountdown.test.ts │ │ │ └── useCountdown.ts │ │ ├── useCounter/ │ │ │ ├── index.ts │ │ │ ├── useCounter.demo.tsx │ │ │ ├── useCounter.md │ │ │ ├── useCounter.test.ts │ │ │ └── useCounter.ts │ │ ├── useDarkMode/ │ │ │ ├── index.ts │ │ │ ├── useDarkMode.demo.tsx │ │ │ ├── useDarkMode.md │ │ │ ├── useDarkMode.test.ts │ │ │ └── useDarkMode.ts │ │ ├── useDebounceCallback/ │ │ │ ├── index.ts │ │ │ ├── useDebounceCallback.demo.tsx │ │ │ ├── useDebounceCallback.md │ │ │ ├── useDebounceCallback.test.ts │ │ │ └── useDebounceCallback.ts │ │ ├── useDebounceValue/ │ │ │ ├── index.ts │ │ │ ├── useDebounceValue.demo.tsx │ │ │ ├── useDebounceValue.md │ │ │ ├── useDebounceValue.test.ts │ │ │ └── useDebounceValue.ts │ │ ├── useDocumentTitle/ │ │ │ ├── index.ts │ │ │ ├── useDocumentTitle.demo.tsx │ │ │ ├── useDocumentTitle.md │ │ │ ├── useDocumentTitle.test.ts │ │ │ └── useDocumentTitle.ts │ │ ├── useEventCallback/ │ │ │ ├── index.ts │ │ │ ├── useEventCallback.demo.tsx │ │ │ ├── useEventCallback.md │ │ │ ├── useEventCallback.test.tsx │ │ │ └── useEventCallback.ts │ │ ├── useEventListener/ │ │ │ ├── index.ts │ │ │ ├── useEventListener.demo.tsx │ │ │ ├── useEventListener.md │ │ │ ├── useEventListener.test.ts │ │ │ └── useEventListener.ts │ │ ├── useHover/ │ │ │ ├── index.ts │ │ │ ├── useHover.demo.tsx │ │ │ ├── useHover.md │ │ │ ├── useHover.test.ts │ │ │ └── useHover.ts │ │ ├── useIntersectionObserver/ │ │ │ ├── index.ts │ │ │ ├── useIntersectionObserver.demo.tsx │ │ │ ├── useIntersectionObserver.md │ │ │ └── useIntersectionObserver.ts │ │ ├── useInterval/ │ │ │ ├── index.ts │ │ │ ├── useInterval.demo.tsx │ │ │ ├── useInterval.md │ │ │ ├── useInterval.test.ts │ │ │ └── useInterval.ts │ │ ├── useIsClient/ │ │ │ ├── index.ts │ │ │ ├── useIsClient.demo.tsx │ │ │ ├── useIsClient.md │ │ │ ├── useIsClient.test.ts │ │ │ └── useIsClient.ts │ │ ├── useIsMounted/ │ │ │ ├── index.ts │ │ │ ├── useIsMounted.demo.tsx │ │ │ ├── useIsMounted.md │ │ │ ├── useIsMounted.test.ts │ │ │ └── useIsMounted.ts │ │ ├── useIsomorphicLayoutEffect/ │ │ │ ├── index.ts │ │ │ ├── useIsomorphicLayoutEffect.demo.tsx │ │ │ ├── useIsomorphicLayoutEffect.md │ │ │ └── useIsomorphicLayoutEffect.ts │ │ ├── useLocalStorage/ │ │ │ ├── index.ts │ │ │ ├── useLocalStorage.demo.tsx │ │ │ ├── useLocalStorage.md │ │ │ ├── useLocalStorage.test.ts │ │ │ └── useLocalStorage.ts │ │ ├── useMap/ │ │ │ ├── index.ts │ │ │ ├── useMap.demo.tsx │ │ │ ├── useMap.md │ │ │ ├── useMap.test.ts │ │ │ └── useMap.ts │ │ ├── useMediaQuery/ │ │ │ ├── index.ts │ │ │ ├── useMediaQuery.demo.tsx │ │ │ ├── useMediaQuery.md │ │ │ └── useMediaQuery.ts │ │ ├── useOnClickOutside/ │ │ │ ├── index.ts │ │ │ ├── useOnClickOuside.test.ts │ │ │ ├── useOnClickOutside.demo.tsx │ │ │ ├── useOnClickOutside.md │ │ │ └── useOnClickOutside.ts │ │ ├── useReadLocalStorage/ │ │ │ ├── index.ts │ │ │ ├── useReadLocalStorage.demo.tsx │ │ │ ├── useReadLocalStorage.md │ │ │ ├── useReadLocalStorage.test.ts │ │ │ └── useReadLocalStorage.ts │ │ ├── useResizeObserver/ │ │ │ ├── index.ts │ │ │ ├── useResizeObserver.demo.tsx │ │ │ ├── useResizeObserver.md │ │ │ ├── useResizeObserver.test.tsx │ │ │ └── useResizeObserver.ts │ │ ├── useScreen/ │ │ │ ├── index.ts │ │ │ ├── useScreen.demo.tsx │ │ │ ├── useScreen.md │ │ │ └── useScreen.ts │ │ ├── useScript/ │ │ │ ├── index.ts │ │ │ ├── useScript.demo.tsx │ │ │ ├── useScript.md │ │ │ ├── useScript.test.ts │ │ │ └── useScript.ts │ │ ├── useScrollLock/ │ │ │ ├── index.ts │ │ │ ├── useScrollLock.demo.tsx │ │ │ ├── useScrollLock.md │ │ │ ├── useScrollLock.test.ts │ │ │ └── useScrollLock.ts │ │ ├── useSessionStorage/ │ │ │ ├── index.ts │ │ │ ├── useSessionStorage.demo.tsx │ │ │ ├── useSessionStorage.md │ │ │ ├── useSessionStorage.test.ts │ │ │ └── useSessionStorage.ts │ │ ├── useStep/ │ │ │ ├── index.ts │ │ │ ├── useStep.demo.tsx │ │ │ ├── useStep.md │ │ │ ├── useStep.test.ts │ │ │ └── useStep.ts │ │ ├── useTernaryDarkMode/ │ │ │ ├── index.ts │ │ │ ├── useTernaryDarkMode.demo.tsx │ │ │ ├── useTernaryDarkMode.md │ │ │ ├── useTernaryDarkMode.test.ts │ │ │ └── useTernaryDarkMode.ts │ │ ├── useTimeout/ │ │ │ ├── index.ts │ │ │ ├── useTimeout.demo.tsx │ │ │ ├── useTimeout.md │ │ │ ├── useTimeout.test.ts │ │ │ └── useTimeout.ts │ │ ├── useToggle/ │ │ │ ├── index.ts │ │ │ ├── useToggle.demo.tsx │ │ │ ├── useToggle.md │ │ │ ├── useToggle.test.ts │ │ │ └── useToggle.ts │ │ ├── useUnmount/ │ │ │ ├── index.ts │ │ │ ├── useUnmount.demo.tsx │ │ │ ├── useUnmount.md │ │ │ ├── useUnmount.test.ts │ │ │ └── useUnmount.ts │ │ └── useWindowSize/ │ │ ├── index.ts │ │ ├── useWindowSize.demo.tsx │ │ ├── useWindowSize.md │ │ ├── useWindowSize.test.ts │ │ └── useWindowSize.ts │ ├── tests/ │ │ ├── mocks.ts │ │ └── setup.ts │ ├── tsconfig.json │ ├── tsup.config.ts │ └── vitest.config.ts ├── pnpm-workspace.yaml ├── renovate.json ├── scripts/ │ ├── env.js │ ├── generate-doc.js │ ├── update-algolia-index.js │ ├── update-testing-issue.js │ └── utils/ │ ├── data-transform.js │ ├── generate-doc-files.js │ ├── get-hooks.js │ ├── get-markdown-data.js │ └── update-readme.js ├── turbo/ │ └── generators/ │ ├── config.cts │ └── templates/ │ ├── hook/ │ │ ├── hook.demo.tsx.hbs │ │ ├── hook.mdx.hbs │ │ ├── hook.test.ts.hbs │ │ ├── hook.ts.hbs │ │ └── index.ts.hbs │ └── index.ts.hbs ├── turbo.json └── typedoc.json