portfolio/components/ImageSlider.vue
Michael Winter 711b5b93c2 Clean up data files and fix icon/PDF links
- Clean all JSON data files: convert MongoDB format to clean JSON
  - works.json, images.json, publications.json, pubs.json, talks.json
  - releases.json, album_art.json, scores.json, my_image_gallery.json
  - events.json (with legacy program → program transformation)
  - resume.json (simplified structure)
- Simplify all API routes (remove cleanData functions)
- Fix PDF links to open in new tab (scores, writings, albums)
- Upgrade to Nuxt 4.3.1 and fix carousel (nuxt-swiper)
- Replace nuxt-icon with @nuxt/icon
- Fix IconButton component for new tab links
- Update cv.vue for resume data structure changes
- Add icon collections (@iconify-json packages)
2026-02-18 20:16:09 +01:00

39 lines
1.1 KiB
Vue

<template>
<Swiper
:autoHeight="true"
:loop="true"
:spaceBetween="30"
:centeredSlides="true"
:autoplay="{
delay: 4000,
disableOnInteraction: false,
pauseOnMouseEnter: true
}"
:pagination="{
clickable: true,
}"
:navigation="true"
:style="{
'--swiper-navigation-color': 'rgb(71 85 105)',
'--swiper-pagination-color': 'rgb(71 85 105)',
'--swiper-pagination-bottom': 'auto',
'--swiper-pagination-top': '1rem',
'--swiper-navigation-top-offset': '5rem'
}"
:modules="[SwiperAutoplay, SwiperPagination, SwiperNavigation]"
class="h-full flex items-center justify-center"
>
<SwiperSlide v-for="image in gallery" class="!flex !items-center !justify-center !h-auto !py-10 !bg-zinc-100">
<img :src="'/' + bucket + '/' + image.image"
style="max-width: calc(100% - 80px); max-height: 70vh; object-fit: contain;"/>
</SwiperSlide>
</Swiper>
</template>
<script>
export default {
props: ['gallery', 'bucket']
}
</script>