@webamoki/web-svelte 0.5.5 → 0.5.7
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.
|
@@ -1,18 +1,49 @@
|
|
|
1
|
-
<script lang="ts" generics="
|
|
1
|
+
<script lang="ts" generics="T extends Record<string, unknown>, U extends FormPath<T>, M">
|
|
2
2
|
import type { FormPath } from 'sveltekit-superforms';
|
|
3
3
|
import FieldWrapper, { type FieldWrapperProps } from '../FieldWrapper.svelte';
|
|
4
4
|
import { Input } from '../../../shadcn/components/ui/input/index.js';
|
|
5
|
+
import { Time } from '@internationalized/date';
|
|
5
6
|
|
|
6
7
|
interface Props extends FieldWrapperProps<T, U, M> {
|
|
7
|
-
value?:
|
|
8
|
+
value?: Time;
|
|
8
9
|
class?: string;
|
|
9
10
|
step?: HTMLInputElement['step'];
|
|
10
11
|
}
|
|
11
12
|
let { value = $bindable(), class: className, step, ...fieldProps }: Props = $props();
|
|
13
|
+
// Getter: format Time as string depending on step
|
|
14
|
+
function get(): string {
|
|
15
|
+
if (!value) return '00:00:00';
|
|
16
|
+
const hh = String(value.hour).padStart(2, '0');
|
|
17
|
+
const mm = String(value.minute).padStart(2, '0');
|
|
18
|
+
|
|
19
|
+
// If step < 60, include seconds
|
|
20
|
+
if (!step || Number(step) < 60) {
|
|
21
|
+
const ss = String(value.second).padStart(2, '0');
|
|
22
|
+
return `${hh}:${mm}:${ss}`;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return `${hh}:${mm}`;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// Setter: parse string into Time depending on step
|
|
29
|
+
function set(raw: string) {
|
|
30
|
+
if (!raw) {
|
|
31
|
+
value = undefined;
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const parts = raw.split(':').map(Number);
|
|
35
|
+
if (parts.length === 2) {
|
|
36
|
+
const [hh, mm] = parts;
|
|
37
|
+
value = new Time(hh, mm);
|
|
38
|
+
} else if (parts.length === 3) {
|
|
39
|
+
const [hh, mm, ss] = parts;
|
|
40
|
+
value = new Time(hh, mm, ss);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
12
43
|
</script>
|
|
13
44
|
|
|
14
45
|
<FieldWrapper {...fieldProps}>
|
|
15
46
|
{#snippet formElem(props)}
|
|
16
|
-
<Input type="time" bind:value class={className} {step} {...props} />
|
|
47
|
+
<Input type="time" bind:value={get, set} class={className} {step} {...props} />
|
|
17
48
|
{/snippet}
|
|
18
49
|
</FieldWrapper>
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { FormPath } from 'sveltekit-superforms';
|
|
2
2
|
import { type FieldWrapperProps } from '../FieldWrapper.svelte';
|
|
3
|
-
|
|
3
|
+
import { Time } from '@internationalized/date';
|
|
4
|
+
declare function $$render<T extends Record<string, unknown>, U extends FormPath<T>, M>(): {
|
|
4
5
|
props: FieldWrapperProps<T, U, M> & {
|
|
5
|
-
value?:
|
|
6
|
+
value?: Time;
|
|
6
7
|
class?: string;
|
|
7
8
|
step?: HTMLInputElement["step"];
|
|
8
9
|
};
|
|
@@ -11,20 +12,20 @@ declare function $$render<V, T extends Record<string, unknown>, U extends FormPa
|
|
|
11
12
|
slots: {};
|
|
12
13
|
events: {};
|
|
13
14
|
};
|
|
14
|
-
declare class __sveltets_Render<
|
|
15
|
-
props(): ReturnType<typeof $$render<
|
|
16
|
-
events(): ReturnType<typeof $$render<
|
|
17
|
-
slots(): ReturnType<typeof $$render<
|
|
15
|
+
declare class __sveltets_Render<T extends Record<string, unknown>, U extends FormPath<T>, M> {
|
|
16
|
+
props(): ReturnType<typeof $$render<T, U, M>>['props'];
|
|
17
|
+
events(): ReturnType<typeof $$render<T, U, M>>['events'];
|
|
18
|
+
slots(): ReturnType<typeof $$render<T, U, M>>['slots'];
|
|
18
19
|
bindings(): "value";
|
|
19
20
|
exports(): {};
|
|
20
21
|
}
|
|
21
22
|
interface $$IsomorphicComponent {
|
|
22
|
-
new <
|
|
23
|
-
$$bindings?: ReturnType<__sveltets_Render<
|
|
24
|
-
} & ReturnType<__sveltets_Render<
|
|
25
|
-
<
|
|
26
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any, any, any
|
|
23
|
+
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']>> & {
|
|
24
|
+
$$bindings?: ReturnType<__sveltets_Render<T, U, M>['bindings']>;
|
|
25
|
+
} & ReturnType<__sveltets_Render<T, U, M>['exports']>;
|
|
26
|
+
<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']>;
|
|
27
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any, any, any>['bindings']>;
|
|
27
28
|
}
|
|
28
29
|
declare const TimeField: $$IsomorphicComponent;
|
|
29
|
-
type TimeField<
|
|
30
|
+
type TimeField<T extends Record<string, unknown>, U extends FormPath<T>, M> = InstanceType<typeof TimeField<T, U, M>>;
|
|
30
31
|
export default TimeField;
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
...restProps
|
|
55
55
|
}: ButtonProps = $props();
|
|
56
56
|
|
|
57
|
-
let pointer = disabled ? '' : 'cursor-pointer';
|
|
57
|
+
let pointer = $derived(disabled ? '' : 'cursor-pointer');
|
|
58
58
|
</script>
|
|
59
59
|
|
|
60
60
|
<!-- eslint-disable svelte/no-navigation-without-resolve -->
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
<a
|
|
63
63
|
bind:this={ref}
|
|
64
64
|
data-slot="button"
|
|
65
|
-
class={cn(buttonVariants({ variant, size }),
|
|
65
|
+
class={cn(buttonVariants({ variant, size }), pointer, className)}
|
|
66
66
|
href={disabled ? undefined : href}
|
|
67
67
|
aria-disabled={disabled}
|
|
68
68
|
role={disabled ? 'link' : undefined}
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
<button
|
|
76
76
|
bind:this={ref}
|
|
77
77
|
data-slot="button"
|
|
78
|
-
class={cn(buttonVariants({ variant, size }),
|
|
78
|
+
class={cn(buttonVariants({ variant, size }), pointer, className)}
|
|
79
79
|
{type}
|
|
80
80
|
{disabled}
|
|
81
81
|
{...restProps}
|