Skip to content

[slider] Accept readonly array for the value prop#47936

Merged
ZeeshanTamboli merged 5 commits intomui:masterfrom
pcorpet:readonly-slider
Mar 13, 2026
Merged

[slider] Accept readonly array for the value prop#47936
ZeeshanTamboli merged 5 commits intomui:masterfrom
pcorpet:readonly-slider

Conversation

@pcorpet
Copy link
Copy Markdown
Contributor

@pcorpet pcorpet commented Mar 9, 2026

@mui-bot
Copy link
Copy Markdown

mui-bot commented Mar 9, 2026

Netlify deploy preview

https://deploy-preview-47936--material-ui.netlify.app/

Bundle size report

Bundle Parsed size Gzip size
@mui/material 0B(0.00%) 0B(0.00%)
@mui/lab 0B(0.00%) 0B(0.00%)
@mui/system 0B(0.00%) 0B(0.00%)
@mui/utils 0B(0.00%) 0B(0.00%)

Details of bundle changes

Generated by 🚫 dangerJS against ecae658

@zannager zannager added the scope: slider Changes related to the slider. label Mar 10, 2026
@zannager zannager requested a review from DiegoAndai March 10, 2026 14:25
@ZeeshanTamboli ZeeshanTamboli removed the request for review from DiegoAndai March 12, 2026 06:10
@ZeeshanTamboli ZeeshanTamboli added type: enhancement It’s an improvement, but we can’t make up our mind whether it's a bug fix or a new feature. typescript v7.x cherry-pick The PR was cherry-picked from the newer alpha/beta/stable branch. needs cherry-pick The PR should be cherry-picked to master after merge. and removed cherry-pick The PR was cherry-picked from the newer alpha/beta/stable branch. labels Mar 12, 2026
Copy link
Copy Markdown
Member

@ZeeshanTamboli ZeeshanTamboli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pcorpet Codex tells to also do this change:

--- a/packages/mui-material/src/Slider/Slider.d.ts
+++ b/packages/mui-material/src/Slider/Slider.d.ts
@@ -369,7 +369,8 @@ declare const Slider: SliderType;
 export type SliderProps<
   RootComponent extends React.ElementType = SliderTypeMap['defaultComponent'],
   AdditionalProps = {},
-> = OverrideProps<SliderTypeMap<RootComponent, AdditionalProps>, RootComponent> & {
+  Value extends number | readonly number[] = number | number[],
+> = OverrideProps<SliderTypeMap<RootComponent, AdditionalProps, Value>, RootComponent> & {
   component?: React.ElementType | undefined;
 };

diff --git a/packages/mui-material/src/Slider/Slider.spec.tsx b/packages/mui-material/src/Slider/Slider.spec.tsx
index fca1838618..5205ee0440 100644
--- a/packages/mui-material/src/Slider/Slider.spec.tsx
+++ b/packages/mui-material/src/Slider/Slider.spec.tsx
@@ -1,5 +1,6 @@
 import * as React from 'react';
 import Slider from '@mui/material/Slider';
+import type { SliderProps } from '@mui/material/Slider';

 function testOnChange() {
   function handleSliderChange(event: Event, value: unknown) {}
@@ -89,6 +90,13 @@ const values = [5, 10] as const;
   onChangeCommitted={(event, value: readonly number[]) => {}}
 />;

+const sliderProps: SliderProps<'span', {}, readonly number[]> = {
+  value: values,
+  onChange: (event, value: readonly number[]) => {},
+  onChangeCommitted: (event, value: readonly number[]) => {},
+};
+<Slider {...sliderProps} />;
+
 const CustomComponent: React.FC<{ stringProp: string; numberProp: number }> =
   function CustomComponent() {
     return <div />;

Which I think makes sense. This is to add readonly value support in SliderProps as well.

What do you think?

Copy link
Copy Markdown
Member

@ZeeshanTamboli ZeeshanTamboli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

@ZeeshanTamboli ZeeshanTamboli merged commit 33d719e into mui:master Mar 13, 2026
19 checks passed
@github-actions
Copy link
Copy Markdown

Cherry-pick PRs will be created targeting branches: v7.x

github-actions Bot pushed a commit that referenced this pull request Mar 13, 2026
Co-authored-by: Zeeshan Tamboli <zeeshan.tamboli@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs cherry-pick The PR should be cherry-picked to master after merge. scope: slider Changes related to the slider. type: enhancement It’s an improvement, but we can’t make up our mind whether it's a bug fix or a new feature. typescript v7.x

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants