@recursica/mui-adapter 0.4.0 → 0.6.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 (177) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/mui-adapter.cjs +74 -1
  3. package/dist/mui-adapter.cjs.map +1 -1
  4. package/dist/mui-adapter.css +1 -1
  5. package/dist/mui-adapter.js +6651 -201
  6. package/dist/mui-adapter.js.map +1 -1
  7. package/dist/src/components/Accordion/Accordion.d.ts +63 -2
  8. package/dist/src/components/AssistiveElement/AssistiveElement.d.ts +9 -2
  9. package/dist/src/components/Autocomplete/Autocomplete.d.ts +17 -0
  10. package/dist/src/components/Autocomplete/index.d.ts +1 -0
  11. package/dist/src/components/Avatar/Avatar.d.ts +14 -2
  12. package/dist/src/components/Badge/Badge.d.ts +13 -3
  13. package/dist/src/components/Breadcrumb/Breadcrumb.d.ts +10 -3
  14. package/dist/src/components/Button/Button.d.ts +1 -1
  15. package/dist/src/components/Card/Card.d.ts +40 -3
  16. package/dist/src/components/Checkbox/Checkbox.d.ts +15 -2
  17. package/dist/src/components/Checkbox/CheckboxGroup.d.ts +16 -0
  18. package/dist/src/components/Checkbox/index.d.ts +5 -1
  19. package/dist/src/components/Chip/Chip.d.ts +18 -2
  20. package/dist/src/components/Dropdown/Dropdown.d.ts +23 -3
  21. package/dist/src/components/FormControlLayout/FormControlLayout.d.ts +10 -2
  22. package/dist/src/components/FormControlWrapper/FormControlWrapper.d.ts +24 -2
  23. package/dist/src/components/HoverCard/HoverCard.d.ts +55 -3
  24. package/dist/src/components/Label/Label.d.ts +13 -2
  25. package/dist/src/components/Link/Link.d.ts +1 -1
  26. package/dist/src/components/Menu/Menu.d.ts +99 -3
  27. package/dist/src/components/Modal/Modal.d.ts +36 -2
  28. package/dist/src/components/NumberInput/NumberInput.d.ts +14 -2
  29. package/dist/src/components/Pagination/Pagination.d.ts +44 -2
  30. package/dist/src/components/Pagination/Pagination.icons.d.ts +8 -0
  31. package/dist/src/components/Panel/Panel.d.ts +65 -3
  32. package/dist/src/components/Radio/Radio.d.ts +13 -3
  33. package/dist/src/components/Radio/RadioGroup.d.ts +13 -0
  34. package/dist/src/components/ReadOnlyField/ReadOnlyBooleanField.d.ts +5 -0
  35. package/dist/src/components/ReadOnlyField/ReadOnlyField.d.ts +7 -2
  36. package/dist/src/components/ReadOnlyField/ReadOnlySwitchField.d.ts +5 -0
  37. package/dist/src/components/ReadOnlyField/ReadOnlyTextField.d.ts +8 -0
  38. package/dist/src/components/ReadOnlyField/WithReadOnlyWrapper.d.ts +28 -0
  39. package/dist/src/components/ReadOnlyField/index.d.ts +1 -0
  40. package/dist/src/components/SegmentedControl/SegmentedControl.d.ts +31 -3
  41. package/dist/src/components/Slider/Slider.d.ts +28 -2
  42. package/dist/src/components/Stepper/Stepper.d.ts +21 -2
  43. package/dist/src/components/Switch/Switch.d.ts +10 -3
  44. package/dist/src/components/Switch/SwitchGroup.d.ts +13 -0
  45. package/dist/src/components/Tabs/Tabs.d.ts +35 -3
  46. package/dist/src/components/Text/Text.d.ts +1 -1
  47. package/dist/src/components/TextArea/TextArea.d.ts +18 -2
  48. package/dist/src/components/TextField/TextField.d.ts +16 -2
  49. package/dist/src/components/Timeline/Timeline.d.ts +14 -2
  50. package/dist/src/components/Timeline/TimelineItem.d.ts +29 -0
  51. package/dist/src/components/Title/Title.d.ts +1 -1
  52. package/dist/src/components/Toast/Toast.d.ts +25 -2
  53. package/dist/src/components/Tooltip/Tooltip.d.ts +42 -3
  54. package/dist/src/components/Typography/Typography.d.ts +1 -1
  55. package/dist/src/components/index.d.ts +1 -0
  56. package/package.json +12 -2
  57. package/src/GlobalExemptions.modules.css +13 -0
  58. package/src/components/Accordion/Accordion.module.css +295 -0
  59. package/src/components/Accordion/Accordion.stories.tsx +149 -21
  60. package/src/components/Accordion/Accordion.tsx +264 -4
  61. package/src/components/AssistiveElement/AssistiveElement.module.css +111 -0
  62. package/src/components/AssistiveElement/AssistiveElement.stories.tsx +76 -19
  63. package/src/components/AssistiveElement/AssistiveElement.tsx +85 -4
  64. package/src/components/Autocomplete/Autocomplete.module.css +325 -0
  65. package/src/components/Autocomplete/Autocomplete.stories.tsx +196 -0
  66. package/src/components/Autocomplete/Autocomplete.tsx +201 -0
  67. package/src/components/Autocomplete/index.ts +1 -0
  68. package/src/components/Avatar/Avatar.module.css +344 -0
  69. package/src/components/Avatar/Avatar.stories.tsx +94 -22
  70. package/src/components/Avatar/Avatar.tsx +110 -5
  71. package/src/components/Badge/Badge.module.css +127 -0
  72. package/src/components/Badge/Badge.stories.tsx +65 -22
  73. package/src/components/Badge/Badge.tsx +70 -5
  74. package/src/components/Breadcrumb/Breadcrumb.module.css +26 -0
  75. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +57 -22
  76. package/src/components/Breadcrumb/Breadcrumb.tsx +62 -5
  77. package/src/components/Button/Button.module.css +113 -20
  78. package/src/components/Button/Button.stories.tsx +3 -0
  79. package/src/components/Button/Button.tsx +10 -3
  80. package/src/components/Card/Card.module.css +118 -0
  81. package/src/components/Card/Card.stories.tsx +117 -19
  82. package/src/components/Card/Card.tsx +179 -4
  83. package/src/components/Checkbox/Checkbox.module.css +232 -0
  84. package/src/components/Checkbox/Checkbox.stories.tsx +81 -19
  85. package/src/components/Checkbox/Checkbox.tsx +146 -4
  86. package/src/components/Checkbox/CheckboxGroup.tsx +117 -0
  87. package/src/components/Checkbox/index.ts +6 -1
  88. package/src/components/Chip/Chip.module.css +236 -0
  89. package/src/components/Chip/Chip.stories.tsx +101 -21
  90. package/src/components/Chip/Chip.tsx +138 -5
  91. package/src/components/DatePicker/DatePicker.module.css +42 -0
  92. package/src/components/DatePicker/DatePicker.tsx +1 -0
  93. package/src/components/Dropdown/Dropdown.module.css +296 -0
  94. package/src/components/Dropdown/Dropdown.stories.tsx +80 -21
  95. package/src/components/Dropdown/Dropdown.tsx +182 -5
  96. package/src/components/FileInput/FileInput.module.css +47 -0
  97. package/src/components/FileInput/FileInput.tsx +1 -0
  98. package/src/components/FileUpload/FileUpload.module.css +40 -0
  99. package/src/components/FileUpload/FileUpload.tsx +1 -0
  100. package/src/components/FormControlLayout/FormControlLayout.module.css +92 -0
  101. package/src/components/FormControlLayout/FormControlLayout.stories.tsx +74 -19
  102. package/src/components/FormControlLayout/FormControlLayout.tsx +58 -4
  103. package/src/components/FormControlWrapper/FormControlWrapper.module.css +96 -0
  104. package/src/components/FormControlWrapper/FormControlWrapper.stories.tsx +122 -19
  105. package/src/components/FormControlWrapper/FormControlWrapper.tsx +145 -6
  106. package/src/components/HoverCard/HoverCard.module.css +91 -0
  107. package/src/components/HoverCard/HoverCard.stories.tsx +158 -21
  108. package/src/components/HoverCard/HoverCard.tsx +150 -4
  109. package/src/components/Label/Label.module.css +136 -0
  110. package/src/components/Label/Label.stories.tsx +98 -17
  111. package/src/components/Label/Label.tsx +88 -4
  112. package/src/components/Link/Link.module.css +8 -0
  113. package/src/components/Menu/Menu.module.css +287 -0
  114. package/src/components/Menu/Menu.stories.tsx +307 -21
  115. package/src/components/Menu/Menu.tsx +318 -4
  116. package/src/components/Modal/Modal.module.css +172 -0
  117. package/src/components/Modal/Modal.stories.tsx +66 -22
  118. package/src/components/Modal/Modal.tsx +216 -3
  119. package/src/components/NumberInput/NumberInput.module.css +281 -0
  120. package/src/components/NumberInput/NumberInput.stories.tsx +83 -20
  121. package/src/components/NumberInput/NumberInput.tsx +148 -5
  122. package/src/components/Pagination/Pagination.icons.tsx +66 -0
  123. package/src/components/Pagination/Pagination.module.css +307 -0
  124. package/src/components/Pagination/Pagination.stories.tsx +42 -21
  125. package/src/components/Pagination/Pagination.tsx +193 -4
  126. package/src/components/Panel/Panel.module.css +206 -0
  127. package/src/components/Panel/Panel.stories.tsx +214 -22
  128. package/src/components/Panel/Panel.tsx +153 -4
  129. package/src/components/Radio/Radio.module.css +220 -0
  130. package/src/components/Radio/Radio.stories.tsx +77 -19
  131. package/src/components/Radio/Radio.tsx +178 -4
  132. package/src/components/Radio/RadioGroup.tsx +111 -0
  133. package/src/components/ReadOnlyField/ReadOnlyBooleanField.tsx +21 -0
  134. package/src/components/ReadOnlyField/ReadOnlyField.module.css +54 -0
  135. package/src/components/ReadOnlyField/ReadOnlyField.stories.tsx +175 -16
  136. package/src/components/ReadOnlyField/ReadOnlyField.tsx +109 -4
  137. package/src/components/ReadOnlyField/ReadOnlySwitchField.tsx +21 -0
  138. package/src/components/ReadOnlyField/ReadOnlyTextField.tsx +48 -0
  139. package/src/components/ReadOnlyField/WithReadOnlyWrapper.tsx +93 -0
  140. package/src/components/ReadOnlyField/index.ts +1 -0
  141. package/src/components/SegmentedControl/SegmentedControl.module.css +203 -0
  142. package/src/components/SegmentedControl/SegmentedControl.stories.tsx +102 -20
  143. package/src/components/SegmentedControl/SegmentedControl.tsx +110 -5
  144. package/src/components/Slider/Slider.module.css +542 -0
  145. package/src/components/Slider/Slider.stories.tsx +157 -19
  146. package/src/components/Slider/Slider.tsx +282 -4
  147. package/src/components/Stepper/Stepper.module.css +410 -0
  148. package/src/components/Stepper/Stepper.stories.tsx +132 -19
  149. package/src/components/Stepper/Stepper.tsx +145 -5
  150. package/src/components/Switch/Switch.module.css +238 -0
  151. package/src/components/Switch/Switch.stories.tsx +98 -19
  152. package/src/components/Switch/Switch.tsx +153 -5
  153. package/src/components/Switch/SwitchGroup.tsx +111 -0
  154. package/src/components/Tabs/Tabs.module.css +422 -0
  155. package/src/components/Tabs/Tabs.stories.tsx +138 -19
  156. package/src/components/Tabs/Tabs.tsx +103 -5
  157. package/src/components/TextArea/TextArea.module.css +160 -0
  158. package/src/components/TextArea/TextArea.stories.tsx +80 -21
  159. package/src/components/TextArea/TextArea.tsx +156 -5
  160. package/src/components/TextField/TextField.module.css +266 -0
  161. package/src/components/TextField/TextField.stories.tsx +168 -15
  162. package/src/components/TextField/TextField.tsx +171 -5
  163. package/src/components/TimePicker/TimePicker.module.css +41 -0
  164. package/src/components/TimePicker/TimePicker.tsx +1 -0
  165. package/src/components/Timeline/Timeline.module.css +367 -0
  166. package/src/components/Timeline/Timeline.stories.tsx +114 -21
  167. package/src/components/Timeline/Timeline.tsx +80 -4
  168. package/src/components/Timeline/TimelineItem.tsx +101 -0
  169. package/src/components/Toast/Toast.module.css +170 -0
  170. package/src/components/Toast/Toast.stories.tsx +54 -22
  171. package/src/components/Toast/Toast.tsx +90 -4
  172. package/src/components/Tooltip/Tooltip.module.css +90 -0
  173. package/src/components/Tooltip/Tooltip.stories.tsx +152 -22
  174. package/src/components/Tooltip/Tooltip.tsx +114 -4
  175. package/src/components/TransferList/TransferList.module.css +38 -0
  176. package/src/components/TransferList/TransferList.tsx +1 -0
  177. package/src/components/index.ts +1 -0
