@bsol-oss/react-datatable5 13.0.1-beta.11 → 13.0.1-beta.12

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 CHANGED
@@ -1,330 +1,263 @@
1
- # React Datatable
1
+ # @bsol-oss/react-datatable5
2
2
 
3
- The datetable package is built on top of `@tanstack/react-table` and `chakra-ui` to create a datatable. This hook simplifies to initialize the state management for controlling the datatable, and it offers several predefined tables and controls in to enhance data visualization.
3
+ A powerful React component library built on top of `@tanstack/react-table` and `@chakra-ui/react` v3 that provides advanced data table and form components with built-in filtering, sorting, pagination, and JSON Schema validation.
4
4
 
5
- ## Installation
6
-
7
- ```bash
8
- npm install @tanstack/react-table @chakra-ui/react @emotion/react @bsol-oss/react-datatable5
9
- ```
5
+ ## Features
10
6
 
11
- For form validation features with internationalization support, also install:
7
+ ### 📊 DataTable Components
12
8
 
13
- ```bash
14
- npm install ajv ajv-formats ajv-i18n
15
- ```
9
+ - **Client-side DataTable**: Full-featured table with local state management
10
+ - **Server-side DataTable**: API-integrated table with automatic data fetching
11
+ - Advanced filtering (text, range, select, tag, boolean, dateRange, custom)
12
+ - Column sorting and reordering
13
+ - Pagination and row selection
14
+ - Responsive design with mobile-friendly card views
15
+ - Density controls and column visibility
16
+ - Customizable display components
16
17
 
17
- ## Usage
18
+ ### 📝 Form Components
18
19
 
19
- ### Hook
20
+ - **JSON Schema-based forms**: Auto-generate forms from JSON Schema
21
+ - **AJV validation**: Full Draft 7 JSON Schema validation support
22
+ - Multi-language validation support (en, zh-HK, zh-TW, zh-CN)
23
+ - Custom error messages via schema configuration
24
+ - Field types: String, Number, Boolean, Date, DateTime, Enum, ID Picker, Tag, File
25
+ - Read-only form viewers
26
+ - Built-in form state management with `react-hook-form`
20
27
 
21
- The `DataTable` and `DataTableServer` utilize hook to add props.
28
+ ### 📅 Date & Time Pickers
22
29
 
23
- ```tsx
24
- const datatable = useDataTable();
25
- const datatableServer = useDataTableServer({ url: '<some-url>' });
26
- ```
30
+ - Custom date/time picker components
31
+ - Built-in calendar implementation (no external dependencies)
32
+ - `dayjs` integration for date formatting and manipulation
33
+ - Timezone support (default: Asia/Hong_Kong)
27
34
 
28
- ### DataTable
35
+ ## Installation
29
36
 
30
- ```tsx
31
- <DataTable columns={columns} data={data} {...datatable}>
32
- <DataDisplay />
33
- </DataTable>
37
+ ```bash
38
+ npm install @bsol-oss/react-datatable5
34
39
  ```
35
40
 
36
- ### DataTableServer
37
-
38
- ```tsx
39
- <DataTableServer columns={columns} {...datatable}>
40
- <DataDisplay />
41
- </DataTableServer>
42
- ```
41
+ ### Peer Dependencies
43
42
 
44
- Example Url generated by the DataTableServer
43
+ This library requires the following peer dependencies to be installed in your project:
45
44
 
46
- ```
47
- GET http://localhost:8081/api/g/core_people?offset=0&limit=10&sorting[0][id]=id&sorting[0][desc]=false&where[0][id]=last_name&where[0][value]=nicenice&searching=good
45
+ ```bash
46
+ npm install react@^19.0.0 react-dom@^19.0.0
47
+ npm install @chakra-ui/react@^3.19.1
48
+ npm install @tanstack/react-table@^8.21.2
49
+ npm install @tanstack/react-query@^5.66.9
50
+ npm install react-hook-form@^7.54.2
51
+ npm install ajv@^8.12.0 ajv-formats@^3.0.1 ajv-errors@^3.0.0
52
+ npm install dayjs@^1.11.13
53
+ npm install react-icons@^5.4.0
54
+ npm install axios@^1.13.2
48
55
  ```
49
56
 
50
- ### DefaultTable
57
+ See `package.json` for the complete list of peer dependencies.
51
58
 
52
- ```tsx
53
- <DataTable columns={columns} data={data} {...datatable}>
54
- <DefaultTable />
55
- </DataTable>
56
- ```
59
+ ## Quick Start
57
60
 
