import type { CustomDatetimeFormat } from "./CustomDatetimeFormat.js"; import type { FormatUnit } from "./FormatUnit.js"; /** * A datetime column's `date_format` in its `Custom` form: per-part * `Intl.DateTimeFormatOptions` overrides, discriminated from the `Simple` * preset form by the required `format: "custom"` key. Each part is a * [`CustomDatetimeFormat`] variant valid for that `Intl` option; * `"disabled"` omits the part from the formatted output entirely. */ export type CustomDatetimeStyleConfig = { format: FormatUnit; /** * An IANA time zone name (e.g. `"America/New_York"`); defaults to the * browser's local time zone. */ timeZone?: string | null; /** * Sub-second digits to display, 0-3 (0 = none). */ fractionalSecondDigits?: number; /** * Defaults to `"numeric"`. */ second?: CustomDatetimeFormat; /** * Defaults to `"numeric"`. */ minute?: CustomDatetimeFormat; /** * Defaults to `"numeric"`. */ hour?: CustomDatetimeFormat; /** * Defaults to `"numeric"`. */ day?: CustomDatetimeFormat; /** * A name form (`"long"`/`"short"`/`"narrow"`); defaults to * `"disabled"` (weekday not shown). */ weekday?: CustomDatetimeFormat; /** * Numeric or name form; defaults to `"numeric"`. */ month?: CustomDatetimeFormat; /** * Defaults to `"2-digit"`. */ year?: CustomDatetimeFormat; /** * 12-hour clock; defaults to `true`. */ hour12?: boolean; };