@@ -1,3 +1,45 @@
1
1
  import { default as React } from 'react';
2
- export type PaginationProps = React.HTMLAttributes<HTMLDivElement>;
3
- export declare const Pagination: React.FC<PaginationProps>;
2
+ import { Pagination as MuiPagination, PaginationProps as MuiPaginationProps, PaginationRootProps as MuiPaginationRootProps } from '@mui/material';
3
+ import { RecursicaOverStyled } from '../../utils/filterStylingProps';
4
+ import { PaginationIcon } from './Pagination.icons';
5
+ export type PaginationProps = RecursicaOverStyled<MuiPaginationProps> & {
6
+ /** If set to true, displays text labels alongside the icons for next/previous/first/last edges. */
7
+ withLabels?: boolean;
8
+ };
9
+ export type PaginationRootProps = RecursicaOverStyled<MuiPaginationRootProps>;
10
+ export type PaginationEdgeProps<T extends React.ElementType> = React.ComponentProps<T> & {
11
+ /** If set to true, displays text labels alongside the icon. */
12
+ withLabel?: boolean;
13
+ icon?: any;
14
+ };
15
+ declare const _PaginationRoot: React.ForwardRefExoticComponent<any>;
16
+ declare const _PaginationNext: React.ForwardRefExoticComponent<any>;
17
+ declare const _PaginationPrevious: React.ForwardRefExoticComponent<any>;
18
+ declare const _PaginationFirst: React.ForwardRefExoticComponent<any>;
19
+ declare const _PaginationLast: React.ForwardRefExoticComponent<any>;
20
+ declare const _Pagination: React.ForwardRefExoticComponent<(Omit<Omit<MuiPaginationProps, "className" | "classes" | "style" | "sx" | "color" | "bgcolor" | "backgroundColor" | "typography" | "fontFamily" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "textAlign" | "border" | "borderTop" | "borderBottom" | "borderLeft" | "borderRight" | "borderColor" | "borderRadius" | "boxShadow" | "display" | "position" | "zIndex"> & import('../../utils/filterStylingProps').ForbiddenStyles & {
21
+ overStyled?: false | undefined;
22
+ } & {
23
+ /** If set to true, displays text labels alongside the icons for next/previous/first/last edges. */
24
+ withLabels?: boolean;
25
+ }, "ref"> | Omit<MuiPaginationProps & {
26
+ overStyled: true;
27
+ } & {
28
+ /** If set to true, displays text labels alongside the icons for next/previous/first/last edges. */
29
+ withLabels?: boolean;
30
+ }, "ref">) & React.RefAttributes<HTMLDivElement>>;
31
+ /**
32
+ * Recursica Pagination component wrapping Mui's Pagination.
33
+ */
34
+ export declare const Pagination: typeof _Pagination & {
35
+ Root: typeof _PaginationRoot;
36
+ Items: typeof MuiPagination.Items;
37
+ Control: typeof MuiPagination.Control;
38
+ Dots: typeof MuiPagination.Dots;
39
+ Next: typeof _PaginationNext;
40
+ Previous: typeof _PaginationPrevious;
41
+ First: typeof _PaginationFirst;
42
+ Last: typeof _PaginationLast;
43
+ Icon: typeof PaginationIcon;
44
+ };
45
+ export {};
@@ -0,0 +1,8 @@
1
+ export type PaginationIconType = "next" | "prev" | "first" | "last";
2
+ export declare const PaginationIcon: ({ type, className, ...props }: React.ComponentProps<"svg"> & {
3
+ type: PaginationIconType;
4
+ }) => import("react/jsx-runtime").JSX.Element;
5
+ export declare const NextWithLabel: (props: any) => import("react/jsx-runtime").JSX.Element;
6
+ export declare const PrevWithLabel: (props: any) => import("react/jsx-runtime").JSX.Element;
7
+ export declare const FirstWithLabel: (props: any) => import("react/jsx-runtime").JSX.Element;
8
+ export declare const LastWithLabel: (props: any) => import("react/jsx-runtime").JSX.Element;
@@ -1,3 +1,65 @@
1
- import { default as React } from 'react';
2
- export type PanelProps = React.HTMLAttributes<HTMLDivElement>;
3
- export declare const Panel: React.FC<PanelProps>;
1
+ import { Drawer as MuiDrawer, DrawerProps as MuiDrawerProps } from '@mui/material';
2
+ import { RecursicaOverStyled } from '../../utils/filterStylingProps';
3
+ export interface RecursicaPanelProps extends MuiDrawerProps {
4
+ /**
5
+ * If true, forces the header text to a single line and truncates with an ellipsis.
6
+ * Note: While the prop is named `wrapHeaderText` for backward compatibility,
7
+ * setting it to `true` actually PREVENTS wrapping (it forces truncation).
8
+ */
9
+ wrapHeaderText?: boolean;
10
+ }
11
+ /**
12
+ * Recursica Panel root props. Extends Mui Drawer.
13
+ */
14
+ export type PanelProps = RecursicaOverStyled<RecursicaPanelProps>;
15
+ /**
16
+ * Recursica Panel component wrapping Mui's Drawer.
17
+ *
18
+ * Panels slide in or expand from the edge of the screen to reveal
19
+ * additional content or functionality. They are commonly used to provide
20
+ * supplementary information, navigation options, or toolsets without
21
+ * cluttering the main interface.
22
+ *
23
+ * ```tsx
24
+ * <Panel opened={opened} onClose={close} title="Panel Title" position="right">
25
+ * <Panel.Body>
26
+ * Content goes here
27
+ * </Panel.Body>
28
+ * </Panel>
29
+ * ```
30
+ *
31
+ * Mui Drawer sub-components available via dot-notation:
32
+ * - `Panel.Header` — Top section with title and close button
33
+ * - `Panel.Title` — Title text within the header
34
+ * - `Panel.CloseButton` — Close button within the header
35
+ * - `Panel.Body` — Scrollable body content area
36
+ * - `Panel.Content` — Outer content container
37
+ * - `Panel.Overlay` — Background overlay
38
+ * - `Panel.Root` — Root element for advanced composition
39
+ * - `Panel.Stack` — Stacked drawer context
40
+ */
41
+ declare const PanelBase: {
42
+ ({ overStyled, position, keepMounted, wrapHeaderText, ...rest }: PanelProps): import("react/jsx-runtime").JSX.Element;
43
+ displayName: string;
44
+ };
45
+ export type PanelFooterProps = RecursicaOverStyled<React.HTMLAttributes<HTMLDivElement>>;
46
+ /**
47
+ * Panel footer section with action buttons.
48
+ * Separated from the body by a divider. Remains fixed at the bottom.
49
+ * This is a Recursica-specific sub-component; Mui Drawer does not
50
+ * natively provide a footer.
51
+ */
52
+ export declare const PanelFooter: import('react').ForwardRefExoticComponent<PanelFooterProps & import('react').RefAttributes<HTMLDivElement>>;
53
+ type PanelComponent = typeof PanelBase & {
54
+ Root: typeof MuiDrawer.Root;
55
+ Overlay: typeof MuiDrawer.Overlay;
56
+ Content: typeof MuiDrawer.Content;
57
+ Header: typeof MuiDrawer.Header;
58
+ Title: typeof MuiDrawer.Title;
59
+ CloseButton: typeof MuiDrawer.CloseButton;
60
+ Body: typeof MuiDrawer.Body;
61
+ Stack: typeof MuiDrawer.Stack;
62
+ Footer: typeof PanelFooter;
63
+ };
64
+ export declare const Panel: PanelComponent;
65
+ export {};
@@ -1,3 +1,13 @@
1
- import { default as React } from 'react';
2
- export type RadioProps = React.HTMLAttributes<HTMLDivElement>;
3
- export declare const Radio: React.FC<RadioProps>;
1
+ import { RadioProps as MuiRadioProps } from '@mui/material';
2
+ import { ReadOnlyControlProps } from '@recursica/adapter-common';
3
+ import { RadioGroup } from './RadioGroup';
4
+ import { RecursicaOverStyled } from '../../utils/filterStylingProps';
5
+ import { RequireAccessibleLabel } from '../../utils/RequireAccessibleLabel';
6
+ import { FormControlLayoutProps } from '../FormControlLayout/FormControlLayout';
7
+ export type RecursicaRadioProps = RequireAccessibleLabel<Omit<MuiRadioProps, "size" | "color"> & ReadOnlyControlProps & Pick<FormControlLayoutProps, "formLayout" | "labelSize" | "controlMaxWidth" | "controlMinWidth">>;
8
+ export type RadioProps = RecursicaOverStyled<RecursicaRadioProps>;
9
+ type RadioComponent = React.ForwardRefExoticComponent<RadioProps & React.RefAttributes<HTMLInputElement>> & {
10
+ Group: typeof RadioGroup;
11
+ };
12
+ export declare const Radio: RadioComponent;
13
+ export {};
@@ -0,0 +1,13 @@
1
+ import { default as React } from 'react';
2
+ import { RadioGroupProps as MuiRadioGroupProps } from '@mui/material';
3
+ import { ReadOnlyControlProps } from '@recursica/adapter-common';
4
+ import { RecursicaOverStyled } from '../../utils/filterStylingProps';
5
+ import { RecursicaFormControlWrapperProps } from '../FormControlWrapper/FormControlWrapper';
6
+ export interface RecursicaRadioGroupProps extends Omit<MuiRadioGroupProps, "size" | "labelProps">, Omit<RecursicaFormControlWrapperProps, "controlMaxWidth" | "controlMinWidth">, ReadOnlyControlProps {
7
+ }
8
+ export type RadioGroupProps = RecursicaOverStyled<RecursicaRadioGroupProps>;
9
+ export declare const RadioGroup: React.ForwardRefExoticComponent<(Omit<Omit<RecursicaRadioGroupProps, "className" | "classes" | "style" | "sx" | "color" | "bgcolor" | "backgroundColor" | "typography" | "fontFamily" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "textAlign" | "border" | "borderTop" | "borderBottom" | "borderLeft" | "borderRight" | "borderColor" | "borderRadius" | "boxShadow" | "display" | "position" | "zIndex"> & import('../../utils/filterStylingProps').ForbiddenStyles & {
10
+ overStyled?: false | undefined;
11
+ }, "ref"> | Omit<RecursicaRadioGroupProps & {
12
+ overStyled: true;
13
+ }, "ref">) & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,5 @@
1
+ import { default as React } from 'react';
2
+ export declare const ReadOnlyBooleanField: React.FC<{
3
+ checked: boolean;
4
+ label?: React.ReactNode;
5
+ }>;
@@ -1,3 +1,8 @@
1
1
  import { default as React } from 'react';
