import { defineWebComponent } from './define'; import { FileUpload, FileUploadTrigger } from '../components/file-upload'; import { Upload } from 'lucide-solid'; interface Props extends Record { /** Allow selecting multiple files (default true). */ multiple?: boolean; /** `accept` attribute for the file picker (e.g. `image/*`). */ accept?: string; /** Disable the dropzone — no clicking, no drag-and-drop. */ disabled?: boolean; /** Default dropzone label (overridable via the default slot). */ label?: string; } /** Events fired by ``. */ interface Events { /** Files were picked or dropped. */ 'kc-files-added': { files: File[] }; } /** * `` — a click/drag-drop dropzone. Emits `filesadded`. The * default dropzone label can be replaced with your own markup via the default * `` (a "Route 2" custom-content slot). */ defineWebComponent('kc-file-upload', { multiple: true, accept: undefined, disabled: false, label: 'Click or drop files to upload', }, (props, { dispatch, flag }) => ( dispatch('kc-files-added', { files })} > {props.label} ));