compote-ui 0.64.0 → 0.65.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.
@@ -75,6 +75,7 @@ export declare function createTable<T extends RowData>(options: CreateDataTableO
75
75
  };
76
76
  equalsString: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
77
77
  autoRemove: (val: any) => boolean;
78
+ resolveFilterValue: (val: any) => string;
78
79
  };
79
80
  inNumberRange: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>, columnId: string, filterValue: [number, number]) => boolean) & {
80
81
  resolveFilterValue: (val: [any, any]) => readonly [number, number];
@@ -82,9 +83,11 @@ export declare function createTable<T extends RowData>(options: CreateDataTableO
82
83
  };
83
84
  includesString: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
84
85
  autoRemove: (val: any) => boolean;
86
+ resolveFilterValue: (val: any) => string;
85
87
  };
86
88
  includesStringSensitive: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
87
89
  autoRemove: (val: any) => boolean;
90
+ resolveFilterValue: (val: any) => string;
88
91
  };
89
92
  weakEquals: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
90
93
  autoRemove: (val: any) => boolean;
@@ -69,6 +69,7 @@ export declare function getRowCells<T extends RowData>(row: Row<DataTableFeature
69
69
  };
70
70
  equalsString: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
71
71
  autoRemove: (val: any) => boolean;
72
+ resolveFilterValue: (val: any) => string;
72
73
  };
73
74
  inNumberRange: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>, columnId: string, filterValue: [number, number]) => boolean) & {
74
75
  resolveFilterValue: (val: [any, any]) => readonly [number, number];
@@ -76,9 +77,11 @@ export declare function getRowCells<T extends RowData>(row: Row<DataTableFeature
76
77
  };
77
78
  includesString: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
78
79
  autoRemove: (val: any) => boolean;
80
+ resolveFilterValue: (val: any) => string;
79
81
  };
80
82
  includesStringSensitive: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
81
83
  autoRemove: (val: any) => boolean;
84
+ resolveFilterValue: (val: any) => string;
82
85
  };
83
86
  weakEquals: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
84
87
  autoRemove: (val: any) => boolean;
@@ -46,6 +46,7 @@ export declare const dataTableFeatures: {
46
46
  };
47
47
  equalsString: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends import("@tanstack/table-core").RowData>(row: import("@tanstack/table-core").Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
48
48
  autoRemove: (val: any) => boolean;
49
+ resolveFilterValue: (val: any) => string;
49
50
  };
50
51
  inNumberRange: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends import("@tanstack/table-core").RowData>(row: import("@tanstack/table-core").Row<TFeatures, TData>, columnId: string, filterValue: [number, number]) => boolean) & {
51
52
  resolveFilterValue: (val: [any, any]) => readonly [number, number];
@@ -53,9 +54,11 @@ export declare const dataTableFeatures: {
53
54
  };
54
55
  includesString: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends import("@tanstack/table-core").RowData>(row: import("@tanstack/table-core").Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
55
56
  autoRemove: (val: any) => boolean;
57
+ resolveFilterValue: (val: any) => string;
56
58
  };
57
59
  includesStringSensitive: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends import("@tanstack/table-core").RowData>(row: import("@tanstack/table-core").Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
58
60
  autoRemove: (val: any) => boolean;
61
+ resolveFilterValue: (val: any) => string;
59
62
  };
60
63
  weakEquals: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends import("@tanstack/table-core").RowData>(row: import("@tanstack/table-core").Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
61
64
  autoRemove: (val: any) => boolean;
@@ -66,6 +66,7 @@ export declare function createTableViewState<T extends RowData>(getTable: () =>
66
66
  };
67
67
  equalsString: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: import("@tanstack/table-core").Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
68
68
  autoRemove: (val: any) => boolean;
69
+ resolveFilterValue: (val: any) => string;
69
70
  };
70
71
  inNumberRange: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: import("@tanstack/table-core").Row<TFeatures, TData>, columnId: string, filterValue: [number, number]) => boolean) & {
71
72
  resolveFilterValue: (val: [any, any]) => readonly [number, number];
@@ -73,9 +74,11 @@ export declare function createTableViewState<T extends RowData>(getTable: () =>
73
74
  };
74
75
  includesString: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: import("@tanstack/table-core").Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
75
76
  autoRemove: (val: any) => boolean;
77
+ resolveFilterValue: (val: any) => string;
76
78
  };
77
79
  includesStringSensitive: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: import("@tanstack/table-core").Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
78
80
  autoRemove: (val: any) => boolean;
81
+ resolveFilterValue: (val: any) => string;
79
82
  };
80
83
  weakEquals: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: import("@tanstack/table-core").Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
81
84
  autoRemove: (val: any) => boolean;
