diff --git a/v2/pink-sb/src/lib/table/Root.svelte b/v2/pink-sb/src/lib/table/Root.svelte index e2d7ef4195..0a1ffe8132 100644 --- a/v2/pink-sb/src/lib/table/Root.svelte +++ b/v2/pink-sb/src/lib/table/Root.svelte @@ -5,6 +5,8 @@ export let columns: Array | number; export let allowSelection: boolean = false; export let selectedRows: Array = []; + export let stickyHeaders: boolean = false; + export let maxHeight: string | undefined = undefined; let availableIds: Set = new Set(); @@ -77,8 +79,9 @@ } $: root = { - allowSelection, + stickyHeaders, selectedRows, + allowSelection, columns: groupById(columns), toggleAll, toggle, @@ -90,7 +93,7 @@ } as RootProp; -
+
{#if $$slots.header} @@ -108,6 +111,15 @@ border-radius: var(--border-radius-s); background: var(--bgcolor-neutral-primary); + &.has-max-height { + scrollbar-width: none; + -ms-overflow-style: none; + + &::-webkit-scrollbar { + display: none; + } + } + ::-webkit-scrollbar { display: none; } diff --git a/v2/pink-sb/src/lib/table/index.ts b/v2/pink-sb/src/lib/table/index.ts index c37a233344..331938b95b 100644 --- a/v2/pink-sb/src/lib/table/index.ts +++ b/v2/pink-sb/src/lib/table/index.ts @@ -17,6 +17,7 @@ export type Column = { }; export type RootProp = { + stickyHeaders: boolean; allowSelection: boolean; selectedRows: string[]; selectedAll: boolean; diff --git a/v2/pink-sb/src/lib/table/row/Base.svelte b/v2/pink-sb/src/lib/table/row/Base.svelte index 2ca6535040..be8dcbd99e 100644 --- a/v2/pink-sb/src/lib/table/row/Base.svelte +++ b/v2/pink-sb/src/lib/table/row/Base.svelte @@ -25,10 +25,14 @@ }; }); + $: stickyHeaders = root.stickyHeaders; $: selected = id ? root.selectedRows.includes(id) : false; -
+
{#if root.allowSelection} {@const isHeader = type === 'header'} @@ -66,5 +70,10 @@ border-bottom: 0; } } + + &.sticky { + top: 0; + position: sticky; + } } diff --git a/v2/pink-sb/src/stories/Table.stories.svelte b/v2/pink-sb/src/stories/Table.stories.svelte index 9e0ff5d3a5..636b1b08f1 100644 --- a/v2/pink-sb/src/stories/Table.stories.svelte +++ b/v2/pink-sb/src/stories/Table.stories.svelte @@ -9,10 +9,12 @@ @@ -241,3 +245,41 @@ + + + + + + The table must have a set for sticky headers + to take effect. + + + + + First + Second + Third + Fourth + + + {#each Array(20) as _} + + Lorem + Base + Ipsum + Lorem + + {/each} + + + + + (openModal = false)} + >Close + + + + (openModal = !openModal)}>Open Modal + +