@comitor/ui 1.9.0 → 1.11.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 (105) hide show
  1. package/README.md +15 -4
  2. package/dist/data-grid/compose-refs.d.ts +19 -0
  3. package/dist/data-grid/compose-refs.js +41 -0
  4. package/dist/data-grid/compose-refs.js.map +1 -0
  5. package/dist/data-grid/data-grid-cell-variants.d.ts +15 -0
  6. package/dist/data-grid/data-grid-cell-variants.js +1734 -0
  7. package/dist/data-grid/data-grid-cell-variants.js.map +1 -0
  8. package/dist/data-grid/data-grid-cell-wrapper.d.ts +9 -0
  9. package/dist/data-grid/data-grid-cell-wrapper.js +179 -0
  10. package/dist/data-grid/data-grid-cell-wrapper.js.map +1 -0
  11. package/dist/data-grid/data-grid-cell.d.ts +8 -0
  12. package/dist/data-grid/data-grid-cell.js +101 -0
  13. package/dist/data-grid/data-grid-cell.js.map +1 -0
  14. package/dist/data-grid/data-grid-column-header.d.ts +12 -0
  15. package/dist/data-grid/data-grid-column-header.js +205 -0
  16. package/dist/data-grid/data-grid-column-header.js.map +1 -0
  17. package/dist/data-grid/data-grid-context-menu.d.ts +12 -0
  18. package/dist/data-grid/data-grid-context-menu.js +160 -0
  19. package/dist/data-grid/data-grid-context-menu.js.map +1 -0
  20. package/dist/data-grid/data-grid-filter-menu.d.ts +12 -0
  21. package/dist/data-grid/data-grid-filter-menu.js +714 -0
  22. package/dist/data-grid/data-grid-filter-menu.js.map +1 -0
  23. package/dist/data-grid/data-grid-keyboard-shortcuts.d.ts +20 -0
  24. package/dist/data-grid/data-grid-keyboard-shortcuts.js +227 -0
  25. package/dist/data-grid/data-grid-keyboard-shortcuts.js.map +1 -0
  26. package/dist/data-grid/data-grid-paste-dialog.d.ts +11 -0
  27. package/dist/data-grid/data-grid-paste-dialog.js +103 -0
  28. package/dist/data-grid/data-grid-paste-dialog.js.map +1 -0
  29. package/dist/data-grid/data-grid-presence.d.ts +14 -0
  30. package/dist/data-grid/data-grid-presence.js +16 -0
  31. package/dist/data-grid/data-grid-presence.js.map +1 -0
  32. package/dist/data-grid/data-grid-row-height-menu.d.ts +15 -0
  33. package/dist/data-grid/data-grid-row-height-menu.js +56 -0
  34. package/dist/data-grid/data-grid-row-height-menu.js.map +1 -0
  35. package/dist/data-grid/data-grid-row.d.ts +28 -0
  36. package/dist/data-grid/data-grid-row.js +206 -0
  37. package/dist/data-grid/data-grid-row.js.map +1 -0
  38. package/dist/data-grid/data-grid-search.d.ts +10 -0
  39. package/dist/data-grid/data-grid-search.js +183 -0
  40. package/dist/data-grid/data-grid-search.js.map +1 -0
  41. package/dist/data-grid/data-grid-select-column.d.ts +12 -0
  42. package/dist/data-grid/data-grid-select-column.js +177 -0
  43. package/dist/data-grid/data-grid-select-column.js.map +1 -0
  44. package/dist/data-grid/data-grid-skeleton.d.ts +13 -0
  45. package/dist/data-grid/data-grid-skeleton.js +52 -0
  46. package/dist/data-grid/data-grid-skeleton.js.map +1 -0
  47. package/dist/data-grid/data-grid-sort-menu.d.ts +12 -0
  48. package/dist/data-grid/data-grid-sort-menu.js +271 -0
  49. package/dist/data-grid/data-grid-sort-menu.js.map +1 -0
  50. package/dist/data-grid/data-grid-view-menu.d.ts +13 -0
  51. package/dist/data-grid/data-grid-view-menu.js +66 -0
  52. package/dist/data-grid/data-grid-view-menu.js.map +1 -0
  53. package/dist/data-grid/data-grid.d.ts +32 -0
  54. package/dist/data-grid/data-grid.js +235 -0
  55. package/dist/data-grid/data-grid.js.map +1 -0
  56. package/dist/data-grid/filters.d.ts +31 -0
  57. package/dist/data-grid/filters.js +212 -0
  58. package/dist/data-grid/filters.js.map +1 -0
  59. package/dist/data-grid/index.d.ts +22 -0
  60. package/dist/data-grid/index.js +77 -0
  61. package/dist/data-grid/index.js.map +1 -0
  62. package/dist/data-grid/messages.d.ts +280 -0
  63. package/dist/data-grid/messages.js +279 -0
  64. package/dist/data-grid/messages.js.map +1 -0
  65. package/dist/data-grid/sortable.d.ts +50 -0
  66. package/dist/data-grid/sortable.js +361 -0
  67. package/dist/data-grid/sortable.js.map +1 -0
  68. package/dist/data-grid/toast.d.ts +10 -0
  69. package/dist/data-grid/toast.js +21 -0
  70. package/dist/data-grid/toast.js.map +1 -0
  71. package/dist/data-grid/types.d.ts +189 -0
  72. package/dist/data-grid/types.js +1 -0
  73. package/dist/data-grid/types.js.map +1 -0
  74. package/dist/data-grid/use-as-ref.d.ts +5 -0
  75. package/dist/data-grid/use-as-ref.js +13 -0
  76. package/dist/data-grid/use-as-ref.js.map +1 -0
  77. package/dist/data-grid/use-badge-overflow.d.ts +24 -0
  78. package/dist/data-grid/use-badge-overflow.js +123 -0
  79. package/dist/data-grid/use-badge-overflow.js.map +1 -0
  80. package/dist/data-grid/use-callback-ref.d.ts +10 -0
  81. package/dist/data-grid/use-callback-ref.js +12 -0
  82. package/dist/data-grid/use-callback-ref.js.map +1 -0
  83. package/dist/data-grid/use-data-grid-undo-redo.d.ts +33 -0
  84. package/dist/data-grid/use-data-grid-undo-redo.js +345 -0
  85. package/dist/data-grid/use-data-grid-undo-redo.js.map +1 -0
  86. package/dist/data-grid/use-data-grid.d.ts +92 -0
  87. package/dist/data-grid/use-data-grid.js +2692 -0
  88. package/dist/data-grid/use-data-grid.js.map +1 -0
  89. package/dist/data-grid/use-debounced-callback.d.ts +6 -0
  90. package/dist/data-grid/use-debounced-callback.js +19 -0
  91. package/dist/data-grid/use-debounced-callback.js.map +1 -0
  92. package/dist/data-grid/use-isomorphic-layout-effect.d.ts +5 -0
  93. package/dist/data-grid/use-isomorphic-layout-effect.js +6 -0
  94. package/dist/data-grid/use-isomorphic-layout-effect.js.map +1 -0
  95. package/dist/data-grid/use-lazy-ref.d.ts +5 -0
  96. package/dist/data-grid/use-lazy-ref.js +12 -0
  97. package/dist/data-grid/use-lazy-ref.js.map +1 -0
  98. package/dist/data-grid/utils.d.ts +73 -0
  99. package/dist/data-grid/utils.js +408 -0
  100. package/dist/data-grid/utils.js.map +1 -0
  101. package/dist/shell/app-launcher.js +16 -16
  102. package/dist/shell/app-launcher.js.map +1 -1
  103. package/dist/shell/types.d.ts +13 -0
  104. package/dist/shell/types.js.map +1 -1
  105. package/package.json +33 -15
