@meonode/mui 0.0.1-alpha.1

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/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ The MIT License (MIT)
2
+ Copyright (c) 2025 Ukasyah Rahmatullah Zada
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ of this software and associated documentation files (the "Software"), to deal
6
+ in the Software without restriction, including without limitation the rights
7
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the Software is
9
+ furnished to do so, subject to the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in all
12
+ copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,50 @@
1
+ # `@meonode/mui`
2
+
3
+ [![NPM version](https://img.shields.io/npm/v/@meonode/mui.svg?style=flat)](https://www.npmjs.com/package/@meonode/mui)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+
6
+ > A lightweight wrapper around [@mui/material](https://mui.com/) components for use with [`@meonode/ui`](https://www.npmjs.com/package/@meonode/ui) and the BaseNode runtime.
7
+
8
+ ---
9
+
10
+ ## Features
11
+
12
+ - Fully typed MUI component bindings
13
+ - BaseNode-compatible layout syntax
14
+ - Designed to interoperate seamlessly with `@meonode/ui`
15
+
16
+ ---
17
+
18
+ ## Installation
19
+
20
+ ```shell
21
+ yarn add @meonode/mui
22
+ # or
23
+ npm install @meonode/mui
24
+ ```
25
+
26
+
27
+ ---
28
+
29
+ ## Usage
30
+
31
+ ```ts
32
+ import { Button } from '@meonode/mui'
33
+
34
+ const MyComponent = () =>
35
+ Button({
36
+ variant: 'contained',
37
+ color: 'primary',
38
+ children: 'Click me',
39
+ onClick: () => alert('Hello from MUI!'),
40
+ })
41
+ ```
42
+
43
+
44
+ ---
45
+
46
+ ## License
47
+
48
+ MIT License © 2025 Ukasyah Rahmatullah Zada
49
+
50
+ See full text in [LICENSE](./LICENSE)
@@ -0,0 +1,215 @@
1
+ import * as Mui from '@mui/material';
2
+ import { ComponentType } from 'react';
3
+ import type { BaseNodeInstance, NodeProps } from '@meonode/ui';
4
+ /**
5
+ * Validates whether a MUI export should be wrapped as a renderable React component.
6
+ * This function performs comprehensive validation to ensure the component can be properly rendered.
7
+ * @param component The MUI component or export to validate
8
+ * @param componentName The name of the component being checked
9
+ * @returns A type predicate indicating if the component is renderable
10
+ * @remarks
11
+ * The validation includes multiple checks:
12
+ * - Existence of the muiName static property (common in MUI components)
13
+ * - Component naming conventions (capitalized for React components)
14
+ * - Class component structure (presence of render method or isReactComponent)
15
+ * - Forward ref and memo component patterns
16
+ * @example
17
+ * ```ts
18
+ * // Check if the Button component is renderable
19
+ * if (isRenderableMuiComponent(Mui.Button, 'Button')) {
20
+ * // Safe to use Button as a React component
21
+ * }
22
+ * ```
23
+ */
24
+ export declare function isRenderableMuiComponent(component: any, componentName: string): component is ComponentType<any>;
25
+ /**
26
+ * Factory function type for creating wrapped MUI components.
27
+ * Takes optional props and returns a BaseNodeInstance that can be rendered.
28
+ * @template C - The MUI component type to wrap
29
+ * @returns A BaseNodeInstance representing the wrapped component
30
+ * @example
31
+ * ```ts
32
+ * type ButtonFactory = WrappedMuiComponentFactory<typeof Button>;
33
+ * const wrappedButton: ButtonFactory = (props) => Node(Button, props);
34
+ * wrappedButton({ variant: 'contained', children: 'Click me' });
35
+ * ```
36
+ */
37
+ type WrappedMuiComponentFactory<C extends ComponentType<any>> = (props?: NodeProps<C>) => BaseNodeInstance<C>;
38
+ /**
39
+ * Determines if an object is likely to be a Material-UI theme object by comparing its structure
40
+ * to a reference theme.
41
+ * @param obj The object to evaluate as a potential MUI theme
42
+ * @returns `true` if the object appears to be a MUI theme, `false` otherwise
43
+ * @remarks
44
+ * The function uses a heuristic approach by:
45
+ * 1. Creating a reference theme using MUI's extendTheme()
46
+ * 2. Comparing the keys of the input object with the reference theme
47
+ * 3. Calculating a similarity score based on matching keys
48
+ * 4. Considering it a theme if at least 25% of reference keys are present
49
+ * @example
50
+ * ```ts
51
+ * const customTheme = {
52
+ * palette: { primary: { main: '#000' } },
53
+ * typography: { fontSize: 14 }
54
+ * };
55
+ *
56
+ * if (isProbablyMuiTheme(customTheme)) {
57
+ * // Handle theme object
58
+ * }
59
+ * ```
60
+ * @throws Will not throw, but returns false for null, non-objects, or invalid inputs
61
+ */
62
+ export declare function isProbablyMuiTheme(obj: unknown): boolean;
63
+ /**
64
+ * Export Material-UI component factories with enhanced type-safety and prop validation.
65
+ * Each export is a factory function that wraps the original MUI component, providing:
66
+ * - Full TypeScript type checking for component props
67
+ * - Direct CSS property support without requiring sx prop
68
+ * - Theme context access and inheritance
69
+ * - Proper component validation and error handling
70
+ */
71
+ export declare const Accordion: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.AccordionTypeMap<{}, "div">>>;
72
+ export declare const AccordionActions: WrappedMuiComponentFactory<typeof Mui.AccordionActions>;
73
+ export declare const AccordionDetails: WrappedMuiComponentFactory<typeof Mui.AccordionDetails>;
74
+ export declare const AccordionSummary: WrappedMuiComponentFactory<Mui.ExtendButtonBase<Mui.AccordionSummaryTypeMap<{}, "div">>>;
75
+ export declare const Alert: WrappedMuiComponentFactory<typeof Mui.Alert>;
76
+ export declare const AlertTitle: WrappedMuiComponentFactory<typeof Mui.AlertTitle>;
77
+ export declare const AppBar: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.AppBarTypeMap<{}, "header">>>;
78
+ export declare const Autocomplete: WrappedMuiComponentFactory<typeof Mui.Autocomplete>;
79
+ export declare const Avatar: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.AvatarTypeMap<{}, "div">>>;
80
+ export declare const AvatarGroup: WrappedMuiComponentFactory<import("@mui/types").OverridableComponent<Mui.AvatarGroupTypeMap<{}, "div">>>;
81
+ export declare const Backdrop: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.BackdropTypeMap<{}, "div">>>;
82
+ export declare const Badge: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.BadgeTypeMap<"span", {}>>>;
83
+ export declare const BottomNavigation: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.BottomNavigationTypeMap<{}, "div">>>;
84
+ export declare const BottomNavigationAction: WrappedMuiComponentFactory<Mui.ExtendButtonBase<Mui.BottomNavigationActionTypeMap<{}, "button">>>;
85
+ export declare const Box: WrappedMuiComponentFactory<import("@mui/types").OverridableComponent<import("@mui/system").BoxTypeMap<{}, "div", Mui.Theme>>>;
86
+ export declare const Breadcrumbs: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.BreadcrumbsTypeMap<{}, "nav">>>;
87
+ export declare const Button: WrappedMuiComponentFactory<Mui.ExtendButtonBase<Mui.ButtonTypeMap<{}, "button">>>;
88
+ export declare const ButtonBase: WrappedMuiComponentFactory<Mui.ExtendButtonBase<Mui.ButtonBaseTypeMap<{}, "button">>>;
89
+ export declare const ButtonGroup: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.ButtonGroupTypeMap<{}, "div">>>;
90
+ export declare const Card: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.CardTypeMap<{}, "div">>>;
91
+ export declare const CardActionArea: WrappedMuiComponentFactory<Mui.ExtendButtonBase<Mui.CardActionAreaTypeMap<{}, "button">>>;
92
+ export declare const CardActions: WrappedMuiComponentFactory<typeof Mui.CardActions>;
93
+ export declare const CardContent: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.CardContentTypeMap<{}, "div">>>;
94
+ export declare const CardHeader: WrappedMuiComponentFactory<Mui.OverridableCardHeader>;
95
+ export declare const CardMedia: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.CardMediaTypeMap<{}, "div">>>;
96
+ export declare const Checkbox: WrappedMuiComponentFactory<typeof Mui.Checkbox>;
97
+ export declare const Chip: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.ChipTypeMap<{}, "div">>>;
98
+ export declare const CircularProgress: WrappedMuiComponentFactory<typeof Mui.CircularProgress>;
99
+ export declare const Collapse: WrappedMuiComponentFactory<typeof Mui.Collapse>;
100
+ export declare const Container: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.ContainerTypeMap<{}, "div">>>;
101
+ export declare const CssBaseline: WrappedMuiComponentFactory<typeof Mui.CssBaseline>;
102
+ export declare const Dialog: WrappedMuiComponentFactory<typeof Mui.Dialog>;
103
+ export declare const DialogActions: WrappedMuiComponentFactory<typeof Mui.DialogActions>;
104
+ export declare const DialogContent: WrappedMuiComponentFactory<typeof Mui.DialogContent>;
105
+ export declare const DialogContentText: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.DialogContentTextTypeMap<{}, "span">>>;
106
+ export declare const DialogTitle: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.DialogTitleTypeMap<{}, "span">>>;
107
+ export declare const Divider: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.DividerTypeMap<{}, "hr">>>;
108
+ export declare const Drawer: WrappedMuiComponentFactory<typeof Mui.Drawer>;
109
+ export declare const Fab: WrappedMuiComponentFactory<Mui.ExtendButtonBase<Mui.FabTypeMap<{}, "button">>>;
110
+ export declare const Fade: WrappedMuiComponentFactory<typeof Mui.Fade>;
111
+ export declare const FilledInput: WrappedMuiComponentFactory<((props: Mui.FilledInputProps) => React.JSX.Element) & {
112
+ muiName: string;
113
+ }>;
114
+ export declare const FormControl: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.FormControlTypeMap<{}, "div">>>;
115
+ export declare const FormControlLabel: WrappedMuiComponentFactory<typeof Mui.FormControlLabel>;
116
+ export declare const FormGroup: WrappedMuiComponentFactory<typeof Mui.FormGroup>;
117
+ export declare const FormHelperText: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.FormHelperTextTypeMap<{}, "p">>>;
118
+ export declare const FormLabel: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.FormLabelTypeMap<{}, "label">>>;
119
+ export declare const Grid: WrappedMuiComponentFactory<import("@mui/types").OverridableComponent<Mui.GridTypeMap<{}, "div">>>;
120
+ export declare const Grow: WrappedMuiComponentFactory<typeof Mui.Grow>;
121
+ export declare const Icon: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.IconTypeMap<{}, "span">> & {
122
+ muiName: string;
123
+ }>;
124
+ export declare const IconButton: WrappedMuiComponentFactory<Mui.ExtendButtonBase<Mui.IconButtonTypeMap<{}, "button">>>;
125
+ export declare const ImageList: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.ImageListTypeMap<{}, "ul">>>;
126
+ export declare const ImageListItem: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.ImageListItemTypeMap<{}, "li">>>;
127
+ export declare const ImageListItemBar: WrappedMuiComponentFactory<typeof Mui.ImageListItemBar>;
128
+ export declare const Input: WrappedMuiComponentFactory<((props: Mui.InputProps) => React.JSX.Element) & {
129
+ muiName: string;
130
+ }>;
131
+ export declare const InputAdornment: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.InputAdornmentTypeMap<{}, "div">>>;
132
+ export declare const InputBase: WrappedMuiComponentFactory<typeof Mui.InputBase>;
133
+ export declare const InputLabel: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.InputLabelTypeMap<{}, "label">>>;
134
+ export declare const LinearProgress: WrappedMuiComponentFactory<typeof Mui.LinearProgress>;
135
+ export declare const Link: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.LinkTypeMap<{}, "a">>>;
136
+ export declare const List: WrappedMuiComponentFactory<Mui.ExtendList<Mui.ListTypeMap<{}, "ul">>>;
137
+ export declare const ListItem: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.ListItemTypeMap<{}, "li">>>;
138
+ export declare const ListItemAvatar: WrappedMuiComponentFactory<typeof Mui.ListItemAvatar>;
139
+ export declare const ListItemButton: WrappedMuiComponentFactory<Mui.ExtendButtonBase<Mui.ListItemButtonTypeMap<{}, "div">>>;
140
+ export declare const ListItemIcon: WrappedMuiComponentFactory<typeof Mui.ListItemIcon>;
141
+ export declare const ListItemSecondaryAction: WrappedMuiComponentFactory<((props: Mui.ListItemSecondaryActionProps) => React.JSX.Element) & {
142
+ muiName: string;
143
+ }>;
144
+ export declare const ListItemText: WrappedMuiComponentFactory<typeof Mui.ListItemText>;
145
+ export declare const ListSubheader: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.ListSubheaderTypeMap<{}, "li">>>;
146
+ export declare const Menu: WrappedMuiComponentFactory<typeof Mui.Menu>;
147
+ export declare const MenuItem: WrappedMuiComponentFactory<Mui.ExtendButtonBase<Mui.MenuItemTypeMap<{}, "li">>>;
148
+ export declare const MenuList: WrappedMuiComponentFactory<Mui.ExtendList<Mui.MenuListTypeMap<{}, "ul">>>;
149
+ export declare const MobileStepper: WrappedMuiComponentFactory<typeof Mui.MobileStepper>;
150
+ export declare const Modal: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.ModalTypeMap<"div", {}>>>;
151
+ export declare const NativeSelect: WrappedMuiComponentFactory<((props: Mui.NativeSelectProps) => React.JSX.Element) & {
152
+ muiName: string;
153
+ }>;
154
+ export declare const OutlinedInput: WrappedMuiComponentFactory<((props: Mui.OutlinedInputProps) => React.JSX.Element) & {
155
+ muiName: string;
156
+ }>;
157
+ export declare const Pagination: WrappedMuiComponentFactory<typeof Mui.Pagination>;
158
+ export declare const PaginationItem: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.PaginationItemTypeMap<{}, "div">>>;
159
+ export declare const Paper: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.PaperTypeMap<{}, "div">>>;
160
+ export declare const Popover: WrappedMuiComponentFactory<typeof Mui.Popover>;
161
+ export declare const Popper: WrappedMuiComponentFactory<import("react").ForwardRefExoticComponent<Mui.PopperProps & import("react").RefAttributes<HTMLDivElement>>>;
162
+ export declare const Radio: WrappedMuiComponentFactory<typeof Mui.Radio>;
163
+ export declare const RadioGroup: WrappedMuiComponentFactory<typeof Mui.RadioGroup>;
164
+ export declare const Rating: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.RatingTypeMap<{}, "span">>>;
165
+ export declare const ScopedCssBaseline: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.ScopedCssBaselineTypeMap<{}, "div">>>;
166
+ export declare const Select: WrappedMuiComponentFactory<(<Value = unknown>(props: Mui.SelectProps<Value>) => React.JSX.Element) & {
167
+ muiName: string;
168
+ }>;
169
+ export declare const Skeleton: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.SkeletonTypeMap<{}, "span">>>;
170
+ export declare const Slide: WrappedMuiComponentFactory<typeof Mui.Slide>;
171
+ export declare const Slider: WrappedMuiComponentFactory<Mui.SliderType>;
172
+ export declare const Snackbar: WrappedMuiComponentFactory<typeof Mui.Snackbar>;
173
+ export declare const SnackbarContent: WrappedMuiComponentFactory<typeof Mui.SnackbarContent>;
174
+ export declare const SpeedDial: WrappedMuiComponentFactory<typeof Mui.SpeedDial>;
175
+ export declare const SpeedDialAction: WrappedMuiComponentFactory<typeof Mui.SpeedDialAction>;
176
+ export declare const SpeedDialIcon: WrappedMuiComponentFactory<((props: Mui.SpeedDialIconProps) => React.JSX.Element) & {
177
+ muiName: string;
178
+ }>;
179
+ export declare const Stack: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.StackTypeMap<{}, "div">>>;
180
+ export declare const Step: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.StepTypeMap<{}, "div">>>;
181
+ export declare const StepButton: WrappedMuiComponentFactory<Mui.ExtendButtonBase<Mui.StepButtonTypeMap<{}, "button">>>;
182
+ export declare const StepConnector: WrappedMuiComponentFactory<typeof Mui.StepConnector>;
183
+ export declare const StepContent: WrappedMuiComponentFactory<typeof Mui.StepContent>;
184
+ export declare const StepIcon: WrappedMuiComponentFactory<typeof Mui.StepIcon>;
185
+ export declare const StepLabel: WrappedMuiComponentFactory<((props: Mui.StepLabelProps) => React.JSX.Element) & {
186
+ muiName: string;
187
+ }>;
188
+ export declare const Stepper: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.StepperTypeMap<{}, "div">>>;
189
+ export declare const SvgIcon: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.SvgIconTypeMap<{}, "svg">> & {
190
+ muiName: string;
191
+ }>;
192
+ export declare const SwipeableDrawer: WrappedMuiComponentFactory<import("react").JSXElementConstructor<Mui.SwipeableDrawerProps>>;
193
+ export declare const Switch: WrappedMuiComponentFactory<typeof Mui.Switch>;
194
+ export declare const Tab: WrappedMuiComponentFactory<Mui.ExtendButtonBase<Mui.TabTypeMap<{}, "div">>>;
195
+ export declare const Table: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.TableTypeMap<{}, "table">>>;
196
+ export declare const TableBody: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.TableBodyTypeMap<{}, "tbody">>>;
197
+ export declare const TableCell: WrappedMuiComponentFactory<typeof Mui.TableCell>;
198
+ export declare const TableContainer: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.TableContainerTypeMap<{}, "div">>>;
199
+ export declare const TableFooter: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.TableFooterTypeMap<{}, "tfoot">>>;
200
+ export declare const TableHead: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.TableHeadTypeMap<{}, "thead">>>;
201
+ export declare const TablePagination: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.TablePaginationTypeMap<{}, import("react").JSXElementConstructor<Mui.TablePaginationBaseProps>>>>;
202
+ export declare const TableRow: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.TableRowTypeMap<{}, "tr">>>;
203
+ export declare const TableSortLabel: WrappedMuiComponentFactory<Mui.ExtendButtonBase<Mui.TableSortLabelTypeMap<{}, "span">>>;
204
+ export declare const Tabs: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.TabsTypeMap<{}, "div">>>;
205
+ export declare const TextField: WrappedMuiComponentFactory<typeof Mui.TextField>;
206
+ export declare const TextareaAutosize: WrappedMuiComponentFactory<import("react").ForwardRefExoticComponent<Mui.TextareaAutosizeProps & import("react").RefAttributes<Element>>>;
207
+ export declare const ThemeProvider: WrappedMuiComponentFactory<typeof Mui.ThemeProvider>;
208
+ export declare const ToggleButton: WrappedMuiComponentFactory<Mui.ExtendButtonBase<Mui.ToggleButtonTypeMap<{}, "button">>>;
209
+ export declare const ToggleButtonGroup: WrappedMuiComponentFactory<typeof Mui.ToggleButtonGroup>;
210
+ export declare const Toolbar: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.ToolbarTypeMap<{}, "div">>>;
211
+ export declare const Tooltip: WrappedMuiComponentFactory<typeof Mui.Tooltip>;
212
+ export declare const Typography: WrappedMuiComponentFactory<import("@mui/material/OverridableComponent").OverridableComponent<Mui.TypographyTypeMap<{}, "span">>>;
213
+ export declare const Zoom: WrappedMuiComponentFactory<typeof Mui.Zoom>;
214
+ export {};
215
+ //# sourceMappingURL=mui.node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mui.node.d.ts","sourceRoot":"","sources":["../src/mui.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ "use strict";function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==_typeof(b)?b:b+""}function _toPrimitive(a,b){if("object"!=_typeof(a)||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=_typeof(d))return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}import{Node}from"@meonode/ui";import*as Mui from"@mui/material";import*as MuiStyles from"@mui/material/styles";import{getComponentType}from"@meonode/ui";/**
2
+ * Validates whether a MUI export should be wrapped as a renderable React component.
3
+ * This function performs comprehensive validation to ensure the component can be properly rendered.
4
+ * @param component The MUI component or export to validate
5
+ * @param componentName The name of the component being checked
6
+ * @returns A type predicate indicating if the component is renderable
7
+ * @remarks
8
+ * The validation includes multiple checks:
9
+ * - Existence of the muiName static property (common in MUI components)
10
+ * - Component naming conventions (capitalized for React components)
11
+ * - Class component structure (presence of render method or isReactComponent)
12
+ * - Forward ref and memo component patterns
13
+ * @example
14
+ * ```ts
15
+ * // Check if the Button component is renderable
16
+ * if (isRenderableMuiComponent(Mui.Button, 'Button')) {
17
+ * // Safe to use Button as a React component
18
+ * }
19
+ * ```
20
+ */export function isRenderableMuiComponent(a,b){if(null==a)return!1;var c=getComponentType(a);return!!(("object"===c||"function"===c)&&Object.prototype.hasOwnProperty.call(a,"muiName"))||("function"===c?/^[A-Z]/.test(b)||"prototype"in a&&"object"===a.prototype&&null!==a.prototype&&"isReactComponent"in a.prototype:!("forwardRef"!==c||"function"!=typeof a.render)||("memo"===c&&Object.hasOwn(a,"type")?isRenderableMuiComponent(a.type,b):!("object"!==c)&&/^[A-Z]/.test(b)&&("function"==typeof a.render||a.prototype&&"object"===_typeof(a.prototype)&&"isReactComponent"in a.prototype)))}/**
21
+ * Factory function type for creating wrapped MUI components.
22
+ * Takes optional props and returns a BaseNodeInstance that can be rendered.
23
+ * @template C - The MUI component type to wrap
24
+ * @returns A BaseNodeInstance representing the wrapped component
25
+ * @example
26
+ * ```ts
27
+ * type ButtonFactory = WrappedMuiComponentFactory<typeof Button>;
28
+ * const wrappedButton: ButtonFactory = (props) => Node(Button, props);
29
+ * wrappedButton({ variant: 'contained', children: 'Click me' });
30
+ * ```
31
+ *//**
32
+ * Type alias for accessing Material-UI module exports.
33
+ * Provides type-safe access to all MUI components and utilities.
34
+ *//**
35
+ * Filters object type to only include React component entries.
36
+ * Excludes non-component exports like utils, hooks, etc.
37
+ * @template T - The source object type to filter
38
+ * @returns Object type containing only component entries
39
+ * @example
40
+ * ```ts
41
+ * // Gets only MUI component types, excluding utils/hooks
42
+ * type MuiComponents = FilterComponents<typeof Mui>;
43
+ * // Results in: { Button: ComponentType, TextField: ComponentType, ... }
44
+ * ```
45
+ *//**
46
+ * Maps MUI components to their corresponding factory functions.
47
+ * Preserves type safety and prop types of original components.
48
+ * @remarks
49
+ * - Filters to only include valid React components
50
+ * - Creates factory functions that accept component props
51
+ * - Maintains original prop types and constraints
52
+ * - Supports theme context and direct CSS props
53
+ * @example
54
+ * ```ts
55
+ * // Type definition includes all component factories:
56
+ * type Factories = {
57
+ * Button: (props?: ButtonProps) => BaseNodeInstance<typeof Button>;
58
+ * TextField: (props?: TextFieldProps) => BaseNodeInstance<typeof TextField>;
59
+ * // ...etc
60
+ * }
61
+ * ```
62
+ *//**
63
+ * Internal map storing generated component factories.
64
+ * Populated during initialization with wrapped versions of MUI components.
65
+ * @internal
66
+ * Properties are made optional and mutable to allow dynamic population.
67
+ * The external API freezes this object for immutability.
68
+ */var muiNodeFactoriesInternal={};/**
69
+ * Determines if an object is likely to be a Material-UI theme object by comparing its structure
70
+ * to a reference theme.
71
+ * @param obj The object to evaluate as a potential MUI theme
72
+ * @returns `true` if the object appears to be a MUI theme, `false` otherwise
73
+ * @remarks
74
+ * The function uses a heuristic approach by:
75
+ * 1. Creating a reference theme using MUI's extendTheme()
76
+ * 2. Comparing the keys of the input object with the reference theme
77
+ * 3. Calculating a similarity score based on matching keys
78
+ * 4. Considering it a theme if at least 25% of reference keys are present
79
+ * @example
80
+ * ```ts
81
+ * const customTheme = {
82
+ * palette: { primary: { main: '#000' } },
83
+ * typography: { fontSize: 14 }
84
+ * };
85
+ *
86
+ * if (isProbablyMuiTheme(customTheme)) {
87
+ * // Handle theme object
88
+ * }
89
+ * ```
90
+ * @throws Will not throw, but returns false for null, non-objects, or invalid inputs
91
+ */export function isProbablyMuiTheme(a){if("object"!==_typeof(a)||null===a)return!1;var b=Mui.extendTheme(),c=Object.keys(b),d=Object.keys(a),e=d.filter(function(a){return c.includes(a)}),f=e.length/c.length;return .25<=f}/**
92
+ * Dynamically generates wrapped factory functions for each valid Material-UI component.
93
+ * @remarks
94
+ * The initialization process:
95
+ * 1. Iterates through all MUI module exports
96
+ * 2. Validates each export to ensure it's a renderable React component using isRenderableMuiComponent()
97
+ * 3. Creates a strongly-typed factory function that wraps the component with Node()
98
+ * 4. Stores factory functions in muiNodeFactoriesInternal map for later export
99
+ *
100
+ * Each generated factory function:
101
+ * - Preserves full TypeScript typing from the original MUI component
102
+ * - Accepts an optional props object that combines:
103
+ * - All original MUI component props
104
+ * - Direct CSS properties (without needing sx prop)
105
+ * - Common React props like children, key, etc
106
+ * - Theme context access
107
+ * - Returns a BaseNodeInstance that can be rendered to React elements
108
+ * @example
109
+ * ```ts
110
+ * // Original MUI Button becomes a factory function:
111
+ * const button = muiNodeFactoriesInternal.Button({
112
+ * variant: 'contained', // MUI prop
113
+ * backgroundColor: 'blue', // Direct CSS prop
114
+ * children: 'Click Me', // React prop
115
+ * theme: customTheme // Theme context
116
+ * });
117
+ * ```
118
+ * @see isRenderableMuiComponent - For component validation logic
119
+ * @see NodeProps - For supported prop types
120
+ * @see BaseNodeInstance - For node instance structure
121
+ * @see Node - For the wrapping function implementation
122
+ */for(var MergedMuiComponents=_objectSpread(_objectSpread({},Mui),MuiStyles),componentKeys=Object.keys(Mui),_loop=function _loop(){var a=_componentKeys[_i],b=MergedMuiComponents[a];isRenderableMuiComponent(b,a)&&(muiNodeFactoriesInternal[a]=function(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return isProbablyMuiTheme(a.theme)||(a.nodeTheme=a.theme,delete a.theme),Node(b,a)})},_i=0,_componentKeys=componentKeys;_i<_componentKeys.length;_i++)_loop();/**
123
+ * Factory object containing all wrapped MUI component factories.
124
+ * Internal object that provides type-safe access to wrapped versions of MUI components.
125
+ * Used to generate the individual exports.
126
+ * @internal
127
+ */var MuiNodeFactories=Object.freeze(muiNodeFactoriesInternal);/**
128
+ * Export Material-UI component factories with enhanced type-safety and prop validation.
129
+ * Each export is a factory function that wraps the original MUI component, providing:
130
+ * - Full TypeScript type checking for component props
131
+ * - Direct CSS property support without requiring sx prop
132
+ * - Theme context access and inheritance
133
+ * - Proper component validation and error handling
134
+ */export var Accordion=MuiNodeFactories.Accordion;export var AccordionActions=MuiNodeFactories.AccordionActions;export var AccordionDetails=MuiNodeFactories.AccordionDetails;export var AccordionSummary=MuiNodeFactories.AccordionSummary;export var Alert=MuiNodeFactories.Alert;export var AlertTitle=MuiNodeFactories.AlertTitle;export var AppBar=MuiNodeFactories.AppBar;export var Autocomplete=MuiNodeFactories.Autocomplete;export var Avatar=MuiNodeFactories.Avatar;export var AvatarGroup=MuiNodeFactories.AvatarGroup;export var Backdrop=MuiNodeFactories.Backdrop;export var Badge=MuiNodeFactories.Badge;export var BottomNavigation=MuiNodeFactories.BottomNavigation;export var BottomNavigationAction=MuiNodeFactories.BottomNavigationAction;export var Box=MuiNodeFactories.Box;export var Breadcrumbs=MuiNodeFactories.Breadcrumbs;export var Button=MuiNodeFactories.Button;export var ButtonBase=MuiNodeFactories.ButtonBase;export var ButtonGroup=MuiNodeFactories.ButtonGroup;export var Card=MuiNodeFactories.Card;export var CardActionArea=MuiNodeFactories.CardActionArea;export var CardActions=MuiNodeFactories.CardActions;export var CardContent=MuiNodeFactories.CardContent;export var CardHeader=MuiNodeFactories.CardHeader;export var CardMedia=MuiNodeFactories.CardMedia;export var Checkbox=MuiNodeFactories.Checkbox;export var Chip=MuiNodeFactories.Chip;export var CircularProgress=MuiNodeFactories.CircularProgress;export var Collapse=MuiNodeFactories.Collapse;export var Container=MuiNodeFactories.Container;export var CssBaseline=MuiNodeFactories.CssBaseline;export var Dialog=MuiNodeFactories.Dialog;export var DialogActions=MuiNodeFactories.DialogActions;export var DialogContent=MuiNodeFactories.DialogContent;export var DialogContentText=MuiNodeFactories.DialogContentText;export var DialogTitle=MuiNodeFactories.DialogTitle;export var Divider=MuiNodeFactories.Divider;export var Drawer=MuiNodeFactories.Drawer;export var Fab=MuiNodeFactories.Fab;export var Fade=MuiNodeFactories.Fade;export var FilledInput=MuiNodeFactories.FilledInput;export var FormControl=MuiNodeFactories.FormControl;export var FormControlLabel=MuiNodeFactories.FormControlLabel;export var FormGroup=MuiNodeFactories.FormGroup;export var FormHelperText=MuiNodeFactories.FormHelperText;export var FormLabel=MuiNodeFactories.FormLabel;export var Grid=MuiNodeFactories.Grid;export var Grow=MuiNodeFactories.Grow;export var Icon=MuiNodeFactories.Icon;export var IconButton=MuiNodeFactories.IconButton;export var ImageList=MuiNodeFactories.ImageList;export var ImageListItem=MuiNodeFactories.ImageListItem;export var ImageListItemBar=MuiNodeFactories.ImageListItemBar;export var Input=MuiNodeFactories.Input;export var InputAdornment=MuiNodeFactories.InputAdornment;export var InputBase=MuiNodeFactories.InputBase;export var InputLabel=MuiNodeFactories.InputLabel;export var LinearProgress=MuiNodeFactories.LinearProgress;export var Link=MuiNodeFactories.Link;export var List=MuiNodeFactories.List;export var ListItem=MuiNodeFactories.ListItem;export var ListItemAvatar=MuiNodeFactories.ListItemAvatar;export var ListItemButton=MuiNodeFactories.ListItemButton;export var ListItemIcon=MuiNodeFactories.ListItemIcon;export var ListItemSecondaryAction=MuiNodeFactories.ListItemSecondaryAction;export var ListItemText=MuiNodeFactories.ListItemText;export var ListSubheader=MuiNodeFactories.ListSubheader;export var Menu=MuiNodeFactories.Menu;export var MenuItem=MuiNodeFactories.MenuItem;export var MenuList=MuiNodeFactories.MenuList;export var MobileStepper=MuiNodeFactories.MobileStepper;export var Modal=MuiNodeFactories.Modal;export var NativeSelect=MuiNodeFactories.NativeSelect;export var OutlinedInput=MuiNodeFactories.OutlinedInput;export var Pagination=MuiNodeFactories.Pagination;export var PaginationItem=MuiNodeFactories.PaginationItem;export var Paper=MuiNodeFactories.Paper;export var Popover=MuiNodeFactories.Popover;export var Popper=MuiNodeFactories.Popper;export var Radio=MuiNodeFactories.Radio;export var RadioGroup=MuiNodeFactories.RadioGroup;export var Rating=MuiNodeFactories.Rating;export var ScopedCssBaseline=MuiNodeFactories.ScopedCssBaseline;export var Select=MuiNodeFactories.Select;export var Skeleton=MuiNodeFactories.Skeleton;export var Slide=MuiNodeFactories.Slide;export var Slider=MuiNodeFactories.Slider;export var Snackbar=MuiNodeFactories.Snackbar;export var SnackbarContent=MuiNodeFactories.SnackbarContent;export var SpeedDial=MuiNodeFactories.SpeedDial;export var SpeedDialAction=MuiNodeFactories.SpeedDialAction;export var SpeedDialIcon=MuiNodeFactories.SpeedDialIcon;export var Stack=MuiNodeFactories.Stack;export var Step=MuiNodeFactories.Step;export var StepButton=MuiNodeFactories.StepButton;export var StepConnector=MuiNodeFactories.StepConnector;export var StepContent=MuiNodeFactories.StepContent;export var StepIcon=MuiNodeFactories.StepIcon;export var StepLabel=MuiNodeFactories.StepLabel;export var Stepper=MuiNodeFactories.Stepper;export var SvgIcon=MuiNodeFactories.SvgIcon;export var SwipeableDrawer=MuiNodeFactories.SwipeableDrawer;export var Switch=MuiNodeFactories.Switch;export var Tab=MuiNodeFactories.Tab;export var Table=MuiNodeFactories.Table;export var TableBody=MuiNodeFactories.TableBody;export var TableCell=MuiNodeFactories.TableCell;export var TableContainer=MuiNodeFactories.TableContainer;export var TableFooter=MuiNodeFactories.TableFooter;export var TableHead=MuiNodeFactories.TableHead;export var TablePagination=MuiNodeFactories.TablePagination;export var TableRow=MuiNodeFactories.TableRow;export var TableSortLabel=MuiNodeFactories.TableSortLabel;export var Tabs=MuiNodeFactories.Tabs;export var TextField=MuiNodeFactories.TextField;export var TextareaAutosize=MuiNodeFactories.TextareaAutosize;export var ThemeProvider=MuiNodeFactories.ThemeProvider;export var ToggleButton=MuiNodeFactories.ToggleButton;export var ToggleButtonGroup=MuiNodeFactories.ToggleButtonGroup;export var Toolbar=MuiNodeFactories.Toolbar;export var Tooltip=MuiNodeFactories.Tooltip;export var Typography=MuiNodeFactories.Typography;export var Zoom=MuiNodeFactories.Zoom;
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "@meonode/mui",
3
+ "description": "A lightweight wrapper around `@mui/material` components for use with `@meonode/ui` and the BaseNode runtime.",
4
+ "version": "0.0.1-alpha.1",
5
+ "type": "module",
6
+ "main": "./dist/main.js",
7
+ "types": "./dist/main.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/main.js",
11
+ "types": "./dist/main.d.ts"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist",
16
+ "docs",
17
+ "package.json",
18
+ "LICENSE",
19
+ "README.md"
20
+ ],
21
+ "scripts": {
22
+ "lint": "eslint --fix",
23
+ "build": "rm -rf ./dist && babel src --out-dir dist --extensions \".ts,.js\" && tsc && tsc-alias && copyfiles -u 1 \"src/**/*.json\" dist",
24
+ "publish": "npm publish"
25
+ },
26
+ "devDependencies": {
27
+ "@babel/cli": "^7.0.0",
28
+ "@babel/core": "^7.0.0",
29
+ "@babel/plugin-transform-json-modules": "^7.27.1",
30
+ "@babel/preset-env": "^7.0.0",
31
+ "@babel/preset-typescript": "^7.27.1",
32
+ "@eslint/js": "^9.27.0",
33
+ "@meonode/ui": "^0.0.1-alpha.2",
34
+ "@mui/material": "^7.1.0",
35
+ "@types/copyfiles": "^2",
36
+ "@types/react": "^19.1.4",
37
+ "@typescript-eslint/eslint-plugin": "^8.32.1",
38
+ "@typescript-eslint/parser": "^8.32.1",
39
+ "babel-plugin-module-resolver": "^5.0.2",
40
+ "babel-preset-minify": "^0.5.2",
41
+ "copyfiles": "^2.4.1",
42
+ "eslint": "^9.27.0",
43
+ "eslint-plugin-jsdoc": "^50.6.17",
44
+ "eslint-plugin-prettier": "^5.4.0",
45
+ "eslint-plugin-unused-imports": "^4.1.4",
46
+ "prettier": "^3.5.3",
47
+ "tsc-alias": "^1.8.16",
48
+ "typescript": "^5.8.3",
49
+ "typescript-eslint": "^8.32.1"
50
+ },
51
+ "packageManager": "yarn@4.9.1",
52
+ "peerDependencies": {
53
+ "@meonode/ui": "*",
54
+ "@mui/material": "*",
55
+ "react": "*"
56
+ },
57
+ "license": "MIT"
58
+ }