@webamoki/web-svelte 0.5.12 → 0.5.14
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/form/fields/DateField.svelte +39 -0
- package/dist/components/form/fields/DateField.svelte.d.ts +30 -0
- package/dist/components/form/index.d.ts +2 -1
- package/dist/components/form/index.js +2 -1
- package/dist/utils/form.d.ts +1 -1
- package/dist/utils/form.js +3 -7
- package/package.json +1 -1
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<script lang="ts" generics="T extends Record<string, unknown>, U extends FormPath<T>, M">
|
|
2
|
+
import type { FormPath } from 'sveltekit-superforms';
|
|
3
|
+
import FieldWrapper, { type FieldWrapperProps } from '../FieldWrapper.svelte';
|
|
4
|
+
import { Input } from '../../../shadcn/components/ui/input/index.js';
|
|
5
|
+
import { CalendarDate } from '@internationalized/date';
|
|
6
|
+
|
|
7
|
+
interface Props extends FieldWrapperProps<T, U, M> {
|
|
8
|
+
value?: CalendarDate;
|
|
9
|
+
class?: string;
|
|
10
|
+
}
|
|
11
|
+
let { value = $bindable(), class: className, ...fieldProps }: Props = $props();
|
|
12
|
+
|
|
13
|
+
// Getter: format CalendarDate → string (YYYY-MM-DD)
|
|
14
|
+
function get(): string {
|
|
15
|
+
if (!value) return '';
|
|
16
|
+
const yyyy = String(value.year).padStart(4, '0');
|
|
17
|
+
const mm = String(value.month).padStart(2, '0');
|
|
18
|
+
const dd = String(value.day).padStart(2, '0');
|
|
19
|
+
return `${yyyy}-${mm}-${dd}`;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// Setter: parse string → CalendarDate
|
|
23
|
+
function set(raw: string) {
|
|
24
|
+
if (!raw) {
|
|
25
|
+
value = undefined;
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const [yyyy, mm, dd] = raw.split('-').map(Number);
|
|
29
|
+
if (yyyy && mm && dd) {
|
|
30
|
+
value = new CalendarDate(yyyy, mm, dd);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
</script>
|
|
34
|
+
|
|
35
|
+
<FieldWrapper {...fieldProps}>
|
|
36
|
+
{#snippet formElem(props)}
|
|
37
|
+
<Input type="date" bind:value={get, set} class={className} {...props} />
|
|
38
|
+
{/snippet}
|
|
39
|
+
</FieldWrapper>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { FormPath } from 'sveltekit-superforms';
|
|
2
|
+
import { type FieldWrapperProps } from '../FieldWrapper.svelte';
|
|
3
|
+
import { CalendarDate } from '@internationalized/date';
|
|
4
|
+
declare function $$render<T extends Record<string, unknown>, U extends FormPath<T>, M>(): {
|
|
5
|
+
props: FieldWrapperProps<T, U, M> & {
|
|
6
|
+
value?: CalendarDate;
|
|
7
|
+
class?: string;
|
|
8
|
+
};
|
|
9
|
+
exports: {};
|
|
10
|
+
bindings: "value";
|
|
11
|
+
slots: {};
|
|
12
|
+
events: {};
|
|
13
|
+
};
|
|
14
|
+
declare class __sveltets_Render<T extends Record<string, unknown>, U extends FormPath<T>, M> {
|
|
15
|
+
props(): ReturnType<typeof $$render<T, U, M>>['props'];
|
|
16
|
+
events(): ReturnType<typeof $$render<T, U, M>>['events'];
|
|
17
|
+
slots(): ReturnType<typeof $$render<T, U, M>>['slots'];
|
|
18
|
+
bindings(): "value";
|
|
19
|
+
exports(): {};
|
|
20
|
+
}
|
|
21
|
+
interface $$IsomorphicComponent {
|
|
22
|
+
new <T extends Record<string, unknown>, U extends FormPath<T>, M>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T, U, M>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T, U, M>['props']>, ReturnType<__sveltets_Render<T, U, M>['events']>, ReturnType<__sveltets_Render<T, U, M>['slots']>> & {
|
|
23
|
+
$$bindings?: ReturnType<__sveltets_Render<T, U, M>['bindings']>;
|
|
24
|
+
} & ReturnType<__sveltets_Render<T, U, M>['exports']>;
|
|
25
|
+
<T extends Record<string, unknown>, U extends FormPath<T>, M>(internal: unknown, props: ReturnType<__sveltets_Render<T, U, M>['props']> & {}): ReturnType<__sveltets_Render<T, U, M>['exports']>;
|
|
26
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any, any, any>['bindings']>;
|
|
27
|
+
}
|
|
28
|
+
declare const DateField: $$IsomorphicComponent;
|
|
29
|
+
type DateField<T extends Record<string, unknown>, U extends FormPath<T>, M> = InstanceType<typeof DateField<T, U, M>>;
|
|
30
|
+
export default DateField;
|
|
@@ -3,6 +3,7 @@ import Button from './Button.svelte';
|
|
|
3
3
|
import TextField from './fields/TextField.svelte';
|
|
4
4
|
import TextFieldNullable from './fields/TextFieldNullable.svelte';
|
|
5
5
|
import TimeField from './fields/TimeField.svelte';
|
|
6
|
+
import DateField from './fields/DateField.svelte';
|
|
6
7
|
import NumberField from './fields/NumberField.svelte';
|
|
7
8
|
import SelectField from './fields/SelectField.svelte';
|
|
8
9
|
import PasswordField from './fields/PasswordField.svelte';
|
|
@@ -11,4 +12,4 @@ import ChoiceField from './fields/ChoiceField.svelte';
|
|
|
11
12
|
import ChoiceMultiField from './fields/ChoiceMultiField.svelte';
|
|
12
13
|
import WeekdayChoiceField from './fields/WeekdayChoiceField.svelte';
|
|
13
14
|
import WeekdayChoiceMultiField from './fields/WeekdayChoiceMultiField.svelte';
|
|
14
|
-
export { Form, Button, TextField, TextFieldNullable, TimeField, NumberField, SelectField, PasswordField, HexColorField, ChoiceField, ChoiceMultiField, WeekdayChoiceField, WeekdayChoiceMultiField };
|
|
15
|
+
export { Form, Button, TextField, TextFieldNullable, TimeField, DateField, NumberField, SelectField, PasswordField, HexColorField, ChoiceField, ChoiceMultiField, WeekdayChoiceField, WeekdayChoiceMultiField };
|
|
@@ -3,6 +3,7 @@ import Button from './Button.svelte';
|
|
|
3
3
|
import TextField from './fields/TextField.svelte';
|
|
4
4
|
import TextFieldNullable from './fields/TextFieldNullable.svelte';
|
|
5
5
|
import TimeField from './fields/TimeField.svelte';
|
|
6
|
+
import DateField from './fields/DateField.svelte';
|
|
6
7
|
import NumberField from './fields/NumberField.svelte';
|
|
7
8
|
import SelectField from './fields/SelectField.svelte';
|
|
8
9
|
import PasswordField from './fields/PasswordField.svelte';
|
|
@@ -11,4 +12,4 @@ import ChoiceField from './fields/ChoiceField.svelte';
|
|
|
11
12
|
import ChoiceMultiField from './fields/ChoiceMultiField.svelte';
|
|
12
13
|
import WeekdayChoiceField from './fields/WeekdayChoiceField.svelte';
|
|
13
14
|
import WeekdayChoiceMultiField from './fields/WeekdayChoiceMultiField.svelte';
|
|
14
|
-
export { Form, Button, TextField, TextFieldNullable, TimeField, NumberField, SelectField, PasswordField, HexColorField, ChoiceField, ChoiceMultiField, WeekdayChoiceField, WeekdayChoiceMultiField };
|
|
15
|
+
export { Form, Button, TextField, TextFieldNullable, TimeField, DateField, NumberField, SelectField, PasswordField, HexColorField, ChoiceField, ChoiceMultiField, WeekdayChoiceField, WeekdayChoiceMultiField };
|
package/dist/utils/form.d.ts
CHANGED
|
@@ -20,4 +20,4 @@ export declare function prepareEmptyForm<S extends type.Any<Record<string, unkno
|
|
|
20
20
|
delayed: import("svelte/store").Readable<boolean>;
|
|
21
21
|
errors: import("sveltekit-superforms/client").SuperFormErrors<S["infer"]>;
|
|
22
22
|
};
|
|
23
|
-
export declare function
|
|
23
|
+
export declare function getServerForm<S extends type.Any<Record<string, unknown>>>(request: Request, schema: S): Promise<SuperValidated<S["infer"], any, S["inferIn"]>>;
|
package/dist/utils/form.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { toast } from 'svelte-sonner';
|
|
2
2
|
import { dateTransport } from './index.js';
|
|
3
3
|
import { type } from 'arktype';
|
|
4
|
-
import { defaults,
|
|
4
|
+
import { defaults, superForm, superValidate } from 'sveltekit-superforms';
|
|
5
5
|
import { arktype, arktypeClient } from 'sveltekit-superforms/adapters';
|
|
6
6
|
export function prepareForm(validated, schema, options) {
|
|
7
7
|
const form = superForm(validated, {
|
|
@@ -55,10 +55,6 @@ export function prepareEmptyForm(schema, options) {
|
|
|
55
55
|
const errors = form.errors;
|
|
56
56
|
return { form, data: form.form, delayed, errors };
|
|
57
57
|
}
|
|
58
|
-
export async function
|
|
59
|
-
|
|
60
|
-
if (!form.valid) {
|
|
61
|
-
throw fail(400, { form });
|
|
62
|
-
}
|
|
63
|
-
return form;
|
|
58
|
+
export async function getServerForm(request, schema) {
|
|
59
|
+
return await superValidate(request, arktype(schema), { transport: dateTransport });
|
|
64
60
|
}
|