@optimum-intelligence/opti-ui 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/README.md +9 -7
  2. package/dist/components/app-shell/AppShell.d.ts +75 -6
  3. package/dist/components/app-shell/AppShell.js +670 -185
  4. package/dist/components/app-shell/AppShell.js.map +1 -1
  5. package/dist/components/badge/Badge.d.ts +2 -4
  6. package/dist/components/badge/Badge.js +12 -29
  7. package/dist/components/badge/Badge.js.map +1 -1
  8. package/dist/components/calendar/Calendar.d.ts +19 -8
  9. package/dist/components/calendar/Calendar.js +285 -212
  10. package/dist/components/calendar/Calendar.js.map +1 -1
  11. package/dist/components/calendar/DateConfig.d.ts +37 -0
  12. package/dist/components/calendar/DateConfig.js +75 -0
  13. package/dist/components/calendar/DateConfig.js.map +1 -0
  14. package/dist/components/calendar/date-utils.d.ts +41 -6
  15. package/dist/components/calendar/date-utils.js +119 -20
  16. package/dist/components/calendar/date-utils.js.map +1 -1
  17. package/dist/components/data-table/DataTableContent.js +3 -3
  18. package/dist/components/data-table/DataTableContent.js.map +1 -1
  19. package/dist/components/date-picker/DatePicker.d.ts +33 -10
  20. package/dist/components/date-picker/DatePicker.js +315 -279
  21. package/dist/components/date-picker/DatePicker.js.map +1 -1
  22. package/dist/components/date-picker/DateRangePicker.d.ts +11 -4
  23. package/dist/components/date-picker/DateRangePicker.js +240 -206
  24. package/dist/components/date-picker/DateRangePicker.js.map +1 -1
  25. package/dist/components/date-picker/PickerField.js +1 -1
  26. package/dist/components/date-picker/PickerField.js.map +1 -1
  27. package/dist/components/table/Table.d.ts +1 -1
  28. package/dist/components/table/Table.js +2 -2
  29. package/dist/components/table/Table.js.map +1 -1
  30. package/dist/components.json +2023 -1864
  31. package/dist/index.d.ts +1 -0
  32. package/dist/index.js +4 -3
  33. package/dist/llms-full.txt +869 -752
  34. package/dist/llms.txt +37 -35
  35. package/dist/opti-ui.css +171 -81
  36. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.js","names":["React","Button","Calendar","CalendarLabels","CalendarProps","datePart","formatDate","pad","timePart","todayIso","PickerField","useOpenState","PickerFieldProps","DatePickerLabels","today","clear","done","time","hours","minutes","seconds","defaultLabels","Omit","PickerProps","Pick","value","defaultValue","onValueChange","min","max","name","clearable","formatValue","ReactNode","labels","Partial","withinBounds","timeOptions","limit","step","current","options","Array","from","length","Math","ceil","_","index","includes","sort","a","b","TimeFieldProps","onChange","TimeField","t0","$","_c","t1","t2","t3","t4","t5","t6","t7","t8","t9","split","map","_temp","undefined","withSeconds","parts","label","part_0","part","event","next","item","position","Number","target","join","_temp2","option","floor","Picker","defaultMonth","field","isDateDisabled","locale","mode","placeholder","weekStartsOn","defaultTime","text","withTime","inner","setInner","useState","date","open","setOpen","bounded","commit","t10","next_0","t11","t12","t13","t14","next_1","t15","t16","Boolean","t17","t18","t19","required","t20","t21","t22","DatePickerProps","DatePicker","props","DateTimePickerProps","DateTimePicker","_c"],"sources":["../../../src/components/date-picker/DatePicker.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Button } from '../button/Button';\nimport { Calendar, type CalendarLabels, type CalendarProps } from '../calendar/Calendar';\nimport { datePart, formatDate, pad, timePart, todayIso } from '../calendar/date-utils';\nimport { PickerField, useOpenState, type PickerFieldProps } from './PickerField';\n\nexport interface DatePickerLabels extends CalendarLabels {\n today: string;\n clear: string;\n done: string;\n time: string;\n hours: string;\n minutes: string;\n seconds: string;\n}\n\nconst defaultLabels: Omit<DatePickerLabels, keyof CalendarLabels> = {\n today: 'Today',\n clear: 'Clear',\n done: 'Done',\n time: 'Time',\n hours: 'Hours',\n minutes: 'Minutes',\n seconds: 'Seconds',\n};\n\ninterface PickerProps\n extends PickerFieldProps,\n Pick<CalendarProps, 'isDateDisabled' | 'defaultMonth' | 'locale' | 'weekStartsOn'> {\n value?: string | null;\n defaultValue?: string | null;\n /** Called with the new value, or `null` when cleared. */\n onValueChange?: (value: string | null) => void;\n /** Earliest allowed value. */\n min?: string;\n /** Latest allowed value. */\n max?: string;\n /** Submits the value with a form under this name. */\n name?: string;\n /** Show the Clear action. Defaults to `true` unless `required`. */\n clearable?: boolean;\n /** Custom display text for the selected value. */\n formatValue?: (value: string) => React.ReactNode;\n /** Override texts for localisation. */\n labels?: Partial<DatePickerLabels>;\n}\n\nfunction withinBounds(value: string, min?: string, max?: string): string {\n if (min && value < min) return min;\n if (max && value > max) return max;\n return value;\n}\n\n/** 0, `step`, 2 × `step`… below `limit`, plus `current` when it falls between steps. */\nfunction timeOptions(limit: number, step: number, current: number): number[] {\n const options = Array.from({ length: Math.ceil(limit / step) }, (_, index) => index * step);\n return options.includes(current) ? options : [...options, current].sort((a, b) => a - b);\n}\n\ninterface TimeFieldProps {\n /** `\"14:30\"` or `\"14:30:05\"`. */\n value: string;\n /** Granularity in seconds. */\n step: number;\n labels: Pick<DatePickerLabels, 'time' | 'hours' | 'minutes' | 'seconds'>;\n onChange: (value: string) => void;\n}\n\n/** Hour, minute and (below one-minute steps) second lists: unlike a native time input, always 24-hour. */\nfunction TimeField({ value, step, labels, onChange }: TimeFieldProps) {\n const [hours = 0, minutes = 0, seconds = 0] = value.split(':').map((part) => Math.floor(Number(part)) || 0);\n const withSeconds = step % 60 !== 0 || value.length > 5;\n const parts = [\n { label: labels.hours, value: hours, options: timeOptions(24, step % 3600 === 0 ? Math.min(step / 3600, 24) : 1, hours) },\n { label: labels.minutes, value: minutes, options: timeOptions(60, step % 60 === 0 && step < 3600 ? step / 60 : 1, minutes) },\n ...(withSeconds ? [{ label: labels.seconds, value: seconds, options: timeOptions(60, step < 60 ? step : 1, seconds) }] : []),\n ];\n return (\n <div role=\"group\" aria-label={labels.time} className=\"oui-date-picker__time\">\n <span>{labels.time}</span>\n <div className=\"oui-date-picker__time-parts\">\n {parts.map((part, index) => (\n <React.Fragment key={part.label}>\n {index > 0 && <span aria-hidden=\"true\">:</span>}\n <select\n className=\"oui-input\"\n data-size=\"sm\"\n aria-label={part.label}\n value={part.value}\n onChange={(event) => {\n const next = parts.map((item, position) => pad(position === index ? Number(event.target.value) : item.value));\n onChange(next.join(':'));\n }}\n >\n {part.options.map((option) => (\n <option key={option} value={option}>\n {pad(option)}\n </option>\n ))}\n </select>\n </React.Fragment>\n ))}\n </div>\n </div>\n );\n}\n\nfunction Picker({\n mode,\n step,\n defaultTime = '00:00',\n value,\n defaultValue = null,\n onValueChange,\n min,\n max,\n isDateDisabled,\n defaultMonth,\n locale,\n weekStartsOn,\n name,\n placeholder,\n clearable,\n formatValue,\n labels,\n ...field\n}: PickerProps & { mode: 'date' | 'datetime'; step?: number; defaultTime?: string }) {\n const text = { ...defaultLabels, ...labels };\n const withTime = mode === 'datetime';\n const [inner, setInner] = React.useState(defaultValue);\n const current = (value === undefined ? inner : value) || null;\n const date = datePart(current);\n const time = withTime ? (timePart(current) ?? defaultTime) : null;\n const [open, setOpen] = useOpenState(field);\n\n const commit = (next: string | null) => {\n const bounded = next === null ? null : withinBounds(next, min, max);\n setInner(bounded);\n onValueChange?.(bounded);\n };\n\n return (\n <PickerField\n {...field}\n open={open}\n onOpenChange={setOpen}\n placeholder={placeholder ?? (withTime ? 'Select date and time' : 'Select date')}\n display={date && current ? (formatValue?.(current) ?? formatDate(withTime ? current : date)) : null}\n inputs={name && <input type=\"hidden\" name={name} value={current ?? ''} />}\n >\n <Calendar\n value={date}\n onValueChange={(next) => {\n commit(withTime ? `${next}T${time}` : next);\n if (!withTime) setOpen(false);\n }}\n min={datePart(min) ?? undefined}\n max={datePart(max) ?? undefined}\n isDateDisabled={isDateDisabled}\n defaultMonth={defaultMonth}\n locale={locale}\n weekStartsOn={weekStartsOn}\n labels={labels}\n />\n {time !== null && (\n <TimeField\n value={time}\n step={step && step > 0 ? Math.floor(step) || 1 : 60}\n labels={text}\n onChange={(next) =>\n commit(`${date ?? withinBounds(todayIso(), datePart(min) ?? undefined, datePart(max) ?? undefined)}T${next}`)\n }\n />\n )}\n <div className=\"oui-date-picker__footer\">\n <Button\n size=\"sm\"\n variant=\"ghost\"\n shape=\"rounded\"\n disabled={Boolean(isDateDisabled?.(todayIso()))}\n onClick={() => {\n const today = todayIso();\n commit(withTime ? `${today}T${time}` : today);\n if (!withTime) setOpen(false);\n }}\n >\n {text.today}\n </Button>\n {(clearable ?? !field.required) && (\n <Button\n size=\"sm\"\n variant=\"ghost\"\n shape=\"rounded\"\n disabled={!current}\n onClick={() => {\n commit(null);\n setOpen(false);\n }}\n >\n {text.clear}\n </Button>\n )}\n {withTime && (\n <Button size=\"sm\" shape=\"rounded\" className=\"oui-date-picker__done\" onClick={() => setOpen(false)}>\n {text.done}\n </Button>\n )}\n </div>\n </PickerField>\n );\n}\n\nexport interface DatePickerProps extends PickerProps {}\n\n/**\n * Date field with a calendar popover. Values are ISO dates (`\"2026-03-09\"`),\n * the same format as `<input type=\"date\">`, and are shown the same way.\n */\nexport function DatePicker(props: DatePickerProps) {\n return <Picker mode=\"date\" {...props} />;\n}\n\nexport interface DateTimePickerProps extends PickerProps {\n /** Granularity of the time input in seconds (60 = minutes, 1 = seconds). */\n step?: number;\n /** Time used when a day is picked before any time is set. */\n defaultTime?: string;\n}\n\n/**\n * Date and time field. Values are local ISO date-times (`\"2026-03-09T14:30\"`),\n * the same format as `<input type=\"datetime-local\">`, shown as `2026-03-09 14:30:00`\n * on a 24-hour clock whatever the locale.\n */\nexport function DateTimePicker(props: DateTimePickerProps) {\n return <Picker mode=\"datetime\" {...props} />;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"DatePicker.js","names":["React","Button","Calendar","CalendarLabels","CalendarProps","browserTimeZone","datePart","formatDate","hasTime","pad","toInstant","toWall","todayIso","truncate","DateGranularity","useDateConfig","PickerField","useOpenState","PickerFieldProps","DatePickerLabels","today","clear","done","time","hours","minutes","seconds","defaultLabels","Omit","PickerProps","Pick","value","defaultValue","onValueChange","min","max","name","clearable","granularity","format","timeZone","formatValue","ReactNode","labels","Partial","withinBounds","timeOptions","limit","step","current","options","Array","from","length","Math","ceil","_","index","includes","sort","a","b","TimeFieldProps","units","onChange","TimeField","t0","$","_c","t1","t2","t3","t4","t5","t6","t7","t8","t9","split","map","_temp","undefined","parts","label","slice","part_0","part","event","next","item","position","Number","target","join","_temp2","option","floor","placeholders","Record","year","month","day","hour","minute","second","Picker","defaultMonth","field","isDateDisabled","localeProp","placeholder","weekStartsOn","defaultTime","locale","text","config","zone","withTime","inner","setInner","useState","wall","date","lower","upper","open","setOpen","commit","cut","stored","T0","formats","T1","next_0","t10","t11","t12","t13","next_1","t14","t15","Boolean","t16","t17","t18","required","t19","t20","t21","DatePickerProps","DatePicker","props","DateTimePickerProps","DateTimePicker","unit","_c"],"sources":["../../../src/components/date-picker/DatePicker.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Button } from '../button/Button';\nimport { Calendar, type CalendarLabels, type CalendarProps } from '../calendar/Calendar';\nimport {\n browserTimeZone,\n datePart,\n formatDate,\n hasTime,\n pad,\n toInstant,\n toWall,\n todayIso,\n truncate,\n type DateGranularity,\n} from '../calendar/date-utils';\nimport { useDateConfig } from '../calendar/DateConfig';\nimport { PickerField, useOpenState, type PickerFieldProps } from './PickerField';\n\nexport interface DatePickerLabels extends CalendarLabels {\n today: string;\n clear: string;\n done: string;\n time: string;\n hours: string;\n minutes: string;\n seconds: string;\n}\n\nconst defaultLabels: Omit<DatePickerLabels, keyof CalendarLabels> = {\n today: 'Today',\n clear: 'Clear',\n done: 'Done',\n time: 'Time',\n hours: 'Hours',\n minutes: 'Minutes',\n seconds: 'Seconds',\n};\n\ninterface PickerProps\n extends PickerFieldProps,\n Pick<CalendarProps, 'isDateDisabled' | 'defaultMonth' | 'locale' | 'weekStartsOn'> {\n value?: string | null;\n defaultValue?: string | null;\n /** Called with the new value, or `null` when cleared. */\n onValueChange?: (value: string | null) => void;\n /** Earliest allowed value. */\n min?: string;\n /** Latest allowed value. */\n max?: string;\n /** Submits the value with a form under this name. */\n name?: string;\n /** Show the Clear action. Defaults to `true` unless `required`. */\n clearable?: boolean;\n /** What the value holds and which picker opens: a year or month grid, a day calendar, or a calendar plus time fields down to the hour, minute or second. The value is cut down to this unit. */\n granularity?: DateGranularity;\n /** Display pattern, e.g. `\"DD.MM.YYYY\"` or `\"MMMM YYYY\"` (tokens as in `formatDate`). Defaults to `DateConfigProvider` formats, then an ISO-style pattern for the granularity. */\n format?: string;\n /** IANA zone (`\"Europe/Budapest\"`) that date-times are shown and edited in. Defaults to `DateConfigProvider`, then the browser's. Ignored for year, month and day granularities. */\n timeZone?: string;\n /** Custom display text for the selected value. Wins over `format`. */\n formatValue?: (value: string) => React.ReactNode;\n /** Override texts for localisation. */\n labels?: Partial<DatePickerLabels>;\n}\n\nfunction withinBounds(value: string, min?: string, max?: string): string {\n if (min && value < min) return min;\n if (max && value > max) return max;\n return value;\n}\n\n/** 0, `step`, 2 × `step`… below `limit`, plus `current` when it falls between steps. */\nfunction timeOptions(limit: number, step: number, current: number): number[] {\n const options = Array.from({ length: Math.ceil(limit / step) }, (_, index) => index * step);\n return options.includes(current) ? options : [...options, current].sort((a, b) => a - b);\n}\n\ninterface TimeFieldProps {\n /** `\"14:30:05\"`. */\n value: string;\n /** Option spacing in seconds. */\n step: number;\n /** Lists shown: hours; hours and minutes; or all three. */\n units: 1 | 2 | 3;\n labels: Pick<DatePickerLabels, 'time' | 'hours' | 'minutes' | 'seconds'>;\n onChange: (value: string) => void;\n}\n\n/** Hour, minute and second lists, down to the picker's granularity: unlike a native time input, always 24-hour. */\nfunction TimeField({ value, step, units, labels, onChange }: TimeFieldProps) {\n const [hours = 0, minutes = 0, seconds = 0] = value.split(':').map((part) => Math.floor(Number(part)) || 0);\n const parts = [\n { label: labels.hours, value: hours, options: timeOptions(24, step % 3600 === 0 ? Math.min(step / 3600, 24) : 1, hours) },\n { label: labels.minutes, value: minutes, options: timeOptions(60, step % 60 === 0 && step < 3600 ? step / 60 : 1, minutes) },\n { label: labels.seconds, value: seconds, options: timeOptions(60, step < 60 ? step : 1, seconds) },\n ].slice(0, units);\n return (\n <div role=\"group\" aria-label={labels.time} className=\"oui-date-picker__time\">\n <span>{labels.time}</span>\n <div className=\"oui-date-picker__time-parts\">\n {parts.map((part, index) => (\n <React.Fragment key={part.label}>\n {index > 0 && <span aria-hidden=\"true\">:</span>}\n <select\n className=\"oui-input\"\n data-size=\"sm\"\n aria-label={part.label}\n value={part.value}\n onChange={(event) => {\n const next = parts.map((item, position) => pad(position === index ? Number(event.target.value) : item.value));\n onChange([...next, '00', '00'].slice(0, 3).join(':'));\n }}\n >\n {part.options.map((option) => (\n <option key={option} value={option}>\n {pad(option)}\n </option>\n ))}\n </select>\n </React.Fragment>\n ))}\n </div>\n </div>\n );\n}\n\nconst placeholders: Record<DateGranularity, string> = {\n year: 'Select year',\n month: 'Select month',\n day: 'Select date',\n hour: 'Select date and time',\n minute: 'Select date and time',\n second: 'Select date and time',\n};\n\nfunction Picker({\n granularity,\n step,\n defaultTime = '00:00',\n value,\n defaultValue = null,\n onValueChange,\n min,\n max,\n isDateDisabled,\n defaultMonth,\n locale: localeProp,\n weekStartsOn,\n name,\n placeholder,\n clearable,\n format,\n timeZone,\n formatValue,\n labels,\n ...field\n}: PickerProps & { granularity: DateGranularity; step?: number; defaultTime?: string }) {\n const text = { ...defaultLabels, ...labels };\n const config = useDateConfig();\n const zone = timeZone ?? config.timeZone ?? browserTimeZone();\n const locale = localeProp ?? config.locale;\n const withTime = hasTime(granularity);\n const [inner, setInner] = React.useState(defaultValue);\n const current = (value === undefined ? inner : value) || null;\n // Editing happens on the wall clock in `zone`; only commit turns it back into an instant.\n const wall = toWall(current, zone);\n const date = datePart(wall);\n const time = withTime ? (wall && wall.length > 10 ? wall.slice(11) : truncate(`2000-01-01T${defaultTime}`, 'second').slice(11)) : null;\n const [lower, upper] = [toWall(min, zone) ?? undefined, toWall(max, zone) ?? undefined];\n const [open, setOpen] = useOpenState(field);\n\n const commit = (next: string | null) => {\n const cut = next === null ? null : truncate(withinBounds(next, lower, upper), granularity);\n const stored = cut && withTime ? toInstant(cut, zone) : cut;\n setInner(stored);\n onValueChange?.(stored);\n };\n\n return (\n <PickerField\n {...field}\n open={open}\n onOpenChange={setOpen}\n placeholder={placeholder ?? placeholders[granularity]}\n display={\n date && current\n ? (formatValue?.(current) ??\n formatDate(current, { format: format ?? config.formats?.[granularity], granularity, timeZone: zone, locale }))\n : null\n }\n inputs={name && <input type=\"hidden\" name={name} value={current ?? ''} />}\n >\n <Calendar\n value={date}\n granularity={withTime ? 'day' : (granularity as 'year' | 'month' | 'day')}\n onValueChange={(next) => {\n commit(withTime ? `${next}T${time}` : next);\n if (!withTime) setOpen(false);\n }}\n min={datePart(lower) ?? undefined}\n max={datePart(upper) ?? undefined}\n isDateDisabled={isDateDisabled}\n defaultMonth={defaultMonth}\n locale={locale}\n weekStartsOn={weekStartsOn}\n labels={labels}\n />\n {time !== null && (\n <TimeField\n value={time}\n step={step && step > 0 ? Math.floor(step) || 1 : 60}\n units={granularity === 'hour' ? 1 : granularity === 'minute' ? 2 : 3}\n labels={text}\n onChange={(next) =>\n commit(`${date ?? withinBounds(todayIso(zone), datePart(lower) ?? undefined, datePart(upper) ?? undefined)}T${next}`)\n }\n />\n )}\n <div className=\"oui-date-picker__footer\">\n <Button\n size=\"sm\"\n variant=\"ghost\"\n shape=\"rounded\"\n disabled={Boolean(isDateDisabled?.(todayIso(zone)))}\n onClick={() => {\n const today = todayIso(zone);\n commit(withTime ? `${today}T${time}` : today);\n if (!withTime) setOpen(false);\n }}\n >\n {text.today}\n </Button>\n {(clearable ?? !field.required) && (\n <Button\n size=\"sm\"\n variant=\"ghost\"\n shape=\"rounded\"\n disabled={!current}\n onClick={() => {\n commit(null);\n setOpen(false);\n }}\n >\n {text.clear}\n </Button>\n )}\n {withTime && (\n <Button size=\"sm\" shape=\"rounded\" className=\"oui-date-picker__done\" onClick={() => setOpen(false)}>\n {text.done}\n </Button>\n )}\n </div>\n </PickerField>\n );\n}\n\nexport interface DatePickerProps extends PickerProps {}\n\n/**\n * Date field with a calendar popover. Day values are ISO dates (`\"2026-03-09\"`),\n * the same format as `<input type=\"date\">`. `granularity=\"month\"` or `\"year\"` opens a\n * month or year grid and stores the period's first day (`\"2026-03-01\"`); a time\n * granularity behaves like `DateTimePicker`.\n *\n * @example\n * <DatePicker label=\"Delivery date\" value={date} onValueChange={setDate} />\n * <DatePicker label=\"Billing month\" granularity=\"month\" format=\"MMMM YYYY\" />\n */\nexport function DatePicker({ granularity = 'day', ...props }: DatePickerProps) {\n return <Picker granularity={granularity} {...props} />;\n}\n\nexport interface DateTimePickerProps extends PickerProps {\n /** Spacing of the time options in seconds (60 = every minute, 900 = quarter hours, 1 = every second). */\n step?: number;\n /** Time (`\"09:00\"`) used when a day is picked before any time is set. */\n defaultTime?: string;\n /**\n * Smallest unit shown and stored: `hour`, `minute` or `second`. When omitted, `second`\n * if `step` is not a whole number of minutes, otherwise `minute`.\n * @default 'minute'\n */\n granularity?: 'hour' | 'minute' | 'second';\n}\n\n/**\n * Date and time field. Values are UTC instants (`\"2026-03-09T13:30:00Z\"`) shown and\n * edited in `timeZone` (the browser's by default) on a 24-hour clock, as\n * `2026-03-09 14:30`. Values without an offset (`\"2026-03-09T14:30\"`) are read as\n * wall-clock time in `timeZone`.\n *\n * @example\n * <DateTimePicker label=\"Departure\" value={slot} onValueChange={setSlot} timeZone=\"Europe/Budapest\" />\n */\nexport function DateTimePicker({ granularity, ...props }: DateTimePickerProps) {\n const unit = granularity ?? (props.step && props.step % 60 !== 0 ? 'second' : 'minute');\n return <Picker granularity={unit} {...props} />;\n}\n"],"mappings":"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"}
@@ -9,7 +9,7 @@ export interface DateRangePreset {
9
9
  label: React.ReactNode;
10
10
  value: DateRange;
11
11
  }
12
- export interface DateRangePickerProps extends PickerFieldProps, Pick<RangeCalendarProps, 'isDateDisabled' | 'defaultMonth' | 'locale' | 'weekStartsOn' | 'numberOfMonths'> {
12
+ export interface DateRangePickerProps extends PickerFieldProps, Pick<RangeCalendarProps, 'isDateDisabled' | 'defaultMonth' | 'locale' | 'weekStartsOn' | 'numberOfMonths' | 'granularity'> {
13
13
  /** Selected days as ISO dates; both ends are inclusive. */
14
14
  value?: DateRange | null;
15
15
  /** Initially selected range when uncontrolled. */
@@ -28,13 +28,20 @@ export interface DateRangePickerProps extends PickerFieldProps, Pick<RangeCalend
28
28
  endName?: string;
29
29
  /** Show the Clear action. Defaults to `true` unless `required`. */
30
30
  clearable?: boolean;
31
- /** Custom display text for the selected range. */
31
+ /** Display pattern for each end, e.g. `"DD.MM.YYYY"` (tokens as in `formatDate`). Defaults to `DateConfigProvider` formats, then an ISO-style pattern for the granularity. */
32
+ format?: string;
33
+ /** Custom display text for the selected range. Wins over `format`. */
32
34
  formatValue?: (value: DateRange) => React.ReactNode;
33
35
  /** Override texts for localisation. */
34
36
  labels?: Partial<DateRangePickerLabels>;
35
37
  }
36
38
  /**
37
39
  * Date range field with a calendar popover and optional presets. Values are
38
- * `{ start, end }` ISO dates (`"2026-03-09"`), both inclusive.
40
+ * `{ start, end }` ISO dates (`"2026-03-09"`), both inclusive. With
41
+ * `granularity="month"` or `"year"` it picks whole months or years, and each end
42
+ * is the first day of its period.
43
+ *
44
+ * @example
45
+ * <DateRangePicker label="Period" value={period} onValueChange={setPeriod} presets={presets} />
39
46
  */
40
- export declare function DateRangePicker({ value, defaultValue, onValueChange, min, max, isDateDisabled, defaultMonth, locale, weekStartsOn, numberOfMonths, presets, startName, endName, placeholder, clearable, formatValue, labels, contentProps, ...field }: DateRangePickerProps): React.JSX.Element;
47
+ export declare function DateRangePicker({ value, defaultValue, onValueChange, min, max, isDateDisabled, defaultMonth, locale, weekStartsOn, numberOfMonths, granularity, presets, startName, endName, placeholder, clearable, format, formatValue, labels, contentProps, ...field }: DateRangePickerProps): React.JSX.Element;