@recursica/mui-adapter 0.23.0 → 0.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +39 -0
- package/dist/index.d.ts +287 -15
- package/dist/mui-adapter.cjs +71 -71
- package/dist/mui-adapter.cjs.map +1 -1
- package/dist/mui-adapter.css +1 -1
- package/dist/mui-adapter.js +9554 -8500
- package/dist/mui-adapter.js.map +1 -1
- package/llms.txt +1 -0
- package/package.json +1 -1
- package/src/components/AssistiveElement/AssistiveElement.tsx +1 -1
- package/src/components/Button/BUTTON_IMPLEMENTATION_NOTES.md +12 -0
- package/src/components/Button/Button.module.css +6 -5
- package/src/components/Checkbox/Checkbox.tsx +4 -1
- package/src/components/FileInput/FILEINPUT_IMPLEMENTATION_NOTES.md +148 -0
- package/src/components/FileInput/FileInput.module.css +268 -43
- package/src/components/FileInput/FileInput.stories.tsx +296 -4
- package/src/components/FileInput/FileInput.tsx +412 -6
- package/src/components/FileInput/USAGE.md +112 -4
- package/src/components/Popover/IMPLEMENTATION_NOTES.md +22 -0
- package/src/components/Popover/Popover.module.css +123 -0
- package/src/components/Popover/Popover.stories.tsx +133 -0
- package/src/components/Popover/Popover.tsx +275 -0
- package/src/components/Popover/USAGE.md +69 -0
- package/src/components/Popover/index.ts +1 -0
- package/src/components/SegmentedControl/IMPLEMENTATION_NOTES.md +6 -0
- package/src/components/SegmentedControl/SegmentedControl.module.css +33 -4
- package/src/components/SegmentedControl/SegmentedControl.tsx +18 -4
- package/src/components/Slider/IMPLEMENTATION_NOTES.md +29 -0
- package/src/components/Slider/Slider.module.css +80 -17
- package/src/components/Slider/Slider.stories.tsx +1 -1
- package/src/components/Slider/Slider.tsx +36 -1
- package/src/components/Stepper/IMPLEMENTATION_NOTES.md +54 -0
- package/src/components/Stepper/Stepper.module.css +139 -106
- package/src/components/Stepper/Stepper.tsx +76 -10
- package/src/components/Stepper/USAGE.md +4 -0
- package/src/components/Tabs/IMPLEMENTATION_NOTES.md +12 -0
- package/src/components/Tabs/Tabs.module.css +107 -24
- package/src/components/Tabs/Tabs.tsx +1 -0
- package/src/components/TextArea/TextArea.module.css +20 -4
- package/src/components/TextArea/TextArea.tsx +12 -23
- package/src/components/Timeline/IMPLEMENTATION_NOTES.md +24 -3
- package/src/components/Timeline/Timeline.module.css +56 -68
- package/src/components/Timeline/Timeline.tsx +23 -27
- package/src/components/Timeline/TimelineItem.tsx +38 -35
- package/src/components/TransferList/TRANSFERLIST_IMPLEMENTATION_NOTES.md +140 -0
- package/src/components/TransferList/TransferList.module.css +179 -35
- package/src/components/TransferList/TransferList.stories.tsx +110 -6
- package/src/components/TransferList/TransferList.tsx +417 -8
- package/src/components/TransferList/USAGE.md +37 -6
- package/src/components/index.ts +1 -0
- package/src/index.ts +6 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,44 @@
|
|
|
1
1
|
# @recursica/mui-adapter
|
|
2
2
|
|
|
3
|
+
## 0.25.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- e0f5643: Implement `TransferList` (dual listbox) in both adapters, replacing the "coming soon" stub. Composes `FormControlWrapper`, `TextField`, `Checkbox`/`CheckboxGroup`, `Badge`, and `Button` — supports controlled/uncontrolled `data`, per-item grouping, per-pane search, and `stacked`/`side-by-side` form layout.
|
|
8
|
+
- 2fb7069: Add `Popover` component (click-controlled dropdown with beak/arrow, composable `Popover.Target`/`Popover.Dropdown`), bringing mui-adapter in parity with mantine-adapter's Popover.
|
|
9
|
+
- 2fb7069: Fix `Popover`: gap now matches Mantine (Mui's built-in per-placement tooltip margin was stacking on top of our offset), and the beak now has a visible border matching the dropdown body. Fix `Button`: line-height now applies via `labelText` per size (matching Mantine) instead of being dropped from the small-size token.
|
|
10
|
+
- 2fb7069: Fix `SegmentedControl` height (MUI's default `ToggleButton` box model was stacking on top of the token-driven label height) and selected-state styling (`Mui-selected` wasn't wrapped in `:global()`, so CSS Modules silently dropped the selector).
|
|
11
|
+
Also default to the first item selected when uncontrolled, matching mantine.
|
|
12
|
+
- 2fb7069: Fix `SegmentedControl` labels rendering all-caps in MUI (its `ToggleButton` uppercase default was leaking through an invalid text-transform token). Labels now match Mantine's original casing.
|
|
13
|
+
- 2fb7069: Fix `Slider`'s `Disabled` story (was passing `disabled: false` in both adapters). In `mui-adapter`, also fix the disabled track showing red instead of grey, make the thumb focus ring keyboard-only (no glow on click/drag) to match Mantine, render assistive text as a `<span>`, and align mark label color/position with Mantine (which now applies its own mark label color token too).
|
|
14
|
+
- 2fb7069: Fix `Stepper`: use MUI's `alternativeLabel` so horizontal labels center under the icon and the connector centers on it, render the completed check mark as our own token-colored glyph instead of MUI's default blue `CheckCircle` SVG, and draw the vertical connecting line as a stretch-aware rail so it reaches the next step's circle regardless of description height.
|
|
15
|
+
- 2fb7069: Fix `Tabs` showing a MUI click ripple that Mantine's tabs don't have. `Tab` now passes `disableRipple`.
|
|
16
|
+
- 2fb7069: Fix `Tabs`: `outline` variant's selected tab now shows a connected border box (matching Mantine) with no stray bottom border line. `default` variant no longer shifts sibling tabs when selecting one (a stray ripple element was being pulled into flex layout). `vertical` orientation no longer stretches the tablist to the full row width, and its divider now runs the full height with the selection indicator aligned on it instead of offset to the side.
|
|
17
|
+
- 2fb7069: Fix `TextArea`: error state border now uses the recursica error color (was never triggering in either adapter). MUI disabled background/border, focus ring color, and default height now match Mantine instead of MUI's own defaults.
|
|
18
|
+
- 2fb7069: Fix `Timeline`: rebuild `Timeline.Item` on Mui's `TimelineSeparator`/`TimelineDot`/`TimelineConnector`/`TimelineContent` primitives so the bullet marker, connecting line, active state, and bullet variants render (and left-align) like the Mantine adapter instead of not rendering at all.
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- 1616144: Fix `FileInput`'s clear-all button: pressing Enter or Space while it was focused opened the native file picker instead of clearing the selection (a regression from switching the control to the shared `Button` component, which dropped the keydown handler the previous bespoke element had).
|
|
23
|
+
- 3ff5821: Fix `TransferList` checkboxes not toggling/showing checked state in either adapter (grouping-for-layout was silently overriding item selection). Add `readOnly` support and a `ReadOnly` story.
|
|
24
|
+
- Updated dependencies [e0f5643]
|
|
25
|
+
- Updated dependencies [1616144]
|
|
26
|
+
- Updated dependencies [3ff5821]
|
|
27
|
+
- @recursica/adapter-common@0.18.0
|
|
28
|
+
|
|
29
|
+
## 0.24.0
|
|
30
|
+
|
|
31
|
+
### Minor Changes
|
|
32
|
+
|
|
33
|
+
- 3d75770: Implement the `FileInput` component (single-line, `TextField`-shaped file picker with a native drag-and-drop drop target, single- and multiple-file modes, and a trailing clear icon) in `mantine-adapter` and `mui-adapter`, replacing the "coming soon" stub, with a shared `RecursicaFileInputProps` contract in `adapter-common` reusing `FileUpload`'s `RecursicaFileUploadItem`/validation interface (`accept`/`maxSize`/`maxFiles`/`readOnly`). Also adds `FileInput` to `RECURSICA_COMPONENTS` and moves `mui-adapter`'s export of it into the standard `wrapComponent` set (it was previously exported unwrapped, alongside the polymorphic layout primitives, as a leftover from its stub form).
|
|
34
|
+
|
|
35
|
+
### Patch Changes
|
|
36
|
+
|
|
37
|
+
- b86ca2b: `FileInput` now renders every selected file as a removable `Chip` in a horizontally scrollable row, in both single- and multiple-file mode (previously single-file mode showed plain filename text with no remove affordance). The trailing clear-all control is now a real shared `Button` (icon-only, "text" variant) instead of a bespoke `<span role="button">`.
|
|
38
|
+
- Updated dependencies [3d75770]
|
|
39
|
+
- Updated dependencies [b86ca2b]
|
|
40
|
+
- @recursica/adapter-common@0.17.0
|
|
41
|
+
|
|
3
42
|
## 0.23.0
|
|
4
43
|
|
|
5
44
|
### Minor Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -22,7 +22,6 @@ import { DialogProps } from '@mui/material';
|
|
|
22
22
|
import { DialogTitleProps } from '@mui/material';
|
|
23
23
|
import { DividerProps } from '@mui/material';
|
|
24
24
|
import { DrawerProps } from '@mui/material';
|
|
25
|
-
import { FC } from 'react';
|
|
26
25
|
import { FormControlProps } from '@mui/material';
|
|
27
26
|
import { FormGroupProps } from '@mui/material';
|
|
28
27
|
import { FormHelperTextProps } from '@mui/material';
|
|
@@ -501,11 +500,39 @@ export declare interface EmptyValueRendererProps {
|
|
|
501
500
|
emptyText?: string;
|
|
502
501
|
}
|
|
503
502
|
|
|
504
|
-
export declare const FileInput:
|
|
503
|
+
export declare const FileInput: typeof rawComponents.FileInput;
|
|
505
504
|
|
|
506
|
-
|
|
505
|
+
/**
|
|
506
|
+
* A single-line, `TextField`-shaped control for choosing one or more files, sharing
|
|
507
|
+
* `FileUpload`'s selection/validation interface (`accept`/`maxSize`/`maxFiles`, `readOnly`)
|
|
508
|
+
* behind a different presentation.
|
|
509
|
+
*
|
|
510
|
+
* @example
|
|
511
|
+
* <FileInput
|
|
512
|
+
* label="Resume"
|
|
513
|
+
* files={files}
|
|
514
|
+
* onFilesAdded={(added) => setFiles(added.map((file) => ({ file })))}
|
|
515
|
+
* onFileRemove={() => setFiles([])}
|
|
516
|
+
* />
|
|
517
|
+
*/
|
|
518
|
+
declare const FileInput_2: default_2.ForwardRefExoticComponent<(Omit<Omit<WithRecursicaSpacing<RecursicaFileInputProps_2>, BlockedStylingKeys> & ForbiddenStyles & {
|
|
519
|
+
overStyled?: false | undefined;
|
|
520
|
+
}, "ref"> | Omit<Omit<RecursicaFileInputProps_2, "m" | "my" | "mx" | "mt" | "mb" | "ml" | "mr" | "gap" | "rowGap" | "columnGap"> & {
|
|
521
|
+
m?: string | number | RecursicaSpacing;
|
|
522
|
+
mx?: string | number | RecursicaSpacing;
|
|
523
|
+
my?: string | number | RecursicaSpacing;
|
|
524
|
+
mt?: string | number | RecursicaSpacing;
|
|
525
|
+
mb?: string | number | RecursicaSpacing;
|
|
526
|
+
ml?: string | number | RecursicaSpacing;
|
|
527
|
+
mr?: string | number | RecursicaSpacing;
|
|
528
|
+
gap?: string | number | RecursicaSpacing;
|
|
529
|
+
rowGap?: string | number | RecursicaSpacing;
|
|
530
|
+
columnGap?: string | number | RecursicaSpacing;
|
|
531
|
+
} & {
|
|
532
|
+
overStyled: true;
|
|
533
|
+
}, "ref">) & default_2.RefAttributes<HTMLDivElement>>;
|
|
507
534
|
|
|
508
|
-
declare type FileInputProps =
|
|
535
|
+
declare type FileInputProps = RecursicaOverStyled<RecursicaFileInputProps_2>;
|
|
509
536
|
|
|
510
537
|
/**
|
|
511
538
|
* Mirrors the semantics of the native HTML `accept` attribute (comma-separated file extensions,
|
|
@@ -980,6 +1007,84 @@ h?: string | number;
|
|
|
980
1007
|
height?: string | number;
|
|
981
1008
|
}, "ref">) & RefAttributes<HTMLDivElement>>;
|
|
982
1009
|
|
|
1010
|
+
export declare const Popover: typeof rawComponents.Popover;
|
|
1011
|
+
|
|
1012
|
+
declare const Popover_2: PopoverComponent;
|
|
1013
|
+
|
|
1014
|
+
declare const PopoverBase: {
|
|
1015
|
+
({ overStyled, withBeak, position, defaultOpened, opened, onChange, offset, width, children, ...rest }: PopoverProps): JSX.Element;
|
|
1016
|
+
displayName: string;
|
|
1017
|
+
};
|
|
1018
|
+
|
|
1019
|
+
declare type PopoverComponent = typeof PopoverBase & {
|
|
1020
|
+
Target: typeof PopoverTarget;
|
|
1021
|
+
Dropdown: typeof PopoverDropdown;
|
|
1022
|
+
};
|
|
1023
|
+
|
|
1024
|
+
declare const PopoverDropdown: {
|
|
1025
|
+
({ children, }: PopoverDropdownProps): JSX.Element;
|
|
1026
|
+
displayName: string;
|
|
1027
|
+
};
|
|
1028
|
+
|
|
1029
|
+
/** The dropdown panel displayed from the popover. */
|
|
1030
|
+
declare type PopoverDropdownProps = {
|
|
1031
|
+
children?: default_2.ReactNode;
|
|
1032
|
+
};
|
|
1033
|
+
|
|
1034
|
+
/**
|
|
1035
|
+
* Behavioral props specific to this adapter's click-controlled implementation.
|
|
1036
|
+
* `withBeak` comes from the shared `RecursicaPopoverProps` (adapter-common); the
|
|
1037
|
+
* rest map to Mantine's own `PopoverProps` surface, reproduced here since Mui has
|
|
1038
|
+
* no single library type that already covers them.
|
|
1039
|
+
*/
|
|
1040
|
+
declare interface PopoverOwnProps extends RecursicaPopoverProps {
|
|
1041
|
+
/** Dropdown position relative to the target */
|
|
1042
|
+
position?: TooltipProps["placement"];
|
|
1043
|
+
/** Initial opened state (uncontrolled) */
|
|
1044
|
+
defaultOpened?: boolean;
|
|
1045
|
+
/** Controlled opened state */
|
|
1046
|
+
opened?: boolean;
|
|
1047
|
+
/** Called whenever the opened state changes */
|
|
1048
|
+
onChange?: (opened: boolean) => void;
|
|
1049
|
+
/** Distance in px between the dropdown and the target */
|
|
1050
|
+
offset?: number;
|
|
1051
|
+
/** Fixed width applied to the dropdown panel */
|
|
1052
|
+
width?: number | string;
|
|
1053
|
+
children?: default_2.ReactNode;
|
|
1054
|
+
}
|
|
1055
|
+
|
|
1056
|
+
/**
|
|
1057
|
+
* Recursica Popover component wrapping Mui's Tooltip in click-controlled mode.
|
|
1058
|
+
*
|
|
1059
|
+
* Displays a dropdown panel when the user clicks the target element.
|
|
1060
|
+
* Uses the composable dot-notation pattern:
|
|
1061
|
+
* ```tsx
|
|
1062
|
+
* <Popover withBeak>
|
|
1063
|
+
* <Popover.Target>
|
|
1064
|
+
* <Button>Click me</Button>
|
|
1065
|
+
* </Popover.Target>
|
|
1066
|
+
* <Popover.Dropdown>
|
|
1067
|
+
* Content displayed in popover
|
|
1068
|
+
* </Popover.Dropdown>
|
|
1069
|
+
* </Popover>
|
|
1070
|
+
* ```
|
|
1071
|
+
*/
|
|
1072
|
+
declare type PopoverProps = RecursicaOverStyled<Omit<TooltipProps, "title" | "children" | "open" | "onClose" | "onOpen" | "placement"> & PopoverOwnProps>;
|
|
1073
|
+
|
|
1074
|
+
declare const PopoverTarget: {
|
|
1075
|
+
({ children }: PopoverTargetProps): JSX.Element;
|
|
1076
|
+
displayName: string;
|
|
1077
|
+
};
|
|
1078
|
+
|
|
1079
|
+
/**
|
|
1080
|
+
* Wrapper for the element that triggers the popover.
|
|
1081
|
+
* Requires a single child element; only used as a marker to locate the
|
|
1082
|
+
* trigger element, it is never rendered directly (see `PopoverBase`).
|
|
1083
|
+
*/
|
|
1084
|
+
declare type PopoverTargetProps = {
|
|
1085
|
+
children?: default_2.ReactNode;
|
|
1086
|
+
};
|
|
1087
|
+
|
|
983
1088
|
export declare const Radio: typeof rawComponents.Radio;
|
|
984
1089
|
|
|
985
1090
|
declare const Radio_2: RadioComponent;
|
|
@@ -1046,9 +1151,10 @@ declare namespace rawComponents {
|
|
|
1046
1151
|
RecursicaDropdownProps,
|
|
1047
1152
|
DropdownProps,
|
|
1048
1153
|
Dropdown_2 as Dropdown,
|
|
1154
|
+
RecursicaFileUploadItem,
|
|
1155
|
+
RecursicaFileInputProps_2 as RecursicaFileInputProps,
|
|
1049
1156
|
FileInputProps,
|
|
1050
1157
|
FileInput_2 as FileInput,
|
|
1051
|
-
RecursicaFileUploadItem,
|
|
1052
1158
|
RecursicaFileUploadProps_2 as RecursicaFileUploadProps,
|
|
1053
1159
|
FileUploadProps,
|
|
1054
1160
|
FileUpload_2 as FileUpload,
|
|
@@ -1096,6 +1202,11 @@ declare namespace rawComponents {
|
|
|
1096
1202
|
PanelFooterProps,
|
|
1097
1203
|
PanelFooter_2 as PanelFooter,
|
|
1098
1204
|
Panel_2 as Panel,
|
|
1205
|
+
PopoverOwnProps,
|
|
1206
|
+
PopoverProps,
|
|
1207
|
+
PopoverTargetProps,
|
|
1208
|
+
PopoverDropdownProps,
|
|
1209
|
+
Popover_2 as Popover,
|
|
1099
1210
|
RadioWrapperProps,
|
|
1100
1211
|
RecursicaRadioPropsAlias,
|
|
1101
1212
|
RadioProps_2 as RadioProps,
|
|
@@ -1178,6 +1289,9 @@ declare namespace rawComponents {
|
|
|
1178
1289
|
Toast_2 as Toast,
|
|
1179
1290
|
TooltipProps_2 as TooltipProps,
|
|
1180
1291
|
Tooltip_2 as Tooltip,
|
|
1292
|
+
RecursicaTransferListItem,
|
|
1293
|
+
RecursicaTransferListData,
|
|
1294
|
+
RecursicaTransferListProps_2 as RecursicaTransferListProps,
|
|
1181
1295
|
TransferListProps,
|
|
1182
1296
|
TransferList_2 as TransferList,
|
|
1183
1297
|
TypographyProps_2 as TypographyProps,
|
|
@@ -1215,7 +1329,7 @@ export declare type ReadOnlyFieldType = "text" | "number" | "date" | "boolean" |
|
|
|
1215
1329
|
/**
|
|
1216
1330
|
* Official list of all components in Recursica.
|
|
1217
1331
|
*/
|
|
1218
|
-
export declare const RECURSICA_COMPONENTS: readonly ["Accordion", "AssistiveElement", "Autocomplete", "Avatar", "Badge", "Breadcrumb", "Button", "Card", "Checkbox", "Chip", "Container", "DatePicker", "Dropdown", "EmptyValueRenderer", "Flex", "FormControlLayout", "FormControlWrapper", "Grid", "Group", "HoverCard", "Label", "Layer", "Link", "Loader", "Menu", "Modal", "NumberInput", "Pagination", "Panel", "Popover", "Radio", "ReadOnlyField", "SegmentedControl", "Slider", "Stack", "Stepper", "Switch", "Table", "Tabs", "Text", "TextArea", "TextField", "TimePicker", "Timeline", "Title", "Toast", "Tooltip", "TransferList"];
|
|
1332
|
+
export declare const RECURSICA_COMPONENTS: readonly ["Accordion", "AssistiveElement", "Autocomplete", "Avatar", "Badge", "Box", "Breadcrumb", "Button", "Card", "Checkbox", "CheckboxGroup", "Chip", "Container", "DatePicker", "Dropdown", "EmptyValueRenderer", "FileInput", "FileUpload", "Flex", "FormControlLayout", "FormControlWrapper", "Grid", "Group", "HoverCard", "Label", "Layer", "Link", "Loader", "Menu", "Modal", "NumberInput", "Pagination", "Panel", "Popover", "Radio", "ReadOnlyField", "SegmentedControl", "Slider", "Stack", "Stepper", "Switch", "Table", "Tabs", "Text", "TextArea", "TextField", "TimePicker", "Timeline", "Title", "Toast", "Tooltip", "TransferList", "Tree", "Typography"];
|
|
1219
1333
|
|
|
1220
1334
|
/**
|
|
1221
1335
|
* Props for the Recursica Accordion Control component.
|
|
@@ -1493,10 +1607,95 @@ declare interface RecursicaDropdownProps_2 {
|
|
|
1493
1607
|
placeholder?: string;
|
|
1494
1608
|
}
|
|
1495
1609
|
|
|
1610
|
+
/**
|
|
1611
|
+
* Props for the Recursica FileInput component.
|
|
1612
|
+
*
|
|
1613
|
+
* `FileInput` is presented as a single-line, `TextField`-shaped control rather than
|
|
1614
|
+
* `FileUpload`'s dropzone, but shares the same file-selection interface and validation
|
|
1615
|
+
* behavior (`accept`/`maxSize`/`maxFiles`, `onFilesRejected`, `readOnly`) so integrators can
|
|
1616
|
+
* move between them without relearning the contract.
|
|
1617
|
+
*/
|
|
1618
|
+
export declare interface RecursicaFileInputProps {
|
|
1619
|
+
/**
|
|
1620
|
+
* Files currently selected. This is a controlled list — `onFilesAdded`/`onFileRemove`
|
|
1621
|
+
* report changes, but `FileInput` never mutates this array itself; merge the reported
|
|
1622
|
+
* changes into your own state and pass the updated list back in.
|
|
1623
|
+
*/
|
|
1624
|
+
files?: RecursicaFileUploadItem[];
|
|
1625
|
+
/**
|
|
1626
|
+
* Called with the files the user just picked via the native file dialog or dropped onto
|
|
1627
|
+
* the control. Only the newly added files are passed — merge them into `files` yourself.
|
|
1628
|
+
*/
|
|
1629
|
+
onFilesAdded?: (files: File[]) => void;
|
|
1630
|
+
/**
|
|
1631
|
+
* Called when a file's remove affordance is activated, identified by its `id` (or
|
|
1632
|
+
* `file.name` when no `id` was given for that entry). In single-file mode this is also
|
|
1633
|
+
* called when the trailing clear icon removes the one selected file.
|
|
1634
|
+
*/
|
|
1635
|
+
onFileRemove?: (id: string) => void;
|
|
1636
|
+
/**
|
|
1637
|
+
* Native `accept` attribute for the underlying file input (e.g. `".pdf,.png"` or
|
|
1638
|
+
* `"image/*"`) — constrains the native file-picker dialog. Also enforced against files
|
|
1639
|
+
* dropped onto the control, the same way `FileUpload` enforces it.
|
|
1640
|
+
*/
|
|
1641
|
+
accept?: string;
|
|
1642
|
+
/** Whether more than one file can be selected/dropped at once. Defaults to `false`. */
|
|
1643
|
+
multiple?: boolean;
|
|
1644
|
+
/**
|
|
1645
|
+
* Maximum size per file, in bytes. Files exceeding this are passed to
|
|
1646
|
+
* `onFilesRejected` instead of `onFilesAdded`.
|
|
1647
|
+
*/
|
|
1648
|
+
maxSize?: number;
|
|
1649
|
+
/**
|
|
1650
|
+
* Maximum total number of files allowed in `files`. Only meaningful when `multiple` is
|
|
1651
|
+
* `true` — Once reached, further dropped/picked files are passed to `onFilesRejected`
|
|
1652
|
+
* instead of `onFilesAdded`.
|
|
1653
|
+
*/
|
|
1654
|
+
maxFiles?: number;
|
|
1655
|
+
/**
|
|
1656
|
+
* Called with any files rejected for exceeding `maxSize`/`maxFiles` or not matching
|
|
1657
|
+
* `accept`.
|
|
1658
|
+
*/
|
|
1659
|
+
onFilesRejected?: (files: File[]) => void;
|
|
1660
|
+
/**
|
|
1661
|
+
* Error message shown (via the standard assistive-text error slot) when a dropped/picked
|
|
1662
|
+
* file's extension or MIME type doesn't match `accept`. Defaults to
|
|
1663
|
+
* `"File type not accepted"`.
|
|
1664
|
+
*/
|
|
1665
|
+
invalidFileTypeMessage?: default_2.ReactNode;
|
|
1666
|
+
/**
|
|
1667
|
+
* Error message shown (via the standard assistive-text error slot) when a dropped/picked
|
|
1668
|
+
* file would exceed `maxFiles`. Defaults to `"Maximum of {maxFiles} files allowed"`.
|
|
1669
|
+
*/
|
|
1670
|
+
maxFilesMessage?: default_2.ReactNode;
|
|
1671
|
+
/** Leading icon shown inside the control. Defaults to the built-in upload icon. */
|
|
1672
|
+
icon?: default_2.ReactNode;
|
|
1673
|
+
/** Text shown when no file is selected. Defaults to `"Select a file..."`. */
|
|
1674
|
+
placeholder?: default_2.ReactNode;
|
|
1675
|
+
/** Screen-reader label for the control itself. Defaults to `"Choose file"`. */
|
|
1676
|
+
browseLabel?: string;
|
|
1677
|
+
/** Screen-reader label for a file chip's remove button. Defaults to `"Remove"`. */
|
|
1678
|
+
removeFileLabel?: string;
|
|
1679
|
+
/** Screen-reader label for the trailing clear-all icon. Defaults to `"Clear"`. */
|
|
1680
|
+
clearLabel?: string;
|
|
1681
|
+
/** Disables the control and its remove/clear icons. */
|
|
1682
|
+
disabled?: boolean;
|
|
1683
|
+
/**
|
|
1684
|
+
* Renders `files` as a static, non-interactive display with no clear/remove icons, and
|
|
1685
|
+
* disables picking or dropping new files.
|
|
1686
|
+
*/
|
|
1687
|
+
readOnly?: boolean;
|
|
1688
|
+
}
|
|
1689
|
+
|
|
1690
|
+
declare interface RecursicaFileInputProps_2 extends Omit<default_2.HTMLAttributes<HTMLDivElement>, "children" | "onDrop" | "onChange">, Omit<RecursicaFormControlWrapperProps, "controlMaxWidth" | "controlMinWidth">, RecursicaFileInputProps {
|
|
1691
|
+
/** 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. */
|
|
1692
|
+
withAsterisk?: boolean;
|
|
1693
|
+
}
|
|
1694
|
+
|
|
1496
1695
|
/**
|
|
1497
1696
|
* A single file entry rendered as a removable chip in the FileUpload's file list.
|
|
1498
1697
|
*/
|
|
1499
|
-
|
|
1698
|
+
declare interface RecursicaFileUploadItem {
|
|
1500
1699
|
/** The underlying browser File object. */
|
|
1501
1700
|
file: File;
|
|
1502
1701
|
/**
|
|
@@ -1505,6 +1704,8 @@ export declare interface RecursicaFileUploadItem {
|
|
|
1505
1704
|
*/
|
|
1506
1705
|
id?: string;
|
|
1507
1706
|
}
|
|
1707
|
+
export { RecursicaFileUploadItem as RecursicaFileInputItem }
|
|
1708
|
+
export { RecursicaFileUploadItem }
|
|
1508
1709
|
|
|
1509
1710
|
/**
|
|
1510
1711
|
* Props for the Recursica FileUpload component.
|
|
@@ -2215,10 +2416,47 @@ export declare interface RecursicaTooltipProps {
|
|
|
2215
2416
|
withBeak?: boolean;
|
|
2216
2417
|
}
|
|
2217
2418
|
|
|
2419
|
+
/** Controlled/uncontrolled data shape: [sourceItems, targetItems] */
|
|
2420
|
+
export declare type RecursicaTransferListData = [
|
|
2421
|
+
RecursicaTransferListItem[],
|
|
2422
|
+
RecursicaTransferListItem[]
|
|
2423
|
+
];
|
|
2424
|
+
|
|
2425
|
+
/**
|
|
2426
|
+
* A single transferable item.
|
|
2427
|
+
*/
|
|
2428
|
+
export declare interface RecursicaTransferListItem {
|
|
2429
|
+
/** Unique identifier used for selection and transfer */
|
|
2430
|
+
value: string;
|
|
2431
|
+
/** Display text */
|
|
2432
|
+
label: string;
|
|
2433
|
+
/** Optional group name — items sharing a group render under a CheckboxGroup */
|
|
2434
|
+
group?: string;
|
|
2435
|
+
}
|
|
2436
|
+
|
|
2218
2437
|
/**
|
|
2219
2438
|
* Props for the Recursica TransferList component.
|
|
2220
2439
|
*/
|
|
2221
2440
|
export declare interface RecursicaTransferListProps {
|
|
2441
|
+
/** Controlled data: [sourceItems, targetItems] */
|
|
2442
|
+
data?: RecursicaTransferListData;
|
|
2443
|
+
/** Uncontrolled initial data: [sourceItems, targetItems] */
|
|
2444
|
+
defaultData?: RecursicaTransferListData;
|
|
2445
|
+
/** Called with the new [sourceItems, targetItems] whenever items are transferred */
|
|
2446
|
+
onChange?: (data: RecursicaTransferListData) => void;
|
|
2447
|
+
/** Label for the source (left) list */
|
|
2448
|
+
sourceLabel?: string;
|
|
2449
|
+
/** Label for the target (right) list */
|
|
2450
|
+
targetLabel?: string;
|
|
2451
|
+
/** Enable per-pane search filtering. Defaults to true */
|
|
2452
|
+
searchable?: boolean;
|
|
2453
|
+
/** Placeholder text for the search fields */
|
|
2454
|
+
searchPlaceholder?: string;
|
|
2455
|
+
}
|
|
2456
|
+
|
|
2457
|
+
declare interface RecursicaTransferListProps_2 extends Omit<FormControlWrapperProps, "children" | "overStyled" | "controlMaxWidth" | "controlMinWidth" | "onChange">, ReadOnlyControlProps, RecursicaTransferListProps {
|
|
2458
|
+
/** Disables the whole control */
|
|
2459
|
+
disabled?: boolean;
|
|
2222
2460
|
}
|
|
2223
2461
|
|
|
2224
2462
|
/**
|
|
@@ -2811,7 +3049,7 @@ export declare const Timeline: typeof rawComponents.Timeline;
|
|
|
2811
3049
|
|
|
2812
3050
|
declare const Timeline_2: TimelineComponent;
|
|
2813
3051
|
|
|
2814
|
-
declare interface TimelineComponent extends default_2.ForwardRefExoticComponent<TimelineProps & default_2.RefAttributes<
|
|
3052
|
+
declare interface TimelineComponent extends default_2.ForwardRefExoticComponent<TimelineProps & default_2.RefAttributes<HTMLUListElement>> {
|
|
2815
3053
|
Item: typeof TimelineItem_2;
|
|
2816
3054
|
}
|
|
2817
3055
|
|
|
@@ -2824,10 +3062,24 @@ export declare const TimelineItem: typeof rawComponents.TimelineItem;
|
|
|
2824
3062
|
* The `Timeline.Item` has been extended to support a `timestamp` string natively,
|
|
2825
3063
|
* rendering it below the body content. It also accepts a `bulletVariant` to morph
|
|
2826
3064
|
* the structural dimensions of the node circle automatically.
|
|
2827
|
-
|
|
2828
|
-
|
|
3065
|
+
*
|
|
3066
|
+
* Internally it composes Mui's `TimelineSeparator`/`TimelineDot`/`TimelineConnector`/
|
|
3067
|
+
* `TimelineContent` primitives (Mui has no single "item" abstraction like Mantine's
|
|
3068
|
+
* `Timeline.Item` that renders a bullet + connector on its own).
|
|
3069
|
+
*/
|
|
3070
|
+
declare const TimelineItem_2: default_2.ForwardRefExoticComponent<(Omit<Omit<WithRecursicaSpacing<Omit<TimelineItemProps, "color" | "title" | "radius" | "lineVariant"> & RecursicaTimelineItemProps & {
|
|
3071
|
+
/** Heading rendered above the item's description/timestamp */
|
|
3072
|
+
title?: default_2.ReactNode;
|
|
3073
|
+
/* Excluded from this release type: __active */
|
|
3074
|
+
/* Excluded from this release type: __isLast */
|
|
3075
|
+
}>, BlockedStylingKeys> & ForbiddenStyles & {
|
|
2829
3076
|
overStyled?: false | undefined;
|
|
2830
|
-
}, "ref"> | Omit<Omit<Omit<TimelineItemProps, "color" | "radius" | "lineVariant"> & RecursicaTimelineItemProps
|
|
3077
|
+
}, "ref"> | Omit<Omit<Omit<TimelineItemProps, "color" | "title" | "radius" | "lineVariant"> & RecursicaTimelineItemProps & {
|
|
3078
|
+
/** Heading rendered above the item's description/timestamp */
|
|
3079
|
+
title?: default_2.ReactNode;
|
|
3080
|
+
/* Excluded from this release type: __active */
|
|
3081
|
+
/* Excluded from this release type: __isLast */
|
|
3082
|
+
}, "m" | "my" | "mx" | "mt" | "mb" | "ml" | "mr" | "gap" | "rowGap" | "columnGap"> & {
|
|
2831
3083
|
m?: string | number | RecursicaSpacing;
|
|
2832
3084
|
mx?: string | number | RecursicaSpacing;
|
|
2833
3085
|
my?: string | number | RecursicaSpacing;
|
|
@@ -2840,9 +3092,14 @@ declare const TimelineItem_2: default_2.ForwardRefExoticComponent<(Omit<Omit<Wit
|
|
|
2840
3092
|
columnGap?: string | number | RecursicaSpacing;
|
|
2841
3093
|
} & {
|
|
2842
3094
|
overStyled: true;
|
|
2843
|
-
}, "ref">) & default_2.RefAttributes<
|
|
3095
|
+
}, "ref">) & default_2.RefAttributes<HTMLLIElement>>;
|
|
2844
3096
|
|
|
2845
|
-
declare type TimelineItemProps_2 = RecursicaOverStyled<Omit<TimelineItemProps, "radius" | "color" | "lineVariant"> & RecursicaTimelineItemProps
|
|
3097
|
+
declare type TimelineItemProps_2 = RecursicaOverStyled<Omit<TimelineItemProps, "radius" | "color" | "lineVariant" | "title"> & RecursicaTimelineItemProps & {
|
|
3098
|
+
/** Heading rendered above the item's description/timestamp */
|
|
3099
|
+
title?: default_2.ReactNode;
|
|
3100
|
+
/* Excluded from this release type: __active */
|
|
3101
|
+
/* Excluded from this release type: __isLast */
|
|
3102
|
+
}>;
|
|
2846
3103
|
|
|
2847
3104
|
/**
|
|
2848
3105
|
* Properties for the strictly-tokenized Timeline component.
|
|
@@ -2944,9 +3201,24 @@ declare type TooltipProps_2 = RecursicaOverStyled<TooltipProps & RecursicaToolti
|
|
|
2944
3201
|
|
|
2945
3202
|
export declare const TransferList: typeof rawComponents.TransferList;
|
|
2946
3203
|
|
|
2947
|
-
declare const TransferList_2:
|
|
3204
|
+
declare const TransferList_2: ForwardRefExoticComponent<(Omit<Omit<WithRecursicaSpacing<RecursicaTransferListProps_2>, BlockedStylingKeys> & ForbiddenStyles & {
|
|
3205
|
+
overStyled?: false | undefined;
|
|
3206
|
+
}, "ref"> | Omit<Omit<RecursicaTransferListProps_2, "m" | "my" | "mx" | "mt" | "mb" | "ml" | "mr" | "gap" | "rowGap" | "columnGap"> & {
|
|
3207
|
+
m?: string | number | RecursicaSpacing;
|
|
3208
|
+
mx?: string | number | RecursicaSpacing;
|
|
3209
|
+
my?: string | number | RecursicaSpacing;
|
|
3210
|
+
mt?: string | number | RecursicaSpacing;
|
|
3211
|
+
mb?: string | number | RecursicaSpacing;
|
|
3212
|
+
ml?: string | number | RecursicaSpacing;
|
|
3213
|
+
mr?: string | number | RecursicaSpacing;
|
|
3214
|
+
gap?: string | number | RecursicaSpacing;
|
|
3215
|
+
rowGap?: string | number | RecursicaSpacing;
|
|
3216
|
+
columnGap?: string | number | RecursicaSpacing;
|
|
3217
|
+
} & {
|
|
3218
|
+
overStyled: true;
|
|
3219
|
+
}, "ref">) & RefAttributes<HTMLDivElement>>;
|
|
2948
3220
|
|
|
2949
|
-
declare type TransferListProps =
|
|
3221
|
+
declare type TransferListProps = RecursicaOverStyled<RecursicaTransferListProps_2>;
|
|
2950
3222
|
|
|
2951
3223
|
export declare const Tree: typeof rawComponents.Tree;
|
|
2952
3224
|
|