Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions examples/next-js/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# dependencies
/node_modules
/.pnp
.pnp.js
.yarn/install-state.gz

# testing
/coverage

# next.js
/.next/
/out/

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# local env files
.env*.local

# typescript
*.tsbuildinfo
next-env.d.ts
27 changes: 27 additions & 0 deletions examples/next-js/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Next.js Example (Hexa UI + React 19)

Example app that runs the **Hexa UI** family on **Next.js 16** with **React 19**, to verify the ecosystem works in a Next.js App Router app on React 19.

## ⚠️ Known limitations (React 19)

- **antd** (used by hexa-ui): still uses `ReactDOM.render`, removed in React 19; you may see a runtime warning.
- **react-sortable-hoc** (used by hexa-ui Table): uses `findDOMNode`, removed in React 19; table column reorder may show warnings.
- These come from Hexa UI’s dependencies. The example builds and runs for verification.

## Key dependencies

- **Next.js** `16.1.6`, **React** / **React DOM** `^19`
- `@kaspersky/hexa-*` packages (hexa-ui, hexa-ui-charts, hexa-ui-core, hexa-ui-icons)
- **antd** `4.18`, **styled-components** `6.1.8` (Hexa UI peers)
- Global styles: antd prebuilt CSS (`antd/dist/antd.css`), font and box-sizing in `globals.css`

## Commands

Until Hexa UI packages declare React 19 in `peerDependencies`, install with:

```bash
npm install --legacy-peer-deps
npm run dev # http://localhost:3000
npm run build
npm run start
```
17 changes: 17 additions & 0 deletions examples/next-js/eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { defineConfig, globalIgnores } from 'eslint/config'
import nextVitals from 'eslint-config-next/core-web-vitals'
import nextTs from 'eslint-config-next/typescript'

const eslintConfig = defineConfig([
...nextVitals,
...nextTs,
globalIgnores([
'.next/**',
'out/**',
'build/**',
'node_modules/**',
'next-env.d.ts'
])
])

export default eslintConfig
13 changes: 13 additions & 0 deletions examples/next-js/next.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import type { NextConfig } from 'next'

const config: NextConfig = {
transpilePackages: ['@kaspersky/hexa-ui', '@kaspersky/hexa-ui-charts', '@kaspersky/hexa-ui-icons', '@kaspersky/hexa-ui-core'],
compiler: {
styledComponents: true
},
turbopack: {
root: process.cwd()
}
}

export default config
Loading