{{-- One item of an ``: a slide of art โ€” an ``, which fills and crops to the item, or any element sized `size-full`. Lake Constance at dusk `label` lays a short line of text over the bottom of the art, on a scrim, pinned to the item's visible edge and fading out as the item narrows โ€” Compose's carousel sample, which fades its label chip in once the mask is wide enough to hold it. The scrim is what M3 asks for under text on an image; the text itself is `inverse-on-surface`, a role a scheme and a contrast profile follow, rather than a literal white. A focusable `group` with `aria-roledescription="slide"`, named "n of m" by the carousel around it. M3 puts the tab stop on the item, not on the row: Tab reaches the first item, the arrow keys move between them and Space or Enter opens the focused one (docs/reference/m3/components-actions-communication-containment.md ยง Carousel โ†’ Accessibility). The item is laid out at the carousel's large size and masked: the surface inside is clipped by `--material-carousel-inset` from both sides with M3's extra-large corner (28px, CarouselDefaults' item shape) and moved by `--material-carousel-shift`, both written by resources/js/carousel.js. Without script the item shows unmasked, at its `item-width`. In a `full-screen` carousel it is none of that: the item fills the row, edge to edge, with no corner and no mask. Only inside ``. --}} @props([ 'label' => null, ]) {{-- The layout of the `` around it: the full-screen one is a vertical row of edge-to-edge items, which M3 gives no corner and no mask. --}} @aware([ 'layout' => 'multi-browse', ]) @php $vertical = $layout === 'full-screen'; @endphp
class([ 'focus-ring relative h-full shrink-0 snap-start snap-always focus-visible:-outline-offset-3', 'w-full' => $vertical, 'w-(--material-carousel-slot) max-w-full rounded-corner-xl' => ! $vertical, ]) ->merge([ 'role' => 'group', 'aria-roledescription' => __('slide'), 'aria-label' => '[material-carousel-position]', 'data-material-carousel-item' => true, 'tabindex' => '0', ]) }}>
! $vertical, ]) >
{{ $slot }}
@if (filled($label)) @endif