JSPM

  • Created
  • Published
  • Downloads 195
  • Score
    100M100P100Q95298F
  • License MIT

Industrial-grade React components for manufacturing applications

Package Exports

  • @machinemetrics/mm-react-components
  • @machinemetrics/mm-react-components/README
  • @machinemetrics/mm-react-components/agent-docs/lovable
  • @machinemetrics/mm-react-components/agent-docs/style-color-reference
  • @machinemetrics/mm-react-components/docs/getting-started
  • @machinemetrics/mm-react-components/migration/config
  • @machinemetrics/mm-react-components/styles
  • @machinemetrics/mm-react-components/themes/carbide

Readme

@machinemetrics/mm-react-components

πŸ€– FOR AI AGENTS: This library has extensive AI agent documentation for setup and Chakra UI migration. For Carbide theme colors and CSS variables, read the shipped themes/carbide CSS first; agent-docs/style-color-reference.md is a short overview. See the agent-docs/ folder for comprehensive guides.

A comprehensive React component library designed specifically for MachineMetrics industrial and manufacturing applications.

Features

  • 🏭 Industrial-Focused: Components designed for manufacturing and industrial environments
  • 🎨 Modern Design: Built on shadcn/ui with Tailwind CSS for consistent, accessible UI
  • πŸ“¦ Tree-Shakable: ES modules with full tree-shaking support
  • πŸ”§ TypeScript: Full TypeScript support with comprehensive type definitions
  • β™Ώ Accessible: WCAG 2.1 AA compliant components
  • πŸš€ Performance: Optimized for real-time data display and monitoring
  • πŸ€– AI-Agent Ready: Comprehensive AI agent documentation with automated setup and migration tools

Installation

npm install @machinemetrics/mm-react-components

Required Dependencies:

  • React 18.2+ or React 19+
  • React DOM 18.2+ or React DOM 19+

Optional Dependencies (only if using /themes/carbide):

  • Tailwind CSS 4.0+
  • PostCSS 8.5+
  • Autoprefixer 10+

πŸ’‘ Note: When using /styles (recommended), no build tools are required! The CSS is fully compiled.

πŸ€– For AI Agents

This library has comprehensive documentation for AI-assisted development!

Automated Tools:

  • βœ… Init script: npx @machinemetrics/mm-react-components mm-init
  • βœ… Migration script: npx @machinemetrics/mm-react-components chakra-to-shadcn
  • βœ… 98% automation rate for Chakra UI conversion
  • βœ… Zero-config setup option (no build tools needed!)

Quick Start

The fastest way to get started (from your React project root):

npx @machinemetrics/mm-react-components mm-init

This will automatically:

  • βœ… Install the component library
  • βœ… Add pre-compiled CSS import to your index.css
  • βœ… Create example components
  • βœ… Optionally install the Carbide AI skill and offer Chakra UI migration if detected

πŸ“‹ Manual Setup

If you prefer manual setup:

1. Install the Library

npm install @machinemetrics/mm-react-components

Optional: Only install Tailwind if you want to use /themes/carbide instead of /styles:

npm install -D tailwindcss postcss autoprefixer

2. Import Styles

Import the complete styles including Tailwind CSS, base styles, and Carbide theme:

// In your main entry (e.g., src/main.tsx)
import '@machinemetrics/mm-react-components/styles';
document.documentElement.classList.add('carbide');

What's included in /styles (118 KB, 18 KB gzipped):

  • βœ… Tailwind CSS reset and utilities (compiled)
  • βœ… Base theme variables (OKLCH color system)
  • βœ… Carbide industrial theme
  • βœ… All component styles (focus states, rings, borders, etc.)
  • βœ… Dark mode support
  • βœ… Animations and utilities

3. Use Components

import { Button, Input } from '@machinemetrics/mm-react-components';

function App() {
  return (
    <div>
      <Button variant="primary">Start Monitoring</Button>
      <Input placeholder="Enter machine ID..." />
    </div>
  );
}

πŸ“š Documentation

For AI Agents:

For Developers:

Theme System

The component library includes a comprehensive theme system with two main themes:

