asma-ui-core 3.34.0 → 3.36.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/dist/asma-ui-core.css +1 -1
- package/dist/components/data-display/badge/StyledBadge.js +29 -24
- package/dist/components/data-display/chip/StyledChip.js +45 -60
- package/dist/components/data-display/interactive-chip/StyledInteractiveChip.js +32 -38
- package/dist/components/data-display/tooltip/StyledTooltip.js +50 -33
- package/dist/components/data-display/typography/StyledTypography.js +62 -4
- package/dist/components/feedback/dialog/StyledDialog.js +70 -50
- package/dist/components/feedback/dialog/StyledDialog.module.js +2 -9
- package/dist/components/feedback/dialog/StyledDialogActions.js +16 -16
- package/dist/components/feedback/dialog/StyledDialogContent.js +17 -14
- package/dist/components/feedback/dialog/StyledDialogTitle.js +18 -13
- package/dist/components/feedback/minimizable-dialog/MinimizableDialog.js +56 -57
- package/dist/components/feedback/snack-bar/StyledAlert.js +72 -14
- package/dist/components/feedback/snack-bar/StyledSnackbar.js +34 -8
- package/dist/components/feedback/snack-bar/components/StyledDefaultSnackbar.js +33 -34
- package/dist/components/inputs/checkbox/base-ui/StyledCheckbox.js +55 -58
- package/dist/components/inputs/checkbox/base-ui/StyledCheckbox.module.js +12 -12
- package/dist/components/inputs/dynamic-select/components/DynamicInteractiveChipGroup.js +1 -1
- package/dist/components/inputs/dynamic-select/components/DynamicSelectAutocomplete.js +1 -1
- package/dist/components/inputs/field-styles.js +6 -0
- package/dist/components/inputs/input-field/StyledInputField.js +104 -81
- package/dist/components/inputs/input-field/StyledInputField.module.js +4 -0
- package/dist/components/inputs/radio-button/base-ui/RadioGroupContext.js +6 -0
- package/dist/components/inputs/radio-button/base-ui/StyledRadio.js +40 -29
- package/dist/components/inputs/radio-button/base-ui/StyledRadio.module.js +10 -10
- package/dist/components/inputs/radio-button/base-ui/StyledRadioGroup.js +35 -23
- package/dist/components/inputs/select/StyledSelect.js +124 -45
- package/dist/components/inputs/select/StyledSelectItem.js +19 -23
- package/dist/components/inputs/select-autocomplete/StyledSelectAutocomplete.js +181 -151
- package/dist/components/inputs/slider/StyledSlider.js +78 -52
- package/dist/components/inputs/slider/StyledSlider.module.js +10 -0
- package/dist/components/inputs/switch/base-ui/StyledSwitch.js +44 -39
- package/dist/components/miscellaneous/FormControlContext.js +6 -0
- package/dist/components/miscellaneous/StyledFormControl.js +39 -21
- package/dist/components/miscellaneous/StyledFormControlLabel.js +27 -16
- package/dist/components/miscellaneous/StyledFormGroup.js +16 -4
- package/dist/components/miscellaneous/StyledFormHelperText.js +12 -4
- package/dist/components/miscellaneous/StyledInputLabel.js +20 -4
- package/dist/components/mui-compat/Avatar.js +29 -0
- package/dist/components/mui-compat/ClickAwayListener.js +29 -0
- package/dist/components/mui-compat/Container.js +24 -0
- package/dist/components/mui-compat/Fade.js +29 -0
- package/dist/components/mui-compat/Fade.module.js +9 -0
- package/dist/components/mui-compat/FormLabel.js +22 -0
- package/dist/components/mui-compat/Paper.js +44 -0
- package/dist/components/mui-compat/Popper.js +35 -0
- package/dist/components/mui-compat/Skeleton.js +26 -0
- package/dist/components/mui-compat/Stack.js +24 -0
- package/dist/components/navigation/drawer/StyledDrawer.js +42 -4
- package/dist/components/navigation/listbox/Listbox.js +7 -7
- package/dist/components/navigation/menu/StyledMenu.js +28 -11
- package/dist/components/navigation/menu/StyledMenuItem.js +16 -18
- package/dist/components/navigation/menu/StyledMenuList.js +32 -4
- package/dist/components/navigation/tabs/StyledTab.js +25 -13
- package/dist/components/navigation/tabs/StyledTabs.js +112 -64
- package/dist/components/navigation/tabs/TabsContext.js +6 -0
- package/dist/components/utils/accordion/base-ui/AccordionContext.js +10 -0
- package/dist/components/utils/accordion/base-ui/StyledAccordion.js +28 -21
- package/dist/components/utils/accordion/base-ui/StyledAccordion.module.js +7 -7
- package/dist/components/utils/accordion/base-ui/StyledAccordionDetails.js +28 -14
- package/dist/components/utils/accordion/base-ui/StyledAccordionSummary.js +31 -27
- package/dist/components/utils/popover/StyledPopover.js +44 -15
- package/dist/datetime/components/date-picker/StyledDatePicker.js +6 -6
- package/dist/datetime/components/date-picker/components/BaseDatePickerInput.js +1 -1
- package/dist/datetime/components/date-picker/components/HelperTextWithTooltip.js +6 -6
- package/dist/datetime/components/date-picker/components/StyledCalendarPicker.js +11 -11
- package/dist/datetime/components/date-picker/components/StyledCalendarPickerFooter.js +13 -14
- package/dist/datetime/components/date-picker/components/StyledCalendarPickerSelectMonth.js +14 -14
- package/dist/datetime/components/date-picker/components/StyledCalendarPickerSelectYear.js +6 -6
- package/dist/datetime/components/date-picker/components/StyledDayPicker.js +4 -5
- package/dist/datetime/components/date-picker/hooks/useDatePickerMask.js +4 -4
- package/dist/datetime/components/time-picker/StyledTimePicker.js +25 -25
- package/dist/datetime/components/time-picker/TimePickerInput.js +15 -16
- package/dist/datetime/components/time-picker/TimePickerPopper.js +21 -19
- package/dist/datetime/helpers/cn.js +4 -5
- package/dist/helpers/arrays.js +4 -0
- package/dist/helpers/cn.js +4 -5
- package/dist/helpers/inputMask.js +45 -0
- package/dist/helpers/sx.js +46 -0
- package/dist/index.js +183 -175
- package/dist/src/api-surface.test.d.ts +1 -0
- package/dist/src/components/data-display/badge/StyledBadge.d.ts +26 -2
- package/dist/src/components/data-display/chip/StyledChip.d.ts +39 -5
- package/dist/src/components/data-display/interactive-chip/StyledInteractiveChip.d.ts +11 -4
- package/dist/src/components/data-display/tooltip/StyledTooltip.d.ts +36 -2
- package/dist/src/components/data-display/typography/StyledTypography.d.ts +19 -1
- package/dist/src/components/feedback/dialog/StyledDialog.d.ts +50 -4
- package/dist/src/components/feedback/dialog/StyledDialogActions.d.ts +12 -2
- package/dist/src/components/feedback/dialog/StyledDialogContent.d.ts +12 -2
- package/dist/src/components/feedback/dialog/StyledDialogTitle.d.ts +10 -2
- package/dist/src/components/feedback/snack-bar/SnackbarProvider.d.ts +1 -1
- package/dist/src/components/feedback/snack-bar/StyledAlert.d.ts +24 -2
- package/dist/src/components/feedback/snack-bar/StyledAlertSnackbar.d.ts +1 -1
- package/dist/src/components/feedback/snack-bar/StyledSnackbar.d.ts +21 -2
- package/dist/src/components/feedback/snack-bar/components/StyledDefaultSnackbar.d.ts +1 -1
- package/dist/src/components/feedback/snack-bar/components/StyledInfoSnackbar.d.ts +1 -1
- package/dist/src/components/feedback/snack-bar/components/types.d.ts +1 -1
- package/dist/src/components/inputs/checkbox/base-ui/StyledCheckbox.d.ts +9 -4
- package/dist/src/components/inputs/dynamic-select/types.d.ts +2 -2
- package/dist/src/components/inputs/field-styles.d.ts +22 -0
- package/dist/src/components/inputs/input-field/StyledInputField.d.ts +67 -11
- package/dist/src/components/inputs/input-field/index.d.ts +1 -1
- package/dist/src/components/inputs/radio-button/base-ui/RadioGroupContext.d.ts +10 -0
- package/dist/src/components/inputs/radio-button/base-ui/StyledRadio.d.ts +20 -5
- package/dist/src/components/inputs/radio-button/base-ui/StyledRadioGroup.d.ts +24 -7
- package/dist/src/components/inputs/select/StyledSelect.d.ts +39 -16
- package/dist/src/components/inputs/select/StyledSelectItem.d.ts +14 -2
- package/dist/src/components/inputs/select/index.d.ts +0 -1
- package/dist/src/components/inputs/select-autocomplete/StyledSelectAutocomplete.d.ts +88 -17
- package/dist/src/components/inputs/slider/StyledSlider.d.ts +55 -3
- package/dist/src/components/inputs/switch/base-ui/StyledSwitch.d.ts +20 -4
- package/dist/src/components/miscellaneous/FormControlContext.d.ts +14 -0
- package/dist/src/components/miscellaneous/StyledFormControl.d.ts +22 -2
- package/dist/src/components/miscellaneous/StyledFormControlLabel.d.ts +21 -2
- package/dist/src/components/miscellaneous/StyledFormGroup.d.ts +11 -2
- package/dist/src/components/miscellaneous/StyledFormHelperText.d.ts +12 -2
- package/dist/src/components/miscellaneous/StyledInputLabel.d.ts +20 -2
- package/dist/src/components/mui-compat/Avatar.d.ts +6 -0
- package/dist/src/components/mui-compat/ClickAwayListener.d.ts +19 -0
- package/dist/src/components/mui-compat/Container.d.ts +6 -0
- package/dist/src/components/mui-compat/Fade.d.ts +21 -0
- package/dist/src/components/mui-compat/FormLabel.d.ts +6 -0
- package/dist/src/components/mui-compat/Paper.d.ts +6 -0
- package/dist/src/components/mui-compat/Popper.d.ts +29 -0
- package/dist/src/components/mui-compat/Skeleton.d.ts +7 -0
- package/dist/src/components/mui-compat/Stack.d.ts +7 -0
- package/dist/src/components/mui-compat/index.d.ts +9 -0
- package/dist/src/components/mui-compat/types.d.ts +46 -0
- package/dist/src/components/navigation/drawer/StyledDrawer.d.ts +28 -2
- package/dist/src/components/navigation/menu/StyledMenu.d.ts +33 -2
- package/dist/src/components/navigation/menu/StyledMenuItem.d.ts +23 -2
- package/dist/src/components/navigation/menu/StyledMenuList.d.ts +16 -2
- package/dist/src/components/navigation/menu/index.d.ts +0 -1
- package/dist/src/components/navigation/tabs/StyledTab.d.ts +17 -3
- package/dist/src/components/navigation/tabs/StyledTabs.d.ts +16 -7
- package/dist/src/components/navigation/tabs/TabsContext.d.ts +11 -0
- package/dist/src/components/utils/accordion/base-ui/AccordionContext.d.ts +10 -0
- package/dist/src/components/utils/accordion/base-ui/StyledAccordion.d.ts +9 -3
- package/dist/src/components/utils/accordion/base-ui/StyledAccordionDetails.d.ts +5 -0
- package/dist/src/components/utils/accordion/base-ui/StyledAccordionSummary.d.ts +8 -4
- package/dist/src/components/utils/copy-wrapper/CopyWrapper.d.ts +1 -1
- package/dist/src/components/utils/filter-menu/StyledFilterMenu.d.ts +2 -2
- package/dist/src/components/utils/popover/StyledPopover.d.ts +32 -2
- package/dist/src/datetime/components/date-picker/components/StyledCalendarPicker.d.ts +1 -1
- package/dist/src/datetime/components/date-picker/components/StyledDayPicker.d.ts +1 -1
- package/dist/src/datetime/components/date-picker/hooks/useDatePickerMask.d.ts +1 -2
- package/dist/src/datetime/components/time-picker/TimePickerInput.d.ts +1 -1
- package/dist/src/datetime/components/time-picker/TimePickerPopper.d.ts +1 -1
- package/dist/src/datetime/components/time-picker/types.d.ts +1 -2
- package/dist/src/datetime/shared-components/StyledFormControl.d.ts +1 -2
- package/dist/src/datetime/shared-components/StyledInputField.d.ts +1 -12
- package/dist/src/datetime/shared-components/StyledSelect.d.ts +1 -16
- package/dist/src/datetime/shared-components/StyledSelectItem.d.ts +1 -2
- package/dist/src/datetime/shared-components/StyledTooltip.d.ts +1 -2
- package/dist/src/helpers/arrays.d.ts +2 -0
- package/dist/src/helpers/arrays.test.d.ts +1 -0
- package/dist/src/helpers/inputMask.d.ts +29 -0
- package/dist/src/helpers/inputMask.test.d.ts +1 -0
- package/dist/src/helpers/sx.d.ts +2 -0
- package/dist/src/helpers/sx.test.d.ts +1 -0
- package/dist/src/index.d.ts +1 -1
- package/dist/src/table/shared-components/StyledCheckbox.d.ts +7 -4
- package/dist/src/table/shared-components/StyledMenuItem.d.ts +18 -2
- package/dist/src/table/shared-components/menu-item/index.d.ts +13 -2
- package/dist/src/table/shared-components/tooltip/index.d.ts +5 -1
- package/dist/src/table/types.d.ts +1 -1
- package/dist/table/components/Fetching.js +4 -4
- package/dist/table/components/TableRow.js +7 -7
- package/dist/table/components/TableSkeleton.js +6 -6
- package/dist/table/components/columns/action-column/components/HeaderActionMenu.js +24 -24
- package/dist/table/components/columns/action-column/components/RowActionMenu.js +26 -25
- package/dist/table/components/table-footer/TablePagination.js +27 -24
- package/dist/table/components/table-footer/TableRowCountSelect.js +30 -27
- package/dist/table/helpers/cn.js +4 -5
- package/dist/table/shared-components/StyledCheckbox.js +54 -55
- package/dist/table/shared-components/StyledCheckbox.module.js +10 -10
- package/dist/table/shared-components/StyledMenuItem.js +12 -18
- package/dist/table/shared-components/menu-item/index.js +13 -17
- package/dist/table/shared-components/tooltip/index.js +4 -23
- package/package.json +9 -16
- package/dist/components/feedback/dialog/StyledDialogActions.module.js +0 -8
- package/dist/components/feedback/dialog/StyledDialogContent.module.js +0 -4
- package/dist/components/feedback/dialog/StyledDialogTitle.module.js +0 -4
- package/dist/components/inputs/checkbox/StyledCheckbox.js +0 -20
- package/dist/components/inputs/radio-button/StyledRadio.js +0 -17
- package/dist/datetime/shared-components/ExpandIcon.js +0 -18
- package/dist/datetime/shared-components/StyledFormControl.js +0 -23
- package/dist/datetime/shared-components/StyledInputField.js +0 -47
- package/dist/datetime/shared-components/StyledSelect.js +0 -47
- package/dist/datetime/shared-components/StyledSelectItem.js +0 -13
- package/dist/datetime/shared-components/StyledTooltip.js +0 -32
- package/dist/src/components/inputs/checkbox/StyledCheckbox.d.ts +0 -4
- package/dist/src/components/inputs/radio-button/StyledRadio.d.ts +0 -4
- package/dist/src/components/inputs/radio-button/StyledRadioGroup.d.ts +0 -4
- package/dist/src/components/inputs/switch/StyledSwitch.d.ts +0 -5
- package/dist/src/components/utils/accordion/StyledAccordion.d.ts +0 -2
- package/dist/src/components/utils/accordion/StyledAccordionDetails.d.ts +0 -2
- package/dist/src/components/utils/accordion/StyledAccordionSummary.d.ts +0 -8
|
@@ -1,25 +1,96 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type
|
|
1
|
+
import { HTMLAttributes, KeyboardEvent, ReactNode, SyntheticEvent } from 'react';
|
|
2
|
+
export type AutocompleteChangeReason = 'createOption' | 'selectOption' | 'removeOption' | 'clear' | 'blur';
|
|
3
|
+
export type AutocompleteInputChangeReason = 'input' | 'reset' | 'clear';
|
|
4
|
+
export interface AutocompleteRenderOptionState {
|
|
5
|
+
selected: boolean;
|
|
6
|
+
index: number;
|
|
7
|
+
inputValue: string;
|
|
8
|
+
}
|
|
9
|
+
/** Props the combobox hands to `renderInput`; spread straight onto `StyledInputField`. */
|
|
10
|
+
export interface AutocompleteRenderInputParams {
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
size?: 'small' | 'medium';
|
|
13
|
+
fullWidth?: boolean;
|
|
14
|
+
value: string;
|
|
15
|
+
onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
16
|
+
onFocus: () => void;
|
|
17
|
+
onKeyDown: (event: KeyboardEvent<HTMLInputElement>) => void;
|
|
18
|
+
slotProps: {
|
|
19
|
+
htmlInput: Record<string, unknown> & {
|
|
20
|
+
ref: React.Ref<HTMLInputElement>;
|
|
21
|
+
};
|
|
22
|
+
input: {
|
|
23
|
+
startAdornment?: ReactNode;
|
|
24
|
+
endAdornment?: ReactNode;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
type OptionLiProps = HTMLAttributes<HTMLLIElement> & {
|
|
29
|
+
key?: string;
|
|
30
|
+
ref?: React.Ref<HTMLLIElement>;
|
|
31
|
+
[dataAttr: `data-${string}`]: unknown;
|
|
32
|
+
};
|
|
33
|
+
type SingleValue<T> = T | null;
|
|
34
|
+
type MultiValue<T> = T[];
|
|
35
|
+
type AutocompleteValue<T, Multiple, DisableClearable, FreeSolo> = Multiple extends true ? MultiValue<T> : FreeSolo extends true ? T | string | null : DisableClearable extends true ? T : SingleValue<T>;
|
|
36
|
+
export interface StyledSelectAutocompleteProps<T, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false> {
|
|
3
37
|
dataTest: string;
|
|
4
|
-
|
|
38
|
+
options: readonly T[];
|
|
39
|
+
renderInput: (params: AutocompleteRenderInputParams) => ReactNode;
|
|
40
|
+
value?: SingleValue<T> | MultiValue<T> | string | undefined;
|
|
41
|
+
defaultValue?: SingleValue<T> | MultiValue<T> | string | undefined;
|
|
42
|
+
onChange?: (event: SyntheticEvent, value: AutocompleteValue<T, Multiple, DisableClearable, FreeSolo>, reason: AutocompleteChangeReason, details?: {
|
|
43
|
+
option: T;
|
|
44
|
+
}) => void;
|
|
5
45
|
getOptionLabel?: (option: T) => string;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
46
|
+
isOptionEqualToValue?: (option: T, value: T) => boolean;
|
|
47
|
+
renderOption?: (props: OptionLiProps, option: T, state: AutocompleteRenderOptionState) => ReactNode;
|
|
48
|
+
renderValue?: (value: MultiValue<T>, getItemProps: (opts: {
|
|
49
|
+
index: number;
|
|
50
|
+
}) => OptionLiProps) => ReactNode;
|
|
51
|
+
filterOptions?: (options: T[], state: {
|
|
52
|
+
inputValue: string;
|
|
53
|
+
}) => T[];
|
|
54
|
+
groupBy?: (option: T) => string;
|
|
55
|
+
loading?: boolean;
|
|
56
|
+
loadingText?: ReactNode;
|
|
57
|
+
noOptionsText?: ReactNode;
|
|
58
|
+
disabled?: boolean;
|
|
59
|
+
readOnly?: boolean;
|
|
60
|
+
size?: 'small' | 'medium';
|
|
61
|
+
disableClearable?: boolean;
|
|
62
|
+
freeSolo?: boolean;
|
|
63
|
+
open?: boolean;
|
|
64
|
+
onOpen?: (event?: SyntheticEvent) => void;
|
|
65
|
+
onClose?: (event?: SyntheticEvent, reason?: string) => void;
|
|
66
|
+
disableCloseOnSelect?: boolean;
|
|
67
|
+
inputValue?: string;
|
|
68
|
+
onInputChange?: (event: SyntheticEvent | null, value: string, reason: AutocompleteInputChangeReason) => void;
|
|
69
|
+
popupIcon?: ReactNode;
|
|
70
|
+
autoHeight?: boolean;
|
|
71
|
+
multiple?: Multiple;
|
|
10
72
|
allowSelectAll?: boolean;
|
|
11
73
|
selectAllLabel?: string;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
74
|
+
fullWidth?: boolean;
|
|
75
|
+
/** Accepted for MUI parity; single-select already omits selected options via filtering. */
|
|
76
|
+
filterSelectedOptions?: boolean;
|
|
77
|
+
classes?: {
|
|
78
|
+
root?: string;
|
|
79
|
+
paper?: string;
|
|
80
|
+
listbox?: string;
|
|
81
|
+
};
|
|
82
|
+
className?: string;
|
|
83
|
+
wrapperClassName?: string;
|
|
84
|
+
sx?: unknown;
|
|
85
|
+
}
|
|
18
86
|
/**
|
|
87
|
+
* Custom combobox (replaces MUI `Autocomplete`, DEC-002) built on `@floating-ui/react`. Supports
|
|
88
|
+
* single + multiple selection (with tag chips + optional select-all), type-ahead filtering,
|
|
89
|
+
* async `loading`, grouping, and the MUI `renderInput`/`renderOption`/`renderValue` callback
|
|
90
|
+
* contracts. Public props/generics preserved (DEC-003). TASK-401.
|
|
19
91
|
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
92
|
+
* ponytail: `freeSolo` is accepted (arbitrary input is emitted via onInputChange) but not turned
|
|
93
|
+
* into option values; exact keyboard-parity edge cases are Chromatic/axe-gated.
|
|
23
94
|
*/
|
|
24
|
-
export declare function StyledSelectAutocomplete<T, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false
|
|
95
|
+
export declare function StyledSelectAutocomplete<T, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false>({ dataTest, options, renderInput, value, onChange, getOptionLabel, isOptionEqualToValue, renderOption, renderValue, filterOptions, loading, loadingText, noOptionsText, disabled, readOnly, size, disableClearable, popupIcon, multiple, fullWidth, classes, inputValue: controlledInput, onInputChange, open: controlledOpen, onOpen, onClose, className, wrapperClassName, }: StyledSelectAutocompleteProps<T, Multiple, DisableClearable, FreeSolo>): JSX.Element;
|
|
25
96
|
export {};
|
|
@@ -1,8 +1,60 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export interface
|
|
1
|
+
import { ReactNode, SyntheticEvent } from 'react';
|
|
2
|
+
export interface SliderMark {
|
|
3
|
+
value: number;
|
|
4
|
+
label?: ReactNode;
|
|
5
|
+
}
|
|
6
|
+
type SliderValue = number | number[];
|
|
7
|
+
interface SliderClasses {
|
|
8
|
+
root?: string;
|
|
9
|
+
rail?: string;
|
|
10
|
+
track?: string;
|
|
11
|
+
thumb?: string;
|
|
12
|
+
mark?: string;
|
|
13
|
+
markActive?: string;
|
|
14
|
+
markLabel?: string;
|
|
15
|
+
markLabelActive?: string;
|
|
16
|
+
}
|
|
17
|
+
interface SliderSlotProps {
|
|
18
|
+
thumb?: {
|
|
19
|
+
className?: string;
|
|
20
|
+
};
|
|
21
|
+
rail?: {
|
|
22
|
+
className?: string;
|
|
23
|
+
};
|
|
24
|
+
markLabel?: {
|
|
25
|
+
className?: string;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export interface StyledSliderProps {
|
|
3
29
|
dataTest: string;
|
|
30
|
+
min?: number;
|
|
31
|
+
max?: number;
|
|
32
|
+
step?: number;
|
|
33
|
+
value?: SliderValue;
|
|
34
|
+
defaultValue?: SliderValue;
|
|
35
|
+
disabled?: boolean;
|
|
36
|
+
size?: 'small' | 'medium';
|
|
37
|
+
orientation?: 'horizontal' | 'vertical';
|
|
38
|
+
marks?: boolean | SliderMark[];
|
|
39
|
+
name?: string;
|
|
40
|
+
className?: string;
|
|
41
|
+
classes?: SliderClasses;
|
|
42
|
+
slotProps?: SliderSlotProps;
|
|
4
43
|
error?: boolean;
|
|
5
44
|
errorText?: string;
|
|
6
45
|
helperText?: string;
|
|
46
|
+
onChange?: (event: SyntheticEvent, value: SliderValue, activeThumb: number) => void;
|
|
47
|
+
onChangeCommitted?: (event: SyntheticEvent, value: SliderValue) => void;
|
|
7
48
|
}
|
|
8
|
-
|
|
49
|
+
/**
|
|
50
|
+
* Native range-input slider (replaces MUI `Slider`). Single value uses one `<input type="range">`;
|
|
51
|
+
* a two-element `value` renders two stacked inputs (each thumb independently grabbable via
|
|
52
|
+
* pointer-events on the thumb only). Marks, vertical orientation, `classes`/`slotProps` slots and
|
|
53
|
+
* `onChange`/`onChangeCommitted` are preserved (DEC-003).
|
|
54
|
+
*
|
|
55
|
+
* ponytail: exact-pixel parity with MUI's thumb travel/animation is a known ceiling — Chromatic in
|
|
56
|
+
* CI is the visual gate. Upgrade path: tune the 8px thumb inset if a diff shows misalignment.
|
|
57
|
+
* TASK-204.
|
|
58
|
+
*/
|
|
59
|
+
export declare const StyledSlider: ({ dataTest, min, max, step, value, defaultValue, disabled, size, orientation, marks, name, className, classes, slotProps, error, errorText, helperText, onChange, onChangeCommitted, }: StyledSliderProps) => JSX.Element;
|
|
60
|
+
export {};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
import { Switch } from '@base-ui/react/switch';
|
|
1
|
+
import { default as React, ButtonHTMLAttributes } from 'react';
|
|
3
2
|
type StyledSwitchProps = {
|
|
4
3
|
checked?: boolean;
|
|
5
4
|
defaultChecked?: boolean;
|
|
@@ -9,7 +8,24 @@ type StyledSwitchProps = {
|
|
|
9
8
|
required?: boolean;
|
|
10
9
|
id?: string;
|
|
11
10
|
dataTest?: string;
|
|
12
|
-
|
|
11
|
+
className?: string;
|
|
12
|
+
} & Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onChange' | 'type'>;
|
|
13
13
|
export type SwitchProps = StyledSwitchProps;
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Native `<button role="switch">` toggle (replaces `@base-ui/react`). Drives the SCSS module's
|
|
16
|
+
* `data-checked`/`data-unchecked`/`data-disabled` selectors from React; the visual track/thumb stay
|
|
17
|
+
* in SCSS (transitions/pseudo-elements — GUD-003). Public props + `onChange(event, checked)`
|
|
18
|
+
* unchanged. TASK-201.
|
|
19
|
+
*/
|
|
20
|
+
export declare const StyledSwitch: React.ForwardRefExoticComponent<{
|
|
21
|
+
checked?: boolean;
|
|
22
|
+
defaultChecked?: boolean;
|
|
23
|
+
onChange?: (event: React.ChangeEvent<HTMLInputElement>, checked: boolean) => void;
|
|
24
|
+
disabled?: boolean;
|
|
25
|
+
readOnly?: boolean;
|
|
26
|
+
required?: boolean;
|
|
27
|
+
id?: string;
|
|
28
|
+
dataTest?: string;
|
|
29
|
+
className?: string;
|
|
30
|
+
} & Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "onChange" | "type"> & React.RefAttributes<HTMLButtonElement>>;
|
|
15
31
|
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { FieldSize } from '../inputs/field-styles';
|
|
2
|
+
export interface FormControlContextValue {
|
|
3
|
+
focused: boolean;
|
|
4
|
+
filled: boolean;
|
|
5
|
+
error: boolean;
|
|
6
|
+
disabled: boolean;
|
|
7
|
+
required: boolean;
|
|
8
|
+
size: FieldSize;
|
|
9
|
+
labelId?: string;
|
|
10
|
+
setFocused: (value: boolean) => void;
|
|
11
|
+
setFilled: (value: boolean) => void;
|
|
12
|
+
}
|
|
13
|
+
export declare const FormControlContext: import('node_modules/@types/react').Context<FormControlContextValue | null>;
|
|
14
|
+
export declare const useFormControlContext: () => FormControlContextValue | null;
|
|
@@ -1,2 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { CSSProperties, ReactNode } from 'react';
|
|
2
|
+
import { FieldSize } from '../inputs/field-styles';
|
|
3
|
+
export interface FormControlProps {
|
|
4
|
+
children?: ReactNode;
|
|
5
|
+
error?: boolean;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
required?: boolean;
|
|
8
|
+
size?: FieldSize;
|
|
9
|
+
fullWidth?: boolean;
|
|
10
|
+
/** Accepted for API parity; the design always renders outlined. */
|
|
11
|
+
variant?: string;
|
|
12
|
+
className?: string;
|
|
13
|
+
style?: CSSProperties;
|
|
14
|
+
sx?: unknown;
|
|
15
|
+
id?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Form-field context provider + positioned container (replaces MUI `FormControl`). Tracks
|
|
19
|
+
* focus/filled state so `StyledInputLabel` can float and `StyledFormHelperText` can colour itself;
|
|
20
|
+
* `StyledSelect` reports its state into this context. Public props preserved (DEC-003). TASK-401.
|
|
21
|
+
*/
|
|
22
|
+
export declare const StyledFormControl: ({ children, error, disabled, required, size, fullWidth, className, style, sx, id, }: FormControlProps) => JSX.Element;
|
|
@@ -1,2 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export
|
|
1
|
+
import { ChangeEvent, ReactElement, ReactNode } from 'react';
|
|
2
|
+
export type LabelPlacement = 'end' | 'start' | 'top' | 'bottom';
|
|
3
|
+
export interface FormControlLabelProps {
|
|
4
|
+
/** The control element (a checkbox, radio, or switch). Receives `checked`/`onChange`/`disabled`/`name`/`value` unless already set. */
|
|
5
|
+
control: ReactElement;
|
|
6
|
+
label?: ReactNode;
|
|
7
|
+
checked?: boolean;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
name?: string;
|
|
10
|
+
value?: unknown;
|
|
11
|
+
labelPlacement?: LabelPlacement;
|
|
12
|
+
className?: string;
|
|
13
|
+
sx?: unknown;
|
|
14
|
+
onChange?: (event: ChangeEvent<HTMLInputElement>, checked: boolean) => void;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Native replacement for MUI `FormControlLabel` — a `<label>` that pairs a form control with a
|
|
18
|
+
* text label and forwards `checked`/`onChange`/`disabled`/`name`/`value` into the control (MUI's
|
|
19
|
+
* clone behavior). Public props preserved (DEC-003). TASK-203.
|
|
20
|
+
*/
|
|
21
|
+
export declare const StyledFormControlLabel: ({ control, label, checked, disabled, name, value, labelPlacement, className, sx, onChange, }: FormControlLabelProps) => JSX.Element;
|
|
@@ -1,2 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { HTMLAttributes } from 'react';
|
|
2
|
+
interface FormGroupProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
row?: boolean;
|
|
4
|
+
sx?: unknown;
|
|
5
|
+
classes?: Record<string, string>;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* MUI-free `FormGroup`: a flex container, column by default or `row`. TASK-101.
|
|
9
|
+
*/
|
|
10
|
+
export declare const StyledFormGroup: ({ row, className, sx, style, children, classes: _classes, ...rest }: FormGroupProps) => JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -1,2 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export
|
|
1
|
+
import { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export interface FormHelperTextProps extends Omit<HTMLAttributes<HTMLParagraphElement>, 'children'> {
|
|
3
|
+
children?: ReactNode;
|
|
4
|
+
error?: boolean;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Helper/validation text under a field (replaces MUI `FormHelperText`). Inherits `error`/`disabled`
|
|
9
|
+
* from a surrounding `StyledFormControl` when present, else from props. Public props preserved
|
|
10
|
+
* (DEC-003). TASK-401.
|
|
11
|
+
*/
|
|
12
|
+
export declare const StyledFormHelperText: ({ children, error, disabled, className, ...rest }: FormHelperTextProps) => JSX.Element;
|
|
@@ -1,2 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { FieldSize } from '../inputs/field-styles';
|
|
3
|
+
export interface InputLabelProps {
|
|
4
|
+
children?: ReactNode;
|
|
5
|
+
htmlFor?: string;
|
|
6
|
+
id?: string;
|
|
7
|
+
required?: boolean;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
error?: boolean;
|
|
10
|
+
size?: FieldSize;
|
|
11
|
+
/** Force the shrunk (floated) state; otherwise derived from the surrounding FormControl. */
|
|
12
|
+
shrink?: boolean;
|
|
13
|
+
className?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Floating field label (replaces MUI `InputLabel`). Reads focus/filled/error/size from the
|
|
17
|
+
* surrounding `StyledFormControl`; `shrink` lifts it onto the border. Public props preserved
|
|
18
|
+
* (DEC-003). TASK-401.
|
|
19
|
+
*/
|
|
20
|
+
export declare const StyledInputLabel: ({ children, htmlFor, id, required, disabled, error, size, shrink, className, }: InputLabelProps) => JSX.Element;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { AvatarProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* MUI-free `Avatar`: 40×40 flex box showing an image (`src`) or fallback children/initials on a
|
|
4
|
+
* grey background. Reproduces MUI default metrics + `variant`. TASK-102.
|
|
5
|
+
*/
|
|
6
|
+
export declare const Avatar: ({ src, srcSet, alt, variant, sizes, className, sx, style, children, classes: _classes, component: _component, ...rest }: AvatarProps) => JSX.Element;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ReactElement } from 'react';
|
|
2
|
+
type MouseEventName = 'onClick' | 'onMouseDown' | 'onMouseUp';
|
|
3
|
+
type TouchEventName = 'onTouchStart' | 'onTouchEnd';
|
|
4
|
+
export interface ClickAwayListenerProps {
|
|
5
|
+
children: ReactElement;
|
|
6
|
+
onClickAway: (event: MouseEvent | TouchEvent) => void;
|
|
7
|
+
mouseEvent?: MouseEventName | false;
|
|
8
|
+
touchEvent?: TouchEventName | false;
|
|
9
|
+
disableReactTree?: boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* MUI-free `ClickAwayListener`: fires `onClickAway` when a pointer event lands outside the single
|
|
13
|
+
* child element. Matches the MUI API subset this library uses (`onClickAway`, `mouseEvent`,
|
|
14
|
+
* `touchEvent`). The child must forward a ref to its root DOM node.
|
|
15
|
+
*
|
|
16
|
+
* @see asma-modules/_docs/frontend/plans/2026-07-10-19-12-plan-asma-ui-core-mui-removal.md — TASK-102
|
|
17
|
+
*/
|
|
18
|
+
export declare const ClickAwayListener: ({ children, onClickAway, mouseEvent, touchEvent, }: ClickAwayListenerProps) => ReactElement;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ContainerProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* MUI-free `Container`: full-width, horizontally centred, with default 16px gutters and a
|
|
4
|
+
* breakpoint `maxWidth` (default `lg`). `fixed` is not reproduced (rare). TASK-102.
|
|
5
|
+
*/
|
|
6
|
+
export declare const Container: ({ maxWidth, disableGutters, className, sx, style, component, children, fixed: _fixed, ...rest }: ContainerProps) => JSX.Element;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { CSSProperties, ReactElement } from 'react';
|
|
2
|
+
type Timeout = number | {
|
|
3
|
+
enter?: number;
|
|
4
|
+
exit?: number;
|
|
5
|
+
};
|
|
6
|
+
export interface FadeProps {
|
|
7
|
+
in?: boolean;
|
|
8
|
+
timeout?: Timeout;
|
|
9
|
+
appear?: boolean;
|
|
10
|
+
children: ReactElement;
|
|
11
|
+
onEnter?: () => void;
|
|
12
|
+
onExited?: () => void;
|
|
13
|
+
style?: CSSProperties;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Opacity transition (replaces MUI `Fade`). Clones its single child and runs a CSS keyframe on
|
|
17
|
+
* enter/exit, keeping the child mounted through the exit tween before calling `onExited` (so a
|
|
18
|
+
* parent `Popper` can unmount it). Public props preserved (DEC-003). TASK-403.
|
|
19
|
+
*/
|
|
20
|
+
export declare const Fade: ({ in: inProp, timeout, children, onExited, style, }: FadeProps) => JSX.Element | null;
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FormLabelProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* MUI-free `FormLabel`: a `<label>` with MUI's default form-label typography/colour. Distinct from
|
|
4
|
+
* this library's `StyledFormLabel` (data-display); this is the raw MUI passthrough. TASK-102.
|
|
5
|
+
*/
|
|
6
|
+
export declare const FormLabel: ({ required, className, sx, style, children, classes: _classes, component: _component, error: _error, focused: _focused, filled: _filled, color: _color, ...rest }: FormLabelProps) => JSX.Element;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { PaperProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* MUI-free `Paper`: white surface with border-radius and an elevation shadow (default 1) or an
|
|
4
|
+
* outlined border (`variant="outlined"`). Reproduces the MUI default-theme shadow scale (TASK-102).
|
|
5
|
+
*/
|
|
6
|
+
export declare const Paper: ({ elevation, square, variant, className, sx, style, component, children, classes: _classes, ...rest }: PaperProps) => JSX.Element;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { CSSProperties, ReactNode } from 'react';
|
|
2
|
+
import { Placement } from '@floating-ui/react';
|
|
3
|
+
export interface PopperTransitionProps {
|
|
4
|
+
in: boolean;
|
|
5
|
+
onExited: () => void;
|
|
6
|
+
}
|
|
7
|
+
type PopperChildren = ReactNode | ((props: {
|
|
8
|
+
TransitionProps: PopperTransitionProps;
|
|
9
|
+
placement: Placement;
|
|
10
|
+
}) => ReactNode);
|
|
11
|
+
export interface PopperProps {
|
|
12
|
+
open?: boolean;
|
|
13
|
+
anchorEl?: Element | null;
|
|
14
|
+
id?: string;
|
|
15
|
+
placement?: Placement;
|
|
16
|
+
transition?: boolean;
|
|
17
|
+
disablePortal?: boolean;
|
|
18
|
+
className?: string;
|
|
19
|
+
style?: CSSProperties;
|
|
20
|
+
children?: PopperChildren;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Positioning primitive (replaces MUI `Popper`) built on `@floating-ui/react`. Positions its
|
|
24
|
+
* content against `anchorEl`; with `transition`, renders children as a function receiving
|
|
25
|
+
* `TransitionProps` (`in`/`onExited`) so a child `Fade` can animate and unmount. Public props
|
|
26
|
+
* preserved (DEC-003). TASK-403.
|
|
27
|
+
*/
|
|
28
|
+
export declare const Popper: ({ open, anchorEl, id, placement, transition, disablePortal, className, style, children, }: PopperProps) => JSX.Element | null;
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SkeletonProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* MUI-free `Skeleton`: grey placeholder with the pulse animation (default). Reproduces MUI's
|
|
4
|
+
* variants (`text`/`circular`/`rectangular`/`rounded`), `width`/`height`, and background. `wave`
|
|
5
|
+
* animation degrades to `pulse` (Tailwind-first). TASK-102.
|
|
6
|
+
*/
|
|
7
|
+
export declare const Skeleton: ({ variant, width, height, animation, className, sx, style, children, classes: _classes, component: _component, ...rest }: SkeletonProps) => JSX.Element;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { StackProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* MUI-free `Stack`: a flex container with `direction` and `spacing` (× 8px gap) and optional
|
|
4
|
+
* `divider` between children. Scalar direction/spacing only — responsive breakpoint objects are not
|
|
5
|
+
* reproduced (rare on this library's usage). TASK-102.
|
|
6
|
+
*/
|
|
7
|
+
export declare const Stack: ({ direction, spacing, divider, className, sx, style, component, children, useFlexGap: _useFlexGap, ...rest }: StackProps) => JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { ClickAwayListener } from './ClickAwayListener';
|
|
2
|
+
export { Paper } from './Paper';
|
|
3
|
+
export { Stack } from './Stack';
|
|
4
|
+
export { Container } from './Container';
|
|
5
|
+
export { Avatar } from './Avatar';
|
|
6
|
+
export { Skeleton } from './Skeleton';
|
|
7
|
+
export { FormLabel } from './FormLabel';
|
|
8
|
+
export { Fade } from './Fade';
|
|
9
|
+
export { Popper } from './Popper';
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ElementType, HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
interface BaseShimProps extends HTMLAttributes<HTMLElement> {
|
|
3
|
+
sx?: unknown;
|
|
4
|
+
component?: ElementType;
|
|
5
|
+
classes?: Record<string, string>;
|
|
6
|
+
}
|
|
7
|
+
export interface PaperProps extends BaseShimProps {
|
|
8
|
+
elevation?: number;
|
|
9
|
+
square?: boolean;
|
|
10
|
+
variant?: 'elevation' | 'outlined';
|
|
11
|
+
}
|
|
12
|
+
export interface StackProps extends BaseShimProps {
|
|
13
|
+
direction?: 'row' | 'row-reverse' | 'column' | 'column-reverse';
|
|
14
|
+
spacing?: number | string;
|
|
15
|
+
divider?: ReactNode;
|
|
16
|
+
useFlexGap?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface AvatarProps extends BaseShimProps {
|
|
19
|
+
src?: string;
|
|
20
|
+
srcSet?: string;
|
|
21
|
+
alt?: string;
|
|
22
|
+
sizes?: string;
|
|
23
|
+
variant?: 'circular' | 'rounded' | 'square';
|
|
24
|
+
}
|
|
25
|
+
export interface SkeletonProps extends BaseShimProps {
|
|
26
|
+
variant?: 'text' | 'rectangular' | 'rounded' | 'circular';
|
|
27
|
+
width?: number | string;
|
|
28
|
+
height?: number | string;
|
|
29
|
+
animation?: 'pulse' | 'wave' | false;
|
|
30
|
+
}
|
|
31
|
+
export interface ContainerProps extends BaseShimProps {
|
|
32
|
+
maxWidth?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | false;
|
|
33
|
+
disableGutters?: boolean;
|
|
34
|
+
fixed?: boolean;
|
|
35
|
+
}
|
|
36
|
+
export interface FormLabelProps extends HTMLAttributes<HTMLLabelElement> {
|
|
37
|
+
sx?: unknown;
|
|
38
|
+
component?: ElementType;
|
|
39
|
+
classes?: Record<string, string>;
|
|
40
|
+
required?: boolean;
|
|
41
|
+
error?: boolean;
|
|
42
|
+
focused?: boolean;
|
|
43
|
+
filled?: boolean;
|
|
44
|
+
color?: string;
|
|
45
|
+
}
|
|
46
|
+
export {};
|
|
@@ -1,3 +1,29 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { FC, ReactNode } from 'react';
|
|
2
|
+
export type DrawerAnchor = 'left' | 'right' | 'top' | 'bottom';
|
|
3
|
+
export type DrawerCloseReason = 'backdropClick' | 'escapeKeyDown';
|
|
4
|
+
export interface DrawerProps {
|
|
5
|
+
open?: boolean;
|
|
6
|
+
onClose?: (event: Event | React.SyntheticEvent, reason: DrawerCloseReason) => void;
|
|
7
|
+
anchor?: DrawerAnchor;
|
|
8
|
+
variant?: 'temporary' | 'persistent' | 'permanent';
|
|
9
|
+
hideBackdrop?: boolean;
|
|
10
|
+
className?: string;
|
|
11
|
+
sx?: unknown;
|
|
12
|
+
PaperProps?: {
|
|
13
|
+
className?: string;
|
|
14
|
+
sx?: unknown;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Accepted for MUI `Drawer` parity (DEC-003). The panel always stays mounted so the slide
|
|
18
|
+
* transition can play, so `keepMounted` is effectively always-on — this prop is a typed no-op.
|
|
19
|
+
*/
|
|
20
|
+
ModalProps?: {
|
|
21
|
+
keepMounted?: boolean;
|
|
22
|
+
};
|
|
23
|
+
children?: ReactNode;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Sliding edge panel (replaces MUI `Drawer`). Portalled, slides from `anchor`, temporary variant
|
|
27
|
+
* shows a backdrop and closes on backdrop-click / Escape. Public props preserved (DEC-003). TASK-304.
|
|
28
|
+
*/
|
|
3
29
|
export declare const StyledDrawer: FC<DrawerProps>;
|
|
@@ -1,2 +1,33 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { CSSProperties, MouseEvent, ReactNode } from 'react';
|
|
2
|
+
import { PopoverOrigin, StyledPopoverProps } from '../../utils/popover';
|
|
3
|
+
export interface MenuProps {
|
|
4
|
+
open: boolean;
|
|
5
|
+
anchorEl?: Element | null;
|
|
6
|
+
onClose?: StyledPopoverProps['onClose'];
|
|
7
|
+
anchorOrigin?: PopoverOrigin;
|
|
8
|
+
transformOrigin?: PopoverOrigin;
|
|
9
|
+
id?: string;
|
|
10
|
+
className?: string;
|
|
11
|
+
sx?: unknown;
|
|
12
|
+
classes?: {
|
|
13
|
+
paper?: string;
|
|
14
|
+
list?: string;
|
|
15
|
+
};
|
|
16
|
+
/** MUI `Menu` `slotProps.paper` parity (DEC-003): styles/classes forwarded to the menu paper. */
|
|
17
|
+
slotProps?: {
|
|
18
|
+
paper?: {
|
|
19
|
+
className?: string;
|
|
20
|
+
sx?: unknown;
|
|
21
|
+
style?: CSSProperties;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
autoFocus?: boolean;
|
|
25
|
+
onClick?: (event: MouseEvent<HTMLUListElement>) => void;
|
|
26
|
+
children?: ReactNode;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Anchored menu (replaces MUI `Menu`) = `StyledPopover` + a keyboard-navigable `StyledMenuList`.
|
|
30
|
+
* Public props (`open`/`anchorEl`/`onClose`/`anchorOrigin`/`classes`/`autoFocus`) preserved
|
|
31
|
+
* (DEC-003). TASK-303.
|
|
32
|
+
*/
|
|
33
|
+
export declare const StyledMenu: ({ open, anchorEl, onClose, anchorOrigin, transformOrigin, id, className, sx, classes, slotProps, autoFocus, onClick, children, }: MenuProps) => JSX.Element;
|
|
@@ -1,2 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export
|
|
1
|
+
import { MouseEvent, ReactNode } from 'react';
|
|
2
|
+
export interface StyledMenuItemProps {
|
|
3
|
+
children?: ReactNode;
|
|
4
|
+
onClick?: (event: MouseEvent<HTMLLIElement>) => void;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
selected?: boolean;
|
|
7
|
+
/** Compact vertical padding (MUI `MenuItem` `dense` parity, DEC-003). */
|
|
8
|
+
dense?: boolean;
|
|
9
|
+
value?: unknown;
|
|
10
|
+
className?: string;
|
|
11
|
+
classes?: {
|
|
12
|
+
root?: string;
|
|
13
|
+
selected?: string;
|
|
14
|
+
};
|
|
15
|
+
sx?: unknown;
|
|
16
|
+
'data-test'?: string;
|
|
17
|
+
'data-testid'?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Native `role="menuitem"` (replaces MUI `MenuItem`). Enter/Space activate; a disabled item stays
|
|
21
|
+
* focusable but non-interactive (MUI parity). Public props preserved (DEC-003). TASK-303.
|
|
22
|
+
*/
|
|
23
|
+
export declare const StyledMenuItem: ({ children, onClick, disabled, selected, dense, className, classes, sx, "data-test": dataTest, "data-testid": dataTestId, value: _value, }: StyledMenuItemProps) => JSX.Element;
|
|
@@ -1,2 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export
|
|
1
|
+
import { KeyboardEvent, MouseEvent, ReactNode } from 'react';
|
|
2
|
+
export interface StyledMenuListProps {
|
|
3
|
+
children?: ReactNode;
|
|
4
|
+
className?: string;
|
|
5
|
+
/** Focus the first enabled item on mount (MUI Menu autoFocus behaviour). */
|
|
6
|
+
autoFocus?: boolean;
|
|
7
|
+
/** Drop the default vertical padding (MUI `disablePadding`). */
|
|
8
|
+
disablePadding?: boolean;
|
|
9
|
+
onClick?: (event: MouseEvent<HTMLUListElement>) => void;
|
|
10
|
+
onKeyDown?: (event: KeyboardEvent<HTMLUListElement>) => void;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Keyboard-navigable `role="menu"` list (replaces MUI `MenuList`). Arrow-key / Home / End roving
|
|
14
|
+
* focus over enabled `[role="menuitem"]` children. TASK-303.
|
|
15
|
+
*/
|
|
16
|
+
export declare const StyledMenuList: ({ children, className, autoFocus, disablePadding, onClick, onKeyDown, }: StyledMenuListProps) => JSX.Element;
|