Skip to content

Optimize security and accessibility - #132

Open
amrabed wants to merge 38 commits into
mainfrom
consolidate-all-prs-v2
Open

Optimize security and accessibility#132
amrabed wants to merge 38 commits into
mainfrom
consolidate-all-prs-v2

Conversation

@amrabed

@amrabed amrabed commented Aug 8, 2026

Copy link
Copy Markdown
Collaborator

This PR consolidates all open pull requests into a single unified branch.

Consolidated Pull Requests:

Verification:

  • mise run verify passed (lint, typecheck, unit test coverage).
  • mise run build passed (Next.js production build).

amrabed and others added 30 commits July 25, 2026 08:08
Bumps the npm_and_yarn group with 1 update in the /docs directory: [next](https://github.com/vercel/next.js).


Updates `next` from 16.2.10 to 16.2.11
- [Release notes](https://github.com/vercel/next.js/releases)
- [Commits](vercel/next.js@v16.2.10...v16.2.11)

---
updated-dependencies:
- dependency-name: next
  dependency-version: 16.2.11
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [next](https://github.com/vercel/next.js) from 16.2.10 to 16.2.11.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Commits](vercel/next.js@v16.2.10...v16.2.11)

---
updated-dependencies:
- dependency-name: next
  dependency-version: 16.2.11
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
…al hints

- Configured a reusable shortcuts registry in `app/config/shortcuts.ts`
- Created a robust custom hook `useShortcuts` in `app/hooks/use-shortcuts.ts` with auto-bypassing on input focus
- Updated `ThemeToggle` to bind Alt+T to theme toggling and display platform-appropriate (Alt+T or ⌥T) hints in the Tooltip
- Added comprehensive unit tests for `useShortcuts` and updated `ThemeToggle` unit tests to achieve 100% test coverage and verify correct keydown dispatch behavior
Bumps [jdx/mise-action](https://github.com/jdx/mise-action) from 4 to 4.2.3.
- [Release notes](https://github.com/jdx/mise-action/releases)
- [Changelog](https://github.com/jdx/mise-action/blob/main/CHANGELOG.md)
- [Commits](jdx/mise-action@v4...v4.2.3)

---
updated-dependencies:
- dependency-name: jdx/mise-action
  dependency-version: 4.2.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps the production group with 8 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@heroui/react](https://github.com/heroui-inc/heroui/tree/HEAD/packages/react) | `3.2.2` | `3.2.3` |
| [@heroui/styles](https://github.com/heroui-inc/heroui/tree/HEAD/packages/styles) | `3.2.2` | `3.2.3` |
| [framer-motion](https://github.com/motiondivision/motion) | `12.42.2` | `12.43.0` |
| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.25.0` | `1.28.0` |
| [next](https://github.com/vercel/next.js) | `16.2.10` | `16.2.12` |
| [postcss](https://github.com/postcss/postcss) | `8.5.20` | `8.5.25` |
| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.7` | `19.2.8` |
| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.7` | `19.2.8` |



Updates `@heroui/react` from 3.2.2 to 3.2.3
- [Release notes](https://github.com/heroui-inc/heroui/releases)
- [Changelog](https://github.com/heroui-inc/heroui/blob/v3/packages/react/CHANGELOG.md)
- [Commits](https://github.com/heroui-inc/heroui/commits/v3.2.3/packages/react)

Updates `@heroui/styles` from 3.2.2 to 3.2.3
- [Release notes](https://github.com/heroui-inc/heroui/releases)
- [Changelog](https://github.com/heroui-inc/heroui/blob/v3/packages/styles/CHANGELOG.md)
- [Commits](https://github.com/heroui-inc/heroui/commits/v3.2.3/packages/styles)

Updates `framer-motion` from 12.42.2 to 12.43.0
- [Changelog](https://github.com/motiondivision/motion/blob/main/CHANGELOG.md)
- [Commits](motiondivision/motion@v12.42.2...v12.43.0)

Updates `lucide-react` from 1.25.0 to 1.28.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/1.28.0/packages/lucide-react)

Updates `next` from 16.2.10 to 16.2.12
- [Release notes](https://github.com/vercel/next.js/releases)
- [Commits](vercel/next.js@v16.2.10...v16.2.12)

Updates `postcss` from 8.5.20 to 8.5.25
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](postcss/postcss@8.5.20...8.5.25)

Updates `react` from 19.2.7 to 19.2.8
- [Release notes](https://github.com/react/react/releases)
- [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/react/react/commits/v19.2.8/packages/react)

Updates `react-dom` from 19.2.7 to 19.2.8
- [Release notes](https://github.com/react/react/releases)
- [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/react/react/commits/v19.2.8/packages/react-dom)

---
updated-dependencies:
- dependency-name: "@heroui/react"
  dependency-version: 3.2.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production
- dependency-name: "@heroui/styles"
  dependency-version: 3.2.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production
- dependency-name: framer-motion
  dependency-version: 12.43.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production
- dependency-name: lucide-react
  dependency-version: 1.28.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production
- dependency-name: next
  dependency-version: 16.2.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production
- dependency-name: postcss
  dependency-version: 8.5.25
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production
- dependency-name: react
  dependency-version: 19.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production
- dependency-name: react-dom
  dependency-version: 19.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [postcss](https://github.com/postcss/postcss) from 8.5.20 to 8.5.23.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](postcss/postcss@8.5.20...8.5.23)

---
updated-dependencies:
- dependency-name: postcss
  dependency-version: 8.5.23
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps the development group with 17 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@next/bundle-analyzer](https://github.com/vercel/next.js/tree/HEAD/packages/next-bundle-analyzer) | `16.2.10` | `16.2.12` |
| [@next/eslint-plugin-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-plugin-next) | `16.2.10` | `16.2.12` |
| [@playwright/test](https://github.com/microsoft/playwright) | `1.61.1` | `1.62.1` |
| [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `26.1.1` | `26.1.2` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.64.0` | `8.65.0` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.64.0` | `8.65.0` |
| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `6.0.3` | `6.0.5` |
| [eslint](https://github.com/eslint/eslint) | `10.7.0` | `10.8.0` |
| [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `16.2.10` | `16.2.12` |
| [firebase-tools](https://github.com/firebase/firebase-tools) | `15.24.0` | `15.25.1` |
| [globals](https://github.com/sindresorhus/globals) | `17.7.0` | `17.8.0` |
| [jsdom](https://github.com/jsdom/jsdom) | `29.1.1` | `30.0.1` |
| [playwright](https://github.com/microsoft/playwright) | `1.61.1` | `1.62.1` |
| [prettier](https://github.com/prettier/prettier) | `3.9.5` | `3.9.6` |
| [vercel](https://github.com/vercel/vercel/tree/HEAD/packages/cli) | `56.3.1` | `58.4.4` |
| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.1.5` | `8.2.0` |



Updates `@next/bundle-analyzer` from 16.2.10 to 16.2.12
- [Release notes](https://github.com/vercel/next.js/releases)
- [Commits](https://github.com/vercel/next.js/commits/v16.2.12/packages/next-bundle-analyzer)

Updates `@next/eslint-plugin-next` from 16.2.10 to 16.2.12
- [Release notes](https://github.com/vercel/next.js/releases)
- [Commits](https://github.com/vercel/next.js/commits/v16.2.12/packages/eslint-plugin-next)

Updates `@playwright/test` from 1.61.1 to 1.62.1
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](microsoft/playwright@v1.61.1...v1.62.1)

Updates `@testing-library/jest-dom` from 6.9.1 to 7.0.0
- [Release notes](https://github.com/testing-library/jest-dom/releases)
- [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md)
- [Commits](testing-library/jest-dom@v6.9.1...v7.0.0)

Updates `@types/node` from 26.1.1 to 26.1.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `@typescript-eslint/eslint-plugin` from 8.64.0 to 8.65.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.65.0/packages/eslint-plugin)

Updates `@typescript-eslint/parser` from 8.64.0 to 8.65.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.65.0/packages/parser)

Updates `@vitejs/plugin-react` from 6.0.3 to 6.0.5
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@6.0.5/packages/plugin-react)

Updates `eslint` from 10.7.0 to 10.8.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](eslint/eslint@v10.7.0...v10.8.0)

Updates `eslint-config-next` from 16.2.10 to 16.2.12
- [Release notes](https://github.com/vercel/next.js/releases)
- [Commits](https://github.com/vercel/next.js/commits/v16.2.12/packages/eslint-config-next)

Updates `firebase-tools` from 15.24.0 to 15.25.1
- [Release notes](https://github.com/firebase/firebase-tools/releases)
- [Changelog](https://github.com/firebase/firebase-tools/blob/main/CHANGELOG.md)
- [Commits](firebase/firebase-tools@v15.24.0...v15.25.1)

Updates `globals` from 17.7.0 to 17.8.0
- [Release notes](https://github.com/sindresorhus/globals/releases)
- [Commits](sindresorhus/globals@v17.7.0...v17.8.0)

Updates `jsdom` from 29.1.1 to 30.0.1
- [Release notes](https://github.com/jsdom/jsdom/releases)
- [Commits](jsdom/jsdom@v29.1.1...v30.0.1)

Updates `playwright` from 1.61.1 to 1.62.1
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](microsoft/playwright@v1.61.1...v1.62.1)

Updates `prettier` from 3.9.5 to 3.9.6
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/prettier@3.9.5...3.9.6)

Updates `vercel` from 56.3.1 to 58.4.4
- [Release notes](https://github.com/vercel/vercel/releases)
- [Changelog](https://github.com/vercel/vercel/blob/main/packages/cli/CHANGELOG.md)
- [Commits](https://github.com/vercel/vercel/commits/vercel@58.4.4/packages/cli)

Updates `vite` from 8.1.5 to 8.2.0
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/create-vite@8.2.0/packages/vite)

---
updated-dependencies:
- dependency-name: "@next/bundle-analyzer"
  dependency-version: 16.2.12
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
- dependency-name: "@next/eslint-plugin-next"
  dependency-version: 16.2.12
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
- dependency-name: "@playwright/test"
  dependency-version: 1.62.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
- dependency-name: "@testing-library/jest-dom"
  dependency-version: 7.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: development
- dependency-name: "@types/node"
  dependency-version: 26.1.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-version: 8.65.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
- dependency-name: "@typescript-eslint/parser"
  dependency-version: 8.65.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 6.0.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
- dependency-name: eslint
  dependency-version: 10.8.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
- dependency-name: eslint-config-next
  dependency-version: 16.2.12
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
- dependency-name: firebase-tools
  dependency-version: 15.25.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
- dependency-name: globals
  dependency-version: 17.8.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
- dependency-name: jsdom
  dependency-version: 30.0.1
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: development
- dependency-name: playwright
  dependency-version: 1.62.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
- dependency-name: prettier
  dependency-version: 3.9.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
- dependency-name: vercel
  dependency-version: 58.4.4
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: development
- dependency-name: vite
  dependency-version: 8.2.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
...

Signed-off-by: dependabot[bot] <support@github.com>
Added the Lucide ExternalLink icon to the GitHub external button
in the Hero component for visual consistency and clarity. Included
aria-hidden="true" to keep it accessible and updated the tests.
Avoid using useMemo for lightweight, non-expensive computations like simple ternary checks and template literal interpolations, which saves unnecessary hook initialization, dependency tracking, and memory overhead.
…keys in error-reporting utility

- Implemented recursive `sanitize` function in `app/lib/error-reporting.ts` to redact Vercel Blob tokens (matching `vercel_blob_rw_[a-zA-Z0-9_-]+`) and sensitive properties (e.g. `password`, `secret`, `token`, `key`, `authorization`, `cookie`, `credential`, `apikey`).
- Handled built-in objects directly (Date/RegExp) and avoided circular reference stack overflows using a WeakSet.
- Added comprehensive unit tests in `tests/unit/lib/error-reporting.test.ts`.
…_and_yarn-1c4f37dfd6' into consolidate-all-prs-v2
…10972623816863788' into consolidate-all-prs-v2
…2f2' into consolidate-all-prs-v2

# Conflicts:
#	app/components/ThemeToggle/index.tsx
#	docs/app/sitemap.ts
…se-action-4.2.3' into consolidate-all-prs-v2
…on-3b15bfa80d' into consolidate-all-prs-v2

# Conflicts:
#	docs/package.json
#	package.json
#	pnpm-lock.yaml
…8.5.23' into consolidate-all-prs-v2

# Conflicts:
#	docs/package.json
#	package.json
#	pnpm-lock.yaml
…ent-2db6e17a74' into consolidate-all-prs-v2

# Conflicts:
#	docs/package.json
#	package.json
#	pnpm-lock.yaml
…12436628194456488898' into consolidate-all-prs-v2
…8046246243248' into consolidate-all-prs-v2

# Conflicts:
#	app/components/ThemeToggle/index.tsx
…1813671919977372' into consolidate-all-prs-v2

# Conflicts:
#	app/lib/error-reporting.ts
#	tests/unit/lib/error-reporting.test.ts
@vercel

vercel Bot commented Aug 8, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
typescript Ready Ready Preview Aug 8, 2026 6:39pm

@amrabed amrabed changed the title 🔀 Consolidate open PRs (#110, #119, #120, #121, #122, #123, #124, #126, #128, #129, #130, #131) Optimize security and accessibility Aug 8, 2026
@sonarqubecloud

sonarqubecloud Bot commented Aug 8, 2026

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant