@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.
Files changed (61) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/OVERSTYLING.md +59 -0
  3. package/USAGE.md +2 -0
  4. package/dist/mui-adapter.cjs +20 -20
  5. package/dist/mui-adapter.cjs.map +1 -1
  6. package/dist/mui-adapter.js +1263 -1186
  7. package/dist/mui-adapter.js.map +1 -1
  8. package/dist/src/components/Table/Table.d.ts +127 -8
  9. package/llms.txt +58 -2
  10. package/package.json +3 -2
  11. package/src/OverStyling.tsx +7 -200
  12. package/src/components/Accordion/USAGE.md +43 -0
  13. package/src/components/AssistiveElement/USAGE.md +36 -0
  14. package/src/components/Autocomplete/USAGE.md +42 -0
  15. package/src/components/Avatar/USAGE.md +38 -0
  16. package/src/components/Badge/USAGE.md +40 -0
  17. package/src/components/Box/USAGE.md +48 -0
  18. package/src/components/Breadcrumb/USAGE.md +42 -0
  19. package/src/components/Button/USAGE.md +58 -0
  20. package/src/components/Card/USAGE.md +69 -0
  21. package/src/components/Checkbox/USAGE.md +36 -0
  22. package/src/components/Chip/USAGE.md +36 -0
  23. package/src/components/Container/USAGE.md +48 -0
  24. package/src/components/DatePicker/USAGE.md +36 -0
  25. package/src/components/Dropdown/USAGE.md +41 -0
  26. package/src/components/FileInput/USAGE.md +36 -0
  27. package/src/components/FileUpload/USAGE.md +41 -0
  28. package/src/components/Flex/USAGE.md +41 -0
  29. package/src/components/FormControlLayout/USAGE.md +40 -0
  30. package/src/components/FormControlWrapper/USAGE.md +40 -0
  31. package/src/components/Group/USAGE.md +41 -0
  32. package/src/components/HoverCard/USAGE.md +45 -0
  33. package/src/components/Label/USAGE.md +36 -0
  34. package/src/components/Link/USAGE.md +40 -0
  35. package/src/components/Loader/USAGE.md +64 -0
  36. package/src/components/Menu/USAGE.md +54 -0
  37. package/src/components/Modal/USAGE.md +40 -0
  38. package/src/components/NumberInput/USAGE.md +36 -0
  39. package/src/components/Pagination/USAGE.md +42 -0
  40. package/src/components/Panel/USAGE.md +103 -0
  41. package/src/components/Radio/USAGE.md +36 -0
  42. package/src/components/ReadOnlyField/USAGE.md +36 -0
  43. package/src/components/SegmentedControl/USAGE.md +36 -0
  44. package/src/components/Slider/USAGE.md +36 -0
  45. package/src/components/Stack/USAGE.md +41 -0
  46. package/src/components/Stepper/USAGE.md +48 -0
  47. package/src/components/Switch/USAGE.md +36 -0
  48. package/src/components/Table/Table.tsx +142 -14
  49. package/src/components/Table/USAGE.md +51 -0
  50. package/src/components/Tabs/USAGE.md +52 -0
  51. package/src/components/Text/USAGE.md +40 -0
  52. package/src/components/TextArea/USAGE.md +38 -0
  53. package/src/components/TextField/USAGE.md +38 -0
  54. package/src/components/TimePicker/USAGE.md +36 -0
  55. package/src/components/Timeline/USAGE.md +41 -0
  56. package/src/components/Title/USAGE.md +36 -0
  57. package/src/components/Toast/USAGE.md +42 -0
  58. package/src/components/Tooltip/USAGE.md +40 -0
  59. package/src/components/TransferList/USAGE.md +46 -0
  60. package/src/components/Tree/USAGE.md +46 -0
  61. 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 MuiTableBody;
50
- Cell: typeof MuiTableCell;
51
- Container: typeof MuiTableContainer;
52
- Head: typeof MuiTableHead;
53
- Row: typeof MuiTableRow;
54
- Footer: typeof MuiTableFooter;
55
- SortLabel: typeof MuiTableSortLabel;
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 = MuiTableBody;
60
- Table.Cell = MuiTableCell;
61
- Table.Container = MuiTableContainer;
62
- Table.Head = MuiTableHead;
63
- Table.Row = MuiTableRow;
64
- Table.Footer = MuiTableFooter;
65
- Table.SortLabel = MuiTableSortLabel;
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.