@props([
'isGrid' => true,
'default' => 1,
'direction' => 'row',
'sm' => null,
'md' => null,
'lg' => null,
'xl' => null,
'twoXl' => null,
])
class([
'grid' => $isGrid && $direction === 'row',
'grid-cols-[--cols-default]' => $default && ($direction === 'row'),
'columns-[--cols-default]' => $default && ($direction === 'column'),
'sm:grid-cols-[--cols-sm]' => $sm && ($direction === 'row'),
'sm:columns-[--cols-sm]' => $sm && ($direction === 'column'),
'md:grid-cols-[--cols-md]' => $md && ($direction === 'row'),
'md:columns-[--cols-md]' => $md && ($direction === 'column'),
'lg:grid-cols-[--cols-lg]' => $lg && ($direction === 'row'),
'lg:columns-[--cols-lg]' => $lg && ($direction === 'column'),
'xl:grid-cols-[--cols-xl]' => $xl && ($direction === 'row'),
'xl:columns-[--cols-xl]' => $xl && ($direction === 'column'),
'2xl:grid-cols-[--cols-2xl]' => $twoXl && ($direction === 'row'),
'2xl:columns-[--cols-2xl]' => $twoXl && ($direction === 'column'),
])
->style(
match ($direction) {
'column' => [
"--cols-default: {$default}" => $default,
"--cols-sm: {$sm}" => $sm,
"--cols-md: {$md}" => $md,
"--cols-lg: {$lg}" => $lg,
"--cols-xl: {$xl}" => $xl,
"--cols-2xl: {$twoXl}" => $twoXl,
],
'row' => [
"--cols-default: repeat({$default}, minmax(0, 1fr))" => $default,
"--cols-sm: repeat({$sm}, minmax(0, 1fr))" => $sm,
"--cols-md: repeat({$md}, minmax(0, 1fr))" => $md,
"--cols-lg: repeat({$lg}, minmax(0, 1fr))" => $lg,
"--cols-xl: repeat({$xl}, minmax(0, 1fr))" => $xl,
"--cols-2xl: repeat({$twoXl}, minmax(0, 1fr))" => $twoXl,
],
},
)
}}
>
{{ $slot }}