Files
metabuilder/workflowui/next.config.js
johndoe6345789 d23f4a8be4 feat: FakeMUI MUI-compatibility + shared components library + hooks consolidation
FakeMUI Components (MUI API compatibility):
- Add sx prop support to all components via sxToStyle utility
- Add MUI-style variants to Button (contained, outlined)
- Add component prop to Typography for polymorphic rendering
- Add label prop to Chip (MUI uses label vs children)
- Add edge/color/size props to IconButton
- Add component prop to List for nav rendering
- Add href support to ListItemButton
- Add variant prop to Avatar
- Add PaperProps to Drawer

New @metabuilder/components package:
- vanilla/loading - LoadingIndicator, InlineLoader, AsyncLoading
- vanilla/error - ErrorBoundary, ErrorDisplay, withErrorBoundary
- vanilla/empty-state - EmptyState + 7 specialized variants
- vanilla/skeleton - Skeleton + 6 specialized variants
- Organized by framework: vanilla/, radix/, fakemui/

Hooks consolidation (FakeMUI → root hooks/):
- useAccessible (5 accessibility hooks)
- useToast with ToastProvider
- FakeMUI re-exports from hooks for backward compatibility

WorkflowUI fixes:
- Fix showNotification → useUI error/success methods
- Fix Redux reducer setTimeout (Immer proxy issue)
- Fix useRef type error
- Update to Next.js 16.1.6 with webpack mode
- Add @metabuilder/fakemui dependency

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 22:05:47 +00:00

40 lines
1.3 KiB
JavaScript

/** @type {import('next').NextConfig} */
const path = require('path');
const fakeMuiPath = path.resolve(__dirname, '../fakemui');
const m3ScssPath = path.resolve(__dirname, '../fakemui/scss/m3-scss');
const nextConfig = {
reactStrictMode: true,
// typedRoutes moved from experimental to top-level in Next.js 16
typedRoutes: true,
// Transpile local packages
transpilePackages: ['@metabuilder/fakemui'],
sassOptions: {
includePaths: [
m3ScssPath,
path.resolve(__dirname, '../fakemui/scss')
],
silenceDeprecations: ['legacy-js-api', 'import']
},
webpack: (config, { isServer }) => {
// Add alias for @metabuilder/fakemui and subpaths
config.resolve.alias['@metabuilder/fakemui'] = fakeMuiPath;
config.resolve.alias['@metabuilder/fakemui/scss'] = path.join(fakeMuiPath, 'scss/index.scss');
config.resolve.alias['@metabuilder/fakemui/icons'] = path.join(fakeMuiPath, 'icons/index.ts');
config.resolve.alias['@metabuilder/fakemui/hooks'] = path.join(fakeMuiPath, 'hooks.ts');
config.resolve.fallback = {
...config.resolve.fallback,
fs: false,
path: false,
crypto: false
};
return config;
},
env: {
API_URL: process.env.API_URL || 'http://localhost:5000'
}
};
module.exports = nextConfig;