2
- export type ReadOnlyFieldProps = React.HTMLAttributes<HTMLDivElement>;
3
- export declare const ReadOnlyField: React.FC<ReadOnlyFieldProps>;
2
+ import { ReadOnlyControlProps } from '@recursica/adapter-common';
3
+ import { RecursicaFormControlWrapperProps } from '../FormControlWrapper/FormControlWrapper';
4
+ export type ReadOnlyFieldProps = Omit<RecursicaFormControlWrapperProps, "error" | "focused"> & ReadOnlyControlProps & {
5
+ value?: any;
6
+ type?: "text" | "boolean" | "number" | "switch" | "date";
7
+ };
8
+ export declare const ReadOnlyField: React.ForwardRefExoticComponent<Omit<ReadOnlyFieldProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,5 @@
1
+ import { default as React } from 'react';
2
+ export declare const ReadOnlySwitchField: React.FC<{
3
+ checked: boolean;
4
+ label?: React.ReactNode;
5
+ }>;
@@ -0,0 +1,8 @@
1
+ import { default as React } from 'react';
2
+ import { RecursicaOverStyled } from '../../utils/filterStylingProps';
3
+ export interface RecursicaReadOnlyTextFieldProps {
4
+ /** The value strictly rendered as text output */
5
+ value?: any;
6
+ }
7
+ export type ReadOnlyTextFieldProps = RecursicaOverStyled<RecursicaReadOnlyTextFieldProps>;
8
+ export declare const ReadOnlyTextField: React.FC<ReadOnlyTextFieldProps>;
@@ -0,0 +1,28 @@
1
+ import { default as React } from 'react';
2
+ import { ReadOnlyFieldType } from '@recursica/adapter-common';
3
+ import { FormControlWrapperProps } from '../FormControlWrapper/FormControlWrapper';
4
+ export interface WithReadOnlyWrapperProps extends Omit<FormControlWrapperProps, "children" | "overStyled"> {
5
+ /** Injects whether the field defaults to reading mode natively */
6
+ readOnly?: boolean;
7
+ /** Explicit React component directly overtaking the baseline text renderer when read-only mode is active */
8
+ readOnlyComponent?: React.ElementType<any>;
9
+ /** Custom renderer explicitly responsible for formatting missing/empty value mappings (overriding default 'N/A') */
10
+ emptyValueComponent?: React.ElementType<{
11
+ value?: any;
12
+ }>;
13
+ /** The full native props dictionary securely forwarded into the custom readOnlyComponent if active */
14
+ readOnlyNativeProps?: any;
15
+ /** Instructs the underlying generic ReadOnlyField which raw visual structure to bridge automatically */
16
+ readOnlyType?: ReadOnlyFieldType;
17
+ /** The isolated raw data value intercepted explicitly into the ReadOnly formatters */
18
+ readOnlyValue?: any;
19
+ /** Safely enables deep overrides transparently bypassing block filters */
20
+ overStyled?: boolean;
21
+ /** The nested active node dynamically exposed exclusively when read-only bounds are disabled */
22
+ activeComponent: React.ReactNode;
23
+ }
24
+ /**
25
+ * Universal execution barrier trapping readOnly states globally.
26
+ * Natively delegates active logic down avoiding duplicative internal component bindings dynamically.
27
+ */
28
+ export declare const WithReadOnlyWrapper: React.ForwardRefExoticComponent<Omit<WithReadOnlyWrapperProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
@@ -1 +1,2 @@
1
1
  export * from './ReadOnlyField';