@@ -130,6 +133,7 @@ export declare function createTableViewState<T extends RowData>(getTable: () =>
130
133
  };
131
134
  equalsString: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: import("@tanstack/table-core").Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
132
135
  autoRemove: (val: any) => boolean;
136
+ resolveFilterValue: (val: any) => string;
133
137
  };
134
138
  inNumberRange: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: import("@tanstack/table-core").Row<TFeatures, TData>, columnId: string, filterValue: [number, number]) => boolean) & {
135
139
  resolveFilterValue: (val: [any, any]) => readonly [number, number];
@@ -137,9 +141,11 @@ export declare function createTableViewState<T extends RowData>(getTable: () =>
137
141
  };
138
142
  includesString: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: import("@tanstack/table-core").Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
139
143
  autoRemove: (val: any) => boolean;
144
+ resolveFilterValue: (val: any) => string;
140
145
  };
141
146
  includesStringSensitive: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: import("@tanstack/table-core").Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
142
147
  autoRemove: (val: any) => boolean;
148
+ resolveFilterValue: (val: any) => string;
143
149
  };
144
150
  weakEquals: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: import("@tanstack/table-core").Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
145
151
  autoRemove: (val: any) => boolean;
@@ -195,6 +201,7 @@ export declare function createTableViewState<T extends RowData>(getTable: () =>
195
201
  };
196
202
  equalsString: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: import("@tanstack/table-core").Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
197
203
  autoRemove: (val: any) => boolean;
204
+ resolveFilterValue: (val: any) => string;
198
205
  };
199
206
  inNumberRange: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: import("@tanstack/table-core").Row<TFeatures, TData>, columnId: string, filterValue: [number, number]) => boolean) & {
200
207
  resolveFilterValue: (val: [any, any]) => readonly [number, number];
@@ -202,9 +209,11 @@ export declare function createTableViewState<T extends RowData>(getTable: () =>
202
209
  };
203
210
  includesString: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: import("@tanstack/table-core").Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
204
211
  autoRemove: (val: any) => boolean;
212
+ resolveFilterValue: (val: any) => string;
205
213
  };
206
214
  includesStringSensitive: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: import("@tanstack/table-core").Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
207
215
  autoRemove: (val: any) => boolean;
216
+ resolveFilterValue: (val: any) => string;
208
217
  };
209
218
  weakEquals: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: import("@tanstack/table-core").Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
210
219
  autoRemove: (val: any) => boolean;
@@ -259,6 +268,7 @@ export declare function createTableViewState<T extends RowData>(getTable: () =>
259
268
  };
260
269
  equalsString: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: import("@tanstack/table-core").Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
261
270
  autoRemove: (val: any) => boolean;
271
+ resolveFilterValue: (val: any) => string;
262
272
  };
263
273
  inNumberRange: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: import("@tanstack/table-core").Row<TFeatures, TData>, columnId: string, filterValue: [number, number]) => boolean) & {
264
274
  resolveFilterValue: (val: [any, any]) => readonly [number, number];
@@ -266,9 +276,11 @@ export declare function createTableViewState<T extends RowData>(getTable: () =>
266
276
  };
267
277
  includesString: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: import("@tanstack/table-core").Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
268
278
  autoRemove: (val: any) => boolean;
279
+ resolveFilterValue: (val: any) => string;
269
280
  };
270
281
  includesStringSensitive: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: import("@tanstack/table-core").Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
271
282
  autoRemove: (val: any) => boolean;
283
+ resolveFilterValue: (val: any) => string;
272
284
  };
273
285
  weakEquals: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: import("@tanstack/table-core").Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
274
286
  autoRemove: (val: any) => boolean;
