@recursica/mui-adapter 0.21.1 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ARCHITECTURE.md +3 -0
- package/CHANGELOG.md +75 -0
- package/dist/index.d.ts +247 -41
- package/dist/mui-adapter.cjs +78 -78
- package/dist/mui-adapter.cjs.map +1 -1
- package/dist/mui-adapter.css +1 -1
- package/dist/mui-adapter.js +7624 -7311
- package/dist/mui-adapter.js.map +1 -1
- package/package.json +1 -1
- package/src/components/Accordion/ACCORDION_IMPLEMENTATION_NOTES.md +63 -0
- package/src/components/Accordion/Accordion.module.css +21 -2
- package/src/components/Accordion/Accordion.stories.tsx +38 -0
- package/src/components/Accordion/Accordion.tsx +27 -12
- package/src/components/AssistiveElement/ASSISTIVEELEMENT_IMPLEMENTATION_NOTES.md +59 -0
- package/src/components/AssistiveElement/AssistiveElement.module.css +8 -1
- package/src/components/AssistiveElement/AssistiveElement.tsx +17 -7
- package/src/components/Autocomplete/Autocomplete.tsx +18 -2
- package/src/components/Avatar/AVATAR_IMPLEMENTATION_NOTES.md +36 -0
- package/src/components/Avatar/Avatar.tsx +6 -9
- package/src/components/Badge/Badge.module.css +0 -12
- package/src/components/Badge/Badge.tsx +0 -4
- package/src/components/Button/Button.module.css +13 -0
- package/src/components/Card/Card.tsx +5 -5
- package/src/components/Checkbox/Checkbox.module.css +17 -21
- package/src/components/Checkbox/Checkbox.tsx +24 -18
- package/src/components/Chip/CHIP_IMPLEMENTATION_NOTES.md +102 -0
- package/src/components/Chip/Chip.module.css +46 -11
- package/src/components/Chip/Chip.tsx +41 -5
- package/src/components/Chip/USAGE.md +19 -0
- package/src/components/FileUpload/FILEUPLOAD_IMPLEMENTATION_NOTES.md +249 -0
- package/src/components/FileUpload/FileUpload.module.css +203 -38
- package/src/components/FileUpload/FileUpload.stories.tsx +348 -4
- package/src/components/FileUpload/FileUpload.tsx +350 -6
- package/src/components/FileUpload/USAGE.md +163 -5
- package/src/components/Flex/Flex.tsx +1 -1
- package/src/components/FormControlWrapper/FORMCONTROLWRAPPER_IMPLEMENTATION_NOTES.md +35 -0
- package/src/components/FormControlWrapper/FormControlWrapper.tsx +24 -8
- package/src/components/Grid/Grid.tsx +1 -1
- package/src/components/Group/Group.tsx +1 -1
- package/src/components/HoverCard/HoverCard.tsx +1 -1
- package/src/components/Label/Label.module.css +15 -2
- package/src/components/Label/Label.tsx +7 -6
- package/src/components/Menu/Menu.tsx +1 -1
- package/src/components/Modal/Modal.tsx +1 -1
- package/src/components/NumberInput/NumberInput.tsx +1 -1
- package/src/components/Pagination/Pagination.tsx +1 -1
- package/src/components/Panel/Panel.tsx +1 -1
- package/src/components/Radio/Radio.module.css +33 -38
- package/src/components/Radio/Radio.tsx +58 -44
- package/src/components/Radio/RadioGroup.tsx +5 -0
- package/src/components/SegmentedControl/SegmentedControl.module.css +0 -7
- package/src/components/SegmentedControl/SegmentedControl.tsx +4 -8
- package/src/components/Slider/Slider.tsx +1 -1
- package/src/components/Stack/Stack.tsx +1 -1
- package/src/components/Stepper/Stepper.tsx +3 -3
- package/src/components/Switch/SWITCH_IMPLEMENTATION_NOTES.md +123 -0
- package/src/components/Switch/Switch.module.css +152 -89
- package/src/components/Switch/Switch.tsx +140 -33
- package/src/components/Switch/SwitchGroup.tsx +37 -9
- package/src/components/Table/Table.tsx +1 -1
- package/src/components/Tabs/IMPLEMENTATION_NOTES.md +10 -0
- package/src/components/Tabs/Tabs.module.css +120 -43
- package/src/components/Tabs/Tabs.stories.tsx +5 -2
- package/src/components/Tabs/Tabs.tsx +1 -1
- package/src/components/Tabs/USAGE.md +27 -11
- package/src/components/TextField/TextField.tsx +1 -1
- package/src/components/TimePicker/TimePicker.tsx +1 -1
- package/src/components/Timeline/Timeline.tsx +1 -1
- package/src/components/Timeline/TimelineItem.tsx +2 -2
- package/src/components/Toast/Toast.tsx +4 -4
- package/src/components/Tooltip/Tooltip.tsx +1 -1
- package/src/components/Tree/Tree.tsx +1 -1
- package/src/index.ts +3 -1
- package/src/types/mantine.d.ts +0 -7
package/ARCHITECTURE.md
CHANGED
|
@@ -13,3 +13,6 @@ This document describes the high-level architecture and philosophy of the `@recu
|
|
|
13
13
|
|
|
14
14
|
- Components map closely to Material UI's structure but enforce Recursica design tokens.
|
|
15
15
|
- We avoid over-styling; components only diverge from MUI defaults when dictated by the Recursica design system.
|
|
16
|
+
- Each component adheres to the underlying UI-kit prop signature so that they can easily replace components in the existing code-base
|
|
17
|
+
- Recursica defines a set of common props that are shared across all framework adapters. These sometimes serve the same purpose as existing UI-kit props. In that case, the Recursica prop takes precedence and are the preferred way to achieve the desired effect.
|
|
18
|
+
- Adapter props are removed from the underlying UI-kit when it leads to behavior that Recursica does not support. Recursica is opinionated about the behavior of its components and does not support all of the behavior of the underlying UI-kit.
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,80 @@
|
|
|
1
1
|
# @recursica/mui-adapter
|
|
2
2
|
|
|
3
|
+
## 0.23.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 1c317a3: Implement the `FileUpload` component (drag-and-drop dropzone, browse-button fallback, removable file-chip list) in `mantine-adapter` and `mui-adapter`, replacing the "coming soon" stub, with a shared `RecursicaFileUploadProps`/`RecursicaFileUploadItem` contract in `adapter-common`. Also fixes `mui-adapter`'s `Chip` component's public type to allow `children` (a pre-existing type-only gap; the component already accepted them at runtime).
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- 1c317a3: `FileUpload` now surfaces a built-in error message ("File type not accepted", overridable via the new `invalidFileTypeMessage` prop) when a dropped/picked file doesn't match `accept`, shown through the standard assistive-text error slot instead of requiring the integrator to wire up `onFilesRejected` themselves. Also reverts `FileUpload`'s assistive/error rendering back to `FormControlWrapper` (file list renders above the assistive/error text again, matching every other form control).
|
|
12
|
+
|
|
13
|
+
Fixes `Chip` clipping the descender (e.g. the "g" in "image.png") off long labels — `overflow: hidden` was clipping vertically as well as horizontally, cutting off glyph ink whenever the line-height token was tighter than the font's natural ascent+descent.
|
|
14
|
+
|
|
15
|
+
- 1c317a3: `FileUpload` now supports a `maxFiles` prop (with an overridable `maxFilesMessage`, defaulting to "Maximum of {maxFiles} files allowed") that rejects files past a total-count cap the same way `accept`/`maxSize` already do.
|
|
16
|
+
|
|
17
|
+
Fixes `Chip` rendered without a real handler (`onRemove`/`onClick`/`onChange`) — such as `FileUpload`'s `readOnly` file list — still showing a pointer cursor on hover and picking up a phantom, un-styled keyboard Tab stop on its truncated label text. Both were general `Chip` bugs, not specific to `FileUpload`.
|
|
18
|
+
|
|
19
|
+
- 1c317a3: Fix `Button` showing the native browser focus outline instead of the recursica focus ring, and fix `Chip` losing its remove (X) icon behind an overflowing long label instead of truncating with an ellipsis. Adds optional `removeTabIndex`/`removeIconRef` props to `Chip` for building keyboard-navigable chip groups. Also fixes the remove icon's own focus ring rendering in the chip's neutral border color instead of the recursica focus-ring color, making it barely visible.
|
|
20
|
+
- Updated dependencies [1c317a3]
|
|
21
|
+
- Updated dependencies [1c317a3]
|
|
22
|
+
- Updated dependencies [1c317a3]
|
|
23
|
+
- Updated dependencies [1c317a3]
|
|
24
|
+
- @recursica/adapter-common@0.16.0
|
|
25
|
+
|
|
26
|
+
## 0.22.0
|
|
27
|
+
|
|
28
|
+
### Minor Changes
|
|
29
|
+
|
|
30
|
+
- 106bc34: Accordion: closed silent prop-contract conflicts where native `expanded`/`onChange`/`expandIcon`/`icon` could override Recursica's own computed state, made `variant` a real predefined union instead of a bare string, and formally supported a per-item `disabled` prop in both adapters.
|
|
31
|
+
Also documented `children` across all Accordion sub-components in `RecursicaAccordionProps.ts`, including a new `RecursicaAccordionPanelProps` interface for the Panel.
|
|
32
|
+
- 106bc34: AssistiveElement: `assistiveVariant="error"` now defaults `role="alert"` in both adapters so
|
|
33
|
+
error text is announced by assistive tech as it appears or changes (an explicit `role` still
|
|
34
|
+
wins). Also (MUI only) closed a prop-contract conflict where native `error`/`component` could
|
|
35
|
+
silently override Recursica's own computed values, added the missing `RecursicaOverStyled`
|
|
36
|
+
wrapper, and hardened a CSS specificity tie against MUI's own `.Mui-error` color. Documented
|
|
37
|
+
`children` in `RecursicaAssistiveElementProps.ts` and added implementation notes to both adapters.
|
|
38
|
+
|
|
39
|
+
### Patch Changes
|
|
40
|
+
|
|
41
|
+
- 106bc34: Autocomplete (MUI): fixed four bugs, all traced to `renderInput` discarding MUI's `InputProps` (dropping the `classes.inputRoot` className, the anchor ref, and adornment slots). Restored `InputProps` so the design-system border/padding actually applies instead of MUI's default underline chrome; wired `leftSection`/`rightSection` into `startAdornment`/`endAdornment` (previously destructured but never rendered, so icons never showed); and stopped coercing `error` to a boolean before the wrapper, which was discarding the error message string (ErrorState story showed no assistive text).
|
|
42
|
+
- 106bc34: Avatar (MUI): fixed `variant` being fed into MUI's native shape prop instead of a color treatment, making it a silent no-op. Also documented `children` in the shared prop types and added missing mui-adapter implementation notes.
|
|
43
|
+
- 106bc34: Checkbox (MUI): fixed the checkmark never appearing on click — `checked` was always
|
|
44
|
+
forced onto MUI's native input even for plain uncontrolled usage (no `checked`/only
|
|
45
|
+
`defaultChecked`), pinning it to a value that never updates after the initial render.
|
|
46
|
+
Now only forced when grouped (CheckboxGroup owns state) or the caller explicitly passes
|
|
47
|
+
`checked`, matching the existing `Switch` pattern. Also fixed the label rendering
|
|
48
|
+
vertically offset from the checkbox (`.labelWrapper` needed `display: flex` to blockify
|
|
49
|
+
the native inline `<label>`, mirroring Mantine's own wrapper) and the checkmark icon
|
|
50
|
+
rendering off-center inside the box in both standalone Checkbox and CheckboxGroup
|
|
51
|
+
(`.input` now centers its icon child directly).
|
|
52
|
+
- 106bc34: Disabled Checkbox/Switch's MUI-default click ripple (not present in Mantine) and made their description/error text mutually exclusive (error wins), matching the same fixes just made to Radio.
|
|
53
|
+
- 106bc34: Chip (MUI): fixed three visual bugs vs `mantine-adapter` — extra right padding on short-text chips (duplicate `min-width`/`max-width` applied on both `.root` and `.label`, now only on `.root`), delete/leading icon color and spacing leaking MUI's own default styles (fixed via CSS specificity match on `.leadingIcon`/`.removeIconWrapper`), and a missing icon-text gap on the leading icon (accidental blanket `margin: 0` collapsed it — restored `margin-right` for the gap, matching the selected-state check icon).
|
|
54
|
+
- 106bc34: FormControlWrapper (MUI): fixed ARIA wiring to match the Mantine adapter — a self-generated
|
|
55
|
+
`id` fallback (via `useId`) now fires by default instead of only when a caller supplies their
|
|
56
|
+
own `id`, and help/error text each get their own id (`aria-describedby`/`aria-errormessage`)
|
|
57
|
+
instead of sharing one. Neither attribute is set if the child already has its own explicit
|
|
58
|
+
value.
|
|
59
|
+
- 106bc34: Label (MUI): fixed focused descendant controls (e.g. a grouped Switch/Checkbox) bleeding MUI's default blue into the label text, mirroring the existing `.Mui-error` override with a matching `.Mui-focused` one.
|
|
60
|
+
- 106bc34: Label (MUI): fixed optional text rendering inline next to the label instead of on its own line — `innerLayout` now wraps and `optionalText` is forced onto a full-width row, matching `mantine-adapter`.
|
|
61
|
+
- 106bc34: Audited every component for the "spread after computed props" ordering bug (caller props silently overriding internal className/classes/icon/sx/onChange) and reordered spread-first in ~25 components. See COMPONENT_DEV_GUIDE.md §3.2 (adapter-common) for the rule.
|
|
62
|
+
- 106bc34: Removed leftover literal Mantine references from mui-adapter CSS/types (dead `:global(.mantine-*)` selectors, unused classes wiring, a stray `@mantine/core` type augmentation) and swapped a hardcoded Mantine red for the real error-text token in Radio/Checkbox/Switch.
|
|
63
|
+
- 106bc34: Radio/Checkbox/Switch description and error text now render through the shared `AssistiveElement` component instead of locally styled divs, removing the last hardcoded hex values (Mantine's default dimmed gray) from mui-adapter CSS.
|
|
64
|
+
- 106bc34: Fixed Radio rendering no visible circle (only the label) — `classes` was being read as `classNames` with Mantine-shaped slot names MUI doesn't support, so the circle's styling was silently dropped. Also fixed the label rendering vertically offset from the circle, disabled MUI's default click ripple, made description/error mutually exclusive (error wins), and reordered the props spread so it can no longer silently override the render-critical props placed after it.
|
|
65
|
+
- 106bc34: Fixed RadioGroup selection not updating in mui-adapter — its onChange was typed and wired as MUI's native `(event, value)`, but Mantine's RadioGroup (the cross-adapter source of truth) only ever calls back with `(value)`. Normalized the shared contract and mui-adapter's wiring to single-argument.
|
|
66
|
+
- 106bc34: Switch: attached `SwitchGroup` as the `Switch.Group` compound export (it existed standalone but was never attached), and tightened `RecursicaSwitchGroupProps` value types from `unknown[]` to `string[]`.
|
|
67
|
+
- 106bc34: Switch (MUI): `SwitchGroup` now actually controls its children via a `SwitchGroupContext` (same pattern as `Checkbox`/`CheckboxGroup`) — previously `value`/`defaultValue`/`onChange` were destructured and discarded, so grouped switches never checked or updated.
|
|
68
|
+
- 106bc34: SwitchGroup: fixed `side-by-side` layout always rendering as if stacked — the group was capped to the switch-item label's own 200px max-width, narrower than the mandatory 224px label column, guaranteeing a wrap.
|
|
69
|
+
- 106bc34: Switch (MUI): fixed track/thumb geometry, checked-state color and opacity, thumb icon, disabled-state opacity, the focus ring target/color, and a `classes`/`classNames` prop bug — bringing it to visual parity with `mantine-adapter`.
|
|
70
|
+
- 106bc34: Tabs (MUI): fixed missing `value` on `Tabs` (never read `TabContext`, so no tab was ever selected), the panel rendering beside instead of below the tab list, and dead `.Mui-selected`/`.panel` CSS selectors.
|
|
71
|
+
- Updated dependencies [106bc34]
|
|
72
|
+
- Updated dependencies [106bc34]
|
|
73
|
+
- Updated dependencies [106bc34]
|
|
74
|
+
- Updated dependencies [106bc34]
|
|
75
|
+
- Updated dependencies [106bc34]
|
|
76
|
+
- @recursica/adapter-common@0.15.0
|
|
77
|
+
|
|
3
78
|
## 0.21.1
|
|
4
79
|
|
|
5
80
|
### Patch Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { AccordionDetailsProps } from '@mui/material';
|
|
2
2
|
import { AccordionProps as AccordionProps_2 } from '@mui/material';
|
|
3
|
-
import { AccordionSummaryOwnProps } from '@mui/material';
|
|
4
3
|
import { AccordionSummaryProps } from '@mui/material';
|
|
5
4
|
import { AlertProps } from '@mui/material';
|
|
6
5
|
import { AutocompleteProps } from '@mui/material';
|
|
@@ -8,7 +7,6 @@ import { AvatarProps as AvatarProps_2 } from '@mui/material';
|
|
|
8
7
|
import { BadgeProps as BadgeProps_2 } from '@mui/material';
|
|
9
8
|
import { BoxProps as BoxProps_2 } from '@mui/material';
|
|
10
9
|
import { BreadcrumbsProps } from '@mui/material';
|
|
11
|
-
import { ButtonBaseOwnProps } from '@mui/material';
|
|
12
10
|
import { ButtonProps as ButtonProps_2 } from '@mui/material';
|
|
13
11
|
import { CardOwnProps } from '@mui/material';
|
|
14
12
|
import { CardProps as CardProps_2 } from '@mui/material';
|
|
@@ -85,13 +83,9 @@ declare type AccordionComponent = typeof AccordionBase & {
|
|
|
85
83
|
|
|
86
84
|
export declare const AccordionControl: typeof rawComponents.AccordionControl;
|
|
87
85
|
|
|
88
|
-
declare const AccordionControl_2: default_2.ForwardRefExoticComponent<(Omit<Omit<WithRecursicaSpacing<
|
|
89
|
-
component?: default_2.ElementType | undefined;
|
|
90
|
-
} & RecursicaAccordionControlProps>, BlockedStylingKeys> & ForbiddenStyles & {
|
|
86
|
+
declare const AccordionControl_2: default_2.ForwardRefExoticComponent<(Omit<Omit<WithRecursicaSpacing<Omit<AccordionSummaryProps, "expandIcon"> & RecursicaAccordionControlProps>, BlockedStylingKeys> & ForbiddenStyles & {
|
|
91
87
|
overStyled?: false | undefined;
|
|
92
|
-
}, "ref"> | Omit<Omit<
|
|
93
|
-
component?: default_2.ElementType | undefined;
|
|
94
|
-
} & RecursicaAccordionControlProps, "m" | "my" | "mx" | "mt" | "mb" | "ml" | "mr" | "gap" | "rowGap" | "columnGap"> & {
|
|
88
|
+
}, "ref"> | Omit<Omit<Omit<AccordionSummaryProps, "expandIcon"> & RecursicaAccordionControlProps, "m" | "my" | "mx" | "mt" | "mb" | "ml" | "mr" | "gap" | "rowGap" | "columnGap"> & {
|
|
95
89
|
m?: string | number | RecursicaSpacing;
|
|
96
90
|
mx?: string | number | RecursicaSpacing;
|
|
97
91
|
my?: string | number | RecursicaSpacing;
|
|
@@ -106,16 +100,16 @@ component?: default_2.ElementType | undefined;
|
|
|
106
100
|
overStyled: true;
|
|
107
101
|
}, "ref">) & default_2.RefAttributes<HTMLDivElement>>;
|
|
108
102
|
|
|
109
|
-
declare type AccordionControlWrapperProps = RecursicaOverStyled<AccordionSummaryProps & RecursicaAccordionControlProps>;
|
|
103
|
+
declare type AccordionControlWrapperProps = RecursicaOverStyled<Omit<AccordionSummaryProps, "expandIcon"> & RecursicaAccordionControlProps>;
|
|
110
104
|
|
|
111
105
|
export declare const AccordionItem: typeof rawComponents.AccordionItem;
|
|
112
106
|
|
|
113
|
-
declare const AccordionItem_2: default_2.ForwardRefExoticComponent<(Omit<Omit<WithRecursicaSpacing<Omit<AccordionProps_2, "value" | "children"> & {
|
|
107
|
+
declare const AccordionItem_2: default_2.ForwardRefExoticComponent<(Omit<Omit<WithRecursicaSpacing<Omit<AccordionProps_2, "value" | "children" | "onChange" | "defaultExpanded" | "expanded"> & {
|
|
114
108
|
children?: default_2.ReactNode;
|
|
115
109
|
value: string;
|
|
116
110
|
} & RecursicaAccordionItemProps>, BlockedStylingKeys> & ForbiddenStyles & {
|
|
117
111
|
overStyled?: false | undefined;
|
|
118
|
-
}, "ref"> | Omit<Omit<Omit<AccordionProps_2, "value" | "children"> & {
|
|
112
|
+
}, "ref"> | Omit<Omit<Omit<AccordionProps_2, "value" | "children" | "onChange" | "defaultExpanded" | "expanded"> & {
|
|
119
113
|
children?: default_2.ReactNode;
|
|
120
114
|
value: string;
|
|
121
115
|
} & RecursicaAccordionItemProps, "m" | "my" | "mx" | "mt" | "mb" | "ml" | "mr" | "gap" | "rowGap" | "columnGap"> & {
|
|
@@ -133,16 +127,16 @@ value: string;
|
|
|
133
127
|
overStyled: true;
|
|
134
128
|
}, "ref">) & default_2.RefAttributes<HTMLDivElement>>;
|
|
135
129
|
|
|
136
|
-
declare type AccordionItemWrapperProps = RecursicaOverStyled<Omit<AccordionProps_2, "children" | "value"> & {
|
|
130
|
+
declare type AccordionItemWrapperProps = RecursicaOverStyled<Omit<AccordionProps_2, "children" | "value" | "expanded" | "onChange" | "defaultExpanded"> & {
|
|
137
131
|
children?: default_2.ReactNode;
|
|
138
132
|
value: string;
|
|
139
133
|
} & RecursicaAccordionItemProps>;
|
|
140
134
|
|
|
141
135
|
export declare const AccordionPanel: typeof rawComponents.AccordionPanel;
|
|
142
136
|
|
|
143
|
-
declare const AccordionPanel_2: default_2.ForwardRefExoticComponent<(Omit<Omit<WithRecursicaSpacing<AccordionDetailsProps>, BlockedStylingKeys> & ForbiddenStyles & {
|
|
137
|
+
declare const AccordionPanel_2: default_2.ForwardRefExoticComponent<(Omit<Omit<WithRecursicaSpacing<AccordionDetailsProps & RecursicaAccordionPanelProps>, BlockedStylingKeys> & ForbiddenStyles & {
|
|
144
138
|
overStyled?: false | undefined;
|
|
145
|
-
}, "ref"> | Omit<Omit<AccordionDetailsProps, "m" | "my" | "mx" | "mt" | "mb" | "ml" | "mr" | "gap" | "rowGap" | "columnGap"> & {
|
|
139
|
+
}, "ref"> | Omit<Omit<AccordionDetailsProps & RecursicaAccordionPanelProps, "m" | "my" | "mx" | "mt" | "mb" | "ml" | "mr" | "gap" | "rowGap" | "columnGap"> & {
|
|
146
140
|
m?: string | number | RecursicaSpacing;
|
|
147
141
|
mx?: string | number | RecursicaSpacing;
|
|
148
142
|
my?: string | number | RecursicaSpacing;
|
|
@@ -157,17 +151,30 @@ declare const AccordionPanel_2: default_2.ForwardRefExoticComponent<(Omit<Omit<W
|
|
|
157
151
|
overStyled: true;
|
|
158
152
|
}, "ref">) & default_2.RefAttributes<HTMLDivElement>>;
|
|
159
153
|
|
|
160
|
-
declare type AccordionPanelWrapperProps = RecursicaOverStyled<AccordionDetailsProps>;
|
|
154
|
+
declare type AccordionPanelWrapperProps = RecursicaOverStyled<AccordionDetailsProps & RecursicaAccordionPanelProps>;
|
|
161
155
|
|
|
162
156
|
declare type AccordionProps = RecursicaOverStyled<default_2.HTMLAttributes<HTMLDivElement> & RecursicaAccordionProps>;
|
|
163
157
|
|
|
164
158
|
export declare const AssistiveElement: typeof rawComponents.AssistiveElement;
|
|
165
159
|
|
|
166
|
-
declare const AssistiveElement_2: default_2.ForwardRefExoticComponent<Omit<
|
|
160
|
+
declare const AssistiveElement_2: default_2.ForwardRefExoticComponent<(Omit<Omit<WithRecursicaSpacing<Omit<FormHelperTextProps, "component" | "error"> & RecursicaAssistiveElementProps>, BlockedStylingKeys> & ForbiddenStyles & {
|
|
161
|
+
overStyled?: false | undefined;
|
|
162
|
+
}, "ref"> | Omit<Omit<Omit<FormHelperTextProps, "component" | "error"> & RecursicaAssistiveElementProps, "m" | "my" | "mx" | "mt" | "mb" | "ml" | "mr" | "gap" | "rowGap" | "columnGap"> & {
|
|
163
|
+
m?: string | number | RecursicaSpacing;
|
|
164
|
+
mx?: string | number | RecursicaSpacing;
|
|
165
|
+
my?: string | number | RecursicaSpacing;
|
|
166
|
+
mt?: string | number | RecursicaSpacing;
|
|
167
|
+
mb?: string | number | RecursicaSpacing;
|
|
168
|
+
ml?: string | number | RecursicaSpacing;
|
|
169
|
+
mr?: string | number | RecursicaSpacing;
|
|
170
|
+
gap?: string | number | RecursicaSpacing;
|
|
171
|
+
rowGap?: string | number | RecursicaSpacing;
|
|
172
|
+
columnGap?: string | number | RecursicaSpacing;
|
|
173
|
+
} & {
|
|
174
|
+
overStyled: true;
|
|
175
|
+
}, "ref">) & default_2.RefAttributes<HTMLParagraphElement>>;
|
|
167
176
|
|
|
168
|
-
declare
|
|
169
|
-
overStyled?: boolean;
|
|
170
|
-
}
|
|
177
|
+
declare type AssistiveElementProps = RecursicaOverStyled<Omit<FormHelperTextProps, "error" | "component"> & RecursicaAssistiveElementProps>;
|
|
171
178
|
|
|
172
179
|
export declare const Autocomplete: typeof rawComponents.Autocomplete;
|
|
173
180
|
|
|
@@ -197,9 +204,9 @@ export declare const Avatar: typeof rawComponents.Avatar;
|
|
|
197
204
|
*
|
|
198
205
|
* Supports polymorphism via the `component` prop or `renderRoot` for custom element rendering.
|
|
199
206
|
*/
|
|
200
|
-
declare const Avatar_2: ForwardRefExoticComponent<(Omit<Omit<WithRecursicaSpacing<Omit<AvatarProps_2, "
|
|
207
|
+
declare const Avatar_2: ForwardRefExoticComponent<(Omit<Omit<WithRecursicaSpacing<Omit<AvatarProps_2, "variant"> & RecursicaAvatarProps>, BlockedStylingKeys> & ForbiddenStyles & {
|
|
201
208
|
overStyled?: false | undefined;
|
|
202
|
-
}, "ref"> | Omit<Omit<Omit<AvatarProps_2, "
|
|
209
|
+
}, "ref"> | Omit<Omit<Omit<AvatarProps_2, "variant"> & RecursicaAvatarProps, "m" | "my" | "mx" | "mt" | "mb" | "ml" | "mr" | "gap" | "rowGap" | "columnGap"> & {
|
|
203
210
|
m?: string | number | RecursicaSpacing;
|
|
204
211
|
mx?: string | number | RecursicaSpacing;
|
|
205
212
|
my?: string | number | RecursicaSpacing;
|
|
@@ -214,7 +221,7 @@ columnGap?: string | number | RecursicaSpacing;
|
|
|
214
221
|
overStyled: true;
|
|
215
222
|
}, "ref">) & RefAttributes<HTMLDivElement>>;
|
|
216
223
|
|
|
217
|
-
declare type AvatarProps = RecursicaOverStyled<Omit<AvatarProps_2, "variant"
|
|
224
|
+
declare type AvatarProps = RecursicaOverStyled<Omit<AvatarProps_2, "variant"> & RecursicaAvatarProps>;
|
|
218
225
|
|
|
219
226
|
export declare const Badge: typeof rawComponents.Badge;
|
|
220
227
|
|
|
@@ -399,9 +406,13 @@ declare type CheckboxWrapperProps = Omit<CheckboxProps_2, "size" | "color"> & Re
|
|
|
399
406
|
|
|
400
407
|
export declare const Chip: typeof rawComponents.Chip;
|
|
401
408
|
|
|
402
|
-
declare const Chip_2: default_2.ForwardRefExoticComponent<(Omit<Omit<WithRecursicaSpacing<Omit<ChipProps_2, "color" | "variant" | "size" | "radius"> & RecursicaChipProps
|
|
409
|
+
declare const Chip_2: default_2.ForwardRefExoticComponent<(Omit<Omit<WithRecursicaSpacing<Omit<ChipProps_2, "color" | "children" | "variant" | "size" | "radius"> & RecursicaChipProps & {
|
|
410
|
+
children?: default_2.ReactNode;
|
|
411
|
+
}>, BlockedStylingKeys> & ForbiddenStyles & {
|
|
403
412
|
overStyled?: false | undefined;
|
|
404
|
-
}, "ref"> | Omit<Omit<Omit<ChipProps_2, "color" | "variant" | "size" | "radius"> & RecursicaChipProps
|
|
413
|
+
}, "ref"> | Omit<Omit<Omit<ChipProps_2, "color" | "children" | "variant" | "size" | "radius"> & RecursicaChipProps & {
|
|
414
|
+
children?: default_2.ReactNode;
|
|
415
|
+
}, "m" | "my" | "mx" | "mt" | "mb" | "ml" | "mr" | "gap" | "rowGap" | "columnGap"> & {
|
|
405
416
|
m?: string | number | RecursicaSpacing;
|
|
406
417
|
mx?: string | number | RecursicaSpacing;
|
|
407
418
|
my?: string | number | RecursicaSpacing;
|
|
@@ -416,7 +427,9 @@ declare const Chip_2: default_2.ForwardRefExoticComponent<(Omit<Omit<WithRecursi
|
|
|
416
427
|
overStyled: true;
|
|
417
428
|
}, "ref">) & default_2.RefAttributes<HTMLInputElement>>;
|
|
418
429
|
|
|
419
|
-
declare type ChipProps = RecursicaOverStyled<Omit<ChipProps_2, "variant" | "size" | "color" | "radius"> & RecursicaChipProps
|
|
430
|
+
declare type ChipProps = RecursicaOverStyled<Omit<ChipProps_2, "variant" | "size" | "color" | "radius" | "children"> & RecursicaChipProps & {
|
|
431
|
+
children?: default_2.ReactNode;
|
|
432
|
+
}>;
|
|
420
433
|
|
|
421
434
|
export declare const Container: ForwardRefExoticComponent<Omit<rawComponents.ContainerProps, "ref"> & RefAttributes<HTMLDivElement>>;
|
|
422
435
|
|
|
@@ -494,11 +507,47 @@ declare const FileInput_2: default_2.FC<FileInputProps>;
|
|
|
494
507
|
|
|
495
508
|
declare type FileInputProps = default_2.HTMLAttributes<HTMLDivElement>;
|
|
496
509
|
|
|
497
|
-
|
|
510
|
+
/**
|
|
511
|
+
* Mirrors the semantics of the native HTML `accept` attribute (comma-separated file extensions,
|
|
512
|
+
* MIME types, or MIME wildcards like `image/*`) so drag-and-drop can be validated the same way —
|
|
513
|
+
* the browser only applies `accept` to its own file-picker dialog, never to a `drop` event, so
|
|
514
|
+
* without this a dropped file bypasses the restriction entirely.
|
|
515
|
+
*/
|
|
516
|
+
export declare function fileMatchesAccept(file: File, accept?: string): boolean;
|
|
517
|
+
|
|
518
|
+
export declare const FileUpload: typeof rawComponents.FileUpload;
|
|
498
519
|
|
|
499
|
-
|
|
520
|
+
/**
|
|
521
|
+
* A dropzone for uploading files, with a native browse-button fallback and a
|
|
522
|
+
* removable-chip list of the currently selected files.
|
|
523
|
+
*
|
|
524
|
+
* @example
|
|
525
|
+
* <FileUpload
|
|
526
|
+
* label="Upload Files"
|
|
527
|
+
* assistiveText="Max file size 5MB"
|
|
528
|
+
* files={files}
|
|
529
|
+
* onFilesAdded={(added) => setFiles((f) => [...f, ...added.map((file) => ({ file }))])}
|
|
530
|
+
* onFileRemove={(id) => setFiles((f) => f.filter((item) => (item.id ?? item.file.name) !== id))}
|
|
531
|
+
* />
|
|
532
|
+
*/
|
|
533
|
+
declare const FileUpload_2: default_2.ForwardRefExoticComponent<(Omit<Omit<WithRecursicaSpacing<RecursicaFileUploadProps_2>, BlockedStylingKeys> & ForbiddenStyles & {
|
|
534
|
+
overStyled?: false | undefined;
|
|
535
|
+
}, "ref"> | Omit<Omit<RecursicaFileUploadProps_2, "m" | "my" | "mx" | "mt" | "mb" | "ml" | "mr" | "gap" | "rowGap" | "columnGap"> & {
|
|
536
|
+
m?: string | number | RecursicaSpacing;
|
|
537
|
+
mx?: string | number | RecursicaSpacing;
|
|
538
|
+
my?: string | number | RecursicaSpacing;
|
|
539
|
+
mt?: string | number | RecursicaSpacing;
|
|
540
|
+
mb?: string | number | RecursicaSpacing;
|
|
541
|
+
ml?: string | number | RecursicaSpacing;
|
|
542
|
+
mr?: string | number | RecursicaSpacing;
|
|
543
|
+
gap?: string | number | RecursicaSpacing;
|
|
544
|
+
rowGap?: string | number | RecursicaSpacing;
|
|
545
|
+
columnGap?: string | number | RecursicaSpacing;
|
|
546
|
+
} & {
|
|
547
|
+
overStyled: true;
|
|
548
|
+
}, "ref">) & default_2.RefAttributes<HTMLDivElement>>;
|
|
500
549
|
|
|
501
|
-
declare type FileUploadProps =
|
|
550
|
+
declare type FileUploadProps = RecursicaOverStyled<RecursicaFileUploadProps_2>;
|
|
502
551
|
|
|
503
552
|
export declare const Flex: ForwardRefExoticComponent<Omit<rawComponents.FlexProps, "ref"> & RefAttributes<HTMLDivElement>>;
|
|
504
553
|
|
|
@@ -999,6 +1048,8 @@ declare namespace rawComponents {
|
|
|
999
1048
|
Dropdown_2 as Dropdown,
|
|
1000
1049
|
FileInputProps,
|
|
1001
1050
|
FileInput_2 as FileInput,
|
|
1051
|
+
RecursicaFileUploadItem,
|
|
1052
|
+
RecursicaFileUploadProps_2 as RecursicaFileUploadProps,
|
|
1002
1053
|
FileUploadProps,
|
|
1003
1054
|
FileUpload_2 as FileUpload,
|
|
1004
1055
|
FlexProps,
|
|
@@ -1078,6 +1129,7 @@ declare namespace rawComponents {
|
|
|
1078
1129
|
RecursicaSwitchPropsAlias,
|
|
1079
1130
|
SwitchProps_2 as SwitchProps,
|
|
1080
1131
|
Switch_2 as Switch,
|
|
1132
|
+
SwitchGroupContext,
|
|
1081
1133
|
RecursicaSwitchGroupProps_2 as RecursicaSwitchGroupProps,
|
|
1082
1134
|
SwitchGroupProps,
|
|
1083
1135
|
SwitchGroup_2 as SwitchGroup,
|
|
@@ -1169,6 +1221,8 @@ export declare const RECURSICA_COMPONENTS: readonly ["Accordion", "AssistiveElem
|
|
|
1169
1221
|
* Props for the Recursica Accordion Control component.
|
|
1170
1222
|
*/
|
|
1171
1223
|
export declare interface RecursicaAccordionControlProps {
|
|
1224
|
+
/** The control's label content */
|
|
1225
|
+
children?: default_2.ReactNode;
|
|
1172
1226
|
/** Leading icon displayed inside the control boundary */
|
|
1173
1227
|
leftIcon?: default_2.ReactNode;
|
|
1174
1228
|
}
|
|
@@ -1177,7 +1231,14 @@ export declare interface RecursicaAccordionControlProps {
|
|
|
1177
1231
|
* Props for the Recursica Accordion Item component.
|
|
1178
1232
|
*/
|
|
1179
1233
|
export declare interface RecursicaAccordionItemProps {
|
|
1180
|
-
/**
|
|
1234
|
+
/**
|
|
1235
|
+
* When `title` is set, this is the panel content — the control and panel are constructed
|
|
1236
|
+
* automatically, with `children` becoming the panel body. When `title` is omitted, this is
|
|
1237
|
+
* expected to be a manually composed `Accordion.Control`/`Accordion.Panel` pair instead.
|
|
1238
|
+
*/
|
|
1239
|
+
children?: default_2.ReactNode;
|
|
1240
|
+
/** The text or element label for the item control. When set, the control and panel are
|
|
1241
|
+
* constructed automatically; omit it to compose the control and panel manually instead. */
|
|
1181
1242
|
title?: default_2.ReactNode;
|
|
1182
1243
|
/** Leading icon for the item control */
|
|
1183
1244
|
leftIcon?: default_2.ReactNode;
|
|
@@ -1185,14 +1246,30 @@ export declare interface RecursicaAccordionItemProps {
|
|
|
1185
1246
|
divider?: boolean;
|
|
1186
1247
|
/** Unique value identifier for this item */
|
|
1187
1248
|
value?: string;
|
|
1249
|
+
/** Disables interaction with this item — it can't be expanded or collapsed, and is dimmed */
|
|
1250
|
+
disabled?: boolean;
|
|
1251
|
+
}
|
|
1252
|
+
|
|
1253
|
+
/**
|
|
1254
|
+
* Props for the Recursica Accordion Panel component.
|
|
1255
|
+
*/
|
|
1256
|
+
export declare interface RecursicaAccordionPanelProps {
|
|
1257
|
+
/** The panel's content, shown when the item is expanded */
|
|
1258
|
+
children?: default_2.ReactNode;
|
|
1188
1259
|
}
|
|
1189
1260
|
|
|
1190
1261
|
/**
|
|
1191
1262
|
* Props for the Recursica Accordion container component.
|
|
1192
1263
|
*/
|
|
1193
1264
|
export declare interface RecursicaAccordionProps {
|
|
1194
|
-
/** The
|
|
1195
|
-
|
|
1265
|
+
/** The `Accordion.Item` elements that make up the accordion */
|
|
1266
|
+
children?: default_2.ReactNode;
|
|
1267
|
+
/**
|
|
1268
|
+
* The styling variant of the accordion. `"default"` is the only variant with dedicated
|
|
1269
|
+
* Recursica styling today; any other string is accepted for advanced/custom theming but
|
|
1270
|
+
* has no guaranteed styling.
|
|
1271
|
+
*/
|
|
1272
|
+
variant?: "default" | (string & {});
|
|
1196
1273
|
/** Current expanded value(s) in controlled mode */
|
|
1197
1274
|
value?: string | string[];
|
|
1198
1275
|
/** Initial expanded value(s) in uncontrolled mode */
|
|
@@ -1201,7 +1278,8 @@ export declare interface RecursicaAccordionProps {
|
|
|
1201
1278
|
onChange?: (value: string | string[] | null) => void;
|
|
1202
1279
|
/** Allow multiple panels to be open simultaneously */
|
|
1203
1280
|
multiple?: boolean;
|
|
1204
|
-
/** Custom chevron icon to replace the default expand/collapse indicator
|
|
1281
|
+
/** Custom chevron icon to replace the default expand/collapse indicator. Applies to every
|
|
1282
|
+
* item; a single item's control can still override it individually. */
|
|
1205
1283
|
chevron?: default_2.ReactNode;
|
|
1206
1284
|
}
|
|
1207
1285
|
|
|
@@ -1209,9 +1287,14 @@ export declare interface RecursicaAccordionProps {
|
|
|
1209
1287
|
* Props for the Recursica AssistiveElement component.
|
|
1210
1288
|
*/
|
|
1211
1289
|
export declare interface RecursicaAssistiveElementProps {
|
|
1212
|
-
/** The
|
|
1290
|
+
/** The helper or error text content */
|
|
1291
|
+
children?: default_2.ReactNode;
|
|
1292
|
+
/** The semantic variant driving the icon and text colors. `"error"` also defaults the
|
|
1293
|
+
* element's `role` to `"alert"` so assistive tech announces it as it appears or changes —
|
|
1294
|
+
* pass an explicit `role` to override. */
|
|
1213
1295
|
assistiveVariant?: "help" | "error";
|
|
1214
|
-
/** Explicitly toggle the rendering of the variant-specific SVG icon
|
|
1296
|
+
/** Explicitly toggle the rendering of the variant-specific SVG icon. There is no slot for a
|
|
1297
|
+
* custom icon — the icon is always the fixed one belonging to the current `assistiveVariant`. */
|
|
1215
1298
|
assistiveWithIcon?: boolean;
|
|
1216
1299
|
}
|
|
1217
1300
|
|
|
@@ -1246,6 +1329,8 @@ declare interface RecursicaAutocompleteProps_2 {
|
|
|
1246
1329
|
* Props for the Recursica Avatar component.
|
|
1247
1330
|
*/
|
|
1248
1331
|
export declare interface RecursicaAvatarProps {
|
|
1332
|
+
/** Initials or other text fallback, shown when neither `src` nor `icon` is set */
|
|
1333
|
+
children?: default_2.ReactNode;
|
|
1249
1334
|
/** Size of the avatar */
|
|
1250
1335
|
size?: "small" | "default" | "large";
|
|
1251
1336
|
/** Visual variant style */
|
|
@@ -1347,6 +1432,17 @@ export declare interface RecursicaChipProps {
|
|
|
1347
1432
|
removeLabel?: string;
|
|
1348
1433
|
/** Checked state for the chip (acts as a checkbox) */
|
|
1349
1434
|
checked?: boolean;
|
|
1435
|
+
/**
|
|
1436
|
+
* Tab index for the remove (X) icon. Defaults to `0`. Lets a parent implement a roving-tabindex
|
|
1437
|
+
* pattern across a group of chips (e.g. FileUpload's file list) by setting this to `-1` on every
|
|
1438
|
+
* chip except the currently-active one.
|
|
1439
|
+
*/
|
|
1440
|
+
removeTabIndex?: number;
|
|
1441
|
+
/**
|
|
1442
|
+
* Ref to the remove (X) icon element, so a parent can move focus to it imperatively — e.g.
|
|
1443
|
+
* arrow-key navigation across a group of chips.
|
|
1444
|
+
*/
|
|
1445
|
+
removeIconRef?: default_2.Ref<HTMLSpanElement>;
|
|
1350
1446
|
}
|
|
1351
1447
|
|
|
1352
1448
|
/**
|
|
@@ -1397,6 +1493,102 @@ declare interface RecursicaDropdownProps_2 {
|
|
|
1397
1493
|
placeholder?: string;
|
|
1398
1494
|
}
|
|
1399
1495
|
|
|
1496
|
+
/**
|
|
1497
|
+
* A single file entry rendered as a removable chip in the FileUpload's file list.
|
|
1498
|
+
*/
|
|
1499
|
+
export declare interface RecursicaFileUploadItem {
|
|
1500
|
+
/** The underlying browser File object. */
|
|
1501
|
+
file: File;
|
|
1502
|
+
/**
|
|
1503
|
+
* Stable identifier for this entry, used as the React key and passed back to
|
|
1504
|
+
* `onFileRemove`. Defaults to the file's `name` when not provided.
|
|
1505
|
+
*/
|
|
1506
|
+
id?: string;
|
|
1507
|
+
}
|
|
1508
|
+
|
|
1509
|
+
/**
|
|
1510
|
+
* Props for the Recursica FileUpload component.
|
|
1511
|
+
*/
|
|
1512
|
+
export declare interface RecursicaFileUploadProps {
|
|
1513
|
+
/**
|
|
1514
|
+
* Files currently selected, rendered as removable chips below the dropzone.
|
|
1515
|
+
* This is a controlled list — `onFilesAdded`/`onFileRemove` report changes, but
|
|
1516
|
+
* `FileUpload` never mutates this array itself; merge the reported changes into
|
|
1517
|
+
* your own state and pass the updated list back in.
|
|
1518
|
+
*/
|
|
1519
|
+
files?: RecursicaFileUploadItem[];
|
|
1520
|
+
/**
|
|
1521
|
+
* Called with the files the user just dropped onto the dropzone or picked via
|
|
1522
|
+
* the browse button. Only the newly added files are passed — merge them into
|
|
1523
|
+
* `files` yourself (e.g. to assign an `id`, dedupe, or reject some of them).
|
|
1524
|
+
*/
|
|
1525
|
+
onFilesAdded?: (files: File[]) => void;
|
|
1526
|
+
/**
|
|
1527
|
+
* Called when a file chip's remove (X) icon is activated, identified by its
|
|
1528
|
+
* `id` (or `file.name` when no `id` was given for that entry).
|
|
1529
|
+
*/
|
|
1530
|
+
onFileRemove?: (id: string) => void;
|
|
1531
|
+
/**
|
|
1532
|
+
* Native `accept` attribute for the underlying file input (e.g. `".pdf,.png"`
|
|
1533
|
+
* or `"image/*"`) — constrains the browse-button file picker natively. Also
|
|
1534
|
+
* enforced against files dropped onto the dropzone: the browser only applies
|
|
1535
|
+
* `accept` to its own file-picker dialog, never to a `drop` event, so files
|
|
1536
|
+
* that don't match are rejected the same way (see `onFilesRejected`) rather
|
|
1537
|
+
* than silently bypassing the restriction.
|
|
1538
|
+
*/
|
|
1539
|
+
accept?: string;
|
|
1540
|
+
/** Whether more than one file can be selected/dropped at once. Defaults to `true`. */
|
|
1541
|
+
multiple?: boolean;
|
|
1542
|
+
/**
|
|
1543
|
+
* Maximum size per file, in bytes. Files exceeding this are passed to
|
|
1544
|
+
* `onFilesRejected` instead of `onFilesAdded`.
|
|
1545
|
+
*/
|
|
1546
|
+
maxSize?: number;
|
|
1547
|
+
/**
|
|
1548
|
+
* Maximum total number of files allowed in `files`. Once reached, further
|
|
1549
|
+
* dropped/picked files are passed to `onFilesRejected` instead of
|
|
1550
|
+
* `onFilesAdded`.
|
|
1551
|
+
*/
|
|
1552
|
+
maxFiles?: number;
|
|
1553
|
+
/**
|
|
1554
|
+
* Called with any files rejected for exceeding `maxSize`/`maxFiles` or not
|
|
1555
|
+
* matching `accept`.
|
|
1556
|
+
*/
|
|
1557
|
+
onFilesRejected?: (files: File[]) => void;
|
|
1558
|
+
/**
|
|
1559
|
+
* Error message shown (via the standard assistive-text error slot) when a
|
|
1560
|
+
* dropped/picked file's extension or MIME type doesn't match `accept`.
|
|
1561
|
+
* Defaults to `"File type not accepted"`.
|
|
1562
|
+
*/
|
|
1563
|
+
invalidFileTypeMessage?: default_2.ReactNode;
|
|
1564
|
+
/**
|
|
1565
|
+
* Error message shown (via the standard assistive-text error slot) when a
|
|
1566
|
+
* dropped/picked file would exceed `maxFiles`. Defaults to
|
|
1567
|
+
* `"Maximum of {maxFiles} files allowed"`.
|
|
1568
|
+
*/
|
|
1569
|
+
maxFilesMessage?: default_2.ReactNode;
|
|
1570
|
+
/** Icon shown above the dropzone label. Defaults to the built-in upload icon. */
|
|
1571
|
+
icon?: default_2.ReactNode;
|
|
1572
|
+
/** Text shown inside the dropzone. Defaults to `"Drag and drop files here to upload"`. */
|
|
1573
|
+
dropzoneLabel?: default_2.ReactNode;
|
|
1574
|
+
/** Label for the button that opens the native file picker. Defaults to `"Browse files"`. */
|
|
1575
|
+
browseButtonLabel?: default_2.ReactNode;
|
|
1576
|
+
/** Screen-reader label for each file chip's remove button. Defaults to `"Remove"`. */
|
|
1577
|
+
removeFileLabel?: string;
|
|
1578
|
+
/** Disables the dropzone, browse button, and every file chip's remove icon. */
|
|
1579
|
+
disabled?: boolean;
|
|
1580
|
+
/**
|
|
1581
|
+
* Renders `files` as a static list of chips with no remove icon, and omits
|
|
1582
|
+
* the dropzone/browse button entirely.
|
|
1583
|
+
*/
|
|
1584
|
+
readOnly?: boolean;
|
|
1585
|
+
}
|
|
1586
|
+
|
|
1587
|
+
declare interface RecursicaFileUploadProps_2 extends Omit<default_2.HTMLAttributes<HTMLDivElement>, "children" | "onDrop" | "onChange">, Omit<RecursicaFormControlWrapperProps, "controlMaxWidth" | "controlMinWidth">, RecursicaFileUploadProps {
|
|
1588
|
+
/** Visually forces the mandatory asterisk. Accepted for API parity with other adapters; MUI's own `required` already renders the asterisk, so this has no separate effect here. */
|
|
1589
|
+
withAsterisk?: boolean;
|
|
1590
|
+
}
|
|
1591
|
+
|
|
1400
1592
|
/**
|
|
1401
1593
|
* Props for the Recursica Flex layout component.
|
|
1402
1594
|
*/
|
|
@@ -1697,8 +1889,13 @@ export declare interface RecursicaRadioGroupProps {
|
|
|
1697
1889
|
value?: unknown;
|
|
1698
1890
|
/** Initial selected value in uncontrolled mode */
|
|
1699
1891
|
defaultValue?: unknown;
|
|
1700
|
-
/**
|
|
1701
|
-
|
|
1892
|
+
/**
|
|
1893
|
+
* Callback triggered when active value changes.
|
|
1894
|
+
* Single-argument by design (no event): matches Mantine's native RadioGroup
|
|
1895
|
+
* onChange, the cross-adapter source of truth. mui-adapter's RadioGroup
|
|
1896
|
+
* normalizes MUI's native two-argument (event, value) callback down to this.
|
|
1897
|
+
*/
|
|
1898
|
+
onChange?: (value: string) => void;
|
|
1702
1899
|
}
|
|
1703
1900
|
|
|
1704
1901
|
declare interface RecursicaRadioGroupProps_2 extends Omit<RadioGroupProps_2, "size" | "labelProps" | "classes" | "ref" | "onChange" | "value" | "defaultValue">, Omit<RecursicaFormControlWrapperProps, "controlMaxWidth" | "controlMinWidth" | "classes" | "onChange" | keyof RadioGroupProps_2>, ReadOnlyControlProps, RecursicaRadioGroupProps {
|
|
@@ -1830,12 +2027,12 @@ declare interface RecursicaStepperPropsExtended extends Omit<Partial<StepperProp
|
|
|
1830
2027
|
* Props for the Recursica SwitchGroup component.
|
|
1831
2028
|
*/
|
|
1832
2029
|
export declare interface RecursicaSwitchGroupProps {
|
|
1833
|
-
/** Checked values list in controlled mode */
|
|
1834
|
-
value?:
|
|
2030
|
+
/** Checked values list in controlled mode — each entry matches a child Switch's own `value` */
|
|
2031
|
+
value?: string[];
|
|
1835
2032
|
/** Checked default values list in uncontrolled mode */
|
|
1836
|
-
defaultValue?:
|
|
2033
|
+
defaultValue?: string[];
|
|
1837
2034
|
/** Callback triggered when any switch toggles state */
|
|
1838
|
-
onChange?: (value:
|
|
2035
|
+
onChange?: (value: string[]) => void;
|
|
1839
2036
|
}
|
|
1840
2037
|
|
|
1841
2038
|
declare interface RecursicaSwitchGroupProps_2 extends Omit<FormGroupProps, "size" | "labelProps" | "onChange" | "classes" | "ref" | "value" | "defaultValue">, Omit<RecursicaFormControlWrapperProps, "controlMaxWidth" | "controlMinWidth" | "classes" | "onChange" | "defaultValue">, ReadOnlyControlProps, RecursicaSwitchGroupProps {
|
|
@@ -2272,7 +2469,9 @@ export declare const Switch: typeof rawComponents.Switch;
|
|
|
2272
2469
|
|
|
2273
2470
|
declare const Switch_2: SwitchComponent;
|
|
2274
2471
|
|
|
2275
|
-
declare type SwitchComponent = React.
|
|
2472
|
+
declare type SwitchComponent = React.ForwardRefExoticComponent<SwitchProps_2 & React.RefAttributes<HTMLInputElement>> & {
|
|
2473
|
+
Group: typeof SwitchGroup_2;
|
|
2474
|
+
};
|
|
2276
2475
|
|
|
2277
2476
|
export declare const SwitchGroup: typeof rawComponents.SwitchGroup;
|
|
2278
2477
|
|
|
@@ -2293,6 +2492,13 @@ declare const SwitchGroup_2: default_2.ForwardRefExoticComponent<(Omit<Omit<With
|
|
|
2293
2492
|
overStyled: true;
|
|
2294
2493
|
}, "ref">) & default_2.RefAttributes<HTMLDivElement>>;
|
|
2295
2494
|
|
|
2495
|
+
declare const SwitchGroupContext: default_2.Context<{
|
|
2496
|
+
value?: string[];
|
|
2497
|
+
onChange?: (event: default_2.SyntheticEvent, value: string[]) => void;
|
|
2498
|
+
name?: string;
|
|
2499
|
+
readOnly?: boolean;
|
|
2500
|
+
} | null>;
|
|
2501
|
+
|
|
2296
2502
|
declare type SwitchGroupProps = RecursicaOverStyled<RecursicaSwitchGroupProps_2>;
|
|
2297
2503
|
|
|
2298
2504
|
declare type SwitchProps_2 = RecursicaOverStyled<RecursicaSwitchPropsAlias>;
|