package/README.md CHANGED
@@ -37,6 +37,7 @@ pnpm add -D tailwindcss @tailwindcss/postcss
37
37
  pnpm add next next-themes # cho @comitor/ui/shell
38
38
  pnpm add recharts # cho @comitor/ui/chart
39
39
  pnpm add react-hook-form # cho @comitor/ui/form
40
+ pnpm add @tanstack/react-table # cho @comitor/ui/data-grid
40
41
  pnpm add @uppy/core @uppy/xhr-upload # cho @comitor/ui/uploader
41
42
  ```
42
43
 
@@ -49,6 +50,7 @@ pnpm add @uppy/core @uppy/xhr-upload # cho @comitor/ui/uploader
49
50
  | `next-themes` | `>=0.4` | — | `/shell` (context singleton — app và package phải dùng **cùng một bản**) |
50
51
  | `recharts` | `>=2.15.0` | — | `/chart` (kiểu đã dựng cho **cả 2.x lẫn 3.x**, xem ghi chú dưới) |
51
52
  | `react-hook-form` | `^7.54.0` | — | `/form` (context singleton) |
53
+ | `@tanstack/react-table` | `>=8.21.0 <9` | — | `/data-grid` (app và gói phải dùng **cùng một bản**, nếu không `ColumnDef` app tự khai sẽ lệch kiểu) |
52
54
  | `@uppy/core` | `^6.0.0` | — | `/uploader` |
53
55
  | `@uppy/xhr-upload` | `^6.0.0` | — | `/uploader` |
54
56
 
@@ -105,13 +107,14 @@ buộc ở thẻ `<html>`: https://design-system.comitor.ai/shell
105
107
 
106
108
  ## 3. Entry point
107
109
 
108
- Package có **6 entry**, tách theo peer optional mà mỗi tầng kéo theo:
110
+ Package có **7 entry**, tách theo peer optional mà mỗi tầng kéo theo:
109
111
 
110
112
  | Entry | Nội dung | Peer optional kéo theo |
111
113
  |---|---|---|
112
114
  | `@comitor/ui` | Tier 1 (primitive) + Tier 2 (composite) + `cn` + token TS + `useIsMac` | **không có** — chạy được ở Vite, Storybook, test runner |
113
115
  | `@comitor/ui/shell` | Tier 3: khung ứng dụng workspace × app, theme, ba trục hiển thị | `next`, `next-themes` |
114
116
  | `@comitor/ui/chart` | Lớp shadcn bọc recharts + `Comitor*Chart` + `CHART_COLORS` | `recharts` (~100KB) |
117
+ | `@comitor/ui/data-grid` | `DataGrid` — lưới sửa trực tiếp kiểu bảng tính: ảo hoá dòng, chọn vùng bằng bàn phím, copy/paste với Excel, ghim cột, lọc/sắp xếp nhiều tiêu chí, hoàn tác/làm lại | `@tanstack/react-table` (peer); kèm `@tanstack/react-virtual` + `@dnd-kit/*` (dependency của gói) |
115
118
  | `@comitor/ui/uploader` | `FileUpload` (tệp tài liệu) · `ImageUploadField` (ảnh đại diện, logo) · `useFileUpload` | `@uppy/core`, `@uppy/xhr-upload` (~13KB gzip) |
116
119
  | `@comitor/ui/form` | Binding shadcn ⇄ react-hook-form | `react-hook-form` |
117
120
  | `@comitor/ui/tokens` | Token dạng object TS — cho nơi không có Tailwind: canvas, email HTML, PDF | không có |
@@ -159,7 +162,7 @@ https://design-system.comitor.ai/foundations/server-client
159
162
 
160
163
  ## 5. Bảng component
161
164
 
162
- Số file nguồn hiện tại: **52 primitive · 31 composite · 25 shell · 4 chart · 5 uploader**. Mỗi component có trang
165
+ Số file nguồn hiện tại: **52 primitive · 31 composite · 25 shell · 4 chart · 33 data-grid · 5 uploader**. Mỗi component có trang
163
166
  riêng kèm demo, bảng prop và cạm bẫy của nó:
164
167
 
165
168
  | Tầng | Là gì | Trang |
@@ -168,6 +171,7 @@ riêng kèm demo, bảng prop và cạm bẫy của nó:
168
171
  | **Tier 2 — composite** · 31 file · `@comitor/ui` | Giá trị thật của gói: pattern lặp ở mọi app, ghép từ nhiều primitive (`DataTable`, `PageHeader`, `Combobox`, `DatePicker`, `StatCard`…) | https://design-system.comitor.ai/composites |
169
172
  | **Tier 3 — shell** · 25 file · `@comitor/ui/shell` | Khung ứng dụng workspace × app: sidebar, header, theme, ba trục hiển thị (tương phản · mật độ · cỡ chữ) | https://design-system.comitor.ai/shell |
170
173
  | **chart** · 4 file · `@comitor/ui/chart` | Lớp shadcn bọc recharts, cùng ba bản dựng sẵn theo brand. ⚠ Ba wrapper `Comitor*Chart` **mặc định TẮT** hiệu ứng vẽ dần (`isAnimationActive = false`) — bật lại là biểu đồ kẹt ở khung đầu: có trục, có lưới, KHÔNG có dữ liệu. Mặc định đó KHÔNG áp cho `<ChartContainer>` + recharts do app tự lắp | https://design-system.comitor.ai/components/chart |
174
+ | **data-grid** · 33 file · `@comitor/ui/data-grid` | `DataGrid` — lưới sửa trực tiếp kiểu bảng tính, cho màn nhập liệu hàng loạt. Port từ [tablecn](https://www.tablecn.com/data-grid) (MIT) sang primitive + token của gói. ⚠ Là tầng DUY NHẤT có peer **`@tanstack/react-table`**, và mọi thứ trong nó là client component | [docs/data-grid.md](docs/data-grid.md) |
171
175
  | **uploader** · 5 file · `@comitor/ui/uploader` | `FileUpload` (tệp) · `ImageUploadField` (ảnh) · `useFileUpload` — kéo thả, xem trước, tiến độ. Peer optional: `@uppy/core` + `@uppy/xhr-upload` | https://design-system.comitor.ai/components |
172
176
  | **form** · `@comitor/ui/form` | Binding shadcn ⇄ react-hook-form | https://design-system.comitor.ai/components/form |
173
177
 
@@ -225,7 +229,7 @@ https://design-system.comitor.ai/foundations/colors
225
229
 
226
230
  Mỗi bản publish đi qua cùng một chuỗi cổng (`prepublishOnly` nối chúng lại): typecheck → build →
227
231
  `verify:directives` → `smoke:entries` → `check:exports` → `test:nav-active` → `test:grid-contract`
228
- → `test:a11y-gate` → `lint:a11y`. Những cổng đáng để người dùng gói biết là chúng tồn tại:
232
+ → `test:grid-render` → `test:a11y-gate` → `lint:a11y`. Những cổng đáng để người dùng gói biết là chúng tồn tại:
229
233
 
230
234
  - **`lint:a11y` — hợp đồng màu.** Quét **toàn bộ** `src/**/*.{ts,tsx}` theo QUY TẮC (không theo danh
231
235
  sách phát hiện) và đối chiếu với `styles.css`: token TÔ NỀN đem làm màu chữ/icon/viền là sai
@@ -245,9 +249,16 @@ Mỗi bản publish đi qua cùng một chuỗi cổng (`prepublishOnly` nối c
245
249
  - **`verify:directives` — ranh giới server/client.** File nguồn nào mở đầu bằng `"use client"` thì
246
250
  file `dist/` tương ứng phải mở đầu y hệt (thiếu file build cũng tính là hỏng), và không hằng dữ
247
251
  liệu thuần nào được kẹt trong file client (§4.2).
248
- - **`smoke:entries`** nạp cả 6 entry bằng Node ESM thuần, qua đúng `exports` map (§3).
252
+ - **`smoke:entries`** nạp cả 7 entry bằng Node ESM thuần, qua đúng `exports` map (§3).
249
253
  - **`test:a11y-gate`** tự kiểm chính cổng màu (cổng còn bắt đủ không); **`test:nav-active`** khoá
250
254
  toàn bộ luật active matching của sidebar dưới dạng hàm thuần (§4.1).
255
+ - **`test:grid-render`** render THẬT `DataGrid` bằng `react-dom/server` rồi soi HTML ra được. Nó
256
+ bắt đúng lớp lỗi mà mọi cổng trên đều mù, vì chúng đọc kiểu / đọc chuỗi lớp / chỉ NẠP module chứ
257
+ không gọi component nào: `style` inline còn mang dấu vết của hệ token repo gốc. Ca thật đã bắt
258
+ được lúc port — `hsl(var(--card))` là khai báo KHÔNG hợp lệ với hệ token của gói này (`--card`
259
+ là màu đầy đủ `#ffffff`), CSS bỏ qua rồi rơi về `transparent`, và cột ghim trong suốt.
260
+ ⚠ Nó KHÔNG thay cho một bộ test: mọi thứ cần DOM (gõ vào ô, chọn vùng, copy/paste, ảo hoá dòng)
261
+ nằm ngoài tầm với của nó.
251
262
 
