@recursica/mui-adapter 0.6.0 → 0.7.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 (164) hide show
  1. package/ARCHITECTURE.md +15 -0
  2. package/CHANGELOG.md +6 -0
  3. package/SETUP.md +77 -0
  4. package/USAGE.md +55 -0
  5. package/dist/mui-adapter.cjs +26 -26
  6. package/dist/mui-adapter.cjs.map +1 -1
  7. package/dist/mui-adapter.css +1 -1
  8. package/dist/mui-adapter.js +3721 -3511
  9. package/dist/mui-adapter.js.map +1 -1
  10. package/dist/src/components/Accordion/Accordion.d.ts +9 -29
  11. package/dist/src/components/AssistiveElement/AssistiveElement.d.ts +2 -5
  12. package/dist/src/components/Autocomplete/Autocomplete.d.ts +4 -8
  13. package/dist/src/components/Avatar/Avatar.d.ts +1 -6
  14. package/dist/src/components/Badge/Badge.d.ts +1 -4
  15. package/dist/src/components/Breadcrumb/Breadcrumb.d.ts +2 -3
  16. package/dist/src/components/Button/Button.d.ts +2 -17
  17. package/dist/src/components/Card/Card.d.ts +2 -4
  18. package/dist/src/components/Checkbox/Checkbox.d.ts +4 -6
  19. package/dist/src/components/Checkbox/CheckboxGroup.d.ts +8 -6
  20. package/dist/src/components/Chip/Chip.d.ts +2 -11
  21. package/dist/src/components/Container/Container.d.ts +1 -5
  22. package/dist/src/components/DatePicker/DatePicker.d.ts +2 -1
  23. package/dist/src/components/Dropdown/Dropdown.d.ts +4 -14
  24. package/dist/src/components/Flex/Flex.d.ts +2 -22
  25. package/dist/src/components/FormControlLayout/FormControlLayout.d.ts +2 -7
  26. package/dist/src/components/FormControlWrapper/FormControlWrapper.d.ts +3 -18
  27. package/dist/src/components/Group/Group.d.ts +2 -7
  28. package/dist/src/components/HoverCard/HoverCard.d.ts +13 -39
  29. package/dist/src/components/Label/Label.d.ts +2 -9
  30. package/dist/src/components/Link/Link.d.ts +2 -6
  31. package/dist/src/components/Loader/Loader.d.ts +2 -7
  32. package/dist/src/components/Menu/Menu.d.ts +24 -98
  33. package/dist/src/components/Modal/Modal.d.ts +32 -31
  34. package/dist/src/components/NumberInput/NumberInput.d.ts +3 -5
  35. package/dist/src/components/Pagination/Pagination.d.ts +8 -41
  36. package/dist/src/components/Panel/Panel.d.ts +5 -18
  37. package/dist/src/components/Radio/Radio.d.ts +4 -4
  38. package/dist/src/components/Radio/RadioGroup.d.ts +3 -7
  39. package/dist/src/components/ReadOnlyField/ReadOnlyField.d.ts +2 -5
  40. package/dist/src/components/SegmentedControl/SegmentedControl.d.ts +5 -15
  41. package/dist/src/components/Slider/Slider.d.ts +4 -14
  42. package/dist/src/components/Stack/Stack.d.ts +2 -5
  43. package/dist/src/components/Stepper/Stepper.d.ts +36 -16
  44. package/dist/src/components/Switch/Switch.d.ts +4 -4
  45. package/dist/src/components/Switch/SwitchGroup.d.ts +4 -4
  46. package/dist/src/components/Table/Table.d.ts +2 -1
  47. package/dist/src/components/Tabs/Tabs.d.ts +11 -26
  48. package/dist/src/components/Text/Text.d.ts +2 -16
  49. package/dist/src/components/TextArea/TextArea.d.ts +3 -9
  50. package/dist/src/components/TextField/TextField.d.ts +3 -7
  51. package/dist/src/components/TimePicker/TimePicker.d.ts +2 -1
  52. package/dist/src/components/Timeline/Timeline.d.ts +2 -1
  53. package/dist/src/components/Timeline/TimelineItem.d.ts +2 -13
  54. package/dist/src/components/Title/Title.d.ts +2 -15
  55. package/dist/src/components/Toast/Toast.d.ts +11 -16
  56. package/dist/src/components/Tooltip/Tooltip.d.ts +7 -21
  57. package/dist/src/components/TransferList/TransferList.d.ts +2 -1
  58. package/dist/src/components/Typography/Typography.d.ts +1 -1
  59. package/dist/src/utils/RequireAccessibleLabel.d.ts +1 -18
  60. package/dist/src/utils/filterStylingProps.d.ts +1 -11
  61. package/llms.txt +16 -0
  62. package/package.json +6 -2
  63. package/src/components/Accordion/Accordion.module.css +1 -2
  64. package/src/components/Accordion/Accordion.stories.tsx +0 -18
  65. package/src/components/Accordion/Accordion.tsx +19 -23
  66. package/src/components/AssistiveElement/AssistiveElement.module.css +32 -29
  67. package/src/components/AssistiveElement/AssistiveElement.stories.tsx +10 -27
  68. package/src/components/AssistiveElement/AssistiveElement.tsx +11 -15
  69. package/src/components/Autocomplete/Autocomplete.module.css +17 -18
  70. package/src/components/Autocomplete/Autocomplete.stories.tsx +7 -16
  71. package/src/components/Autocomplete/Autocomplete.tsx +27 -45
  72. package/src/components/Avatar/Avatar.tsx +2 -13
  73. package/src/components/Badge/Badge.tsx +2 -5
  74. package/src/components/Breadcrumb/Breadcrumb.tsx +1 -4
  75. package/src/components/Button/Button.module.css +19 -61
  76. package/src/components/Button/Button.stories.tsx +24 -23
  77. package/src/components/Button/Button.tsx +7 -18
  78. package/src/components/Card/Card.module.css +36 -0
  79. package/src/components/Card/Card.tsx +6 -4
  80. package/src/components/Checkbox/Checkbox.module.css +27 -10
  81. package/src/components/Checkbox/Checkbox.tsx +124 -24
  82. package/src/components/Checkbox/CheckboxGroup.stories.tsx +139 -0
  83. package/src/components/Checkbox/CheckboxGroup.tsx +43 -23
  84. package/src/components/Chip/Chip.module.css +52 -34
  85. package/src/components/Chip/Chip.tsx +45 -47
  86. package/src/components/Container/Container.stories.tsx +103 -20
  87. package/src/components/Container/Container.tsx +1 -13
  88. package/src/components/DatePicker/DatePicker.stories.tsx +125 -19
  89. package/src/components/DatePicker/DatePicker.tsx +3 -1
  90. package/src/components/Dropdown/Dropdown.tsx +7 -9
  91. package/src/components/FileInput/FileInput.stories.tsx +2 -19
  92. package/src/components/FileUpload/FileUpload.stories.tsx +2 -19
  93. package/src/components/Flex/Flex.stories.tsx +113 -20
  94. package/src/components/Flex/Flex.tsx +16 -26
  95. package/src/components/FormControlLayout/FormControlLayout.stories.tsx +0 -8
  96. package/src/components/FormControlLayout/FormControlLayout.tsx +18 -7
  97. package/src/components/FormControlWrapper/FormControlWrapper.module.css +1 -10
  98. package/src/components/FormControlWrapper/FormControlWrapper.stories.tsx +12 -21
  99. package/src/components/FormControlWrapper/FormControlWrapper.tsx +11 -30
  100. package/src/components/Group/Group.stories.tsx +6 -30
  101. package/src/components/Group/Group.tsx +14 -9
  102. package/src/components/HoverCard/HoverCard.tsx +72 -75
  103. package/src/components/Label/Label.module.css +4 -0
  104. package/src/components/Label/Label.stories.tsx +18 -12
  105. package/src/components/Label/Label.tsx +3 -9
  106. package/src/components/Link/Link.module.css +4 -3
  107. package/src/components/Link/Link.stories.tsx +2 -8
  108. package/src/components/Link/Link.tsx +1 -5
  109. package/src/components/Loader/Loader.module.css +1 -2
  110. package/src/components/Loader/Loader.tsx +1 -7
  111. package/src/components/Menu/IMPLEMENTATION_NOTES.md +4 -0
  112. package/src/components/Menu/Menu.stories.tsx +106 -188
  113. package/src/components/Menu/Menu.tsx +34 -280
  114. package/src/components/Modal/Modal.tsx +158 -160
  115. package/src/components/NumberInput/NumberInput.tsx +6 -18
  116. package/src/components/Pagination/IMPLEMENTATION_NOTES.md +3 -0
  117. package/src/components/Pagination/Pagination.module.css +12 -24
  118. package/src/components/Pagination/Pagination.stories.tsx +0 -8
  119. package/src/components/Pagination/Pagination.tsx +20 -140
  120. package/src/components/Panel/Panel.tsx +7 -30
  121. package/src/components/Radio/Radio.module.css +25 -10
  122. package/src/components/Radio/Radio.tsx +51 -19
  123. package/src/components/Radio/RadioGroup.stories.tsx +117 -0
  124. package/src/components/Radio/RadioGroup.tsx +26 -12
  125. package/src/components/ReadOnlyField/ReadOnlyField.module.css +6 -6
  126. package/src/components/ReadOnlyField/ReadOnlyField.stories.tsx +5 -36
  127. package/src/components/ReadOnlyField/ReadOnlyField.tsx +9 -13
  128. package/src/components/SegmentedControl/SegmentedControl.module.css +23 -47
  129. package/src/components/SegmentedControl/SegmentedControl.tsx +44 -14
  130. package/src/components/Slider/Slider.module.css +1 -4
  131. package/src/components/Slider/Slider.stories.tsx +3 -3
  132. package/src/components/Slider/Slider.tsx +26 -25
  133. package/src/components/Stack/Stack.stories.tsx +4 -25
  134. package/src/components/Stack/Stack.tsx +1 -5
  135. package/src/components/Stepper/IMPLEMENTATION_NOTES.md +4 -0
  136. package/src/components/Stepper/Stepper.stories.tsx +56 -43
  137. package/src/components/Stepper/Stepper.tsx +89 -87
  138. package/src/components/Switch/Switch.module.css +21 -0
  139. package/src/components/Switch/Switch.tsx +63 -16
  140. package/src/components/Switch/SwitchGroup.stories.tsx +132 -0
  141. package/src/components/Switch/SwitchGroup.tsx +27 -18
  142. package/src/components/Table/Table.stories.tsx +1 -19
  143. package/src/components/Table/Table.tsx +3 -1
  144. package/src/components/Tabs/IMPLEMENTATION_NOTES.md +4 -0
  145. package/src/components/Tabs/Tabs.stories.tsx +41 -24
  146. package/src/components/Tabs/Tabs.tsx +49 -66
  147. package/src/components/Text/Text.stories.tsx +5 -17
  148. package/src/components/Text/Text.tsx +1 -15
  149. package/src/components/TextArea/TextArea.tsx +7 -17
  150. package/src/components/TextField/TextField.stories.tsx +1 -27
  151. package/src/components/TextField/TextField.tsx +4 -6
  152. package/src/components/TimePicker/TimePicker.stories.tsx +2 -19
  153. package/src/components/TimePicker/TimePicker.tsx +3 -1
  154. package/src/components/Timeline/Timeline.tsx +4 -1
  155. package/src/components/Timeline/TimelineItem.tsx +1 -12
  156. package/src/components/Title/Title.stories.tsx +0 -18
  157. package/src/components/Title/Title.tsx +1 -7
  158. package/src/components/Toast/Toast.stories.tsx +1 -1
  159. package/src/components/Toast/Toast.tsx +62 -28
  160. package/src/components/Tooltip/Tooltip.tsx +11 -37
  161. package/src/components/TransferList/TransferList.stories.tsx +1 -19
  162. package/src/components/TransferList/TransferList.tsx +3 -1
  163. package/src/utils/RequireAccessibleLabel.ts +1 -12
  164. package/src/utils/filterStylingProps.ts +7 -20
