@bsol-oss/react-datatable5 12.0.0-beta.95 → 13.0.1-beta.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 (37) hide show
  1. package/README.md +1 -0
  2. package/dist/index.d.ts +166 -41
  3. package/dist/index.js +1151 -612
  4. package/dist/index.mjs +1153 -615
  5. package/dist/types/components/DataTable/DataTable.d.ts +1 -3
  6. package/dist/types/components/DataTable/DataTableServer.d.ts +7 -9
  7. package/dist/types/components/DataTable/context/DataTableContext.d.ts +4 -6
  8. package/dist/types/components/DataTable/controls/MobileTableControls.d.ts +29 -0
  9. package/dist/types/components/DataTable/controls/TableControls.d.ts +2 -2
  10. package/dist/types/components/DataTable/display/CalendarDisplay.d.ts +84 -0
  11. package/dist/types/components/DataTable/display/DataDisplay.d.ts +0 -2
  12. package/dist/types/components/DataTable/display/MobileTableDisplay.d.ts +5 -0
  13. package/dist/types/components/DataTable/display/RecordDisplay.d.ts +1 -3
  14. package/dist/types/components/DataTable/hooks/useIsMobile.d.ts +6 -0
  15. package/dist/types/components/DataTable/useDataTable.d.ts +3 -6
  16. package/dist/types/components/DataTable/useDataTableServer.d.ts +4 -4
  17. package/dist/types/components/DataTable/utils/getColumns.d.ts +3 -5
  18. package/dist/types/components/DatePicker/DatePicker.d.ts +7 -8
  19. package/dist/types/components/DatePicker/DateTimePicker.d.ts +3 -1
  20. package/dist/types/components/DatePicker/IsoTimePicker.d.ts +5 -1
  21. package/dist/types/components/DatePicker/RangeDatePicker.d.ts +4 -4
  22. package/dist/types/components/DatePicker/useCalendar.d.ts +48 -0
  23. package/dist/types/components/Form/SchemaFormContext.d.ts +5 -3
  24. package/dist/types/components/Form/components/core/FormBody.d.ts +1 -2
  25. package/dist/types/components/Form/components/core/FormRoot.d.ts +6 -4
  26. package/dist/types/components/Form/components/fields/FilePicker.d.ts +1 -2
  27. package/dist/types/components/Form/components/fields/IdPicker.d.ts +8 -0
  28. package/dist/types/components/Form/components/fields/IdPickerMultiple.d.ts +7 -0
  29. package/dist/types/components/Form/components/fields/IdPickerSingle.d.ts +7 -0
  30. package/dist/types/components/Form/components/fields/useIdPickerData.d.ts +46 -0
  31. package/dist/types/components/Form/components/types/CustomJSONSchema7.d.ts +9 -0
  32. package/dist/types/components/Form/useForm.d.ts +7 -2
  33. package/dist/types/components/Form/utils/useFormI18n.d.ts +14 -12
  34. package/dist/types/components/TimePicker/TimePicker.d.ts +4 -6
  35. package/dist/types/components/ui/provider.d.ts +1 -1
  36. package/dist/types/index.d.ts +1 -0
  37. package/package.json +1 -3
@@ -3,7 +3,6 @@ import { ReactNode } from 'react';
3
3
  import { RankingInfo } from '@tanstack/match-sorter-utils';
4
4
  import { DensityState } from './controls/DensityFeature';
5
5
  import { DataTableLabel } from './context/DataTableContext';
