@@ -16,6 +16,7 @@ import { AnimatePresence } from 'motion/react';
1616 * @param title - Title to display in the header
1717 * @param type - How the side sheet should be position, default is standard
1818 * @param headerElements - Optional spot to put elements in the header, for example more action buttons
19+ * @param width - Optional width override (number is treated as px)
1920 * @param children - Content in the side sheet
2021 */
2122export const SideSheet : FC < SideSheetProps > = ( {
@@ -24,6 +25,7 @@ export const SideSheet: FC<SideSheetProps> = ({
2425 title,
2526 type = 'standard' ,
2627 headerElements,
28+ width,
2729 children,
2830 ...rest
2931} ) => {
@@ -47,6 +49,8 @@ export const SideSheet: FC<SideSheetProps> = ({
4749 title = { title }
4850 type = "modal"
4951 headerElements = { headerElements }
52+ width = { width }
53+ zIndex = { 'zIndex' in rest ? rest . zIndex : undefined }
5054 withScrim
5155 >
5256 { children }
@@ -55,13 +59,46 @@ export const SideSheet: FC<SideSheetProps> = ({
5559 ) ;
5660 }
5761
62+ if ( type === 'modal' || type === 'floating' ) {
63+ return (
64+ < SideSheetContent
65+ open = { open }
66+ onClose = { onClose }
67+ title = { title }
68+ type = { type }
69+ headerElements = { headerElements }
70+ width = { width }
71+ zIndex = { 'zIndex' in rest ? rest . zIndex : undefined }
72+ >
73+ { children }
74+ </ SideSheetContent >
75+ ) ;
76+ }
77+
78+ if ( 'zIndex' in rest && rest . zIndex !== undefined ) {
79+ return (
80+ < SideSheetContent
81+ open = { open }
82+ onClose = { onClose }
83+ title = { title }
84+ type = { 'modal' }
85+ headerElements = { headerElements }
86+ width = { width }
87+ zIndex = { rest . zIndex }
88+ >
89+ { children }
90+ </ SideSheetContent >
91+ ) ;
92+ }
93+
5894 return (
5995 < SideSheetContent
6096 open = { open }
6197 onClose = { onClose }
6298 title = { title }
6399 type = { type }
64100 headerElements = { headerElements }
101+ width = { width }
65102 >
66103 { children }
67104 </ SideSheetContent >
@@ -74,6 +111,7 @@ function SideSheetContent({
74111 title,
75112 type = 'standard' ,
76113 headerElements,
114+ width,
77115 children,
78116 ...rest
79117} : SideSheetProps ) {
@@ -83,6 +121,7 @@ function SideSheetContent({
83121 < Wrapper
84122 $type = { type }
85123 $withShadow = { ! ( 'withScrim' in rest && rest . withScrim ) }
124+ $zIndex = { 'zIndex' in rest ? rest . zIndex : undefined }
86125 initial = { {
87126 x : type !== 'standard' ? '110%' : undefined ,
88127 width : type === 'standard' ? 0 : undefined ,
@@ -99,7 +138,7 @@ function SideSheetContent({
99138 bounce : 0.25 ,
100139 } }
101140 >
102- < Sheet $type = { type } >
141+ < Sheet $type = { type } $width = { width } >
103142 < Header >
104143 < Typography variant = "h2" > { title } </ Typography >
105144 { headerElements && < section > { headerElements } </ section > }
0 commit comments