2
+ export * from './WithReadOnlyWrapper';
@@ -1,3 +1,31 @@
1
- import { default as React } from 'react';
2
- export type SegmentedControlProps = React.HTMLAttributes<HTMLDivElement>;
3
- export declare const SegmentedControl: React.FC<SegmentedControlProps>;
1
+ import { ToggleButtonGroupProps as MuiSegmentedControlProps } from '@mui/material';
2
+ import { RecursicaOverStyled } from '../../utils/filterStylingProps';
3
+ export interface RecursicaSegmentedControlProps {
4
+ /** The orientation of the control */
5
+ orientation?: "horizontal" | "vertical";
6
+ /** If true, the control will take up the full width of its container */
7
+ fullWidth?: boolean;
8
+ /**
9
+ * SegmentedControl should NOT be allowed to be disabled by design.
10
+ * This component explicitly disables the `disabled` prop.
11
+ */
12
+ disabled?: never;
13
+ }
14
+ export type SegmentedControlProps = RecursicaOverStyled<Omit<MuiSegmentedControlProps, "variant" | "size" | "radius" | "color" | "classNames" | "className" | "disabled"> & {
15
+ className?: string;
16
+ classNames?: Partial<Record<string, string>>;
17
+ } & RecursicaSegmentedControlProps>;
18
+ /**
19
+ * Recursica SegmentedControl component wrapping Mui's SegmentedControl.
20
+ */
21
+ export declare const SegmentedControl: import('react').ForwardRefExoticComponent<(Omit<Omit<Omit<MuiSegmentedControlProps, "className" | "color" | "variant" | "disabled" | "size" | "radius" | "classNames"> & {
22
+ className?: string;
23
+ classNames?: Partial<Record<string, string>>;
24
+ } & RecursicaSegmentedControlProps, "className" | "classes" | "style" | "sx" | "color" | "bgcolor" | "backgroundColor" | "typography" | "fontFamily" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "textAlign" | "border" | "borderTop" | "borderBottom" | "borderLeft" | "borderRight" | "borderColor" | "borderRadius" | "boxShadow" | "display" | "position" | "zIndex"> & import('../../utils/filterStylingProps').ForbiddenStyles & {
25
+ overStyled?: false | undefined;
26
+ }, "ref"> | Omit<Omit<MuiSegmentedControlProps, "className" | "color" | "variant" | "disabled" | "size" | "radius" | "classNames"> & {
27
+ className?: string;
28
+ classNames?: Partial<Record<string, string>>;
29
+ } & RecursicaSegmentedControlProps & {
30
+ overStyled: true;
31
+ }, "ref">) & import('react').RefAttributes<HTMLDivElement>>;
@@ -1,3 +1,29 @@
1
1
  import { default as React } from 'react';
