Files
Francesco Sansalvadore 6470ac9186 chore(studio): marketplace styling (#46574)
- Marketplace index page
  - update order of feature partner integrations in hero
  - fix z-index on MarketplaceFilterBar in "list" view
<img width="275" height="104" alt="Screenshot 2026-06-02 at 17 07 29"
src="https://github.com/user-attachments/assets/5cef64f9-895e-4f8d-8f30-153ddd5c89dd"
/>

- Marketplace detail page
- use "prose" css styling on overview content for better text styling
(heading with top padding, etc)
- refine FilesView in overview tab to only show swipeable and zoomable
previews (so the big image doesn't occupy too much space) + lazy load
FilesView component
  - improve page loading state
- improve overview side rail sticky-top and remove redundant "About"
label

<img width="1333" height="732" alt="Screenshot 2026-06-02 at 17 20 29"
src="https://github.com/user-attachments/assets/8f3dd4a0-c241-4b7f-b8c8-192e1d7a616d"
/>

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Interactive carousel with image zoom capability for viewing
integration preview images

* **Bug Fixes**
  * Fixed z-index layering issue with marketplace filter bar

* **Refactor**
  * Redesigned marketplace detail page header with breadcrumb navigation
  * Updated integration image handling structure with enhanced metadata
  * Optimized dynamic loading for integration file viewers
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-06-04 15:38:21 +02:00

36 lines
813 B
TypeScript

'use client'
import 'swiper/css'
import { Swiper, SwiperSlide } from 'swiper/react'
import { Image } from 'ui-patterns/Image'
export const FilesViewer = ({ files }: { files: { src: string; alt: string }[] }) => {
return (
<Swiper
className="w-full"
spaceBetween={12}
slidesPerView={1.4}
threshold={2}
watchOverflow
breakpoints={{
640: { slidesPerView: 1.4 },
1024: { slidesPerView: 3.2 },
}}
>
{files.map((file, i) => (
<SwiperSlide key={`${file.src}-${i}`}>
<Image
src={file.src}
alt={file.alt}
zoomable
width={400}
height={225}
className="rounded-md border object-cover w-full"
/>
</SwiperSlide>
))}
</Swiper>
)
}