{"success":true,"data":{"block":{"id":"auto-scroll-carousel","name":"Auto Scroll Carousel","title":"Auto Scroll Carousel","category":"Gallery","categorySlug":"gallery","description":"A continuously auto-scrolling carousel with staggered image layout. Features automatic scrolling using embla-carousel-auto-scroll, alternating vertical offsets for visual interest, and smooth infinite loop. Ideal for client logos, partner showcases, image galleries, or any content that benefits from passive browsing.","thumbnail":{"desktop":"https://cdn.ing/assets/i/r/290123/0fkyuodn2zjfbbv13b91ulbxlku5/auto-scroll-carousel-desktop.png","mobile":"https://cdn.ing/assets/i/r/290122/20tfw533htj7vmlsib4s5p3uuceb/auto-scroll-carousel-mobile.png"},"componentPath":"blocks/gallery/auto-scroll-carousel.tsx","code":"import { AutoScrollCarousel } from \"@opensite/ui/blocks/gallery/auto-scroll-carousel\";\n\nexport default function Demo() {\n  return (\n    <AutoScrollCarousel\n      heading=\"Bringing your data to life with AI\"\n      description=\"Our team of data scientists and AI engineers transform complex datasets into actionable insights that drive business growth and innovation.\"\n      action={{\n        label: \"Explore our solutions\",\n        href: \"#\",\n      }}\n      images={[\n        { src: \"https://toastability-production.s3.amazonaws.com/xlp46pzk3a4d73jgjx4s7xdafwpn\", alt: \"Team collaboration\" },\n        { src: \"https://toastability-production.s3.amazonaws.com/g1iuifb3yzoofo9c7a00koyn6q1t\", alt: \"Data analytics dashboard\" },\n        { src: \"https://toastability-production.s3.amazonaws.com/z9u4sdrj2oq3eds0qyui0nxsus3j\", alt: \"AI model training\" },\n        { src: \"https://toastability-production.s3.amazonaws.com/63aotyt2pb4gqpccej2kkw8reson\", alt: \"Research and development\" },\n        { src: \"https://toastability-production.s3.amazonaws.com/pjgb223h1bjywdk15i3zi7pjhutg\", alt: \"Innovation workshop\" },\n        { src: \"https://toastability-production.s3.amazonaws.com/we9r4e711an6d0bd3dwbl9tb9z7q\", alt: \"Technology showcase\" },\n        { src: \"https://toastability-production.s3.amazonaws.com/f8rfrurzo743ym1s7m5xtbombunz\", alt: \"Product demonstration\" },\n        { src: \"https://toastability-production.s3.amazonaws.com/oe0y4bgiylx81fbfvsw31mhdgjzs\", alt: \"Client presentation\" },\n        { src: \"https://toastability-production.s3.amazonaws.com/sr370c2cnf7uk5k4f6znyshualv0\", alt: \"Team meeting\" },\n        { src: \"https://toastability-production.s3.amazonaws.com/cen5x90p3kbdafb80liq1a5j222x\", alt: \"Office environment\" },\n        { src: \"https://toastability-production.s3.amazonaws.com/ygob90kp07hxmi5jj4sned76dnmc\", alt: \"Creative workspace\" },\n        { src: \"https://toastability-production.s3.amazonaws.com/qhz2kawawq3bbh7nusz3bvahln3v\", alt: \"Team collaboration\" },\n      ]}\n      autoScrollSpeed={0.5}\n      background=\"gray\"\n      spacing=\"pt-6 pb-20 md:pt-32 md:pb-32\"\n      pattern=\"gridDotsBasic\"\n      patternOpacity={1}\n    />\n  );\n}","propsSchema":{"heading":{"type":"object","description":"Main heading content","typeLabel":"React.ReactNode","required":false},"description":{"type":"object","description":"Description text below heading","typeLabel":"React.ReactNode","required":false},"action":{"type":"object","description":"Link/action configuration for the CTA","fields":{"variant":{"type":"string","description":"","typeLabel":"\"default\" | \"destructive\" | \"outline\" | \"secondary\" | \"ghost\" | \"link\"","required":false},"size":{"type":"string","description":"","typeLabel":"\"default\" | \"sm\" | \"md\" | \"lg\" | \"icon\" | \"icon-sm\" | \"icon-lg\"","required":false},"label":{"type":"object","description":"Button/link label text or ReactNode","typeLabel":"ReactNode","required":false},"icon":{"type":"object","description":"Icon to display (typically before label)","typeLabel":"ReactNode","required":false},"iconAfter":{"type":"object","description":"Icon to display after the label","typeLabel":"ReactNode","required":false},"href":{"type":"string","description":"URL for link behavior","required":false},"onClick":{"type":"object","description":"Click handler for button behavior","typeLabel":"MouseEventHandler","required":false},"className":{"type":"string","description":"Additional CSS classes for the action","required":false},"children":{"type":"object","description":"Custom children (overrides label + icon rendering)","typeLabel":"ReactNode","required":false},"aria-label":{"type":"string","description":"ARIA label for accessibility","required":false},"asButton":{"type":"boolean","description":"Render as a button element instead of an anchor/link","required":false}},"typeLabel":"ActionConfig","required":false},"actionSlot":{"type":"object","description":"Custom slot for rendering the action (overrides action prop)","typeLabel":"React.ReactNode","required":false},"images":{"type":"array","description":"Array of images to display in the carousel","items":{"type":"object","description":"","fields":{"src":{"type":"string","description":"Image source URL","required":true},"alt":{"type":"string","description":"Alt text for accessibility","required":false},"className":{"type":"string","description":"Additional CSS classes for the image","required":false}},"typeLabel":"AutoScrollCarouselImage"},"typeLabel":"AutoScrollCarouselImage[]","required":false,"minItems":6,"maxItems":20,"mediaHints":{"path":"images[].src","roles":["gallery"],"required":false}},"imagesSlot":{"type":"object","description":"Custom slot for rendering images (overrides images array)","typeLabel":"React.ReactNode","required":false},"autoScrollSpeed":{"type":"number","description":"Auto-scroll speed","required":false},"className":{"type":"string","description":"Additional CSS classes for the section","required":false},"headerClassName":{"type":"string","description":"Additional CSS classes for the header container","required":false},"headingClassName":{"type":"string","description":"Additional CSS classes for the heading","required":false},"descriptionClassName":{"type":"string","description":"Additional CSS classes for the description","required":false},"actionClassName":{"type":"string","description":"Additional CSS classes for the action link","required":false},"carouselClassName":{"type":"string","description":"Additional CSS classes for the carousel wrapper","required":false},"carouselContentClassName":{"type":"string","description":"Additional CSS classes for the carousel content","required":false},"itemClassName":{"type":"string","description":"Additional CSS classes for each carousel item","required":false},"imageClassName":{"type":"string","description":"Additional CSS classes for each image","required":false},"background":{"type":"string","description":"Background style for the section","typeLabel":"SectionBackground","required":false},"spacing":{"type":"object","description":"Vertical spacing for the section","fields":{},"typeLabel":"SectionSpacing","required":false},"pattern":{"type":"object","description":"Optional background pattern name or URL","fields":{},"typeLabel":"PatternName","required":false},"patternOpacity":{"type":"number","description":"Pattern overlay opacity (0-1)","required":false},"patternClassName":{"type":"string","description":"Additional CSS classes for the pattern overlay","required":false},"optixFlowConfig":{"type":"object","description":"OptixFlow image optimization configuration","fields":{"apiKey":{"type":"string","description":"API key for OptixFlow service","required":true},"compression":{"type":"number","description":"Compression level (0-100)","required":false}},"typeLabel":"OptixFlowConfig","required":false},"sectionId":{"type":"string","description":"Optional Section ID","required":false}},"exampleProps":{"heading":"Bringing your data to life with AI","description":"Our team transforms complex datasets into actionable insights that drive business growth.","action":{"label":"Explore our solutions","href":"#"},"autoScrollSpeed":0.5,"background":"gray","spacing":"lg","images":[{"src":"https://cdn.ing/assets/i/r/308196/g6bbn73f7gxal82uu49m9prfd0u8/workplace-in-cafe.webp","alt":"Team collaboration"},{"src":"https://cdn.ing/assets/i/r/308196/g6bbn73f7gxal82uu49m9prfd0u8/workplace-in-cafe.webp","alt":"Data analytics dashboard"},{"src":"https://cdn.ing/assets/i/r/308196/g6bbn73f7gxal82uu49m9prfd0u8/workplace-in-cafe.webp","alt":"AI model training"},{"src":"https://cdn.ing/assets/i/r/308196/g6bbn73f7gxal82uu49m9prfd0u8/workplace-in-cafe.webp","alt":"Research and development"},{"src":"https://cdn.ing/assets/i/r/308196/g6bbn73f7gxal82uu49m9prfd0u8/workplace-in-cafe.webp","alt":"Innovation workshop"},{"src":"https://cdn.ing/assets/i/r/308196/g6bbn73f7gxal82uu49m9prfd0u8/workplace-in-cafe.webp","alt":"Technology showcase"}]},"dependencies":["@opensite/ui"],"tags":["gallery","carousel","auto-scroll","infinite","logos","partners","clients","staggered"],"performance":{},"importantUsageNotes":"All media src values must be absolute URLs to real assets; relative paths and placeholder media variables are not allowed. The carousel uses 'embla-carousel-auto-scroll' and loops infinitely – do not add manual navigation controls. The 'images' prop is an array of '{ src, alt }' objects; provide at least 6 images for the loop to feel seamless. Each image is constrained to 'max-h-80 max-w-60' and receives alternating top-margin via 'index % 2 === 0 ? 'mt-16' : 'mt-7'' for the staggered look. The 'action' CTA renders as a primary-coloured text link with an arrow; supply '{ label, href }' at minimum.","usageRequirements":{"requiredProps":[],"requiresSiteCapabilities":["media_library"],"propConstraints":{"images":{"minItems":6,"maxItems":20}},"mediaSlots":{"images[].src":{"path":"images[].src","roles":["gallery"],"required":false}}}}},"timestamp":"2026-06-27T19:56:41.336Z"}