├── .commitlintrc ├── .eslint ├── base.ts ├── import.ts ├── index.ts ├── jsx-a11y.ts ├── perfectionist.ts ├── react-hooks.ts ├── react.ts ├── shared.ts └── typescript.ts ├── .gitignore ├── .npmrc ├── .prettierignore ├── .prettierrc.json ├── .vscode └── settings.json ├── @types ├── @next-eslint-plugin-next.d.ts ├── eslint-plugin-import.d.ts └── eslint-plugin-jsx-a11y.d.ts ├── README.md ├── app ├── answer │ ├── basic │ │ ├── layout.tsx │ │ └── page.tsx │ ├── context │ │ ├── layout.tsx │ │ └── page.tsx │ ├── layout.tsx │ ├── use-imperative-handle │ │ ├── layout.tsx │ │ └── page.tsx │ └── use-sync-external-store │ │ ├── layout.tsx │ │ └── page.tsx ├── example │ ├── basic │ │ ├── form.tsx │ │ ├── layout.tsx │ │ ├── list.tsx │ │ ├── loading.tsx │ │ ├── page.tsx │ │ └── submit-button.tsx │ ├── best-practices │ │ ├── use-imperative-handle │ │ │ ├── form.tsx │ │ │ ├── layout.tsx │ │ │ ├── list.tsx │ │ │ ├── loading.tsx │ │ │ ├── page.tsx │ │ │ └── submit-button.tsx │ │ ├── use-sync-external-store │ │ │ ├── form.tsx │ │ │ ├── layout.tsx │ │ │ ├── list.tsx │ │ │ ├── loading.tsx │ │ │ ├── page.tsx │ │ │ ├── store.ts │ │ │ └── submit-button.tsx │ │ └── zustand │ │ │ ├── form.tsx │ │ │ ├── layout.tsx │ │ │ ├── list.tsx │ │ │ ├── loading.tsx │ │ │ ├── page.tsx │ │ │ ├── store.ts │ │ │ └── submit-button.tsx │ ├── layout.tsx │ └── util.ts ├── favicon.ico ├── layout.tsx ├── page.tsx └── react-scan.tsx ├── component ├── index.ts ├── layout │ ├── index.ts │ └── section.tsx ├── navigation │ ├── index.ts │ └── next-link.tsx └── typography │ ├── heading-with-tag.tsx │ └── index.ts ├── eslint.config.ts ├── layout ├── app │ ├── color-mode-toggle-button.tsx │ └── index.tsx └── index.ts ├── lefthook.yaml ├── next.config.ts ├── package.json ├── pnpm-lock.yaml ├── theme └── index.ts └── tsconfig.json /.commitlintrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/.commitlintrc -------------------------------------------------------------------------------- /.eslint/base.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/.eslint/base.ts -------------------------------------------------------------------------------- /.eslint/import.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/.eslint/import.ts -------------------------------------------------------------------------------- /.eslint/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/.eslint/index.ts -------------------------------------------------------------------------------- /.eslint/jsx-a11y.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/.eslint/jsx-a11y.ts -------------------------------------------------------------------------------- /.eslint/perfectionist.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/.eslint/perfectionist.ts -------------------------------------------------------------------------------- /.eslint/react-hooks.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/.eslint/react-hooks.ts -------------------------------------------------------------------------------- /.eslint/react.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/.eslint/react.ts -------------------------------------------------------------------------------- /.eslint/shared.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/.eslint/shared.ts -------------------------------------------------------------------------------- /.eslint/typescript.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/.eslint/typescript.ts -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/.gitignore -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/.npmrc -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | .next 2 | node_modules 3 | pnpm-lock.yaml 4 | -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/.prettierrc.json -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /@types/@next-eslint-plugin-next.d.ts: -------------------------------------------------------------------------------- 1 | declare module "@next/eslint-plugin-next" 2 | -------------------------------------------------------------------------------- /@types/eslint-plugin-import.d.ts: -------------------------------------------------------------------------------- 1 | declare module "eslint-plugin-import" 2 | -------------------------------------------------------------------------------- /@types/eslint-plugin-jsx-a11y.d.ts: -------------------------------------------------------------------------------- 1 | declare module "eslint-plugin-jsx-a11y" 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/README.md -------------------------------------------------------------------------------- /app/answer/basic/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/answer/basic/layout.tsx -------------------------------------------------------------------------------- /app/answer/basic/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/answer/basic/page.tsx -------------------------------------------------------------------------------- /app/answer/context/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/answer/context/layout.tsx -------------------------------------------------------------------------------- /app/answer/context/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/answer/context/page.tsx -------------------------------------------------------------------------------- /app/answer/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/answer/layout.tsx -------------------------------------------------------------------------------- /app/answer/use-imperative-handle/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/answer/use-imperative-handle/layout.tsx -------------------------------------------------------------------------------- /app/answer/use-imperative-handle/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/answer/use-imperative-handle/page.tsx -------------------------------------------------------------------------------- /app/answer/use-sync-external-store/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/answer/use-sync-external-store/layout.tsx -------------------------------------------------------------------------------- /app/answer/use-sync-external-store/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/answer/use-sync-external-store/page.tsx -------------------------------------------------------------------------------- /app/example/basic/form.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/basic/form.tsx -------------------------------------------------------------------------------- /app/example/basic/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/basic/layout.tsx -------------------------------------------------------------------------------- /app/example/basic/list.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/basic/list.tsx -------------------------------------------------------------------------------- /app/example/basic/loading.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/basic/loading.tsx -------------------------------------------------------------------------------- /app/example/basic/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/basic/page.tsx -------------------------------------------------------------------------------- /app/example/basic/submit-button.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/basic/submit-button.tsx -------------------------------------------------------------------------------- /app/example/best-practices/use-imperative-handle/form.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/best-practices/use-imperative-handle/form.tsx -------------------------------------------------------------------------------- /app/example/best-practices/use-imperative-handle/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/best-practices/use-imperative-handle/layout.tsx -------------------------------------------------------------------------------- /app/example/best-practices/use-imperative-handle/list.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/best-practices/use-imperative-handle/list.tsx -------------------------------------------------------------------------------- /app/example/best-practices/use-imperative-handle/loading.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/best-practices/use-imperative-handle/loading.tsx -------------------------------------------------------------------------------- /app/example/best-practices/use-imperative-handle/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/best-practices/use-imperative-handle/page.tsx -------------------------------------------------------------------------------- /app/example/best-practices/use-imperative-handle/submit-button.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/best-practices/use-imperative-handle/submit-button.tsx -------------------------------------------------------------------------------- /app/example/best-practices/use-sync-external-store/form.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/best-practices/use-sync-external-store/form.tsx -------------------------------------------------------------------------------- /app/example/best-practices/use-sync-external-store/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/best-practices/use-sync-external-store/layout.tsx -------------------------------------------------------------------------------- /app/example/best-practices/use-sync-external-store/list.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/best-practices/use-sync-external-store/list.tsx -------------------------------------------------------------------------------- /app/example/best-practices/use-sync-external-store/loading.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/best-practices/use-sync-external-store/loading.tsx -------------------------------------------------------------------------------- /app/example/best-practices/use-sync-external-store/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/best-practices/use-sync-external-store/page.tsx -------------------------------------------------------------------------------- /app/example/best-practices/use-sync-external-store/store.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/best-practices/use-sync-external-store/store.ts -------------------------------------------------------------------------------- /app/example/best-practices/use-sync-external-store/submit-button.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/best-practices/use-sync-external-store/submit-button.tsx -------------------------------------------------------------------------------- /app/example/best-practices/zustand/form.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/best-practices/zustand/form.tsx -------------------------------------------------------------------------------- /app/example/best-practices/zustand/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/best-practices/zustand/layout.tsx -------------------------------------------------------------------------------- /app/example/best-practices/zustand/list.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/best-practices/zustand/list.tsx -------------------------------------------------------------------------------- /app/example/best-practices/zustand/loading.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/best-practices/zustand/loading.tsx -------------------------------------------------------------------------------- /app/example/best-practices/zustand/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/best-practices/zustand/page.tsx -------------------------------------------------------------------------------- /app/example/best-practices/zustand/store.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/best-practices/zustand/store.ts -------------------------------------------------------------------------------- /app/example/best-practices/zustand/submit-button.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/best-practices/zustand/submit-button.tsx -------------------------------------------------------------------------------- /app/example/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/layout.tsx -------------------------------------------------------------------------------- /app/example/util.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/example/util.ts -------------------------------------------------------------------------------- /app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/favicon.ico -------------------------------------------------------------------------------- /app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/layout.tsx -------------------------------------------------------------------------------- /app/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/page.tsx -------------------------------------------------------------------------------- /app/react-scan.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/app/react-scan.tsx -------------------------------------------------------------------------------- /component/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/component/index.ts -------------------------------------------------------------------------------- /component/layout/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./section" 2 | -------------------------------------------------------------------------------- /component/layout/section.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/component/layout/section.tsx -------------------------------------------------------------------------------- /component/navigation/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./next-link" 2 | -------------------------------------------------------------------------------- /component/navigation/next-link.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/component/navigation/next-link.tsx -------------------------------------------------------------------------------- /component/typography/heading-with-tag.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/component/typography/heading-with-tag.tsx -------------------------------------------------------------------------------- /component/typography/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./heading-with-tag" 2 | -------------------------------------------------------------------------------- /eslint.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/eslint.config.ts -------------------------------------------------------------------------------- /layout/app/color-mode-toggle-button.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/layout/app/color-mode-toggle-button.tsx -------------------------------------------------------------------------------- /layout/app/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/layout/app/index.tsx -------------------------------------------------------------------------------- /layout/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./app" 2 | -------------------------------------------------------------------------------- /lefthook.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/lefthook.yaml -------------------------------------------------------------------------------- /next.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/next.config.ts -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/package.json -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/pnpm-lock.yaml -------------------------------------------------------------------------------- /theme/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/theme/index.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirotomoyamada/react-abc/HEAD/tsconfig.json --------------------------------------------------------------------------------