diff --git a/src/lib/TimeInput.svelte b/src/lib/TimeInput.svelte index b96bd59..1add0d3 100644 --- a/src/lib/TimeInput.svelte +++ b/src/lib/TimeInput.svelte @@ -4,6 +4,19 @@ import StyledRawInput from './StyledRawInput.svelte'; import { onMount } from 'svelte'; import moment from 'moment'; + import type { ClassValue } from 'svelte/elements'; + import { generateIdentifier } from './util.js'; + + interface Props { + name?: string; + label?: string; + value?: string; + formattedValue?: string; + required?: boolean; + invalidMessage?: string; + showConfirm?: boolean; + class?: ClassValue | null | undefined; + } let { name, @@ -12,17 +25,11 @@ formattedValue = $bindable(''), required, invalidMessage = 'Please select a time', - showConfirm = false - }: { - name: string; - label?: string; - value?: string; - formattedValue?: string; - required?: boolean; - invalidMessage?: string; - showConfirm?: boolean; - } = $props(); + showConfirm = false, + class: classValue + }: Props = $props(); + const id = $derived(generateIdentifier('time-input', name)); let ampm: 'AM' | 'PM' = $state('AM'); let type: HTMLInputElement['type'] = $state('number'); let valid: boolean = $state(true); @@ -190,14 +197,15 @@ }); -
+
{#if label} - + {/if} (valid = e.detail.valid)} @@ -344,7 +352,7 @@
-