input: add use & focus utilities

This commit is contained in:
Elijah Duffy
2025-07-04 03:17:38 -07:00
parent 604cf0ee0d
commit e6e58ab106
2 changed files with 28 additions and 0 deletions

View File

@@ -14,6 +14,8 @@
type?: HTMLInputElement['type'];
validate?: ValidatorOptions;
invalidMessage?: string;
focus?: boolean;
use?: (node: HTMLInputElement) => void;
ref?: HTMLInputElement | null;
class?: ClassValue | null | undefined;
}
@@ -27,11 +29,17 @@
type,
validate: validateOpts,
invalidMessage = 'Field is required',
focus: focusOnMount = false,
use,
ref = $bindable<HTMLInputElement | null>(null),
class: classValue
}: Props = $props();
let valid: boolean = $state(true);
export const focus = () => {
if (ref) ref.focus();
};
</script>
<div class={['w-full', classValue]}>
@@ -50,6 +58,8 @@
onvalidate={(e) => {
valid = e.detail.valid;
}}
focus={focusOnMount}
{use}
/>
{#if validateOpts}