Pulse Mantine (Python)
Python bindings for Mantine UI components. Provides typed component wrappers for use in Pulse applications.
Architecture
Auto-generated Python wrappers around Mantine React components. Components are lazy-loaded and rendered to VDOM, which syncs to the JS client.
Python Component Call → VDOM Node → WebSocket → React Mantine Component
Folder Structure
src/pulse_mantine/
├── __init__.py # Auto-generated exports (lazy loading)
├── version.py # Package version
│
├── core/ # Core Mantine components
│ ├── base.py # MantineComponentProps base
│ ├── box.py # Box, Mod
│ ├── provider.py # MantineProvider, theme context
│ ├── theme.py # MantineTheme, colors, spacing
│ ├── styles.py # CSSVariables, StyleProp
│ ├── types.py # MantineSize, MantineColor, etc.
│ │
│ ├── buttons/ # Button, ActionIcon, CloseButton, etc.
│ ├── inputs/ # TextInput, Checkbox, Select, Slider, etc.
│ ├── combobox/ # Autocomplete, MultiSelect, TagsInput, etc.
│ ├── layout/ # AppShell, Container, Flex, Grid, Stack, etc.
│ ├── data_display/ # Accordion, Avatar, Badge, Card, Image, etc.
│ ├── overlays/ # Modal, Drawer, Menu, Popover, Tooltip, etc.
│ ├── navigation/ # Anchor, Breadcrumbs, Pagination, Tabs, etc.
│ ├── feedback/ # Alert, Loader, Progress, Notifications, etc.
│ ├── typography/ # Text, Title, Code, List, Table, etc.
│ └── misc/ # Divider, Paper, ScrollArea, Collapse, etc.
│
├── charts/ # Mantine Charts (Recharts-based)
│ ├── area_chart.py # AreaChart
│ ├── bar_chart.py # BarChart
│ ├── line_chart.py # LineChart
│ ├── pie_chart.py # PieChart, DonutChart
│ ├── radar_chart.py # RadarChart
│ ├── scatter_chart.py # ScatterChart
│ ├── sparkline.py # Sparkline
│ ├── heatmap.py # Heatmap
│ └── ...
│
├── dates/ # Date/time components
│ ├── calendar.py # Calendar
│ ├── date_picker.py # DatePicker, DatePickerInput
│ ├── date_time_picker.py
│ ├── time_input.py # TimeInput
│ ├── time_picker.py # TimePicker
│ └── ...
│
└── form/ # Form state management
├── form.py # MantineForm - client-side form state
├── validators.py # Built-in validators
└── internal.py # Form internals
Key Concepts
Components
All Mantine components are available as Python functions:
from pulse_mantine import Button, TextInput, Stack
def my_form():
return Stack([
TextInput(label="Name", placeholder="Enter name"),
Button("Submit", color="blue"),
])
MantineProvider
Required wrapper for theming:
from pulse_mantine import MantineProvider
def layout(children):
return MantineProvider(
theme={"primaryColor": "blue"},
children=children,
)
Forms
Client-side form state with validation:
from pulse_mantine import MantineForm, TextInput, IsEmail, IsNotEmpty
form = MantineForm(
initial_values={"email": "", "name": ""},
validation={
"email": IsEmail(),
"name": IsNotEmpty(),
},
)
def contact_form():
return form(
TextInput(label="Email", **form.field("email")),
TextInput(label="Name", **form.field("name")),
Button("Submit", type="submit"),
)
Charts
Mantine Charts built on Recharts:
from pulse_mantine import LineChart
data = [
{"date": "Jan", "value": 100},
{"date": "Feb", "value": 200},
]
def chart():
return LineChart(data=data, dataKey="date", series=[{"name": "value"}])
Validators
Built-in validators for forms:
IsEmail(),IsNotEmpty(),IsNumber(),IsInteger()HasLength(min, max),Matches(regex)IsInRange(min, max),IsDate(),IsBefore(),IsAfter()IsUrl(),IsUUID(),IsULID(),IsJSONString()StartsWith(),EndsWith(),MatchesField(field)MinItems(),MaxItems(),AllowedFileTypes(),MaxFileSize()RequiredWhen(),RequiredUnless()
Main Exports
Layout: AppShell, Container, Flex, Grid, Stack, Group, Center
Inputs: TextInput, Textarea, NumberInput, Select, MultiSelect, Checkbox, Switch, Slider, DatePicker, ColorInput
Buttons: Button, ActionIcon, CloseButton
Display: Card, Badge, Avatar, Image, Table, Accordion, Timeline
Overlays: Modal, Drawer, Menu, Popover, Tooltip, HoverCard
Feedback: Alert, Loader, Progress, Notification, Skeleton
Navigation: Tabs, Breadcrumbs, Pagination, NavLink, Stepper
Charts: LineChart, BarChart, AreaChart, PieChart, RadarChart
Form: MantineForm + validators
Release files for pulse-mantine 0.1.45
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pulse_mantine-0.1.45.tar.gz | 47.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pulse_mantine-0.1.45-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 151.0 kB
Release files / pulse_mantine-0.1.45.tar.gz
| Download URL | pulse_mantine-0.1.45.tar.gz |
|---|---|
| Size | 47.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
935dfff650c07a88ecf99dd3fe0f108870910d13fa6c07df69c5211709024bf3
|
|
BLAKE2b-256 checksum How to use checksums |
27211535f395773d7d745845078b72d9f8ec7e6338bb4f1a02f53c86d6aaf6e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.30 {"installer":{"name":"uv","version":"0.11.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / pulse_mantine-0.1.45-py3-none-any.whl
| Download URL | pulse_mantine-0.1.45-py3-none-any.whl |
|---|---|
| Size | 103.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
758b0c3cac2ff93755a8353674959909fb2644088f0cfd188961d80d539d509f
|
|
BLAKE2b-256 checksum How to use checksums |
d298eaf6c90e54976405c74772ab96c675b7b5565eb4709e428eda8450c5112e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.30 {"installer":{"name":"uv","version":"0.11.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|