252
263
  Quy ước `"use client"` của gói: đặt **per-file**, ở dòng đầu tiên, và directive được giữ nguyên
253
264
  trong `dist/` → Next.js đánh đúng ranh giới server/client. Module thuần dữ liệu (`lib/cn.ts`,
@@ -0,0 +1,19 @@
1
+ import * as React from 'react';
2
+
3
+ /**
4
+ * @see https://github.com/radix-ui/primitives/blob/main/packages/react/compose-refs/src/compose-refs.tsx
5
+ */
6
+
7
+ type PossibleRef<T> = React.Ref<T> | undefined;
8
+ /**
9
+ * A utility to compose multiple refs together
10
+ * Accepts callback refs and RefObject(s)
11
+ */
12
+ declare function composeRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T>;
13
+ /**
14
+ * A custom hook that composes multiple refs
15
+ * Accepts callback refs and RefObject(s)
16
+ */
17
+ declare function useComposedRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T>;
18
+
19
+ export { composeRefs, useComposedRefs };
@@ -0,0 +1,41 @@
1
+ import * as React from "react";
2
+ function setRef(ref, value) {
3
+ if (typeof ref === "function") {
4
+ return ref(value);
5
+ }
6
+ if (ref !== null && ref !== void 0) {
7
+ ref.current = value;
8
+ }
9
+ }
10
+ function composeRefs(...refs) {
11
+ return (node) => {
12
+ let hasCleanup = false;
13
+ const cleanups = refs.map((ref) => {
14
+ const cleanup = setRef(ref, node);
15
+ if (!hasCleanup && typeof cleanup === "function") {
16
+ hasCleanup = true;
17
+ }
18
+ return cleanup;
19
+ });
20
+ if (hasCleanup) {
21
+ return () => {
22
+ for (let i = 0; i < cleanups.length; i++) {
23
+ const cleanup = cleanups[i];
24
+ if (typeof cleanup === "function") {
25
+ cleanup();
26
+ } else {
27
+ setRef(refs[i], null);
28
+ }
29
+ }
30
+ };
31
+ }
32
+ };
33
+ }
34
+ function useComposedRefs(...refs) {
35
+ return React.useCallback(composeRefs(...refs), refs);
36
+ }
37
+ export {
38
+ composeRefs,
39
+ useComposedRefs
40
+ };
41
+ //# sourceMappingURL=compose-refs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/data-grid/compose-refs.ts"],"sourcesContent":["/**\n * @see https://github.com/radix-ui/primitives/blob/main/packages/react/compose-refs/src/compose-refs.tsx\n */\n\nimport * as React from \"react\";\n\ntype PossibleRef<T> = React.Ref<T> | undefined;\n\n/**\n * Set a given ref to a given value\n * This utility takes care of different types of refs: callback refs and RefObject(s)\n */\nfunction setRef<T>(ref: PossibleRef<T>, value: T) {\n if (typeof ref === \"function\") {\n return ref(value);\n }\n\n if (ref !== null && ref !== undefined) {\n ref.current = value;\n }\n}\n\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n */\nfunction composeRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T> {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup === \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n\n // React <19 will log an error to the console if a callback ref returns a\n // value. We don't use ref cleanups internally so this will only happen if a\n // user's ref callback returns a value, which we only expect if they are\n // using the cleanup functionality added in React 19.\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup === \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\n\n/**\n * A custom hook that composes multiple refs\n * Accepts callback refs and RefObject(s)\n */\nfunction useComposedRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T> {\n // biome-ignore lint/correctness/useExhaustiveDependencies: we don't want to re-run this callback when the refs change\n return React.useCallback(composeRefs(...refs), refs);\n}\n\nexport { composeRefs, useComposedRefs };\n"],"mappings":"AAIA,YAAY,WAAW;AAQvB,SAAS,OAAU,KAAqB,OAAU;AAChD,MAAI,OAAO,QAAQ,YAAY;AAC7B,WAAO,IAAI,KAAK;AAAA,EAClB;AAEA,MAAI,QAAQ,QAAQ,QAAQ,QAAW;AACrC,QAAI,UAAU;AAAA,EAChB;AACF;AAMA,SAAS,eAAkB,MAA8C;AACvE,SAAO,CAAC,SAAS;AACf,QAAI,aAAa;AACjB,UAAM,WAAW,KAAK,IAAI,CAAC,QAAQ;AACjC,YAAM,UAAU,OAAO,KAAK,IAAI;AAChC,UAAI,CAAC,cAAc,OAAO,YAAY,YAAY;AAChD,qBAAa;AAAA,MACf;AACA,aAAO;AAAA,IACT,CAAC;AAMD,QAAI,YAAY;AACd,aAAO,MAAM;AACX,iBAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACxC,gBAAM,UAAU,SAAS,CAAC;AAC1B,cAAI,OAAO,YAAY,YAAY;AACjC,oBAAQ;AAAA,UACV,OAAO;AACL,mBAAO,KAAK,CAAC,GAAG,IAAI;AAAA,UACtB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAMA,SAAS,mBAAsB,MAA8C;AAE3E,SAAO,MAAM,YAAY,YAAY,GAAG,IAAI,GAAG,IAAI;AACrD;","names":[]}
@@ -0,0 +1,15 @@
1
+ import * as React from 'react';
2
+ import { DataGridCellProps } from './types.js';
3
+ import '@tanstack/react-table';
4
+
5
+ declare function ShortTextCell<TData>({ cell, tableMeta, rowIndex, columnId, rowHeight, isEditing, isFocused, isSelected, isSearchMatch, isActiveSearchMatch, readOnly }: DataGridCellProps<TData>): React.JSX.Element;
6
+ declare function LongTextCell<TData>({ cell, tableMeta, rowIndex, columnId, rowHeight, isFocused, isEditing, isSelected, isSearchMatch, isActiveSearchMatch, readOnly }: DataGridCellProps<TData>): React.JSX.Element;
7
+ declare function NumberCell<TData>({ cell, tableMeta, rowIndex, columnId, rowHeight, isFocused, isEditing, isSelected, isSearchMatch, isActiveSearchMatch, readOnly }: DataGridCellProps<TData>): React.JSX.Element;
8
+ declare function UrlCell<TData>({ cell, tableMeta, rowIndex, columnId, rowHeight, isEditing, isFocused, isSelected, isSearchMatch, isActiveSearchMatch, readOnly }: DataGridCellProps<TData>): React.JSX.Element;
9
+ declare function CheckboxCell<TData>({ cell, tableMeta, rowIndex, columnId, rowHeight, isFocused, isSelected, isSearchMatch, isActiveSearchMatch, readOnly }: Omit<DataGridCellProps<TData>, "isEditing">): React.JSX.Element;
10
+ declare function SelectCell<TData>({ cell, tableMeta, rowIndex, columnId, rowHeight, isFocused, isEditing, isSelected, isSearchMatch, isActiveSearchMatch, readOnly }: DataGridCellProps<TData>): React.JSX.Element;
11
+ declare function MultiSelectCell<TData>({ cell, tableMeta, rowIndex, columnId, rowHeight, isFocused, isEditing, isSelected, isSearchMatch, isActiveSearchMatch, readOnly }: DataGridCellProps<TData>): React.JSX.Element;
12
+ declare function DateCell<TData>({ cell, tableMeta, rowIndex, columnId, rowHeight, isFocused, isEditing, isSelected, isSearchMatch, isActiveSearchMatch, readOnly }: DataGridCellProps<TData>): React.JSX.Element;
13
+ declare function FileCell<TData>({ cell, tableMeta, rowIndex, columnId, rowHeight, isFocused, isEditing, isSelected, isSearchMatch, isActiveSearchMatch, readOnly }: DataGridCellProps<TData>): React.JSX.Element;
14
+
15
+ export { CheckboxCell, DateCell, FileCell, LongTextCell, MultiSelectCell, NumberCell, SelectCell, ShortTextCell, UrlCell };