@@ -1,35 +1,20 @@
1
- import { TabsProps as MuiTabsProps, ListProps as MuiTabsListProps, TabsProps as MuiTabsTabProps } from '@mui/material';
1
+ import { TabProps as MuiTabProps } from '@mui/material';
2
2
  import { RecursicaOverStyled } from '../../utils/filterStylingProps';
3
- export interface RecursicaTabsProps extends Omit<MuiTabsProps, "variant" | "classNames" | "color" | "radius"> {
4
- variant?: "default" | "outline" | "pills";
5
- }
3
+ import { RecursicaTabsProps } from '@recursica/adapter-common';
4
+ import { TabPanelProps as MuiTabPanelProps } from '@mui/lab';
6
5
  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 & {
6
+ export declare const Tabs: import('react').ForwardRefExoticComponent<TabsProps & import('react').RefAttributes<HTMLDivElement>>;
7
+ export type TabProps = RecursicaOverStyled<MuiTabProps>;
8
+ export declare const Tab: import('react').ForwardRefExoticComponent<(Omit<Omit<MuiTabProps, import('@recursica/adapter-common').BlockedStylingKeys> & import('@recursica/adapter-common').ForbiddenStyles & {
8
9
  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"> & {
10
+ }, "ref"> | Omit<import('@mui/material').TabOwnProps & Omit<import('@mui/material').ButtonBaseOwnProps, "classes"> & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "className" | "classes" | "style" | "sx" | "value" | "tabIndex" | "children" | "disabled" | "label" | "action" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "icon" | "disableFocusRipple" | "iconPosition" | "wrapped"> & {
16
11
  component?: React.ElementType | undefined;
17
12
  } & {
18
13
  overStyled: true;
19
14
  }, "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 & {
15
+ export type TabPanelProps = RecursicaOverStyled<MuiTabPanelProps>;
16
+ export declare const TabPanel: import('react').ForwardRefExoticComponent<(Omit<Omit<MuiTabPanelProps, import('@recursica/adapter-common').BlockedStylingKeys> & import('@recursica/adapter-common').ForbiddenStyles & {
22
17
  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
- } & {
18
+ }, "ref"> | Omit<MuiTabPanelProps & {
26
19
  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 {};
20
+ }, "ref">) & import('react').RefAttributes<HTMLDivElement>>;
@@ -1,19 +1,5 @@
1
1
  import { default as React } from 'react';
2
2
  import { RecursicaOverStyled } from '../../utils/filterStylingProps';
3
- import { TypographyProps as MuiTypographyProps } from '@mui/material';
4
- export type TextVariant = "body" | "body-small" | "caption" | "overline" | "subtitle" | "subtitle-small";
5
- export type RecursicaTextProps = Omit<MuiTypographyProps, "variant"> & {
6
- variant?: TextVariant;
7
- children?: React.ReactNode;
8
- component?: React.ElementType;
9
- };
3
+ import { RecursicaTextProps } from '@recursica/adapter-common';
10
4
  export type TextProps = RecursicaOverStyled<RecursicaTextProps>;
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
- overStyled?: false | undefined;
13
- }, "ref"> | Omit<Omit<MuiTypographyProps, "variant"> & {
14
- variant?: TextVariant;
15
- children?: React.ReactNode;
16
- component?: React.ElementType;
17
- } & {
18
- overStyled: true;
19
- }, "ref">) & React.RefAttributes<HTMLElement>>;
5
+ export declare const Text: React.ForwardRefExoticComponent<TextProps & React.RefAttributes<HTMLElement>>;
@@ -1,18 +1,12 @@
1
1
  import { default as React } from 'react';
