@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.
- package/README.md +9 -7
- package/dist/components/app-shell/AppShell.d.ts +75 -6
- package/dist/components/app-shell/AppShell.js +670 -185
- package/dist/components/app-shell/AppShell.js.map +1 -1
- package/dist/components/badge/Badge.d.ts +2 -4
- package/dist/components/badge/Badge.js +12 -29
- package/dist/components/badge/Badge.js.map +1 -1
- package/dist/components/calendar/Calendar.d.ts +19 -8
- package/dist/components/calendar/Calendar.js +285 -212
- package/dist/components/calendar/Calendar.js.map +1 -1
- package/dist/components/calendar/DateConfig.d.ts +37 -0
- package/dist/components/calendar/DateConfig.js +75 -0
- package/dist/components/calendar/DateConfig.js.map +1 -0
- package/dist/components/calendar/date-utils.d.ts +41 -6
- package/dist/components/calendar/date-utils.js +119 -20
- package/dist/components/calendar/date-utils.js.map +1 -1
- package/dist/components/data-table/DataTableContent.js +3 -3
- package/dist/components/data-table/DataTableContent.js.map +1 -1
- package/dist/components/date-picker/DatePicker.d.ts +33 -10
- package/dist/components/date-picker/DatePicker.js +315 -279
- package/dist/components/date-picker/DatePicker.js.map +1 -1
- package/dist/components/date-picker/DateRangePicker.d.ts +11 -4
- package/dist/components/date-picker/DateRangePicker.js +240 -206
- package/dist/components/date-picker/DateRangePicker.js.map +1 -1
- package/dist/components/date-picker/PickerField.js +1 -1
- package/dist/components/date-picker/PickerField.js.map +1 -1
- package/dist/components/table/Table.d.ts +1 -1
- package/dist/components/table/Table.js +2 -2
- package/dist/components/table/Table.js.map +1 -1
- package/dist/components.json +2023 -1864
- package/dist/index.d.ts +1 -0
- package/dist/index.js +4 -3
- package/dist/llms-full.txt +869 -752
- package/dist/llms.txt +37 -35
- package/dist/opti-ui.css +171 -81
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-utils.js","names":["DATE","pad","value","length","String","padStart","toTime","match","exec","year","month","day","Number","date","Date","UTC","setUTCFullYear","getUTCMonth","getUTCDate","getTime","fromDate","getUTCFullYear","datePart","time","timePart","formatDate","hours","minutes","seconds","split","slice","formatDateLong","locale","Intl","DateTimeFormat","timeZone","format","toUtcDate","todayIso","now","getFullYear","getMonth","getDate","addDays","amount","setUTCDate","addMonths","setUTCMonth","lastDay","Math","min","startOfMonth","weekday","getUTCDay","monthGrid","weekStartsOn","first","start","Array","from","_","index","clampDate","max","DateRange","end","toRange","a","b","second"],"sources":["../../../src/components/calendar/date-utils.ts"],"sourcesContent":["// Dates are plain ISO strings (\"2026-03-09\"), the same format native date\n// inputs and most APIs use. Arithmetic goes through UTC so it is unaffected by\n// the local time zone and daylight saving.\n\nconst DATE = /^(\\d{4})-(\\d{2})-(\\d{2})/;\n\nexport function pad(value: number, length = 2): string {\n return String(value).padStart(length, '0');\n}\n\n/** `\"2026-03-09…\"` → UTC timestamp, or `null` when the string is not a real date. */\nfunction toTime(value: string | null | undefined): number | null {\n const match = value ? DATE.exec(value) : null;\n if (!match) return null;\n const [year, month, day] = [Number(match[1]), Number(match[2]), Number(match[3])];\n const date = new Date(Date.UTC(year, month - 1, day));\n date.setUTCFullYear(year);\n return date.getUTCMonth() === month - 1 && date.getUTCDate() === day ? date.getTime() : null;\n}\n\nfunction fromDate(date: Date): string {\n return `${pad(date.getUTCFullYear(), 4)}-${pad(date.getUTCMonth() + 1)}-${pad(date.getUTCDate())}`;\n}\n\n/** The date part of an ISO date or date-time string, or `null` when invalid. */\nexport function datePart(value: string | null | undefined): string | null {\n const time = toTime(value);\n return time === null ? null : fromDate(new Date(time));\n}\n\n/** The time part (`\"14:30\"`, `\"14:30:05\"`, …) of an ISO date-time string. */\nexport function timePart(value: string | null | undefined): string | null {\n const match = value ? /T(\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,3})?)?)/.exec(value) : null;\n return match ? match[1] : null;\n}\n\n/** `\"2026-03-09\"`, or `\"2026-03-09 14:30:00\"` for a date-time: the same everywhere, on a 24-hour clock. */\nexport function formatDate(value: string | null | undefined): string {\n const date = datePart(value);\n if (!date) return '';\n const time = timePart(value);\n if (!time) return date;\n const [hours, minutes, seconds = '00'] = time.split(':');\n return `${date} ${hours}:${minutes}:${seconds.slice(0, 2)}`;\n}\n\n/**\n * The written form, `\"2026. March 9.\"`, or `\"2026. March 9. 14:30\"` for a date-time.\n * The order and the 24-hour clock are fixed; `locale` only translates the month name.\n */\nexport function formatDateLong(value: string | null | undefined, locale?: string): string {\n const date = datePart(value);\n if (!date) return '';\n const month = new Intl.DateTimeFormat(locale, { month: 'long', timeZone: 'UTC' }).format(toUtcDate(date));\n const time = timePart(value);\n return `${Number(date.slice(0, 4))}. ${month} ${Number(date.slice(8))}.${time ? ` ${time.slice(0, 5)}` : ''}`;\n}\n\nexport function todayIso(): string {\n const now = new Date();\n return `${pad(now.getFullYear(), 4)}-${pad(now.getMonth() + 1)}-${pad(now.getDate())}`;\n}\n\nexport function addDays(value: string, amount: number): string {\n const date = new Date(toTime(value) ?? 0);\n date.setUTCDate(date.getUTCDate() + amount);\n return fromDate(date);\n}\n\n/** Moves by whole months, clamping the day (31 Jan + 1 month → 28/29 Feb). */\nexport function addMonths(value: string, amount: number): string {\n const date = new Date(toTime(value) ?? 0);\n const day = date.getUTCDate();\n date.setUTCDate(1);\n date.setUTCMonth(date.getUTCMonth() + amount);\n const lastDay = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth() + 1, 0)).getUTCDate();\n date.setUTCDate(Math.min(day, lastDay));\n return fromDate(date);\n}\n\nexport function startOfMonth(value: string): string {\n return `${value.slice(0, 8)}01`;\n}\n\n/** 0 (Sunday) … 6 (Saturday). */\nexport function weekday(value: string): number {\n return new Date(toTime(value) ?? 0).getUTCDay();\n}\n\n/** The 42 days (six weeks) shown for the month containing `value`. */\nexport function monthGrid(value: string, weekStartsOn: number): string[] {\n const first = startOfMonth(value);\n const start = addDays(first, -((weekday(first) - weekStartsOn + 7) % 7));\n return Array.from({ length: 42 }, (_, index) => addDays(start, index));\n}\n\n/** A UTC `Date` for formatting an ISO date with `Intl` (pass `timeZone: 'UTC'`). */\nexport function toUtcDate(value: string): Date {\n return new Date(toTime(value) ?? 0);\n}\n\nexport function clampDate(value: string, min?: string | null, max?: string | null): string {\n if (min && value < min) return min;\n if (max && value > max) return max;\n return value;\n}\n\nexport interface DateRange {\n /** First day, as an ISO date. */\n start: string;\n /** Last day (inclusive), as an ISO date. */\n end: string;\n}\n\n/** Two days as an ordered range, or `null` when either is missing or invalid. */\nexport function toRange(a: string | null | undefined, b: string | null | undefined): DateRange | null {\n const [first, second] = [datePart(a), datePart(b)];\n if (!first || !second) return null;\n return first <= second ? { start: first, end: second } : { start: second, end: first };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"date-utils.js","names":["DATE","pad","value","length","String","padStart","toTime","match","exec","year","month","day","Number","date","Date","UTC","setUTCFullYear","getUTCMonth","getUTCDate","getTime","fromDate","getUTCFullYear","datePart","time","timePart","DateGranularity","UNITS","hasTime","granularity","indexOf","defaultFormats","Record","hour","minute","second","browserTimeZone","Intl","DateTimeFormat","resolvedOptions","timeZone","OFFSET","zoneFormats","Map","wallAt","format","get","hourCycle","set","part","Object","fromEntries","formatToParts","map","item","type","wallTime","wall","hours","minutes","seconds","split","Math","floor","instantOf","local","offsets","candidates","offset","exact","filter","min","toWall","slice","test","instant","isNaN","toInstant","toISOString","replace","truncate","FormatDateOptions","locale","formats","Partial","TOKENS","formatDate","options","unit","endsWith","pattern","style","toUtcDate","parts","YYYY","MMMM","MMM","MM","DD","HH","mm","ss","token","literal","todayIso","now","addDays","amount","setUTCDate","addMonths","setUTCMonth","lastDay","startOfMonth","weekday","getUTCDay","monthGrid","weekStartsOn","first","start","Array","from","_","index","clampDate","max","DateRange","end","toRange","a","b"],"sources":["../../../src/components/calendar/date-utils.ts"],"sourcesContent":["// Calendar dates are plain ISO strings (\"2026-03-09\"), the same format native date\n// inputs and most APIs use. Arithmetic goes through UTC so it is unaffected by\n// the local time zone and daylight saving. Date-times are UTC instants\n// (\"2026-03-09T13:30:00Z\"), turned into wall-clock strings in a time zone for\n// display and editing, and back into instants only on commit.\n\nconst DATE = /^(\\d{4})-(\\d{2})-(\\d{2})/;\n\nexport function pad(value: number, length = 2): string {\n return String(value).padStart(length, '0');\n}\n\n/** `\"2026-03-09…\"` → UTC timestamp, or `null` when the string is not a real date. */\nfunction toTime(value: string | null | undefined): number | null {\n const match = value ? DATE.exec(value) : null;\n if (!match) return null;\n const [year, month, day] = [Number(match[1]), Number(match[2]), Number(match[3])];\n const date = new Date(Date.UTC(year, month - 1, day));\n date.setUTCFullYear(year);\n return date.getUTCMonth() === month - 1 && date.getUTCDate() === day ? date.getTime() : null;\n}\n\nfunction fromDate(date: Date): string {\n return `${pad(date.getUTCFullYear(), 4)}-${pad(date.getUTCMonth() + 1)}-${pad(date.getUTCDate())}`;\n}\n\n/** The date part of an ISO date or date-time string, or `null` when invalid. */\nexport function datePart(value: string | null | undefined): string | null {\n const time = toTime(value);\n return time === null ? null : fromDate(new Date(time));\n}\n\n/** The time part (`\"14:30\"`, `\"14:30:05\"`, …) of an ISO date-time string. */\nexport function timePart(value: string | null | undefined): string | null {\n const match = value ? /T(\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,3})?)?)/.exec(value) : null;\n return match ? match[1] : null;\n}\n\n/** How precise a date value is, from a whole year down to the second. */\nexport type DateGranularity = 'year' | 'month' | 'day' | 'hour' | 'minute' | 'second';\n\nconst UNITS: DateGranularity[] = ['year', 'month', 'day', 'hour', 'minute', 'second'];\n\n/** Whether `granularity` includes a time of day. */\nexport function hasTime(granularity: DateGranularity): boolean {\n return UNITS.indexOf(granularity) > UNITS.indexOf('day');\n}\n\n/** Default display pattern for each granularity. */\nexport const defaultFormats: Record<DateGranularity, string> = {\n year: 'YYYY',\n month: 'YYYY-MM',\n day: 'YYYY-MM-DD',\n hour: 'YYYY-MM-DD HH',\n minute: 'YYYY-MM-DD HH:mm',\n second: 'YYYY-MM-DD HH:mm:ss',\n};\n\n/** The browser's IANA time zone, e.g. `\"Europe/Budapest\"`. */\nexport function browserTimeZone(): string {\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\n}\n\nconst OFFSET = /(?:Z|[+-]\\d{2}:?\\d{2})$/i;\n\nconst zoneFormats = new Map<string, Intl.DateTimeFormat>();\n\n/** `\"2026-03-09T14:30:00\"`: the wall clock in `timeZone` at a UTC timestamp. */\nfunction wallAt(time: number, timeZone: string): string {\n let format = zoneFormats.get(timeZone);\n if (!format) {\n format = new Intl.DateTimeFormat('en-US', {\n timeZone,\n hourCycle: 'h23',\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n });\n zoneFormats.set(timeZone, format);\n }\n const part = Object.fromEntries(format.formatToParts(new Date(time)).map((item) => [item.type, item.value]));\n return `${pad(Number(part.year), 4)}-${part.month}-${part.day}T${part.hour}:${part.minute}:${part.second}`;\n}\n\n/** A wall-clock string read as if it were UTC, in milliseconds. */\nfunction wallTime(wall: string): number {\n const [hours = 0, minutes = 0, seconds = 0] = (timePart(wall) ?? '').split(':').map((item) => Math.floor(Number(item)) || 0);\n return (toTime(wall) ?? 0) + ((hours * 60 + minutes) * 60 + seconds) * 1000;\n}\n\n/**\n * The UTC timestamp of a wall clock in `timeZone`. In a daylight-saving overlap\n * the earlier offset wins; a time skipped by a gap is read with the offset before it.\n */\nfunction instantOf(wall: string, timeZone: string): number {\n const local = wallTime(wall);\n const offsets = [local - 86_400_000, local + 86_400_000].map((time) => wallTime(wallAt(time, timeZone)) - time);\n const candidates = offsets.map((offset) => local - offset);\n const exact = candidates.filter((time) => wallTime(wallAt(time, timeZone)) === local);\n return exact.length ? Math.min(...exact) : candidates[0];\n}\n\n/**\n * Normalises a value to the wall clock in `timeZone`: `\"2026-03-09\"` for a date,\n * `\"2026-03-09T14:30:00\"` for a date-time. Instants (with `Z` or an offset) are converted;\n * date-times without one are taken as already in `timeZone`. `null` when invalid.\n */\nexport function toWall(value: string | null | undefined, timeZone: string): string | null {\n const date = datePart(value);\n if (!date || !value) return null;\n const time = timePart(value);\n if (!time) return date;\n const local = `${date}T${pad(Number(time.slice(0, 2)))}:${time.slice(3, 5)}:${time.slice(6, 8) || '00'}`;\n if (!OFFSET.test(value)) return local;\n const instant = new Date(value).getTime();\n return Number.isNaN(instant) ? local : wallAt(instant, timeZone);\n}\n\n/** The UTC instant (`\"2026-03-09T13:30:00Z\"`) of a wall clock in `timeZone`. */\nexport function toInstant(wall: string, timeZone: string): string {\n return new Date(instantOf(wall, timeZone)).toISOString().replace(/\\.\\d{3}Z$/, 'Z');\n}\n\n/** Cuts a wall clock down to `granularity`: `\"2026-03-01\"` for a month, `\"2026-03-09T14:00:00\"` for an hour. */\nexport function truncate(wall: string, granularity: DateGranularity): string {\n const date = datePart(wall) ?? wall.slice(0, 10);\n if (granularity === 'year') return `${date.slice(0, 4)}-01-01`;\n if (granularity === 'month') return `${date.slice(0, 7)}-01`;\n if (granularity === 'day') return date;\n const [hours = '00', minutes = '00', seconds = '00'] = (timePart(wall) ?? '').split(':');\n const time = granularity === 'hour' ? `${hours}:00:00` : granularity === 'minute' ? `${hours}:${minutes}:00` : `${hours}:${minutes}:${seconds.slice(0, 2)}`;\n return `${date}T${time}`;\n}\n\n/** Options for `formatDate`. Pass `useDateConfig()` in to follow the app's `DateConfigProvider`. */\nexport interface FormatDateOptions {\n /** Token pattern: `YYYY`, `MM`, `MMM` / `MMMM` (month name in `locale`), `DD`, `HH` (24h), `mm`, `ss`. Text in `[brackets]` is kept as is. Wins over `formats`. */\n format?: string;\n /** Unit the default pattern stops at. Defaults to `day` for dates and `minute` (or `second` when set) for date-times. */\n granularity?: DateGranularity;\n /** IANA zone that instants are shown in. Defaults to the browser's. Values without an offset are not shifted. */\n timeZone?: string;\n /** BCP 47 locale for `MMM` / `MMMM`. */\n locale?: string;\n /** Default patterns per granularity, e.g. from `DateConfigProvider`. */\n formats?: Partial<Record<DateGranularity, string>>;\n}\n\nconst TOKENS = /\\[([^\\]]*)\\]|YYYY|MMMM|MMM|MM|DD|HH|mm|ss/g;\n\n/**\n * Formats a date or date-time the way the date pickers show it: ISO-style\n * (`2026-03-09 14:30`) on a 24-hour clock by default, or with a custom `format`.\n * Instants (`\"2026-03-09T13:30:00Z\"`) are shown in `timeZone`. Returns `\"\"` for an invalid value.\n *\n * @example\n * formatDate('2026-03-09T13:30:00Z', { timeZone: 'Europe/Budapest' }); // \"2026-03-09 14:30\"\n * formatDate('2026-03-01', { granularity: 'month', format: 'MMMM YYYY', locale: 'en' }); // \"March 2026\"\n */\nexport function formatDate(value: string | null | undefined, options: FormatDateOptions = {}): string {\n const { format, granularity, timeZone = browserTimeZone(), locale, formats } = options;\n const wall = toWall(value, timeZone);\n if (!wall) return '';\n const unit = granularity ?? (wall.length > 10 ? (wall.endsWith(':00') ? 'minute' : 'second') : 'day');\n const pattern = format ?? formats?.[unit] ?? defaultFormats[unit];\n const time = timePart(wall) ?? '00:00:00';\n const month = (style: 'short' | 'long') =>\n new Intl.DateTimeFormat(locale, { month: style, timeZone: 'UTC' }).format(toUtcDate(wall));\n const parts: Record<string, () => string> = {\n YYYY: () => wall.slice(0, 4),\n MMMM: () => month('long'),\n MMM: () => month('short'),\n MM: () => wall.slice(5, 7),\n DD: () => wall.slice(8, 10),\n HH: () => time.slice(0, 2),\n mm: () => time.slice(3, 5),\n ss: () => time.slice(6, 8),\n };\n return pattern.replace(TOKENS, (token, literal: string | undefined) => literal ?? parts[token]());\n}\n\n/** Today's date in `timeZone` (the browser's by default). */\nexport function todayIso(timeZone?: string): string {\n return wallAt(Date.now(), timeZone ?? browserTimeZone()).slice(0, 10);\n}\n\nexport function addDays(value: string, amount: number): string {\n const date = new Date(toTime(value) ?? 0);\n date.setUTCDate(date.getUTCDate() + amount);\n return fromDate(date);\n}\n\n/** Moves by whole months, clamping the day (31 Jan + 1 month → 28/29 Feb). */\nexport function addMonths(value: string, amount: number): string {\n const date = new Date(toTime(value) ?? 0);\n const day = date.getUTCDate();\n date.setUTCDate(1);\n date.setUTCMonth(date.getUTCMonth() + amount);\n const lastDay = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth() + 1, 0)).getUTCDate();\n date.setUTCDate(Math.min(day, lastDay));\n return fromDate(date);\n}\n\nexport function startOfMonth(value: string): string {\n return `${value.slice(0, 8)}01`;\n}\n\n/** 0 (Sunday) … 6 (Saturday). */\nexport function weekday(value: string): number {\n return new Date(toTime(value) ?? 0).getUTCDay();\n}\n\n/** The 42 days (six weeks) shown for the month containing `value`. */\nexport function monthGrid(value: string, weekStartsOn: number): string[] {\n const first = startOfMonth(value);\n const start = addDays(first, -((weekday(first) - weekStartsOn + 7) % 7));\n return Array.from({ length: 42 }, (_, index) => addDays(start, index));\n}\n\n/** A UTC `Date` for formatting an ISO date with `Intl` (pass `timeZone: 'UTC'`). */\nexport function toUtcDate(value: string): Date {\n return new Date(toTime(value) ?? 0);\n}\n\nexport function clampDate(value: string, min?: string | null, max?: string | null): string {\n if (min && value < min) return min;\n if (max && value > max) return max;\n return value;\n}\n\nexport interface DateRange {\n /** First day, as an ISO date. */\n start: string;\n /** Last day (inclusive), as an ISO date. */\n end: string;\n}\n\n/** Two days as an ordered range, or `null` when either is missing or invalid. */\nexport function toRange(a: string | null | undefined, b: string | null | undefined): DateRange | null {\n const [first, second] = [datePart(a), datePart(b)];\n if (!first || !second) return null;\n return first <= second ? { start: first, end: second } : { start: second, end: first };\n}\n"],"mappings":"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"}
|
|
@@ -13,9 +13,9 @@ import * as React from "react";
|
|
|
13
13
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
14
14
|
//#region src/components/data-table/DataTableContent.tsx
|
|
15
15
|
var ROW_ESTIMATE = {
|
|
16
|
-
compact:
|
|
17
|
-
normal:
|
|
18
|
-
comfortable:
|
|
16
|
+
compact: 31,
|
|
17
|
+
normal: 35,
|
|
18
|
+
comfortable: 46
|
|
19
19
|
};
|
|
20
20
|
/** The table itself, with its loading, empty and error states. */
|
|
21
21
|
function DataTableContent(t0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTableContent.js","names":["React","cx","Button","Checkbox","EmptyState","Skeleton","Table","TableBody","TableCell","TableHead","TableHeader","TableRow","TableProps","useDataTableContext","DataTableRow","SizerRow","isTextEditor","pickSizerRows","useColumnLock","usePageHeight","useVirtualRows","ROW_ESTIMATE","compact","normal","comfortable","DataTableVirtualOptions","rowHeight","overscan","DataTableContentProps","Pick","layout","maxHeight","virtualized","onEndReached","empty","ReactNode","tableProps","Omit","DataTableContent","t0","$","_c","density","t1","striped","stickyHeader","t2","t3","undefined","table","labels","text","visibleColumns","columns","loading","error","anchor","setAnchor","useState","reported","useRef","virtual","t4","t5","height","scrolls","stable","hasActions","Boolean","rowActions","editable","deletable","placeholders","pending","Math","min","paginated","pageSize","noMatch","mode","filtered","totalCount","t6","find","id","focused","t7","pageRows","shown","span","length","Number","selectable","t8","map","_temp","columnKey","join","lock","measuring","t9","t10","t11","enabled","count","estimate","viewport","key","rows","t12","end","start","slice","rendered","sizers","allRows","holdsPage","pageHeight","shortPage","page","t13","wrapper","current","scrollHeight","scrollTop","clientHeight","reportEnd","t14","t15","search","t16","sort","t17","direction","t18","filterValues","JSON","stringify","t19","view","t20","closest","parentElement","scrollTo","top","t21","useEffect","t22","wrapper_0","T0","t23","t24","t25","t26","t27","t28","t29","style","width","minWidth","t30","wrapperProps","t31","t32","className","t33","t34","t35","t36","minHeight","t37","event","onScroll","currentTarget","t38","t39","widths","_temp2","t40","t41","t42","selectAll","allSelected","someSelected","checked","toggleAll","t43","t44","column","align","numeric","isSortable","toggleSort","header","actions","t45","t46","before","t47","t48","_","index_0","index","column_0","position","Array","from","t49","entry","index_1","t50","after","t51","entry_0","t52","t53","activeFilterCount","onRetry","reset","errorTitle","retry","noMatchTitle","emptyTitle","emptyDescription","noFilterMatchDescription","noMatchDescription","clearFilters","clearSearch","t54","c","_c","_Fragment"],"sources":["../../../src/components/data-table/DataTableContent.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\nimport { Button } from '../button/Button';\nimport { Checkbox } from '../choice/Choice';\nimport { EmptyState } from '../empty-state/EmptyState';\nimport { Skeleton } from '../skeleton/Skeleton';\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, type TableProps } from '../table/Table';\nimport { useDataTableContext } from './context';\nimport { DataTableRow, SizerRow, isTextEditor } from './DataTableRow';\nimport { pickSizerRows, useColumnLock, usePageHeight, useVirtualRows } from './layout';\n\n// Row heights of the three densities, assumed until the first row is measured.\nconst ROW_ESTIMATE = { compact: 35, normal: 46, comfortable: 55 };\n\nexport interface DataTableVirtualOptions {\n /** Height of every row in pixels. Left out, the rows are measured. */\n rowHeight?: number;\n /** Rows rendered beyond each edge of the view (default 8). */\n overscan?: number;\n}\n\nexport interface DataTableContentProps extends Pick<TableProps, 'density' | 'striped' | 'stickyHeader'> {\n /**\n * `stable` (default) measures the columns once and holds their widths, keeps a\n * short last page as tall as a full one, and keeps a row's height while it is\n * edited: nothing moves while the table is used. `auto` leaves the layout to\n * the browser, which fits the columns to the rows on screen.\n */\n layout?: 'stable' | 'auto';\n /** Scrolls the rows inside this height and keeps the header in view. */\n maxHeight?: number | string;\n /**\n * Renders only the rows in view, for thousands of rows without pagination.\n * Rows are one line high: columns fit their longest value, so mark those with\n * long text `truncate`. Scrolls inside `maxHeight` (default `32rem`).\n */\n virtualized?: boolean | DataTableVirtualOptions;\n /**\n * Called when the rows are scrolled near their end, once per row count: load\n * and append the next rows. Needs `maxHeight` or `virtualized`.\n */\n onEndReached?: () => void;\n /** Replaces the default empty state. */\n empty?: React.ReactNode;\n /** Props for the underlying `Table` (className, wrapperProps, aria-*). */\n tableProps?: Omit<TableProps, 'children'>;\n}\n\n/** The table itself, with its loading, empty and error states. */\nexport function DataTableContent({\n density = 'normal',\n striped,\n stickyHeader,\n layout = 'stable',\n maxHeight,\n virtualized = false,\n onEndReached,\n empty,\n tableProps,\n}: DataTableContentProps) {\n const table = useDataTableContext();\n const { labels: text, visibleColumns: columns, loading, error } = table;\n // Found by the layout hooks through `closest('table')`.\n const [anchor, setAnchor] = React.useState<HTMLElement | null>(null);\n const reported = React.useRef(-1);\n\n const virtual = virtualized !== false;\n const { rowHeight, overscan = 8 } = typeof virtualized === 'object' ? virtualized : {};\n const height = maxHeight ?? (virtual ? '32rem' : undefined);\n const scrolls = height !== undefined;\n const stable = layout === 'stable' || virtual;\n\n const hasActions = Boolean(table.rowActions) || table.editable || table.deletable;\n const placeholders = table.pending ? Math.min(table.paginated ? table.pageSize : 5, 10) : 0;\n const noMatch = table.mode === 'server' ? table.filtered : table.totalCount > 0;\n const focused = columns.find(isTextEditor)?.id;\n const shown = error ? [] : table.pageRows;\n const span = columns.length + Number(table.selectable) + Number(hasActions);\n\n const columnKey = [density, table.selectable, hasActions, ...columns.map((c) => `${c.id}:${c.width ?? ''}:${c.minWidth ?? ''}`)].join('|');\n const { lock, measuring } = useColumnLock(anchor, stable, columnKey, shown.length > 0);\n const rows = useVirtualRows(anchor, {\n enabled: virtual,\n count: shown.length,\n rowHeight,\n overscan,\n estimate: ROW_ESTIMATE[density],\n viewport: typeof maxHeight === 'number' ? maxHeight : 512,\n key: density,\n });\n const rendered = virtual ? shown.slice(rows.start, rows.end) : shown;\n const sizers = measuring && table.allRows.length > rendered.length ? pickSizerRows(table.allRows, columns) : [];\n\n const holdsPage = stable && table.paginated && !scrolls;\n const pageHeight = usePageHeight(anchor, holdsPage, shown.length === table.pageSize, `${density}|${table.pageSize}`);\n const shortPage = table.page > 1 && shown.length > 0 && shown.length < table.pageSize;\n\n const reportEnd = (wrapper: HTMLElement) => {\n if (!onEndReached || !scrolls || loading || !shown.length || reported.current === shown.length) return;\n if (wrapper.scrollHeight - wrapper.scrollTop - wrapper.clientHeight > 4 * ROW_ESTIMATE[density]) return;\n reported.current = shown.length;\n onEndReached();\n };\n\n // New rows start at the top: the scroll position belonged to the previous ones.\n const view = [table.page, table.search, table.sort?.id, table.sort?.direction, JSON.stringify(table.filterValues)].join('|');\n React.useEffect(() => {\n if (scrolls) anchor?.closest('table')?.parentElement?.scrollTo({ top: 0 });\n }, [anchor, scrolls, view]);\n\n // Rows that do not fill the view cannot be scrolled to their end: ask for more right away.\n React.useEffect(() => {\n const wrapper = anchor?.closest('table')?.parentElement;\n if (wrapper) reportEnd(wrapper);\n });\n\n return (\n <>\n <Table\n density={density}\n striped={striped}\n stickyHeader={stickyHeader ?? scrolls}\n aria-busy={loading || undefined}\n aria-rowcount={virtual ? shown.length + 1 : undefined}\n {...tableProps}\n data-layout={stable ? 'stable' : undefined}\n data-locked={lock ? '' : undefined}\n data-virtualized={virtual ? '' : undefined}\n style={lock ? { width: lock.table, minWidth: '100%', ...tableProps?.style } : tableProps?.style}\n wrapperProps={{\n ...tableProps?.wrapperProps,\n className: cx(scrolls && 'oui-data-table__scroll', tableProps?.wrapperProps?.className),\n style: {\n maxHeight: height,\n minHeight: holdsPage && shortPage ? pageHeight : undefined,\n ...tableProps?.wrapperProps?.style,\n },\n onScroll: (event) => {\n tableProps?.wrapperProps?.onScroll?.(event);\n rows.onScroll(event);\n reportEnd(event.currentTarget);\n },\n }}\n >\n <colgroup ref={setAnchor}>{lock?.widths.map((width, index) => <col key={index} style={{ width }} />)}</colgroup>\n <TableHeader>\n <TableRow aria-rowindex={virtual ? 1 : undefined}>\n {table.selectable && (\n <TableHead className=\"oui-data-table__check\">\n <Checkbox\n size=\"sm\"\n aria-label={text.selectAll}\n checked={table.allSelected}\n indeterminate={table.someSelected}\n disabled={!table.rows.length}\n onCheckedChange={(checked) => table.toggleAll(checked)}\n />\n </TableHead>\n )}\n {columns.map((column) => (\n <TableHead\n key={column.id}\n align={column.align ?? (column.numeric ? 'end' : 'start')}\n style={\n !lock && (column.width !== undefined || column.minWidth !== undefined)\n ? { width: column.width, minWidth: column.minWidth }\n : undefined\n }\n sort={table.isSortable(column) ? (table.sort?.id === column.id ? table.sort.direction : false) : undefined}\n onSort={() => table.toggleSort(column.id)}\n >\n {column.header}\n </TableHead>\n ))}\n {hasActions && (\n <TableHead className=\"oui-data-table__row-actions\">\n <span className=\"oui-visually-hidden\">{text.actions}</span>\n </TableHead>\n )}\n </TableRow>\n </TableHeader>\n {rows.before > 0 && (\n <tbody className=\"oui-data-table__spacer\" aria-hidden>\n <tr style={{ height: rows.before }}>\n <td colSpan={span} />\n </tr>\n </tbody>\n )}\n <TableBody>\n {Array.from({ length: placeholders }, (_, index) => (\n <TableRow key={index} aria-hidden>\n {table.selectable && <TableCell className=\"oui-data-table__check\" />}\n {columns.map((column, position) => (\n <TableCell key={column.id} align={column.align} numeric={column.numeric}>\n <Skeleton className=\"oui-data-table__skeleton\" width={`${45 + ((index * 3 + position * 5) % 7) * 8}%`} />\n </TableCell>\n ))}\n {hasActions && <TableCell className=\"oui-data-table__row-actions\" />}\n </TableRow>\n ))}\n {rendered.map((entry, index) => (\n <DataTableRow\n key={entry.id}\n table={table}\n entry={entry}\n columns={columns}\n hasActions={hasActions}\n focused={focused}\n index={virtual ? rows.start + index : undefined}\n height={rows.rowHeight}\n />\n ))}\n </TableBody>\n {rows.after > 0 && (\n <tbody className=\"oui-data-table__spacer\" aria-hidden>\n <tr style={{ height: rows.after }}>\n <td colSpan={span} />\n </tr>\n </tbody>\n )}\n {sizers.length > 0 && (\n <tbody className=\"oui-data-table__sizer\" aria-hidden inert>\n {sizers.map((entry) => (\n <SizerRow key={entry.id} table={table} entry={entry} columns={columns} hasActions={hasActions} />\n ))}\n </tbody>\n )}\n </Table>\n\n {error ? (\n <EmptyState\n role=\"alert\"\n title={text.errorTitle}\n description={error}\n actions={\n table.onRetry ? (\n <Button size=\"sm\" variant=\"secondary\" onClick={table.onRetry}>\n {text.retry}\n </Button>\n ) : undefined\n }\n />\n ) : (\n !table.rows.length &&\n !loading &&\n (empty ?? (\n <EmptyState\n title={noMatch ? text.noMatchTitle : text.emptyTitle}\n description={\n !noMatch ? text.emptyDescription : table.activeFilterCount ? text.noFilterMatchDescription : text.noMatchDescription\n }\n actions={\n table.filtered ? (\n <Button size=\"sm\" variant=\"secondary\" onClick={table.reset}>\n {table.activeFilterCount ? text.clearFilters : text.clearSearch}\n </Button>\n ) : undefined\n }\n />\n ))\n )}\n </>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataTableContent.js","names":["React","cx","Button","Checkbox","EmptyState","Skeleton","Table","TableBody","TableCell","TableHead","TableHeader","TableRow","TableProps","useDataTableContext","DataTableRow","SizerRow","isTextEditor","pickSizerRows","useColumnLock","usePageHeight","useVirtualRows","ROW_ESTIMATE","compact","normal","comfortable","DataTableVirtualOptions","rowHeight","overscan","DataTableContentProps","Pick","layout","maxHeight","virtualized","onEndReached","empty","ReactNode","tableProps","Omit","DataTableContent","t0","$","_c","density","t1","striped","stickyHeader","t2","t3","undefined","table","labels","text","visibleColumns","columns","loading","error","anchor","setAnchor","useState","reported","useRef","virtual","t4","t5","height","scrolls","stable","hasActions","Boolean","rowActions","editable","deletable","placeholders","pending","Math","min","paginated","pageSize","noMatch","mode","filtered","totalCount","t6","find","id","focused","t7","pageRows","shown","span","length","Number","selectable","t8","map","_temp","columnKey","join","lock","measuring","t9","t10","t11","enabled","count","estimate","viewport","key","rows","t12","end","start","slice","rendered","sizers","allRows","holdsPage","pageHeight","shortPage","page","t13","wrapper","current","scrollHeight","scrollTop","clientHeight","reportEnd","t14","t15","search","t16","sort","t17","direction","t18","filterValues","JSON","stringify","t19","view","t20","closest","parentElement","scrollTo","top","t21","useEffect","t22","wrapper_0","T0","t23","t24","t25","t26","t27","t28","t29","style","width","minWidth","t30","wrapperProps","t31","t32","className","t33","t34","t35","t36","minHeight","t37","event","onScroll","currentTarget","t38","t39","widths","_temp2","t40","t41","t42","selectAll","allSelected","someSelected","checked","toggleAll","t43","t44","column","align","numeric","isSortable","toggleSort","header","actions","t45","t46","before","t47","t48","_","index_0","index","column_0","position","Array","from","t49","entry","index_1","t50","after","t51","entry_0","t52","t53","activeFilterCount","onRetry","reset","errorTitle","retry","noMatchTitle","emptyTitle","emptyDescription","noFilterMatchDescription","noMatchDescription","clearFilters","clearSearch","t54","c","_c","_Fragment"],"sources":["../../../src/components/data-table/DataTableContent.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\nimport { Button } from '../button/Button';\nimport { Checkbox } from '../choice/Choice';\nimport { EmptyState } from '../empty-state/EmptyState';\nimport { Skeleton } from '../skeleton/Skeleton';\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, type TableProps } from '../table/Table';\nimport { useDataTableContext } from './context';\nimport { DataTableRow, SizerRow, isTextEditor } from './DataTableRow';\nimport { pickSizerRows, useColumnLock, usePageHeight, useVirtualRows } from './layout';\n\n// Row heights of the three densities, assumed until the first row is measured.\nconst ROW_ESTIMATE = { compact: 31, normal: 35, comfortable: 46 };\n\nexport interface DataTableVirtualOptions {\n /** Height of every row in pixels. Left out, the rows are measured. */\n rowHeight?: number;\n /** Rows rendered beyond each edge of the view (default 8). */\n overscan?: number;\n}\n\nexport interface DataTableContentProps extends Pick<TableProps, 'density' | 'striped' | 'stickyHeader'> {\n /**\n * `stable` (default) measures the columns once and holds their widths, keeps a\n * short last page as tall as a full one, and keeps a row's height while it is\n * edited: nothing moves while the table is used. `auto` leaves the layout to\n * the browser, which fits the columns to the rows on screen.\n */\n layout?: 'stable' | 'auto';\n /** Scrolls the rows inside this height and keeps the header in view. */\n maxHeight?: number | string;\n /**\n * Renders only the rows in view, for thousands of rows without pagination.\n * Rows are one line high: columns fit their longest value, so mark those with\n * long text `truncate`. Scrolls inside `maxHeight` (default `32rem`).\n */\n virtualized?: boolean | DataTableVirtualOptions;\n /**\n * Called when the rows are scrolled near their end, once per row count: load\n * and append the next rows. Needs `maxHeight` or `virtualized`.\n */\n onEndReached?: () => void;\n /** Replaces the default empty state. */\n empty?: React.ReactNode;\n /** Props for the underlying `Table` (className, wrapperProps, aria-*). */\n tableProps?: Omit<TableProps, 'children'>;\n}\n\n/** The table itself, with its loading, empty and error states. */\nexport function DataTableContent({\n density = 'normal',\n striped,\n stickyHeader,\n layout = 'stable',\n maxHeight,\n virtualized = false,\n onEndReached,\n empty,\n tableProps,\n}: DataTableContentProps) {\n const table = useDataTableContext();\n const { labels: text, visibleColumns: columns, loading, error } = table;\n // Found by the layout hooks through `closest('table')`.\n const [anchor, setAnchor] = React.useState<HTMLElement | null>(null);\n const reported = React.useRef(-1);\n\n const virtual = virtualized !== false;\n const { rowHeight, overscan = 8 } = typeof virtualized === 'object' ? virtualized : {};\n const height = maxHeight ?? (virtual ? '32rem' : undefined);\n const scrolls = height !== undefined;\n const stable = layout === 'stable' || virtual;\n\n const hasActions = Boolean(table.rowActions) || table.editable || table.deletable;\n const placeholders = table.pending ? Math.min(table.paginated ? table.pageSize : 5, 10) : 0;\n const noMatch = table.mode === 'server' ? table.filtered : table.totalCount > 0;\n const focused = columns.find(isTextEditor)?.id;\n const shown = error ? [] : table.pageRows;\n const span = columns.length + Number(table.selectable) + Number(hasActions);\n\n const columnKey = [density, table.selectable, hasActions, ...columns.map((c) => `${c.id}:${c.width ?? ''}:${c.minWidth ?? ''}`)].join('|');\n const { lock, measuring } = useColumnLock(anchor, stable, columnKey, shown.length > 0);\n const rows = useVirtualRows(anchor, {\n enabled: virtual,\n count: shown.length,\n rowHeight,\n overscan,\n estimate: ROW_ESTIMATE[density],\n viewport: typeof maxHeight === 'number' ? maxHeight : 512,\n key: density,\n });\n const rendered = virtual ? shown.slice(rows.start, rows.end) : shown;\n const sizers = measuring && table.allRows.length > rendered.length ? pickSizerRows(table.allRows, columns) : [];\n\n const holdsPage = stable && table.paginated && !scrolls;\n const pageHeight = usePageHeight(anchor, holdsPage, shown.length === table.pageSize, `${density}|${table.pageSize}`);\n const shortPage = table.page > 1 && shown.length > 0 && shown.length < table.pageSize;\n\n const reportEnd = (wrapper: HTMLElement) => {\n if (!onEndReached || !scrolls || loading || !shown.length || reported.current === shown.length) return;\n if (wrapper.scrollHeight - wrapper.scrollTop - wrapper.clientHeight > 4 * ROW_ESTIMATE[density]) return;\n reported.current = shown.length;\n onEndReached();\n };\n\n // New rows start at the top: the scroll position belonged to the previous ones.\n const view = [table.page, table.search, table.sort?.id, table.sort?.direction, JSON.stringify(table.filterValues)].join('|');\n React.useEffect(() => {\n if (scrolls) anchor?.closest('table')?.parentElement?.scrollTo({ top: 0 });\n }, [anchor, scrolls, view]);\n\n // Rows that do not fill the view cannot be scrolled to their end: ask for more right away.\n React.useEffect(() => {\n const wrapper = anchor?.closest('table')?.parentElement;\n if (wrapper) reportEnd(wrapper);\n });\n\n return (\n <>\n <Table\n density={density}\n striped={striped}\n stickyHeader={stickyHeader ?? scrolls}\n aria-busy={loading || undefined}\n aria-rowcount={virtual ? shown.length + 1 : undefined}\n {...tableProps}\n data-layout={stable ? 'stable' : undefined}\n data-locked={lock ? '' : undefined}\n data-virtualized={virtual ? '' : undefined}\n style={lock ? { width: lock.table, minWidth: '100%', ...tableProps?.style } : tableProps?.style}\n wrapperProps={{\n ...tableProps?.wrapperProps,\n className: cx(scrolls && 'oui-data-table__scroll', tableProps?.wrapperProps?.className),\n style: {\n maxHeight: height,\n minHeight: holdsPage && shortPage ? pageHeight : undefined,\n ...tableProps?.wrapperProps?.style,\n },\n onScroll: (event) => {\n tableProps?.wrapperProps?.onScroll?.(event);\n rows.onScroll(event);\n reportEnd(event.currentTarget);\n },\n }}\n >\n <colgroup ref={setAnchor}>{lock?.widths.map((width, index) => <col key={index} style={{ width }} />)}</colgroup>\n <TableHeader>\n <TableRow aria-rowindex={virtual ? 1 : undefined}>\n {table.selectable && (\n <TableHead className=\"oui-data-table__check\">\n <Checkbox\n size=\"sm\"\n aria-label={text.selectAll}\n checked={table.allSelected}\n indeterminate={table.someSelected}\n disabled={!table.rows.length}\n onCheckedChange={(checked) => table.toggleAll(checked)}\n />\n </TableHead>\n )}\n {columns.map((column) => (\n <TableHead\n key={column.id}\n align={column.align ?? (column.numeric ? 'end' : 'start')}\n style={\n !lock && (column.width !== undefined || column.minWidth !== undefined)\n ? { width: column.width, minWidth: column.minWidth }\n : undefined\n }\n sort={table.isSortable(column) ? (table.sort?.id === column.id ? table.sort.direction : false) : undefined}\n onSort={() => table.toggleSort(column.id)}\n >\n {column.header}\n </TableHead>\n ))}\n {hasActions && (\n <TableHead className=\"oui-data-table__row-actions\">\n <span className=\"oui-visually-hidden\">{text.actions}</span>\n </TableHead>\n )}\n </TableRow>\n </TableHeader>\n {rows.before > 0 && (\n <tbody className=\"oui-data-table__spacer\" aria-hidden>\n <tr style={{ height: rows.before }}>\n <td colSpan={span} />\n </tr>\n </tbody>\n )}\n <TableBody>\n {Array.from({ length: placeholders }, (_, index) => (\n <TableRow key={index} aria-hidden>\n {table.selectable && <TableCell className=\"oui-data-table__check\" />}\n {columns.map((column, position) => (\n <TableCell key={column.id} align={column.align} numeric={column.numeric}>\n <Skeleton className=\"oui-data-table__skeleton\" width={`${45 + ((index * 3 + position * 5) % 7) * 8}%`} />\n </TableCell>\n ))}\n {hasActions && <TableCell className=\"oui-data-table__row-actions\" />}\n </TableRow>\n ))}\n {rendered.map((entry, index) => (\n <DataTableRow\n key={entry.id}\n table={table}\n entry={entry}\n columns={columns}\n hasActions={hasActions}\n focused={focused}\n index={virtual ? rows.start + index : undefined}\n height={rows.rowHeight}\n />\n ))}\n </TableBody>\n {rows.after > 0 && (\n <tbody className=\"oui-data-table__spacer\" aria-hidden>\n <tr style={{ height: rows.after }}>\n <td colSpan={span} />\n </tr>\n </tbody>\n )}\n {sizers.length > 0 && (\n <tbody className=\"oui-data-table__sizer\" aria-hidden inert>\n {sizers.map((entry) => (\n <SizerRow key={entry.id} table={table} entry={entry} columns={columns} hasActions={hasActions} />\n ))}\n </tbody>\n )}\n </Table>\n\n {error ? (\n <EmptyState\n role=\"alert\"\n title={text.errorTitle}\n description={error}\n actions={\n table.onRetry ? (\n <Button size=\"sm\" variant=\"secondary\" onClick={table.onRetry}>\n {text.retry}\n </Button>\n ) : undefined\n }\n />\n ) : (\n !table.rows.length &&\n !loading &&\n (empty ?? (\n <EmptyState\n title={noMatch ? text.noMatchTitle : text.emptyTitle}\n description={\n !noMatch ? text.emptyDescription : table.activeFilterCount ? text.noFilterMatchDescription : text.noMatchDescription\n }\n actions={\n table.filtered ? (\n <Button size=\"sm\" variant=\"secondary\" onClick={table.reset}>\n {table.activeFilterCount ? text.clearFilters : text.clearSearch}\n </Button>\n ) : undefined\n }\n />\n ))\n )}\n </>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { type CalendarLabels, type CalendarProps } from '../calendar/Calendar';
|
|
3
|
+
import { type DateGranularity } from '../calendar/date-utils';
|
|
3
4
|
import { type PickerFieldProps } from './PickerField';
|
|
4
5
|
export interface DatePickerLabels extends CalendarLabels {
|
|
5
6
|
today: string;
|
|
@@ -23,7 +24,13 @@ interface PickerProps extends PickerFieldProps, Pick<CalendarProps, 'isDateDisab
|
|
|
23
24
|
name?: string;
|
|
24
25
|
/** Show the Clear action. Defaults to `true` unless `required`. */
|
|
25
26
|
clearable?: boolean;
|
|
26
|
-
/**
|
|
27
|
+
/** 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. */
|
|
28
|
+
granularity?: DateGranularity;
|
|
29
|
+
/** 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. */
|
|
30
|
+
format?: string;
|
|
31
|
+
/** 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. */
|
|
32
|
+
timeZone?: string;
|
|
33
|
+
/** Custom display text for the selected value. Wins over `format`. */
|
|
27
34
|
formatValue?: (value: string) => React.ReactNode;
|
|
28
35
|
/** Override texts for localisation. */
|
|
29
36
|
labels?: Partial<DatePickerLabels>;
|
|
@@ -31,20 +38,36 @@ interface PickerProps extends PickerFieldProps, Pick<CalendarProps, 'isDateDisab
|
|
|
31
38
|
export interface DatePickerProps extends PickerProps {
|
|
32
39
|
}
|
|
33
40
|
/**
|
|
34
|
-
* Date field with a calendar popover.
|
|
35
|
-
* the same format as `<input type="date"
|
|
41
|
+
* Date field with a calendar popover. Day values are ISO dates (`"2026-03-09"`),
|
|
42
|
+
* the same format as `<input type="date">`. `granularity="month"` or `"year"` opens a
|
|
43
|
+
* month or year grid and stores the period's first day (`"2026-03-01"`); a time
|
|
44
|
+
* granularity behaves like `DateTimePicker`.
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* <DatePicker label="Delivery date" value={date} onValueChange={setDate} />
|
|
48
|
+
* <DatePicker label="Billing month" granularity="month" format="MMMM YYYY" />
|
|
36
49
|
*/
|
|
37
|
-
export declare function DatePicker(props: DatePickerProps): React.JSX.Element;
|
|
50
|
+
export declare function DatePicker({ granularity, ...props }: DatePickerProps): React.JSX.Element;
|
|
38
51
|
export interface DateTimePickerProps extends PickerProps {
|
|
39
|
-
/**
|
|
52
|
+
/** Spacing of the time options in seconds (60 = every minute, 900 = quarter hours, 1 = every second). */
|
|
40
53
|
step?: number;
|
|
41
|
-
/** Time used when a day is picked before any time is set. */
|
|
54
|
+
/** Time (`"09:00"`) used when a day is picked before any time is set. */
|
|
42
55
|
defaultTime?: string;
|
|
56
|
+
/**
|
|
57
|
+
* Smallest unit shown and stored: `hour`, `minute` or `second`. When omitted, `second`
|
|
58
|
+
* if `step` is not a whole number of minutes, otherwise `minute`.
|
|
59
|
+
* @default 'minute'
|
|
60
|
+
*/
|
|
61
|
+
granularity?: 'hour' | 'minute' | 'second';
|
|
43
62
|
}
|
|
44
63
|
/**
|
|
45
|
-
* Date and time field. Values are
|
|
46
|
-
* the
|
|
47
|
-
*
|
|
64
|
+
* Date and time field. Values are UTC instants (`"2026-03-09T13:30:00Z"`) shown and
|
|
65
|
+
* edited in `timeZone` (the browser's by default) on a 24-hour clock, as
|
|
66
|
+
* `2026-03-09 14:30`. Values without an offset (`"2026-03-09T14:30"`) are read as
|
|
67
|
+
* wall-clock time in `timeZone`.
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* <DateTimePicker label="Departure" value={slot} onValueChange={setSlot} timeZone="Europe/Budapest" />
|
|
48
71
|
*/
|
|
49
|
-
export declare function DateTimePicker(props: DateTimePickerProps): React.JSX.Element;
|
|
72
|
+
export declare function DateTimePicker({ granularity, ...props }: DateTimePickerProps): React.JSX.Element;
|
|
50
73
|
export {};
|