UNPKG

alinea

Version:
21 lines (20 loc) 1.32 kB
import type { WithoutLabel } from 'alinea/core/Field'; import type { Label } from 'alinea/core/Label'; import type { Type } from 'alinea/core/Type'; import type { ListRow } from 'alinea/core/shape/ListShape'; import { type FileLink } from 'alinea/field/link/FileLink'; import { type LinkField, type LinkFieldOptions, type LinksField } from 'alinea/field/link/LinkField'; import { type EntryPickerConditions } from 'alinea/picker/entry'; import type { EntryReference } from 'alinea/picker/entry/EntryReference'; import { type UrlReference } from 'alinea/picker/url'; import { EntryLink } from './EntryLink.js'; import type { UrlLink } from './UrlLink.js'; export type Link<InferredFields> = EntryLink<InferredFields> | UrlLink<InferredFields> | FileLink<InferredFields>; export interface LinkOptions<Definition, Row> extends LinkFieldOptions<Row>, EntryPickerConditions { fields?: Definition | Type<Definition>; } export type LinkRow = (EntryReference | UrlReference) & ListRow; export declare function link<Fields>(label: Label, options?: WithoutLabel<LinkOptions<Fields, LinkRow>>): LinkField<LinkRow, Link<Type.Infer<Fields>>>; export declare namespace link { function multiple<Fields>(label: Label, options?: WithoutLabel<LinkOptions<Fields, Array<LinkRow>>>): LinksField<LinkRow, Link<Type.Infer<Fields>>>; }