diff --git a/.changeset/fast-camels-sort.md b/.changeset/fast-camels-sort.md new file mode 100644 index 00000000..b26532d3 --- /dev/null +++ b/.changeset/fast-camels-sort.md @@ -0,0 +1,7 @@ +--- +"@skeletonlabs/skeleton": minor +--- + +feat: Multiple updates to the file drop zone and button feature: +- Added `fileInput` prop which is a reference to the input element. +- Forwarded focus events including `on:focus`, `on:focusin`, and `on:focusout` on the file drop zone. diff --git a/packages/skeleton/src/lib/components/FileButton/FileButton.svelte b/packages/skeleton/src/lib/components/FileButton/FileButton.svelte index 63f0a1bd..4eec0624 100644 --- a/packages/skeleton/src/lib/components/FileButton/FileButton.svelte +++ b/packages/skeleton/src/lib/components/FileButton/FileButton.svelte @@ -8,6 +8,10 @@ * @type {FileList} */ export let files: FileList | undefined = undefined; + /** + * File input reference. + */ + export let fileInput: HTMLInputElement | undefined = undefined; /** * Required. Set a unique name for the file input. * @type {string} @@ -18,11 +22,8 @@ /** Provide a button variant or other class styles. */ export let button: CssClasses = 'btn variant-filled'; - // Local - let elemFileInput: HTMLElement; - function onButtonClick(): void { - elemFileInput.click(); + if (fileInput) fileInput.click(); } function prunedRestProps() { @@ -38,7 +39,7 @@