compote-ui 0.80.0 → 0.81.1
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-v9/column-filter-kind.d.ts +10 -1
- package/dist/components/data-table-v9/column-filter-kind.js +7 -0
- package/dist/components/data-table-v9/data-table-head.svelte +230 -230
- package/dist/components/data-table-v9/data-table.svelte +154 -154
- package/dist/components/data-table-v9/filter-editors/boolean-filter-editor.svelte +45 -45
- package/dist/components/data-table-v9/filter-editors/column-filter-editor.svelte +39 -33
- package/dist/components/data-table-v9/filter-editors/column-filter-editor.svelte.d.ts +7 -2
- package/dist/components/data-table-v9/filter-editors/date-range-filter-editor.svelte +52 -52
- package/dist/components/data-table-v9/filter-editors/range-filter-editor.svelte +51 -51
- package/dist/components/data-table-v9/filter-editors/select-filter-editor.svelte +59 -59
- package/dist/components/data-table-v9/filter-editors/text-filter-editor.svelte +20 -20
- package/dist/components/data-table-v9/header/column-header-filter.svelte +66 -66
- package/dist/components/data-table-v9/index.d.ts +9 -1
- package/dist/components/data-table-v9/index.js +7 -0
- package/dist/components/data-table-v9/toolbar/data-table-column-filter.svelte +203 -203
- package/dist/components/data-table-v9/toolbar/data-table-toolbar.svelte +4 -1
- package/dist/components/data-table-v9/types.d.ts +3 -1
- package/dist/components/data-table-v9/virtual/data-table-virtualized.svelte +82 -82
- package/dist/components/data-table-v9/virtual/index.d.ts +2 -2
- package/dist/components/data-table-v9/virtual/index.js +1 -1
- package/dist/components/dialog/alert-dialog.svelte +73 -73
- package/dist/components/dialog/dialog-root.svelte +45 -45
- package/dist/components/drawer/drawer-content.svelte +213 -213
- package/dist/components/popover/popover-content.svelte +97 -97
- package/dist/components/popover/popover-description.svelte +19 -19
- package/dist/components/popover/popover-root.svelte +27 -27
- package/dist/components/popover/popover-title.svelte +19 -19
- package/dist/icons/PhFunnelFill.svelte +19 -19
- package/package.json +1 -1
- package/skills/component-usage/references/overlays-and-floating-ui.md +278 -278
- package/skills/data-table/SKILL.md +362 -314
- package/skills/data-table/references/column-options.md +175 -175
- package/skills/data-table/references/table-state-and-reactivity.md +65 -65
|
@@ -1,97 +1,97 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { Popover, usePopoverContext } from '@ark-ui/svelte/popover';
|
|
3
|
-
import type { PopoverContentProps } from '@ark-ui/svelte/popover';
|
|
4
|
-
import { Portal } from '@ark-ui/svelte/portal';
|
|
5
|
-
import { cn } from 'tailwind-variants';
|
|
6
|
-
import { releaseFocusOnExitProps } from '../../utils/release-focus-on-exit';
|
|
7
|
-
import type { ClassValue } from 'svelte/elements';
|
|
8
|
-
import type { Snippet } from 'svelte';
|
|
9
|
-
import { getPopoverLabels } from './popover-labels.svelte';
|
|
10
|
-
|
|
11
|
-
interface Props extends Omit<PopoverContentProps, 'class' | 'children'> {
|
|
12
|
-
class?: ClassValue;
|
|
13
|
-
children: Snippet;
|
|
14
|
-
showArrow?: boolean;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
let {
|
|
18
|
-
class: className,
|
|
19
|
-
children,
|
|
20
|
-
showArrow = true,
|
|
21
|
-
'aria-labelledby': ariaLabelledby,
|
|
22
|
-
'aria-describedby': ariaDescribedby,
|
|
23
|
-
...rest
|
|
24
|
-
}: Props = $props();
|
|
25
|
-
|
|
26
|
-
const popover = usePopoverContext();
|
|
27
|
-
const labels = getPopoverLabels();
|
|
28
|
-
|
|
29
|
-
// Explicit labelling wins; otherwise link the Title / Description rendered inside.
|
|
30
|
-
const labelledby = $derived(
|
|
31
|
-
ariaLabelledby ??
|
|
32
|
-
(labels?.hasTitle && !rest['aria-label'] ? popover().getTitleProps().id : undefined)
|
|
33
|
-
);
|
|
34
|
-
const describedby = $derived(
|
|
35
|
-
ariaDescribedby ?? (labels?.hasDescription ? popover().getDescriptionProps().id : undefined)
|
|
36
|
-
);
|
|
37
|
-
</script>
|
|
38
|
-
|
|
39
|
-
<Portal>
|
|
40
|
-
<Popover.Positioner>
|
|
41
|
-
<Popover.Content
|
|
42
|
-
{...rest}
|
|
43
|
-
aria-labelledby={labelledby}
|
|
44
|
-
aria-describedby={describedby}
|
|
45
|
-
class={cn(
|
|
46
|
-
'z-50 w-72 rounded-md border bg-surface-document p-4 shadow-md outline-none [--arrow-background:var(--compote-surface-1)] [--arrow-size:10px]',
|
|
47
|
-
'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95',
|
|
48
|
-
'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95',
|
|
49
|
-
className
|
|
50
|
-
)}
|
|
51
|
-
{...releaseFocusOnExitProps}
|
|
52
|
-
>
|
|
53
|
-
{#if showArrow}
|
|
54
|
-
<Popover.Arrow>
|
|
55
|
-
<Popover.ArrowTip class="border-t border-l border-border" />
|
|
56
|
-
</Popover.Arrow>
|
|
57
|
-
{/if}
|
|
58
|
-
{@render children()}
|
|
59
|
-
</Popover.Content>
|
|
60
|
-
</Popover.Positioner>
|
|
61
|
-
</Portal>
|
|
62
|
-
|
|
63
|
-
<style>
|
|
64
|
-
:global([data-scope='popover'][data-part='content']) {
|
|
65
|
-
transform-origin: var(--transform-origin);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
:global([data-scope='popover'][data-part='content'][data-state='open']) {
|
|
69
|
-
animation: popover-in 150ms ease-out;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
:global([data-scope='popover'][data-part='content'][data-state='closed']) {
|
|
73
|
-
animation: popover-out 100ms ease-in;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
@keyframes popover-in {
|
|
77
|
-
from {
|
|
78
|
-
opacity: 0;
|
|
79
|
-
transform: scale(0.95);
|
|
80
|
-
}
|
|
81
|
-
to {
|
|
82
|
-
opacity: 1;
|
|
83
|
-
transform: scale(1);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
@keyframes popover-out {
|
|
88
|
-
from {
|
|
89
|
-
opacity: 1;
|
|
90
|
-
transform: scale(1);
|
|
91
|
-
}
|
|
92
|
-
to {
|
|
93
|
-
opacity: 0;
|
|
94
|
-
transform: scale(0.95);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
</style>
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { Popover, usePopoverContext } from '@ark-ui/svelte/popover';
|
|
3
|
+
import type { PopoverContentProps } from '@ark-ui/svelte/popover';
|
|
4
|
+
import { Portal } from '@ark-ui/svelte/portal';
|
|
5
|
+
import { cn } from 'tailwind-variants';
|
|
6
|
+
import { releaseFocusOnExitProps } from '../../utils/release-focus-on-exit';
|
|
7
|
+
import type { ClassValue } from 'svelte/elements';
|
|
8
|
+
import type { Snippet } from 'svelte';
|
|
9
|
+
import { getPopoverLabels } from './popover-labels.svelte';
|
|
10
|
+
|
|
11
|
+
interface Props extends Omit<PopoverContentProps, 'class' | 'children'> {
|
|
12
|
+
class?: ClassValue;
|
|
13
|
+
children: Snippet;
|
|
14
|
+
showArrow?: boolean;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
let {
|
|
18
|
+
class: className,
|
|
19
|
+
children,
|
|
20
|
+
showArrow = true,
|
|
21
|
+
'aria-labelledby': ariaLabelledby,
|
|
22
|
+
'aria-describedby': ariaDescribedby,
|
|
23
|
+
...rest
|
|
24
|
+
}: Props = $props();
|
|
25
|
+
|
|
26
|
+
const popover = usePopoverContext();
|
|
27
|
+
const labels = getPopoverLabels();
|
|
28
|
+
|
|
29
|
+
// Explicit labelling wins; otherwise link the Title / Description rendered inside.
|
|
30
|
+
const labelledby = $derived(
|
|
31
|
+
ariaLabelledby ??
|
|
32
|
+
(labels?.hasTitle && !rest['aria-label'] ? popover().getTitleProps().id : undefined)
|
|
33
|
+
);
|
|
34
|
+
const describedby = $derived(
|
|
35
|
+
ariaDescribedby ?? (labels?.hasDescription ? popover().getDescriptionProps().id : undefined)
|
|
36
|
+
);
|
|
37
|
+
</script>
|
|
38
|
+
|
|
39
|
+
<Portal>
|
|
40
|
+
<Popover.Positioner>
|
|
41
|
+
<Popover.Content
|
|
42
|
+
{...rest}
|
|
43
|
+
aria-labelledby={labelledby}
|
|
44
|
+
aria-describedby={describedby}
|
|
45
|
+
class={cn(
|
|
46
|
+
'z-50 w-72 rounded-md border bg-surface-document p-4 shadow-md outline-none [--arrow-background:var(--compote-surface-1)] [--arrow-size:10px]',
|
|
47
|
+
'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95',
|
|
48
|
+
'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95',
|
|
49
|
+
className
|
|
50
|
+
)}
|
|
51
|
+
{...releaseFocusOnExitProps}
|
|
52
|
+
>
|
|
53
|
+
{#if showArrow}
|
|
54
|
+
<Popover.Arrow>
|
|
55
|
+
<Popover.ArrowTip class="border-t border-l border-border" />
|
|
56
|
+
</Popover.Arrow>
|
|
57
|
+
{/if}
|
|
58
|
+
{@render children()}
|
|
59
|
+
</Popover.Content>
|
|
60
|
+
</Popover.Positioner>
|
|
61
|
+
</Portal>
|
|
62
|
+
|
|
63
|
+
<style>
|
|
64
|
+
:global([data-scope='popover'][data-part='content']) {
|
|
65
|
+
transform-origin: var(--transform-origin);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
:global([data-scope='popover'][data-part='content'][data-state='open']) {
|
|
69
|
+
animation: popover-in 150ms ease-out;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
:global([data-scope='popover'][data-part='content'][data-state='closed']) {
|
|
73
|
+
animation: popover-out 100ms ease-in;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
@keyframes popover-in {
|
|
77
|
+
from {
|
|
78
|
+
opacity: 0;
|
|
79
|
+
transform: scale(0.95);
|
|
80
|
+
}
|
|
81
|
+
to {
|
|
82
|
+
opacity: 1;
|
|
83
|
+
transform: scale(1);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
@keyframes popover-out {
|
|
88
|
+
from {
|
|
89
|
+
opacity: 1;
|
|
90
|
+
transform: scale(1);
|
|
91
|
+
}
|
|
92
|
+
to {
|
|
93
|
+
opacity: 0;
|
|
94
|
+
transform: scale(0.95);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
</style>
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { Popover } from '@ark-ui/svelte/popover';
|
|
3
|
-
import type { PopoverDescriptionBaseProps } from '@ark-ui/svelte/popover';
|
|
4
|
-
import type { ClassValue } from 'svelte/elements';
|
|
5
|
-
import { getPopoverLabels } from './popover-labels.svelte';
|
|
6
|
-
|
|
7
|
-
interface Props extends PopoverDescriptionBaseProps {
|
|
8
|
-
class?: ClassValue;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
let { class: className, children, ...rest }: Props = $props();
|
|
12
|
-
|
|
13
|
-
const labels = getPopoverLabels();
|
|
14
|
-
$effect(() => labels?.registerDescription());
|
|
15
|
-
</script>
|
|
16
|
-
|
|
17
|
-
<Popover.Description {...rest} class={className ?? 'mt-1 text-sm text-ink-dim'}>
|
|
18
|
-
{@render children?.()}
|
|
19
|
-
</Popover.Description>
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { Popover } from '@ark-ui/svelte/popover';
|
|
3
|
+
import type { PopoverDescriptionBaseProps } from '@ark-ui/svelte/popover';
|
|
4
|
+
import type { ClassValue } from 'svelte/elements';
|
|
5
|
+
import { getPopoverLabels } from './popover-labels.svelte';
|
|
6
|
+
|
|
7
|
+
interface Props extends PopoverDescriptionBaseProps {
|
|
8
|
+
class?: ClassValue;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
let { class: className, children, ...rest }: Props = $props();
|
|
12
|
+
|
|
13
|
+
const labels = getPopoverLabels();
|
|
14
|
+
$effect(() => labels?.registerDescription());
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
<Popover.Description {...rest} class={className ?? 'mt-1 text-sm text-ink-dim'}>
|
|
18
|
+
{@render children?.()}
|
|
19
|
+
</Popover.Description>
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { Popover } from '@ark-ui/svelte/popover';
|
|
3
|
-
import type { PopoverRootBaseProps } from '@ark-ui/svelte/popover';
|
|
4
|
-
import type { Snippet } from 'svelte';
|
|
5
|
-
import { setPopoverLabels } from './popover-labels.svelte';
|
|
6
|
-
|
|
7
|
-
interface Props extends PopoverRootBaseProps {
|
|
8
|
-
open?: boolean;
|
|
9
|
-
children: Snippet;
|
|
10
|
-
lazyMount?: boolean;
|
|
11
|
-
unmountOnExit?: boolean;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
let {
|
|
15
|
-
open = $bindable(),
|
|
16
|
-
children,
|
|
17
|
-
lazyMount = true,
|
|
18
|
-
unmountOnExit = true,
|
|
19
|
-
...restProps
|
|
20
|
-
}: Props = $props();
|
|
21
|
-
|
|
22
|
-
setPopoverLabels();
|
|
23
|
-
</script>
|
|
24
|
-
|
|
25
|
-
<Popover.Root bind:open {lazyMount} {unmountOnExit} {...restProps}>
|
|
26
|
-
{@render children()}
|
|
27
|
-
</Popover.Root>
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { Popover } from '@ark-ui/svelte/popover';
|
|
3
|
+
import type { PopoverRootBaseProps } from '@ark-ui/svelte/popover';
|
|
4
|
+
import type { Snippet } from 'svelte';
|
|
5
|
+
import { setPopoverLabels } from './popover-labels.svelte';
|
|
6
|
+
|
|
7
|
+
interface Props extends PopoverRootBaseProps {
|
|
8
|
+
open?: boolean;
|
|
9
|
+
children: Snippet;
|
|
10
|
+
lazyMount?: boolean;
|
|
11
|
+
unmountOnExit?: boolean;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
let {
|
|
15
|
+
open = $bindable(),
|
|
16
|
+
children,
|
|
17
|
+
lazyMount = true,
|
|
18
|
+
unmountOnExit = true,
|
|
19
|
+
...restProps
|
|
20
|
+
}: Props = $props();
|
|
21
|
+
|
|
22
|
+
setPopoverLabels();
|
|
23
|
+
</script>
|
|
24
|
+
|
|
25
|
+
<Popover.Root bind:open {lazyMount} {unmountOnExit} {...restProps}>
|
|
26
|
+
{@render children()}
|
|
27
|
+
</Popover.Root>
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { Popover } from '@ark-ui/svelte/popover';
|
|
3
|
-
import type { PopoverTitleBaseProps } from '@ark-ui/svelte/popover';
|
|
4
|
-
import type { ClassValue } from 'svelte/elements';
|
|
5
|
-
import { getPopoverLabels } from './popover-labels.svelte';
|
|
6
|
-
|
|
7
|
-
interface Props extends PopoverTitleBaseProps {
|
|
8
|
-
class?: ClassValue;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
let { class: className, children, ...rest }: Props = $props();
|
|
12
|
-
|
|
13
|
-
const labels = getPopoverLabels();
|
|
14
|
-
$effect(() => labels?.registerTitle());
|
|
15
|
-
</script>
|
|
16
|
-
|
|
17
|
-
<Popover.Title {...rest} class={className ?? 'text-sm font-semibold'}>
|
|
18
|
-
{@render children?.()}
|
|
19
|
-
</Popover.Title>
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { Popover } from '@ark-ui/svelte/popover';
|
|
3
|
+
import type { PopoverTitleBaseProps } from '@ark-ui/svelte/popover';
|
|
4
|
+
import type { ClassValue } from 'svelte/elements';
|
|
5
|
+
import { getPopoverLabels } from './popover-labels.svelte';
|
|
6
|
+
|
|
7
|
+
interface Props extends PopoverTitleBaseProps {
|
|
8
|
+
class?: ClassValue;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
let { class: className, children, ...rest }: Props = $props();
|
|
12
|
+
|
|
13
|
+
const labels = getPopoverLabels();
|
|
14
|
+
$effect(() => labels?.registerTitle());
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
<Popover.Title {...rest} class={className ?? 'text-sm font-semibold'}>
|
|
18
|
+
{@render children?.()}
|
|
19
|
+
</Popover.Title>
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
let { class: className = '', ...restProps } = $props();
|
|
3
|
-
</script>
|
|
4
|
-
|
|
5
|
-
<svg
|
|
6
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
7
|
-
width="1em"
|
|
8
|
-
height="1em"
|
|
9
|
-
viewBox="0 0 256 256"
|
|
10
|
-
class={className}
|
|
11
|
-
{...restProps}
|
|
12
|
-
>
|
|
13
|
-
<path
|
|
14
|
-
fill="currentColor"
|
|
15
|
-
d="m227.81 66.76l-.08.09L160 139.17v55.49a16 16 0 0 1-7.13 13.34l-32 21.34A16 16 0 0 1 96 216v-76.83L28.27 66.85l-.08-.09A16 16 0 0 1 40 40h176a16 16 0 0 1 11.84 26.76Z"
|
|
16
|
-
/>
|
|
17
|
-
</svg>
|
|
18
|
-
|
|
19
|
-
<!-- Icon from Phosphor by Phosphor Icons - https://github.com/phosphor-icons/core/blob/main/LICENSE -->
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
let { class: className = '', ...restProps } = $props();
|
|
3
|
+
</script>
|
|
4
|
+
|
|
5
|
+
<svg
|
|
6
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
7
|
+
width="1em"
|
|
8
|
+
height="1em"
|
|
9
|
+
viewBox="0 0 256 256"
|
|
10
|
+
class={className}
|
|
11
|
+
{...restProps}
|
|
12
|
+
>
|
|
13
|
+
<path
|
|
14
|
+
fill="currentColor"
|
|
15
|
+
d="m227.81 66.76l-.08.09L160 139.17v55.49a16 16 0 0 1-7.13 13.34l-32 21.34A16 16 0 0 1 96 216v-76.83L28.27 66.85l-.08-.09A16 16 0 0 1 40 40h176a16 16 0 0 1 11.84 26.76Z"
|
|
16
|
+
/>
|
|
17
|
+
</svg>
|
|
18
|
+
|
|
19
|
+
<!-- Icon from Phosphor by Phosphor Icons - https://github.com/phosphor-icons/core/blob/main/LICENSE -->
|