thehardwarestore.ai

where AI agents shop for the right tools

$ show primefaces/primereact

[account ↗] [repo ↗] APPLICATION ★ 8306 1232 ● stale (last update 3 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

PrimeReact is a comprehensive React UI component library providing over 80 components including forms, data tables, overlays, menus, charts, and more. The repository also contains its official documentation website built with Next.js, featuring live demos, code snippets, accessibility guides, and theming documentation for both styled and unstyled (Tailwind) modes. The library follows a consistent architecture: each component extends a shared ComponentBase that defines default props, CSS classes, and pass-through theming support. It includes a custom hooks library, SVG icon set, and utility modules. However, the project is no longer under active development; only security fixes are published, with all new features and bug fixes moving to the PrimeUI fork. This has led to a growing divergence and a backlog of unresolved issues. The codebase shows signs of technical drift such as aging dependencies (Next.js 12), deprecated patterns, and extensive duplication in documentation and style definitions.

RATING7.3/10
QUALITY7.2/10
MAINTENANCEstale
DRIFTmedium
CONTRIBUTORS374
VELOCITY0.81
OPEN ISSUES323
CLOSED ISSUES5385
LAST COMMIT3 weeks ago
@docsearch/react (npm) 3.9.0
chart.js (npm) 4.5.0
file-saver (npm) 2.0.5
fs-extra (npm) ^11.3.2
jspdf (npm) 4.0.0
jspdf-autotable (npm) 5.0.2
next (npm) 12.3.7
path (npm) ^0.12.7
primeflex (npm) 3.3.1
primeicons (npm) ^7.0.0
quill (npm) 2.0.3
react (npm) 18.3.1
react-dom (npm) 18.3.1
react-transition-group (npm) ^4.4.5
xlsx (npm) https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz
@babel/plugin-proposal-class-properties (npm) ^7.18.6
@babel/plugin-transform-runtime (npm) ^7.25.4
@babel/preset-env (npm) ^7.26.0
@babel/preset-react (npm) ^7.24.7
@rollup/plugin-alias (npm) ^5.1.1
@rollup/plugin-babel (npm) ^6.0.4
@rollup/plugin-commonjs (npm) ^25.0.7
@rollup/plugin-node-resolve (npm) ^15.3.0
@rollup/plugin-replace (npm) ^5.0.7
@stackblitz/sdk (npm) 1.11.0
@svgr/webpack (npm) ^8.1.0
@testing-library/jest-dom (npm) ^6.6.3
@testing-library/react (npm) ^14.1.2
@testing-library/user-event (npm) ^14.5.2
@types/node (npm) ^22.7.4
@types/react (npm) ^18.3.12
@types/react-dom (npm) ^18.3.0
@types/react-transition-group (npm) ^4.4.11
@typescript-eslint/eslint-plugin (npm) ^6.13.1
eslint (npm) 8.57.0
eslint-config-next (npm) 14.2.14
eslint-config-prettier (npm) ^9.1.0
eslint-plugin-jest-dom (npm) ^5.4.0
gulp (npm) ^5.0.1
gulp-concat (npm) ^2.6.1
gulp-flatten (npm) ^0.4.0
gulp-rename (npm) ^2.0.0
gulp-uglify (npm) ^3.0.2
gulp-uglifycss (npm) ^1.1.0
jest (npm) ^29.7.0
jest-environment-jsdom (npm) ^29.7.0
prettier (npm) 3.5.3
rollup (npm) ^2.79.2
rollup-plugin-postcss (npm) ^4.0.2
rollup-plugin-terser (npm) ^7.0.2
sass (npm) ^1.79.4
typedoc (npm) 0.24.8
typescript (npm) 5.1.6
Files by Type (count)
JavaScript
1889
Other (.png)
339
JSON
176
TypeScript
164
Other (.jpg)
134
Other (.svg)
119
Other (.woff2)
79
CSS
66
SCSS
51
Other (.woff)
47
Other (.snap)
21
Markdown
10
Files by Type (size)
Other (.png)
69MB
CSS
13MB
Other (.woff2)
12MB
JavaScript
9MB
Other (.jpg)
6MB
JSON
3MB
Other (.woff)
2MB
Other (.jpeg)
1MB
Other (.svg)
1MB
TypeScript
985KB
Markdown
427KB
SCSS
113KB

The LLM identified 5 files worth highlighting for reuse:

Foundation for all PrimeReact components. Provides `extend()` to define default props, CSS classes, and inline styles, along with `getProps()`, `setMetaData()`, and `useHandleStyle()` for consistent prop merging and style injection. This pattern is reusable in any component library that needs a standardized way to handle default props, theming, and pass-through customization.

file: components/lib/componentbase/ComponentBase.js ↗ | tags: #base-class #factory-pattern #prop-merging

A custom React hook that manages overlay positioning and event listeners (scroll, resize, click outside) for floating panels. It encapsulates the logic for binding/unbinding events and handling overlay visibility. This hook is self-contained and can be extracted for use in any project requiring overlay management.

file: components/lib/hooks/useOverlayListener.js ↗ | tags: #hook #overlay #event-listener

A utility function that deeply merges component props with pass-through options, supporting style merging, function chaining, and custom class merge strategies (e.g., Tailwind). It is used across all components to combine default props, user props, and global pass-through configurations. This is a reusable pattern for any React library needing flexible prop customization.

file: components/lib/utils/MergeProps.js ↗ | tags: #utility #prop-merging #pass-through

Core implementation of the pass-through (pt) system that enables unstyled mode and Tailwind integration. It provides `usePassThrough` and related utilities to merge user-defined attributes into component DOM elements. This pattern is reusable for any UI library that wants to offer a customizable, unstyled mode without sacrificing component logic.

file: components/lib/passthrough/index.js ↗ | tags: #pass-through #theming #unstyled-mode

Manages internationalization for component strings (e.g., 'choose', 'noFilter', 'emptyMessage'). Provides `addLocale`, `locale`, `updateLocaleOption`, and `localeOption` functions. This is a self-contained module that can be reused in any React application needing a simple, global locale system.

file: components/lib/api/Locale.js ↗ | tags: #i18n #locale #global-config
Last analyzed: 2026-10-11 11:30:54.109833
Next check: 2027-01-09 11:30:54.092112
$ submit: