@machinemetrics/mm-react-components 0.2.3-0 → 0.2.3-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -19,30 +19,71 @@ npm install @machinemetrics/mm-react-components
19
19
 
20
20
  ## Quick Start
21
21
 
22
- ### 1. Install Dependencies
22
+ ### 🚀 Automated Setup (Recommended)
23
+
24
+ The fastest way to get started:
23
25
 
24
26
  ```bash
25
- npm install @machinemetrics/mm-react-components tailwindcss postcss autoprefixer
27
+ # Install the package
28
+ npm install @machinemetrics/mm-react-components
29
+
30
+ # Run the automated setup
31
+ npx @machinemetrics/mm-react-components/setup
26
32
  ```
27
33
 
28
- ### 2. Configure Tailwind CSS
34
+ This will automatically:
35
+
36
+ - ✅ Copy Tailwind configuration
37
+ - ✅ Create PostCSS configuration
38
+ - ✅ Set up the complete theme
39
+ - ✅ Create an example component
40
+ - ✅ Generate all necessary files
41
+
42
+ ### 📋 Manual Setup
43
+
44
+ If you prefer manual setup:
29
45
 
30
- Copy the Tailwind configuration to your project:
46
+ #### 1. Install Dependencies
47
+
48
+ ```bash
49
+ npm install @machinemetrics/mm-react-components tailwindcss postcss autoprefixer
50
+ ```
51
+
52
+ #### 2. Configure Tailwind CSS
31
53
 
32
54
  ```bash
33
55
  cp node_modules/@machinemetrics/mm-react-components/tailwind.config.export.js tailwind.config.js
34
56
  ```
35
57
 
36
- ### 3. Import Theme CSS
58
+ Note: The exported config is the main config (no preview-only utilities). The preview app in this repo uses a separate `tailwind.preview.config.js` that imports the main config and adds preview utilities.
59
+
60
+ #### 3. Import Theme (Recommended: JS imports)
61
+
62
+ Use app-level JavaScript/TypeScript imports so bundlers resolve package subpaths consistently and you can toggle themes at runtime:
63
+
64
+ ```ts
65
+ // In your main entry (e.g., src/main.tsx)
66
+ import '@machinemetrics/mm-react-components/styles';
67
+ import '@machinemetrics/mm-react-components/themes/carbide';
68
+ document.documentElement.classList.add('carbide');
69
+ ```
70
+
71
+ Alternatively, you can import the complete theme in CSS:
37
72
 
38
73
  ```css
39
- /* In your main CSS file */
40
- @import '@machinemetrics/mm-react-components/themes/base';
41
- @import '@machinemetrics/mm-react-components/themes/carbide';
42
- @import 'tailwindcss';
74
+ @import '@machinemetrics/mm-react-components/themes/complete';
43
75
  ```
44
76
 
45
- ### 4. Use Components
77
+ **What's included:**
78
+
79
+ - ✅ Tailwind CSS reset
80
+ - ✅ Base theme variables (OKLCH color system)
81
+ - ✅ Carbide industrial theme
82
+ - ✅ All component styles
83
+ - ✅ Dark mode support
84
+ - ✅ Animations and utilities
85
+
86
+ #### 4. Use Components
46
87
 
47
88
  ```tsx
48
89
  import { Button, Input } from '@machinemetrics/mm-react-components';
@@ -57,9 +98,11 @@ function App() {
57
98
  }
58
99
  ```
59
100
 
60
- ### 5. Complete Setup Guide
101
+ ### 📚 Documentation
61
102
 
62
- For detailed setup instructions, see the [Tailwind Setup Guide](./docs/TAILWIND_SETUP.md).
103
+ - [Getting Started Guide](./docs/GETTING_STARTED.md) - Complete setup guide
104
+ - [Tailwind Setup Guide](./docs/TAILWIND_SETUP.md) - Detailed configuration
105
+ - [Quick Start Template](./templates/quick-start.html) - Live demo
63
106
 
64
107
  ## Theme System
65
108
 
@@ -81,18 +124,23 @@ The component library includes a comprehensive theme system with two main themes
81
124
 
82
125
  ### Using Themes
83
126
 
84
- #### Option 1: Import CSS Files Directly
127
+ #### Option 1: JS Imports (Recommended)
85
128
 
86
- ```tsx
87
- // In your main.tsx or App.tsx
88
- import '@machinemetrics/mm-react-components/themes/base';
129
+ ```ts
130
+ import '@machinemetrics/mm-react-components/styles';
89
131
  import '@machinemetrics/mm-react-components/themes/carbide';