@@ -0,0 +1,58 @@
1
+ <script lang="ts">
2
+ import { Progress } from '@ark-ui/svelte/progress';
3
+ import type { ProgressCircularProps, ProgressSize, ProgressVariant } from './types';
4
+
5
+ let {
6
+ value = $bindable(),
7
+ label,
8
+ showValueText = false,
9
+ size = 'md',
10
+ thickness,
11
+ variant = 'primary',
12
+ class: className,
13
+ ...rootProps
14
+ }: ProgressCircularProps = $props();
15
+
16
+ const sizeMap: Record<ProgressSize, number> = {
17
+ sm: 40,
18
+ md: 64,
19
+ lg: 96
20
+ };
21
+
22
+ const px = $derived(typeof size === 'number' ? size : sizeMap[size]);
23
+ const stroke = $derived(thickness ?? Math.max(3, Math.round(px / 10)));
24
+
25
+ const strokeColor: Record<ProgressVariant, string> = {
26
+ primary: 'stroke-primary',
27
+ success: 'stroke-success',
28
+ danger: 'stroke-danger',
29
+ warning: 'stroke-warning',
30
+ info: 'stroke-info'
31
+ };
32
+ </script>
33
+
34
+ <Progress.Root bind:value {...rootProps} class={className}>
35
+ <div class="inline-flex flex-col items-center gap-2">
36
+ <div class="relative inline-flex items-center justify-center">
37
+ <Progress.Circle
38
+ class="data-[state=indeterminate]:animate-spin"
39
+ style="--size: {px}px; --thickness: {stroke}px"
40
+ >
41
+ <Progress.CircleTrack class="stroke-surface-3" />
42
+ <Progress.CircleRange
43
+ class={[
44
+ 'transition-[stroke-dashoffset] duration-300 ease-out',
45
+ 'data-[state=indeterminate]:[stroke-dasharray:calc(var(--circumference)*0.25)_var(--circumference)]! data-[state=indeterminate]:[stroke-dashoffset:0]!',
46
+ strokeColor[variant]
47
+ ]}
48
+ />
49
+ </Progress.Circle>
50
+ {#if showValueText}
51
+ <Progress.ValueText class="absolute text-sm font-medium tabular-nums text-ink" />
52
+ {/if}
53
+ </div>
54
+ {#if label}
55
+ <Progress.Label class="text-sm font-medium text-ink">{label}</Progress.Label>
56
+ {/if}
57
+ </div>
58
+ </Progress.Root>
@@ -0,0 +1,4 @@
1
+ import type { ProgressCircularProps } from './types';
2
+ declare const ProgressCircular: import("svelte").Component<ProgressCircularProps, {}, "value">;
3
+ type ProgressCircular = ReturnType<typeof ProgressCircular>;
4
+ export default ProgressCircular;
@@ -0,0 +1,51 @@
1
+ <script lang="ts">
2
+ import { Progress } from '@ark-ui/svelte/progress';
3
+ import { cn } from 'tailwind-variants';
4
+ import type { ProgressLinearProps, ProgressSize, ProgressVariant } from './types';
5
+
6
+ let {
7
+ value = $bindable(),
8
+ label,
9
+ showValueText = false,
10
+ size = 'md',
11
+ variant = 'primary',
12
+ class: className,
13
+ ...rootProps
14
+ }: ProgressLinearProps = $props();
15
+
16
+ const trackHeight: Record<ProgressSize, string> = {
17
+ sm: 'h-1',
18
+ md: 'h-2',
19
+ lg: 'h-3'
20
+ };
21
+
22
+ const rangeColor: Record<ProgressVariant, string> = {
23
+ primary: 'bg-primary',
24
+ success: 'bg-success',
25
+ danger: 'bg-danger',
26
+ warning: 'bg-warning',
27
+ info: 'bg-info'
28
+ };
29
+ </script>
30
+
31
+ <Progress.Root bind:value {...rootProps} class={cn('flex w-full flex-col gap-1.5', className)}>
32
+ {#if label || showValueText}
33
+ <div class="flex items-center justify-between gap-2">
34
+ {#if label}
35
+ <Progress.Label class="text-sm font-medium text-ink">{label}</Progress.Label>
36
+ {/if}
37
+ {#if showValueText}
38
+ <Progress.ValueText class="text-sm tabular-nums text-ink-dim" />
39
+ {/if}
40
+ </div>
41
+ {/if}
42
+ <Progress.Track class={cn('w-full overflow-hidden rounded-full bg-surface-3', trackHeight[size])}>
43
+ <Progress.Range
44
+ class={cn(
45
+ 'h-full rounded-full transition-[width] duration-300 ease-out',
46
+ 'data-[state=indeterminate]:w-2/5 data-[state=indeterminate]:animate-[compote-progress-indeterminate_1.2s_ease-in-out_infinite]',
47
+ rangeColor[variant]
48
+ )}
49
+ />
50
+ </Progress.Track>
51
+ </Progress.Root>
@@ -0,0 +1,4 @@
1
+ import type { ProgressLinearProps } from './types';
2
+ declare const ProgressLinear: import("svelte").Component<ProgressLinearProps, {}, "value">;
3
+ type ProgressLinear = ReturnType<typeof ProgressLinear>;
4
+ export default ProgressLinear;
@@ -0,0 +1,23 @@
1
+ import type { ProgressRootBaseProps } from '@ark-ui/svelte/progress';
2
+ export type ProgressSize = 'sm' | 'md' | 'lg';
3
+ export type ProgressVariant = 'primary' | 'success' | 'danger' | 'warning' | 'info';
4
+ interface ProgressSharedProps extends ProgressRootBaseProps {
5
+ /** Optional label rendered above the progress indicator. */
6
+ label?: string;
7
+ /** Render the formatted value text (e.g. `50%`). */
8
+ showValueText?: boolean;
9
+ /** Color of the filled range. */
10
+ variant?: ProgressVariant;
11
+ class?: string;
12
+ }
13
+ export interface ProgressLinearProps extends ProgressSharedProps {
14
+ /** Thickness of the track. */
15
+ size?: ProgressSize;
16
+ }
17
+ export interface ProgressCircularProps extends ProgressSharedProps {
18
+ /** Diameter of the ring in pixels. */
19
+ size?: ProgressSize | number;
20
+ /** Stroke width of the ring in pixels. */
21
+ thickness?: number;
22
+ }
23
+ export {};
@@ -0,0 +1 @@
1
+ export {};
package/dist/index.d.ts CHANGED
@@ -45,6 +45,9 @@ export type { PasswordInputProps } from './components/password-input/types';
45
45
  export { default as PhoneInput } from './components/phone-input/phone-input.svelte';
46
46
  export type { PhoneInputProps } from './components/phone-input/types';
47
47
  export * as Popover from './components/popover';
48
+ export { default as ProgressLinear } from './components/progress/progress-linear.svelte';
49
+ export { default as ProgressCircular } from './components/progress/progress-circular.svelte';
50
+ export type { ProgressLinearProps, ProgressCircularProps, ProgressSize, ProgressVariant } from './components/progress/types';
48
51
  export { default as QrCode } from './components/qr-code/qr-code.svelte';
49
52
  export { default as Select } from './components/select/select.svelte';
50
53
  export { default as Splitter } from './components/splitter/splitter.svelte';
package/dist/index.js CHANGED
@@ -32,6 +32,8 @@ export { default as NumberInput } from './components/number-input/number-input.s
32
32
  export { default as PasswordInput } from './components/password-input/password-input.svelte';
33
33
  export { default as PhoneInput } from './components/phone-input/phone-input.svelte';
34
34
  export * as Popover from './components/popover';
35
+ export { default as ProgressLinear } from './components/progress/progress-linear.svelte';
36
+ export { default as ProgressCircular } from './components/progress/progress-circular.svelte';
35
37
  export { default as QrCode } from './components/qr-code/qr-code.svelte';
36
38
  export { default as Select } from './components/select/select.svelte';
37
39
  export { default as Splitter } from './components/splitter/splitter.svelte';
package/dist/theme.css CHANGED
@@ -124,3 +124,12 @@
124
124
  outline: 2px solid var(--compote-ring);
125
125
  outline-offset: 2px;
126
126
  }
127
+
128
+ @keyframes compote-progress-indeterminate {
129
+ 0% {
130
+ transform: translateX(-100%);
131
+ }
132
+ 100% {
133
+ transform: translateX(250%);
134
+ }
135
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "compote-ui",
3
- "version": "0.64.0",
3
+ "version": "0.65.0",
4
4
  "license": "MIT",
5
5
  "scripts": {
6
6
  "dev": "vite dev --open",
@@ -60,12 +60,12 @@
60
60
  "@iconify-json/ph": "^1.2.2",
61
61
  "@sveltejs/adapter-auto": "^7.0.0",
62
62
  "@sveltejs/adapter-cloudflare": "^7.2.9",
63
- "@sveltejs/kit": "^2.66.0",
63
+ "@sveltejs/kit": "^2.69.2",
64
64
  "@sveltejs/package": "^2.5.8",
65
- "@sveltejs/vite-plugin-svelte": "7.1.2",
65
+ "@sveltejs/vite-plugin-svelte": "7.2.0",
66
66
  "@tailwindcss/vite": "^4.3.2",
67
- "@tanstack/intent": "^0.3.2",
68
- "@tanstack/svelte-table": "^9.0.0-beta.26",
67
+ "@tanstack/intent": "^0.3.5",
68
+ "@tanstack/svelte-table": "^9.0.0-beta.36",
69
69
  "@tanstack/svelte-virtual": "^3.13.31",
70
70
  "@types/node": "^22.20.0",
71
71
  "eslint": "^10.5.0",
@@ -77,13 +77,13 @@
77
77
  "prettier-plugin-tailwindcss": "^0.8.0",
78
78
  "publint": "^0.3.21",
79
79
  "svelte": "^5.56.4",
80
- "svelte-check": "^4.6.0",
80
+ "svelte-check": "^4.7.2",
81
81
  "tailwindcss": "^4.3.2",
82
82
  "tw-animate-css": "^1.4.0",
83
83
  "typescript": "^6.0.3",
84
- "typescript-eslint": "^8.61.1",
84
+ "typescript-eslint": "^8.63.0",
85
85
  "unplugin-icons": "^23.0.1",
86
- "vite": "^8.1.2"
86
+ "vite": "^8.1.3"
87
87
  },
88
88
  "keywords": [
89
89
  "svelte",