@recursica/mui-adapter 0.15.0 → 0.17.0
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/CHANGELOG.md +12 -0
- package/OVERSTYLING.md +59 -0
- package/USAGE.md +2 -0
- package/dist/mui-adapter.cjs +20 -20
- package/dist/mui-adapter.cjs.map +1 -1
- package/dist/mui-adapter.js +1263 -1186
- package/dist/mui-adapter.js.map +1 -1
- package/dist/src/components/Table/Table.d.ts +127 -8
- package/llms.txt +58 -2
- package/package.json +3 -2
- package/src/OverStyling.tsx +7 -200
- package/src/components/Accordion/USAGE.md +43 -0
- package/src/components/AssistiveElement/USAGE.md +36 -0
- package/src/components/Autocomplete/USAGE.md +42 -0
- package/src/components/Avatar/USAGE.md +38 -0
- package/src/components/Badge/USAGE.md +40 -0
- package/src/components/Box/USAGE.md +48 -0
- package/src/components/Breadcrumb/USAGE.md +42 -0
- package/src/components/Button/USAGE.md +58 -0
- package/src/components/Card/USAGE.md +69 -0
- package/src/components/Checkbox/USAGE.md +36 -0
- package/src/components/Chip/USAGE.md +36 -0
- package/src/components/Container/USAGE.md +48 -0
- package/src/components/DatePicker/USAGE.md +36 -0
- package/src/components/Dropdown/USAGE.md +41 -0
- package/src/components/FileInput/USAGE.md +36 -0
- package/src/components/FileUpload/USAGE.md +41 -0
- package/src/components/Flex/USAGE.md +41 -0
- package/src/components/FormControlLayout/USAGE.md +40 -0
- package/src/components/FormControlWrapper/USAGE.md +40 -0
- package/src/components/Group/USAGE.md +41 -0
- package/src/components/HoverCard/USAGE.md +45 -0
- package/src/components/Label/USAGE.md +36 -0
- package/src/components/Link/USAGE.md +40 -0
- package/src/components/Loader/USAGE.md +64 -0
- package/src/components/Menu/USAGE.md +54 -0
- package/src/components/Modal/USAGE.md +40 -0
- package/src/components/NumberInput/USAGE.md +36 -0
- package/src/components/Pagination/USAGE.md +42 -0
- package/src/components/Panel/USAGE.md +103 -0
- package/src/components/Radio/USAGE.md +36 -0
- package/src/components/ReadOnlyField/USAGE.md +36 -0
- package/src/components/SegmentedControl/USAGE.md +36 -0
- package/src/components/Slider/USAGE.md +36 -0
- package/src/components/Stack/USAGE.md +41 -0
- package/src/components/Stepper/USAGE.md +48 -0
- package/src/components/Switch/USAGE.md +36 -0
- package/src/components/Table/Table.tsx +142 -14
- package/src/components/Table/USAGE.md +51 -0
- package/src/components/Tabs/USAGE.md +52 -0
- package/src/components/Text/USAGE.md +40 -0
- package/src/components/TextArea/USAGE.md +38 -0
- package/src/components/TextField/USAGE.md +38 -0
- package/src/components/TimePicker/USAGE.md +36 -0
- package/src/components/Timeline/USAGE.md +41 -0
- package/src/components/Title/USAGE.md +36 -0
- package/src/components/Toast/USAGE.md +42 -0
- package/src/components/Tooltip/USAGE.md +40 -0
- package/src/components/TransferList/USAGE.md +46 -0
- package/src/components/Tree/USAGE.md +46 -0
- package/src/components/Typography/USAGE.md +40 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Stack - Usage Guide
|
|
2
|
+
|
|
3
|
+
This document describes how to integrate and use the `Stack` component in your projects using `@recursica/mui-adapter`.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Import Reference
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
import { Stack } from "@recursica/mui-adapter";
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 2. Basic Example
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
import React from "react";
|
|
19
|
+
import { Stack } from "@recursica/mui-adapter";
|
|
20
|
+
|
|
21
|
+
export default function Demo() {
|
|
22
|
+
return (
|
|
23
|
+
<Stack gap="md" align="stretch">
|
|
24
|
+
<Text>Item 1</Text>
|
|
25
|
+
<Text>Item 2</Text>
|
|
26
|
+
</Stack>
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 3. Design System Integration
|
|
34
|
+
|
|
35
|
+
All Recursica components in the `@recursica/mui-adapter` package adhere strictly to design system spacing, scaling, and behavior patterns.
|
|
36
|
+
|
|
37
|
+
> [!IMPORTANT]
|
|
38
|
+
>
|
|
39
|
+
> - **Anti-override protection**: Rogues style injections (like inline `style` or arbitrary `className`) are automatically blocked by our prop layer unless `overStyled={true}` is explicitly provided.
|
|
40
|
+
> - **No Direct Layers**: Do not pass a `layer` prop to this component. To place it on a specific visual layer, wrap it in a `<Layer layer={0|1|2|3}>` component natively.
|
|
41
|
+
> - **Variables and Theming**: Styling is entirely determined by local CSS variables defined in `recursica_variables_scoped.css` and mapped in the component's CSS module.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Stepper - Usage Guide
|
|
2
|
+
|
|
3
|
+
This document describes how to integrate and use the `Stepper` component in your projects using `@recursica/mui-adapter`.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Import Reference
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
import { Stepper } from "@recursica/mui-adapter";
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 2. Basic Example
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
import React from "react";
|
|
19
|
+
import { Stepper } from "@recursica/mui-adapter";
|
|
20
|
+
|
|
21
|
+
export default function Demo() {
|
|
22
|
+
return (
|
|
23
|
+
<Stepper active={1}>
|
|
24
|
+
<Stepper.Step label="First step" description="Create account" />
|
|
25
|
+
<Stepper.Step label="Second step" description="Verify email" />
|
|
26
|
+
</Stepper>
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 3. Design System Integration
|
|
34
|
+
|
|
35
|
+
All Recursica components in the `@recursica/mui-adapter` package adhere strictly to design system spacing, scaling, and behavior patterns.
|
|
36
|
+
|
|
37
|
+
> [!IMPORTANT]
|
|
38
|
+
>
|
|
39
|
+
> - **Anti-override protection**: Rogues style injections (like inline `style` or arbitrary `className`) are automatically blocked by our prop layer unless `overStyled={true}` is explicitly provided.
|
|
40
|
+
> - **No Direct Layers**: Do not pass a `layer` prop to this component. To place it on a specific visual layer, wrap it in a `<Layer layer={0|1|2|3}>` component natively.
|
|
41
|
+
> - **Variables and Theming**: Styling is entirely determined by local CSS variables defined in `recursica_variables_scoped.css` and mapped in the component's CSS module.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## 4. Key Integration Features & Constraints
|
|
46
|
+
|
|
47
|
+
- **Compositional API Dropped:** Mantine manages stepper state and content via `<Stepper.Step>` and `<Stepper.Completed>`. MUI delegates content rendering to the developer and focuses purely on the stepper visual layout using `<Step>`, `<StepLabel>`, etc.
|
|
48
|
+
- **Monolithic API Adopted:** Following architectural review, we have abandoned the fabricated context wrappers for `mui-adapter`. We now natively export `Stepper`, `Step`, `StepLabel`, `StepButton`, and `StepConnector` wrapping their `@mui/material` counterparts. Developers are expected to manage the active step logic and content rendering outside the `Stepper` component, consistent with MUI patterns. Storybook tests have been updated to reflect this divergence while retaining core visual compatibility.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Switch - Usage Guide
|
|
2
|
+
|
|
3
|
+
This document describes how to integrate and use the `Switch` component in your projects using `@recursica/mui-adapter`.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Import Reference
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
import { Switch } from "@recursica/mui-adapter";
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 2. Basic Example
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
import React from "react";
|
|
19
|
+
import { Switch } from "@recursica/mui-adapter";
|
|
20
|
+
|
|
21
|
+
export default function Demo() {
|
|
22
|
+
return <Switch label="Enable notifications" defaultChecked />;
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 3. Design System Integration
|
|
29
|
+
|
|
30
|
+
All Recursica components in the `@recursica/mui-adapter` package adhere strictly to design system spacing, scaling, and behavior patterns.
|
|
31
|
+
|
|
32
|
+
> [!IMPORTANT]
|
|
33
|
+
>
|
|
34
|
+
> - **Anti-override protection**: Rogues style injections (like inline `style` or arbitrary `className`) are automatically blocked by our prop layer unless `overStyled={true}` is explicitly provided.
|
|
35
|
+
> - **No Direct Layers**: Do not pass a `layer` prop to this component. To place it on a specific visual layer, wrap it in a `<Layer layer={0|1|2|3}>` component natively.
|
|
36
|
+
> - **Variables and Theming**: Styling is entirely determined by local CSS variables defined in `recursica_variables_scoped.css` and mapped in the component's CSS module.
|
|
@@ -3,12 +3,19 @@ import {
|
|
|
3
3
|
Table as MuiTable,
|
|
4
4
|
type TableProps as MuiTableProps,
|
|
5
5
|
TableBody as MuiTableBody,
|
|
6
|
+
type TableBodyProps as MuiTableBodyProps,
|
|
6
7
|
TableCell as MuiTableCell,
|
|
8
|
+
type TableCellProps as MuiTableCellProps,
|
|
7
9
|
TableContainer as MuiTableContainer,
|
|
10
|
+
type TableContainerProps as MuiTableContainerProps,
|
|
8
11
|
TableHead as MuiTableHead,
|
|
12
|
+
type TableHeadProps as MuiTableHeadProps,
|
|
9
13
|
TableRow as MuiTableRow,
|
|
14
|
+
type TableRowProps as MuiTableRowProps,
|
|
10
15
|
TableFooter as MuiTableFooter,
|
|
16
|
+
type TableFooterProps as MuiTableFooterProps,
|
|
11
17
|
TableSortLabel as MuiTableSortLabel,
|
|
18
|
+
type TableSortLabelProps as MuiTableSortLabelProps,
|
|
12
19
|
} from "@mui/material";
|
|
13
20
|
import {
|
|
14
21
|
filterStylingProps,
|
|
@@ -45,21 +52,142 @@ const TableBase = forwardRef<HTMLTableElement, TableProps>(function Table(
|
|
|
45
52
|
|
|
46
53
|
TableBase.displayName = "Table";
|
|
47
54
|
|
|
55
|
+
// ==== EXPLICIT DOT-NOTATION SUB-COMPONENTS ====
|
|
56
|
+
// Each sub-component is wrapped independently so it goes through
|
|
57
|
+
// filterStylingProps/overStyled the same way the root Table does.
|
|
58
|
+
|
|
59
|
+
export type TableBodyPropsRecursica = RecursicaOverStyled<MuiTableBodyProps>;
|
|
60
|
+
|
|
61
|
+
export const TableBodyComponent = forwardRef<
|
|
62
|
+
HTMLTableSectionElement,
|
|
63
|
+
TableBodyPropsRecursica
|
|
64
|
+
>(function TableBody({ overStyled = false, ...rest }, ref) {
|
|
65
|
+
const sanitizedProps = filterStylingProps(rest, overStyled);
|
|
66
|
+
return (
|
|
67
|
+
<MuiTableBody
|
|
68
|
+
ref={ref}
|
|
69
|
+
{...(sanitizedProps as unknown as MuiTableBodyProps)}
|
|
70
|
+
/>
|
|
71
|
+
);
|
|
72
|
+
});
|
|
73
|
+
TableBodyComponent.displayName = "TableBody";
|
|
74
|
+
|
|
75
|
+
export type TableCellPropsRecursica = RecursicaOverStyled<MuiTableCellProps>;
|
|
76
|
+
|
|
77
|
+
export const TableCellComponent = forwardRef<
|
|
78
|
+
HTMLTableCellElement,
|
|
79
|
+
TableCellPropsRecursica
|
|
80
|
+
>(function TableCell({ overStyled = false, ...rest }, ref) {
|
|
81
|
+
const sanitizedProps = filterStylingProps(rest, overStyled);
|
|
82
|
+
return (
|
|
83
|
+
<MuiTableCell
|
|
84
|
+
ref={ref}
|
|
85
|
+
{...(sanitizedProps as unknown as MuiTableCellProps)}
|
|
86
|
+
/>
|
|
87
|
+
);
|
|
88
|
+
});
|
|
89
|
+
TableCellComponent.displayName = "TableCell";
|
|
90
|
+
|
|
91
|
+
export type TableContainerPropsRecursica =
|
|
92
|
+
RecursicaOverStyled<MuiTableContainerProps>;
|
|
93
|
+
|
|
94
|
+
export const TableContainerComponent = forwardRef<
|
|
95
|
+
HTMLDivElement,
|
|
96
|
+
TableContainerPropsRecursica
|
|
97
|
+
>(function TableContainer({ overStyled = false, ...rest }, ref) {
|
|
98
|
+
const sanitizedProps = filterStylingProps(rest, overStyled);
|
|
99
|
+
return (
|
|
100
|
+
<MuiTableContainer
|
|
101
|
+
ref={ref}
|
|
102
|
+
{...(sanitizedProps as unknown as MuiTableContainerProps)}
|
|
103
|
+
/>
|
|
104
|
+
);
|
|
105
|
+
});
|
|
106
|
+
TableContainerComponent.displayName = "TableContainer";
|
|
107
|
+
|
|
108
|
+
export type TableHeadPropsRecursica = RecursicaOverStyled<MuiTableHeadProps>;
|
|
109
|
+
|
|
110
|
+
export const TableHeadComponent = forwardRef<
|
|
111
|
+
HTMLTableSectionElement,
|
|
112
|
+
TableHeadPropsRecursica
|
|
113
|
+
>(function TableHead({ overStyled = false, ...rest }, ref) {
|
|
114
|
+
const sanitizedProps = filterStylingProps(rest, overStyled);
|
|
115
|
+
return (
|
|
116
|
+
<MuiTableHead
|
|
117
|
+
ref={ref}
|
|
118
|
+
{...(sanitizedProps as unknown as MuiTableHeadProps)}
|
|
119
|
+
/>
|
|
120
|
+
);
|
|
121
|
+
});
|
|
122
|
+
TableHeadComponent.displayName = "TableHead";
|
|
123
|
+
|
|
124
|
+
export type TableRowPropsRecursica = RecursicaOverStyled<MuiTableRowProps>;
|
|
125
|
+
|
|
126
|
+
export const TableRowComponent = forwardRef<
|
|
127
|
+
HTMLTableRowElement,
|
|
128
|
+
TableRowPropsRecursica
|
|
129
|
+
>(function TableRow({ overStyled = false, ...rest }, ref) {
|
|
130
|
+
const sanitizedProps = filterStylingProps(rest, overStyled);
|
|
131
|
+
return (
|
|
132
|
+
<MuiTableRow
|
|
133
|
+
ref={ref}
|
|
134
|
+
{...(sanitizedProps as unknown as MuiTableRowProps)}
|
|
135
|
+
/>
|
|
136
|
+
);
|
|
137
|
+
});
|
|
138
|
+
TableRowComponent.displayName = "TableRow";
|
|
139
|
+
|
|
140
|
+
export type TableFooterPropsRecursica =
|
|
141
|
+
RecursicaOverStyled<MuiTableFooterProps>;
|
|
142
|
+
|
|
143
|
+
export const TableFooterComponent = forwardRef<
|
|
144
|
+
HTMLTableSectionElement,
|
|
145
|
+
TableFooterPropsRecursica
|
|
146
|
+
>(function TableFooter({ overStyled = false, ...rest }, ref) {
|
|
147
|
+
const sanitizedProps = filterStylingProps(rest, overStyled);
|
|
148
|
+
return (
|
|
149
|
+
<MuiTableFooter
|
|
150
|
+
ref={ref}
|
|
151
|
+
{...(sanitizedProps as unknown as MuiTableFooterProps)}
|
|
152
|
+
/>
|
|
153
|
+
);
|
|
154
|
+
});
|
|
155
|
+
TableFooterComponent.displayName = "TableFooter";
|
|
156
|
+
|
|
157
|
+
export type TableSortLabelPropsRecursica =
|
|
158
|
+
RecursicaOverStyled<MuiTableSortLabelProps>;
|
|
159
|
+
|
|
160
|
+
export const TableSortLabelComponent = forwardRef<
|
|
161
|
+
HTMLSpanElement,
|
|
162
|
+
TableSortLabelPropsRecursica
|
|
163
|
+
>(function TableSortLabel({ overStyled = false, ...rest }, ref) {
|
|
164
|
+
const sanitizedProps = filterStylingProps(rest, overStyled);
|
|
165
|
+
return (
|
|
166
|
+
<MuiTableSortLabel
|
|
167
|
+
ref={ref}
|
|
168
|
+
{...(sanitizedProps as unknown as MuiTableSortLabelProps)}
|
|
169
|
+
/>
|
|
170
|
+
);
|
|
171
|
+
});
|
|
172
|
+
TableSortLabelComponent.displayName = "TableSortLabel";
|
|
173
|
+
|
|
174
|
+
// ==== DOT NOTATION EXPORT ====
|
|
175
|
+
|
|
48
176
|
type TableComponent = typeof TableBase & {
|
|
49
|
-
Body: typeof
|
|
50
|
-
Cell: typeof
|
|
51
|
-
Container: typeof
|
|
52
|
-
Head: typeof
|
|
53
|
-
Row: typeof
|
|
54
|
-
Footer: typeof
|
|
55
|
-
SortLabel: typeof
|
|
177
|
+
Body: typeof TableBodyComponent;
|
|
178
|
+
Cell: typeof TableCellComponent;
|
|
179
|
+
Container: typeof TableContainerComponent;
|
|
180
|
+
Head: typeof TableHeadComponent;
|
|
181
|
+
Row: typeof TableRowComponent;
|
|
182
|
+
Footer: typeof TableFooterComponent;
|
|
183
|
+
SortLabel: typeof TableSortLabelComponent;
|
|
56
184
|
};
|
|
57
185
|
|
|
58
186
|
export const Table = TableBase as TableComponent;
|
|
59
|
-
Table.Body =
|
|
60
|
-
Table.Cell =
|
|
61
|
-
Table.Container =
|
|
62
|
-
Table.Head =
|
|
63
|
-
Table.Row =
|
|
64
|
-
Table.Footer =
|
|
65
|
-
Table.SortLabel =
|
|
187
|
+
Table.Body = TableBodyComponent;
|
|
188
|
+
Table.Cell = TableCellComponent;
|
|
189
|
+
Table.Container = TableContainerComponent;
|
|
190
|
+
Table.Head = TableHeadComponent;
|
|
191
|
+
Table.Row = TableRowComponent;
|
|
192
|
+
Table.Footer = TableFooterComponent;
|
|
193
|
+
Table.SortLabel = TableSortLabelComponent;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Table - Usage Guide
|
|
2
|
+
|
|
3
|
+
This document describes how to integrate and use the `Table` component in your projects using `@recursica/mui-adapter`.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Import Reference
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
import { Table } from "@recursica/mui-adapter";
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 2. Basic Example
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
import React from 'react';
|
|
19
|
+
import { Table } from "@recursica/mui-adapter";
|
|
20
|
+
|
|
21
|
+
export default function Demo() {
|
|
22
|
+
return (
|
|
23
|
+
<Table>
|
|
24
|
+
<Table.Thead>
|
|
25
|
+
<Table.Tr>
|
|
26
|
+
<Table.Th>Name</Table.Th>
|
|
27
|
+
<Table.Th>Email</Table.Tr>
|
|
28
|
+
</Table.Tr>
|
|
29
|
+
</Table.Thead>
|
|
30
|
+
<Table.Tbody>
|
|
31
|
+
<Table.Tr>
|
|
32
|
+
<Table.Td>Jane Doe</Table.Tr>
|
|
33
|
+
<Table.Td>jane@example.com</Table.Tr>
|
|
34
|
+
</Table.Tr>
|
|
35
|
+
</Table.Tbody>
|
|
36
|
+
</Table>
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 3. Design System Integration
|
|
44
|
+
|
|
45
|
+
All Recursica components in the `@recursica/mui-adapter` package adhere strictly to design system spacing, scaling, and behavior patterns.
|
|
46
|
+
|
|
47
|
+
> [!IMPORTANT]
|
|
48
|
+
>
|
|
49
|
+
> - **Anti-override protection**: Rogues style injections (like inline `style` or arbitrary `className`) are automatically blocked by our prop layer unless `overStyled={true}` is explicitly provided.
|
|
50
|
+
> - **No Direct Layers**: Do not pass a `layer` prop to this component. To place it on a specific visual layer, wrap it in a `<Layer layer={0|1|2|3}>` component natively.
|
|
51
|
+
> - **Variables and Theming**: Styling is entirely determined by local CSS variables defined in `recursica_variables_scoped.css` and mapped in the component's CSS module.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Tabs - Usage Guide
|
|
2
|
+
|
|
3
|
+
This document describes how to integrate and use the `Tabs` component in your projects using `@recursica/mui-adapter`.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Import Reference
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
import { Tabs } from "@recursica/mui-adapter";
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 2. Basic Example
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
import React from "react";
|
|
19
|
+
import { Tabs } from "@recursica/mui-adapter";
|
|
20
|
+
|
|
21
|
+
export default function Demo() {
|
|
22
|
+
return (
|
|
23
|
+
<Tabs defaultValue="home">
|
|
24
|
+
<Tabs.List>
|
|
25
|
+
<Tabs.Tab value="home">Home</Tabs.Tab>
|
|
26
|
+
<Tabs.Tab value="profile">Profile</Tabs.Tab>
|
|
27
|
+
</Tabs.List>
|
|
28
|
+
<Tabs.Panel value="home">Home content</Tabs.Panel>
|
|
29
|
+
<Tabs.Panel value="profile">Profile content</Tabs.Panel>
|
|
30
|
+
</Tabs>
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 3. Design System Integration
|
|
38
|
+
|
|
39
|
+
All Recursica components in the `@recursica/mui-adapter` package adhere strictly to design system spacing, scaling, and behavior patterns.
|
|
40
|
+
|
|
41
|
+
> [!IMPORTANT]
|
|
42
|
+
>
|
|
43
|
+
> - **Anti-override protection**: Rogues style injections (like inline `style` or arbitrary `className`) are automatically blocked by our prop layer unless `overStyled={true}` is explicitly provided.
|
|
44
|
+
> - **No Direct Layers**: Do not pass a `layer` prop to this component. To place it on a specific visual layer, wrap it in a `<Layer layer={0|1|2|3}>` component natively.
|
|
45
|
+
> - **Variables and Theming**: Styling is entirely determined by local CSS variables defined in `recursica_variables_scoped.css` and mapped in the component's CSS module.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 4. Key Integration Features & Constraints
|
|
50
|
+
|
|
51
|
+
- **Compositional API Dropped:** Mantine uses `<Tabs.List>`, `<Tabs.Tab>`, and `<Tabs.Panel>` natively with implicit context from `<Tabs>`. MUI relies on `@mui/lab/TabContext` and separates `Tabs` and `TabPanel`.
|
|
52
|
+
- **Monolithic API Adopted:** Following architectural review, we have opted to drop the broken dot-notation wrappers for `mui-adapter`. We now natively export `Tabs` (MUI List), `Tab` (MUI Item), and `TabPanel` (from `@mui/lab`). Developers must use `TabContext` (from `@mui/lab`) to manage state, just like native MUI. Storybook and visual regression tests have been updated to reflect this divergence while retaining core property mapping compatibility.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Text - Usage Guide
|
|
2
|
+
|
|
3
|
+
This document describes how to integrate and use the `Text` component in your projects using `@recursica/mui-adapter`.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Import Reference
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
import { Text } from "@recursica/mui-adapter";
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 2. Basic Example
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
import React from "react";
|
|
19
|
+
import { Text } from "@recursica/mui-adapter";
|
|
20
|
+
|
|
21
|
+
export default function Demo() {
|
|
22
|
+
return (
|
|
23
|
+
<Text size="md" color="dimmed">
|
|
24
|
+
This is some styled body text.
|
|
25
|
+
</Text>
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 3. Design System Integration
|
|
33
|
+
|
|
34
|
+
All Recursica components in the `@recursica/mui-adapter` package adhere strictly to design system spacing, scaling, and behavior patterns.
|
|
35
|
+
|
|
36
|
+
> [!IMPORTANT]
|
|
37
|
+
>
|
|
38
|
+
> - **Anti-override protection**: Rogues style injections (like inline `style` or arbitrary `className`) are automatically blocked by our prop layer unless `overStyled={true}` is explicitly provided.
|
|
39
|
+
> - **No Direct Layers**: Do not pass a `layer` prop to this component. To place it on a specific visual layer, wrap it in a `<Layer layer={0|1|2|3}>` component natively.
|
|
40
|
+
> - **Variables and Theming**: Styling is entirely determined by local CSS variables defined in `recursica_variables_scoped.css` and mapped in the component's CSS module.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# TextArea - Usage Guide
|
|
2
|
+
|
|
3
|
+
This document describes how to integrate and use the `TextArea` component in your projects using `@recursica/mui-adapter`.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Import Reference
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
import { TextArea } from "@recursica/mui-adapter";
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 2. Basic Example
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
import React from "react";
|
|
19
|
+
import { TextArea } from "@recursica/mui-adapter";
|
|
20
|
+
|
|
21
|
+
export default function Demo() {
|
|
22
|
+
return (
|
|
23
|
+
<TextArea label="Comments" placeholder="Leave your comments here..." />
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 3. Design System Integration
|
|
31
|
+
|
|
32
|
+
All Recursica components in the `@recursica/mui-adapter` package adhere strictly to design system spacing, scaling, and behavior patterns.
|
|
33
|
+
|
|
34
|
+
> [!IMPORTANT]
|
|
35
|
+
>
|
|
36
|
+
> - **Anti-override protection**: Rogues style injections (like inline `style` or arbitrary `className`) are automatically blocked by our prop layer unless `overStyled={true}` is explicitly provided.
|
|
37
|
+
> - **No Direct Layers**: Do not pass a `layer` prop to this component. To place it on a specific visual layer, wrap it in a `<Layer layer={0|1|2|3}>` component natively.
|
|
38
|
+
> - **Variables and Theming**: Styling is entirely determined by local CSS variables defined in `recursica_variables_scoped.css` and mapped in the component's CSS module.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# TextField - Usage Guide
|
|
2
|
+
|
|
3
|
+
This document describes how to integrate and use the `TextField` component in your projects using `@recursica/mui-adapter`.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Import Reference
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
import { TextField } from "@recursica/mui-adapter";
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 2. Basic Example
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
import React from "react";
|
|
19
|
+
import { TextField } from "@recursica/mui-adapter";
|
|
20
|
+
|
|
21
|
+
export default function Demo() {
|
|
22
|
+
return (
|
|
23
|
+
<TextField label="Username" placeholder="Enter your username" required />
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 3. Design System Integration
|
|
31
|
+
|
|
32
|
+
All Recursica components in the `@recursica/mui-adapter` package adhere strictly to design system spacing, scaling, and behavior patterns.
|
|
33
|
+
|
|
34
|
+
> [!IMPORTANT]
|
|
35
|
+
>
|
|
36
|
+
> - **Anti-override protection**: Rogues style injections (like inline `style` or arbitrary `className`) are automatically blocked by our prop layer unless `overStyled={true}` is explicitly provided.
|
|
37
|
+
> - **No Direct Layers**: Do not pass a `layer` prop to this component. To place it on a specific visual layer, wrap it in a `<Layer layer={0|1|2|3}>` component natively.
|
|
38
|
+
> - **Variables and Theming**: Styling is entirely determined by local CSS variables defined in `recursica_variables_scoped.css` and mapped in the component's CSS module.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# TimePicker - Usage Guide
|
|
2
|
+
|
|
3
|
+
This document describes how to integrate and use the `TimePicker` component in your projects using `@recursica/mui-adapter`.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Import Reference
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
import { TimePicker } from "@recursica/mui-adapter";
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 2. Basic Example
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
import React from "react";
|
|
19
|
+
import { TimePicker } from "@recursica/mui-adapter";
|
|
20
|
+
|
|
21
|
+
export default function Demo() {
|
|
22
|
+
return <TimePicker label="Select Time" placeholder="Pick a time" />;
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 3. Design System Integration
|
|
29
|
+
|
|
30
|
+
All Recursica components in the `@recursica/mui-adapter` package adhere strictly to design system spacing, scaling, and behavior patterns.
|
|
31
|
+
|
|
32
|
+
> [!IMPORTANT]
|
|
33
|
+
>
|
|
34
|
+
> - **Anti-override protection**: Rogues style injections (like inline `style` or arbitrary `className`) are automatically blocked by our prop layer unless `overStyled={true}` is explicitly provided.
|
|
35
|
+
> - **No Direct Layers**: Do not pass a `layer` prop to this component. To place it on a specific visual layer, wrap it in a `<Layer layer={0|1|2|3}>` component natively.
|
|
36
|
+
> - **Variables and Theming**: Styling is entirely determined by local CSS variables defined in `recursica_variables_scoped.css` and mapped in the component's CSS module.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Timeline - Usage Guide
|
|
2
|
+
|
|
3
|
+
This document describes how to integrate and use the `Timeline` component in your projects using `@recursica/mui-adapter`.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Import Reference
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
import { Timeline } from "@recursica/mui-adapter";
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 2. Basic Example
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
import React from "react";
|
|
19
|
+
import { Timeline } from "@recursica/mui-adapter";
|
|
20
|
+
|
|
21
|
+
export default function Demo() {
|
|
22
|
+
return (
|
|
23
|
+
<Timeline active={1}>
|
|
24
|
+
<Timeline.Item title="Step 1">Created branch</Timeline.Item>
|
|
25
|
+
<Timeline.Item title="Step 2">Pushed changes</Timeline.Item>
|
|
26
|
+
</Timeline>
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 3. Design System Integration
|
|
34
|
+
|
|
35
|
+
All Recursica components in the `@recursica/mui-adapter` package adhere strictly to design system spacing, scaling, and behavior patterns.
|
|
36
|
+
|
|
37
|
+
> [!IMPORTANT]
|
|
38
|
+
>
|
|
39
|
+
> - **Anti-override protection**: Rogues style injections (like inline `style` or arbitrary `className`) are automatically blocked by our prop layer unless `overStyled={true}` is explicitly provided.
|
|
40
|
+
> - **No Direct Layers**: Do not pass a `layer` prop to this component. To place it on a specific visual layer, wrap it in a `<Layer layer={0|1|2|3}>` component natively.
|
|
41
|
+
> - **Variables and Theming**: Styling is entirely determined by local CSS variables defined in `recursica_variables_scoped.css` and mapped in the component's CSS module.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Title - Usage Guide
|
|
2
|
+
|
|
3
|
+
This document describes how to integrate and use the `Title` component in your projects using `@recursica/mui-adapter`.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Import Reference
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
import { Title } from "@recursica/mui-adapter";
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 2. Basic Example
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
import React from "react";
|
|
19
|
+
import { Title } from "@recursica/mui-adapter";
|
|
20
|
+
|
|
21
|
+
export default function Demo() {
|
|
22
|
+
return <Title order={1}>This is a Heading 1</Title>;
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 3. Design System Integration
|
|
29
|
+
|
|
30
|
+
All Recursica components in the `@recursica/mui-adapter` package adhere strictly to design system spacing, scaling, and behavior patterns.
|
|
31
|
+
|
|
32
|
+
> [!IMPORTANT]
|
|
33
|
+
>
|
|
34
|
+
> - **Anti-override protection**: Rogues style injections (like inline `style` or arbitrary `className`) are automatically blocked by our prop layer unless `overStyled={true}` is explicitly provided.
|
|
35
|
+
> - **No Direct Layers**: Do not pass a `layer` prop to this component. To place it on a specific visual layer, wrap it in a `<Layer layer={0|1|2|3}>` component natively.
|
|
36
|
+
> - **Variables and Theming**: Styling is entirely determined by local CSS variables defined in `recursica_variables_scoped.css` and mapped in the component's CSS module.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Toast - Usage Guide
|
|
2
|
+
|
|
3
|
+
This document describes how to integrate and use the `Toast` component in your projects using `@recursica/mui-adapter`.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Import Reference
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
import { Toast } from "@recursica/mui-adapter";
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 2. Basic Example
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
import React from "react";
|
|
19
|
+
import { Toast } from "@recursica/mui-adapter";
|
|
20
|
+
|
|
21
|
+
export default function Demo() {
|
|
22
|
+
return (
|
|
23
|
+
<Toast
|
|
24
|
+
title="Success"
|
|
25
|
+
message="Your action completed successfully"
|
|
26
|
+
state="success"
|
|
27
|
+
/>
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## 3. Design System Integration
|
|
35
|
+
|
|
36
|
+
All Recursica components in the `@recursica/mui-adapter` package adhere strictly to design system spacing, scaling, and behavior patterns.
|
|
37
|
+
|
|
38
|
+
> [!IMPORTANT]
|
|
39
|
+
>
|
|
40
|
+
> - **Anti-override protection**: Rogues style injections (like inline `style` or arbitrary `className`) are automatically blocked by our prop layer unless `overStyled={true}` is explicitly provided.
|
|
41
|
+
> - **No Direct Layers**: Do not pass a `layer` prop to this component. To place it on a specific visual layer, wrap it in a `<Layer layer={0|1|2|3}>` component natively.
|
|
42
|
+
> - **Variables and Theming**: Styling is entirely determined by local CSS variables defined in `recursica_variables_scoped.css` and mapped in the component's CSS module.
|