Base Theme (OKLCH)

  • Modern OKLCH color space for better perceptual uniformity
  • Professional typography with embedded Noto Sans and Inconsolata fonts (via @fontsource)
  • Complete dark mode support
  • Chart and sidebar color systems

Carbide Theme (Industrial)

  • Manufacturing-appropriate color palette
  • MachineMetrics brand colors (green, grey)
  • Enhanced component styling for industrial applications
  • Complete dark mode support

Import Options

Import everything including Tailwind utilities, theme, and animations:

import '@machinemetrics/mm-react-components/styles';
document.documentElement.classList.add('carbide');

Includes:

  • βœ… All Tailwind utilities (compiled)
  • βœ… Carbide theme variables
  • βœ… Component styles with focus states
  • βœ… Dark mode support
  • βœ… Animations

Option 2: Theme Only (41 KB - if you already have Tailwind)

Import just the Carbide theme variables and component overrides:

import '@machinemetrics/mm-react-components/themes/carbide';
document.documentElement.classList.add('carbide');

Use this if:

  • You already have Tailwind CSS in your project
  • You want to minimize bundle size
  • You're using our components with your own Tailwind config

Option 3: Use Theme Utilities

import {
  activateCarbideTheme,
  toggleDarkMode,
  isCarbideThemeActive,
} from '@machinemetrics/mm-react-components';

// Activate Carbide theme
activateCarbideTheme();

// Toggle dark mode
toggleDarkMode();

// Check theme status
const isCarbideActive = isCarbideThemeActive();

Theme Classes

The theme system uses CSS classes for activation:

  • Base theme: Active by default
  • Carbide theme: Add carbide class to <html> element
  • Dark mode: Add dark class to <html> element
<!-- Base theme -->
<html>
  <!-- Carbide theme -->
  <html class="carbide">
    <!-- Carbide theme + dark mode -->
    <html class="carbide dark"></html>
  </html>
</html>

Available Theme Utilities

import {
  // Carbide theme utilities
  activateCarbideTheme,
  deactivateCarbideTheme,
  toggleCarbideTheme,
  isCarbideThemeActive,

  // Dark mode utilities
  activateDarkMode,
  deactivateDarkMode,
  toggleDarkMode,
  isDarkModeActive,
} from '@machinemetrics/mm-react-components';

Components

Button

A versatile button component with multiple variants for different use cases.

import { Button } from '@machinemetrics/mm-react-components';

// Basic usage
<Button>Default</Button>

// Variants
<Button variant="primary">Primary</Button>
<Button variant="secondary">Secondary</Button>
<Button variant="outline">Outline</Button>
<Button variant="destructive">Destructive</Button>

// Sizes
<Button size="sm">Small</Button>
<Button size="lg">Large</Button>

Input

Form input component with built-in validation states.

import { Input } from '@machinemetrics/mm-react-components';

<Input placeholder="Enter value..." />
<Input type="email" placeholder="Email address" />
<Input type="password" placeholder="Password" />

Styling

The component library uses Tailwind CSS with a complete theme system. The easiest way to get started is with the complete theme:

/* Recommended: One import gets everything */
@import '@machinemetrics/mm-react-components/themes/complete';

This includes:

  • Tailwind CSS reset and base styles
  • OKLCH color system with dark mode support
  • Carbide industrial theme
  • All component styles and animations

Alternative Import Methods

/* Import complete styles including Carbide theme */
@import '@machinemetrics/mm-react-components/styles';
// Import in JavaScript/TypeScript
import '@machinemetrics/mm-react-components/styles';

TypeScript Support

This library is built with TypeScript and provides full type definitions:

import { Button, type ButtonProps } from '@machinemetrics/mm-react-components';

const CustomButton: React.FC<ButtonProps> = (props) => {
  return <Button {...props} />;
};

Requirements

  • React 18.0.0 or higher
  • Node.js 20.0.0 or higher

Browser Support

  • Chrome (latest)
  • Firefox (latest)
  • Safari (latest)
  • Edge (latest)

Contributing

We welcome contributions! Please see our Contributing Guide for details.

License

MIT License - see LICENSE file for details.

Support

For support and questions, please contact the MachineMetrics development team.


Built with ❀️ by the MachineMetrics team for industrial applications.