├── .gitignore ├── 01-starter ├── .eslintrc.json ├── .gitignore ├── README.md ├── next.config.mjs ├── package.json ├── pnpm-lock.yaml ├── postcss.config.js ├── public │ ├── next.svg │ └── vercel.svg ├── src │ └── app │ │ ├── data.ts │ │ ├── favicon.ico │ │ ├── globals.css │ │ ├── layout.tsx │ │ └── page.tsx ├── tailwind.config.ts └── tsconfig.json ├── 02-nesting-do-NOT-do ├── .eslintrc.json ├── .gitignore ├── README.md ├── next.config.mjs ├── package.json ├── pnpm-lock.yaml ├── postcss.config.js ├── public │ ├── next.svg │ └── vercel.svg ├── src │ └── app │ │ ├── data.ts │ │ ├── favicon.ico │ │ ├── globals.css │ │ ├── layout.tsx │ │ └── page.tsx ├── tailwind.config.ts └── tsconfig.json ├── 03-reasonable ├── .eslintrc.json ├── .gitignore ├── README.md ├── next.config.mjs ├── package.json ├── pnpm-lock.yaml ├── postcss.config.js ├── public │ ├── next.svg │ └── vercel.svg ├── src │ └── app │ │ ├── data.ts │ │ ├── favicon.ico │ │ ├── globals.css │ │ ├── layout.tsx │ │ └── page.tsx ├── tailwind.config.ts └── tsconfig.json ├── 04-global-state ├── .eslintrc.json ├── .gitignore ├── README.md ├── next.config.mjs ├── package.json ├── pnpm-lock.yaml ├── postcss.config.js ├── public │ ├── next.svg │ └── vercel.svg ├── src │ └── app │ │ ├── data.ts │ │ ├── favicon.ico │ │ ├── globals.css │ │ ├── layout.tsx │ │ └── page.tsx ├── tailwind.config.ts └── tsconfig.json └── 05-finished ├── .eslintrc.json ├── .gitignore ├── README.md ├── next.config.mjs ├── package.json ├── pnpm-lock.yaml ├── postcss.config.js ├── public ├── next.svg └── vercel.svg ├── src ├── app │ ├── favicon.ico │ ├── globals.css │ ├── layout.tsx │ └── page.tsx ├── components │ ├── nav │ │ ├── CartCount.tsx │ │ ├── Footer.tsx │ │ ├── Header.tsx │ │ ├── MenuButton.tsx │ │ └── MobileMenu.tsx │ └── product │ │ ├── AddToCart.tsx │ │ ├── ColorPicker.tsx │ │ ├── ImageGallery.tsx │ │ ├── Policies.tsx │ │ ├── ProductDetails.tsx │ │ ├── ProductInfo.tsx │ │ ├── RelatedProducts.tsx │ │ ├── Reviews.tsx │ │ └── SizePicker.tsx ├── data.ts ├── state.ts └── utils.ts ├── tailwind.config.ts └── tsconfig.json /.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules 3 | -------------------------------------------------------------------------------- /01-starter/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /01-starter/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/01-starter/.gitignore -------------------------------------------------------------------------------- /01-starter/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/01-starter/README.md -------------------------------------------------------------------------------- /01-starter/next.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/01-starter/next.config.mjs -------------------------------------------------------------------------------- /01-starter/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/01-starter/package.json -------------------------------------------------------------------------------- /01-starter/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/01-starter/pnpm-lock.yaml -------------------------------------------------------------------------------- /01-starter/postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/01-starter/postcss.config.js -------------------------------------------------------------------------------- /01-starter/public/next.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/01-starter/public/next.svg -------------------------------------------------------------------------------- /01-starter/public/vercel.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/01-starter/public/vercel.svg -------------------------------------------------------------------------------- /01-starter/src/app/data.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/01-starter/src/app/data.ts -------------------------------------------------------------------------------- /01-starter/src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/01-starter/src/app/favicon.ico -------------------------------------------------------------------------------- /01-starter/src/app/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/01-starter/src/app/globals.css -------------------------------------------------------------------------------- /01-starter/src/app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/01-starter/src/app/layout.tsx -------------------------------------------------------------------------------- /01-starter/src/app/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/01-starter/src/app/page.tsx -------------------------------------------------------------------------------- /01-starter/tailwind.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/01-starter/tailwind.config.ts -------------------------------------------------------------------------------- /01-starter/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/01-starter/tsconfig.json -------------------------------------------------------------------------------- /02-nesting-do-NOT-do/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /02-nesting-do-NOT-do/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/02-nesting-do-NOT-do/.gitignore -------------------------------------------------------------------------------- /02-nesting-do-NOT-do/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/02-nesting-do-NOT-do/README.md -------------------------------------------------------------------------------- /02-nesting-do-NOT-do/next.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/02-nesting-do-NOT-do/next.config.mjs -------------------------------------------------------------------------------- /02-nesting-do-NOT-do/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/02-nesting-do-NOT-do/package.json -------------------------------------------------------------------------------- /02-nesting-do-NOT-do/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/02-nesting-do-NOT-do/pnpm-lock.yaml -------------------------------------------------------------------------------- /02-nesting-do-NOT-do/postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/02-nesting-do-NOT-do/postcss.config.js -------------------------------------------------------------------------------- /02-nesting-do-NOT-do/public/next.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/02-nesting-do-NOT-do/public/next.svg -------------------------------------------------------------------------------- /02-nesting-do-NOT-do/public/vercel.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/02-nesting-do-NOT-do/public/vercel.svg -------------------------------------------------------------------------------- /02-nesting-do-NOT-do/src/app/data.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/02-nesting-do-NOT-do/src/app/data.ts -------------------------------------------------------------------------------- /02-nesting-do-NOT-do/src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/02-nesting-do-NOT-do/src/app/favicon.ico -------------------------------------------------------------------------------- /02-nesting-do-NOT-do/src/app/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/02-nesting-do-NOT-do/src/app/globals.css -------------------------------------------------------------------------------- /02-nesting-do-NOT-do/src/app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/02-nesting-do-NOT-do/src/app/layout.tsx -------------------------------------------------------------------------------- /02-nesting-do-NOT-do/src/app/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/02-nesting-do-NOT-do/src/app/page.tsx -------------------------------------------------------------------------------- /02-nesting-do-NOT-do/tailwind.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/02-nesting-do-NOT-do/tailwind.config.ts -------------------------------------------------------------------------------- /02-nesting-do-NOT-do/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/02-nesting-do-NOT-do/tsconfig.json -------------------------------------------------------------------------------- /03-reasonable/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /03-reasonable/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/03-reasonable/.gitignore -------------------------------------------------------------------------------- /03-reasonable/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/03-reasonable/README.md -------------------------------------------------------------------------------- /03-reasonable/next.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/03-reasonable/next.config.mjs -------------------------------------------------------------------------------- /03-reasonable/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/03-reasonable/package.json -------------------------------------------------------------------------------- /03-reasonable/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/03-reasonable/pnpm-lock.yaml -------------------------------------------------------------------------------- /03-reasonable/postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/03-reasonable/postcss.config.js -------------------------------------------------------------------------------- /03-reasonable/public/next.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/03-reasonable/public/next.svg -------------------------------------------------------------------------------- /03-reasonable/public/vercel.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/03-reasonable/public/vercel.svg -------------------------------------------------------------------------------- /03-reasonable/src/app/data.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/03-reasonable/src/app/data.ts -------------------------------------------------------------------------------- /03-reasonable/src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/03-reasonable/src/app/favicon.ico -------------------------------------------------------------------------------- /03-reasonable/src/app/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/03-reasonable/src/app/globals.css -------------------------------------------------------------------------------- /03-reasonable/src/app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/03-reasonable/src/app/layout.tsx -------------------------------------------------------------------------------- /03-reasonable/src/app/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/03-reasonable/src/app/page.tsx -------------------------------------------------------------------------------- /03-reasonable/tailwind.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/03-reasonable/tailwind.config.ts -------------------------------------------------------------------------------- /03-reasonable/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/03-reasonable/tsconfig.json -------------------------------------------------------------------------------- /04-global-state/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /04-global-state/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/04-global-state/.gitignore -------------------------------------------------------------------------------- /04-global-state/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/04-global-state/README.md -------------------------------------------------------------------------------- /04-global-state/next.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/04-global-state/next.config.mjs -------------------------------------------------------------------------------- /04-global-state/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/04-global-state/package.json -------------------------------------------------------------------------------- /04-global-state/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/04-global-state/pnpm-lock.yaml -------------------------------------------------------------------------------- /04-global-state/postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/04-global-state/postcss.config.js -------------------------------------------------------------------------------- /04-global-state/public/next.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/04-global-state/public/next.svg -------------------------------------------------------------------------------- /04-global-state/public/vercel.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/04-global-state/public/vercel.svg -------------------------------------------------------------------------------- /04-global-state/src/app/data.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/04-global-state/src/app/data.ts -------------------------------------------------------------------------------- /04-global-state/src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/04-global-state/src/app/favicon.ico -------------------------------------------------------------------------------- /04-global-state/src/app/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/04-global-state/src/app/globals.css -------------------------------------------------------------------------------- /04-global-state/src/app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/04-global-state/src/app/layout.tsx -------------------------------------------------------------------------------- /04-global-state/src/app/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/04-global-state/src/app/page.tsx -------------------------------------------------------------------------------- /04-global-state/tailwind.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/04-global-state/tailwind.config.ts -------------------------------------------------------------------------------- /04-global-state/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/04-global-state/tsconfig.json -------------------------------------------------------------------------------- /05-finished/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /05-finished/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/.gitignore -------------------------------------------------------------------------------- /05-finished/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/README.md -------------------------------------------------------------------------------- /05-finished/next.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/next.config.mjs -------------------------------------------------------------------------------- /05-finished/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/package.json -------------------------------------------------------------------------------- /05-finished/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/pnpm-lock.yaml -------------------------------------------------------------------------------- /05-finished/postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/postcss.config.js -------------------------------------------------------------------------------- /05-finished/public/next.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/public/next.svg -------------------------------------------------------------------------------- /05-finished/public/vercel.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/public/vercel.svg -------------------------------------------------------------------------------- /05-finished/src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/src/app/favicon.ico -------------------------------------------------------------------------------- /05-finished/src/app/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/src/app/globals.css -------------------------------------------------------------------------------- /05-finished/src/app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/src/app/layout.tsx -------------------------------------------------------------------------------- /05-finished/src/app/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/src/app/page.tsx -------------------------------------------------------------------------------- /05-finished/src/components/nav/CartCount.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/src/components/nav/CartCount.tsx -------------------------------------------------------------------------------- /05-finished/src/components/nav/Footer.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/src/components/nav/Footer.tsx -------------------------------------------------------------------------------- /05-finished/src/components/nav/Header.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/src/components/nav/Header.tsx -------------------------------------------------------------------------------- /05-finished/src/components/nav/MenuButton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/src/components/nav/MenuButton.tsx -------------------------------------------------------------------------------- /05-finished/src/components/nav/MobileMenu.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/src/components/nav/MobileMenu.tsx -------------------------------------------------------------------------------- /05-finished/src/components/product/AddToCart.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/src/components/product/AddToCart.tsx -------------------------------------------------------------------------------- /05-finished/src/components/product/ColorPicker.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/src/components/product/ColorPicker.tsx -------------------------------------------------------------------------------- /05-finished/src/components/product/ImageGallery.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/src/components/product/ImageGallery.tsx -------------------------------------------------------------------------------- /05-finished/src/components/product/Policies.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/src/components/product/Policies.tsx -------------------------------------------------------------------------------- /05-finished/src/components/product/ProductDetails.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/src/components/product/ProductDetails.tsx -------------------------------------------------------------------------------- /05-finished/src/components/product/ProductInfo.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/src/components/product/ProductInfo.tsx -------------------------------------------------------------------------------- /05-finished/src/components/product/RelatedProducts.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/src/components/product/RelatedProducts.tsx -------------------------------------------------------------------------------- /05-finished/src/components/product/Reviews.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/src/components/product/Reviews.tsx -------------------------------------------------------------------------------- /05-finished/src/components/product/SizePicker.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/src/components/product/SizePicker.tsx -------------------------------------------------------------------------------- /05-finished/src/data.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/src/data.ts -------------------------------------------------------------------------------- /05-finished/src/state.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/src/state.ts -------------------------------------------------------------------------------- /05-finished/src/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/src/utils.ts -------------------------------------------------------------------------------- /05-finished/tailwind.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/tailwind.config.ts -------------------------------------------------------------------------------- /05-finished/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherr/gigantic-components/HEAD/05-finished/tsconfig.json --------------------------------------------------------------------------------