UNPKG

@jsxtools/aui

Version:

A baseline UI as Mixins, Custom Elements, React Components, etc.

31 lines (30 loc) 1.33 kB
import type { CustomElementConstructor } from "../api/dom.ts"; import type { FilePickerAcceptType } from "../api/show-open-file-picker.ts"; import { DropMixin } from "./drop.ts"; /** A mixin to provide file drop and file picker support to a custom element. */ export declare const FileMixin: <T extends CustomElementConstructor>(Element: T) => T & FileMixin.Constructor; export declare namespace FileMixin { interface Constructor extends CustomElementConstructor<Mixin> { } interface Mixin extends DropMixin.Mixin { files: TransferFile[]; maxSize: number; multiple: boolean; types: FilePickerAcceptType[]; } } export declare class TransferFile extends File { validity: TransferFile.Validity; validityMessage: string; constructor(file: File, validity?: TransferFile.Validity, validityMessage?: string); } export declare namespace TransferFile { interface Validity { /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/rangeOverflow) */ rangeOverflow?: boolean; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/typeMismatch) */ typeMismatch?: boolean; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/valid) */ valid: boolean; } }