You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
963 B
39 lines
963 B
<script lang="ts">
|
|
import './virtual-grid.css';
|
|
/**
|
|
* Eidos `<VirtualGrid>` — visual wrapper around soma's `VirtualGrid.Provider`.
|
|
*/
|
|
import { ActiveEidos } from '$uix/eidos';
|
|
import * as VirtualGrid from '$soma/components/virtual-grid';
|
|
import type { VirtualGridProps } from './types';
|
|
|
|
let {
|
|
size = 'md',
|
|
variant = 'surface',
|
|
color = 'primary',
|
|
block = true,
|
|
style,
|
|
children: bodyContent,
|
|
...rest
|
|
}: VirtualGridProps = $props();
|
|
|
|
const eidos = ActiveEidos.require();
|
|
const resolvedSize = $derived(eidos.resolve(size, 'md'));
|
|
const styleString = $derived(typeof style === 'string' ? style : undefined);
|
|
</script>
|
|
|
|
<div
|
|
data-virtual-grid-root=""
|
|
data-size={resolvedSize}
|
|
data-variant={variant}
|
|
data-color={color}
|
|
data-block={block ? '' : undefined}
|
|
style={styleString}
|
|
>
|
|
<VirtualGrid.Provider {...rest}>
|
|
{#snippet children(snippetProps)}
|
|
{@render bodyContent?.(snippetProps)}
|
|
{/snippet}
|
|
</VirtualGrid.Provider>
|
|
</div>
|