@webamoki/web-svelte 0.5.11 → 0.5.13
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/datetime/index.d.ts +3 -0
- package/dist/utils/datetime/index.js +2 -2
- 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 };
|
|
@@ -2,6 +2,9 @@ import { CalendarDate, Time, ZonedDateTime, type DateDuration } from '@internati
|
|
|
2
2
|
import type { Transport } from '@sveltejs/kit';
|
|
3
3
|
import type { Day } from '../types/arktype.js';
|
|
4
4
|
export declare const Days: readonly ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"];
|
|
5
|
+
export declare const DayIndex: Record<Day, number>;
|
|
6
|
+
/** Gets the day index of the date */
|
|
7
|
+
export declare function getDayIndex(date: CalendarDate): number;
|
|
5
8
|
/**
|
|
6
9
|
* Gets the day of the week for a given date.
|
|
7
10
|
* @param date - The date to get the day of the week for.
|
|
@@ -12,9 +12,9 @@ export const Days = [
|
|
|
12
12
|
'Saturday',
|
|
13
13
|
'Sunday'
|
|
14
14
|
];
|
|
15
|
-
const DayIndex = Object.fromEntries(Days.map((day, index) => [day, index]));
|
|
15
|
+
export const DayIndex = Object.fromEntries(Days.map((day, index) => [day, index]));
|
|
16
16
|
/** Gets the day index of the date */
|
|
17
|
-
function getDayIndex(date) {
|
|
17
|
+
export function getDayIndex(date) {
|
|
18
18
|
// Always start 0 on Monday
|
|
19
19
|
return getDayOfWeek(date, DEFAULT_LOCALE, 'mon');
|
|
20
20
|
}
|