2
- export type SliderProps = React.HTMLAttributes<HTMLDivElement>;
3
- export declare const Slider: React.FC<SliderProps>;
2
+ import { SliderProps as MuiSliderProps, InputWrapperProps } from '@mui/material';
3
+ import { ReadOnlyControlProps } from '@recursica/adapter-common';
4
+ import { RecursicaOverStyled } from '../../utils/filterStylingProps';
5
+ import { RecursicaFormControlWrapperProps } from '../FormControlWrapper/FormControlWrapper';
6
+ export interface RecursicaSliderProps extends Omit<Omit<MuiSliderProps, "size" | "color">, "variant" | "radius" | "wrapperProps" | "classNames" | "styles" | "label">, Omit<RecursicaFormControlWrapperProps, "controlMaxWidth" | "controlMinWidth">, Pick<InputWrapperProps, "error" | "required" | "withAsterisk">, ReadOnlyControlProps {
7
+ /** The form control label displayed above or beside the slider track. */
8
+ label?: React.ReactNode;
9
+ /** Floating tooltip shown above the thumb when dragging. Replaces Mui's `label`. */
10
+ tooltipLabel?: MuiSliderProps["label"];
11
+ /** An optional icon rendered to the left of the slider track. */
12
+ icon?: React.ReactNode;
13
+ /** Whether to render a numeric input field side-by-side or stacked with the track. Defaults to false. */
14
+ showInput?: boolean;
15
+ /** Whether to render min and max labels below the track. Defaults to true. */
16
+ showMinMaxLabels?: boolean;
17
+ }
18
+ export type SliderProps = RecursicaOverStyled<RecursicaSliderProps>;
19
+ /**
20
+ * Recursica Slider component wrapping Mui's Slider.
21
+ *
22
+ * Implements a bidirectional text input field next to the slider track, responsive layouts,
23
+ * custom typography-bound min/max labels, an optional leading icon, and an explicit read-only layout.
24
+ */
25
+ export declare const Slider: React.ForwardRefExoticComponent<(Omit<Omit<RecursicaSliderProps, "className" | "classes" | "style" | "sx" | "color" | "bgcolor" | "backgroundColor" | "typography" | "fontFamily" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "textAlign" | "border" | "borderTop" | "borderBottom" | "borderLeft" | "borderRight" | "borderColor" | "borderRadius" | "boxShadow" | "display" | "position" | "zIndex"> & import('../../utils/filterStylingProps').ForbiddenStyles & {
26
+ overStyled?: false | undefined;
27
+ }, "ref"> | Omit<RecursicaSliderProps & {
28
+ overStyled: true;
29
+ }, "ref">) & React.RefAttributes<HTMLDivElement>>;
@@ -1,3 +1,22 @@
1
1
  import { default as React } from 'react';
