compote-ui 0.43.15 → 0.44.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/data-table-v8/data-table-column-filter.svelte +4 -2
- package/dist/components/data-table-v8/data-table-search.svelte +57 -0
- package/dist/components/data-table-v8/data-table-search.svelte.d.ts +31 -0
- package/dist/components/data-table-v8/data-table-virtual-rows.svelte +2 -0
- package/dist/components/data-table-v8/index.d.ts +1 -0
- package/dist/components/data-table-v8/index.js +1 -0
- package/dist/components/data-table-v8/virtual/index.d.ts +1 -1
- package/dist/components/data-table-v8/virtual/index.js +1 -1
- package/dist/components/select/select.svelte +1 -1
- package/dist/components/splitter/splitter.svelte +5 -3
- package/package.json +1 -1
|
@@ -111,8 +111,10 @@
|
|
|
111
111
|
<Popover.Trigger
|
|
112
112
|
class="flex h-9 cursor-pointer items-center rounded-md border border-surface-3 bg-surface-1 px-3 text-sm font-medium text-ink shadow-sm outline-none hover:bg-surface-2 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring"
|
|
113
113
|
>
|
|
114
|
-
{triggerLabel}
|
|
115
|
-
|
|
114
|
+
{triggerLabel}
|
|
115
|
+
{#if activeCount > 0}
|
|
116
|
+
({activeCount})
|
|
117
|
+
{/if}
|
|
116
118
|
</Popover.Trigger>
|
|
117
119
|
|
|
118
120
|
<Popover.Content class="w-72 px-0" showArrow={false}>
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<script lang="ts" generics="T extends RowData">
|
|
2
|
+
import { onDestroy } from 'svelte';
|
|
3
|
+
import type { RowData } from '@tanstack/table-core';
|
|
4
|
+
import { cn, type ClassValue } from 'tailwind-variants';
|
|
5
|
+
import { PhMagnifyingGlass, PhX } from '../../icons';
|
|
6
|
+
import * as Field from '../field';
|
|
7
|
+
import { getReactiveTableState, type DataTableInstance } from './data-table-utils';
|
|
8
|
+
|
|
9
|
+
type Props = {
|
|
10
|
+
table: DataTableInstance<T>;
|
|
11
|
+
placeholder?: string;
|
|
12
|
+
class?: ClassValue;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
let { table, placeholder = 'Search...', class: className }: Props = $props();
|
|
16
|
+
|
|
17
|
+
const globalFilter = $derived(
|
|
18
|
+
(getReactiveTableState(table).globalFilter as string | undefined) ?? ''
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
let timer: ReturnType<typeof setTimeout> | undefined;
|
|
22
|
+
|
|
23
|
+
onDestroy(() => clearTimeout(timer));
|
|
24
|
+
|
|
25
|
+
function handleInput(e: Event) {
|
|
26
|
+
const value = (e.currentTarget as HTMLInputElement).value;
|
|
27
|
+
clearTimeout(timer);
|
|
28
|
+
timer = setTimeout(() => {
|
|
29
|
+
table.setGlobalFilter(value || undefined);
|
|
30
|
+
}, 300);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function clearFilter() {
|
|
34
|
+
clearTimeout(timer);
|
|
35
|
+
table.setGlobalFilter(undefined);
|
|
36
|
+
}
|
|
37
|
+
</script>
|
|
38
|
+
|
|
39
|
+
<Field.Root class={cn(className)}>
|
|
40
|
+
<Field.Input {placeholder} value={globalFilter} oninput={handleInput}>
|
|
41
|
+
{#snippet startIcon()}
|
|
42
|
+
<PhMagnifyingGlass class="size-4" />
|
|
43
|
+
{/snippet}
|
|
44
|
+
{#snippet endIcon()}
|
|
45
|
+
{#if globalFilter}
|
|
46
|
+
<button
|
|
47
|
+
type="button"
|
|
48
|
+
onclick={clearFilter}
|
|
49
|
+
aria-label="Clear search"
|
|
50
|
+
class="flex size-5 items-center justify-center rounded text-ink-dim hover:text-ink focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-ring"
|
|
51
|
+
>
|
|
52
|
+
<PhX class="size-3.5" />
|
|
53
|
+
</button>
|
|
54
|
+
{/if}
|
|
55
|
+
{/snippet}
|
|
56
|
+
</Field.Input>
|
|
57
|
+
</Field.Root>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { RowData } from '@tanstack/table-core';
|
|
2
|
+
import { type ClassValue } from 'tailwind-variants';
|
|
3
|
+
import { type DataTableInstance } from './data-table-utils';
|
|
4
|
+
declare function $$render<T extends RowData>(): {
|
|
5
|
+
props: {
|
|
6
|
+
table: DataTableInstance<T>;
|
|
7
|
+
placeholder?: string;
|
|
8
|
+
class?: ClassValue;
|
|
9
|
+
};
|
|
10
|
+
exports: {};
|
|
11
|
+
bindings: "";
|
|
12
|
+
slots: {};
|
|
13
|
+
events: {};
|
|
14
|
+
};
|
|
15
|
+
declare class __sveltets_Render<T extends RowData> {
|
|
16
|
+
props(): ReturnType<typeof $$render<T>>['props'];
|
|
17
|
+
events(): ReturnType<typeof $$render<T>>['events'];
|
|
18
|
+
slots(): ReturnType<typeof $$render<T>>['slots'];
|
|
19
|
+
bindings(): "";
|
|
20
|
+
exports(): {};
|
|
21
|
+
}
|
|
22
|
+
interface $$IsomorphicComponent {
|
|
23
|
+
new <T extends RowData>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
|
|
24
|
+
$$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
|
|
25
|
+
} & ReturnType<__sveltets_Render<T>['exports']>;
|
|
26
|
+
<T extends RowData>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
|
|
27
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
28
|
+
}
|
|
29
|
+
declare const DataTableSearch: $$IsomorphicComponent;
|
|
30
|
+
type DataTableSearch<T extends RowData> = InstanceType<typeof DataTableSearch<T>>;
|
|
31
|
+
export default DataTableSearch;
|
|
@@ -69,6 +69,7 @@
|
|
|
69
69
|
{:else}
|
|
70
70
|
{#each $rowVirtualizer.getVirtualItems() as virtualRow (virtualRow.index)}
|
|
71
71
|
{@const row = rows[virtualRow.index]}
|
|
72
|
+
{#if row}
|
|
72
73
|
{@const rowSelected = getReactiveTableState(table).rowSelection[row.id] === true}
|
|
73
74
|
<tr
|
|
74
75
|
data-index={virtualRow.index}
|
|
@@ -161,6 +162,7 @@
|
|
|
161
162
|
</td>
|
|
162
163
|
{/each}
|
|
163
164
|
</tr>
|
|
165
|
+
{/if}
|
|
164
166
|
{/each}
|
|
165
167
|
{/if}
|
|
166
168
|
</tbody>
|
|
@@ -7,5 +7,6 @@ export { default as Toolbar } from './data-table-toolbar.svelte';
|
|
|
7
7
|
export { default as Title } from './data-table-title.svelte';
|
|
8
8
|
export { default as ColumnVisibility } from './data-table-column-visibility.svelte';
|
|
9
9
|
export { default as ColumnFilter } from './data-table-column-filter.svelte';
|
|
10
|
+
export { default as Search } from './data-table-search.svelte';
|
|
10
11
|
export type { CreateDataTableOptions, DataTableInstance } from './create-table.svelte';
|
|
11
12
|
export type { DataTableAlign, DataTableAccessorFnColumn, DataTableAccessorKeyColumn, DataTableColumn, DataTableColumnBase, DataTableColumnOptions, DataTableColumnType, DataTableCellPropsResolver, DataTableCellRenderProps, DataTableGroupColumn, DataTableLeafColumnBase, DataTableLeafColumn } from './types';
|
|
@@ -7,3 +7,4 @@ export { default as Toolbar } from './data-table-toolbar.svelte';
|
|
|
7
7
|
export { default as Title } from './data-table-title.svelte';
|
|
8
8
|
export { default as ColumnVisibility } from './data-table-column-visibility.svelte';
|
|
9
9
|
export { default as ColumnFilter } from './data-table-column-filter.svelte';
|
|
10
|
+
export { default as Search } from './data-table-search.svelte';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { default as Root } from '../data-table-virtualized.svelte';
|
|
2
|
-
export { ColumnFilter, ColumnVisibility, FlexRender, Title, Toolbar, createDataTableColumnHelper, createTable, renderComponent, renderSnippet } from '../index';
|
|
2
|
+
export { ColumnFilter, ColumnVisibility, FlexRender, Search, Title, Toolbar, createDataTableColumnHelper, createTable, renderComponent, renderSnippet } from '../index';
|
|
3
3
|
export type { CreateDataTableOptions, DataTableAccessorFnColumn, DataTableAccessorKeyColumn, DataTableAlign, DataTableCellPropsResolver, DataTableCellRenderProps, DataTableColumn, DataTableColumnBase, DataTableColumnOptions, DataTableColumnType, DataTableGroupColumn, DataTableInstance, DataTableLeafColumn, DataTableLeafColumnBase } from '../index';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { default as Root } from '../data-table-virtualized.svelte';
|
|
2
|
-
export { ColumnFilter, ColumnVisibility, FlexRender, Title, Toolbar, createDataTableColumnHelper, createTable, renderComponent, renderSnippet } from '../index';
|
|
2
|
+
export { ColumnFilter, ColumnVisibility, FlexRender, Search, Title, Toolbar, createDataTableColumnHelper, createTable, renderComponent, renderSnippet } from '../index';
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
<Select.Control>
|
|
48
48
|
<Select.Trigger
|
|
49
49
|
class={cn(
|
|
50
|
-
'flex w-full cursor-pointer items-center justify-between rounded-md border bg-
|
|
50
|
+
'flex w-full cursor-pointer items-center justify-between rounded-md border bg-surface-1 px-3 text-sm shadow-sm focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-none active:bg-surface-2 data-disabled:cursor-not-allowed data-disabled:opacity-50 data-invalid:border-danger data-invalid:focus-visible:ring-danger',
|
|
51
51
|
size === 'sm' ? 'h-8' : 'h-9'
|
|
52
52
|
)}
|
|
53
53
|
>
|
|
@@ -37,13 +37,15 @@
|
|
|
37
37
|
aria-label={`Resize ${panelConfig.id} and ${panels[i + 1].id}`}
|
|
38
38
|
class={cn(
|
|
39
39
|
'group relative flex shrink-0 items-center justify-center border-none bg-transparent p-0 outline-none',
|
|
40
|
-
isHorizontal
|
|
40
|
+
isHorizontal
|
|
41
|
+
? 'w-1.5 cursor-col-resize data-disabled:cursor-default'
|
|
42
|
+
: 'h-1.5 cursor-row-resize data-disabled:cursor-default'
|
|
41
43
|
)}
|
|
42
44
|
>
|
|
43
45
|
<!-- Divider line -->
|
|
44
46
|
<div
|
|
45
47
|
class={cn(
|
|
46
|
-
'absolute bg-surface-3 transition-colors group-focus-within:bg-primary group-hover:bg-primary/40 group-data-dragging:bg-primary',
|
|
48
|
+
'absolute bg-surface-3 transition-colors group-focus-within:bg-primary group-hover:bg-primary/40 group-data-dragging:bg-primary group-data-disabled:bg-border',
|
|
47
49
|
isHorizontal
|
|
48
50
|
? 'inset-y-0 left-1/2 w-px -translate-x-1/2'
|
|
49
51
|
: 'inset-x-0 top-1/2 h-px -translate-y-1/2'
|
|
@@ -52,7 +54,7 @@
|
|
|
52
54
|
<!-- Handle pill -->
|
|
53
55
|
<div
|
|
54
56
|
class={cn(
|
|
55
|
-
'relative z-10 rounded-full bg-surface-3 shadow-sm transition-colors group-hover:bg-primary/40 group-data-dragging:bg-primary',
|
|
57
|
+
'relative z-10 rounded-full bg-surface-3 shadow-sm transition-colors group-hover:bg-primary/40 group-data-dragging:bg-primary group-data-disabled:invisible',
|
|
56
58
|
isHorizontal ? 'h-6 w-1' : 'h-1 w-6'
|
|
57
59
|
)}
|
|
58
60
|
></div>
|