diff --git a/docs/pages/joy-ui/api/alert.json b/docs/pages/joy-ui/api/alert.json index a14f33833b7487..3002c56816afb7 100644 --- a/docs/pages/joy-ui/api/alert.json +++ b/docs/pages/joy-ui/api/alert.json @@ -33,6 +33,26 @@ }, "name": "Alert", "styles": { "classes": [], "globalClasses": {}, "name": null }, + "slots": [ + { + "name": "endDecorator", + "description": "The component used to render the end decorator.", + "default": "'span'", + "class": ".MuiAlert-endDecorator" + }, + { + "name": "root", + "description": "The component used to render the root.", + "default": "'div'", + "class": ".MuiAlert-root" + }, + { + "name": "startDecorator", + "description": "The component used to render the start decorator.", + "default": "'span'", + "class": ".MuiAlert-startDecorator" + } + ], "spread": true, "forwardsRefTo": "HTMLDivElement", "filename": "/packages/mui-joy/src/Alert/Alert.tsx", diff --git a/docs/pages/joy-ui/api/aspect-ratio.json b/docs/pages/joy-ui/api/aspect-ratio.json index aa59d1410edd7b..5d6bba7a6ee9e1 100644 --- a/docs/pages/joy-ui/api/aspect-ratio.json +++ b/docs/pages/joy-ui/api/aspect-ratio.json @@ -37,6 +37,20 @@ }, "name": "AspectRatio", "styles": { "classes": [], "globalClasses": {}, "name": null }, + "slots": [ + { + "name": "content", + "description": "The component used to render the content.", + "default": "'div'", + "class": ".MuiAspectRatio-content" + }, + { + "name": "root", + "description": "The component used to render the root.", + "default": "'div'", + "class": ".MuiAspectRatio-root" + } + ], "spread": true, "forwardsRefTo": "HTMLDivElement", "filename": "/packages/mui-joy/src/AspectRatio/AspectRatio.tsx", diff --git a/docs/pages/joy-ui/api/autocomplete.json b/docs/pages/joy-ui/api/autocomplete.json index 51e53cad382c16..83f9c79dfac7d3 100644 --- a/docs/pages/joy-ui/api/autocomplete.json +++ b/docs/pages/joy-ui/api/autocomplete.json @@ -88,6 +88,80 @@ }, "name": "Autocomplete", "styles": { "classes": [], "globalClasses": {}, "name": null }, + "slots": [ + { + "name": "clearIndicator", + "description": "The component used to render the clear indicator.", + "default": "'button'", + "class": ".MuiAutocomplete-clearIndicator" + }, + { + "name": "endDecorator", + "description": "The component used to render the end decorator.", + "default": "'span'", + "class": ".MuiAutocomplete-endDecorator" + }, + { + "name": "input", + "description": "The component used to render the input.", + "default": "'input'", + "class": ".MuiAutocomplete-input" + }, + { + "name": "limitTag", + "description": "The component used to render the limit tag.", + "default": "'span'", + "class": ".MuiAutocomplete-limitTag" + }, + { + "name": "listbox", + "description": "The component used to render the listbox.", + "default": "'ul'", + "class": ".MuiAutocomplete-listbox" + }, + { + "name": "loading", + "description": "The component used to render the loading.", + "default": "'li'", + "class": ".MuiAutocomplete-loading" + }, + { + "name": "noOptions", + "description": "The component used to render the no-options.", + "default": "'li'", + "class": ".MuiAutocomplete-noOptions" + }, + { + "name": "option", + "description": "The component used to render the option.", + "default": "'li'", + "class": ".MuiAutocomplete-option" + }, + { + "name": "popupIndicator", + "description": "The component used to render the popup indicator.", + "default": "'button'", + "class": ".MuiAutocomplete-popupIndicator" + }, + { + "name": "root", + "description": "The component used to render the root.", + "default": "'div'", + "class": ".MuiAutocomplete-root" + }, + { + "name": "startDecorator", + "description": "The component used to render the start decorator.", + "default": "'span'", + "class": ".MuiAutocomplete-startDecorator" + }, + { + "name": "wrapper", + "description": "The component used to render the wrapper.", + "default": "'div'", + "class": ".MuiAutocomplete-wrapper" + } + ], "spread": true, "forwardsRefTo": "HTMLDivElement", "filename": "/packages/mui-joy/src/Autocomplete/Autocomplete.tsx", diff --git a/docs/pages/joy-ui/api/avatar.json b/docs/pages/joy-ui/api/avatar.json index c77d4923817a95..7532c474561c1a 100644 --- a/docs/pages/joy-ui/api/avatar.json +++ b/docs/pages/joy-ui/api/avatar.json @@ -34,6 +34,26 @@ }, "name": "Avatar", "styles": { "classes": [], "globalClasses": {}, "name": null }, + "slots": [ + { + "name": "fallback", + "description": "The component used to render the fallback.", + "default": "'svg'", + "class": ".MuiAvatar-fallback" + }, + { + "name": "img", + "description": "The component used to render the img.", + "default": "'img'", + "class": ".MuiAvatar-img" + }, + { + "name": "root", + "description": "The component used to render the root.", + "default": "'div'", + "class": ".MuiAvatar-root" + } + ], "spread": true, "forwardsRefTo": "HTMLDivElement", "filename": "/packages/mui-joy/src/Avatar/Avatar.tsx", diff --git a/docs/pages/joy-ui/api/badge.json b/docs/pages/joy-ui/api/badge.json index 2acb56e0d61ff2..7e1e7aa8bd2941 100644 --- a/docs/pages/joy-ui/api/badge.json +++ b/docs/pages/joy-ui/api/badge.json @@ -46,6 +46,20 @@ }, "name": "Badge", "styles": { "classes": [], "globalClasses": {}, "name": null }, + "slots": [ + { + "name": "badge", + "description": "The component used to render the badge.", + "default": "'div'", + "class": ".MuiBadge-badge" + }, + { + "name": "root", + "description": "The component used to render the root.", + "default": "'div'", + "class": ".MuiBadge-root" + } + ], "spread": true, "forwardsRefTo": "HTMLSpanElement", "filename": "/packages/mui-joy/src/Badge/Badge.tsx", diff --git a/docs/pages/joy-ui/api/breadcrumbs.json b/docs/pages/joy-ui/api/breadcrumbs.json index 6f18365509c763..ec063f68febfb3 100644 --- a/docs/pages/joy-ui/api/breadcrumbs.json +++ b/docs/pages/joy-ui/api/breadcrumbs.json @@ -18,6 +18,32 @@ }, "name": "Breadcrumbs", "styles": { "classes": [], "globalClasses": {}, "name": null }, + "slots": [ + { + "name": "li", + "description": "The component used to render the li.", + "default": "'li'", + "class": ".MuiBreadcrumbs-li" + }, + { + "name": "ol", + "description": "The component used to render the ol.", + "default": "'ol'", + "class": ".MuiBreadcrumbs-ol" + }, + { + "name": "root", + "description": "The component used to render the root.", + "default": "'nav'", + "class": ".MuiBreadcrumbs-root" + }, + { + "name": "separator", + "description": "The component used to render the separator.", + "default": "'li'", + "class": ".MuiBreadcrumbs-separator" + } + ], "spread": true, "forwardsRefTo": "HTMLElement", "filename": "/packages/mui-joy/src/Breadcrumbs/Breadcrumbs.tsx", diff --git a/docs/pages/joy-ui/api/button.json b/docs/pages/joy-ui/api/button.json index 869d65a9f8c837..a58c6bea8b2520 100644 --- a/docs/pages/joy-ui/api/button.json +++ b/docs/pages/joy-ui/api/button.json @@ -49,6 +49,32 @@ }, "name": "Button", "styles": { "classes": [], "globalClasses": {}, "name": null }, + "slots": [ + { + "name": "endDecorator", + "description": "The component used to render the end decorator.", + "default": "'span'", + "class": ".MuiButton-endDecorator" + }, + { + "name": "loadingIndicatorCenter", + "description": "The component used to render the loading indicator center.", + "default": "'span'", + "class": ".MuiButton-loadingIndicatorCenter" + }, + { + "name": "root", + "description": "The component used to render the root.", + "default": "'button'", + "class": ".MuiButton-root" + }, + { + "name": "startDecorator", + "description": "The component used to render the start decorator.", + "default": "'span'", + "class": ".MuiButton-startDecorator" + } + ], "spread": false, "forwardsRefTo": "HTMLButtonElement", "filename": "/packages/mui-joy/src/Button/Button.tsx", diff --git a/docs/pages/joy-ui/api/checkbox.json b/docs/pages/joy-ui/api/checkbox.json index 9884b3aa24316f..3eb8745d08d650 100644 --- a/docs/pages/joy-ui/api/checkbox.json +++ b/docs/pages/joy-ui/api/checkbox.json @@ -48,6 +48,38 @@ }, "name": "Checkbox", "styles": { "classes": [], "globalClasses": {}, "name": null }, + "slots": [ + { + "name": "action", + "description": "The component used to render the action.", + "default": "'span'", + "class": ".MuiCheckbox-action" + }, + { + "name": "checkbox", + "description": "The component used to render the checkbox.", + "default": "'span'", + "class": ".MuiCheckbox-checkbox" + }, + { + "name": "input", + "description": "The component used to render the input.", + "default": "'input'", + "class": ".MuiCheckbox-input" + }, + { + "name": "label", + "description": "The component used to render the label.", + "default": "'label'", + "class": ".MuiCheckbox-label" + }, + { + "name": "root", + "description": "The component used to render the root.", + "default": "'span'", + "class": ".MuiCheckbox-root" + } + ], "spread": false, "forwardsRefTo": "HTMLSpanElement", "filename": "/packages/mui-joy/src/Checkbox/Checkbox.tsx", diff --git a/docs/pages/joy-ui/api/chip.json b/docs/pages/joy-ui/api/chip.json index 270c9d91ac4be9..4bf01fcc76f198 100644 --- a/docs/pages/joy-ui/api/chip.json +++ b/docs/pages/joy-ui/api/chip.json @@ -35,6 +35,38 @@ }, "name": "Chip", "styles": { "classes": [], "globalClasses": {}, "name": null }, + "slots": [ + { + "name": "action", + "description": "The component used to render the action.", + "default": "'button'", + "class": ".MuiChip-action" + }, + { + "name": "endDecorator", + "description": "The component used to render the end decorator.", + "default": "'span'", + "class": ".MuiChip-endDecorator" + }, + { + "name": "label", + "description": "The component used to render the label.", + "default": "'span'", + "class": ".MuiChip-label" + }, + { + "name": "root", + "description": "The component used to render the root.", + "default": "'div'", + "class": ".MuiChip-root" + }, + { + "name": "startDecorator", + "description": "The component used to render the start decorator.", + "default": "'span'", + "class": ".MuiChip-startDecorator" + } + ], "spread": true, "forwardsRefTo": "HTMLDivElement", "filename": "/packages/mui-joy/src/Chip/Chip.tsx", diff --git a/docs/pages/joy-ui/api/circular-progress.json b/docs/pages/joy-ui/api/circular-progress.json index 3aad5f08bdec17..89284e9dbb0f0c 100644 --- a/docs/pages/joy-ui/api/circular-progress.json +++ b/docs/pages/joy-ui/api/circular-progress.json @@ -33,6 +33,32 @@ }, "name": "CircularProgress", "styles": { "classes": [], "globalClasses": {}, "name": null }, + "slots": [ + { + "name": "progress", + "description": "The component used to render the progress.", + "default": "'circle'", + "class": ".MuiCircularProgress-progress" + }, + { + "name": "root", + "description": "The component used to render the root.", + "default": "'span'", + "class": ".MuiCircularProgress-root" + }, + { + "name": "svg", + "description": "The component used to render the svg.", + "default": "'svg'", + "class": ".MuiCircularProgress-svg" + }, + { + "name": "track", + "description": "The component used to render the track.", + "default": "'circle'", + "class": ".MuiCircularProgress-track" + } + ], "spread": true, "forwardsRefTo": "HTMLSpanElement", "filename": "/packages/mui-joy/src/CircularProgress/CircularProgress.tsx", diff --git a/docs/pages/joy-ui/api/form-label.json b/docs/pages/joy-ui/api/form-label.json index 7e19c2cee1cc3e..d199f557f450f7 100644 --- a/docs/pages/joy-ui/api/form-label.json +++ b/docs/pages/joy-ui/api/form-label.json @@ -12,6 +12,20 @@ }, "name": "FormLabel", "styles": { "classes": [], "globalClasses": {}, "name": null }, + "slots": [ + { + "name": "asterisk", + "description": "The component used to render the asterisk.", + "default": "'span'", + "class": ".MuiFormLabel-asterisk" + }, + { + "name": "root", + "description": "The component used to render the root.", + "default": "'label'", + "class": ".MuiFormLabel-root" + } + ], "spread": true, "forwardsRefTo": "HTMLLabelElement", "filename": "/packages/mui-joy/src/FormLabel/FormLabel.tsx", diff --git a/docs/pages/joy-ui/api/input.json b/docs/pages/joy-ui/api/input.json index ec9e8ebe0c13b8..67d049bc3e1983 100644 --- a/docs/pages/joy-ui/api/input.json +++ b/docs/pages/joy-ui/api/input.json @@ -32,6 +32,32 @@ }, "name": "Input", "styles": { "classes": [], "globalClasses": {}, "name": null }, + "slots": [ + { + "name": "endDecorator", + "description": "The component used to render the end decorator.", + "default": "'span'", + "class": ".MuiInput-endDecorator" + }, + { + "name": "input", + "description": "The component used to render the input.", + "default": "'input'", + "class": ".MuiInput-input" + }, + { + "name": "root", + "description": "The component used to render the root.", + "default": "'div'", + "class": ".MuiInput-root" + }, + { + "name": "startDecorator", + "description": "The component used to render the start decorator.", + "default": "'span'", + "class": ".MuiInput-startDecorator" + } + ], "spread": false, "forwardsRefTo": "HTMLDivElement", "filename": "/packages/mui-joy/src/Input/Input.tsx", diff --git a/docs/pages/joy-ui/api/link.json b/docs/pages/joy-ui/api/link.json index f38f446d8d516f..0c30f17298dc7d 100644 --- a/docs/pages/joy-ui/api/link.json +++ b/docs/pages/joy-ui/api/link.json @@ -43,6 +43,26 @@ }, "name": "Link", "styles": { "classes": [], "globalClasses": {}, "name": null }, + "slots": [ + { + "name": "endDecorator", + "description": "The component used to render the end decorator.", + "default": "'span'", + "class": ".MuiLink-endDecorator" + }, + { + "name": "root", + "description": "The component used to render the root.", + "default": "'a'", + "class": ".MuiLink-root" + }, + { + "name": "startDecorator", + "description": "The component used to render the start decorator.", + "default": "'span'", + "class": ".MuiLink-startDecorator" + } + ], "spread": true, "forwardsRefTo": "HTMLAnchorElement", "filename": "/packages/mui-joy/src/Link/Link.tsx", diff --git a/docs/pages/joy-ui/api/list-item.json b/docs/pages/joy-ui/api/list-item.json index e2b710e25ce572..5f17839ea63a2d 100644 --- a/docs/pages/joy-ui/api/list-item.json +++ b/docs/pages/joy-ui/api/list-item.json @@ -29,6 +29,26 @@ }, "name": "ListItem", "styles": { "classes": [], "globalClasses": {}, "name": null }, + "slots": [ + { + "name": "endAction", + "description": "The component used to render the end action.", + "default": "'div'", + "class": ".MuiListItem-endAction" + }, + { + "name": "root", + "description": "The component used to render the root.", + "default": "'li'", + "class": ".MuiListItem-root" + }, + { + "name": "startAction", + "description": "The component used to render the start action.", + "default": "'div'", + "class": ".MuiListItem-startAction" + } + ], "spread": true, "forwardsRefTo": "HTMLLIElement", "filename": "/packages/mui-joy/src/ListItem/ListItem.tsx", diff --git a/docs/pages/joy-ui/api/modal.json b/docs/pages/joy-ui/api/modal.json index 5d4f34849be2de..5f8fb3272fe761 100644 --- a/docs/pages/joy-ui/api/modal.json +++ b/docs/pages/joy-ui/api/modal.json @@ -21,6 +21,20 @@ }, "name": "Modal", "styles": { "classes": [], "globalClasses": {}, "name": null }, + "slots": [ + { + "name": "backdrop", + "description": "The component used to render the backdrop.", + "default": "'div'", + "class": ".MuiModal-backdrop" + }, + { + "name": "root", + "description": "The component used to render the root.", + "default": "'div'", + "class": ".MuiModal-root" + } + ], "spread": true, "forwardsRefTo": "HTMLDivElement", "filename": "/packages/mui-joy/src/Modal/Modal.tsx", diff --git a/docs/pages/joy-ui/api/radio.json b/docs/pages/joy-ui/api/radio.json index 588807a69252f1..66e30e8ba4a9ab 100644 --- a/docs/pages/joy-ui/api/radio.json +++ b/docs/pages/joy-ui/api/radio.json @@ -44,6 +44,44 @@ }, "name": "Radio", "styles": { "classes": [], "globalClasses": {}, "name": null }, + "slots": [ + { + "name": "action", + "description": "The component used to render the action.", + "default": "'span'", + "class": ".MuiRadio-action" + }, + { + "name": "icon", + "description": "The component used to render the icon.", + "default": "'span'", + "class": ".MuiRadio-icon" + }, + { + "name": "input", + "description": "The component used to render the input.", + "default": "'input'", + "class": ".MuiRadio-input" + }, + { + "name": "label", + "description": "The component used to render the label.", + "default": "'label'", + "class": ".MuiRadio-label" + }, + { + "name": "radio", + "description": "The component used to render the radio.", + "default": "'span'", + "class": ".MuiRadio-radio" + }, + { + "name": "root", + "description": "The component used to render the root.", + "default": "'span'", + "class": ".MuiRadio-root" + } + ], "spread": false, "forwardsRefTo": "HTMLSpanElement", "filename": "/packages/mui-joy/src/Radio/Radio.tsx", diff --git a/docs/pages/joy-ui/api/select.json b/docs/pages/joy-ui/api/select.json index fde9fbbe594902..4a1363000f3d75 100644 --- a/docs/pages/joy-ui/api/select.json +++ b/docs/pages/joy-ui/api/select.json @@ -45,6 +45,44 @@ }, "name": "Select", "styles": { "classes": [], "globalClasses": {}, "name": null }, + "slots": [ + { + "name": "button", + "description": "The component used to render the button.", + "default": "'button'", + "class": ".MuiSelect-button" + }, + { + "name": "endDecorator", + "description": "The component used to render the end decorator.", + "default": "'span'", + "class": ".MuiSelect-endDecorator" + }, + { + "name": "indicator", + "description": "The component used to render the indicator.", + "default": "'span'", + "class": ".MuiSelect-indicator" + }, + { + "name": "listbox", + "description": "The component used to render the listbox.", + "default": "'ul'", + "class": ".MuiSelect-listbox" + }, + { + "name": "root", + "description": "The component used to render the root.", + "default": "'div'", + "class": ".MuiSelect-root" + }, + { + "name": "startDecorator", + "description": "The component used to render the start decorator.", + "default": "'span'", + "class": ".MuiSelect-startDecorator" + } + ], "spread": false, "forwardsRefTo": "HTMLDivElement", "filename": "/packages/mui-joy/src/Select/Select.tsx", diff --git a/docs/pages/joy-ui/api/slider.json b/docs/pages/joy-ui/api/slider.json index c578c11558eba8..36ffceb53dbda7 100644 --- a/docs/pages/joy-ui/api/slider.json +++ b/docs/pages/joy-ui/api/slider.json @@ -103,6 +103,56 @@ }, "name": "MuiSlider" }, + "slots": [ + { + "name": "input", + "description": "The component used to render the input.", + "default": "'input'", + "class": ".MuiSlider-input" + }, + { + "name": "mark", + "description": "The component used to render the mark.", + "default": "'span'", + "class": ".MuiSlider-mark" + }, + { + "name": "markLabel", + "description": "The component used to render the mark label.", + "default": "'span'", + "class": ".MuiSlider-markLabel" + }, + { + "name": "rail", + "description": "The component used to render the rail.", + "default": "'span'", + "class": ".MuiSlider-rail" + }, + { + "name": "root", + "description": "The component used to render the root.", + "default": "'span'", + "class": ".MuiSlider-root" + }, + { + "name": "thumb", + "description": "The component used to render the thumb.", + "default": "'span'", + "class": ".MuiSlider-thumb" + }, + { + "name": "track", + "description": "The component used to render the track.", + "default": "'span'", + "class": ".MuiSlider-track" + }, + { + "name": "valueLabel", + "description": "The component used to render the value label.", + "default": "'span'", + "class": ".MuiSlider-valueLabel" + } + ], "spread": false, "forwardsRefTo": "HTMLSpanElement", "filename": "/packages/mui-joy/src/Slider/Slider.tsx", diff --git a/docs/pages/joy-ui/api/switch.json b/docs/pages/joy-ui/api/switch.json index 04e93fb9c65fb4..2c93b01248da2a 100644 --- a/docs/pages/joy-ui/api/switch.json +++ b/docs/pages/joy-ui/api/switch.json @@ -38,6 +38,50 @@ }, "name": "Switch", "styles": { "classes": [], "globalClasses": {}, "name": null }, + "slots": [ + { + "name": "action", + "description": "The component used to render the action.", + "default": "'div'", + "class": ".MuiSwitch-action" + }, + { + "name": "endDecorator", + "description": "The component used to render the end decorator.", + "default": "'span'", + "class": ".MuiSwitch-endDecorator" + }, + { + "name": "input", + "description": "The component used to render the input.", + "default": "'input'", + "class": ".MuiSwitch-input" + }, + { + "name": "root", + "description": "The component used to render the root.", + "default": "'div'", + "class": ".MuiSwitch-root" + }, + { + "name": "startDecorator", + "description": "The component used to render the start decorator.", + "default": "'span'", + "class": ".MuiSwitch-startDecorator" + }, + { + "name": "thumb", + "description": "The component used to render the thumb.", + "default": "'span'", + "class": ".MuiSwitch-thumb" + }, + { + "name": "track", + "description": "The component used to render the track.", + "default": "'span'", + "class": ".MuiSwitch-track" + } + ], "spread": true, "forwardsRefTo": "HTMLDivElement", "filename": "/packages/mui-joy/src/Switch/Switch.tsx", diff --git a/docs/pages/joy-ui/api/textarea.json b/docs/pages/joy-ui/api/textarea.json index 8a813b2132d4c1..45a440668d50dc 100644 --- a/docs/pages/joy-ui/api/textarea.json +++ b/docs/pages/joy-ui/api/textarea.json @@ -32,6 +32,32 @@ }, "name": "Textarea", "styles": { "classes": [], "globalClasses": {}, "name": null }, + "slots": [ + { + "name": "endDecorator", + "description": "The component used to render the end decorator.", + "default": "'div'", + "class": ".MuiTextarea-endDecorator" + }, + { + "name": "root", + "description": "The component used to render the root.", + "default": "'div'", + "class": ".MuiTextarea-root" + }, + { + "name": "startDecorator", + "description": "The component used to render the start decorator.", + "default": "'div'", + "class": ".MuiTextarea-startDecorator" + }, + { + "name": "textarea", + "description": "The component used to render the textarea.", + "default": "'textarea'", + "class": ".MuiTextarea-textarea" + } + ], "spread": false, "forwardsRefTo": "HTMLDivElement", "filename": "/packages/mui-joy/src/Textarea/Textarea.tsx", diff --git a/docs/pages/joy-ui/api/tooltip.json b/docs/pages/joy-ui/api/tooltip.json index 4b45846fa8de0e..c84df8852cf980 100644 --- a/docs/pages/joy-ui/api/tooltip.json +++ b/docs/pages/joy-ui/api/tooltip.json @@ -64,6 +64,20 @@ }, "name": "Tooltip", "styles": { "classes": [], "globalClasses": {}, "name": null }, + "slots": [ + { + "name": "arrow", + "description": "The component used to render the arrow.", + "default": "'span'", + "class": ".MuiTooltip-arrow" + }, + { + "name": "root", + "description": "The component used to render the root.", + "default": "'div'", + "class": ".MuiTooltip-root" + } + ], "spread": true, "forwardsRefTo": "HTMLButtonElement", "filename": "/packages/mui-joy/src/Tooltip/Tooltip.tsx", diff --git a/docs/pages/joy-ui/api/typography.json b/docs/pages/joy-ui/api/typography.json index 2c8be9de8fb4e1..f1faec7c07e5b0 100644 --- a/docs/pages/joy-ui/api/typography.json +++ b/docs/pages/joy-ui/api/typography.json @@ -39,6 +39,26 @@ }, "name": "Typography", "styles": { "classes": [], "globalClasses": {}, "name": null }, + "slots": [ + { + "name": "endDecorator", + "description": "The component used to render the end decorator.", + "default": "'span'", + "class": ".MuiTypography-endDecorator" + }, + { + "name": "root", + "description": "The component used to render the root.", + "default": "'a'", + "class": ".MuiTypography-root" + }, + { + "name": "startDecorator", + "description": "The component used to render the start decorator.", + "default": "'span'", + "class": ".MuiTypography-startDecorator" + } + ], "spread": true, "forwardsRefTo": "HTMLParagraphElement", "filename": "/packages/mui-joy/src/Typography/Typography.tsx", diff --git a/docs/translations/api-docs-joy/alert/alert.json b/docs/translations/api-docs-joy/alert/alert.json index 428feeb2dac75d..5d838a57976ee4 100644 --- a/docs/translations/api-docs-joy/alert/alert.json +++ b/docs/translations/api-docs-joy/alert/alert.json @@ -9,5 +9,10 @@ "sx": "The system prop that allows defining system overrides as well as additional CSS styles. See the `sx` page for more details.", "variant": "The variant to use." }, - "classDescriptions": {} + "classDescriptions": {}, + "slotDescriptions": { + "endDecorator": "The component used to render the end decorator.", + "root": "The component used to render the root.", + "startDecorator": "The component used to render the start decorator." + } } diff --git a/docs/translations/api-docs-joy/aspect-ratio/aspect-ratio.json b/docs/translations/api-docs-joy/aspect-ratio/aspect-ratio.json index dedc711a69a889..790d706c093c75 100644 --- a/docs/translations/api-docs-joy/aspect-ratio/aspect-ratio.json +++ b/docs/translations/api-docs-joy/aspect-ratio/aspect-ratio.json @@ -10,5 +10,9 @@ "sx": "The system prop that allows defining system overrides as well as additional CSS styles. See the `sx` page for more details.", "variant": "The variant to use." }, - "classDescriptions": {} + "classDescriptions": {}, + "slotDescriptions": { + "content": "The component used to render the content.", + "root": "The component used to render the root." + } } diff --git a/docs/translations/api-docs-joy/autocomplete/autocomplete.json b/docs/translations/api-docs-joy/autocomplete/autocomplete.json index 584d9d526f86a8..d9f978b8fd2435 100644 --- a/docs/translations/api-docs-joy/autocomplete/autocomplete.json +++ b/docs/translations/api-docs-joy/autocomplete/autocomplete.json @@ -52,5 +52,19 @@ "value": "The value of the autocomplete.
The value must have reference equality with the option in order to be selected. You can customize the equality behavior with the isOptionEqualToValue prop.", "variant": "The variant to use." }, - "classDescriptions": {} + "classDescriptions": {}, + "slotDescriptions": { + "clearIndicator": "The component used to render the clear indicator.", + "endDecorator": "The component used to render the end decorator.", + "input": "The component used to render the input.", + "limitTag": "The component used to render the limit tag.", + "listbox": "The component used to render the listbox.", + "loading": "The component used to render the loading.", + "noOptions": "The component used to render the no-options.", + "option": "The component used to render the option.", + "popupIndicator": "The component used to render the popup indicator.", + "root": "The component used to render the root.", + "startDecorator": "The component used to render the start decorator.", + "wrapper": "The component used to render the wrapper." + } } diff --git a/docs/translations/api-docs-joy/avatar/avatar.json b/docs/translations/api-docs-joy/avatar/avatar.json index e0e27ec923ea84..cd850c62198632 100644 --- a/docs/translations/api-docs-joy/avatar/avatar.json +++ b/docs/translations/api-docs-joy/avatar/avatar.json @@ -10,5 +10,10 @@ "sx": "The system prop that allows defining system overrides as well as additional CSS styles. See the `sx` page for more details.", "variant": "The variant to use." }, - "classDescriptions": {} + "classDescriptions": {}, + "slotDescriptions": { + "fallback": "The component used to render the fallback.", + "img": "The component used to render the img.", + "root": "The component used to render the root." + } } diff --git a/docs/translations/api-docs-joy/badge/badge.json b/docs/translations/api-docs-joy/badge/badge.json index d125244d9f16a7..2344e407734e22 100644 --- a/docs/translations/api-docs-joy/badge/badge.json +++ b/docs/translations/api-docs-joy/badge/badge.json @@ -13,5 +13,9 @@ "sx": "The system prop that allows defining system overrides as well as additional CSS styles. See the `sx` page for more details.", "variant": "The variant to use." }, - "classDescriptions": {} + "classDescriptions": {}, + "slotDescriptions": { + "badge": "The component used to render the badge.", + "root": "The component used to render the root." + } } diff --git a/docs/translations/api-docs-joy/breadcrumbs/breadcrumbs.json b/docs/translations/api-docs-joy/breadcrumbs/breadcrumbs.json index 4e6791681916aa..eaf316ae06fd6d 100644 --- a/docs/translations/api-docs-joy/breadcrumbs/breadcrumbs.json +++ b/docs/translations/api-docs-joy/breadcrumbs/breadcrumbs.json @@ -6,5 +6,11 @@ "size": "The size of the component. It accepts theme values between 'sm' and 'lg'.", "sx": "The system prop that allows defining system overrides as well as additional CSS styles. See the `sx` page for more details." }, - "classDescriptions": {} + "classDescriptions": {}, + "slotDescriptions": { + "li": "The component used to render the li.", + "ol": "The component used to render the ol.", + "root": "The component used to render the root.", + "separator": "The component used to render the separator." + } } diff --git a/docs/translations/api-docs-joy/button/button.json b/docs/translations/api-docs-joy/button/button.json index ee38c292f67cd1..eebe316cc2826b 100644 --- a/docs/translations/api-docs-joy/button/button.json +++ b/docs/translations/api-docs-joy/button/button.json @@ -14,5 +14,11 @@ "sx": "The system prop that allows defining system overrides as well as additional CSS styles. See the `sx` page for more details.", "variant": "The variant to use." }, - "classDescriptions": {} + "classDescriptions": {}, + "slotDescriptions": { + "endDecorator": "The component used to render the end decorator.", + "loadingIndicatorCenter": "The component used to render the loading indicator center.", + "root": "The component used to render the root.", + "startDecorator": "The component used to render the start decorator." + } } diff --git a/docs/translations/api-docs-joy/checkbox/checkbox.json b/docs/translations/api-docs-joy/checkbox/checkbox.json index b3b8131b09b249..ac3eb9c889376f 100644 --- a/docs/translations/api-docs-joy/checkbox/checkbox.json +++ b/docs/translations/api-docs-joy/checkbox/checkbox.json @@ -22,5 +22,12 @@ "value": "The value of the component. The DOM API casts this to a string. The browser uses "on" as the default value.", "variant": "The variant to use." }, - "classDescriptions": {} + "classDescriptions": {}, + "slotDescriptions": { + "action": "The component used to render the action.", + "checkbox": "The component used to render the checkbox.", + "input": "The component used to render the input.", + "label": "The component used to render the label.", + "root": "The component used to render the root." + } } diff --git a/docs/translations/api-docs-joy/chip/chip.json b/docs/translations/api-docs-joy/chip/chip.json index 2c1576b528c6bc..fd76ef66d0a83f 100644 --- a/docs/translations/api-docs-joy/chip/chip.json +++ b/docs/translations/api-docs-joy/chip/chip.json @@ -11,5 +11,12 @@ "sx": "The system prop that allows defining system overrides as well as additional CSS styles. See the `sx` page for more details.", "variant": "The variant to use." }, - "classDescriptions": {} + "classDescriptions": {}, + "slotDescriptions": { + "action": "The component used to render the action.", + "endDecorator": "The component used to render the end decorator.", + "label": "The component used to render the label.", + "root": "The component used to render the root.", + "startDecorator": "The component used to render the start decorator." + } } diff --git a/docs/translations/api-docs-joy/circular-progress/circular-progress.json b/docs/translations/api-docs-joy/circular-progress/circular-progress.json index 2b527d0a1ca52e..a9492104688606 100644 --- a/docs/translations/api-docs-joy/circular-progress/circular-progress.json +++ b/docs/translations/api-docs-joy/circular-progress/circular-progress.json @@ -9,5 +9,11 @@ "value": "The value of the progress indicator for the determinate variant. Value between 0 and 100.", "variant": "The variant to use." }, - "classDescriptions": {} + "classDescriptions": {}, + "slotDescriptions": { + "progress": "The component used to render the progress.", + "root": "The component used to render the root.", + "svg": "The component used to render the svg.", + "track": "The component used to render the track." + } } diff --git a/docs/translations/api-docs-joy/form-label/form-label.json b/docs/translations/api-docs-joy/form-label/form-label.json index 5ec77c29cd103a..61f43cf2afae0a 100644 --- a/docs/translations/api-docs-joy/form-label/form-label.json +++ b/docs/translations/api-docs-joy/form-label/form-label.json @@ -6,5 +6,9 @@ "required": "The asterisk is added if required=true", "sx": "The system prop that allows defining system overrides as well as additional CSS styles. See the `sx` page for more details." }, - "classDescriptions": {} + "classDescriptions": {}, + "slotDescriptions": { + "asterisk": "The component used to render the asterisk.", + "root": "The component used to render the root." + } } diff --git a/docs/translations/api-docs-joy/input/input.json b/docs/translations/api-docs-joy/input/input.json index ddd21dbb81b993..de91a2a9ca5835 100644 --- a/docs/translations/api-docs-joy/input/input.json +++ b/docs/translations/api-docs-joy/input/input.json @@ -11,5 +11,11 @@ "sx": "The system prop that allows defining system overrides as well as additional CSS styles. See the `sx` page for more details.", "variant": "The variant to use." }, - "classDescriptions": {} + "classDescriptions": {}, + "slotDescriptions": { + "endDecorator": "The component used to render the end decorator.", + "input": "The component used to render the input.", + "root": "The component used to render the root.", + "startDecorator": "The component used to render the start decorator." + } } diff --git a/docs/translations/api-docs-joy/link/link.json b/docs/translations/api-docs-joy/link/link.json index 474352de3533d7..46c7a7d69204cf 100644 --- a/docs/translations/api-docs-joy/link/link.json +++ b/docs/translations/api-docs-joy/link/link.json @@ -13,5 +13,10 @@ "underline": "Controls when the link should have an underline.", "variant": "Applies the theme link styles." }, - "classDescriptions": {} + "classDescriptions": {}, + "slotDescriptions": { + "endDecorator": "The component used to render the end decorator.", + "root": "The component used to render the root.", + "startDecorator": "The component used to render the start decorator." + } } diff --git a/docs/translations/api-docs-joy/list-item/list-item.json b/docs/translations/api-docs-joy/list-item/list-item.json index 762b4c9e1220b6..49e8055c9bd6a8 100644 --- a/docs/translations/api-docs-joy/list-item/list-item.json +++ b/docs/translations/api-docs-joy/list-item/list-item.json @@ -11,5 +11,10 @@ "sx": "The system prop that allows defining system overrides as well as additional CSS styles. See the `sx` page for more details.", "variant": "The variant to use." }, - "classDescriptions": {} + "classDescriptions": {}, + "slotDescriptions": { + "endAction": "The component used to render the end action.", + "root": "The component used to render the root.", + "startAction": "The component used to render the start action." + } } diff --git a/docs/translations/api-docs-joy/modal/modal.json b/docs/translations/api-docs-joy/modal/modal.json index 2a9a7779b25300..88a1379f4bdf4c 100644 --- a/docs/translations/api-docs-joy/modal/modal.json +++ b/docs/translations/api-docs-joy/modal/modal.json @@ -15,5 +15,9 @@ "open": "If true, the component is shown.", "sx": "The system prop that allows defining system overrides as well as additional CSS styles. See the `sx` page for more details." }, - "classDescriptions": {} + "classDescriptions": {}, + "slotDescriptions": { + "backdrop": "The component used to render the backdrop.", + "root": "The component used to render the root." + } } diff --git a/docs/translations/api-docs-joy/radio/radio.json b/docs/translations/api-docs-joy/radio/radio.json index ff780a15e0cdfb..d22aa9be44d1cc 100644 --- a/docs/translations/api-docs-joy/radio/radio.json +++ b/docs/translations/api-docs-joy/radio/radio.json @@ -20,5 +20,13 @@ "value": "The value of the component. The DOM API casts this to a string.", "variant": "The variant to use." }, - "classDescriptions": {} + "classDescriptions": {}, + "slotDescriptions": { + "action": "The component used to render the action.", + "icon": "The component used to render the icon.", + "input": "The component used to render the input.", + "label": "The component used to render the label.", + "radio": "The component used to render the radio.", + "root": "The component used to render the root." + } } diff --git a/docs/translations/api-docs-joy/select/select.json b/docs/translations/api-docs-joy/select/select.json index d2a9acb1db0a66..9d64fbd15247ed 100644 --- a/docs/translations/api-docs-joy/select/select.json +++ b/docs/translations/api-docs-joy/select/select.json @@ -19,5 +19,13 @@ "value": "The selected value. Set to null to deselect all options.", "variant": "The variant to use." }, - "classDescriptions": {} + "classDescriptions": {}, + "slotDescriptions": { + "button": "The component used to render the button.", + "endDecorator": "The component used to render the end decorator.", + "indicator": "The component used to render the indicator.", + "listbox": "The component used to render the listbox.", + "root": "The component used to render the root.", + "startDecorator": "The component used to render the start decorator." + } } diff --git a/docs/translations/api-docs-joy/slider/slider.json b/docs/translations/api-docs-joy/slider/slider.json index b9d183eaf41dcf..c1fe0f7e8b83fc 100644 --- a/docs/translations/api-docs-joy/slider/slider.json +++ b/docs/translations/api-docs-joy/slider/slider.json @@ -101,5 +101,15 @@ "nodeName": "the mark label element", "conditions": "active (depending on the value)" } + }, + "slotDescriptions": { + "input": "The component used to render the input.", + "mark": "The component used to render the mark.", + "markLabel": "The component used to render the mark label.", + "rail": "The component used to render the rail.", + "root": "The component used to render the root.", + "thumb": "The component used to render the thumb.", + "track": "The component used to render the track.", + "valueLabel": "The component used to render the value label." } } diff --git a/docs/translations/api-docs-joy/switch/switch.json b/docs/translations/api-docs-joy/switch/switch.json index f188704218e4e5..139bf910d49cb4 100644 --- a/docs/translations/api-docs-joy/switch/switch.json +++ b/docs/translations/api-docs-joy/switch/switch.json @@ -14,5 +14,14 @@ "sx": "The system prop that allows defining system overrides as well as additional CSS styles. See the `sx` page for more details.", "variant": "The variant to use." }, - "classDescriptions": {} + "classDescriptions": {}, + "slotDescriptions": { + "action": "The component used to render the action.", + "endDecorator": "The component used to render the end decorator.", + "input": "The component used to render the input.", + "root": "The component used to render the root.", + "startDecorator": "The component used to render the start decorator.", + "thumb": "The component used to render the thumb.", + "track": "The component used to render the track." + } } diff --git a/docs/translations/api-docs-joy/textarea/textarea.json b/docs/translations/api-docs-joy/textarea/textarea.json index 5fa1846304c5a1..79e81ebeccfba8 100644 --- a/docs/translations/api-docs-joy/textarea/textarea.json +++ b/docs/translations/api-docs-joy/textarea/textarea.json @@ -11,5 +11,11 @@ "sx": "The system prop that allows defining system overrides as well as additional CSS styles. See the `sx` page for more details.", "variant": "The variant to use." }, - "classDescriptions": {} + "classDescriptions": {}, + "slotDescriptions": { + "endDecorator": "The component used to render the end decorator.", + "root": "The component used to render the root.", + "startDecorator": "The component used to render the start decorator.", + "textarea": "The component used to render the textarea." + } } diff --git a/docs/translations/api-docs-joy/tooltip/tooltip.json b/docs/translations/api-docs-joy/tooltip/tooltip.json index 406157fcf044df..166548d2637a91 100644 --- a/docs/translations/api-docs-joy/tooltip/tooltip.json +++ b/docs/translations/api-docs-joy/tooltip/tooltip.json @@ -29,5 +29,9 @@ "title": "Tooltip title. Zero-length titles string, undefined, null and false are never displayed.", "variant": "The variant to use." }, - "classDescriptions": {} + "classDescriptions": {}, + "slotDescriptions": { + "arrow": "The component used to render the arrow.", + "root": "The component used to render the root." + } } diff --git a/docs/translations/api-docs-joy/typography/typography.json b/docs/translations/api-docs-joy/typography/typography.json index f5359e1c20584f..11bda4a61832c1 100644 --- a/docs/translations/api-docs-joy/typography/typography.json +++ b/docs/translations/api-docs-joy/typography/typography.json @@ -14,5 +14,10 @@ "textColor": "The system color.", "variant": "The variant to use." }, - "classDescriptions": {} + "classDescriptions": {}, + "slotDescriptions": { + "endDecorator": "The component used to render the end decorator.", + "root": "The component used to render the root.", + "startDecorator": "The component used to render the start decorator." + } } diff --git a/packages/mui-joy/src/Alert/AlertProps.ts b/packages/mui-joy/src/Alert/AlertProps.ts index 2f6ebbbf359153..708419b0fb1915 100644 --- a/packages/mui-joy/src/Alert/AlertProps.ts +++ b/packages/mui-joy/src/Alert/AlertProps.ts @@ -5,8 +5,26 @@ import { CreateSlotsAndSlotProps, SlotProps } from '../utils/types'; export type AlertSlot = 'root' | 'startDecorator' | 'endDecorator'; +export interface AlertSlots { + /** + * The component used to render the root. + * @default 'div' + */ + root: React.ElementType; + /** + * The component used to render the start decorator. + * @default 'span' + */ + startDecorator: React.ElementType; + /** + * The component used to render the end decorator. + * @default 'span' + */ + endDecorator: React.ElementType; +} + export type AlertSlotsAndSlotProps = CreateSlotsAndSlotProps< - AlertSlot, + AlertSlots, { root: SlotProps<'div', {}, AlertOwnerState>; startDecorator: SlotProps<'span', {}, AlertOwnerState>; diff --git a/packages/mui-joy/src/AspectRatio/AspectRatioProps.ts b/packages/mui-joy/src/AspectRatio/AspectRatioProps.ts index 393600635c41a9..da81cccff7d0e7 100644 --- a/packages/mui-joy/src/AspectRatio/AspectRatioProps.ts +++ b/packages/mui-joy/src/AspectRatio/AspectRatioProps.ts @@ -5,11 +5,24 @@ import { CreateSlotsAndSlotProps, SlotProps } from '../utils/types'; export type AspectRatioSlot = 'root' | 'content'; +export interface AspectRatioSlots { + /** + * The component used to render the root. + * @default 'div' + */ + root: React.ElementType; + /** + * The component used to render the content. + * @default 'div' + */ + content: React.ElementType; +} + export interface AspectRatioPropsColorOverrides {} export interface AspectRatioPropsVariantOverrides {} export type AspectRatioSlotsAndSlotProps = CreateSlotsAndSlotProps< - AspectRatioSlot, + AspectRatioSlots, { root: SlotProps<'div', {}, AspectRatioOwnerState>; content: SlotProps<'div', {}, AspectRatioOwnerState>; diff --git a/packages/mui-joy/src/Autocomplete/AutocompleteProps.ts b/packages/mui-joy/src/Autocomplete/AutocompleteProps.ts index 2fa7cdbeaf8ab5..6a9d5b887ddd64 100644 --- a/packages/mui-joy/src/Autocomplete/AutocompleteProps.ts +++ b/packages/mui-joy/src/Autocomplete/AutocompleteProps.ts @@ -26,6 +26,69 @@ export type AutocompleteSlot = | 'noOptions' | 'limitTag'; +export interface AutocompleteSlots { + /** + * The component used to render the root. + * @default 'div' + */ + root: React.ElementType; + /** + * The component used to render the wrapper. + * @default 'div' + */ + wrapper: React.ElementType; + /** + * The component used to render the input. + * @default 'input' + */ + input: React.ElementType; + /** + * The component used to render the start decorator. + * @default 'span' + */ + startDecorator: React.ElementType; + /** + * The component used to render the end decorator. + * @default 'span' + */ + endDecorator: React.ElementType; + /** + * The component used to render the clear indicator. + * @default 'button' + */ + clearIndicator: React.ElementType; + /** + * The component used to render the popup indicator. + * @default 'button' + */ + popupIndicator: React.ElementType; + /** + * The component used to render the listbox. + * @default 'ul' + */ + listbox: React.ElementType; + /** + * The component used to render the option. + * @default 'li' + */ + option: React.ElementType; + /** + * The component used to render the loading. + * @default 'li' + */ + loading: React.ElementType; + /** + * The component used to render the no-options. + * @default 'li' + */ + noOptions: React.ElementType; + /** + * The component used to render the limit tag. + * @default 'span' + */ + limitTag: React.ElementType; +} + export interface AutocompletePropsVariantOverrides {} export interface AutocompletePropsColorOverrides {} @@ -60,7 +123,7 @@ export interface AutocompleteRenderGroupParams { } export type AutocompleteSlotsAndSlotProps = CreateSlotsAndSlotProps< - AutocompleteSlot, + AutocompleteSlots, { root: SlotProps<'div', {}, AutocompleteOwnerState>; wrapper: SlotProps<'div', {}, AutocompleteOwnerState>; diff --git a/packages/mui-joy/src/Avatar/AvatarProps.ts b/packages/mui-joy/src/Avatar/AvatarProps.ts index 3b595d6528f8e9..7d1a98912bbfc5 100644 --- a/packages/mui-joy/src/Avatar/AvatarProps.ts +++ b/packages/mui-joy/src/Avatar/AvatarProps.ts @@ -5,12 +5,30 @@ import { CreateSlotsAndSlotProps, SlotProps } from '../utils/types'; export type AvatarSlot = 'root' | 'img' | 'fallback'; +export interface AvatarSlots { + /** + * The component used to render the root. + * @default 'div' + */ + root: React.ElementType; + /** + * The component used to render the img. + * @default 'img' + */ + img: React.ElementType; + /** + * The component used to render the fallback. + * @default 'svg' + */ + fallback: React.ElementType; +} + export interface AvatarPropsColorOverrides {} export interface AvatarPropsVariantOverrides {} export interface AvatarPropsSizeOverrides {} export type AvatarSlotsAndSlotProps = CreateSlotsAndSlotProps< - AvatarSlot, + AvatarSlots, { root: SlotProps<'div', {}, AvatarOwnerState>; img: SlotProps<'img', {}, AvatarOwnerState>; diff --git a/packages/mui-joy/src/Badge/BadgeProps.ts b/packages/mui-joy/src/Badge/BadgeProps.ts index 965f5d9e1427d9..1a88112bbe6079 100644 --- a/packages/mui-joy/src/Badge/BadgeProps.ts +++ b/packages/mui-joy/src/Badge/BadgeProps.ts @@ -5,6 +5,19 @@ import { SlotProps, CreateSlotsAndSlotProps } from '../utils/types'; export type BadgeSlot = 'root' | 'badge'; +export interface BadgeSlots { + /** + * The component used to render the root. + * @default 'div' + */ + root: React.ElementType; + /** + * The component used to render the badge. + * @default 'div' + */ + badge: React.ElementType; +} + export interface BadgePropsVariantOverrides {} export interface BadgePropsColorOverrides {} @@ -17,7 +30,7 @@ export interface BadgeOrigin { } export type BadgeSlotsAndSlotProps = CreateSlotsAndSlotProps< - BadgeSlot, + BadgeSlots, { root: SlotProps<'div', {}, BadgeOwnerState>; badge: SlotProps<'div', {}, BadgeOwnerState>; diff --git a/packages/mui-joy/src/Breadcrumbs/BreadcrumbsProps.ts b/packages/mui-joy/src/Breadcrumbs/BreadcrumbsProps.ts index 36de94a0fb378f..bf9845498ee21b 100644 --- a/packages/mui-joy/src/Breadcrumbs/BreadcrumbsProps.ts +++ b/packages/mui-joy/src/Breadcrumbs/BreadcrumbsProps.ts @@ -5,10 +5,33 @@ import { CreateSlotsAndSlotProps, SlotProps } from '../utils/types'; export type BreadcrumbsSlot = 'root' | 'ol' | 'li' | 'separator'; +export interface BreadcrumbsSlots { + /** + * The component used to render the root. + * @default 'nav' + */ + root: React.ElementType; + /** + * The component used to render the ol. + * @default 'ol' + */ + ol: React.ElementType; + /** + * The component used to render the li. + * @default 'li' + */ + li: React.ElementType; + /** + * The component used to render the separator. + * @default 'li' + */ + separator: React.ElementType; +} + export interface BreadcrumbsPropsSizeOverrides {} export type BreadcrumbsSlotsAndSlotProps = CreateSlotsAndSlotProps< - BreadcrumbsSlot, + BreadcrumbsSlots, { root: SlotProps<'nav', {}, BreadcrumbsOwnerState>; ol: SlotProps<'ol', {}, BreadcrumbsOwnerState>; diff --git a/packages/mui-joy/src/Button/ButtonProps.ts b/packages/mui-joy/src/Button/ButtonProps.ts index 88487633c9b1b8..a62d6a213d46d6 100644 --- a/packages/mui-joy/src/Button/ButtonProps.ts +++ b/packages/mui-joy/src/Button/ButtonProps.ts @@ -10,12 +10,35 @@ import { SlotProps, CreateSlotsAndSlotProps } from '../utils/types'; export type ButtonSlot = 'root' | 'startDecorator' | 'endDecorator' | 'loadingIndicatorCenter'; +export interface ButtonSlots { + /** + * The component used to render the root. + * @default 'button' + */ + root: React.ElementType; + /** + * The component used to render the start decorator. + * @default 'span' + */ + startDecorator: React.ElementType; + /** + * The component used to render the end decorator. + * @default 'span' + */ + endDecorator: React.ElementType; + /** + * The component used to render the loading indicator center. + * @default 'span' + */ + loadingIndicatorCenter: React.ElementType; +} + export interface ButtonPropsVariantOverrides {} export interface ButtonPropsColorOverrides {} export interface ButtonPropsSizeOverrides {} export type ButtonSlotsAndSlotProps = CreateSlotsAndSlotProps< - ButtonSlot, + ButtonSlots, { root: SlotProps<'button', {}, ButtonOwnerState>; startDecorator: SlotProps<'span', {}, ButtonOwnerState>; diff --git a/packages/mui-joy/src/Checkbox/CheckboxProps.ts b/packages/mui-joy/src/Checkbox/CheckboxProps.ts index 7e67a381a136c8..69b5f79b7fc1b7 100644 --- a/packages/mui-joy/src/Checkbox/CheckboxProps.ts +++ b/packages/mui-joy/src/Checkbox/CheckboxProps.ts @@ -6,12 +6,40 @@ import { SlotProps, CreateSlotsAndSlotProps } from '../utils/types'; export type CheckboxSlot = 'root' | 'checkbox' | 'action' | 'input' | 'label'; +export interface CheckboxSlots { + /** + * The component used to render the root. + * @default 'span' + */ + root: React.ElementType; + /** + * The component used to render the checkbox. + * @default 'span' + */ + checkbox: React.ElementType; + /** + * The component used to render the action. + * @default 'span' + */ + action: React.ElementType; + /** + * The component used to render the input. + * @default 'input' + */ + input: React.ElementType; + /** + * The component used to render the label. + * @default 'label' + */ + label: React.ElementType; +} + export interface CheckboxPropsVariantOverrides {} export interface CheckboxPropsColorOverrides {} export interface CheckboxPropsSizeOverrides {} export type CheckboxSlotsAndSlotProps = CreateSlotsAndSlotProps< - CheckboxSlot, + CheckboxSlots, { root: SlotProps<'span', {}, CheckboxOwnerState>; checkbox: SlotProps<'span', {}, CheckboxOwnerState>; diff --git a/packages/mui-joy/src/Chip/ChipProps.ts b/packages/mui-joy/src/Chip/ChipProps.ts index 4a39ec66b9615c..de73a866765ace 100644 --- a/packages/mui-joy/src/Chip/ChipProps.ts +++ b/packages/mui-joy/src/Chip/ChipProps.ts @@ -5,12 +5,40 @@ import { CreateSlotsAndSlotProps, SlotProps } from '../utils/types'; export type ChipSlot = 'root' | 'label' | 'action' | 'startDecorator' | 'endDecorator'; +export interface ChipSlots { + /** + * The component used to render the root. + * @default 'div' + */ + root: React.ElementType; + /** + * The component used to render the label. + * @default 'span' + */ + label: React.ElementType; + /** + * The component used to render the action. + * @default 'button' + */ + action: React.ElementType; + /** + * The component used to render the start decorator. + * @default 'span' + */ + startDecorator: React.ElementType; + /** + * The component used to render the end decorator. + * @default 'span' + */ + endDecorator: React.ElementType; +} + export interface ChipPropsColorOverrides {} export interface ChipPropsSizeOverrides {} export interface ChipPropsVariantOverrides {} export type ChipSlotsAndSlotProps = CreateSlotsAndSlotProps< - ChipSlot, + ChipSlots, { root: SlotProps<'div', {}, ChipOwnerState>; label: SlotProps<'span', {}, ChipOwnerState>; diff --git a/packages/mui-joy/src/CircularProgress/CircularProgressProps.ts b/packages/mui-joy/src/CircularProgress/CircularProgressProps.ts index 6f8c80cac85e18..e3881e20257d45 100644 --- a/packages/mui-joy/src/CircularProgress/CircularProgressProps.ts +++ b/packages/mui-joy/src/CircularProgress/CircularProgressProps.ts @@ -5,12 +5,35 @@ import { CreateSlotsAndSlotProps, SlotProps } from '../utils/types'; export type CircularProgressSlot = 'root' | 'svg' | 'track' | 'progress'; +export interface CircularProgressSlots { + /** + * The component used to render the root. + * @default 'span' + */ + root: React.ElementType; + /** + * The component used to render the svg. + * @default 'svg' + */ + svg: React.ElementType; + /** + * The component used to render the track. + * @default 'circle' + */ + track: React.ElementType; + /** + * The component used to render the progress. + * @default 'circle' + */ + progress: React.ElementType; +} + export interface CircularProgressPropsColorOverrides {} export interface CircularProgressPropsSizeOverrides {} export interface CircularProgressPropsVariantOverrides {} export type CircularProgressSlotsAndSlotProps = CreateSlotsAndSlotProps< - CircularProgressSlot, + CircularProgressSlots, { root: SlotProps<'span', {}, CircularProgressOwnerState>; svg: SlotProps<'svg', {}, CircularProgressOwnerState>; diff --git a/packages/mui-joy/src/FormLabel/FormLabelProps.ts b/packages/mui-joy/src/FormLabel/FormLabelProps.ts index 1572f72551a04f..41c592eaa9405f 100644 --- a/packages/mui-joy/src/FormLabel/FormLabelProps.ts +++ b/packages/mui-joy/src/FormLabel/FormLabelProps.ts @@ -5,8 +5,21 @@ import { CreateSlotsAndSlotProps, SlotProps } from '../utils/types'; export type FormLabelSlot = 'root' | 'asterisk'; +export interface FormLabelSlots { + /** + * The component used to render the root. + * @default 'label' + */ + root: React.ElementType; + /** + * The component used to render the asterisk. + * @default 'span' + */ + asterisk: React.ElementType; +} + export type FormLabelSlotsAndSlotProps = CreateSlotsAndSlotProps< - FormLabelSlot, + FormLabelSlots, { root: SlotProps<'label', {}, FormLabelOwnerState>; asterisk: SlotProps<'span', {}, FormLabelOwnerState>; diff --git a/packages/mui-joy/src/Input/InputProps.ts b/packages/mui-joy/src/Input/InputProps.ts index 4965cdfc851126..1680b53b9e4082 100644 --- a/packages/mui-joy/src/Input/InputProps.ts +++ b/packages/mui-joy/src/Input/InputProps.ts @@ -5,12 +5,35 @@ import { CreateSlotsAndSlotProps, SlotProps } from '../utils/types'; export type InputSlot = 'root' | 'input' | 'startDecorator' | 'endDecorator'; +export interface InputSlots { + /** + * The component used to render the root. + * @default 'div' + */ + root: React.ElementType; + /** + * The component used to render the input. + * @default 'input' + */ + input: React.ElementType; + /** + * The component used to render the start decorator. + * @default 'span' + */ + startDecorator: React.ElementType; + /** + * The component used to render the end decorator. + * @default 'span' + */ + endDecorator: React.ElementType; +} + export interface InputPropsVariantOverrides {} export interface InputPropsColorOverrides {} export interface InputPropsSizeOverrides {} export type InputSlotsAndSlotProps = CreateSlotsAndSlotProps< - InputSlot, + InputSlots, { root: SlotProps<'div', {}, InputOwnerState>; input: SlotProps<'input', {}, InputOwnerState>; diff --git a/packages/mui-joy/src/Link/LinkProps.ts b/packages/mui-joy/src/Link/LinkProps.ts index 7f23ddb82419dd..3915ac8e661f02 100644 --- a/packages/mui-joy/src/Link/LinkProps.ts +++ b/packages/mui-joy/src/Link/LinkProps.ts @@ -13,12 +13,30 @@ import { CreateSlotsAndSlotProps, SlotProps } from '../utils/types'; export type LinkSlot = 'root' | 'startDecorator' | 'endDecorator'; +export interface LinkSlots { + /** + * The component used to render the root. + * @default 'a' + */ + root: React.ElementType; + /** + * The component used to render the start decorator. + * @default 'span' + */ + startDecorator: React.ElementType; + /** + * The component used to render the end decorator. + * @default 'span' + */ + endDecorator: React.ElementType; +} + export interface LinkPropsVariantOverrides {} export interface LinkPropsColorOverrides {} export type LinkSlotsAndSlotProps = CreateSlotsAndSlotProps< - LinkSlot, + LinkSlots, { root: SlotProps<'a', {}, LinkOwnerState>; startDecorator: SlotProps<'span', {}, LinkOwnerState>; diff --git a/packages/mui-joy/src/ListItem/ListItemProps.ts b/packages/mui-joy/src/ListItem/ListItemProps.ts index 2dc941b5e8e9ba..1d0e6ad0e07ece 100644 --- a/packages/mui-joy/src/ListItem/ListItemProps.ts +++ b/packages/mui-joy/src/ListItem/ListItemProps.ts @@ -5,11 +5,29 @@ import { CreateSlotsAndSlotProps, SlotProps } from '../utils/types'; export type ListItemSlot = 'root' | 'startAction' | 'endAction'; +export interface ListItemSlots { + /** + * The component used to render the root. + * @default 'li' + */ + root: React.ElementType; + /** + * The component used to render the start action. + * @default 'div' + */ + startAction: React.ElementType; + /** + * The component used to render the end action. + * @default 'div' + */ + endAction: React.ElementType; +} + export interface ListItemPropsVariantOverrides {} export interface ListItemPropsColorOverrides {} export type ListItemSlotsAndSlotProps = CreateSlotsAndSlotProps< - ListItemSlot, + ListItemSlots, { root: SlotProps<'li', {}, ListItemOwnerState>; startAction: SlotProps<'div', {}, ListItemOwnerState>; diff --git a/packages/mui-joy/src/Modal/ModalProps.ts b/packages/mui-joy/src/Modal/ModalProps.ts index ef47d1cf539277..33b4c487852ada 100644 --- a/packages/mui-joy/src/Modal/ModalProps.ts +++ b/packages/mui-joy/src/Modal/ModalProps.ts @@ -6,8 +6,21 @@ import { CreateSlotsAndSlotProps, SlotProps } from '../utils/types'; export type ModalSlot = 'root' | 'backdrop'; +export interface ModalSlots { + /** + * The component used to render the root. + * @default 'div' + */ + root: React.ElementType; + /** + * The component used to render the backdrop. + * @default 'div' + */ + backdrop: React.ElementType; +} + export type ModalSlotsAndSlotProps = CreateSlotsAndSlotProps< - ModalSlot, + ModalSlots, { root: SlotProps<'div', {}, ModalOwnerState>; backdrop: SlotProps<'div', {}, ModalOwnerState>; diff --git a/packages/mui-joy/src/Radio/RadioProps.ts b/packages/mui-joy/src/Radio/RadioProps.ts index d6e83063903805..7584541d989f86 100644 --- a/packages/mui-joy/src/Radio/RadioProps.ts +++ b/packages/mui-joy/src/Radio/RadioProps.ts @@ -6,6 +6,39 @@ import { CreateSlotsAndSlotProps, SlotProps } from '../utils/types'; export type RadioSlot = 'root' | 'radio' | 'icon' | 'action' | 'input' | 'label'; +export interface RadioSlots { + /** + * The component used to render the root. + * @default 'span' + */ + root: React.ElementType; + /** + * The component used to render the radio. + * @default 'span' + */ + radio: React.ElementType; + /** + * The component used to render the icon. + * @default 'span' + */ + icon: React.ElementType; + /** + * The component used to render the action. + * @default 'span' + */ + action: React.ElementType; + /** + * The component used to render the input. + * @default 'input' + */ + input: React.ElementType; + /** + * The component used to render the label. + * @default 'label' + */ + label: React.ElementType; +} + export interface RadioPropsVariantOverrides {} export interface RadioPropsColorOverrides {} @@ -13,7 +46,7 @@ export interface RadioPropsColorOverrides {} export interface RadioPropsSizeOverrides {} export type RadioSlotsAndSlotProps = CreateSlotsAndSlotProps< - RadioSlot, + RadioSlots, { root: SlotProps<'span', {}, RadioOwnerState>; radio: SlotProps<'span', {}, RadioOwnerState>; diff --git a/packages/mui-joy/src/Select/SelectProps.ts b/packages/mui-joy/src/Select/SelectProps.ts index f7563f10a231d2..bd0352299510ff 100644 --- a/packages/mui-joy/src/Select/SelectProps.ts +++ b/packages/mui-joy/src/Select/SelectProps.ts @@ -16,12 +16,45 @@ export type SelectSlot = | 'indicator' | 'listbox'; +export interface SelectSlots { + /** + * The component used to render the root. + * @default 'div' + */ + root: React.ElementType; + /** + * The component used to render the button. + * @default 'button' + */ + button: React.ElementType; + /** + * The component used to render the start decorator. + * @default 'span' + */ + startDecorator: React.ElementType; + /** + * The component used to render the end decorator. + * @default 'span' + */ + endDecorator: React.ElementType; + /** + * The component used to render the indicator. + * @default 'span' + */ + indicator: React.ElementType; + /** + * The component used to render the listbox. + * @default 'ul' + */ + listbox: React.ElementType; +} + export interface SelectPropsVariantOverrides {} export interface SelectPropsColorOverrides {} export interface SelectPropsSizeOverrides {} export type SelectSlotsAndSlotProps = CreateSlotsAndSlotProps< - SelectSlot, + SelectSlots, { root: SlotProps<'div', {}, SelectOwnerState>; button: SlotProps<'button', {}, SelectOwnerState>; diff --git a/packages/mui-joy/src/Slider/SliderProps.ts b/packages/mui-joy/src/Slider/SliderProps.ts index f08f2289f87f82..515413c6582bda 100644 --- a/packages/mui-joy/src/Slider/SliderProps.ts +++ b/packages/mui-joy/src/Slider/SliderProps.ts @@ -14,8 +14,51 @@ export type SliderSlot = | 'valueLabel' | 'input'; +export interface SliderSlots { + /** + * The component used to render the root. + * @default 'span' + */ + root: React.ElementType; + /** + * The component used to render the track. + * @default 'span' + */ + track: React.ElementType; + /** + * The component used to render the rail. + * @default 'span' + */ + rail: React.ElementType; + /** + * The component used to render the thumb. + * @default 'span' + */ + thumb: React.ElementType; + /** + * The component used to render the mark. + * @default 'span' + */ + mark: React.ElementType; + /** + * The component used to render the mark label. + * @default 'span' + */ + markLabel: React.ElementType; + /** + * The component used to render the value label. + * @default 'span' + */ + valueLabel: React.ElementType; + /** + * The component used to render the input. + * @default 'input' + */ + input: React.ElementType; +} + export type SliderSlotsAndSlotProps = CreateSlotsAndSlotProps< - SliderSlot, + SliderSlots, { root: SlotProps<'span', {}, SliderOwnerState>; track: SlotProps<'span', {}, SliderOwnerState>; diff --git a/packages/mui-joy/src/Switch/SwitchProps.ts b/packages/mui-joy/src/Switch/SwitchProps.ts index aeec909c1d29b6..2ecda1a6ee4345 100644 --- a/packages/mui-joy/src/Switch/SwitchProps.ts +++ b/packages/mui-joy/src/Switch/SwitchProps.ts @@ -13,12 +13,50 @@ export type SwitchSlot = | 'startDecorator' | 'endDecorator'; +export interface SwitchSlots { + /** + * The component used to render the root. + * @default 'div' + */ + root: React.ElementType; + /** + * The component used to render the thumb. + * @default 'span' + */ + thumb: React.ElementType; + /** + * The component used to render the action. + * @default 'div' + */ + action: React.ElementType; + /** + * The component used to render the input. + * @default 'input' + */ + input: React.ElementType; + /** + * The component used to render the track. + * @default 'span' + */ + track: React.ElementType; + /** + * The component used to render the start decorator. + * @default 'span' + */ + startDecorator: React.ElementType; + /** + * The component used to render the end decorator. + * @default 'span' + */ + endDecorator: React.ElementType; +} + export interface SwitchPropsVariantOverrides {} export interface SwitchPropsColorOverrides {} export interface SwitchPropsSizeOverrides {} export type SwitchSlotsAndSlotProps = CreateSlotsAndSlotProps< - SwitchSlot, + SwitchSlots, { root: SlotProps<'div', {}, SwitchOwnerState>; thumb: SlotProps<'span', {}, SwitchOwnerState>; diff --git a/packages/mui-joy/src/Textarea/TextareaProps.ts b/packages/mui-joy/src/Textarea/TextareaProps.ts index 79e6ec874b79c7..3d7f12c121877a 100644 --- a/packages/mui-joy/src/Textarea/TextareaProps.ts +++ b/packages/mui-joy/src/Textarea/TextareaProps.ts @@ -5,12 +5,35 @@ import { CreateSlotsAndSlotProps, SlotProps } from '../utils/types'; export type TextareaSlot = 'root' | 'textarea' | 'startDecorator' | 'endDecorator'; +export interface TextareaSlots { + /** + * The component used to render the root. + * @default 'div' + */ + root: React.ElementType; + /** + * The component used to render the textarea. + * @default 'textarea' + */ + textarea: React.ElementType; + /** + * The component used to render the start decorator. + * @default 'div' + */ + startDecorator: React.ElementType; + /** + * The component used to render the end decorator. + * @default 'div' + */ + endDecorator: React.ElementType; +} + export interface TextareaPropsVariantOverrides {} export interface TextareaPropsColorOverrides {} export interface TextareaPropsSizeOverrides {} export type TextareaSlotsAndSlotProps = CreateSlotsAndSlotProps< - TextareaSlot, + TextareaSlots, { root: SlotProps<'div', {}, TextareaOwnerState>; textarea: SlotProps<'textarea', {}, TextareaOwnerState>; diff --git a/packages/mui-joy/src/Tooltip/TooltipProps.ts b/packages/mui-joy/src/Tooltip/TooltipProps.ts index cf7cd385bd258f..623c8bbef11227 100644 --- a/packages/mui-joy/src/Tooltip/TooltipProps.ts +++ b/packages/mui-joy/src/Tooltip/TooltipProps.ts @@ -6,12 +6,25 @@ import { CreateSlotsAndSlotProps, SlotProps } from '../utils/types'; export type TooltipSlot = 'root' | 'arrow'; +export interface TooltipSlots { + /** + * The component used to render the root. + * @default 'div' + */ + root: React.ElementType; + /** + * The component used to render the arrow. + * @default 'span' + */ + arrow: React.ElementType; +} + export interface TooltipPropsVariantOverrides {} export interface TooltipPropsColorOverrides {} export interface TooltipPropsSizeOverrides {} export type TooltipSlotsAndSlotProps = CreateSlotsAndSlotProps< - TooltipSlot, + TooltipSlots, { root: SlotProps< 'div', diff --git a/packages/mui-joy/src/Typography/TypographyProps.ts b/packages/mui-joy/src/Typography/TypographyProps.ts index a9702034245640..09a2687f3a2d70 100644 --- a/packages/mui-joy/src/Typography/TypographyProps.ts +++ b/packages/mui-joy/src/Typography/TypographyProps.ts @@ -13,11 +13,29 @@ import { CreateSlotsAndSlotProps, SlotProps } from '../utils/types'; export type TypographySlot = 'root' | 'startDecorator' | 'endDecorator'; +export interface TypographySlots { + /** + * The component used to render the root. + * @default 'a' + */ + root: React.ElementType; + /** + * The component used to render the start decorator. + * @default 'span' + */ + startDecorator: React.ElementType; + /** + * The component used to render the end decorator. + * @default 'span' + */ + endDecorator: React.ElementType; +} + export interface TypographyPropsColorOverrides {} export interface TypographyPropsVariantOverrides {} export type TypographySlotsAndSlotProps = CreateSlotsAndSlotProps< - TypographySlot, + TypographySlots, { root: SlotProps<'a', {}, TypographyOwnerState>; startDecorator: SlotProps<'span', {}, TypographyOwnerState>; diff --git a/packages/mui-joy/src/utils/types.ts b/packages/mui-joy/src/utils/types.ts index 60d58524503db9..a7d705423c24d9 100644 --- a/packages/mui-joy/src/utils/types.ts +++ b/packages/mui-joy/src/utils/types.ts @@ -19,14 +19,12 @@ export type SlotProps); /** - * Use T to make sure that K contains all of the keys of T + * Use the keys of `Slots` to make sure that K contains all of the keys * - * @example CreateSlotsAndSlotProps<'root' | 'decorator', { root: ..., decorator: ... }> + * @example CreateSlotsAndSlotProps<{ root: React.ElementType, decorator: React.ElementType }, { root: ..., decorator: ... }> */ -export type CreateSlotsAndSlotProps> = { - slots?: { - [P in keyof K]?: React.ElementType; - }; +export type CreateSlotsAndSlotProps> = { + slots?: Partial; slotProps?: { [P in keyof K]?: K[P]; }; diff --git a/packages/mui-joy/src/utils/useSlot.test.tsx b/packages/mui-joy/src/utils/useSlot.test.tsx index 4ed0d1ea139d70..671014d72b1ead 100644 --- a/packages/mui-joy/src/utils/useSlot.test.tsx +++ b/packages/mui-joy/src/utils/useSlot.test.tsx @@ -305,7 +305,10 @@ describe('useSlot', () => { HTMLButtonElement, Props & CreateSlotsAndSlotProps< - 'root' | 'decorator', + { + root: React.ElementType; + decorator: React.ElementType; + }, { root: SlotProps<'button', {}, OwnerState>; decorator: SlotProps<'span', {}, OwnerState>;