90
-
91
- // Add carbide class to activate Carbide theme
92
132
  document.documentElement.classList.add('carbide');
93
133
  ```
94
134
 
95
- #### Option 2: Use Theme Utilities
135
+ #### Option 2: Manual Theme Import
136
+
137
+ ```css
138
+ /* Import themes separately for more control */
139
+ @import '@machinemetrics/mm-react-components/themes/base';
140
+ @import '@machinemetrics/mm-react-components/themes/carbide';
141
+ ```
142
+
143
+ #### Option 3: Use Theme Utilities
96
144
 
97
145
  ```tsx
98
146
  import {
@@ -111,14 +159,6 @@ toggleDarkMode();
111
159
  const isCarbideActive = isCarbideThemeActive();
112
160
  ```
113
161
 
114
- #### Option 3: Manual CSS Import
115
-
116
- ```css
117
- /* In your CSS file */
118
- @import '@machinemetrics/mm-react-components/themes/base';
119
- @import '@machinemetrics/mm-react-components/themes/carbide';
120
- ```
121
-
122
162
  ### Theme Classes
123
163
 
124
164
  The theme system uses CSS classes for activation:
@@ -193,16 +233,33 @@ import { Input } from '@machinemetrics/mm-react-components';
193
233
 
194
234
  ## Styling
195
235
 
196
- The component library uses Tailwind CSS. Make sure to include the styles in your application:
236
+ The component library uses Tailwind CSS with a complete theme system. The easiest way to get started is with the complete theme:
197
237
 
198
- ```tsx
199
- import '@machinemetrics/mm-react-components/styles';
238
+ ```css
239
+ /* Recommended: One import gets everything */
240
+ @import '@machinemetrics/mm-react-components/themes/complete';
200
241
  ```
201
242
 
202
- If you're using Tailwind CSS in your project, you can also import the component styles directly:
243
+ This includes:
244
+
245
+ - Tailwind CSS reset and base styles
246
+ - OKLCH color system with dark mode support
247
+ - Carbide industrial theme
248
+ - All component styles and animations
249
+
250
+ ### Alternative Import Methods
203
251
 
204
252
  ```css
205
- @import '@machinemetrics/mm-react-components/styles';
253
+ /* Import base theme only */
254
+ @import '@machinemetrics/mm-react-components/themes/base';
255
+
256
+ /* Import Carbide theme for industrial styling */
257
+ @import '@machinemetrics/mm-react-components/themes/carbide';
258
+ ```
259
+
260
+ ```tsx
261
+ // Import in JavaScript/TypeScript
262
+ import '@machinemetrics/mm-react-components/themes/complete';
206
263
  ```
207
264
 
208
265
  ## TypeScript Support
package/dist/App.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.tsx"],"names":[],"mappings":"AAwEA,iBAAS,GAAG,4CAmPX;AAED,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.tsx"],"names":[],"mappings":"AAsEA,iBAAS,GAAG,4CAmPX;AAED,eAAe,GAAG,CAAC"}
package/dist/README.md ADDED
@@ -0,0 +1,303 @@
1
+ # @machinemetrics/mm-react-components
2
+
3
+ A comprehensive React component library designed specifically for MachineMetrics industrial and manufacturing applications.
4
+
5
+ ## Features
6
+
7
+ - 🏭 **Industrial-Focused**: Components designed for manufacturing and industrial environments
8
+ - 🎨 **Modern Design**: Built on shadcn/ui with Tailwind CSS for consistent, accessible UI
9
+ - 📦 **Tree-Shakable**: ES modules with full tree-shaking support
10
+ - 🔧 **TypeScript**: Full TypeScript support with comprehensive type definitions
11
+ - ♿ **Accessible**: WCAG 2.1 AA compliant components
12
+ - 🚀 **Performance**: Optimized for real-time data display and monitoring
13
+
14
+ ## Installation
15
+
16
+ ```bash
17
+ npm install @machinemetrics/mm-react-components
18
+ ```
19
+
20
+ ## Quick Start
21
+
22
+ ### 🚀 Automated Setup (Recommended)
23
+
24
+ The fastest way to get started:
25
+
26
+ ```bash
27
+ # Install the package
28
+ npm install @machinemetrics/mm-react-components
29
+
30
+ # Run the automated setup
31
+ npx @machinemetrics/mm-react-components/setup
32
+ ```
33
+
34
+ This will automatically:
35
+
36
+ - ✅ Copy Tailwind configuration
37
+ - ✅ Create PostCSS configuration
38
+ - ✅ Set up the complete theme
39
+ - ✅ Create an example component
40
+ - ✅ Generate all necessary files
41
+
42
+ ### 📋 Manual Setup
43
+
44
+ If you prefer manual setup:
45
+
46
+ #### 1. Install Dependencies
47
+
48
+ ```bash
49
+ npm install @machinemetrics/mm-react-components tailwindcss postcss autoprefixer
50
+ ```
51
+
52
+ #### 2. Configure Tailwind CSS
53
+
54
+ ```bash
55
+ cp node_modules/@machinemetrics/mm-react-components/tailwind.config.export.js tailwind.config.js
56
+ ```
57
+
58
+ Note: The exported config is the main config (no preview-only utilities). The preview app in this repo uses a separate `tailwind.preview.config.js` that imports the main config and adds preview utilities.
59
+
60
+ #### 3. Import Theme (Recommended: JS imports)
61
+
62
+ Use app-level JavaScript/TypeScript imports so bundlers resolve package subpaths consistently and you can toggle themes at runtime:
63
+
64
+ ```ts
65
+ // In your main entry (e.g., src/main.tsx)
66
+ import '@machinemetrics/mm-react-components/styles';
67
+ import '@machinemetrics/mm-react-components/themes/carbide';
68
+ document.documentElement.classList.add('carbide');
69
+ ```
70
+
71
+ Alternatively, you can import the complete theme in CSS:
72
+
73
+ ```css
74
+ @import '@machinemetrics/mm-react-components/themes/complete';
75
+ ```
76
+
77
+ **What's included:**
78
+
79
+ - ✅ Tailwind CSS reset
80
+ - ✅ Base theme variables (OKLCH color system)
81
+ - ✅ Carbide industrial theme
82
+ - ✅ All component styles
83
+ - ✅ Dark mode support
84
+ - ✅ Animations and utilities
85
+
86
+ #### 4. Use Components
87
+
88
+ ```tsx
89
+ import { Button, Input } from '@machinemetrics/mm-react-components';
90
+
91
+ function App() {
92
+ return (
93
+ <div>
94
+ <Button variant="primary">Start Monitoring</Button>
95
+ <Input placeholder="Enter machine ID..." />
96
+ </div>
97
+ );
98
+ }
99
+ ```
100
+
101
+ ### 📚 Documentation
102
+
103
+ - [Getting Started Guide](./docs/GETTING_STARTED.md) - Complete setup guide
104
+ - [Tailwind Setup Guide](./docs/TAILWIND_SETUP.md) - Detailed configuration
105
+ - [Quick Start Template](./templates/quick-start.html) - Live demo
106
+
107
+ ## Theme System
108
+
109
+ The component library includes a comprehensive theme system with two main themes:
110
+
111
+ ### Base Theme (OKLCH)
112
+
113
+ - Modern OKLCH color space for better perceptual uniformity
114
+ - Professional typography with Noto Sans and Inconsolata fonts
115
+ - Complete dark mode support
116
+ - Chart and sidebar color systems
117
+
118
+ ### Carbide Theme (Industrial)
119
+
120
+ - Manufacturing-appropriate color palette
121
+ - MachineMetrics brand colors (green, grey)
122
+ - Enhanced component styling for industrial applications
123
+ - Complete dark mode support
124
+
125
+ ### Using Themes
126
+
127
+ #### Option 1: JS Imports (Recommended)
128
+
129
+ ```ts
130
+ import '@machinemetrics/mm-react-components/styles';
131
+ import '@machinemetrics/mm-react-components/themes/carbide';
132
+ document.documentElement.classList.add('carbide');
133
+ ```
134
+
135
+ #### Option 2: Manual Theme Import
136
+
137
+ ```css
138
+ /* Import themes separately for more control */
139
+ @import '@machinemetrics/mm-react-components/themes/base';
140
+ @import '@machinemetrics/mm-react-components/themes/carbide';
141
+ ```
142
+
143
+ #### Option 3: Use Theme Utilities
144
+
145
+ ```tsx
146
+ import {
147
+ activateCarbideTheme,
148
+ toggleDarkMode,
149
+ isCarbideThemeActive,
150
+ } from '@machinemetrics/mm-react-components';
151
+
152
+ // Activate Carbide theme
153
+ activateCarbideTheme();
154
+
155
+ // Toggle dark mode
156
+ toggleDarkMode();
157
+
158
+ // Check theme status
159
+ const isCarbideActive = isCarbideThemeActive();
160
+ ```
161
+
162
+ ### Theme Classes
163
+
164
+ The theme system uses CSS classes for activation:
165
+
166
+ - **Base theme**: Active by default
167
+ - **Carbide theme**: Add `carbide` class to `<html>` element
168
+ - **Dark mode**: Add `dark` class to `<html>` element
169
+
170
+ ```html
171
+ <!-- Base theme -->
172
+ <html>
173
+ <!-- Carbide theme -->
174
+ <html class="carbide">
175
+ <!-- Carbide theme + dark mode -->
176
+ <html class="carbide dark"></html>
177
+ </html>
178
+ </html>
179
+ ```
180
+
181
+ ### Available Theme Utilities
182
+
183
+ ```tsx
184
+ import {
185
+ // Carbide theme utilities
186
+ activateCarbideTheme,
187
+ deactivateCarbideTheme,
188
+ toggleCarbideTheme,
189
+ isCarbideThemeActive,
190
+
191
+ // Dark mode utilities
192
+ activateDarkMode,
193
+ deactivateDarkMode,
194
+ toggleDarkMode,
195
+ isDarkModeActive,
196
+ } from '@machinemetrics/mm-react-components';
197
+ ```
198
+
199
+ ## Components
200
+
201
+ ### Button
202
+
203
+ A versatile button component with multiple variants for different use cases.
204
+
205
+ ```tsx
206
+ import { Button } from '@machinemetrics/mm-react-components';
207
+
208
+ // Basic usage
209
+ <Button>Default</Button>
210
+
211
+ // Variants
212
+ <Button variant="primary">Primary</Button>
213
+ <Button variant="secondary">Secondary</Button>
214
+ <Button variant="outline">Outline</Button>
215
+ <Button variant="destructive">Destructive</Button>
216
+
217
+ // Sizes
218
+ <Button size="sm">Small</Button>
219
+ <Button size="lg">Large</Button>
220
+ ```
221
+
222
+ ### Input
223
+
224
+ Form input component with built-in validation states.
225
+
226
+ ```tsx
227
+ import { Input } from '@machinemetrics/mm-react-components';
228
+
229
+ <Input placeholder="Enter value..." />
230
+ <Input type="email" placeholder="Email address" />
231
+ <Input type="password" placeholder="Password" />
232
+ ```
233
+
234
+ ## Styling
235
+
236
+ The component library uses Tailwind CSS with a complete theme system. The easiest way to get started is with the complete theme:
237
+
238
+ ```css
239
+ /* Recommended: One import gets everything */
240
+ @import '@machinemetrics/mm-react-components/themes/complete';
241
+ ```
242
+
243
+ This includes:
244
+
245
+ - Tailwind CSS reset and base styles
246
+ - OKLCH color system with dark mode support
247
+ - Carbide industrial theme
248
+ - All component styles and animations
249
+
250
+ ### Alternative Import Methods
251
+
252
+ ```css
253
+ /* Import base theme only */
254
+ @import '@machinemetrics/mm-react-components/themes/base';
255
+
256
+ /* Import Carbide theme for industrial styling */
257
+ @import '@machinemetrics/mm-react-components/themes/carbide';
258
+ ```
259
+
260
+ ```tsx
261
+ // Import in JavaScript/TypeScript
262
+ import '@machinemetrics/mm-react-components/themes/complete';
263
+ ```
264
+
265
+ ## TypeScript Support
266
+
267
+ This library is built with TypeScript and provides full type definitions:
268
+
269
+ ```tsx
270
+ import { Button, type ButtonProps } from '@machinemetrics/mm-react-components';
271
+
272
+ const CustomButton: React.FC<ButtonProps> = (props) => {
273
+ return <Button {...props} />;
274
+ };
275
+ ```
276
+
277
+ ## Requirements
278
+
279
+ - React 18.0.0 or higher
280
+ - Node.js 20.0.0 or higher
281
+
282
+ ## Browser Support
283
+
284
+ - Chrome (latest)
285
+ - Firefox (latest)
286
+ - Safari (latest)
287
+ - Edge (latest)
288
+
289
+ ## Contributing
290
+
291
+ We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
292
+
293
+ ## License
294
+
295
+ MIT License - see [LICENSE](LICENSE) file for details.
296
+
297
+ ## Support
298
+
299
+ For support and questions, please contact the MachineMetrics development team.
300
+
301
+ ---
302
+
303
+ Built with ❤️ by the MachineMetrics team for industrial applications.
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { type VariantProps } from 'class-variance-authority';
3
3
  declare const buttonVariants: (props?: ({
4
- variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
4
+ variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
5
5
  size?: "default" | "sm" | "lg" | "icon" | "icon-sm" | "icon-lg" | null | undefined;
6
6
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
7
  declare function Button({ className, variant, size, asChild, ...props }: React.ComponentProps<'button'> & VariantProps<typeof buttonVariants> & {