import { SvelteComponentTyped } from "svelte"; import type { SvelteHTMLElements } from "svelte/elements"; type $RestProps = SvelteHTMLElements["div"]; type $Props = { /** * Specify the accepted file types. * @default [] */ accept?: ReadonlyArray; /** * Obtain a reference to the uploaded files. * @default [] */ files?: ReadonlyArray; /** * Set to `true` to allow multiple files * @default false */ multiple?: boolean; /** * Override the default behavior of validating uploaded files. * By default, files are not validated. */ validateFiles?: (files: ReadonlyArray) => ReadonlyArray; /** * Specify the label text * @default "Add file" */ labelText?: string; /** * Specify the `role` attribute of the drop container * @default "button" */ role?: string; /** * Set to `true` to disable the input * @default false */ disabled?: boolean; /** * Specify `tabindex` attribute * @default "0" */ tabindex?: number | string | undefined; /** * Set an id for the input element * @default `ccs-${Math.random().toString(36)}` */ id?: string; /** * Specify a name attribute for the input * @default "" */ name?: string; /** * Obtain a reference to the input HTML element. * @default null */ ref?: null | HTMLInputElement; labelChildren?: (this: void) => void; [key: `data-${string}`]: unknown; }; export type FileUploaderDropContainerProps = Omit<$RestProps, keyof $Props> & $Props; export default class FileUploaderDropContainer extends SvelteComponentTyped< FileUploaderDropContainerProps, { add: CustomEvent>; change: CustomEvent>; click: WindowEventMap["click"]; dragleave: WindowEventMap["dragleave"]; dragover: WindowEventMap["dragover"]; drop: WindowEventMap["drop"]; keydown: WindowEventMap["keydown"]; rejected: CustomEvent>; }, { labelChildren: Record } > {}