2
2
  import { TextFieldProps as MuiTextareaProps } from '@mui/material';
3
- import { ReadOnlyControlProps } from '@recursica/adapter-common';
3
+ import { ReadOnlyControlProps, RecursicaTextAreaProps as BaseRecursicaTextAreaProps } from '@recursica/adapter-common';
4
4
  import { RecursicaOverStyled } from '../../utils/filterStylingProps';
5
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;
6
+ export interface RecursicaTextAreaProps extends Omit<MuiTextareaProps, "size" | "variant" | "radius" | "wrapperProps">, Pick<RecursicaFormControlWrapperProps, "assistiveText" | "assistiveWithIcon" | "formLayout" | "labelSize" | "labelAlignment" | "labelOptionalText" | "labelWithEditIcon" | "onLabelEditClick">, ReadOnlyControlProps, BaseRecursicaTextAreaProps {
13
7
  }
14
8
  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 & {
9
+ export declare const TextArea: React.ForwardRefExoticComponent<(Omit<Omit<RecursicaTextAreaProps, import('@recursica/adapter-common').BlockedStylingKeys> & import('@recursica/adapter-common').ForbiddenStyles & {
16
10
  overStyled?: false | undefined;
17
11
  }, "ref"> | Omit<RecursicaTextAreaProps & {
18
12
  overStyled: true;
@@ -1,16 +1,12 @@
1
1
  import { default as React } from 'react';
2
2
  import { InputBaseProps } from '@mui/material';
3
- import { ReadOnlyControlProps } from '@recursica/adapter-common';
3
+ import { ReadOnlyControlProps, RecursicaTextFieldProps as BaseRecursicaTextFieldProps } from '@recursica/adapter-common';
4
4
  import { RecursicaOverStyled } from '../../utils/filterStylingProps';
5
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;
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, BaseRecursicaTextFieldProps {
11
7
  }
12
8
  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 & {
9
+ export declare const TextField: React.ForwardRefExoticComponent<(Omit<Omit<RecursicaTextFieldProps, import('@recursica/adapter-common').BlockedStylingKeys> & import('@recursica/adapter-common').ForbiddenStyles & {
14
10
  overStyled?: false | undefined;
15
11
  }, "ref"> | Omit<RecursicaTextFieldProps & {
16
12
  overStyled: true;
@@ -1,3 +1,4 @@
1
1
  import { default as React } from 'react';
2
- export type TimePickerProps = React.HTMLAttributes<HTMLDivElement>;
2
+ import { RecursicaTimePickerProps } from '@recursica/adapter-common';
3
+ export type TimePickerProps = React.HTMLAttributes<HTMLDivElement> & RecursicaTimePickerProps;
3
4
  export declare const TimePicker: React.FC<TimePickerProps>;
@@ -2,12 +2,13 @@ import { default as React } from 'react';
2
2
  import { TimelineProps as MuiTimelineProps } from '@mui/lab/Timeline';
3
3
  import { RecursicaOverStyled } from '../../utils/filterStylingProps';
4
4
  import { TimelineItem } from './TimelineItem';
5
+ import { RecursicaTimelineProps } from '@recursica/adapter-common';
5
6
  /**
6
7
  * Properties for the strictly-tokenized Timeline component.
7
8
  * Native Mui abstract properties like `color`, `radius`, `bulletSize`, and `lineWidth`
8
9
  * have been stripped out to strictly enforce the structural mappings of the Recursica UI Kit.
9
10
  */
10
- export type TimelineProps = RecursicaOverStyled<Omit<MuiTimelineProps, "color" | "radius" | "bulletSize" | "lineWidth">>;
11
+ export type TimelineProps = RecursicaOverStyled<Omit<MuiTimelineProps, "color" | "radius" | "bulletSize" | "lineWidth"> & RecursicaTimelineProps>;
11
12
  interface TimelineComponent extends React.ForwardRefExoticComponent<TimelineProps & React.RefAttributes<HTMLDivElement>> {
12
13
  Item: typeof TimelineItem;
13
14
  }
@@ -1,18 +1,7 @@
1
1
  import { default as React } from 'react';
2
2
  import { TimelineItemProps as MuiTimelineItemProps } from '@mui/lab/TimelineItem';
3
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
- }
4
+ import { RecursicaTimelineItemProps } from '@recursica/adapter-common';
16
5
  export type TimelineItemProps = RecursicaOverStyled<Omit<MuiTimelineItemProps, "radius" | "color" | "lineVariant"> & RecursicaTimelineItemProps>;
17
6
  /**
18
7
  * The individual item component for the Timeline.
@@ -22,7 +11,7 @@ export type TimelineItemProps = RecursicaOverStyled<Omit<MuiTimelineItemProps, "
22
11
  * rendering it below the body content. It also accepts a `bulletVariant` to morph
23
12
  * the structural dimensions of the node circle automatically.
24
13
  */
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 & {
14
+ export declare const TimelineItem: React.ForwardRefExoticComponent<(Omit<Omit<Omit<MuiTimelineItemProps, "color" | "radius" | "lineVariant"> & RecursicaTimelineItemProps, import('@recursica/adapter-common').BlockedStylingKeys> & import('@recursica/adapter-common').ForbiddenStyles & {
26
15
  overStyled?: false | undefined;
27
16
  }, "ref"> | Omit<Omit<MuiTimelineItemProps, "color" | "radius" | "lineVariant"> & RecursicaTimelineItemProps & {
28
17
  overStyled: true;
@@ -1,18 +1,5 @@
1
1
  import { default as React } from 'react';
2
2
  import { RecursicaOverStyled } from '../../utils/filterStylingProps';
3
- import { TypographyProps as MuiTypographyProps } from '@mui/material';
4
- export type RecursicaTitleProps = Omit<MuiTypographyProps, "variant"> & {
5
- order?: 1 | 2 | 3 | 4 | 5 | 6;
6
- children?: React.ReactNode;
7
- component?: React.ElementType;
8
- };
3
+ import { RecursicaTitleProps } from '@recursica/adapter-common';
9
4
  export type TitleProps = RecursicaOverStyled<RecursicaTitleProps>;
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
- overStyled?: false | undefined;
12
- }, "ref"> | Omit<Omit<MuiTypographyProps, "variant"> & {
13
- order?: 1 | 2 | 3 | 4 | 5 | 6;
14
- children?: React.ReactNode;
15
- component?: React.ElementType;
16
- } & {
17
- overStyled: true;
18
- }, "ref">) & React.RefAttributes<HTMLElement>>;
5
+ export declare const Title: React.ForwardRefExoticComponent<TitleProps & React.RefAttributes<HTMLElement>>;
@@ -1,26 +1,21 @@
1
1
  import { default as React } from 'react';
2
- import { SnackbarProps as MuiNotificationProps } from '@mui/material';
2
+ import { AlertProps as MuiAlertProps } from '@mui/material';
3
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;
4
+ import { RecursicaToastProps as BaseRecursicaToastProps } from '@recursica/adapter-common';
5
+ export interface RecursicaToastProps extends BaseRecursicaToastProps {
6
+ withCloseButton?: boolean;
7
+ title?: React.ReactNode;
8
+ icon?: React.ReactNode;
9
+ onClose?: () => void;
15
10
  }
16
11
  /**
17
- * Toast component wrapping Mui's Notification.
12
+ * Toast component wrapping Mui's Alert.
18
13
  *
19
14
  * Can be used as a standalone visual component to display a notification or message.
20
15
  */
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 & {
16
+ export type ToastProps = RecursicaOverStyled<Omit<MuiAlertProps, "color" | "radius" | "variant" | "onClose"> & RecursicaToastProps>;
17
+ export declare const Toast: React.ForwardRefExoticComponent<(Omit<Omit<Omit<MuiAlertProps, "color" | "variant" | "onClose" | "radius"> & RecursicaToastProps, import('@recursica/adapter-common').BlockedStylingKeys> & import('@recursica/adapter-common').ForbiddenStyles & {
23
18
  overStyled?: false | undefined;
24
- }, "ref"> | Omit<Omit<MuiNotificationProps, "color" | "variant" | "radius" | "loading"> & RecursicaToastProps & {
19
+ }, "ref"> | Omit<Omit<MuiAlertProps, "color" | "variant" | "onClose" | "radius"> & RecursicaToastProps & {
25
20
  overStyled: true;
26
21
  }, "ref">) & React.RefAttributes<HTMLDivElement>>;
@@ -1,17 +1,6 @@
1
- import { Tooltip as MuiTooltip, TooltipProps as MuiTooltipProps } from '@mui/material';
1
+ import { TooltipProps as MuiTooltipProps } from '@mui/material';
2
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
- }
3
+ import { RecursicaTooltipProps } from '@recursica/adapter-common';
15
4
  /**
16
5
  * Recursica Tooltip component wrapping Mui's Tooltip.
17
6
  *
@@ -30,13 +19,10 @@ export interface RecursicaTooltipProps {
30
19
  * - `// Tooltip.Group` — Shared hover delay group for multiple tooltips
31
20
  */
32
21
  export type TooltipProps = RecursicaOverStyled<MuiTooltipProps & RecursicaTooltipProps>;
33
- declare const TooltipBase: {
34
- ({ overStyled, withBeak, ...rest }: TooltipProps): import("react/jsx-runtime").JSX.Element;
22
+ export declare const Tooltip: {
23
+ ({ overStyled, withBeak, label, opened, ...rest }: TooltipProps & {
24
+ label?: React.ReactNode;
25
+ opened?: boolean;
26
+ }): import("react/jsx-runtime").JSX.Element;
35
27
  displayName: string;
36
28
  };
37
- type TooltipComponent = typeof TooltipBase & {
38
- Floating: typeof MuiTooltip.Floating;
39
- Group: typeof MuiTooltip.Group;
40
- };
41
- export declare const Tooltip: TooltipComponent;
42
- export {};
@@ -1,3 +1,4 @@
1
1
  import { default as React } from 'react';
2
- export type TransferListProps = React.HTMLAttributes<HTMLDivElement>;
2
+ import { RecursicaTransferListProps } from '@recursica/adapter-common';
3
+ export type TransferListProps = React.HTMLAttributes<HTMLDivElement> & RecursicaTransferListProps;
3
4
  export declare const TransferList: React.FC<TransferListProps>;
@@ -14,7 +14,7 @@ export declare const Typography: React.ForwardRefExoticComponent<(Omit<Omit<Omit
14
14
  */
15
15
  typographyClass: string;
16
16
  component?: React.ElementType;
17
- }, "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 & {
17
+ }, import('@recursica/adapter-common').BlockedStylingKeys> & import('@recursica/adapter-common').ForbiddenStyles & {
18
18
  overStyled?: false | undefined;
19
19
  }, "ref"> | Omit<Omit<MuiTypographyProps, "variant"> & {
20
20
  /**
@@ -1,18 +1 @@
1
- import { ReactNode } from 'react';
2
- /**
3
- * Enforces accessibility by strictly requiring at least one form of labeling:
4
- * either a visual \`label\`, an \`aria-label\`, or an \`aria-labelledby\`.
5
- */
6
- export type RequireAccessibleLabel<T> = T & ({
7
- label: ReactNode;
8
- "aria-label"?: string;
9
- "aria-labelledby"?: string;
10
- } | {
11
- label?: ReactNode;
12
- "aria-label": string;
13
- "aria-labelledby"?: string;
14
- } | {
15
- label?: ReactNode;
16
- "aria-label"?: string;
17
- "aria-labelledby": string;
18
- });
1
+ export { type RequireAccessibleLabel } from '@recursica/adapter-common';
@@ -22,18 +22,8 @@
22
22
  * @returns Sanitized component props safe for internal styling merging
23
23
  */
24
24
  export declare const BLOCKED_STYLING_KEYS: readonly ["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"];
25
- export type BlockedStylingKeys = (typeof BLOCKED_STYLING_KEYS)[number];
26
- export type RecursicaSpacing = "rec-none" | "rec-sm" | "rec-default" | "rec-md" | "rec-lg" | "rec-xl" | "rec-2xl";
27
- export type RecursicaSize = "small" | "default" | "large";
25
+ export { type RecursicaSpacing, type RecursicaSize, type RecursicaOverStyled, type BlockedStylingKeys, type ForbiddenStyles, } from '@recursica/adapter-common';
28
26
  export declare const SPACING_MAP: Record<string, string>;
29
- export type ForbiddenStyles = {
30
- [K in BlockedStylingKeys]?: never;
31
- };
32
27
  export type OmitSx<T> = Omit<T, "sx">;
33
28
  export declare function filterSxProp<T extends Record<string, unknown>>(props: T): Omit<T, "sx">;
34
- export type RecursicaOverStyled<T> = (Omit<T, BlockedStylingKeys> & ForbiddenStyles & {
35
- overStyled?: false | undefined;
36
- }) | (T & {
37
- overStyled: true;
38
- });
39
29
  export declare function filterStylingProps<T extends Record<string, unknown>>(props: T, overStyled?: boolean): Partial<T>;
package/llms.txt ADDED
@@ -0,0 +1,16 @@
1
+ # @recursica/mui-adapter
2
+
3
+ > Reusable UI components for Recursica applications based on Material UI (MUI) v7.
4
+
5
+ This adapter converts Recursica design tokens into MUI-specific themes and components.
6
+
7
+ ## Usage Guidelines
8
+
9
+ - Relies on `@mui/material`, `@emotion/react`, and `@emotion/styled` peer dependencies.
10
+ - When building UI in consumer applications, prioritize using components exported by this package to adhere to the Recursica design system.
11
+
12
+ ## Documentation
13
+
14
+ - [USAGE](USAGE.md): Detailed usage instructions.
15
+ - [ARCHITECTURE](ARCHITECTURE.md): Package architecture and dependencies.
16
+ - [README](README.md)
package/package.json CHANGED
@@ -13,7 +13,7 @@
13
13
  "url": "git+https://github.com/borderux/recursica.git",
14
14
  "directory": "packages/mui-adapter"
15
15
  },
16
- "version": "0.6.0",
16
+ "version": "0.7.0",
17
17
  "publishConfig": {
18
18
  "access": "public"
19
19
  },
@@ -33,7 +33,11 @@
33
33
  "dist",
34
34
  "src",
35
35
  "CHANGELOG.md",
36
- ".storybook/commonArgTypes.ts"
36
+ ".storybook/commonArgTypes.ts",
37
+ "llms.txt",
38
+ "USAGE.md",
39
+ "ARCHITECTURE.md",
40
+ "SETUP.md"
37
41
  ],
38
42
  "keywords": [
39
43
  "react",
@@ -160,8 +160,7 @@
160
160
  }
161
161
  .control:hover:not(:disabled)::after {
162
162
  opacity: var(
163
- --recursica_ui-kit_components_accordion-item_properties_hover-opacity,
164
- 0.1
163
+ --recursica_ui-kit_components_accordion-item_properties_hover-opacity
165
164
  );
166
165
  }
167
166
 
@@ -143,21 +143,3 @@ export const LayerOne: StoryObj<typeof Accordion> = {
143
143
  );
144
144
  },
145
145
  };
146
-
147
- export const Docs: StoryObj<typeof Accordion> = {
148
- render: () => {
149
- return (
150
- <Layer layer={0} style={{ padding: "24px" }}>
151
- <Accordion defaultValue="docs-1">
152
- <Accordion.Item value="docs-1">
153
- <Accordion.Control>Documentation Content</Accordion.Control>
154
- <Accordion.Panel>
155
- This is the explicitly requested Docs story for automated layout
156
- testing.
157
- </Accordion.Panel>
158
- </Accordion.Item>
159
- </Accordion>
160
- </Layer>
161
- );
162
- },
163
- };
@@ -13,6 +13,12 @@ import {
13
13
  } from "../../utils/filterStylingProps";
14
14
  import styles from "./Accordion.module.css";
15
15
 
16
+ import {
17
+ type RecursicaAccordionProps,
18
+ type RecursicaAccordionItemProps,
19
+ type RecursicaAccordionControlProps,
20
+ } from "@recursica/adapter-common";
21
+
16
22
  const ChevronIcon = () => (
17
23
  <svg
18
24
  viewBox="0 0 24 24"
@@ -35,13 +41,7 @@ const AccordionContext = createContext<{
35
41
 
36
42
  // ==== ACCORDION CONTAINER ====
37
43
  export type AccordionProps = RecursicaOverStyled<
38
- React.HTMLAttributes<HTMLDivElement> & {
39
- variant?: string;
40
- value?: string | string[];
41
- defaultValue?: string | string[];
42
- onChange?: (value: string | string[] | null) => void;
43
- multiple?: boolean;
44
- }
44
+ React.HTMLAttributes<HTMLDivElement> & RecursicaAccordionProps
45
45
  >;
46
46
 
47
47
  const AccordionBase = forwardRef<HTMLDivElement, AccordionProps>(
@@ -106,15 +106,11 @@ const AccordionBase = forwardRef<HTMLDivElement, AccordionProps>(
106
106
  );
107
107
  AccordionBase.displayName = "Accordion";
108
108
 
109
- // ==== ACCORDION ITEM ====
110
109
  export type AccordionItemWrapperProps = RecursicaOverStyled<
111
110
  Omit<MuiAccordionProps, "children" | "value"> & {
112
111
  children?: React.ReactNode;
113
- title?: React.ReactNode;
114
- leftIcon?: React.ReactNode;
115
- divider?: boolean;
116
112
  value: string;
117
- }
113
+ } & RecursicaAccordionItemProps
118
114
  >;
119
115
 
120
116
  export const AccordionItem = forwardRef<
@@ -171,14 +167,16 @@ export const AccordionItem = forwardRef<
171
167
  "expanded" | "onChange"
172
168
  >)}
173
169
  >
174
- {title ? (
175
- <>
176
- <AccordionControl leftIcon={leftIcon}>{title}</AccordionControl>
177
- <AccordionPanel>{children}</AccordionPanel>
178
- </>
179
- ) : (
180
- children
181
- )}
170
+ {
171
+ (title ? (
172
+ <>
173
+ <AccordionControl leftIcon={leftIcon}>{title}</AccordionControl>
174
+ <AccordionPanel>{children}</AccordionPanel>
175
+ </>
176
+ ) : (
177
+ children
178
+ )) as any
179
+ }
182
180
  </MuiAccordion>
183
181
  );
184
182
  });
