fuma 2.1.0 → 2.1.3
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/_doc/DocExample.svelte +122 -0
- package/dist/_doc/DocExample.svelte.d.ts +10 -0
- package/dist/_doc/DocProps.svelte +61 -0
- package/dist/_doc/DocProps.svelte.d.ts +13 -0
- package/dist/_doc/DocSection.svelte +22 -0
- package/dist/_doc/DocSection.svelte.d.ts +9 -0
- package/dist/_doc/highlight.d.ts +2 -0
- package/dist/_doc/highlight.js +18 -0
- package/dist/_doc/index.d.ts +4 -0
- package/dist/_doc/index.js +3 -0
- package/dist/_doc/parse-props.d.ts +2 -0
- package/dist/_doc/parse-props.js +253 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +5 -0
- package/dist/input/InputBoolean.svelte +3 -6
- package/dist/input/InputRadio.svelte +1 -1
- package/dist/input/InputSelectNative.svelte +1 -1
- package/dist/input/InputTextarea.svelte +1 -2
- package/dist/input/Issues.svelte +3 -4
- package/dist/input/Issues.svelte.d.ts +2 -2
- package/dist/popover/popover.svelte.js +0 -8
- package/dist/remote/index.d.ts +1 -0
- package/dist/remote/index.js +1 -0
- package/dist/remote/useForm.js +4 -1
- package/dist/search/Spans.svelte +2 -1
- package/dist/state/param.svelte.d.ts +6 -7
- package/dist/state/param.svelte.js +16 -18
- package/dist/ui/drawer/drawerFly.js +1 -1
- package/dist/ui/menu/DropDownMenu.svelte +3 -17
- package/dist/ui/menu/DropDownMenu.svelte.d.ts +0 -3
- package/dist/ui/range/RangePicker.svelte +1 -2
- package/dist/ui/table/Table.svelte +3 -6
- package/dist/ui/table/Table.svelte.d.ts +2 -3
- package/dist/ui/table/TableFieldsEdition.svelte +3 -2
- package/dist/ui/table/TableViewSelect.svelte +5 -13
- package/dist/ui/table/TableViewSelect.svelte.d.ts +0 -5
- package/dist/ui/table/cell/TableCellArray.svelte +1 -1
- package/dist/ui/table/field.d.ts +7 -7
- package/dist/ui/table/head/TableHeadDate.svelte +1 -5
- package/dist/ui/table/head/TableHeadNumber.svelte +0 -1
- package/dist/ui/table/head/TableHeadSelect.svelte +2 -2
- package/dist/validation/zod.js +2 -1
- package/package.json +16 -33
- package/dist/ui/table/type.d.ts +0 -2
- package/dist/ui/table/type.js +0 -1
- /package/dist/{data.d.ts → _doc/data.d.ts} +0 -0
- /package/dist/{data.js → _doc/data.js} +0 -0
|
@@ -75,15 +75,9 @@ export function usePopover({ mode = 'auto', placement = 'bottom-start', listenCl
|
|
|
75
75
|
popover: mode,
|
|
76
76
|
[createAttachmentKey()]: (node) => {
|
|
77
77
|
popover = node;
|
|
78
|
-
// biome-ignore lint/suspicious/noTsIgnore: await for a svelte-check update
|
|
79
|
-
// @ts-ignore
|
|
80
78
|
popover.style.positionAnchor = anchorName;
|
|
81
|
-
// biome-ignore lint/suspicious/noTsIgnore: await for a svelte-check update
|
|
82
|
-
// @ts-ignore
|
|
83
79
|
popover.style.positionArea = placements[placement];
|
|
84
80
|
popover.style.inset = 'auto';
|
|
85
|
-
// biome-ignore lint/suspicious/noTsIgnore: await for a svelte-check update
|
|
86
|
-
// @ts-ignore
|
|
87
81
|
popover.style.positionTry = 'flip-x, flip-y';
|
|
88
82
|
popover.style.position = 'relative';
|
|
89
83
|
return attachPopoverListeners(node);
|
|
@@ -91,8 +85,6 @@ export function usePopover({ mode = 'auto', placement = 'bottom-start', listenCl
|
|
|
91
85
|
},
|
|
92
86
|
trigger: {
|
|
93
87
|
[createAttachmentKey()]: (node) => {
|
|
94
|
-
// biome-ignore lint/suspicious/noTsIgnore: await for a svelte-check update
|
|
95
|
-
// @ts-ignore
|
|
96
88
|
node.style.anchorName = anchorName;
|
|
97
89
|
return attachTriggerListeners(node);
|
|
98
90
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useForm.ts';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useForm.ts';
|
package/dist/remote/useForm.js
CHANGED
|
@@ -13,7 +13,10 @@ export function useForm(remoteForm, schema, debounceMs = 1000) {
|
|
|
13
13
|
target.type === 'checkbox' ||
|
|
14
14
|
target.type === 'radio' ||
|
|
15
15
|
target.tagName === 'SELECT';
|
|
16
|
-
|
|
16
|
+
if (instantValidation)
|
|
17
|
+
remoteForm.validate();
|
|
18
|
+
else
|
|
19
|
+
debouncedValidate();
|
|
17
20
|
}
|
|
18
21
|
});
|
|
19
22
|
};
|
package/dist/search/Spans.svelte
CHANGED
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
let { spans }: { spans: SearchQueryResultSpan[] } = $props()
|
|
5
5
|
</script>
|
|
6
6
|
|
|
7
|
-
{#each spans as
|
|
7
|
+
{#each spans as span (span)}
|
|
8
|
+
{@const { isMatch, value } = span}
|
|
8
9
|
<span
|
|
9
10
|
class={isMatch ? 'rounded-xs text-secondary' : ''}
|
|
10
11
|
class:ml-px={value.startsWith(' ')}
|
|
@@ -1,18 +1,17 @@
|
|
|
1
|
+
import type { ResolvedPathname } from '$app/types';
|
|
1
2
|
export declare const param: {
|
|
2
3
|
readonly with: (params: Record<string, string | number>, ...keysToRemove: string[]) => string;
|
|
3
4
|
readonly without: (...keys: string[]) => string;
|
|
4
5
|
readonly toggle: (params: Record<string, string>, ...keysToRemove: string[]) => string;
|
|
5
|
-
readonly has: (key: string) => boolean;
|
|
6
|
+
readonly has: (key: string, value?: string) => boolean;
|
|
6
7
|
readonly get: (key: string) => string | null;
|
|
7
|
-
readonly hasValue: (key: string, value: string) => boolean;
|
|
8
8
|
readonly keys: () => URLSearchParamsIterator<string>;
|
|
9
9
|
};
|
|
10
10
|
export declare const urlParam: {
|
|
11
|
-
with: (params: Record<string, string | number>, ...keysToRemove: string[]) =>
|
|
12
|
-
without: (...args: string[]) =>
|
|
13
|
-
toggle: (params: Record<string, string>, ...keysToRemove: string[]) =>
|
|
14
|
-
has: (key: string) => boolean;
|
|
11
|
+
with: (params: Record<string, string | number>, ...keysToRemove: string[]) => ResolvedPathname;
|
|
12
|
+
without: (...args: string[]) => ResolvedPathname;
|
|
13
|
+
toggle: (params: Record<string, string>, ...keysToRemove: string[]) => ResolvedPathname;
|
|
14
|
+
has: (key: string, value?: string) => boolean;
|
|
15
15
|
get: (key: string) => string | null;
|
|
16
|
-
hasValue: (key: string, value: string) => boolean;
|
|
17
16
|
keys: () => URLSearchParamsIterator<string>;
|
|
18
17
|
};
|
|
@@ -1,56 +1,54 @@
|
|
|
1
1
|
import { page } from '$app/state';
|
|
2
|
+
import { SvelteURLSearchParams } from 'svelte/reactivity';
|
|
2
3
|
export const param = {
|
|
3
4
|
get with() {
|
|
4
5
|
return (params, ...keysToRemove) => {
|
|
5
|
-
const
|
|
6
|
+
const searchParams = new SvelteURLSearchParams(page.url.searchParams);
|
|
6
7
|
Object.entries(params).forEach(([key, value]) => {
|
|
7
|
-
|
|
8
|
+
searchParams.set(key, String(value));
|
|
8
9
|
});
|
|
9
10
|
keysToRemove.forEach((key) => {
|
|
10
|
-
|
|
11
|
+
searchParams.delete(key);
|
|
11
12
|
});
|
|
12
|
-
return
|
|
13
|
+
return searchParams.toString();
|
|
13
14
|
};
|
|
14
15
|
},
|
|
15
16
|
get without() {
|
|
16
17
|
return (...keys) => {
|
|
17
|
-
const
|
|
18
|
+
const searchParams = new SvelteURLSearchParams(page.url.searchParams);
|
|
18
19
|
keys.forEach((key) => {
|
|
19
|
-
|
|
20
|
+
searchParams.delete(key);
|
|
20
21
|
});
|
|
21
|
-
return
|
|
22
|
+
return searchParams.toString();
|
|
22
23
|
};
|
|
23
24
|
},
|
|
24
25
|
get toggle() {
|
|
25
26
|
return (params, ...keysToRemove) => {
|
|
26
|
-
const
|
|
27
|
+
const searchParams = new SvelteURLSearchParams(page.url.searchParams);
|
|
27
28
|
Object.entries(params).forEach(([key, value]) => {
|
|
28
|
-
if (
|
|
29
|
-
|
|
29
|
+
if (searchParams.get(key) === value)
|
|
30
|
+
searchParams.delete(key);
|
|
30
31
|
else
|
|
31
|
-
|
|
32
|
+
searchParams.set(key, value);
|
|
32
33
|
});
|
|
33
34
|
keysToRemove.forEach((key) => {
|
|
34
|
-
|
|
35
|
+
searchParams.delete(key);
|
|
35
36
|
});
|
|
36
|
-
return
|
|
37
|
+
return searchParams.toString();
|
|
37
38
|
};
|
|
38
39
|
},
|
|
39
40
|
get has() {
|
|
40
|
-
return (key) => page.url.searchParams.has(key);
|
|
41
|
+
return (key, value) => page.url.searchParams.has(key, value);
|
|
41
42
|
},
|
|
42
43
|
get get() {
|
|
43
44
|
return (key) => page.url.searchParams.get(key);
|
|
44
45
|
},
|
|
45
|
-
get hasValue() {
|
|
46
|
-
return (key, value) => page.url.searchParams.get(key) === value;
|
|
47
|
-
},
|
|
48
46
|
get keys() {
|
|
49
47
|
return () => page.url.searchParams.keys();
|
|
50
48
|
}
|
|
51
49
|
};
|
|
52
50
|
function addPathname(fn) {
|
|
53
|
-
return (...args) => page.url.pathname + fn(...args);
|
|
51
|
+
return (...args) => (page.url.pathname + '?' + fn(...args));
|
|
54
52
|
}
|
|
55
53
|
export const urlParam = {
|
|
56
54
|
...param,
|
|
@@ -13,7 +13,7 @@ export function drawerFly(node, { delay = 0, duration = 400, easing = cubicOut,
|
|
|
13
13
|
css: (t, u) => `
|
|
14
14
|
transform: ${transform} translate(${(1 - t) * xValue}${xUnit}, ${(1 - t) * yValue}${yUnit});
|
|
15
15
|
opacity: ${target_opacity - od * u}`,
|
|
16
|
-
tick: (t
|
|
16
|
+
tick: (t) => {
|
|
17
17
|
onTransition({ x: t * xValue, y: t * yValue });
|
|
18
18
|
}
|
|
19
19
|
};
|
|
@@ -2,32 +2,20 @@
|
|
|
2
2
|
import { ChevronsUpDownIcon } from '@lucide/svelte'
|
|
3
3
|
import type { Snippet } from 'svelte'
|
|
4
4
|
import { DropDown } from './index.js'
|
|
5
|
-
import { type Options, parseOptions } from '../../utils/options.js'
|
|
6
5
|
import type { TippyProps } from '../../utils/tippy.js'
|
|
7
6
|
|
|
8
7
|
let {
|
|
9
|
-
options: optionsProp,
|
|
10
8
|
tippyProps = {},
|
|
11
|
-
onSelect,
|
|
12
9
|
children: childrenProp
|
|
13
10
|
}: {
|
|
14
|
-
options: Options
|
|
15
11
|
tippyProps?: Partial<TippyProps>
|
|
16
|
-
onSelect?: (value: string) => void
|
|
17
12
|
children?: Snippet
|
|
18
13
|
} = $props()
|
|
19
|
-
|
|
20
|
-
let options = $derived(parseOptions(optionsProp))
|
|
21
|
-
let trigger = $state<HTMLElement>()
|
|
22
14
|
</script>
|
|
23
15
|
|
|
24
16
|
<DropDown {tippyProps}>
|
|
25
17
|
{#snippet activator()}
|
|
26
|
-
<button
|
|
27
|
-
bind:this={trigger}
|
|
28
|
-
type="button"
|
|
29
|
-
class="flex h-12 items-center gap-2 rounded-lg border pr-2 pl-4"
|
|
30
|
-
>
|
|
18
|
+
<button type="button" class="flex h-12 items-center gap-2 rounded-lg border pr-2 pl-4">
|
|
31
19
|
{#if childrenProp}
|
|
32
20
|
{@render childrenProp()}
|
|
33
21
|
{:else}
|
|
@@ -37,10 +25,9 @@
|
|
|
37
25
|
</button>
|
|
38
26
|
{/snippet}
|
|
39
27
|
|
|
40
|
-
|
|
41
|
-
<span>TODO: use Command or REMOVE THIS COMPONENT</span>
|
|
28
|
+
<span>TODO: use Command or REMOVE THIS COMPONENT</span>
|
|
42
29
|
|
|
43
|
-
|
|
30
|
+
<!-- <SelectorList
|
|
44
31
|
{trigger}
|
|
45
32
|
items={options.map((opt) => ({ id: opt.value, ...opt }))}
|
|
46
33
|
onSelect={(index) => {
|
|
@@ -56,5 +43,4 @@
|
|
|
56
43
|
<span class="pr-4 whitespace-nowrap">{item.label}</span>
|
|
57
44
|
{/snippet}
|
|
58
45
|
</SelectorList> -->
|
|
59
|
-
{/snippet}
|
|
60
46
|
</DropDown>
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import type { Snippet } from 'svelte';
|
|
2
|
-
import { type Options } from '../../utils/options.js';
|
|
3
2
|
import type { TippyProps } from '../../utils/tippy.js';
|
|
4
3
|
type $$ComponentProps = {
|
|
5
|
-
options: Options;
|
|
6
4
|
tippyProps?: Partial<TippyProps>;
|
|
7
|
-
onSelect?: (value: string) => void;
|
|
8
5
|
children?: Snippet;
|
|
9
6
|
};
|
|
10
7
|
declare const DropDownMenu: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
@@ -49,8 +49,7 @@
|
|
|
49
49
|
startDate: range?.start ? dayjs(range.start).toDate() : undefined,
|
|
50
50
|
endDate: range?.end ? dayjs(range.end).toDate() : undefined,
|
|
51
51
|
setup: (picker: Litepicker) => {
|
|
52
|
-
|
|
53
|
-
picker.on('selected', (date1: any, date2: any) => {
|
|
52
|
+
picker.on('selected', (date1: { dateInstance: Date }, date2: { dateInstance: Date }) => {
|
|
54
53
|
range = {
|
|
55
54
|
start: new Date(
|
|
56
55
|
`${getAbsoluteDate(date1.dateInstance)}T${getAbsoluteTime(range?.start)}`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script lang="ts" generics="Item extends ItemBase">
|
|
2
|
+
import type { Snippet } from 'svelte'
|
|
2
3
|
import { afterNavigate } from '$app/navigation'
|
|
3
|
-
|
|
4
4
|
import {
|
|
5
5
|
context,
|
|
6
6
|
createKeys,
|
|
@@ -10,7 +10,6 @@
|
|
|
10
10
|
type TableField,
|
|
11
11
|
TableHead
|
|
12
12
|
} from './index.js'
|
|
13
|
-
import type { SnippetLike } from './type.js'
|
|
14
13
|
|
|
15
14
|
let {
|
|
16
15
|
key = 'table',
|
|
@@ -22,20 +21,18 @@
|
|
|
22
21
|
classRow,
|
|
23
22
|
hideBody = false,
|
|
24
23
|
onCreateField,
|
|
25
|
-
onclick
|
|
26
|
-
screenPadding
|
|
24
|
+
onclick
|
|
27
25
|
}: {
|
|
28
26
|
key?: string
|
|
29
27
|
fields: TableField<Item>[]
|
|
30
28
|
items: Item[]
|
|
31
|
-
actions?:
|
|
29
|
+
actions?: Snippet<[Item]>
|
|
32
30
|
placholder?: string
|
|
33
31
|
class?: string
|
|
34
32
|
classRow?: string
|
|
35
33
|
hideBody?: boolean
|
|
36
34
|
onCreateField?: () => void
|
|
37
35
|
onclick?: (item?: Item) => void
|
|
38
|
-
screenPadding?: number
|
|
39
36
|
} = $props()
|
|
40
37
|
|
|
41
38
|
$effect(() => {
|
|
@@ -1,18 +1,17 @@
|
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
1
2
|
import { type ItemBase, type TableField } from './index.js';
|
|
2
|
-
import type { SnippetLike } from './type.js';
|
|
3
3
|
declare function $$render<Item extends ItemBase>(): {
|
|
4
4
|
props: {
|
|
5
5
|
key?: string;
|
|
6
6
|
fields: TableField<Item>[];
|
|
7
7
|
items: Item[];
|
|
8
|
-
actions?:
|
|
8
|
+
actions?: Snippet<[Item]>;
|
|
9
9
|
placholder?: string;
|
|
10
10
|
class?: string;
|
|
11
11
|
classRow?: string;
|
|
12
12
|
hideBody?: boolean;
|
|
13
13
|
onCreateField?: () => void;
|
|
14
14
|
onclick?: (item?: Item) => void;
|
|
15
|
-
screenPadding?: number;
|
|
16
15
|
};
|
|
17
16
|
exports: {};
|
|
18
17
|
bindings: "";
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
import { context } from './context.js'
|
|
17
17
|
import type { ItemBase, TableField } from './index.js'
|
|
18
18
|
import { jsonParse } from '../../utils/jsonParse.js'
|
|
19
|
+
import type { ResolvedPathname } from '$app/types'
|
|
19
20
|
|
|
20
21
|
let {
|
|
21
22
|
fields,
|
|
@@ -30,14 +31,14 @@
|
|
|
30
31
|
let { KEY_FIELDS_VISIBLE, KEY_FIELDS_HIDDEN, KEY_FIELDS_ORDER } = $derived(context.get(key))
|
|
31
32
|
|
|
32
33
|
function getFieldHref(field: TableField<Item>) {
|
|
33
|
-
if (field.locked) return
|
|
34
|
+
if (field.locked) return '' as ResolvedPathname
|
|
34
35
|
const url = toggleParam(field.visible ? KEY_FIELDS_HIDDEN : KEY_FIELDS_VISIBLE, field.key)
|
|
35
36
|
if (url.searchParams.has(field.key)) {
|
|
36
37
|
url.searchParams.delete(field.key)
|
|
37
38
|
url.searchParams.delete('skip')
|
|
38
39
|
url.searchParams.delete('take')
|
|
39
40
|
}
|
|
40
|
-
return url.pathname + url.search
|
|
41
|
+
return (url.pathname + url.search) as ResolvedPathname
|
|
41
42
|
}
|
|
42
43
|
|
|
43
44
|
function toggleParam(paramKey: string, fieldKey: string): URL {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { ChevronDownIcon, PlusIcon, SaveIcon } from '@lucide/svelte'
|
|
3
|
-
import { enhance } from '$app/forms'
|
|
4
3
|
import { page } from '$app/state'
|
|
5
4
|
|
|
6
5
|
import { Dialog } from '../dialog/index.js'
|
|
7
6
|
import { DropDown } from '../menu/index.js'
|
|
7
|
+
import { SvelteURLSearchParams } from 'svelte/reactivity'
|
|
8
8
|
|
|
9
9
|
// import { InputText } from '../input/index.js';
|
|
10
10
|
// import { useForm } from '../../validation/form.jss';
|
|
@@ -16,19 +16,9 @@
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
let {
|
|
19
|
-
|
|
20
|
-
views,
|
|
21
|
-
action = '',
|
|
22
|
-
actionCreate = '?/view_create',
|
|
23
|
-
actionUpdate = '?/view_update',
|
|
24
|
-
actionDelete = '?/view_delete'
|
|
19
|
+
views
|
|
25
20
|
}: {
|
|
26
|
-
key: string
|
|
27
21
|
views: View[]
|
|
28
|
-
action?: string
|
|
29
|
-
actionCreate?: string
|
|
30
|
-
actionUpdate?: string
|
|
31
|
-
actionDelete?: string
|
|
32
22
|
} = $props()
|
|
33
23
|
|
|
34
24
|
let dialog = $state<HTMLDialogElement>()
|
|
@@ -39,7 +29,7 @@
|
|
|
39
29
|
// });
|
|
40
30
|
|
|
41
31
|
let query = $derived.by(() => {
|
|
42
|
-
const searchParam = new
|
|
32
|
+
const searchParam = new SvelteURLSearchParams(page.url.searchParams)
|
|
43
33
|
searchParam.delete('skip')
|
|
44
34
|
searchParam.delete('take')
|
|
45
35
|
return searchParam.toString()
|
|
@@ -49,6 +39,8 @@
|
|
|
49
39
|
let isNewView = $derived(!!query && !selectedView)
|
|
50
40
|
</script>
|
|
51
41
|
|
|
42
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */ /* eslint-disable
|
|
43
|
+
@typescript-eslint/no-unused-vars */
|
|
52
44
|
<DropDown>
|
|
53
45
|
{#snippet activator()}
|
|
54
46
|
<button
|
|
@@ -4,12 +4,7 @@ type View = {
|
|
|
4
4
|
query: string;
|
|
5
5
|
};
|
|
6
6
|
type $$ComponentProps = {
|
|
7
|
-
key: string;
|
|
8
7
|
views: View[];
|
|
9
|
-
action?: string;
|
|
10
|
-
actionCreate?: string;
|
|
11
|
-
actionUpdate?: string;
|
|
12
|
-
actionDelete?: string;
|
|
13
8
|
};
|
|
14
9
|
declare const TableViewSelect: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
15
10
|
type TableViewSelect = ReturnType<typeof TableViewSelect>;
|
package/dist/ui/table/field.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
1
2
|
import type { Options } from '../../utils/options.js';
|
|
2
|
-
import type { SnippetLike } from './type.js';
|
|
3
3
|
export type Primitive = string | number | boolean | Date;
|
|
4
4
|
export type ItemBase = {
|
|
5
5
|
id: string | number;
|
|
@@ -15,8 +15,8 @@ type TableFieldCommon<Item extends ItemBase> = {
|
|
|
15
15
|
sortable?: boolean;
|
|
16
16
|
/** Internal usage */
|
|
17
17
|
_visible?: boolean;
|
|
18
|
-
cell: ((item: Item) =>
|
|
19
|
-
head?:
|
|
18
|
+
cell: ((item: Item) => Snippet<[Item]>) | ((item: Item) => null | undefined | Primitive | Primitive[]);
|
|
19
|
+
head?: Snippet<[Item]>;
|
|
20
20
|
};
|
|
21
21
|
type TableFieldPrimitve = {
|
|
22
22
|
type?: 'string' | 'textarea' | 'number' | 'boolean' | 'date';
|
|
@@ -37,8 +37,8 @@ export declare function syncFieldsWithParams<Item extends ItemBase>(tablekey: st
|
|
|
37
37
|
locked?: boolean;
|
|
38
38
|
visible?: boolean;
|
|
39
39
|
sortable?: boolean;
|
|
40
|
-
cell: ((item: Item) =>
|
|
41
|
-
head?:
|
|
40
|
+
cell: ((item: Item) => Snippet<[Item]>) | ((item: Item) => null | undefined | Primitive | Primitive[]);
|
|
41
|
+
head?: Snippet<[Item]> | undefined;
|
|
42
42
|
type?: "string" | "textarea" | "number" | "boolean" | "date";
|
|
43
43
|
} | {
|
|
44
44
|
_visible: boolean;
|
|
@@ -49,8 +49,8 @@ export declare function syncFieldsWithParams<Item extends ItemBase>(tablekey: st
|
|
|
49
49
|
locked?: boolean;
|
|
50
50
|
visible?: boolean;
|
|
51
51
|
sortable?: boolean;
|
|
52
|
-
cell: ((item: Item) =>
|
|
53
|
-
head?:
|
|
52
|
+
cell: ((item: Item) => Snippet<[Item]>) | ((item: Item) => null | undefined | Primitive | Primitive[]);
|
|
53
|
+
head?: Snippet<[Item]> | undefined;
|
|
54
54
|
type: "select" | "multiselect";
|
|
55
55
|
})[];
|
|
56
56
|
export {};
|
|
@@ -19,11 +19,7 @@
|
|
|
19
19
|
start?: string
|
|
20
20
|
end?: string
|
|
21
21
|
order?: 'asc' | 'desc'
|
|
22
|
-
}>(
|
|
23
|
-
// svelte-ignore state_referenced_locally
|
|
24
|
-
page.url.searchParams.get(field.key),
|
|
25
|
-
{}
|
|
26
|
-
)
|
|
22
|
+
}>(page.url.searchParams.get((() => field.key)()), {})
|
|
27
23
|
|
|
28
24
|
let range: RangeAsDate = $state({
|
|
29
25
|
start: initialValue.start ? new Date(initialValue.start) : null,
|
|
@@ -23,7 +23,6 @@
|
|
|
23
23
|
.default({})
|
|
24
24
|
|
|
25
25
|
let { min, max, order } = $derived(paramModel.parse(page.url.searchParams.get(field.key)))
|
|
26
|
-
let isNegatifRange = $derived(min !== undefined && max !== undefined && max < min)
|
|
27
26
|
|
|
28
27
|
const updateUrl = debounce(() => {
|
|
29
28
|
const query: Record<string, string | number> = {}
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
|
|
62
62
|
{#if optionsActive.length}
|
|
63
63
|
<div class="flex flex-wrap gap-1">
|
|
64
|
-
{#each optionsActive as option}
|
|
64
|
+
{#each optionsActive as option (option.value)}
|
|
65
65
|
<span class="badge badge-xs text-[0.7rem] font-normal text-white badge-primary">
|
|
66
66
|
{#if option.icon}
|
|
67
67
|
<option.icon size={10} class="-translate-x-1 fill-white/80" />
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
{/snippet}
|
|
76
76
|
|
|
77
77
|
<div class="flex flex-col gap-1">
|
|
78
|
-
{#each options as { isActive, icon: Icon, label, value }}
|
|
78
|
+
{#each options as { isActive, icon: Icon, label, value } (value)}
|
|
79
79
|
<a
|
|
80
80
|
href={getHref(value)}
|
|
81
81
|
class="menu-item px-3 py-2"
|
package/dist/validation/zod.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fuma",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.3",
|
|
4
4
|
"description": "My fullstack material build with sveltekit, daisyui, zod, prisma, lucia",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Jonas Voisard",
|
|
@@ -14,16 +14,15 @@
|
|
|
14
14
|
"prepublishOnly": "npm run package",
|
|
15
15
|
"sync": "svelte-kit sync",
|
|
16
16
|
"svelte-check": "svelte-check --tsconfig ./tsconfig.json",
|
|
17
|
-
"check": "run-p sync svelte-check lint
|
|
17
|
+
"check": "run-p sync svelte-check lint",
|
|
18
18
|
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
|
19
19
|
"test": "vitest",
|
|
20
|
-
"format": "prettier
|
|
21
|
-
"lint": "
|
|
20
|
+
"format": "prettier --write .",
|
|
21
|
+
"lint": "prettier --check . && eslint .",
|
|
22
22
|
"migrate": "prisma migrate dev",
|
|
23
23
|
"generate": "prisma generate",
|
|
24
24
|
"studio": "prisma studio",
|
|
25
|
-
"seed": "prisma db seed"
|
|
26
|
-
"biome": "biome"
|
|
25
|
+
"seed": "prisma db seed"
|
|
27
26
|
},
|
|
28
27
|
"svelte": "./dist/index.js",
|
|
29
28
|
"types": "./dist/index.d.ts",
|
|
@@ -34,27 +33,6 @@
|
|
|
34
33
|
"svelte": "./dist/index.js",
|
|
35
34
|
"default": "./dist/index.js"
|
|
36
35
|
},
|
|
37
|
-
"./ui": {
|
|
38
|
-
"types": "./dist/ui/index.d.ts",
|
|
39
|
-
"svelte": "./dist/ui/index.js",
|
|
40
|
-
"default": "./dist/ui/index.js"
|
|
41
|
-
},
|
|
42
|
-
"./utils": {
|
|
43
|
-
"types": "./dist/utils/index.d.ts",
|
|
44
|
-
"default": "./dist/utils/index.js"
|
|
45
|
-
},
|
|
46
|
-
"./state": {
|
|
47
|
-
"types": "./dist/state/index.d.ts",
|
|
48
|
-
"default": "./dist/state/index.js"
|
|
49
|
-
},
|
|
50
|
-
"./validation": {
|
|
51
|
-
"types": "./dist/validation/index.d.ts",
|
|
52
|
-
"default": "./dist/validation/index.js"
|
|
53
|
-
},
|
|
54
|
-
"./action": {
|
|
55
|
-
"types": "./dist/action/index.d.ts",
|
|
56
|
-
"default": "./dist/action/index.js"
|
|
57
|
-
},
|
|
58
36
|
"./server": {
|
|
59
37
|
"types": "./dist/server/index.d.ts",
|
|
60
38
|
"default": "./dist/server/index.js"
|
|
@@ -72,29 +50,34 @@
|
|
|
72
50
|
},
|
|
73
51
|
"devDependencies": {
|
|
74
52
|
"@biomejs/biome": "2.4.2",
|
|
53
|
+
"@eslint/compat": "^2.0.5",
|
|
75
54
|
"@sveltejs/adapter-auto": "^7.0.1",
|
|
76
|
-
"@sveltejs/kit": "^2.
|
|
55
|
+
"@sveltejs/kit": "^2.58.0",
|
|
77
56
|
"@sveltejs/package": "^2.5.7",
|
|
78
57
|
"@sveltejs/vite-plugin-svelte": "^6.2.4",
|
|
79
58
|
"@tailwindcss/vite": "^4.2.4",
|
|
80
59
|
"@types/node": "^25.6.0",
|
|
81
60
|
"daisyui": "^5.5.19",
|
|
61
|
+
"eslint": "^9.39.4",
|
|
62
|
+
"eslint-config-prettier": "^10.1.8",
|
|
63
|
+
"eslint-plugin-svelte": "^3.17.1",
|
|
82
64
|
"npm-run-all": "^4.1.5",
|
|
83
65
|
"prettier": "^3.8.3",
|
|
84
66
|
"prettier-plugin-svelte": "^3.5.1",
|
|
85
|
-
"prettier-plugin-tailwindcss": "^0.7.
|
|
67
|
+
"prettier-plugin-tailwindcss": "^0.7.4",
|
|
86
68
|
"publint": "^0.1.16",
|
|
87
69
|
"shiki": "^4.0.2",
|
|
88
70
|
"svelte-check": "^4.4.6",
|
|
89
71
|
"tailwindcss": "^4.2.4",
|
|
90
72
|
"typescript": "^5.9.3",
|
|
73
|
+
"typescript-eslint": "^8.59.1",
|
|
91
74
|
"vite": "^7.3.2",
|
|
92
75
|
"vite-plugin-devtools-json": "^1.0.0",
|
|
93
76
|
"vitest": "^4.1.5"
|
|
94
77
|
},
|
|
95
78
|
"dependencies": {
|
|
96
79
|
"@faker-js/faker": "^10.4.0",
|
|
97
|
-
"@lucide/svelte": "^1.
|
|
80
|
+
"@lucide/svelte": "^1.14.0",
|
|
98
81
|
"dayjs": "^1.11.20",
|
|
99
82
|
"debounce": "^3.0.0",
|
|
100
83
|
"devalue": "^5.7.1",
|
|
@@ -103,10 +86,10 @@
|
|
|
103
86
|
"litepicker": "^2.0.12",
|
|
104
87
|
"perod": "^1.4.1",
|
|
105
88
|
"runed": "^0.37.1",
|
|
106
|
-
"svelte": "^5.55.
|
|
89
|
+
"svelte": "^5.55.5",
|
|
107
90
|
"svelte-easy-crop": "^5.0.1",
|
|
108
|
-
"svelte-sonner": "^1.1.
|
|
91
|
+
"svelte-sonner": "^1.1.1",
|
|
109
92
|
"tippy.js": "^6.3.7",
|
|
110
|
-
"zod": "^4.
|
|
93
|
+
"zod": "^4.4.1"
|
|
111
94
|
}
|
|
112
95
|
}
|
package/dist/ui/table/type.d.ts
DELETED
package/dist/ui/table/type.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
File without changes
|
|
File without changes
|