2
- export type StepperProps = React.HTMLAttributes<HTMLDivElement>;
3
- export declare const Stepper: React.FC<StepperProps>;
2
+ import { StepperProps as MuiStepperProps } from '@mui/material';
3
+ import { RecursicaOverStyled } from '../../utils/filterStylingProps';
4
+ export interface RecursicaStepperProps extends Omit<MuiStepperProps, "size" | "color" | "radius" | "iconSize" | "contentPadding" | "activeStep"> {
5
+ size?: "small" | "large";
6
+ active?: number;
7
+ onStepClick?: (stepIndex: number) => void;
8
+ orientation?: "horizontal" | "vertical";
9
+ }
10
+ export type StepperProps = RecursicaOverStyled<RecursicaStepperProps>;
11
+ export declare const StepperStep: React.FC<any>;
12
+ export declare const StepperCompleted: React.FC<any>;
13
+ declare const _Stepper: React.ForwardRefExoticComponent<(Omit<Omit<RecursicaStepperProps, "className" | "classes" | "style" | "sx" | "color" | "bgcolor" | "backgroundColor" | "typography" | "fontFamily" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "textAlign" | "border" | "borderTop" | "borderBottom" | "borderLeft" | "borderRight" | "borderColor" | "borderRadius" | "boxShadow" | "display" | "position" | "zIndex"> & import('../../utils/filterStylingProps').ForbiddenStyles & {
14
+ overStyled?: false | undefined;
15
+ }, "ref"> | Omit<RecursicaStepperProps & {
16
+ overStyled: true;
17
+ }, "ref">) & React.RefAttributes<HTMLDivElement>>;
18
+ export declare const Stepper: typeof _Stepper & {
19
+ Step: typeof StepperStep;
20
+ Completed: typeof StepperCompleted;
21
+ };
22
+ export {};
@@ -1,3 +1,10 @@
1
- import { default as React } from 'react';
2
- export type SwitchProps = React.HTMLAttributes<HTMLDivElement>;
3
- export declare const Switch: React.FC<SwitchProps>;
1
+ import { SwitchProps as MuiSwitchProps } from '@mui/material';
2
+ import { ReadOnlyControlProps } from '@recursica/adapter-common';
3
+ import { RecursicaOverStyled } from '../../utils/filterStylingProps';
4
+ import { RequireAccessibleLabel } from '../../utils/RequireAccessibleLabel';
5
+ import { FormControlLayoutProps } from '../FormControlLayout/FormControlLayout';
6
+ export type RecursicaSwitchProps = RequireAccessibleLabel<Omit<MuiSwitchProps, "size" | "color" | "radius" | "variant"> & ReadOnlyControlProps & Pick<FormControlLayoutProps, "formLayout" | "labelSize" | "controlMaxWidth" | "controlMinWidth">>;
7
+ export type SwitchProps = RecursicaOverStyled<RecursicaSwitchProps>;
8
+ type SwitchComponent = any;
9
+ export declare const Switch: SwitchComponent;
10
+ export {};
@@ -0,0 +1,13 @@
1
+ import { default as React } from 'react';
2
+ import { SwitchGroupProps as MuiSwitchGroupProps } from '@mui/material';
3
+ import { ReadOnlyControlProps } from '@recursica/adapter-common';
4
+ import { RecursicaOverStyled } from '../../utils/filterStylingProps';
5
+ import { RecursicaFormControlWrapperProps } from '../FormControlWrapper/FormControlWrapper';
6
+ export interface RecursicaSwitchGroupProps extends Omit<MuiSwitchGroupProps, "size" | "labelProps">, Omit<RecursicaFormControlWrapperProps, "controlMaxWidth" | "controlMinWidth">, ReadOnlyControlProps {
7
+ }
8
+ export type SwitchGroupProps = RecursicaOverStyled<RecursicaSwitchGroupProps>;
9
+ export declare const SwitchGroup: React.ForwardRefExoticComponent<(Omit<Omit<RecursicaSwitchGroupProps, "className" | "classes" | "style" | "sx" | "color" | "bgcolor" | "backgroundColor" | "typography" | "fontFamily" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "textAlign" | "border" | "borderTop" | "borderBottom" | "borderLeft" | "borderRight" | "borderColor" | "borderRadius" | "boxShadow" | "display" | "position" | "zIndex"> & import('../../utils/filterStylingProps').ForbiddenStyles & {
10
+ overStyled?: false | undefined;
11
+ }, "ref"> | Omit<RecursicaSwitchGroupProps & {
12
+ overStyled: true;
13
+ }, "ref">) & React.RefAttributes<HTMLDivElement>>;
@@ -1,3 +1,35 @@
1
- import { default as React } from 'react';
2
- export type TabsProps = React.HTMLAttributes<HTMLDivElement>;
3
- export declare const Tabs: React.FC<TabsProps>;
1
+ import { TabsProps as MuiTabsProps, ListProps as MuiTabsListProps, TabsProps as MuiTabsTabProps } from '@mui/material';
2
+ import { RecursicaOverStyled } from '../../utils/filterStylingProps';
3
+ export interface RecursicaTabsProps extends Omit<MuiTabsProps, "variant" | "classNames" | "color" | "radius"> {
4
+ variant?: "default" | "outline" | "pills";
5
+ }
6
+ export type TabsProps = RecursicaOverStyled<RecursicaTabsProps>;
7
+ declare const _Tabs: import('react').ForwardRefExoticComponent<(Omit<Omit<RecursicaTabsProps, "className" | "classes" | "style" | "sx" | "color" | "bgcolor" | "backgroundColor" | "typography" | "fontFamily" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "textAlign" | "border" | "borderTop" | "borderBottom" | "borderLeft" | "borderRight" | "borderColor" | "borderRadius" | "boxShadow" | "display" | "position" | "zIndex"> & import('../../utils/filterStylingProps').ForbiddenStyles & {
8
+ overStyled?: false | undefined;
9
+ }, "ref"> | Omit<RecursicaTabsProps & {
10
+ overStyled: true;
11
+ }, "ref">) & import('react').RefAttributes<HTMLDivElement>>;
12
+ export type TabsListProps = RecursicaOverStyled<MuiTabsListProps>;
13
+ declare const _TabsList: import('react').ForwardRefExoticComponent<(Omit<Omit<MuiTabsListProps, "className" | "classes" | "style" | "sx" | "color" | "bgcolor" | "backgroundColor" | "typography" | "fontFamily" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "textAlign" | "border" | "borderTop" | "borderBottom" | "borderLeft" | "borderRight" | "borderColor" | "borderRadius" | "boxShadow" | "display" | "position" | "zIndex"> & import('../../utils/filterStylingProps').ForbiddenStyles & {
14
+ overStyled?: false | undefined;
15
+ }, "ref"> | Omit<import('@mui/material').ListOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLUListElement>, HTMLUListElement>, "className" | "classes" | "style" | "sx" | "children" | "dense" | "disablePadding" | "subheader"> & {
16
+ component?: React.ElementType | undefined;
17
+ } & {
18
+ overStyled: true;
19
+ }, "ref">) & import('react').RefAttributes<HTMLDivElement>>;
20
+ export type TabsTabProps = RecursicaOverStyled<MuiTabsTabProps>;
21
+ declare const _TabsTab: import('react').ForwardRefExoticComponent<(Omit<Omit<MuiTabsProps, "className" | "classes" | "style" | "sx" | "color" | "bgcolor" | "backgroundColor" | "typography" | "fontFamily" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "textAlign" | "border" | "borderTop" | "borderBottom" | "borderLeft" | "borderRight" | "borderColor" | "borderRadius" | "boxShadow" | "display" | "position" | "zIndex"> & import('../../utils/filterStylingProps').ForbiddenStyles & {
22
+ overStyled?: false | undefined;
23
+ }, "ref"> | Omit<import('@mui/material').TabsOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "className" | "classes" | "style" | "sx" | "value" | "aria-label" | "aria-labelledby" | "children" | "onChange" | "variant" | "slots" | "slotProps" | "action" | "orientation" | "allowScrollButtonsMobile" | "centered" | "indicatorColor" | "ScrollButtonComponent" | "scrollButtons" | "selectionFollowsFocus" | "TabIndicatorProps" | "TabScrollButtonProps" | "textColor" | "visibleScrollbar"> & {
24
+ component?: React.ElementType | undefined;
25
+ } & {
26
+ overStyled: true;
27
+ }, "ref">) & import('react').RefAttributes<HTMLButtonElement>>;
28
+ export type TabsPanelProps = RecursicaOverStyled<MuiTabsPanelProps>;
29
+ declare const _TabsPanel: import('react').ForwardRefExoticComponent<any>;
30
+ export declare const Tabs: typeof _Tabs & {
31
+ List: typeof _TabsList;
32
+ Tab: typeof _TabsTab;
33
+ Panel: typeof _TabsPanel;
34
+ };
35
+ export {};
@@ -8,7 +8,7 @@ export type RecursicaTextProps = Omit<MuiTypographyProps, "variant"> & {
8
8
  component?: React.ElementType;
9
9
  };
10
10
  export type TextProps = RecursicaOverStyled<RecursicaTextProps>;