@@ -186,9 +184,7 @@ AccordionItem.displayName = "AccordionItem";
186
184
 
187
185
  // ==== ACCORDION CONTROL ====
188
186
  export type AccordionControlWrapperProps = RecursicaOverStyled<
189
- MuiAccordionSummaryProps & {
190
- leftIcon?: React.ReactNode;
191
- }
187
+ MuiAccordionSummaryProps & RecursicaAccordionControlProps
192
188
  >;
193
189
 
194
190
  export const AccordionControl = forwardRef<
@@ -5,15 +5,21 @@
5
5
 
6
6
  .root {
7
7
  /* Override MUI FormHelperText native resets structurally safely */
8
- display: flex;
9
- align-items: flex-start; /* Forces the icon to align with the first line of text */
10
- margin: 0; /* HARDCODE: structural reset */
11
- padding: 0; /* HARDCODE: structural reset */
8
+ display: flex !important;
9
+ align-items: flex-start !important; /* Forces the icon to align with the first line of text */
10
+ margin: 0 !important; /* HARDCODE: structural reset */
11
+ padding: 0 !important; /* HARDCODE: structural reset */
12
12
  width: 100%;
13
13
 
14
14
  gap: var(
15
15
  --recursica_ui-kit_components_assistive-element_properties_icon-text-gap
16
16
  );
17
+ margin-top: var(
18
+ --recursica_ui-kit_components_assistive-element_properties_top-margin
19
+ ) !important;
20
+ max-width: var(
21
+ --recursica_ui-kit_components_assistive-element_properties_max-width
22
+ );
17
23
 
18
24
  font-family: var(
19
25
  --recursica_ui-kit_components_assistive-element_properties_text_font-family
@@ -42,40 +48,37 @@
42
48
  }
43
49
 
44
50
  .text {
45
- flex: 1; /* Consume remaining space causing native flex wrap */
51
+ overflow-wrap: break-word;
52
+ white-space: normal;
46
53
  }
47
54
 
48
55
  /* Base Icon Architecture */
49
56
  .icon {
50
- flex-shrink: 0; /* Prevent squishing */
51
- display: flex;
52
- align-items: center;
53
- justify-content: center;
57
+ flex-shrink: 0 !important; /* Prevent squishing */
58
+ display: flex !important;
59
+ align-items: center !important;
60
+ justify-content: center !important;
61
+
54
62
  width: var(
55
63
  --recursica_ui-kit_components_assistive-element_properties_icon-size
56
- );
57
- height: var(
58
- --recursica_ui-kit_components_assistive-element_properties_icon-size
59
- );
60
-
61
- /* Mathematical vertical centering bounds to the first line of typography explicitly */
62
- margin-top: calc(
63
- (
64
- var(
65
- --recursica_ui-kit_components_assistive-element_properties_text_line-height
66
- ) -
67
- var(
68
- --recursica_ui-kit_components_assistive-element_properties_icon-size
69
- )
70
- ) /
71
- 2
72
- ); /* Forces exact centering bounds within the first text line vertically */
64
+ ) !important;
65
+ height: calc(
66
+ var(
67
+ --recursica_ui-kit_components_assistive-element_properties_text_line-height
68
+ ) *
69
+ var(
70
+ --recursica_ui-kit_components_assistive-element_properties_text_font-size
71
+ )
72
+ ) !important; /* Forces exact centering bounds within the first text line vertically */
73
73
  }
74
74
 
75
75
  .icon :global(svg) {
76
- width: 100%;
77
- height: 100%;
78
- stroke-width: 2px;
76
+ width: var(
77
+ --recursica_ui-kit_components_assistive-element_properties_icon-size
78
+ ) !important;
79
+ height: var(
80
+ --recursica_ui-kit_components_assistive-element_properties_icon-size
81
+ ) !important;
79
82
  }
80
83
 
81
84
  /* =========================================