@bsol-oss/react-datatable5 12.0.0-beta.8 → 12.0.0-beta.81

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 (128) hide show
  1. package/README.md +224 -5
  2. package/dist/index.d.ts +780 -258
  3. package/dist/index.js +3431 -1184
  4. package/dist/index.mjs +3328 -1086
  5. package/dist/types/components/DataTable/DataTable.d.ts +12 -7
  6. package/dist/types/components/DataTable/DataTableServer.d.ts +6 -4
  7. package/dist/types/components/DataTable/DefaultTable.d.ts +12 -14
  8. package/dist/types/components/DataTable/DefaultTableServer.d.ts +23 -0
  9. package/dist/types/components/DataTable/context/DataTableContext.d.ts +21 -3
  10. package/dist/types/components/DataTable/context/useDataTableContext.d.ts +2 -2
  11. package/dist/types/components/DataTable/controls/ReloadButton.d.ts +1 -2
  12. package/dist/types/components/DataTable/controls/ResetFilteringButton.d.ts +1 -4
  13. package/dist/types/components/DataTable/controls/ResetSelectionButton.d.ts +1 -4
  14. package/dist/types/components/DataTable/controls/ResetSortingButton.d.ts +1 -4
  15. package/dist/types/components/DataTable/controls/TableControls.d.ts +10 -2
  16. package/dist/types/components/DataTable/display/Table.d.ts +4 -3
  17. package/dist/types/components/DataTable/display/TableBody.d.ts +1 -2
  18. package/dist/types/components/DataTable/display/TableBodySkeleton.d.ts +5 -0
  19. package/dist/types/components/DataTable/display/TableCardContainer.d.ts +6 -3
  20. package/dist/types/components/DataTable/display/TableDataDisplay.d.ts +6 -1
  21. package/dist/types/components/DataTable/display/TableFooter.d.ts +1 -5
  22. package/dist/types/components/DataTable/display/TableHeader.d.ts +46 -8
  23. package/dist/types/components/DataTable/hooks/useResponsiveColumnVisibility.d.ts +13 -0
  24. package/dist/types/components/DataTable/useDataTableServer.d.ts +55 -3
  25. package/dist/types/components/DatePicker/DatePicker.d.ts +23 -0
  26. package/dist/types/components/DatePicker/DateTimePicker.d.ts +11 -0
  27. package/dist/types/components/DatePicker/DurationPicker.d.ts +12 -0
  28. package/dist/types/components/DatePicker/IsoTimePicker.d.ts +16 -0
  29. package/dist/types/components/DatePicker/PickerDemo.d.ts +1 -0
  30. package/dist/types/components/DatePicker/UniversalPicker.d.ts +9 -0
  31. package/dist/types/components/DatePicker/index.d.ts +7 -0
  32. package/dist/types/components/Filter/TagFilter.d.ts +5 -1
  33. package/dist/types/components/Form/SchemaFormContext.d.ts +22 -6
  34. package/dist/types/components/Form/components/FileDropzone.d.ts +2 -2
  35. package/dist/types/components/Form/components/core/DefaultForm.d.ts +1 -0
  36. package/dist/types/components/Form/components/core/FormBody.d.ts +2 -1
  37. package/dist/types/components/Form/components/core/FormRoot.d.ts +21 -8
  38. package/dist/types/components/Form/components/fields/BooleanPicker.d.ts +1 -1
  39. package/dist/types/components/Form/components/fields/ColumnRenderer.d.ts +3 -2
  40. package/dist/types/components/Form/components/fields/CustomInput.d.ts +8 -0
  41. package/dist/types/components/Form/components/fields/DatePicker.d.ts +2 -7
  42. package/dist/types/components/Form/components/fields/DateRangePicker.d.ts +2 -0
  43. package/dist/types/components/Form/components/fields/DateTimePicker.d.ts +2 -0
  44. package/dist/types/components/Form/components/fields/EnumPicker.d.ts +3 -2
  45. package/dist/types/components/Form/components/fields/FilePicker.d.ts +2 -5
  46. package/dist/types/components/Form/components/fields/IdPicker.d.ts +1 -1
  47. package/dist/types/components/Form/components/fields/NumberInputField.d.ts +1 -1
  48. package/dist/types/components/Form/components/fields/ObjectInput.d.ts +1 -1
  49. package/dist/types/components/Form/components/fields/RecordInput.d.ts +1 -1
  50. package/dist/types/components/Form/components/fields/SchemaRenderer.d.ts +1 -1
  51. package/dist/types/components/Form/components/fields/StringInputField.d.ts +23 -5
  52. package/dist/types/components/Form/components/fields/TextAreaInput.d.ts +12 -0
  53. package/dist/types/components/Form/components/{DatePicker.d.ts → fields/TimePicker.d.ts} +2 -2
  54. package/dist/types/components/Form/components/fields/types.d.ts +6 -0
  55. package/dist/types/components/Form/components/types/CustomJSONSchema7.d.ts +77 -4
  56. package/dist/types/components/Form/components/viewers/CustomViewer.d.ts +8 -0
  57. package/dist/types/components/Form/components/viewers/DateTimeViewer.d.ts +7 -0
  58. package/dist/types/components/Form/components/viewers/NumberViewer.d.ts +1 -1
  59. package/dist/types/components/Form/components/viewers/TextAreaViewer.d.ts +12 -0
  60. package/dist/types/components/Form/components/viewers/TimeViewer.d.ts +7 -0
  61. package/dist/types/components/Form/useForm.d.ts +6 -3
  62. package/dist/types/components/Form/utils/ajvResolver.d.ts +13 -0
  63. package/dist/types/components/Form/utils/buildErrorMessages.d.ts +223 -0
  64. package/dist/types/components/Form/utils/formatBytes.d.ts +6 -0
  65. package/dist/types/components/Form/utils/getFieldError.d.ts +6 -0
  66. package/dist/types/components/Form/utils/useFormI18n.d.ts +53 -0
  67. package/dist/types/components/Form/utils/validateData.d.ts +9 -0
  68. package/dist/types/components/TextArea/TextArea.d.ts +22 -0
  69. package/dist/types/components/TimePicker/TimePicker.d.ts +21 -0
  70. package/dist/types/components/ui/field.d.ts +3 -3
  71. package/dist/types/index.d.ts +79 -55
  72. package/package.json +18 -3
  73. package/dist/types/components/Controls/DensityFeature.d.ts +0 -23
  74. package/dist/types/components/Controls/DensityToggleButton.d.ts +0 -6
  75. package/dist/types/components/Controls/EditFilterButton.d.ts +0 -9
  76. package/dist/types/components/Controls/EditOrderButton.d.ts +0 -7
  77. package/dist/types/components/Controls/EditSortingButton.d.ts +0 -7
  78. package/dist/types/components/Controls/EditViewButton.d.ts +0 -7
  79. package/dist/types/components/Controls/FilterDialog.d.ts +0 -5
  80. package/dist/types/components/Controls/PageSizeControl.d.ts +0 -4
  81. package/dist/types/components/Controls/Pagination.d.ts +0 -1
  82. package/dist/types/components/Controls/ResetFilteringButton.d.ts +0 -4
  83. package/dist/types/components/Controls/ResetSelectionButton.d.ts +0 -4
  84. package/dist/types/components/Controls/ResetSortingButton.d.ts +0 -4
  85. package/dist/types/components/Controls/RowCountText.d.ts +0 -1
  86. package/dist/types/components/Controls/SelectAllRowsToggle.d.ts +0 -8
  87. package/dist/types/components/Controls/TablePagination.d.ts +0 -1
  88. package/dist/types/components/Controls/ViewDialog.d.ts +0 -5
  89. package/dist/types/components/DataTable/CardHeader.d.ts +0 -13
  90. package/dist/types/components/DataTable/DataDisplay.d.ts +0 -6
  91. package/dist/types/components/DataTable/ReloadButton.d.ts +0 -5
  92. package/dist/types/components/DataTable/Table.d.ts +0 -10
  93. package/dist/types/components/DataTable/TableBody.d.ts +0 -21
  94. package/dist/types/components/DataTable/TableCardContainer.d.ts +0 -7
  95. package/dist/types/components/DataTable/TableCards.d.ts +0 -11
  96. package/dist/types/components/DataTable/TableComponent.d.ts +0 -6
  97. package/dist/types/components/DataTable/TableControls.d.ts +0 -21
  98. package/dist/types/components/DataTable/TableFilter.d.ts +0 -1
  99. package/dist/types/components/DataTable/TableFilterTags.d.ts +0 -1
  100. package/dist/types/components/DataTable/TableFilters.d.ts +0 -1
  101. package/dist/types/components/DataTable/TableFooter.d.ts +0 -9
  102. package/dist/types/components/DataTable/TableHeader.d.ts +0 -13
  103. package/dist/types/components/DataTable/TableLoadingComponent.d.ts +0 -5
  104. package/dist/types/components/DataTable/TableOrderer.d.ts +0 -1
  105. package/dist/types/components/DataTable/TableSelector.d.ts +0 -1
  106. package/dist/types/components/DataTable/TableSorter.d.ts +0 -1
  107. package/dist/types/components/DataTable/TableViewer.d.ts +0 -1
  108. package/dist/types/components/DataTable/TextCell.d.ts +0 -10
  109. package/dist/types/components/DataTable/components/EmptyState.d.ts +0 -5
  110. package/dist/types/components/DataTable/components/ErrorAlert.d.ts +0 -4
  111. package/dist/types/components/DataTable/components/RecordDisplay.d.ts +0 -9
  112. package/dist/types/components/DataTable/components/TextCell.d.ts +0 -10
  113. package/dist/types/components/Filter/DateRangeFilter.d.ts +0 -9
  114. package/dist/types/components/Filter/FilterOptions.d.ts +0 -4
  115. package/dist/types/components/Form/Form.d.ts +0 -36
  116. package/dist/types/components/Form/components/ArrayRenderer.d.ts +0 -7
  117. package/dist/types/components/Form/components/BooleanPicker.d.ts +0 -7
  118. package/dist/types/components/Form/components/ColumnRenderer.d.ts +0 -7
  119. package/dist/types/components/Form/components/EnumPicker.d.ts +0 -8
  120. package/dist/types/components/Form/components/FilePicker.d.ts +0 -5
  121. package/dist/types/components/Form/components/IdPicker.d.ts +0 -8
  122. package/dist/types/components/Form/components/IdViewer.d.ts +0 -5
  123. package/dist/types/components/Form/components/NumberInputField.d.ts +0 -7
  124. package/dist/types/components/Form/components/ObjectInput.d.ts +0 -7
  125. package/dist/types/components/Form/components/RecordInput.d.ts +0 -7
  126. package/dist/types/components/Form/components/SchemaRenderer.d.ts +0 -7
  127. package/dist/types/components/Form/components/StringInputField.d.ts +0 -20
  128. package/dist/types/components/Form/components/TagPicker.d.ts +0 -30