58
- ### TableCardContainer, TableCards, DefaultCard
61
+ ### Client-side DataTable
59
62
 
60
63
  ```tsx
61
- <DataTable columns={columns} data={data} {...datatable}>
62
- <TableCardContainer>
63
- <TableCards<Product>
64
- renderTitle={(row) => {
65
- return (
66
- <DefaultCard
67
- {...{
68
- row: row,
69
- imageColumnId: 'thumbnail',
70
- titleColumnId: 'title',
71
- tagColumnId: 'rating',
72
- tagIcon: MdStarRate,
73
- }}
74
- />
75
- );
76
- }}
77
- />
78
- </TableCardContainer>
79
- <TablePagination />
80
- </DataTable>
81
- ```
64
+ import {
65
+ useDataTable,
66
+ DataTable,
67
+ DefaultTable,
68
+ } from '@bsol-oss/react-datatable5';
82
69
 
83
- ### DataDisplay
70
+ const columns = [
71
+ {
72
+ accessorKey: 'name',
73
+ header: 'Name',
74
+ },
75
+ {
76
+ accessorKey: 'email',
77
+ header: 'Email',
78
+ },
79
+ ];
80
+
81
+ const data = [
82
+ { name: 'John Doe', email: 'john@example.com' },
83
+ { name: 'Jane Smith', email: 'jane@example.com' },
84
+ ];
85
+
86
+ function MyTable() {
87
+ const datatable = useDataTable({
88
+ default: {
89
+ pageSize: 20,
90
+ sorting: [{ id: 'name', desc: false }],
91
+ },
92
+ });
84
93
 
85
- ```tsx
86
- <DataTable columns={columns} data={data} {...datatable}>
87
- <DataDisplay />
88
- </DataTable>
94
+ return (
95
+ <DataTable columns={columns} data={data} {...datatable}>
96
+ <DefaultTable />
97
+ </DataTable>
98
+ );
99
+ }
89
100
  ```
90
101
 
91
- ### Form Validation with AJV and Internationalization
92
-
93
- The package now includes built-in JSON Schema validation using AJV (Another JSON Schema Validator) with format support and comprehensive internationalization (i18n) capabilities, including full Traditional Chinese (Hong Kong/Taiwan) support.
94
-
95
- #### Features
102
+ ### Server-side DataTable
96
103
 
97
- - **JSON Schema Validation**: Full JSON Schema Draft 7 support
98
- - **Format Validation**: Built-in support for date, time, email, UUID, and other formats via `ajv-formats`
99
- - **Multi-language Support**: Complete i18n support with Traditional Chinese (Hong Kong/Taiwan) and Simplified Chinese
100
- - **Enhanced Error Messages**: Culturally appropriate error messages in multiple languages
101
- - **Automatic Validation**: Validation occurs before form submission and confirmation
102
- - **Custom Error Display**: Collapsible error panels with localized validation feedback
104
+ ```tsx
105
+ import {
106
+ useDataTableServer,
107
+ DataTableServer,
108
+ DefaultTable,
109
+ Pagination,
110
+ } from '@bsol-oss/react-datatable5';
103
111
 
104
- #### Supported Languages
112
+ function MyServerTable() {
113
+ const datatable = useDataTableServer({
114
+ url: 'https://api.example.com/data',
115
+ default: { pageSize: 10 },
116
+ });
105
117
 
106
- - **🇺🇸 English (en)** - Default language
107
- - **🇭🇰 Traditional Chinese - Hong Kong (zh-HK)** - 繁體中文(香港)
108
- - **🇹🇼 Traditional Chinese - Taiwan (zh-TW)** - 繁體中文(台灣)
109
- - **🇨🇳 Simplified Chinese (zh-CN, zh)** - 简体中文
118
+ return (
119
+ <DataTableServer columns={columns} {...datatable}>
120
+ <DefaultTable />
121
+ <Pagination />
122
+ </DataTableServer>
123
+ );
124
+ }
125
+ ```
110
126
 
111
- #### Basic Usage with Internationalization
127
+ ### Form with JSON Schema
112
128
 
113
129
  ```tsx
114
- import {
115
- FormRoot,
116
- FormBody,
117
- validateData,
118
- SupportedLocale,
119
- } from '@bsol-oss/react-datatable5';
130
+ import { FormRoot, FormBody } from '@bsol-oss/react-datatable5';
120
131
 
121
132
  const schema = {
122
133
  type: 'object',
123
- required: ['email', 'age'],
134
+ required: ['username', 'email'],
124
135
  properties: {
125
- email: {
136
+ username: {
126
137
  type: 'string',
127
- format: 'email',
128
- },
129
- age: {
130
- type: 'integer',
131
- minimum: 18,
132
- maximum: 120,
138
+ minLength: 3,
139
+ errorMessages: {
140
+ required: 'Username is required',
141
+ minLength: 'Username must be at least 3 characters',
142
+ },
133
143
  },
134
- name: {
144
+ email: {
135
145
  type: 'string',
136
- minLength: 2,
137
- maxLength: 50,
146
+ format: 'email',
147
+ errorMessages: {
148
+ required: 'Email is required',
149
+ format: 'Invalid email format',
150
+ },
138
151
  },
139
152
  },
140
153
  };
141
154
 
142
- // Use Traditional Chinese (Hong Kong) for validation errors
143
- <FormRoot
144
- schema={schema}
145
- validationLocale="zh-HK"
146
- /* other props */
147
- >
148
- <FormBody />
149
- </FormRoot>;
155
+ function MyForm() {
156
+ return (
157
+ <FormRoot
158
+ schema={schema}
159
+ validationLocale="en"
160
+ onSubmit={async (data) => {
161
+ console.log('Submitted:', data);
162
+ }}
163
+ >
164
+ <FormBody />
165
+ </FormRoot>
166
+ );
167
+ }
150
168
  ```
151
169
 
152
- #### Language-specific Examples
153
-
154
- **Traditional Chinese (Hong Kong):**
170
+ ## Documentation
155
171
 
156
- ```tsx
157
- <FormRoot
158
- schema={schema}
159
- validationLocale="zh-HK"
160
- /* other props */
161
- >
162
- <FormBody />
163
- </FormRoot>
164
- ```
172
+ - [Server-side DataTable Usage](./docs/DATATABLE_SERVER_USAGE.md)
173
+ - [ID Picker Guide](./docs/IDPICKER_GUIDE.md)
174
+ - [Enum Picker Translation](./docs/ENUMPICKER_TRANSLATION.md)
175
+ - [i18n Migration Guide](./docs/I18N_MIGRATION_GUIDE.md)
176
+ - [Validation Guide](./VALIDATION_GUIDE.md)
177
+ - [Deployment Guide](./docs/deployment.md)
165
178
 
166
- **Traditional Chinese (Taiwan):**
179
+ ## Development
167
180
 
168
- ```tsx
169
- <FormRoot
170
- schema={schema}
171
- validationLocale="zh-TW"
172
- /* other props */
173
- >
174
- <FormBody />
175
- </FormRoot>
176
- ```
181
+ ### Storybook
177
182
 
178
- **Simplified Chinese:**
183
+ View interactive examples and component documentation:
179
184
 
180
- ```tsx
181
- <FormRoot
182
- schema={schema}
183
- validationLocale="zh-CN"
184
- /* other props */
185
- >
186
- <FormBody />
187
- </FormRoot>
185
+ ```bash
186
+ npm run storybook
188
187
  ```
189
188
 
190
- #### Manual Validation with Internationalization
189
+ Stories are organized by feature:
191
190
 
192
- You can also use the validation utilities directly with language support:
191
+ - `DataTable/` - Client-side table examples
192
+ - `DataTableServer/` - Server-side table examples
193
+ - `Form/` - Form component examples
194
+ - `DatePicker/` - Date/time picker examples
193
195
 
194
- ```tsx
195
- import {
196
- validateData,
197
- ValidationResult,
198
- SupportedLocale,
199
- } from '@bsol-oss/react-datatable5';
200
-
201
- // Validate with Traditional Chinese (Hong Kong) error messages
202
- const result: ValidationResult = validateData(formData, schema, {
203
- locale: 'zh-HK',
204
- });
196
+ ### Build
205
197
 
206
- if (!result.isValid) {
207
- console.log('驗證錯誤:', result.errors);
208
- // Error messages will be in Traditional Chinese
209
- }
210
-
211
- // Check supported locales
212
- import {
213
- getSupportedLocales,
214
- isLocaleSupported,
215
- } from '@bsol-oss/react-datatable5';
216
-
217
- const supportedLocales = getSupportedLocales(); // ['en', 'zh-HK', 'zh-TW', 'zh-CN', 'zh']
218
- const isSupported = isLocaleSupported('zh-HK'); // true
198
+ ```bash
199
+ npm run build
219
200
  ```
220
201
 
221
- #### Validation Error Structure
202
+ ### Lint
222
203
 
223
- ```tsx
224
- interface ValidationError {
225
- field: string; // The field that failed validation
226
- message: string; // User-friendly error message (localized)
227
- value?: unknown; // The current value that failed
228
- schemaPath?: string; // JSON Schema path for debugging
229
- }
204
+ ```bash
205
+ npm run lint
230
206
  ```
231
207
 
232
- #### Dynamic Language Switching
233
-
234
- ```tsx
235
- import { SupportedLocale } from '@bsol-oss/react-datatable5';
208
+ ### Format
236
209
 
237
- const MyForm = () => {
238
- const [locale, setLocale] = useState<SupportedLocale>('zh-HK');
239
-
240
- return (
241
- <div>
242
- {/* Language selector */}
243
- <select
244
- value={locale}
245
- onChange={(e) => setLocale(e.target.value as SupportedLocale)}
246
- >
247
- <option value="en">English</option>
248
- <option value="zh-HK">繁體中文(香港)</option>
249
- <option value="zh-TW">繁體中文(台灣)</option>
250
- <option value="zh-CN">简体中文</option>
251
- </select>
252
-
253
- {/* Form with dynamic locale */}
254
- <FormRoot
255
- schema={schema}
256
- validationLocale={locale}
257
- /* other props */
258
- >
259
- <FormBody />
260
- </FormRoot>
261
- </div>
262
- );
263
- };
210
+ ```bash
211
+ npm run format
264
212
  ```
265
213
 
266
- #### Example Validation Messages
267
-
268
- **English:**
269
-
270
- - "email is required"
271
- - "Invalid email format"
272
- - "Must be at least 18"
273
-
274
- **Traditional Chinese (Hong Kong/Taiwan):**
214
+ ## Key Features
275
215
 
276
- - "email 為必填"
277
- - "無效的 email 格式"
278
- - "必須至少為 18"
216
+ ### Column Customization
279
217
 
280
- **Simplified Chinese:**
218
+ Define custom filters and display options in column metadata:
281
219
 
282
- - "email 为必填"
283
- - "无效的 email 格式"
284
- - "必须至少为 18"
285
-
286
- #### Supported Validation Types
287
-
288
- - **Type validation**: string, number, integer, boolean, object, array
289
- - **Format validation**: email, date, time, date-time, uuid, uri, etc.
290
- - **String constraints**: minLength, maxLength, pattern (regex)
291
- - **Numeric constraints**: minimum, maximum, multipleOf
292
- - **Array constraints**: minItems, maxItems, uniqueItems
293
- - **Object constraints**: required properties, additionalProperties
294
- - **Enum validation**: restricted value sets
295
-
296
- All validation types are fully supported across all languages with culturally appropriate translations.
297
-
298
- For more details of props and examples, please review the stories in storybook platform.
299
-
300
- ## Documentation
220
+ ```tsx
221
+ {
222
+ id: 'status',
223
+ meta: {
224
+ displayName: 'Status',
225
+ filterVariant: 'select',
226
+ filterOptions: [
227
+ { label: 'Active', value: 'active' },
228
+ { label: 'Inactive', value: 'inactive' }
229
+ ]
230
+ }
231
+ }
232
+ ```
301
233
 
302
- Additional documentation is available in the `docs/` directory:
234
+ ### Label Objects
303
235
 
304
- ### General Guides
236
+ Components use label objects from schema context for internationalization:
305
237
 
306
- - **[DataTable Server Usage](./docs/DATATABLE_SERVER_USAGE.md)** - Server-side DataTable integration guide
307
- - **[DefaultForm Usage](./docs/DEFAULTFORM_USAGE.md)** - Comprehensive form component guide
308
- - **[Validation & i18n](./docs/VALIDATION_I18N.md)** - Validation and internationalization setup
309
- - **[i18n Migration Guide](./docs/I18N_MIGRATION_GUIDE.md)** - Migrate from react-i18next to label objects
310
- - **[Deployment Guide](./docs/deployment.md)** - Deployment instructions
238
+ ```tsx
239
+ <FormRoot
240
+ schema={schema}
241
+ idPickerLabels={{
242
+ typeToSearch: 'Type to search...',
243
+ total: 'Total',
244
+ // ... other labels
245
+ }}
246
+ >
247
+ <FormBody />
248
+ </FormRoot>
249
+ ```
311
250
 
312
- ### IdPicker Customization
251
+ ## Requirements
313
252
 
314
- - **[IdPicker Quick Reference](./docs/IDPICKER_QUICK_REFERENCE.md)** - ⚡ Quick guide to IdPicker customization
315
- - **[IdPicker Custom Display](./docs/IDPICKER_CUSTOM_DISPLAY.md)** - Customize how items appear in the combobox
316
- - **[IdPicker Labels](./docs/IDPICKER_LABELS.md)** - Customize UI labels (buttons, placeholders, messages)
253
+ - React 19+
254
+ - @chakra-ui/react 3.19+
255
+ - TypeScript (for type definitions)
317
256
 
318
- ## Development
257
+ ## License
319
258
 
320
- ```
321
- npm install
322
- npm run storybook
323
- ```
259
+ MIT
324
260
 
325
- ## deployment
261
+ ## Repository
326
262
 
327
- ```
328
- npm version prerelease --preid=beta
329
- npm publish
330
- ```
263
+ [GitHub](https://github.com/bsol-oss/react-datatable5)
package/dist/index.d.ts CHANGED
@@ -153,7 +153,16 @@ declare const TableControls: ({ fitTableWidth, fitTableHeight, children, showGlo
153
153
 
154
154
  declare const TableFilter: () => react_jsx_runtime.JSX.Element;
155
155
 
156
- declare const TableFilterTags: () => react_jsx_runtime.JSX.Element;
156
+ interface TableFilterTagsProps {
157
+ filterTagsOptions?: {
158
+ column: string;
159
+ options: {
160
+ label: string;
161
+ value: string;
162
+ }[];
163
+ }[];
164
+ }
165
+ declare const TableFilterTags: ({ filterTagsOptions, }?: TableFilterTagsProps) => react_jsx_runtime.JSX.Element | null;
157
166
 
158
167
  interface TableProps extends TableRootProps {
159
168
  showLoading?: boolean;
@@ -468,6 +477,9 @@ interface DataTableLabel {
468
477
  globalFilterPlaceholder: string;
469
478
  trueLabel: string;
470
479
  falseLabel: string;
480
+ noFiltersMatchText: string;
481
+ filterByLabel: string;
482
+ filterLabelsPlaceholder: string;
471
483
  }
472
484
  interface DataTableContextProps<TData = unknown> extends Omit<DataTableProps, 'translate'> {
473
485
  table: Table$1<TData>;
@@ -1444,4 +1456,4 @@ declare module '@tanstack/react-table' {
1444
1456
  }
1445
1457
  }
1446
1458
 
1447
- export { CalendarDisplay, type CalendarDisplayProps, type CalendarEvent, type CalendarProps, CardHeader, type CardHeaderProps, type CustomJSONSchema7, type CustomJSONSchema7Definition, DataDisplay, type DataDisplayProps, type DataResponse, DataTable, type DataTableDefaultState, type DataTableProps, DataTableServer, type DataTableServerProps, DatePickerContext, DatePickerInput, type DatePickerInputProps, type DatePickerLabels, type DatePickerProps, type DateTimePickerLabels, DefaultCardTitle, DefaultForm, type DefaultFormProps, DefaultTable, type DefaultTableProps, DefaultTableServer, type DefaultTableServerProps, DensityToggleButton, type DensityToggleButtonProps, type EditFilterButtonProps, EditSortingButton, type EditSortingButtonProps, type EditViewButtonProps, EmptyState, type EmptyStateProps, type EnumPickerLabels, ErrorAlert, type ErrorAlertProps, type ErrorMessageConfig, type ErrorMessageResult, type FieldErrorConfig, type FilePickerLabels, type FilePickerMediaFile, type FilePickerProps, FilterDialog, FormBody, type FormButtonLabels, FormRoot, type FormRootProps, FormTitle, type GetColumnsConfigs, type GetDateColorProps, type GetMultiDatesProps, type GetRangeDatesProps, type GetStyleProps, type GetVariantProps, GlobalFilter, type IdPickerLabels, type LoadInitialValuesParams, type LoadInitialValuesResult, MediaLibraryBrowser, type MediaLibraryBrowserProps, PageSizeControl, type PageSizeControlProps, Pagination, type QueryParams, type RangeCalendarProps, type RangeDatePickerLabels, type RangeDatePickerProps, RecordDisplay, type RecordDisplayProps, ReloadButton, type ReloadButtonProps, ResetFilteringButton, ResetSelectionButton, ResetSortingButton, type Result, RowCountText, SelectAllRowsToggle, type SelectAllRowsToggleProps, Table, TableBody, type TableBodyProps, TableCardContainer, type TableCardContainerProps, TableCards, type TableCardsProps, TableComponent, TableControls, type TableControlsProps, TableDataDisplay, type TableDataDisplayProps, TableFilter, TableFilterTags, TableFooter, type TableFooterProps, TableHeader, type TableHeaderProps, type TableHeaderTexts, TableLoadingComponent, type TableLoadingComponentProps, type TableProps, type TableRendererProps, type TableRowSelectorProps, TableSelector, TableSorter, TableViewer, type TagPickerProps, TextCell, type TextCellProps, type TimePickerLabels, type Translate, type UseDataTableProps, type UseDataTableReturn, type UseDataTableServerProps, type UseDataTableServerReturn, type UseFormProps, type ValidationErrorType, ViewDialog, buildErrorMessages, buildFieldErrors, buildRequiredErrors, convertToAjvErrorsFormat, createErrorMessage, defaultRenderDisplay, getColumns, getMultiDates, getRangeDates, idPickerSanityCheck, useDataTable, useDataTableContext, useDataTableServer, useForm, widthSanityCheck };
1459
+ export { CalendarDisplay, type CalendarDisplayProps, type CalendarEvent, type CalendarProps, CardHeader, type CardHeaderProps, type CustomJSONSchema7, type CustomJSONSchema7Definition, DataDisplay, type DataDisplayProps, type DataResponse, DataTable, type DataTableDefaultState, type DataTableProps, DataTableServer, type DataTableServerProps, DatePickerContext, DatePickerInput, type DatePickerInputProps, type DatePickerLabels, type DatePickerProps, type DateTimePickerLabels, DefaultCardTitle, DefaultForm, type DefaultFormProps, DefaultTable, type DefaultTableProps, DefaultTableServer, type DefaultTableServerProps, DensityToggleButton, type DensityToggleButtonProps, type EditFilterButtonProps, EditSortingButton, type EditSortingButtonProps, type EditViewButtonProps, EmptyState, type EmptyStateProps, type EnumPickerLabels, ErrorAlert, type ErrorAlertProps, type ErrorMessageConfig, type ErrorMessageResult, type FieldErrorConfig, type FilePickerLabels, type FilePickerMediaFile, type FilePickerProps, FilterDialog, FormBody, type FormButtonLabels, FormRoot, type FormRootProps, FormTitle, type GetColumnsConfigs, type GetDateColorProps, type GetMultiDatesProps, type GetRangeDatesProps, type GetStyleProps, type GetVariantProps, GlobalFilter, type IdPickerLabels, type LoadInitialValuesParams, type LoadInitialValuesResult, MediaLibraryBrowser, type MediaLibraryBrowserProps, PageSizeControl, type PageSizeControlProps, Pagination, type QueryParams, type RangeCalendarProps, type RangeDatePickerLabels, type RangeDatePickerProps, RecordDisplay, type RecordDisplayProps, ReloadButton, type ReloadButtonProps, ResetFilteringButton, ResetSelectionButton, ResetSortingButton, type Result, RowCountText, SelectAllRowsToggle, type SelectAllRowsToggleProps, Table, TableBody, type TableBodyProps, TableCardContainer, type TableCardContainerProps, TableCards, type TableCardsProps, TableComponent, TableControls, type TableControlsProps, TableDataDisplay, type TableDataDisplayProps, TableFilter, TableFilterTags, type TableFilterTagsProps, TableFooter, type TableFooterProps, TableHeader, type TableHeaderProps, type TableHeaderTexts, TableLoadingComponent, type TableLoadingComponentProps, type TableProps, type TableRendererProps, type TableRowSelectorProps, TableSelector, TableSorter, TableViewer, type TagPickerProps, TextCell, type TextCellProps, type TimePickerLabels, type Translate, type UseDataTableProps, type UseDataTableReturn, type UseDataTableServerProps, type UseDataTableServerReturn, type UseFormProps, type ValidationErrorType, ViewDialog, buildErrorMessages, buildFieldErrors, buildRequiredErrors, convertToAjvErrorsFormat, createErrorMessage, defaultRenderDisplay, getColumns, getMultiDates, getRangeDates, idPickerSanityCheck, useDataTable, useDataTableContext, useDataTableServer, useForm, widthSanityCheck };