mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-25 06:14:59 +00:00
Move FakeMUI content to appropriate root-level folders by implementation:
**React Components → components/fakemui/**
- 537 components (inputs, surfaces, layout, data-display, feedback,
navigation, utils, atoms, lab, x, email, workflows)
- 416 SVG icons
- Full barrel exports in components/fakemui/index.ts
**QML Components → qml/**
- 104 Material Design 3 components (11 categories)
- 7 hybrid application views
- 8 desktop widgets
- qmldir module registration
**Python Bindings → python/fakemui/**
- 15 PyQt6 modules (120+ components)
- Full Python package structure with pyproject.toml
**SCSS/Styles → fakemui/** (renamed purpose)
- scss/ - Material Design 3 stylesheets
- styles/ - Component SCSS modules
- src/utils/ - Accessibility utilities
- index.ts now re-exports from components/fakemui/
This separation allows:
- React: import { Button } from '@metabuilder/components/fakemui'
- QML: import QmlComponents 1.0
- Python: from fakemui import Button, Card
- Backward compat: import { Button } from '@metabuilder/fakemui'
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
MetaBuilder Python Packages
Python packages for MetaBuilder, including FakeMUI - a PyQt6-based Material UI component library.
Packages
fakemui
Material UI-style widgets for PyQt6. A complete replacement for complex Qt styling with simple, composable components.
Features:
- 120+ Material Design 3 components
- Full theming support (light/dark modes)
- Consistent API mirroring MUI React components
- Cross-platform desktop support via PyQt6
Component Categories:
- Inputs (16): Button, IconButton, Fab, Input, TextArea, Select, CheckBox, RadioButton, Switch, Slider, FormGroup, FormLabel, FormHelperText, TextField, ToggleButton, ToggleButtonGroup
- Data Display (19): Avatar, AvatarGroup, Badge, Chip, Divider, Icon, ListWidget, ListItem, ListItemButton, ListItemIcon, ListItemText, ListItemAvatar, ListSubheader, TableWidget, TableHeader, TableBody, TableRow, TableCell, Tooltip, Typography
- Feedback (8): Alert, Backdrop, Spinner, CircularProgress, LinearProgress, Progress, Skeleton, Snackbar
- Surfaces (14): Paper, Card, CardHeader, CardContent, CardActions, CardActionArea, CardMedia, Accordion, AccordionSummary, AccordionDetails, AccordionActions, AppBar, Toolbar, Drawer
- Navigation (13): Breadcrumbs, Link, Menu, MenuItem, MenuList, TabWidget, Tab, Pagination, Stepper, Step, StepLabel, BottomNavigation, BottomNavigationAction
- Layout (9): Box, Container, Grid, Stack, Flex, ImageList, ImageListItem, ImageListItemBar, Spacer
- Utils (13): Modal, Dialog, DialogOverlay, DialogHeader, DialogTitle, DialogContent, DialogActions, Popover, Collapse, Fade, ClickAwayListener, apply_theme, get_theme, ThemeProvider
- Atoms (14): Title, Subtitle, Label, Text, StatBadge, Section, SectionHeader, SectionTitle, SectionContent, EmptyState, LoadingState, ErrorState, Panel, AutoGrid
- Theming (12): Theme, Palette, Typography, Shape, Shadows, Transitions, ZIndex, Breakpoints, default_theme, create_theme, ThemeProvider, use_theme, styled, process_sx_prop
- Lab (11): LoadingButton, Timeline, TimelineItem, TimelineSeparator, TimelineConnector, TimelineContent, TimelineDot, TimelineOppositeContent, TreeView, TreeItem, Masonry
- MUI X (12): DataGrid, DataGridPro, DataGridPremium, DataGridColumn, DatePicker, TimePicker, DateTimePicker, DesktopDatePicker, MobileDatePicker, StaticDatePicker, CalendarPicker, ClockPicker
Installation
# From project root
pip install -e ./python
# Or install dependencies directly
pip install PyQt6>=6.4.0
Usage
from fakemui import (
Button, TextField, Card, CardContent,
Box, Stack, Typography, ThemeProvider,
create_theme
)
# Create a theme
theme = create_theme(palette={'mode': 'dark'})
# Build UI
app = QApplication(sys.argv)
with ThemeProvider(theme):
window = Box()
window.add_widget(
Card(
CardContent(
Stack(spacing=2, children=[
Typography("Hello FakeMUI!", variant="h4"),
TextField(label="Name", variant="outlined"),
Button("Submit", variant="contained", color="primary")
])
)
)
)
window.show()
app.exec()
Development
# Install dev dependencies
pip install -e ./python[dev]
# Run tests
pytest
# Type checking
mypy fakemui
License
MIT