@comitor/ui 1.10.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -5
- package/dist/data-grid/compose-refs.d.ts +19 -0
- package/dist/data-grid/compose-refs.js +41 -0
- package/dist/data-grid/compose-refs.js.map +1 -0
- package/dist/data-grid/data-grid-cell-variants.d.ts +15 -0
- package/dist/data-grid/data-grid-cell-variants.js +1738 -0
- package/dist/data-grid/data-grid-cell-variants.js.map +1 -0
- package/dist/data-grid/data-grid-cell-wrapper.d.ts +9 -0
- package/dist/data-grid/data-grid-cell-wrapper.js +179 -0
- package/dist/data-grid/data-grid-cell-wrapper.js.map +1 -0
- package/dist/data-grid/data-grid-cell.d.ts +8 -0
- package/dist/data-grid/data-grid-cell.js +101 -0
- package/dist/data-grid/data-grid-cell.js.map +1 -0
- package/dist/data-grid/data-grid-column-header.d.ts +12 -0
- package/dist/data-grid/data-grid-column-header.js +207 -0
- package/dist/data-grid/data-grid-column-header.js.map +1 -0
- package/dist/data-grid/data-grid-context-menu.d.ts +12 -0
- package/dist/data-grid/data-grid-context-menu.js +161 -0
- package/dist/data-grid/data-grid-context-menu.js.map +1 -0
- package/dist/data-grid/data-grid-filter-menu.d.ts +23 -0
- package/dist/data-grid/data-grid-filter-menu.js +725 -0
- package/dist/data-grid/data-grid-filter-menu.js.map +1 -0
- package/dist/data-grid/data-grid-keyboard-shortcuts.d.ts +31 -0
- package/dist/data-grid/data-grid-keyboard-shortcuts.js +229 -0
- package/dist/data-grid/data-grid-keyboard-shortcuts.js.map +1 -0
- package/dist/data-grid/data-grid-locale.d.ts +24 -0
- package/dist/data-grid/data-grid-locale.js +25 -0
- package/dist/data-grid/data-grid-locale.js.map +1 -0
- package/dist/data-grid/data-grid-paste-dialog.d.ts +11 -0
- package/dist/data-grid/data-grid-paste-dialog.js +104 -0
- package/dist/data-grid/data-grid-paste-dialog.js.map +1 -0
- package/dist/data-grid/data-grid-presence.d.ts +14 -0
- package/dist/data-grid/data-grid-presence.js +16 -0
- package/dist/data-grid/data-grid-presence.js.map +1 -0
- package/dist/data-grid/data-grid-row-height-menu.d.ts +25 -0
- package/dist/data-grid/data-grid-row-height-menu.js +53 -0
- package/dist/data-grid/data-grid-row-height-menu.js.map +1 -0
- package/dist/data-grid/data-grid-row.d.ts +28 -0
- package/dist/data-grid/data-grid-row.js +206 -0
- package/dist/data-grid/data-grid-row.js.map +1 -0
- package/dist/data-grid/data-grid-search.d.ts +10 -0
- package/dist/data-grid/data-grid-search.js +184 -0
- package/dist/data-grid/data-grid-search.js.map +1 -0
- package/dist/data-grid/data-grid-select-column.d.ts +12 -0
- package/dist/data-grid/data-grid-select-column.js +179 -0
- package/dist/data-grid/data-grid-select-column.js.map +1 -0
- package/dist/data-grid/data-grid-skeleton.d.ts +13 -0
- package/dist/data-grid/data-grid-skeleton.js +52 -0
- package/dist/data-grid/data-grid-skeleton.js.map +1 -0
- package/dist/data-grid/data-grid-sort-menu.d.ts +23 -0
- package/dist/data-grid/data-grid-sort-menu.js +283 -0
- package/dist/data-grid/data-grid-sort-menu.js.map +1 -0
- package/dist/data-grid/data-grid-view-menu.d.ts +24 -0
- package/dist/data-grid/data-grid-view-menu.js +74 -0
- package/dist/data-grid/data-grid-view-menu.js.map +1 -0
- package/dist/data-grid/data-grid.d.ts +44 -0
- package/dist/data-grid/data-grid.js +238 -0
- package/dist/data-grid/data-grid.js.map +1 -0
- package/dist/data-grid/filters.d.ts +27 -0
- package/dist/data-grid/filters.js +233 -0
- package/dist/data-grid/filters.js.map +1 -0
- package/dist/data-grid/index.d.ts +25 -0
- package/dist/data-grid/index.js +95 -0
- package/dist/data-grid/index.js.map +1 -0
- package/dist/data-grid/messages-en.d.ts +294 -0
- package/dist/data-grid/messages-en.js +279 -0
- package/dist/data-grid/messages-en.js.map +1 -0
- package/dist/data-grid/messages-vi.d.ts +12 -0
- package/dist/data-grid/messages-vi.js +279 -0
- package/dist/data-grid/messages-vi.js.map +1 -0
- package/dist/data-grid/messages.d.ts +567 -0
- package/dist/data-grid/messages.js +20 -0
- package/dist/data-grid/messages.js.map +1 -0
- package/dist/data-grid/sortable.d.ts +50 -0
- package/dist/data-grid/sortable.js +361 -0
- package/dist/data-grid/sortable.js.map +1 -0
- package/dist/data-grid/toast.d.ts +10 -0
- package/dist/data-grid/toast.js +21 -0
- package/dist/data-grid/toast.js.map +1 -0
- package/dist/data-grid/types.d.ts +189 -0
- package/dist/data-grid/types.js +1 -0
- package/dist/data-grid/types.js.map +1 -0
- package/dist/data-grid/use-as-ref.d.ts +5 -0
- package/dist/data-grid/use-as-ref.js +13 -0
- package/dist/data-grid/use-as-ref.js.map +1 -0
- package/dist/data-grid/use-badge-overflow.d.ts +24 -0
- package/dist/data-grid/use-badge-overflow.js +123 -0
- package/dist/data-grid/use-badge-overflow.js.map +1 -0
- package/dist/data-grid/use-callback-ref.d.ts +10 -0
- package/dist/data-grid/use-callback-ref.js +12 -0
- package/dist/data-grid/use-callback-ref.js.map +1 -0
- package/dist/data-grid/use-data-grid-undo-redo.d.ts +45 -0
- package/dist/data-grid/use-data-grid-undo-redo.js +348 -0
- package/dist/data-grid/use-data-grid-undo-redo.js.map +1 -0
- package/dist/data-grid/use-data-grid.d.ts +372 -0
- package/dist/data-grid/use-data-grid.js +2697 -0
- package/dist/data-grid/use-data-grid.js.map +1 -0
- package/dist/data-grid/use-debounced-callback.d.ts +6 -0
- package/dist/data-grid/use-debounced-callback.js +19 -0
- package/dist/data-grid/use-debounced-callback.js.map +1 -0
- package/dist/data-grid/use-isomorphic-layout-effect.d.ts +5 -0
- package/dist/data-grid/use-isomorphic-layout-effect.js +6 -0
- package/dist/data-grid/use-isomorphic-layout-effect.js.map +1 -0
- package/dist/data-grid/use-lazy-ref.d.ts +5 -0
- package/dist/data-grid/use-lazy-ref.js +12 -0
- package/dist/data-grid/use-lazy-ref.js.map +1 -0
- package/dist/data-grid/utils.d.ts +81 -0
- package/dist/data-grid/utils.js +409 -0
- package/dist/data-grid/utils.js.map +1 -0
- 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ó **
|
|
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,12 +171,21 @@ 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** · 36 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`**, tầng duy nhất mặc định **tiếng Anh** (prop `locale`, xem dưới), 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
|
|
|
174
178
|
**Cơ chế `labels` — đổi ngôn ngữ mà không fork component.** Chuỗi hiển thị mặc định của gói là **tiếng
|
|
175
179
|
Việt**, kể cả chuỗi chỉ trình đọc màn hình nghe thấy (`aria-label`, `sr-only`); app dùng ngôn ngữ khác
|
|
176
|
-
override qua prop `labels`.
|
|
180
|
+
override qua prop `labels`.
|
|
181
|
+
|
|
182
|
+
⚠ **`DataGrid` là ngoại lệ, ở cả hai vế.** Nó mặc định **tiếng Anh**, và nó không dùng `labels` mà
|
|
183
|
+
dùng prop **`locale`** — `"en"` · `"vi"`, hoặc cả một object `DataGridMessages` tự soạn. Lý do:
|
|
184
|
+
phần lớn chuỗi của nó là chuỗi gốc của tablecn, nên giữ tiếng Anh làm bản gốc thì đối chiếu ngược
|
|
185
|
+
với thượng nguồn là so trực tiếp. Muốn tiếng Việt thì khai một lần bằng `DataGridLocaleProvider`,
|
|
186
|
+
và nhớ truyền `locale` cho cả `useDataGrid` — thanh công cụ nằm ngoài `<DataGrid>` nên nó KHÔNG
|
|
187
|
+
nhận được prop của lưới, còn hook thì bắn toast ở ngoài cây DOM của lưới nên nó không đọc được
|
|
188
|
+
provider. Chi tiết: [docs/data-grid.md](docs/data-grid.md) §11. Kiểu là `Partial<>` và component luôn trải `{ ...DEFAULT_*, ...labels }`,
|
|
177
189
|
nên truyền một khoá không làm mất phần còn lại. Component chỉ có một hai chuỗi thì mở bằng **prop
|
|
178
190
|
rời** thay cho cả một object — `clearLabel`, `pendingLabel`, `overflowLabel`, `placeholder`,
|
|
179
191
|
`emptyText`: cùng cơ chế, chỉ khác hình dạng. ⚠ Khoá có số/đơn vị chèn vào là **HÀM**, không phải
|
|
@@ -225,7 +237,7 @@ https://design-system.comitor.ai/foundations/colors
|
|
|
225
237
|
|
|
226
238
|
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
239
|
`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:
|
|
240
|
+
→ `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
241
|
|
|
230
242
|
- **`lint:a11y` — hợp đồng màu.** Quét **toàn bộ** `src/**/*.{ts,tsx}` theo QUY TẮC (không theo danh
|
|
231
243
|
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 +257,16 @@ Mỗi bản publish đi qua cùng một chuỗi cổng (`prepublishOnly` nối c
|
|
|
245
257
|
- **`verify:directives` — ranh giới server/client.** File nguồn nào mở đầu bằng `"use client"` thì
|
|
246
258
|
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
259
|
liệu thuần nào được kẹt trong file client (§4.2).
|
|
248
|
-
- **`smoke:entries`** nạp cả
|
|
260
|
+
- **`smoke:entries`** nạp cả 7 entry bằng Node ESM thuần, qua đúng `exports` map (§3).
|
|
249
261
|
- **`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
262
|
toàn bộ luật active matching của sidebar dưới dạng hàm thuần (§4.1).
|
|
263
|
+
- **`test:grid-render`** render THẬT `DataGrid` bằng `react-dom/server` rồi soi HTML ra được. Nó
|
|
264
|
+
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ứ
|
|
265
|
+
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
|
|
266
|
+
đượ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`
|
|
267
|
+
là màu đầy đủ `#ffffff`), CSS bỏ qua rồi rơi về `transparent`, và cột ghim trong suốt.
|
|
268
|
+
⚠ 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)
|
|
269
|
+
nằm ngoài tầm với của nó.
|
|
251
270
|
|
|
252
271
|
Quy ước `"use client"` của gói: đặt **per-file**, ở dòng đầu tiên, và directive được giữ nguyên
|
|
253
272
|
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 };
|