
Security News
Free Certified Patch for Critical Rails Active Storage Vulnerability
Socket has released a free Certified Patch for a critical Rails Active Storage vulnerability, giving developers time to upgrade to a secure Rails version.
A comprehensive React component library built on Material-UI, providing 50+ production-ready components and 65+ custom hooks for modern React applications.
Just one command and you're ready to go! All utilities are included.
# npm
npm install @cp949/mui
# yarn
yarn add @cp949/mui
# pnpm
pnpm add @cp949/mui
Make sure you have the following peer dependencies installed:
npm install @mui/material @mui/system react rxjs
That's it! No need to install additional utility libraries - everything you need is included.
import React from 'react';
import { FlexRow, Center, DebouncedButton } from '@cp949/mui';
import { useLocalStorage, useDebouncedState } from '@cp949/mui/hooks';
function MyApp() {
const [theme, setTheme] = useLocalStorage('theme', 'light');
const [searchQuery, setSearchQuery] = useDebouncedState('', 300);
return (
<FlexRow spacing={2} sx={{ p: 2 }}>
<Center sx={{ minHeight: 200, bgcolor: 'background.paper' }}>
<DebouncedButton
variant="contained"
onClick={() => setTheme(theme === 'light' ? 'dark' : 'light')}
>
Toggle Theme: {theme}
</DebouncedButton>
</Center>
</FlexRow>
);
}
Perfect for building responsive layouts with flexbox and grid systems:
import { FlexRow, FlexColumn, StackRow, Center, Space } from '@cp949/mui';
// Flexible layouts
<FlexRow spacing={2} alignItems="center">
<FlexColumn.Start>Content</FlexColumn.Start>
<FlexRow.Between>Navigation</FlexRow.Between>
</FlexRow>
// Centering utilities
<Center vertical sx={{ height: '100vh' }}>
<h1>Perfectly Centered</h1>
</Center>
// Spacing control
<Space y={4} /> // Vertical spacing
<Space x={2} /> // Horizontal spacing
Enhanced Material-UI components with additional functionality:
import { DebouncedButton, SegmentedControl, FloatingIndicator } from '@cp949/mui';
// Debounced interactions
<DebouncedButton
debounce={500}
onClick={handleSearch}
variant="contained"
>
Search
</DebouncedButton>
// Modern segmented controls
<SegmentedControl
value={selectedTab}
onChange={setSelectedTab}
data={[
{ label: 'React', value: 'react' },
{ label: 'Vue', value: 'vue' },
{ label: 'Angular', value: 'angular' }
]}
/>
Breakpoint-aware components for responsive design:
import { SmOrUp, MdOrDown, LgOrUp, Hide, Show } from '@cp949/mui';
// Conditional rendering based on screen size
<SmOrUp>
<DesktopNavigation />
</SmOrUp>
<MdOrDown>
<MobileNavigation />
</MdOrDown>
// Conditional visibility
<Show when={isLoggedIn}>
<UserProfile />
</Show>
<Hide when={isLoading}>
<MainContent />
</Hide>
Specialized components for common use cases:
import { Portlet, Highlight, FileButton, CopyButtonWrapper } from '@cp949/mui';
// Card-like containers
<Portlet>
<Portlet.Header>
<Portlet.Label>User Settings</Portlet.Label>
<Portlet.Toolbar>
<Button>Edit</Button>
</Portlet.Toolbar>
</Portlet.Header>
<Portlet.Content>
Form content here
</Portlet.Content>
<Portlet.Footer>
Action buttons
</Portlet.Footer>
</Portlet>
// Text highlighting
<Highlight searchValue="React" highlightColor="primary.main">
React is a JavaScript library for building user interfaces
</Highlight>
import {
useDebouncedState,
useLocalStorage,
useUncontrolled,
useObservable
} from '@cp949/mui/hooks';
// Debounced state updates
const [searchTerm, setSearchTerm] = useDebouncedState('', 300);
// Persistent storage
const [user, setUser] = useLocalStorage('user', null);
// Controlled/uncontrolled pattern
const [value, setValue] = useUncontrolled({
value: controlledValue,
defaultValue: 'default',
onChange: onControlledChange
});
// RxJS Observable integration
const data = useObservable(dataStream$);
import {
useEventListener,
useWindowSize,
useElementSize,
useInterval,
useTimeout
} from '@cp949/mui/hooks';
// Event handling
useEventListener('keydown', handleKeyPress);
// Responsive utilities
const { width, height } = useWindowSize();
const { width: elWidth } = useElementSize(elementRef);
// Timing utilities
useInterval(() => {
fetchData();
}, 5000);
const [showNotification] = useTimeout(() => {
setVisible(false);
}, 3000);
import {
useMount,
useUnmount,
useUpdateEffect,
useDeepCompareEffect,
useThrottledCallback
} from '@cp949/mui/hooks';
// Lifecycle
useMount(() => {
initializeApp();
});
useUnmount(() => {
cleanup();
});
// Performance optimization
const throttledHandler = useThrottledCallback(
handleScroll,
100
);
useDeepCompareEffect(() => {
fetchData();
}, [complexObject]);
import { muiCssVars, muiMediaQueries } from '@cp949/mui/helper';
// CSS custom properties for theming
const styles = {
color: muiCssVars.palette.primary.main,
spacing: muiCssVars.spacing(2)
};
// Media query utilities
const isTablet = muiMediaQueries.up('md');
The library provides optimized entry points for different use cases:
// Main components and utilities
import { FlexRow, Center, DebouncedButton } from '@cp949/mui';
// Hooks only (smaller bundle)
import { useLocalStorage, useDebouncedState } from '@cp949/mui/hooks';
// Helper utilities only
import { muiCssVars, muiMediaQueries } from '@cp949/mui/helper';
All components and hooks come with comprehensive TypeScript definitions:
import type { FlexRowProps, CenterProps, DebouncedButtonProps } from '@cp949/mui';
// Fully typed component props
const MyComponent: React.FC<FlexRowProps> = ({ spacing, children, ...props }) => {
return <FlexRow spacing={spacing} {...props}>{children}</FlexRow>;
};
This repo maintains Playwright E2E tests to protect runtime behavior of critical hooks/components across both React 18 and React 19.
Run from the monorepo root:
# Install deps
pnpm install
# Run E2E on React 19 + React 18
pnpm e2e
# Run E2E on a single React version
pnpm e2e:react19
pnpm e2e:react18
Notes:
apps/e2e-test/ (pages + Playwright specs).apps/e2e-test-react18/ is a lightweight runner that executes the same tests with React 18.MIT © CP949
This is an internal library. For bug reports or feature requests, please contact the maintainers.
Built with Material-UI and TypeScript
FAQs
CP949 MUI React component library
The npm package @cp949/mui receives a total of 3 weekly downloads. As such, @cp949/mui popularity was classified as not popular.
We found that @cp949/mui demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Socket has released a free Certified Patch for a critical Rails Active Storage vulnerability, giving developers time to upgrade to a secure Rails version.

Security News
/Threat Research
A malicious Ruby gem runs a credential-stealing worm during installation, poisons AI coding tools, and can wipe files when a stolen GitHub token is revoked.

Security News
GitHub is tightening GitHub Actions security with new restrictions on privileged pull request workflows. Here's what changes and how maintainers are affected.