compote-ui 0.80.0 → 0.81.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.
Files changed (32) hide show
  1. package/dist/components/data-table-v9/column-filter-kind.d.ts +10 -1
  2. package/dist/components/data-table-v9/column-filter-kind.js +7 -0
  3. package/dist/components/data-table-v9/data-table-head.svelte +230 -230
  4. package/dist/components/data-table-v9/data-table.svelte +154 -154
  5. package/dist/components/data-table-v9/filter-editors/boolean-filter-editor.svelte +45 -45
  6. package/dist/components/data-table-v9/filter-editors/column-filter-editor.svelte +39 -33
  7. package/dist/components/data-table-v9/filter-editors/column-filter-editor.svelte.d.ts +7 -2
  8. package/dist/components/data-table-v9/filter-editors/date-range-filter-editor.svelte +52 -52
  9. package/dist/components/data-table-v9/filter-editors/range-filter-editor.svelte +51 -51
  10. package/dist/components/data-table-v9/filter-editors/select-filter-editor.svelte +59 -59
  11. package/dist/components/data-table-v9/filter-editors/text-filter-editor.svelte +20 -20
  12. package/dist/components/data-table-v9/header/column-header-filter.svelte +66 -66
  13. package/dist/components/data-table-v9/index.d.ts +9 -1
  14. package/dist/components/data-table-v9/index.js +7 -0
  15. package/dist/components/data-table-v9/toolbar/data-table-column-filter.svelte +203 -203
  16. package/dist/components/data-table-v9/types.d.ts +3 -1
  17. package/dist/components/data-table-v9/virtual/data-table-virtualized.svelte +82 -82
  18. package/dist/components/data-table-v9/virtual/index.d.ts +2 -2
  19. package/dist/components/data-table-v9/virtual/index.js +1 -1
  20. package/dist/components/dialog/alert-dialog.svelte +73 -73
  21. package/dist/components/dialog/dialog-root.svelte +45 -45
  22. package/dist/components/drawer/drawer-content.svelte +213 -213
  23. package/dist/components/popover/popover-content.svelte +97 -97
  24. package/dist/components/popover/popover-description.svelte +19 -19
  25. package/dist/components/popover/popover-root.svelte +27 -27
  26. package/dist/components/popover/popover-title.svelte +19 -19
  27. package/dist/icons/PhFunnelFill.svelte +19 -19
  28. package/package.json +1 -1
  29. package/skills/component-usage/references/overlays-and-floating-ui.md +278 -278
  30. package/skills/data-table/SKILL.md +362 -314
  31. package/skills/data-table/references/column-options.md +175 -175
  32. 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 -->
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "compote-ui",
3
- "version": "0.80.0",
3
+ "version": "0.81.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",