11
- export declare const Text: React.ForwardRefExoticComponent<(Omit<Omit<RecursicaTextProps, "style" | "className" | "classes" | "border" | "borderTop" | "borderRight" | "borderBottom" | "borderLeft" | "borderColor" | "borderRadius" | "display" | "bgcolor" | "color" | "zIndex" | "position" | "boxShadow" | "typography" | "fontFamily" | "fontSize" | "fontWeight" | "letterSpacing" | "lineHeight" | "textAlign" | "backgroundColor" | "sx"> & import('../../utils/filterStylingProps').ForbiddenStyles & {
11
+ export declare const Text: React.ForwardRefExoticComponent<(Omit<Omit<RecursicaTextProps, "className" | "classes" | "style" | "sx" | "color" | "bgcolor" | "backgroundColor" | "typography" | "fontFamily" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "textAlign" | "border" | "borderTop" | "borderBottom" | "borderLeft" | "borderRight" | "borderColor" | "borderRadius" | "boxShadow" | "display" | "position" | "zIndex"> & import('../../utils/filterStylingProps').ForbiddenStyles & {
12
12
  overStyled?: false | undefined;
13
13
  }, "ref"> | Omit<Omit<MuiTypographyProps, "variant"> & {
14
14
  variant?: TextVariant;
@@ -1,3 +1,19 @@
1
1
  import { default as React } from 'react';
2
- export type TextAreaProps = React.HTMLAttributes<HTMLDivElement>;
3
- export declare const TextArea: React.FC<TextAreaProps>;
2
+ import { TextFieldProps as MuiTextareaProps } from '@mui/material';
3
+ import { ReadOnlyControlProps } from '@recursica/adapter-common';
4
+ import { RecursicaOverStyled } from '../../utils/filterStylingProps';
5
+ import { RecursicaFormControlWrapperProps } from '../FormControlWrapper/FormControlWrapper';
6
+ export interface RecursicaTextAreaProps extends Omit<MuiTextareaProps, "size" | "variant" | "radius" | "wrapperProps">, Pick<RecursicaFormControlWrapperProps, "assistiveText" | "assistiveWithIcon" | "formLayout" | "labelSize" | "labelAlignment" | "labelOptionalText" | "labelWithEditIcon" | "onLabelEditClick">, ReadOnlyControlProps {
7
+ /** Maximum rows for autosize textarea to grow */
8
+ maxRows?: number;
9
+ /** Minimum rows of autosize textarea */
10
+ minRows?: number;
11
+ /** If set, enables textarea height growing with its content */
12
+ autosize?: boolean;
13
+ }
14
+ export type TextAreaProps = RecursicaOverStyled<RecursicaTextAreaProps>;
15
+ export declare const TextArea: React.ForwardRefExoticComponent<(Omit<Omit<RecursicaTextAreaProps, "className" | "classes" | "style" | "sx" | "color" | "bgcolor" | "backgroundColor" | "typography" | "fontFamily" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "textAlign" | "border" | "borderTop" | "borderBottom" | "borderLeft" | "borderRight" | "borderColor" | "borderRadius" | "boxShadow" | "display" | "position" | "zIndex"> & import('../../utils/filterStylingProps').ForbiddenStyles & {
16
+ overStyled?: false | undefined;
17
+ }, "ref"> | Omit<RecursicaTextAreaProps & {
18
+ overStyled: true;
19
+ }, "ref">) & React.RefAttributes<HTMLTextAreaElement>>;
@@ -1,3 +1,17 @@
1
1
  import { default as React } from 'react';
2
- export type TextFieldProps = React.HTMLAttributes<HTMLDivElement>;
3
- export declare const TextField: React.FC<TextFieldProps>;
2
+ import { InputBaseProps } from '@mui/material';
3
+ import { ReadOnlyControlProps } from '@recursica/adapter-common';
4
+ import { RecursicaOverStyled } from '../../utils/filterStylingProps';
5
+ import { RecursicaFormControlWrapperProps } from '../FormControlWrapper/FormControlWrapper';
6
+ export interface RecursicaTextFieldProps extends Omit<InputBaseProps, "color" | "size" | "startAdornment" | "endAdornment" | "autoComplete">, Omit<React.ComponentPropsWithoutRef<"input">, keyof InputBaseProps | "size" | "color" | "style" | "className" | "id">, Pick<RecursicaFormControlWrapperProps, "label" | "error" | "required" | "id" | "assistiveText" | "assistiveWithIcon" | "formLayout" | "labelSize" | "labelAlignment" | "labelOptionalText" | "labelWithEditIcon" | "onLabelEditClick">, ReadOnlyControlProps {
7
+ /** Renders a section on the left side of the input (e.g. icon). Maps to Mantine's leftSection natively. */
8
+ leftSection?: React.ReactNode;
9
+ /** Renders a section on the right side of the input (e.g. clear button). Maps to Mantine's rightSection natively. */
10
+ rightSection?: React.ReactNode;
11
+ }
12
+ export type TextFieldProps = RecursicaOverStyled<RecursicaTextFieldProps>;
13
+ export declare const TextField: React.ForwardRefExoticComponent<(Omit<Omit<RecursicaTextFieldProps, "className" | "classes" | "style" | "sx" | "color" | "bgcolor" | "backgroundColor" | "typography" | "fontFamily" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "textAlign" | "border" | "borderTop" | "borderBottom" | "borderLeft" | "borderRight" | "borderColor" | "borderRadius" | "boxShadow" | "display" | "position" | "zIndex"> & import('../../utils/filterStylingProps').ForbiddenStyles & {
14
+ overStyled?: false | undefined;
15
+ }, "ref"> | Omit<RecursicaTextFieldProps & {
16
+ overStyled: true;
17
+ }, "ref">) & React.RefAttributes<HTMLInputElement>>;
@@ -1,3 +1,15 @@
1
1
  import { default as React } from 'react';
2
- export type TimelineProps = React.HTMLAttributes<HTMLDivElement>;
3
- export declare const Timeline: React.FC<TimelineProps>;
2
+ import { TimelineProps as MuiTimelineProps } from '@mui/lab/Timeline';
3
+ import { RecursicaOverStyled } from '../../utils/filterStylingProps';
4
+ import { TimelineItem } from './TimelineItem';
5
+ /**
6
+ * Properties for the strictly-tokenized Timeline component.
7
+ * Native Mui abstract properties like `color`, `radius`, `bulletSize`, and `lineWidth`
8
+ * have been stripped out to strictly enforce the structural mappings of the Recursica UI Kit.
9
+ */
10
+ export type TimelineProps = RecursicaOverStyled<Omit<MuiTimelineProps, "color" | "radius" | "bulletSize" | "lineWidth">>;
11
+ interface TimelineComponent extends React.ForwardRefExoticComponent<TimelineProps & React.RefAttributes<HTMLDivElement>> {
12
+ Item: typeof TimelineItem;
13
+ }
14
+ export declare const Timeline: TimelineComponent;
15
+ export {};
@@ -0,0 +1,29 @@
1
+ import { default as React } from 'react';
2
+ import { TimelineItemProps as MuiTimelineItemProps } from '@mui/lab/TimelineItem';
3
+ import { RecursicaOverStyled } from '../../utils/filterStylingProps';
4
+ export interface RecursicaTimelineItemProps {
5
+ /**
6
+ * Timestamp text displayed below the description.
7
+ */
8
+ timestamp?: React.ReactNode;
9
+ /**
10
+ * The structural styling variant of the bullet container.
11
+ * Maps to the UI Kit structural tokens.
12
+ * @default "default"
13
+ */
14
+ bulletVariant?: "default" | "avatar" | "icon" | "icon-alternative";
15
+ }
16
+ export type TimelineItemProps = RecursicaOverStyled<Omit<MuiTimelineItemProps, "radius" | "color" | "lineVariant"> & RecursicaTimelineItemProps>;
17
+ /**
18
+ * The individual item component for the Timeline.
19
+ *
20
+ * **Recursica Abstract:**
21
+ * The `Timeline.Item` has been extended to support a `timestamp` string natively,
22
+ * rendering it below the body content. It also accepts a `bulletVariant` to morph
23
+ * the structural dimensions of the node circle automatically.
24
+ */
25
+ export declare const TimelineItem: React.ForwardRefExoticComponent<(Omit<Omit<Omit<MuiTimelineItemProps, "color" | "radius" | "lineVariant"> & RecursicaTimelineItemProps, "className" | "classes" | "style" | "sx" | "color" | "bgcolor" | "backgroundColor" | "typography" | "fontFamily" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "textAlign" | "border" | "borderTop" | "borderBottom" | "borderLeft" | "borderRight" | "borderColor" | "borderRadius" | "boxShadow" | "display" | "position" | "zIndex"> & import('../../utils/filterStylingProps').ForbiddenStyles & {
26
+ overStyled?: false | undefined;
27
+ }, "ref"> | Omit<Omit<MuiTimelineItemProps, "color" | "radius" | "lineVariant"> & RecursicaTimelineItemProps & {
28
+ overStyled: true;
29
+ }, "ref">) & React.RefAttributes<HTMLDivElement>>;
@@ -7,7 +7,7 @@ export type RecursicaTitleProps = Omit<MuiTypographyProps, "variant"> & {
7
7
  component?: React.ElementType;
8
8
  };
9
9
  export type TitleProps = RecursicaOverStyled<RecursicaTitleProps>;
10
- export declare const Title: React.ForwardRefExoticComponent<(Omit<Omit<RecursicaTitleProps, "style" | "className" | "classes" | "border" | "borderTop" | "borderRight" | "borderBottom" | "borderLeft" | "borderColor" | "borderRadius" | "display" | "bgcolor" | "color" | "zIndex" | "position" | "boxShadow" | "typography" | "fontFamily" | "fontSize" | "fontWeight" | "letterSpacing" | "lineHeight" | "textAlign" | "backgroundColor" | "sx"> & import('../../utils/filterStylingProps').ForbiddenStyles & {
10
+ export declare const Title: React.ForwardRefExoticComponent<(Omit<Omit<RecursicaTitleProps, "className" | "classes" | "style" | "sx" | "color" | "bgcolor" | "backgroundColor" | "typography" | "fontFamily" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "textAlign" | "border" | "borderTop" | "borderBottom" | "borderLeft" | "borderRight" | "borderColor" | "borderRadius" | "boxShadow" | "display" | "position" | "zIndex"> & import('../../utils/filterStylingProps').ForbiddenStyles & {
11
11
  overStyled?: false | undefined;
12
12
  }, "ref"> | Omit<Omit<MuiTypographyProps, "variant"> & {
13
13
  order?: 1 | 2 | 3 | 4 | 5 | 6;
@@ -1,3 +1,26 @@
1
1
  import { default as React } from 'react';
2
- export type ToastProps = React.HTMLAttributes<HTMLDivElement>;
3
- export declare const Toast: React.FC<ToastProps>;
2
+ import { SnackbarProps as MuiNotificationProps } from '@mui/material';
3
+ import { RecursicaOverStyled } from '../../utils/filterStylingProps';
4
+ export interface RecursicaToastProps {
5
+ /**
6
+ * The visual variant of the toast.
7
+ * @default "default"
8
+ */
9
+ variant?: "default" | "error" | "success";
10
+ /**
11
+ * Loading state is natively unsupported by Recursica UI Kit.
12
+ * If a loading state is required, pass a `<Loader size="sm" />` directly into the `icon` prop.
13
+ */
14
+ loading?: false;
15
+ }
16
+ /**
17
+ * Toast component wrapping Mui's Notification.
18
+ *
19
+ * Can be used as a standalone visual component to display a notification or message.
20
+ */
21
+ export type ToastProps = RecursicaOverStyled<Omit<MuiNotificationProps, "color" | "radius" | "variant" | "loading"> & RecursicaToastProps>;
22
+ export declare const Toast: React.ForwardRefExoticComponent<(Omit<Omit<Omit<MuiNotificationProps, "color" | "variant" | "radius" | "loading"> & RecursicaToastProps, "className" | "classes" | "style" | "sx" | "color" | "bgcolor" | "backgroundColor" | "typography" | "fontFamily" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "textAlign" | "border" | "borderTop" | "borderBottom" | "borderLeft" | "borderRight" | "borderColor" | "borderRadius" | "boxShadow" | "display" | "position" | "zIndex"> & import('../../utils/filterStylingProps').ForbiddenStyles & {
23
+ overStyled?: false | undefined;
24
+ }, "ref"> | Omit<Omit<MuiNotificationProps, "color" | "variant" | "radius" | "loading"> & RecursicaToastProps & {
25
+ overStyled: true;
26
+ }, "ref">) & React.RefAttributes<HTMLDivElement>>;
@@ -1,3 +1,42 @@
1
- import { default as React } from 'react';
2
- export type TooltipProps = React.HTMLAttributes<HTMLDivElement>;
3
- export declare const Tooltip: React.FC<TooltipProps>;
1
+ import { Tooltip as MuiTooltip, TooltipProps as MuiTooltipProps } from '@mui/material';
2
+ import { RecursicaOverStyled } from '../../utils/filterStylingProps';
3
+ /**
4
+ * Recursica-specific props for Tooltip.
5
+ */
6
+ export interface RecursicaTooltipProps {
7
+ /**
8
+ * Whether to display a beak (arrow) pointing from the tooltip to the target.
9
+ * This is the Recursica equivalent of Mui's `withArrow`.
10
+ * When both `withBeak` and `withArrow` are provided, `withBeak` takes precedence.
11
+ * @default true
12
+ */
13
+ withBeak?: boolean;
14
+ }
15
+ /**
16
+ * Recursica Tooltip component wrapping Mui's Tooltip.
17
+ *
18
+ * Displays a floating label when the user hovers over or focuses a target element.
19
+ * Unlike HoverCard, Tooltip is a single component (not composable) — content is
20
+ * passed via the `label` prop, and the trigger is passed as `children`.
21
+ *
22
+ * ```tsx
23
+ * <Tooltip label="Helpful information" withBeak>
24
+ * <Button>Hover me</Button>
25
+ * </Tooltip>
26
+ * ```
27
+ *
28
+ * Static sub-components available via dot-notation:
29
+ * - `// Tooltip.Floating` — Tooltip that follows the cursor
30
+ * - `// Tooltip.Group` — Shared hover delay group for multiple tooltips
31
+ */
32
+ export type TooltipProps = RecursicaOverStyled<MuiTooltipProps & RecursicaTooltipProps>;
33
+ declare const TooltipBase: {
34
+ ({ overStyled, withBeak, ...rest }: TooltipProps): import("react/jsx-runtime").JSX.Element;
35
+ displayName: string;
36
+ };
37
+ type TooltipComponent = typeof TooltipBase & {
38
+ Floating: typeof MuiTooltip.Floating;
39
+ Group: typeof MuiTooltip.Group;
40
+ };
41
+ export declare const Tooltip: TooltipComponent;
42
+ export {};