@@ -73,42 +73,44 @@ function DemoGallery() {
7373
7474 return (
7575 < div className = "mx-auto max-w-screen-2xl px-4" >
76- < div
77- className = "scrollbar-none mx-auto mb-6 flex max-w-6xl gap-2 overflow-x-auto px-4 pb-2 sm:flex-wrap sm:justify-center sm:overflow-visible sm:px-0 sm:pb-0"
78- role = "tablist"
79- aria-label = "Demo gallery"
80- tabIndex = { 0 }
81- >
82- { demos . map ( ( demo ) => (
83- < button
84- key = { demo . id }
85- role = "tab"
86- aria-selected = { active === demo . id }
87- aria-controls = { `demo-panel-${ demo . id } ` }
88- onClick = { ( ) => setActive ( demo . id ) }
89- className = { `shrink-0 cursor-pointer rounded-lg border px-4 py-3 text-left transition-colors ${
90- active === demo . id
91- ? "border-fd-primary bg-fd-primary/10 text-fd-foreground"
92- : "border-fd-border bg-fd-card text-fd-muted-foreground hover:border-fd-primary/50 hover:text-fd-foreground"
93- } `}
94- >
95- < span className = "block text-sm font-semibold" > { demo . title } </ span >
96- < span className = "mt-0.5 block max-w-48 text-xs" > { demo . description } </ span >
97- </ button >
98- ) ) }
99- </ div >
100- < div className = "relative h-[500px] overflow-hidden rounded-xl border border-fd-border shadow-lg sm:h-[700px] lg:h-[950px]" >
101- { demos . map ( ( demo ) => (
102- < div
103- key = { demo . id }
104- id = { `demo-panel-${ demo . id } ` }
105- role = "tabpanel"
106- aria-label = { demo . title }
107- className = { active === demo . id ? "h-full" : "invisible absolute inset-0" }
108- >
109- < StoryEmbed storyId = { demo . storyId } height = "100%" />
110- </ div >
111- ) ) }
76+ < div className = "flex flex-col lg:flex-row lg:items-stretch lg:gap-4" >
77+ < div
78+ className = "scrollbar-none mb-4 flex gap-2 overflow-x-auto pb-2 sm:flex-wrap sm:justify-center sm:overflow-visible sm:pb-0 lg:mb-0 lg:w-72 lg:shrink-0 lg:flex-col lg:justify-start lg:overflow-y-auto lg:pb-0"
79+ role = "tablist"
80+ aria-label = "Demo gallery"
81+ tabIndex = { 0 }
82+ >
83+ { demos . map ( ( demo ) => (
84+ < button
85+ key = { demo . id }
86+ role = "tab"
87+ aria-selected = { active === demo . id }
88+ aria-controls = { `demo-panel-${ demo . id } ` }
89+ onClick = { ( ) => setActive ( demo . id ) }
90+ className = { `shrink-0 cursor-pointer rounded-lg border px-4 py-3 text-left transition-colors ${
91+ active === demo . id
92+ ? "border-fd-primary bg-fd-primary/10 text-fd-foreground"
93+ : "border-fd-border bg-fd-card text-fd-muted-foreground hover:border-fd-primary/50 hover:text-fd-foreground"
94+ } `}
95+ >
96+ < span className = "block text-sm font-semibold" > { demo . title } </ span >
97+ < span className = "mt-0.5 block max-w-48 text-xs" > { demo . description } </ span >
98+ </ button >
99+ ) ) }
100+ </ div >
101+ < div className = "relative h-[500px] overflow-hidden rounded-xl border border-fd-border shadow-lg sm:h-[700px] lg:h-auto lg:flex-1" >
102+ { demos . map ( ( demo ) => (
103+ < div
104+ key = { demo . id }
105+ id = { `demo-panel-${ demo . id } ` }
106+ role = "tabpanel"
107+ aria-label = { demo . title }
108+ className = { active === demo . id ? "h-full" : "invisible absolute inset-0" }
109+ >
110+ < StoryEmbed storyId = { demo . storyId } height = "100%" />
111+ </ div >
112+ ) ) }
113+ </ div >
112114 </ div >
113115 </ div >
114116 ) ;
0 commit comments