@@ -1,9 +1,10 @@
1
- import { ColumnDef, ColumnFiltersState, ColumnOrderState, FilterFn, OnChangeFn, PaginationState, RowSelectionState, SortingState, VisibilityState } from "@tanstack/react-table";
2
- import { ReactNode } from "react";
3
- import { RankingInfo } from "@tanstack/match-sorter-utils";
4
- import { DensityState } from "./controls/DensityFeature";
5
- import { UseTranslationResponse } from "react-i18next";
6
- declare module "@tanstack/react-table" {
1
+ import { ColumnDef, ColumnFiltersState, ColumnOrderState, FilterFn, OnChangeFn, PaginationState, RowSelectionState, SortingState, VisibilityState } from '@tanstack/react-table';
2
+ import { ReactNode } from 'react';
3
+ import { RankingInfo } from '@tanstack/match-sorter-utils';
4
+ import { DensityState } from './controls/DensityFeature';
5
+ import { DataTableLabel } from './context/DataTableContext';
6
+ import { UseTranslationResponse } from 'react-i18next';
7
+ declare module '@tanstack/react-table' {
7
8
  interface FilterFns {
8
9
  fuzzy: FilterFn<unknown>;
9
10
  }
@@ -17,6 +18,9 @@ export interface DataTableProps<TData = unknown> {
17
18
  * Data array for the table.
18
19
  *
19
20
  * It will pass into as the data in `@tanstack/react-table`
21
+ * Do not toggle the data array, it will cause the table to re-render in infinite loop.
22
+ *
23
+ * @default []
20
24
  *
21
25
  */
22
26
  data: TData[];
@@ -49,6 +53,7 @@ export interface DataTableProps<TData = unknown> {
49
53
  setDensity: OnChangeFn<DensityState>;
50
54
  setColumnVisibility: OnChangeFn<VisibilityState>;
51
55
  translate: UseTranslationResponse<any, any>;
56
+ tableLabel?: DataTableLabel;
52
57
  }
53
58
  /**
54
59
  * DataTable will create a context to hold all values to
@@ -60,4 +65,4 @@ export interface DataTableProps<TData = unknown> {
60
65
  *
61
66
  * @link https://tanstack.com/table/latest/docs/guide/column-defs
62
67
  */
63
- 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, }: DataTableProps<TData>): import("react/jsx-runtime").JSX.Element;
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;
@@ -2,9 +2,10 @@ import { ReactNode } from "react";
2
2
  import { UseQueryResult } from "@tanstack/react-query";
3
3
  import { ColumnDef, ColumnFiltersState, ColumnOrderState, OnChangeFn, PaginationState, RowSelectionState, SortingState, VisibilityState } from "@tanstack/react-table";
4
4
  import { DensityState } from "./controls/DensityFeature";
5
+ import { DataTableLabel } from "./context/DataTableContext";
5
6
  import { DataResponse } from "./useDataTableServer";
6
7
  import { UseTranslationResponse } from "react-i18next";
7
- export interface DataTableServerProps<TData extends DataResponse = DataResponse<unknown>> {
8
+ export interface DataTableServerProps<TData = unknown> {
8
9
  children: ReactNode | ReactNode[];
9
10
  /**
10
11
  * Column definitions for the table.
@@ -33,9 +34,10 @@ export interface DataTableServerProps<TData extends DataResponse = DataResponse<
33
34
  setColumnOrder: OnChangeFn<ColumnOrderState>;
34
35
  setDensity: OnChangeFn<DensityState>;
35
36
  setColumnVisibility: OnChangeFn<VisibilityState>;
36
- query: UseQueryResult<TData>;
37
- url: string;
37
+ query: UseQueryResult<DataResponse<TData>>;
38
+ url?: string;
38
39
  translate: UseTranslationResponse<any, any>;
40
+ tableLabel?: DataTableLabel;
39
41
  }
40
42
  /**
41
43
  * DataTableServer will create a context to hold all values to
@@ -48,4 +50,4 @@ export interface DataTableServerProps<TData extends DataResponse = DataResponse<
48
50
  *
49
51
  * @link https://tanstack.com/table/latest/docs/guide/column-defs
50
52
  */
51
- export declare function DataTableServer<TData extends DataResponse = DataResponse<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, }: DataTableServerProps<TData>): import("react/jsx-runtime").JSX.Element;
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;
@@ -1,18 +1,16 @@
1
- import { TableHeaderProps as ChakraHeaderProps } from "@chakra-ui/react";
2
- import { TableBodyProps } from "./display/TableBody";
3
- import { TableControlsProps } from "./controls/TableControls";
4
- import { TableFooterProps } from "./display/TableFooter";
5
- import { TableHeaderProps } from "./display/TableHeader";
6
- import { TableProps } from "./display/Table";
1
+ import { TableControlsProps } from './controls/TableControls';
2
+ import { TableProps } from './display/Table';
3
+ import { TableBodyProps } from './display/TableBody';
4
+ import { TableFooterProps } from './display/TableFooter';
5
+ import { TableHeaderProps } from './display/TableHeader';
7
6
  export interface DefaultTableProps {
8
7
  showFooter?: boolean;
9
- showSelector?: boolean;
10
- tableProps?: Omit<TableProps, "children">;
11
- tHeadProps?: ChakraHeaderProps;
12
- controlProps?: TableControlsProps;
13
- tableFooterProps?: TableFooterProps;
14
- tableBodyProps?: TableBodyProps;
8
+ tableProps?: Omit<TableProps, 'children'>;
15
9
  tableHeaderProps?: TableHeaderProps;
16
- variant?: "" | "greedy";
10
+ tableBodyProps?: TableBodyProps;
11
+ tableFooterProps?: TableFooterProps;
12
+ controlProps?: TableControlsProps;
13
+ variant?: '' | 'greedy';
14
+ isLoading?: boolean;
17
15
  }
18
- export declare const DefaultTable: ({ showFooter, tableProps, tableHeaderProps, tableBodyProps, controlProps, tableFooterProps, variant, }: DefaultTableProps) => import("react/jsx-runtime").JSX.Element;
16
+ export declare const DefaultTable: ({ showFooter, tableProps, tableHeaderProps, tableBodyProps, tableFooterProps, controlProps, variant, isLoading, }: DefaultTableProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,23 @@
1
+ import { DefaultTableProps } from './DefaultTable';
2
+ export interface DefaultTableServerProps extends DefaultTableProps {
3
+ /**
4
+ * Optional isLoading prop to override auto-detected loading state.
5
+ * If not provided, will automatically detect from DataTableServerContext.
6
+ */
7
+ isLoading?: boolean;
8
+ }
9
+ /**
10
+ * DefaultTableServer is a wrapper around DefaultTable that automatically
11
+ * detects server-side loading state from DataTableServerContext.
12
+ *
13
+ * Use this component when working with DataTableServer to automatically
14
+ * show skeleton loading state during data fetching.
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * <DataTableServer columns={columns} {...datatableServer}>
19
+ * <DefaultTableServer />
20
+ * </DataTableServer>
21
+ * ```
22
+ */
23
+ export declare const DefaultTableServer: ({ isLoading: isLoadingOverride, ...props }: DefaultTableServerProps) => import("react/jsx-runtime").JSX.Element;
@@ -2,11 +2,29 @@
2
2
  import { OnChangeFn, Table } from "@tanstack/react-table";
3
3
  import { UseTranslationResponse } from "react-i18next";
4
4
  import { DataTableProps } from "../DataTable";
5
- export interface DataTableContext<TData = unknown> extends DataTableProps {
5
+ export interface DataTableLabel {
6
+ view: string;
7
+ edit: string;
8
+ filterButtonText: string;
9
+ filterTitle: string;
10
+ filterReset: string;
11
+ filterClose: string;
12
+ reloadTooltip: string;
13
+ reloadButtonText: string;
14
+ resetSelection: string;
15
+ resetSorting: string;
16
+ rowCountText: string;
17
+ hasErrorText: string;
18
+ globalFilterPlaceholder: string;
19
+ trueLabel: string;
20
+ falseLabel: string;
21
+ }
22
+ export interface DataTableContextProps<TData = unknown> extends DataTableProps {
6
23
  table: Table<TData>;
7
24
  globalFilter: string;
8
25
  setGlobalFilter: OnChangeFn<string>;
9
26
  type: "client" | "server";
10
- translate: UseTranslationResponse<any, any>;
27
+ translate: UseTranslationResponse<any, unknown>;
28
+ tableLabel: DataTableLabel;
11
29
  }
12
- export declare const DataTableContext: import("react").Context<DataTableContext<unknown>>;
30
+ export declare const DataTableContext: import("react").Context<DataTableContextProps<unknown>>;
@@ -1,2 +1,2 @@
1
- import { DataTableContext } from "./DataTableContext";
2
- export declare const useDataTableContext: <TData>() => DataTableContext<TData>;
1
+ import { DataTableContextProps } from "./DataTableContext";
2
+ export declare const useDataTableContext: <TData>() => DataTableContextProps<TData>;
@@ -1,5 +1,4 @@
1
1
  export interface ReloadButtonProps {
2
- text?: string;
3
2
  variant?: string;
4
3
  }
5
- export declare const ReloadButton: ({ text, variant, }: ReloadButtonProps) => import("react/jsx-runtime").JSX.Element;
4
+ export declare const ReloadButton: ({ variant, }: ReloadButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1 @@
1
- export interface ResetFilteringButtonProps {
2
- text?: string;
3
- }
4
- export declare const ResetFilteringButton: ({ text, }: ResetFilteringButtonProps) => import("react/jsx-runtime").JSX.Element;
1
+ export declare const ResetFilteringButton: () => import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1 @@
1
- export interface ResetSelectionButtonProps {
2
- text?: string;
3
- }
4
- export declare const ResetSelectionButton: ({ text, }: ResetSelectionButtonProps) => import("react/jsx-runtime").JSX.Element;
1
+ export declare const ResetSelectionButton: () => import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1 @@
1
- export interface ResetSortingButtonProps {
2
- text?: string;
3
- }
4
- export declare const ResetSortingButton: ({ text, }: ResetSortingButtonProps) => import("react/jsx-runtime").JSX.Element;
1
+ export declare const ResetSortingButton: () => import("react/jsx-runtime").JSX.Element;
@@ -1,3 +1,4 @@
1
+ import { GridProps } from "@chakra-ui/react";
1
2
  import { ReactNode } from "react";
2
3
  export interface TableControlsProps {
3
4
  totalText?: string;
@@ -13,9 +14,16 @@ export interface TableControlsProps {
13
14
  showPageSizeControl?: boolean;
14
15
  showPageCountText?: boolean;
15
16
  showView?: boolean;
16
- filterOptions?: string[];
17
+ filterTagsOptions?: {
18
+ column: string;
19
+ options: {
20
+ label: string;
21
+ value: string;
22
+ }[];
23
+ }[];
17
24
  extraItems?: ReactNode;
18
25
  loading?: boolean;
19
26
  hasError?: boolean;
27
+ gridProps?: GridProps;
20
28
  }
21
- export declare const TableControls: ({ fitTableWidth, fitTableHeight, children, showGlobalFilter, showFilter, showFilterName, showFilterTags, showReload, showPagination, showPageSizeControl, showPageCountText, showView, filterOptions, extraItems, loading, hasError, }: TableControlsProps) => import("react/jsx-runtime").JSX.Element;
29
+ export declare const TableControls: ({ fitTableWidth, fitTableHeight, children, showGlobalFilter, showFilter, showFilterName, showFilterTags, showReload, showPagination, showPageSizeControl, showPageCountText, showView, filterTagsOptions, extraItems, loading, hasError, gridProps, }: TableControlsProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,10 +1,11 @@
1
- import { TableRootProps } from "@chakra-ui/react";
2
- import { ReactNode } from "react";
1
+ import { TableRootProps } from '@chakra-ui/react';
2
+ import { ReactNode } from 'react';
3
3
  export interface TableProps extends TableRootProps {
4
4
  showLoading?: boolean;
5
5
  loadingComponent?: ReactNode;
6
6
  emptyComponent?: ReactNode;
7
7
  canResize?: boolean;
8
+ showSelector?: boolean;
8
9
  children: ReactNode;
9
10
  }
10
- export declare const Table: ({ children, emptyComponent, canResize, ...props }: TableProps) => string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null;
11
+ export declare const Table: ({ children, emptyComponent, canResize, showLoading, showSelector, ...props }: TableProps) => string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null;
@@ -16,6 +16,5 @@ export interface TableRowSelectorProps<TData> {
16
16
  light: string;
17
17
  dark: string;
18
18
  };
19
- alwaysShowSelector?: boolean;
20
19
  }
21
- export declare const TableBody: ({ pinnedBgColor, showSelector, alwaysShowSelector, canResize, }: TableBodyProps) => import("react/jsx-runtime").JSX.Element;
20
+ export declare const TableBody: ({ showSelector, canResize, }: TableBodyProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ export interface TableBodySkeletonProps {
2
+ showSelector?: boolean;
3
+ canResize?: boolean;
4
+ }
5
+ export declare const TableBodySkeleton: ({ showSelector, canResize, }: TableBodySkeletonProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,10 @@
1
- import { GridProps } from "@chakra-ui/react";
1
+ import { BoxProps, FlexProps } from "@chakra-ui/react";
2
2
  import { ReactNode } from "react";
3
- export interface TableCardContainerProps extends GridProps {
3
+ export interface TableCardContainerProps extends BoxProps {
4
4
  children: ReactNode;
5
5
  variant?: "carousel" | "";
6
+ gap?: string;
7
+ gridTemplateColumns?: string;
8
+ direction?: FlexProps["direction"];
6
9
  }
7
- export declare const TableCardContainer: ({ children, variant, ...props }: TableCardContainerProps) => import("react/jsx-runtime").JSX.Element;
10
+ export declare const TableCardContainer: ({ children, variant, gap, gridTemplateColumns, direction, ...props }: TableCardContainerProps) => import("react/jsx-runtime").JSX.Element;
@@ -1 +1,6 @@
1
- export declare const TableDataDisplay: () => import("react/jsx-runtime").JSX.Element;
1
+ import { ReactNode } from "react";
2
+ export interface TableDataDisplayProps {
3
+ colorPalette?: string;
4
+ emptyComponent?: ReactNode;
5
+ }
6
+ export declare const TableDataDisplay: ({ colorPalette, emptyComponent, }: TableDataDisplayProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,9 +1,5 @@
1
1
  export interface TableFooterProps {
2
- pinnedBgColor?: {
3
- light: string;
4
- dark: string;
5
- };
6
2
  showSelector?: boolean;
7
3
  alwaysShowSelector?: boolean;
8
4
  }
9
- export declare const TableFooter: ({ pinnedBgColor, showSelector, alwaysShowSelector, }: TableFooterProps) => import("react/jsx-runtime").JSX.Element;
5
+ export declare const TableFooter: ({ showSelector, alwaysShowSelector, }: TableFooterProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,13 +1,51 @@
1
- import { TableHeaderProps as ChakraTableHeaderProps } from "@chakra-ui/react";
1
+ import { TableHeaderProps as ChakraTableHeaderProps, TableRowProps } from "@chakra-ui/react";
2
+ export interface TableHeaderTexts {
3
+ pinColumn?: string;
4
+ cancelPin?: string;
5
+ sortAscending?: string;
6
+ sortDescending?: string;
7
+ clearSorting?: string;
8
+ }
2
9
  export interface TableHeaderProps {
3
10
  canResize?: boolean;
4
- pinnedBgColor?: {
5
- light: string;
6
- dark: string;
7
- };
8
11
  showSelector?: boolean;
9
12
  isSticky?: boolean;
10
- alwaysShowSelector?: boolean;
11
- tHeadProps?: ChakraTableHeaderProps;
13
+ tableHeaderProps?: ChakraTableHeaderProps;
14
+ tableRowProps?: TableRowProps;
15
+ /**
16
+ * Default text configuration for all columns.
17
+ * Can be overridden per column via meta.headerTexts.
18
+ */
19
+ defaultTexts?: TableHeaderTexts;
12
20
  }
13
- export declare const TableHeader: ({ canResize, pinnedBgColor, showSelector, isSticky, alwaysShowSelector, tHeadProps, }: TableHeaderProps) => import("react/jsx-runtime").JSX.Element;
21
+ /**
22
+ * TableHeader component with configurable text strings.
23
+ *
24
+ * @example
25
+ * // Using default texts
26
+ * <TableHeader />
27
+ *
28
+ * @example
29
+ * // Customizing default texts for all columns
30
+ * <TableHeader
31
+ * defaultTexts={{
32
+ * pinColumn: "Pin This Column",
33
+ * sortAscending: "Sort A-Z"
34
+ * }}
35
+ * />
36
+ *
37
+ * @example
38
+ * // Customizing texts per column via meta
39
+ * const columns = [
40
+ * columnHelper.accessor("name", {
41
+ * header: "Name",
42
+ * meta: {
43
+ * headerTexts: {
44
+ * pinColumn: "Pin Name Column",
45
+ * sortAscending: "Sort Names A-Z"
46
+ * }
47
+ * }
48
+ * })
49
+ * ];
50
+ */
51
+ export declare const TableHeader: ({ canResize, showSelector, isSticky, tableHeaderProps, tableRowProps, defaultTexts, }: TableHeaderProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ import { RefObject } from 'react';
2
+ interface UseResponsiveColumnVisibilityOptions {
3
+ containerRef: RefObject<HTMLElement>;
4
+ enabled: boolean;
5
+ showSelector?: boolean;
6
+ }
7
+ /**
8
+ * Hook to automatically hide/show columns based on container width.
9
+ * Columns are hidden based on their responsivePriority (lower = hide first).
10
+ * Only activates when canResize={false}.
11
+ */
12
+ export declare const useResponsiveColumnVisibility: ({ containerRef, enabled, showSelector, }: UseResponsiveColumnVisibilityOptions) => void;
13
+ export {};
@@ -1,6 +1,7 @@
1
1
  import { UseQueryResult } from "@tanstack/react-query";
2
+ import { ColumnFiltersState, SortingState } from "@tanstack/react-table";
2
3
  import { UseDataTableProps, UseDataTableReturn } from "./useDataTable";
3
- export interface UseDataTableServerProps extends UseDataTableProps {
4
+ export interface UseDataTableServerProps<TData> extends UseDataTableProps {
4
5
  /**
5
6
  * Delay to send the request if the `refreshData` called multiple times
6
7
  *
@@ -13,7 +14,51 @@ export interface UseDataTableServerProps extends UseDataTableProps {
13
14
  * default: `1000`
14
15
  */
15
16
  debounceDelay?: number;
16
- url: string;
17
+ /**
18
+ * The url to fetch the data from.
19
+ *
20
+ * Remark:
21
+ * it is the server responsibility to handle the params and return the data.
22
+ * especially the pagination and sorting.
23
+ *
24
+ * The response must be like this:
25
+ * ```ts
26
+ * {
27
+ * data: TData[],
28
+ * count: number,
29
+ * }
30
+ * ```
31
+ *
32
+ * Example:
33
+ * ```ts
34
+ * const url = "https://jsonplaceholder.typicode.com/posts";
35
+ * ```
36
+ *
37
+ * If not provided, the `queryFn` will be used.
38
+ *
39
+ * @default undefined
40
+ */
41
+ url?: string;
42
+ placeholderData?: DataResponse<TData>;
43
+ /**
44
+ * The query function to fetch the data from.
45
+ *
46
+ * Remark:
47
+ * it is the server responsibility to handle the params and return the data.
48
+ * especially the pagination and sorting.
49
+ *
50
+ * Example:
51
+ * ```ts
52
+ * const queryFn = (params: QueryParams) => {
53
+ * return axios.get<DataResponse<TData>>(url, { params });
54
+ * };
55
+ * ```
56
+ *
57
+ * If not provided, the `url` will be used.
58
+ *
59
+ * @default undefined
60
+ */
61
+ queryFn?: (params: QueryParams) => Promise<DataResponse<TData>>;
17
62
  }
18
63
  export interface UseDataTableServerReturn<TData> extends UseDataTableReturn {
19
64
  query: UseQueryResult<DataResponse<TData>, Error>;
@@ -24,4 +69,11 @@ export interface Result<T = unknown> {
24
69
  export interface DataResponse<T = unknown> extends Result<T> {
25
70
  count: number;
26
71
  }
27
- export declare const useDataTableServer: <TData>({ url, default: { sorting: defaultSorting, pagination: defaultPagination, rowSelection: defaultRowSelection, columnFilters: defaultColumnFilters, columnOrder: defaultColumnOrder, columnVisibility: defaultColumnVisibility, globalFilter: defaultGlobalFilter, density: defaultDensity, }, keyPrefix, }: UseDataTableServerProps) => UseDataTableServerReturn<TData>;
72
+ export interface QueryParams {
73
+ offset: number;
74
+ limit: number;
75
+ sorting: SortingState;
76
+ where: ColumnFiltersState;
77
+ searching: string;
78
+ }
79
+ export declare const useDataTableServer: <TData>(props: UseDataTableServerProps<TData>) => UseDataTableServerReturn<TData>;
@@ -14,6 +14,29 @@ export interface GetVariantProps {
14
14
  selectable: boolean;
15
15
  }
16
16
  export interface DatePickerProps extends Props {
17
+ onDateSelected?: (obj: {
18
+ date: Date;
19
+ }) => void;
20
+ selected: Date | Date[];
21
+ firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
22
+ showOutsideDays?: boolean;
23
+ date?: Date;
24
+ minDate?: Date;
25
+ maxDate?: Date;
26
+ monthsToDisplay?: number;
27
+ labels?: {
28
+ monthNamesShort: string[];
29
+ weekdayNamesShort: string[];
30
+ backButtonLabel?: string;
31
+ forwardButtonLabel?: string;
32
+ };
33
+ render?: (dayzedData: any) => React.ReactNode;
34
+ }
35
+ export interface DatePickerLabels {
36
+ monthNamesShort: string[];
37
+ weekdayNamesShort: string[];
38
+ backButtonLabel?: string;
39
+ forwardButtonLabel?: string;
17
40
  }
18
41
  declare class DatePicker extends React.Component<DatePickerProps> {
19
42
  render(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { DatePickerLabels } from "./DatePicker";
2
+ interface DateTimePickerProps {
3
+ value?: string;
4
+ onChange?: (date?: string) => void;
5
+ format?: "date-time" | "iso-date-time";
6
+ showSeconds?: boolean;
7
+ labels?: DatePickerLabels;
8
+ timezone?: string;
9
+ }
10
+ export declare function DateTimePicker({ value, onChange, format, showSeconds, labels, timezone, }: DateTimePickerProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -0,0 +1,12 @@
1
+ interface DurationPickerProps {
2
+ value?: string | null;
3
+ onChange?: (duration: string | null) => void;
4
+ showYears?: boolean;
5
+ showMonths?: boolean;
6
+ showDays?: boolean;
7
+ showHours?: boolean;
8
+ showMinutes?: boolean;
9
+ showSeconds?: boolean;
10
+ }
11
+ export declare function DurationPicker({ value, onChange, showYears, showMonths, showDays, showHours, showMinutes, showSeconds, }: DurationPickerProps): import("react/jsx-runtime").JSX.Element;
12
+ export {};
@@ -0,0 +1,16 @@
1
+ import { Dispatch, SetStateAction } from "react";
2
+ interface IsoTimePickerProps {
3
+ hour: number | null;
4
+ setHour: Dispatch<SetStateAction<number | null>>;
5
+ minute: number | null;
6
+ setMinute: Dispatch<SetStateAction<number | null>>;
7
+ second: number | null;
8
+ setSecond: Dispatch<SetStateAction<number | null>>;
9
+ onChange?: (newValue: {
10
+ hour: number | null;
11
+ minute: number | null;
12
+ second: number | null;
13
+ }) => void;
14
+ }
15
+ export declare function IsoTimePicker({ hour, setHour, minute, setMinute, second, setSecond, onChange, }: IsoTimePickerProps): import("react/jsx-runtime").JSX.Element;
16
+ export {};
@@ -0,0 +1 @@
1
+ export declare function PickerDemo(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ type FormatType = "date" | "time" | "date-time" | "iso-time" | "iso-date-time" | "duration";
2
+ interface UniversalPickerProps {
3
+ format: FormatType;
4
+ value?: string | null;
5
+ onChange?: (value: string | null) => void;
6
+ placeholder?: string;
7
+ }
8
+ export declare function UniversalPicker({ format, value, onChange, placeholder, }: UniversalPickerProps): import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,7 @@
1
+ export { default as DatePicker } from './DatePicker';
2
+ export { TimePicker } from '../TimePicker/TimePicker';
3
+ export { IsoTimePicker } from './IsoTimePicker';
4
+ export { DateTimePicker } from './DateTimePicker';
5
+ export { DurationPicker } from './DurationPicker';
6
+ export { UniversalPicker } from './UniversalPicker';
7
+ export type { DatePickerProps, CalendarProps, GetDateColorProps, GetVariantProps } from './DatePicker';
@@ -1,7 +1,11 @@
1
1
  import React from "react";
2
2
  interface TagFilterProps {
3
- availableTags: string[];
3
+ availableTags: {
4
+ label?: string;
5
+ value: string;
6
+ }[];
4
7
  selectedTags: string[];
8
+ selectOne?: boolean;
5
9
  onTagChange: (tags: string[]) => void;
6
10
  }
7
11
  export declare const TagFilter: React.FC<TagFilterProps>;
@@ -1,8 +1,9 @@
1
- import { AxiosRequestConfig } from "axios";
2
- import { JSONSchema7 } from "json-schema";
3
- import { Dispatch, SetStateAction } from "react";
4
- import { FieldValues } from "react-hook-form";
5
- import { UseTranslationResponse } from "react-i18next";
1
+ import { AxiosRequestConfig } from 'axios';
2
+ import { JSONSchema7 } from 'json-schema';
3
+ import { Dispatch, ReactNode, SetStateAction } from 'react';
4
+ import { FieldValues, Resolver } from 'react-hook-form';
5
+ import { UseTranslationResponse } from 'react-i18next';
6
+ import { DateTimePickerLabels, IdPickerLabels, EnumPickerLabels, FilePickerLabels } from './components/types/CustomJSONSchema7';
6
7
  export interface SchemaFormContext<TData extends FieldValues> {
7
8
  schema: JSONSchema7;
8
9
  serverUrl: string;
@@ -14,7 +15,7 @@ export interface SchemaFormContext<TData extends FieldValues> {
14
15
  rowNumber?: number | string;
15
16
  idMap: Record<string, object>;
16
17
  setIdMap: Dispatch<SetStateAction<Record<string, object>>>;
17
- translate: UseTranslationResponse<any, any>;
18
+ translate: UseTranslationResponse<string, string>;
18
19
  requestOptions: AxiosRequestConfig;
19
20
  isSuccess: boolean;
20
21
  setIsSuccess: Dispatch<SetStateAction<boolean>>;
@@ -29,5 +30,20 @@ export interface SchemaFormContext<TData extends FieldValues> {
29
30
  error: unknown;
30
31
  setError: Dispatch<SetStateAction<unknown>>;
31
32
  getUpdatedData: () => TData | Promise<TData>;
33
+ customErrorRenderer?: (error: unknown) => ReactNode;
34
+ customSuccessRenderer?: (resetHandler: () => void | Promise<void>) => ReactNode;
35
+ timezone?: string;
36
+ displayConfig: {
37
+ showSubmitButton?: boolean;
38
+ showResetButton?: boolean;
39
+ showTitle?: boolean;
40
+ };
41
+ requireConfirmation: boolean;
42
+ onFormSubmit: (data: TData) => Promise<void>;
43
+ dateTimePickerLabels?: DateTimePickerLabels;
44
+ idPickerLabels?: IdPickerLabels;
45
+ enumPickerLabels?: EnumPickerLabels;
46
+ filePickerLabels?: FilePickerLabels;
47
+ ajvResolver: Resolver<FieldValues>;
32
48
  }
33
49
  export declare const SchemaFormContext: import("react").Context<SchemaFormContext<unknown>>;
@@ -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 FileDropzoneProps {
4
4
  children?: ReactNode;
5
5
  onDrop?: ({ files, text }: {
@@ -2,5 +2,6 @@ import { FormRootProps } from "./FormRoot";
2
2
  import { FieldValues } from "react-hook-form";
3
3
  export interface DefaultFormProps<TData extends FieldValues> {
4
4
  formConfig: Omit<FormRootProps<TData>, "children">;
5
+ showTitle?: boolean;
5
6
  }
6
7
  export declare const DefaultForm: <TData extends FieldValues>({ formConfig, }: DefaultFormProps<TData>) => import("react/jsx-runtime").JSX.Element;
@@ -1 +1,2 @@
1
- export declare const FormBody: <TData extends object>() => import("react/jsx-runtime").JSX.Element;
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;