/** * Values that are treated as atomic when form-value types are made partial. */ export type BuiltinValue = string | number | boolean | bigint | symbol | null | undefined | Date | RegExp | File | Blob; /** * Recursively makes object properties optional while preserving atomic values, * collections, and arrays. */ export type DeepPartial = TValue extends BuiltinValue | readonly unknown[] | ReadonlyMap | ReadonlySet ? TValue : TValue extends object ? { [TKey in keyof TValue]?: DeepPartial; } : TValue; /** * Describes the partial values collected from an editor form. */ export type EditorValues = DeepPartial; /** Fields explicitly assigned one common value during a batch edit. */ export type BatchChanges = EditorValues;