6
- import { UseTranslationResponse } from 'react-i18next';
7
6
  declare module '@tanstack/react-table' {
8
7
  interface FilterFns {
9
8
  fuzzy: FilterFn<unknown>;
@@ -52,7 +51,6 @@ export interface DataTableProps<TData = unknown> {
52
51
  setColumnOrder: OnChangeFn<ColumnOrderState>;
53
52
  setDensity: OnChangeFn<DensityState>;
54
53
  setColumnVisibility: OnChangeFn<VisibilityState>;
55
- translate: UseTranslationResponse<any, any>;
56
54
  tableLabel?: DataTableLabel;
57
55
  }
58
56
  /**
@@ -65,4 +63,4 @@ export interface DataTableProps<TData = unknown> {
65
63
  *
66
64
  * @link https://tanstack.com/table/latest/docs/guide/column-defs
67
65
  */
68
- export declare function DataTable<TData = unknown>({ columns, data, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, columnOrder, columnFilters, columnVisibility, density, globalFilter, pagination, sorting, rowSelection, setPagination, setSorting, setColumnFilters, setRowSelection, setGlobalFilter, setColumnOrder, setDensity, setColumnVisibility, translate, children, tableLabel, }: DataTableProps<TData>): import("react/jsx-runtime").JSX.Element;
66
+ export declare function DataTable<TData = unknown>({ columns, data, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, columnOrder, columnFilters, columnVisibility, density, globalFilter, pagination, sorting, rowSelection, setPagination, setSorting, setColumnFilters, setRowSelection, setGlobalFilter, setColumnOrder, setDensity, setColumnVisibility, children, tableLabel, }: DataTableProps<TData>): import("react/jsx-runtime").JSX.Element;
@@ -1,10 +1,9 @@
1
- import { ReactNode } from "react";
2
- import { UseQueryResult } from "@tanstack/react-query";
3
- import { ColumnDef, ColumnFiltersState, ColumnOrderState, OnChangeFn, PaginationState, RowSelectionState, SortingState, VisibilityState } from "@tanstack/react-table";
4
- import { DensityState } from "./controls/DensityFeature";
5
- import { DataTableLabel } from "./context/DataTableContext";
6
- import { DataResponse } from "./useDataTableServer";
7
- import { UseTranslationResponse } from "react-i18next";
1
+ import { ReactNode } from 'react';
2
+ import { UseQueryResult } from '@tanstack/react-query';
3
+ import { ColumnDef, ColumnFiltersState, ColumnOrderState, OnChangeFn, PaginationState, RowSelectionState, SortingState, VisibilityState } from '@tanstack/react-table';
4
+ import { DensityState } from './controls/DensityFeature';
5
+ import { DataTableLabel } from './context/DataTableContext';
6
+ import { DataResponse } from './useDataTableServer';
8
7
  export interface DataTableServerProps<TData = unknown> {
9
8
  children: ReactNode | ReactNode[];
10
9
  /**
@@ -36,7 +35,6 @@ export interface DataTableServerProps<TData = unknown> {
36
35
  setColumnVisibility: OnChangeFn<VisibilityState>;
37
36
  query: UseQueryResult<DataResponse<TData>>;
38
37
  url?: string;
39
- translate: UseTranslationResponse<any, any>;
40
38
  tableLabel?: DataTableLabel;
41
39
  }
42
40
  /**
@@ -50,4 +48,4 @@ export interface DataTableServerProps<TData = unknown> {
50
48
  *
51
49
  * @link https://tanstack.com/table/latest/docs/guide/column-defs
52
50
  */
53
- export declare function DataTableServer<TData = unknown>({ columns, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, columnOrder, columnFilters, columnVisibility, density, globalFilter, pagination, sorting, rowSelection, setPagination, setSorting, setColumnFilters, setRowSelection, setGlobalFilter, setColumnOrder, setDensity, setColumnVisibility, query, url, translate, children, tableLabel, }: DataTableServerProps<TData>): import("react/jsx-runtime").JSX.Element;
51
+ export declare function DataTableServer<TData = unknown>({ columns, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, columnOrder, columnFilters, columnVisibility, density, globalFilter, pagination, sorting, rowSelection, setPagination, setSorting, setColumnFilters, setRowSelection, setGlobalFilter, setColumnOrder, setDensity, setColumnVisibility, query, url, children, tableLabel, }: DataTableServerProps<TData>): import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,6 @@
1
1
  /// <reference types="react" />
2
- import { OnChangeFn, Table } from "@tanstack/react-table";
3
- import { UseTranslationResponse } from "react-i18next";
4
- import { DataTableProps } from "../DataTable";
2
+ import { OnChangeFn, Table } from '@tanstack/react-table';
3
+ import { DataTableProps } from '../DataTable';
5
4
  export interface DataTableLabel {
6
5
  view: string;
7
6
  edit: string;
@@ -19,12 +18,11 @@ export interface DataTableLabel {
19
18
  trueLabel: string;
20
19
  falseLabel: string;
21
20
  }
22
- export interface DataTableContextProps<TData = unknown> extends DataTableProps {
21
+ export interface DataTableContextProps<TData = unknown> extends Omit<DataTableProps, 'translate'> {
23
22
  table: Table<TData>;
24
23
  globalFilter: string;
25
24
  setGlobalFilter: OnChangeFn<string>;
26
- type: "client" | "server";
27
- translate: UseTranslationResponse<any, unknown>;
25
+ type: 'client' | 'server';
28
26
  tableLabel: DataTableLabel;
29
27
  }
30
28
  export declare const DataTableContext: import("react").Context<DataTableContextProps<unknown>>;
@@ -0,0 +1,29 @@
1
+ import { GridProps } from '@chakra-ui/react';
2
+ import { ReactNode } from 'react';
3
+ export interface MobileTableControlsProps {
4
+ totalText?: string;
5
+ fitTableWidth?: boolean;
6
+ fitTableHeight?: boolean;
7
+ children?: ReactNode;
8
+ showGlobalFilter?: boolean;
9
+ showFilter?: boolean;
10
+ showFilterName?: boolean;
11
+ showFilterTags?: boolean;
12
+ showReload?: boolean;
13
+ showPagination?: boolean;
14
+ showPageSizeControl?: boolean;
15
+ showPageCountText?: boolean;
16
+ showView?: boolean;
17
+ filterTagsOptions?: {
18
+ column: string;
19
+ options: {
20
+ label: string;
21
+ value: string;
22
+ }[];
23
+ }[];
24
+ extraItems?: ReactNode;
25
+ loading?: boolean;
26
+ hasError?: boolean;
27
+ gridProps?: GridProps;
28
+ }
29
+ export declare const MobileTableControls: ({ fitTableWidth, fitTableHeight, children, showGlobalFilter, showFilter, showFilterName, showFilterTags, showReload, showPagination, showPageSizeControl, showPageCountText, showView, filterTagsOptions, extraItems, loading, hasError, gridProps, }: MobileTableControlsProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,5 @@
1
- import { GridProps } from "@chakra-ui/react";
2
- import { ReactNode } from "react";
1
+ import { GridProps } from '@chakra-ui/react';
2
+ import { ReactNode } from 'react';
3
3
  export interface TableControlsProps {
4
4
  totalText?: string;
5
5
  fitTableWidth?: boolean;
@@ -0,0 +1,84 @@
1
+ /// <reference types="react" />
2
+ export interface CalendarEvent<TData = unknown> {
3
+ data: TData;
4
+ date: Date;
5
+ title?: string;
6
+ color?: string;
7
+ }
8
+ export interface CalendarDisplayProps<TData = unknown> {
9
+ /**
10
+ * Column ID or accessor key that contains the date for each event
11
+ */
12
+ dateColumn: string;
13
+ /**
14
+ * Optional function to extract date from row data
15
+ * If not provided, will use the dateColumn to get the date
16
+ */
17
+ getDate?: (row: TData) => Date | string | number | null | undefined;
18
+ /**
19
+ * Optional function to get event title from row data
20
+ * If not provided, will use the first column's value
21
+ */
22
+ getEventTitle?: (row: TData) => string;
23
+ /**
24
+ * Optional function to get event color from row data
25
+ */
26
+ getEventColor?: (row: TData) => string;
27
+ /**
28
+ * Optional function to render event content
29
+ */
30
+ renderEvent?: (event: CalendarEvent<TData>) => React.ReactNode;
31
+ /**
32
+ * First day of week (0 = Sunday, 1 = Monday, etc.)
33
+ */
34
+ firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
35
+ /**
36
+ * Show days outside the current month
37
+ */
38
+ showOutsideDays?: boolean;
39
+ /**
40
+ * Number of months to display
41
+ */
42
+ monthsToDisplay?: number;
43
+ /**
44
+ * Calendar labels
45
+ */
46
+ labels?: {
47
+ monthNamesShort: string[];
48
+ weekdayNamesShort: string[];
49
+ backButtonLabel?: string;
50
+ forwardButtonLabel?: string;
51
+ };
52
+ /**
53
+ * Callback when a date is clicked
54
+ */
55
+ onDateClick?: (date: Date, events: CalendarEvent<TData>[]) => void;
56
+ /**
57
+ * Callback when an event is clicked
58
+ */
59
+ onEventClick?: (event: CalendarEvent<TData>) => void;
60
+ /**
61
+ * Maximum number of events to show per day before showing "+N more"
62
+ */
63
+ maxEventsPerDay?: number;
64
+ /**
65
+ * Color palette for the calendar
66
+ */
67
+ colorPalette?: 'gray' | 'red' | 'orange' | 'yellow' | 'green' | 'teal' | 'blue' | 'cyan' | 'purple' | 'pink';
68
+ /**
69
+ * Fixed placeholder text to show when width is too narrow
70
+ * @default "..."
71
+ */
72
+ eventPlaceholder?: string;
73
+ /**
74
+ * Minimum width (in pixels) before showing placeholder instead of title
75
+ * @default 80
76
+ */
77
+ minEventWidth?: number;
78
+ /**
79
+ * Minimum number of characters to show before ellipsis
80
+ * @default 2
81
+ */
82
+ minCharsBeforeEllipsis?: number;
83
+ }
84
+ export declare function CalendarDisplay<TData = unknown>({ dateColumn, getDate, getEventTitle, getEventColor, renderEvent, firstDayOfWeek, showOutsideDays, monthsToDisplay, labels, onDateClick, onEventClick, maxEventsPerDay, colorPalette, eventPlaceholder, minEventWidth, minCharsBeforeEllipsis, }: CalendarDisplayProps<TData>): import("react/jsx-runtime").JSX.Element | null;
@@ -1,6 +1,4 @@
1
- import { UseTranslationResponse } from 'react-i18next';
2
1
  export interface DataDisplayProps {
3
2
  variant?: 'horizontal' | 'stats' | '';
4
- translate?: UseTranslationResponse<any, any>;
5
3
  }
6
4
  export declare const DataDisplay: ({ variant }: DataDisplayProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ export interface MobileTableDisplayProps {
2
+ showSelector?: boolean;
3
+ isLoading?: boolean;
4
+ }
5
+ export declare const MobileTableDisplay: ({ showSelector, isLoading, }: MobileTableDisplayProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,9 +1,7 @@
1
1
  import { BoxProps } from '@chakra-ui/react';
2
- import { UseTranslationResponse } from 'react-i18next';
3
2
  export interface RecordDisplayProps {
4
3
  object: object | null;
5
4
  boxProps?: BoxProps;
6
- translate?: UseTranslationResponse<any, any>;
7
5
  prefix?: string;
8
6
  }
9
- export declare const RecordDisplay: ({ object, boxProps, translate, prefix, }: RecordDisplayProps) => import("react/jsx-runtime").JSX.Element;
7
+ export declare const RecordDisplay: ({ object, boxProps, prefix, }: RecordDisplayProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Hook to detect if the current window width is mobile (< 768px)
3
+ * @param breakpoint - The breakpoint in pixels to consider as mobile (default: 768)
4
+ * @returns boolean indicating if the window is mobile
5
+ */
6
+ export declare const useIsMobile: (breakpoint?: number) => boolean;
@@ -1,6 +1,5 @@
1
- import { ColumnFiltersState, ColumnOrderState, OnChangeFn, PaginationState, RowSelectionState, SortingState, VisibilityState } from "@tanstack/react-table";
2
- import { DensityState } from "./controls/DensityFeature";
3
- import { UseTranslationResponse } from "react-i18next";
1
+ import { ColumnFiltersState, ColumnOrderState, OnChangeFn, PaginationState, RowSelectionState, SortingState, VisibilityState } from '@tanstack/react-table';
2
+ import { DensityState } from './controls/DensityFeature';
4
3
  export interface DataTableDefaultState {
5
4
  sorting?: SortingState;
6
5
  columnFilters?: ColumnFiltersState;
@@ -13,7 +12,6 @@ export interface DataTableDefaultState {
13
12
  }
14
13
  export interface UseDataTableProps {
15
14
  default?: DataTableDefaultState;
16
- keyPrefix?: string;
17
15
  }
18
16
  export interface UseDataTableReturn {
19
17
  sorting: SortingState;
@@ -32,6 +30,5 @@ export interface UseDataTableReturn {
32
30
  setColumnOrder: OnChangeFn<ColumnOrderState>;
33
31
  setDensity: OnChangeFn<DensityState>;
34
32
  setColumnVisibility: OnChangeFn<VisibilityState>;
35
- translate: UseTranslationResponse<any, any>;
36
33
  }
37
- export declare const useDataTable: ({ default: { sorting: defaultSorting, pagination: defaultPagination, rowSelection: defaultRowSelection, columnFilters: defaultColumnFilters, columnOrder: defaultColumnOrder, columnVisibility: defaultColumnVisibility, globalFilter: defaultGlobalFilter, density: defaultDensity, }, keyPrefix, }?: UseDataTableProps) => UseDataTableReturn;
34
+ export declare const useDataTable: ({ default: { sorting: defaultSorting, pagination: defaultPagination, rowSelection: defaultRowSelection, columnFilters: defaultColumnFilters, columnOrder: defaultColumnOrder, columnVisibility: defaultColumnVisibility, globalFilter: defaultGlobalFilter, density: defaultDensity, }, }?: UseDataTableProps) => UseDataTableReturn;
@@ -1,7 +1,7 @@
1
- import { UseQueryResult } from "@tanstack/react-query";
2
- import { ColumnFiltersState, SortingState } from "@tanstack/react-table";
3
- import { UseDataTableProps, UseDataTableReturn } from "./useDataTable";
4
- export interface UseDataTableServerProps<TData> extends UseDataTableProps {
1
+ import { UseQueryResult } from '@tanstack/react-query';
2
+ import { ColumnFiltersState, SortingState } from '@tanstack/react-table';
3
+ import { UseDataTableProps, UseDataTableReturn } from './useDataTable';
4
+ export interface UseDataTableServerProps<TData> extends Omit<UseDataTableProps, 'keyPrefix'> {
5
5
  /**
6
6
  * Delay to send the request if the `refreshData` called multiple times
7
7
  *
@@ -1,6 +1,5 @@
1
- import { ColumnDef, RowData } from "@tanstack/react-table";
2
- import { JSONSchema7 } from "json-schema";
3
- import { UseTranslationResponse } from "react-i18next";
1
+ import { ColumnDef, RowData } from '@tanstack/react-table';
2
+ import { JSONSchema7 } from 'json-schema';
4
3
  export interface GetColumnsConfigs<K extends RowData> {
5
4
  schema: JSONSchema7;
6
5
  include?: K[];
@@ -10,7 +9,6 @@ export interface GetColumnsConfigs<K extends RowData> {
10
9
  [key in K as string]?: object;
11
10
  };
12
11
  defaultWidth?: number;
13
- translate?: UseTranslationResponse<any, any>;
14
12
  }
15
13
  export declare const widthSanityCheck: <K extends unknown>(widthList: number[], ignoreList: K[], properties: { [key in K as string]?: object | undefined; }) => void;
16
- export declare const getColumns: <TData extends unknown>({ schema, include, ignore, width, meta, defaultWidth, translate, }: GetColumnsConfigs<TData>) => ColumnDef<TData>[];
14
+ export declare const getColumns: <TData extends unknown>({ schema, include, ignore, width, meta, defaultWidth, }: GetColumnsConfigs<TData>) => ColumnDef<TData>[];
@@ -1,6 +1,6 @@
1
- import { Props, RenderProps } from "@bsol-oss/dayzed-react19";
2
- import React from "react";
3
- export interface CalendarProps extends RenderProps {
1
+ import React from 'react';
2
+ import { type CalendarRenderProps } from './useCalendar';
3
+ export interface CalendarProps extends CalendarRenderProps {
4
4
  firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
5
5
  }
6
6
  export interface GetDateColorProps {
@@ -13,9 +13,10 @@ export interface GetVariantProps {
13
13
  selected: boolean;
14
14
  selectable: boolean;
15
15
  }
16
- export interface DatePickerProps extends Props {
16
+ export interface DatePickerProps {
17
17
  onDateSelected?: (obj: {
18
18
  date: Date;
19
+ selected: Date | Date[];
19
20
  }) => void;
20
21
  selected: Date | Date[];
21
22
  firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
@@ -30,7 +31,7 @@ export interface DatePickerProps extends Props {
30
31
  backButtonLabel?: string;
31
32
  forwardButtonLabel?: string;
32
33
  };
33
- render?: (dayzedData: any) => React.ReactNode;
34
+ render?: (calendarData: CalendarRenderProps) => React.ReactNode;
34
35
  }
35
36
  export interface DatePickerLabels {
36
37
  monthNamesShort: string[];
@@ -38,7 +39,5 @@ export interface DatePickerLabels {
38
39
  backButtonLabel?: string;
39
40
  forwardButtonLabel?: string;
40
41
  }
41
- declare class DatePicker extends React.Component<DatePickerProps> {
42
- render(): import("react/jsx-runtime").JSX.Element;
43
- }
42
+ declare const DatePicker: React.FC<DatePickerProps>;
44
43
  export default DatePicker;
@@ -1,15 +1,17 @@
1
1
  import { DatePickerLabels } from './DatePicker';
2
+ import { TimePickerLabels } from '../Form/components/types/CustomJSONSchema7';
2
3
  interface DateTimePickerProps {
3
4
  value?: string;
4
5
  onChange?: (date?: string) => void;
5
6
  format?: 'date-time' | 'iso-date-time';
6
7
  showSeconds?: boolean;
7
8
  labels?: DatePickerLabels;
9
+ timePickerLabels?: TimePickerLabels;
8
10
  timezone?: string;
9
11
  startTime?: string;
10
12
  minDate?: Date;
11
13
  maxDate?: Date;
12
14
  portalled?: boolean;
13
15
  }
14
- export declare function DateTimePicker({ value, onChange, format, showSeconds, labels, timezone, startTime, minDate, maxDate, portalled, }: DateTimePickerProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare function DateTimePicker({ value, onChange, format, showSeconds, labels, timePickerLabels, timezone, startTime, minDate, maxDate, portalled, }: DateTimePickerProps): import("react/jsx-runtime").JSX.Element;
15
17
  export {};
@@ -15,6 +15,10 @@ interface IsoTimePickerProps {
15
15
  selectedDate?: string;
16
16
  timezone?: string;
17
17
  portalled?: boolean;
18
+ labels?: {
19
+ placeholder?: string;
20
+ emptyMessage?: string;
21
+ };
18
22
  }
19
- export declare function IsoTimePicker({ hour, setHour, minute, setMinute, second, setSecond, onChange, startTime, selectedDate, timezone, portalled, }: IsoTimePickerProps): import("react/jsx-runtime").JSX.Element;
23
+ export declare function IsoTimePicker({ hour, setHour, minute, setMinute, second, setSecond, onChange, startTime, selectedDate, timezone, portalled, labels, }: IsoTimePickerProps): import("react/jsx-runtime").JSX.Element;
20
24
  export {};
@@ -1,6 +1,6 @@
1
- import { Props, RenderProps } from '@bsol-oss/dayzed-react19';
2
1
  import React from 'react';
3
- export interface RangeCalendarProps extends RenderProps {
2
+ import { CalendarRenderProps } from './useCalendar';
3
+ export interface RangeCalendarProps extends CalendarRenderProps {
4
4
  firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
5
5
  selected?: Date[];
6
6
  }
@@ -16,7 +16,7 @@ export interface RangeDatePickerLabels {
16
16
  backButtonLabel?: string;
17
17
  forwardButtonLabel?: string;
18
18
  }
19
- export interface RangeDatePickerProps extends Props {
19
+ export interface RangeDatePickerProps {
20
20
  onDateSelected?: (obj: {
21
21
  selected: Date[];
22
22
  selectable: boolean;
@@ -68,7 +68,7 @@ export interface RangeDatePickerProps extends Props {
68
68
  * @default true
69
69
  */
70
70
  portalled?: boolean;
71
- render?: (dayzedData: RenderProps) => React.ReactNode;
71
+ render?: (calendarData: CalendarRenderProps) => React.ReactNode;
72
72
  }
73
73
  declare const RangeDatePicker: React.FC<RangeDatePickerProps>;
74
74
  export default RangeDatePicker;
@@ -0,0 +1,48 @@
1
+ export interface CalendarDate {
2
+ date: Date;
3
+ selected: boolean;
4
+ selectable: boolean;
5
+ today: boolean;
6
+ isCurrentMonth: boolean;
7
+ }
8
+ export interface Calendar {
9
+ month: number;
10
+ year: number;
11
+ weeks: Array<Array<CalendarDate | null>>;
12
+ }
13
+ export interface UseCalendarProps {
14
+ selected?: Date | Date[];
15
+ firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
16
+ showOutsideDays?: boolean;
17
+ date?: Date;
18
+ minDate?: Date;
19
+ maxDate?: Date;
20
+ monthsToDisplay?: number;
21
+ onDateSelected?: (obj: {
22
+ date: Date;
23
+ selected: Date | Date[];
24
+ }) => void;
25
+ }
26
+ export interface CalendarRenderProps {
27
+ calendars: Calendar[];
28
+ getBackProps: (props?: {
29
+ calendars?: Calendar[];
30
+ offset?: number;
31
+ }) => {
32
+ onClick: () => void;
33
+ };
34
+ getForwardProps: (props?: {
35
+ calendars?: Calendar[];
36
+ offset?: number;
37
+ }) => {
38
+ onClick: () => void;
39
+ };
40
+ getDateProps: (props: {
41
+ dateObj: CalendarDate;
42
+ onMouseEnter?: () => void;
43
+ }) => {
44
+ onClick: () => void;
45
+ onMouseEnter?: () => void;
46
+ };
47
+ }
48
+ export declare function useCalendar({ selected, firstDayOfWeek, showOutsideDays, date, minDate, maxDate, monthsToDisplay, onDateSelected, }: UseCalendarProps): CalendarRenderProps;
@@ -2,8 +2,8 @@ import { AxiosRequestConfig } from 'axios';
2
2
  import { JSONSchema7 } from 'json-schema';
3
3
  import { Dispatch, ReactNode, SetStateAction } from 'react';
4
4
  import { FieldValues, Resolver } from 'react-hook-form';
5
- import { UseTranslationResponse } from 'react-i18next';
6
- import { DateTimePickerLabels, IdPickerLabels, EnumPickerLabels, FilePickerLabels, FormButtonLabels } from './components/types/CustomJSONSchema7';
5
+ import { Translate } from './useForm';
6
+ import { DateTimePickerLabels, IdPickerLabels, EnumPickerLabels, FilePickerLabels, FormButtonLabels, TimePickerLabels } from './components/types/CustomJSONSchema7';
7
7
  export interface SchemaFormContext<TData extends FieldValues> {
8
8
  schema: JSONSchema7;
9
9
  serverUrl: string;
@@ -15,7 +15,8 @@ export interface SchemaFormContext<TData extends FieldValues> {
15
15
  rowNumber?: number | string;
16
16
  idMap: Record<string, object>;
17
17
  setIdMap: Dispatch<SetStateAction<Record<string, object>>>;
18
- translate: UseTranslationResponse<string, string>;
18
+ /** Translate object for fallback text (components prefer label objects) */
19
+ translate: Translate;
19
20
  requestOptions: AxiosRequestConfig;
20
21
  isSuccess: boolean;
21
22
  setIsSuccess: Dispatch<SetStateAction<boolean>>;
@@ -45,6 +46,7 @@ export interface SchemaFormContext<TData extends FieldValues> {
45
46
  enumPickerLabels?: EnumPickerLabels;
46
47
  filePickerLabels?: FilePickerLabels;
47
48
  formButtonLabels?: FormButtonLabels;
49
+ timePickerLabels?: TimePickerLabels;
48
50
  ajvResolver: Resolver<FieldValues>;
49
51
  insideDialog?: boolean;
50
52
  }
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
- export declare const FormBody: <TData extends object>() => string | number | bigint | boolean | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
1
+ export declare const FormBody: () => import("react/jsx-runtime").JSX.Element;
@@ -3,8 +3,8 @@ import { AxiosRequestConfig } from 'axios';
3
3
  import { JSONSchema7 } from 'json-schema';
4
4
  import { Dispatch, ReactNode, SetStateAction } from 'react';
5
5
  import { FieldValues, SubmitHandler, UseFormReturn } from 'react-hook-form';
6
- import { UseTranslationResponse } from 'react-i18next';
7
- import { CustomJSONSchema7, DateTimePickerLabels, IdPickerLabels, EnumPickerLabels, FilePickerLabels, FormButtonLabels } from '../types/CustomJSONSchema7';
6
+ import { Translate } from '../../useForm';
7
+ import { CustomJSONSchema7, DateTimePickerLabels, IdPickerLabels, EnumPickerLabels, FilePickerLabels, FormButtonLabels, TimePickerLabels } from '../types/CustomJSONSchema7';
8
8
  export interface FormRootProps<TData extends FieldValues> {
9
9
  schema: CustomJSONSchema7;
10
10
  serverUrl: string;
@@ -12,7 +12,8 @@ export interface FormRootProps<TData extends FieldValues> {
12
12
  idMap: Record<string, object>;
13
13
  setIdMap: Dispatch<SetStateAction<Record<string, object>>>;
14
14
  form: UseFormReturn;
15
- translate: UseTranslationResponse<any, any>;
15
+ /** Translate object for fallback text (components prefer label objects) */
16
+ translate: Translate;
16
17
  children: ReactNode;
17
18
  order?: string[];
18
19
  ignore?: string[];
@@ -34,6 +35,7 @@ export interface FormRootProps<TData extends FieldValues> {
34
35
  enumPickerLabels?: EnumPickerLabels;
35
36
  filePickerLabels?: FilePickerLabels;
36
37
  formButtonLabels?: FormButtonLabels;
38
+ timePickerLabels?: TimePickerLabels;
37
39
  insideDialog?: boolean;
38
40
  }
39
41
  export interface CustomJSONSchema7Definition extends JSONSchema7 {
@@ -49,4 +51,4 @@ export declare const idPickerSanityCheck: (column: string, foreign_key?: {
49
51
  table?: string | undefined;
50
52
  column?: string | undefined;
51
53
  } | undefined) => void;
52
- export declare const FormRoot: <TData extends FieldValues>({ schema, idMap, setIdMap, form, serverUrl, translate, children, order, ignore, include, onSubmit, rowNumber, requestOptions, getUpdatedData, customErrorRenderer, customSuccessRenderer, displayConfig, requireConfirmation, dateTimePickerLabels, idPickerLabels, enumPickerLabels, filePickerLabels, formButtonLabels, insideDialog, }: FormRootProps<TData>) => import("react/jsx-runtime").JSX.Element;
54
+ export declare const FormRoot: <TData extends FieldValues>({ schema, idMap, setIdMap, form, serverUrl, translate, children, order, ignore, include, onSubmit, rowNumber, requestOptions, getUpdatedData, customErrorRenderer, customSuccessRenderer, displayConfig, requireConfirmation, dateTimePickerLabels, idPickerLabels, enumPickerLabels, filePickerLabels, formButtonLabels, timePickerLabels, insideDialog, }: FormRootProps<TData>) => import("react/jsx-runtime").JSX.Element;
@@ -10,9 +10,8 @@ interface MediaBrowserDialogProps {
10
10
  onUploadFile?: (file: File) => Promise<string>;
11
11
  enableUpload?: boolean;
12
12
  labels?: FilePickerLabels;
13
- translate: (key: string) => string;
14
13
  colLabel: string;
15
14
  }
16
- export declare function MediaBrowserDialog({ open, onClose, onSelect, title, filterImageOnly, onFetchFiles, onUploadFile, enableUpload, labels, translate, colLabel, }: MediaBrowserDialogProps): import("react/jsx-runtime").JSX.Element | null;
15
+ export declare function MediaBrowserDialog({ open, onClose, onSelect, title, filterImageOnly, onFetchFiles, onUploadFile, enableUpload, labels, colLabel, }: MediaBrowserDialogProps): import("react/jsx-runtime").JSX.Element | null;
17
16
  export declare const FilePicker: ({ column, schema, prefix }: InputDefaultProps) => import("react/jsx-runtime").JSX.Element;
18
17
  export {};
@@ -5,4 +5,12 @@ export interface IdPickerProps {
5
5
  prefix: string;
6
6
  isMultiple?: boolean;
7
7
  }
8
+ /**
9
+ * IdPicker component - supports both single and multiple selection
10
+ *
11
+ * @deprecated For better type safety and clarity, use IdPickerSingle or IdPickerMultiple directly
12
+ * This component is kept for backward compatibility
13
+ */
8
14
  export declare const IdPicker: ({ column, schema, prefix, isMultiple, }: IdPickerProps) => import("react/jsx-runtime").JSX.Element;
15
+ export { IdPickerSingle } from './IdPickerSingle';
16
+ export { IdPickerMultiple } from './IdPickerMultiple';
@@ -0,0 +1,7 @@
1
+ import { CustomJSONSchema7 } from '../types/CustomJSONSchema7';
2
+ export interface IdPickerMultipleProps {
3
+ column: string;
4
+ schema: CustomJSONSchema7;
5
+ prefix: string;
6
+ }
7
+ export declare const IdPickerMultiple: ({ column, schema, prefix, }: IdPickerMultipleProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { CustomJSONSchema7 } from '../types/CustomJSONSchema7';
2
+ export interface IdPickerSingleProps {
3
+ column: string;
4
+ schema: CustomJSONSchema7;
5
+ prefix: string;
6
+ }
7
+ export declare const IdPickerSingle: ({ column, schema, prefix, }: IdPickerSingleProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,46 @@
1
+ /// <reference types="react" />
2
+ import { CustomJSONSchema7 } from '../types/CustomJSONSchema7';
3
+ export interface RecordType {
4
+ [key: string]: any;
5
+ }
6
+ export interface UseIdPickerDataProps {
7
+ column: string;
8
+ schema: CustomJSONSchema7;
9
+ prefix: string;
10
+ isMultiple: boolean;
11
+ }
12
+ export interface UseIdPickerDataReturn {
13
+ colLabel: string;
14
+ currentValue: string[];
15
+ searchText: string;
16
+ setSearchText: (text: string) => void;
17
+ debouncedSearchText: string;
18
+ isLoading: boolean;
19
+ isFetching: boolean;
20
+ isPending: boolean;
21
+ isError: boolean;
22
+ isSearching: boolean;
23
+ isLoadingInitialValues: boolean;
24
+ isFetchingInitialValues: boolean;
25
+ missingIds: string[];
26
+ comboboxItems: Array<{
27
+ label: string;
28
+ value: string;
29
+ raw: RecordType;
30
+ }>;
31
+ collection: any;
32
+ filter: (text: string) => void;
33
+ set: (items: Array<{
34
+ label: string;
35
+ value: string;
36
+ raw: RecordType;
37
+ }>) => void;
38
+ idMap: Record<string, object>;
39
+ idPickerLabels: any;
40
+ insideDialog: boolean;
41
+ renderDisplay: ((item: RecordType) => React.ReactNode) | undefined;
42
+ column_ref: string;
43
+ errors: any;
44
+ setValue: (name: string, value: any) => void;
45
+ }
46
+ export declare const useIdPickerData: ({ column, schema, prefix, isMultiple, }: UseIdPickerDataProps) => UseIdPickerDataReturn;
@@ -50,6 +50,15 @@ export interface FormButtonLabels {
50
50
  cancel?: string;
51
51
  confirm?: string;
52
52
  submitAgain?: string;
53
+ submitSuccess?: string;
54
+ add?: string;
55
+ save?: string;
56
+ addNew?: string;
57
+ fieldRequired?: string;
58
+ }
59
+ export interface TimePickerLabels {
60
+ placeholder?: string;
61
+ emptyMessage?: string;
53
62
  }
54
63
  export interface CustomJSONSchema7 extends JSONSchema7 {
55
64
  gridColumn?: string;