comins-table 0.1.9 → 0.1.11
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/CHANGELOG.md +67 -1
- package/DESIGN.md +17 -1
- package/README.md +78 -16
- package/THIRD_PARTY_NOTICES.md +0 -2
- package/dist/cell-fill.d.ts +25 -0
- package/dist/cell-fill.d.ts.map +1 -0
- package/dist/clipboard-text.d.ts +5 -0
- package/dist/clipboard-text.d.ts.map +1 -0
- package/dist/clipboard.d.ts +1 -1
- package/dist/clipboard.d.ts.map +1 -1
- package/dist/clipboard.js +2 -2
- package/dist/column-filter.d.ts +2 -1
- package/dist/column-filter.d.ts.map +1 -1
- package/dist/component-renderer.d.ts.map +1 -1
- package/dist/{core-D01wEe-7.js → core-C1tlvY8Q.js} +236 -170
- package/dist/core-C1tlvY8Q.js.map +1 -0
- package/dist/core.d.ts +12 -2
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +2 -2
- package/dist/index.d.ts +56 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3242 -1851
- package/dist/index.js.map +1 -1
- package/dist/row-height.d.ts +25 -0
- package/dist/row-height.d.ts.map +1 -0
- package/dist/selection-data.d.ts +14 -0
- package/dist/selection-data.d.ts.map +1 -0
- package/dist/selection.js +2 -2
- package/dist/table-icons.d.ts.map +1 -1
- package/dist/tree-drag.d.ts +47 -0
- package/dist/tree-drag.d.ts.map +1 -0
- package/dist/tree.d.ts +19 -0
- package/dist/tree.d.ts.map +1 -1
- package/dist/use-viewport.d.ts +28 -0
- package/dist/use-viewport.d.ts.map +1 -0
- package/dist/viewport-data.d.ts +73 -0
- package/dist/viewport-data.d.ts.map +1 -0
- package/dist/viewport-layout.d.ts +21 -0
- package/dist/viewport-layout.d.ts.map +1 -0
- package/dist/viewport-requests.d.ts +9 -0
- package/dist/viewport-requests.d.ts.map +1 -0
- package/dist/virtual-layout.d.ts +12 -2
- package/dist/virtual-layout.d.ts.map +1 -1
- package/package.json +15 -1
- package/styles.css +176 -34
- package/dist/core-D01wEe-7.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,72 @@
|
|
|
1
1
|
# Comins Table
|
|
2
2
|
|
|
3
|
-
## Unreleased
|
|
3
|
+
## 0.1.11 - Unreleased
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Opt-in external plain-text TSV paste through `clipboardPaste`, typed `cell.parseClipboard`, `onClipboardError`, and `parseCominsClipboardText` / `pasteCominsText` Core helpers. Parsing is bounded and batch errors are atomic; native editors keep their clipboard behavior.
|
|
8
|
+
- Opt-in `fillHandle` with typed value/pattern repetition, preview, edge scrolling, cancellation, and click/Ref `fillSelection` alternatives. Both editing options require Cell selection and a controlled data callback.
|
|
9
|
+
- Optional `cell.validateFill` validates typed destination values before a Fill commits. Returning `false` or throwing rejects the entire operation without changing data; React reports the error through `onClipboardError`.
|
|
10
|
+
- A 1,000-Row Playground editing example with automatic height, pinned Columns, numeric conversion and protected Rows/Cells, plus matching English/Korean guides.
|
|
11
|
+
- A Clipboard/Fill README animation and refreshed 0.1.11 overview and feature GIFs captured from live demos.
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- **Migration:** Row Drag is now disabled by default. Set `rowProps={{ draggable: true }}` to retain handle-based movement. `onChangeData` remains optional for local Row reordering; a new `data` array replaces internal Rows, while option-only rerenders preserve local order. Tree and cross-Group/transfer ownership contracts remain unchanged.
|
|
16
|
+
- Header Sort uses the same Chevron family and 24px icon-button primitive as Row Group disclosure, retaining sorting, keyboard activation, multi-sort and resize/drag isolation.
|
|
17
|
+
- Header and Row Group drag feedback uses accent/danger tokens, neutral source placeholders and a readable light/dark drag preview. Filled ranges, focus, disabled controls and reduced motion follow `DESIGN.md`.
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- Completed Playground option toggle styling, including automatic-height content length, width, renderer expansion, Tree policies, Group visibility, and Viewport request options. Pressed states are visible and support native Enter/Space activation.
|
|
22
|
+
- Excluded ignored local diagnostic files from Vitest discovery so the normal verification command does not execute Playwright-only diagnostics.
|
|
23
|
+
- Removed duplicated perimeter borders at the final Body/Header/Summary Cell and unified Row, Tree and Group drop feedback with the Header target tokens.
|
|
24
|
+
- Enabled local Row/Group edge auto-scroll with refreshed virtual drop targets and viewport-clipped bounds. Tree pointer drops preserve the scrolled viewport instead of following a moved anchor Row.
|
|
25
|
+
- Connected CRUD reordering to controlled data and replaced position-based IDs and labels in both Virtualization examples with stable Row identities. Clarified the Viewport Datasource Row Drag exclusion.
|
|
26
|
+
- Kept the top border stationary when Headers are hidden, and removed Row drag placeholder layout shifts. Local virtual Row drops preserve the viewport position; fixed-height virtual rendering uses the same logical/physical offset convention as variable-height rendering.
|
|
27
|
+
- Made Component example labels follow stable Row data, aligned example text/numeric/control values, clarified empty filtered Groups and disabled Rows, and connected Context Create/Delete to actual example data changes.
|
|
28
|
+
- Added a two-value TSV sample and explained trailing empty fields without changing intentional empty-cell paste behavior.
|
|
29
|
+
- Separated the CRUD Playground's internal Row identity from editable `column4`, so all six displayed fields can be updated while selection and deletion keep targeting the same Row.
|
|
30
|
+
- Clamped logical scroll anchors to the final viewport after sorting variable-height Rows, preventing blank space below the last Row.
|
|
31
|
+
- Preserved keyboard focus when clearing Header sort and opening the first or closing the last virtual Row Detail.
|
|
32
|
+
- Kept incomplete filter drafts independent from applied conditions and repositioned filter popovers after layout changes, above sibling Headers while inheriting Table theme tokens.
|
|
33
|
+
- Connected controlled expansion in the 10,000-node Tree Playground and rejected non-numeric Fill values in its numeric editing example.
|
|
34
|
+
|
|
35
|
+
### Compatibility notes
|
|
36
|
+
|
|
37
|
+
- `clipboard`, `clipboardPaste` and `fillHandle` remain independent opt-in features. Existing internal paste remains the default. OS paste imports strings unless a Column parser converts them, and intentional empty TSV Cells overwrite editable destinations.
|
|
38
|
+
- Fill repeats existing values; automatic series and source clearing on shrink are not included. Viewport edits require contiguous loaded data and do not fetch or persist it.
|
|
39
|
+
|
|
40
|
+
## 0.1.10 - 2026-09-11
|
|
41
|
+
|
|
42
|
+
### Added
|
|
43
|
+
|
|
44
|
+
- Controlled Tree Row drag at every depth through `treeRowDrag`, with opt-in `allowReparent`, immutable `moveCominsTreeNode` subtree moves, drop validation, drag lifecycle callbacks, and pointer/keyboard navigation through virtualized Rows.
|
|
45
|
+
- Numeric per-Row and automatic business Row heights through `getRowHeight` and `estimatedRowHeight`, shared mounted-row measurement, variable-height virtualization, and scroll-anchor preservation. Flat, Grouped business, and Tree Rows are supported; expanded Row Details are measured independently.
|
|
46
|
+
- Known-count Viewport Datasource loading through `useCominsViewport`, with controlled snapshot/reducer APIs, bounded data and height caches, cancellable range requests, stale-response protection, explicit retry, absolute-index callbacks, and loaded Cell editing. Automatic heights, distant scrolling, and cache eviction/remeasurement are supported; server queries and edit persistence remain application-owned.
|
|
47
|
+
- Independent Row/Cell selection through `rowSelectionOnClick={false}`, plus `getSelectedRows()`, `getSelectedCells()`, and `getSelection()` Ref APIs. Reads return available data without requesting unloaded Viewport Rows.
|
|
48
|
+
- Opt-in OS keyboard copy through `clipboard` and explicit `copySelection("auto" | "cells" | "rows")`. Automatic copy prioritizes multiple Cells, selected Rows, then a single Cell. Discontiguous selection produces a TSV rectangle with empty unselected positions; internal paste skips those positions.
|
|
49
|
+
- Matching English/Korean guides and Playground routes for automatic height and Viewport loading, with public type checks, browser geometry coverage, and focused performance budgets.
|
|
50
|
+
|
|
51
|
+
### Changed
|
|
52
|
+
|
|
53
|
+
- Aligned Playground Column labels with data keys. CRUD uses `column1` through `column6` and preserves its `column4` Row ID when editing.
|
|
54
|
+
- Expanded the Lazy Load example to 1,000 deterministic Rows in batches of 100, with simulated asynchronous delay and cancellation.
|
|
55
|
+
- Equalized initial sibling Header Group widths, enabled movement in the Column Pinning Group example, moved movement restrictions into Row Grouping controls, and aligned Summary label/value spans with visible Columns and pin boundaries.
|
|
56
|
+
- Enabled parent changes and automatic height by default in the Tree drag Playground example. Package defaults remain opt-in: `treeRowDrag` is omitted, `allowReparent` is false, automatic height requires `getRowHeight`, `rowSelectionOnClick` is true, and `clipboard` is false.
|
|
57
|
+
|
|
58
|
+
### Fixed
|
|
59
|
+
|
|
60
|
+
- Kept populated-table loading overlays visible when reloading after scrolling.
|
|
61
|
+
- Restored Tree drag focus after controlled data and virtual-window updates, and Header Menu Escape handling from menu items. Connected Playground Group disclosure state and added Context Menu keyboard navigation and focus recovery.
|
|
62
|
+
- Corrected Boolean Cell formatting and kept fixed-height Viewport Renderer content within its chosen height.
|
|
63
|
+
- Fixed Cell pointer and Shift-range focus so keyboard copy uses selected values instead of page text, while preserving native interaction with Renderer controls. Keyboard copy refreshes the internal paste buffer for the latest selection.
|
|
64
|
+
|
|
65
|
+
### Compatibility notes
|
|
66
|
+
|
|
67
|
+
- Existing fixed-height rendering, Row-click selection, and internal clipboard behavior remain the defaults. OS clipboard import/paste is not included; Ctrl/Cmd+V continues to use the Table's internal buffer.
|
|
68
|
+
- Viewport requires a known count, stable globally unique Row IDs, and arbitrary index-range access. It does not combine with Tree, Row Grouping, Row Detail, Row Drag, append loading, pagination, built-in sorting/filtering, or automatic Summary aggregation.
|
|
69
|
+
- Tree parent changes remain explicit, active sorting disables manual Tree movement, and cross-table Tree movement and Tree Row copy/paste remain unsupported.
|
|
4
70
|
|
|
5
71
|
## 0.1.9 - 2026-08-31
|
|
6
72
|
|
package/DESIGN.md
CHANGED
|
@@ -22,7 +22,7 @@ Motion is limited to short color, opacity, position, and resize feedback. Motion
|
|
|
22
22
|
|
|
23
23
|
| Surface | Contract |
|
|
24
24
|
| --- | --- |
|
|
25
|
-
| Frame | Owns
|
|
25
|
+
| Frame | Owns a single 1px outer border, radius, background, and the final horizontal scrollbar. Header and final Cells must not duplicate the perimeter border; pinned-zone separators remain distinct. |
|
|
26
26
|
| Header | Uses an accent surface by default and retains visible focus, resize, sort, move, and pinned boundaries. |
|
|
27
27
|
| Body Cell | Keeps grid borders and application Row backgrounds visible beneath selection indicators. |
|
|
28
28
|
| Group Row | Uses one semantic full-width Cell. Its content remains visible at the Body viewport start during horizontal scrolling. |
|
|
@@ -36,6 +36,22 @@ Rest, hover, active, `focus-visible`, selected, disabled, loading, invalid, drag
|
|
|
36
36
|
|
|
37
37
|
`theme.density` selects the built-in Row and Header measurements. Applications may override the documented height and padding tokens, but fixed-height virtualization still requires the resolved `rowHeight` contract to match the logical Row height. Pinned zones preserve a center-content budget and may demote inner pinned blocks when the container becomes too narrow; this is a rendering decision and does not change persisted pin intent.
|
|
38
38
|
|
|
39
|
+
For variable business Row heights, `getRowHeight` owns the layout policy. Returning `"auto"` measures normal-flow Cell content; `estimatedRowHeight` supplies the initial estimate without imposing a limit on the Renderer. Group headings retain their fixed `rowHeight`, and Row Details keep their independent height policy. CSS height overrides alone do not update virtual geometry. Viewport loading estimates unloaded heights and may adjust the scrollbar as content is measured.
|
|
40
|
+
|
|
41
|
+
## Icons, sorting, and drag feedback
|
|
42
|
+
|
|
43
|
+
Built-in icons use the existing Radix 15px SVG primitives and inherit their foreground. Icon buttons have a 24px square interaction area. Disclosure uses right/down Chevrons; ascending/descending sorting uses up/down Chevrons from the same family. Sorting remains a Header action, with `aria-sort` on the owning Header, an accessible button label, decorative SVGs, and native Enter/Space activation. Sort direction must not be confused with Group expansion state.
|
|
44
|
+
|
|
45
|
+
| Interaction state | Treatment |
|
|
46
|
+
| --- | --- |
|
|
47
|
+
| Source placeholder | Neutral `surface-muted` / `muted` pair and a one-pixel inset dashed `drop-marker` outline. Preserve original geometry. |
|
|
48
|
+
| Valid target | `drop-valid-background` with readable `foreground`; 2px solid `drop-valid` outline or insertion line for Row, Tree, Group and Header targets. |
|
|
49
|
+
| Invalid target | `drop-invalid-background` with readable foreground and 2px solid `drop-invalid` outline; retain rejected-drop semantics. |
|
|
50
|
+
| Floating drag preview | `surface` / `foreground`, `drop-marker` border, 2px radius, compact spacing, subdued shadow; never intercept pointer events. |
|
|
51
|
+
| Fill Handle | 24px hit area, 8px accent marker, visible keyboard focus, preview without data mutation. Click actions provide a non-drag alternative. |
|
|
52
|
+
|
|
53
|
+
Header and Row Group targets share these states while retaining their own insertion geometry. Never substitute a hard-coded light foreground on a dark-theme accent marker. Component disabled text uses `component-muted`; menu and virtual-list items distinguish keyboard focus from hover. Reduced-motion mode disables Sort and Group disclosure transitions as well as movement animation.
|
|
54
|
+
|
|
39
55
|
## CSS token stability
|
|
40
56
|
|
|
41
57
|
The canonical machine-readable inventory is `docs/feature-manifest.json`. Stability means:
|
package/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Comins Table
|
|
2
2
|
|
|
3
|
+
<img src="example/public/comins-symbol.svg" width="64" height="64" alt="Comins" />
|
|
4
|
+
|
|
3
5
|
Comins Table is a controlled React data table for data-heavy application screens. Applications keep ownership of their data and business models while the Table provides virtualized rendering, structured Rows, configurable Headers, precise selection, and customizable cells.
|
|
4
6
|
|
|
5
7
|
[](https://www.npmjs.com/package/comins-table)
|
|
@@ -7,20 +9,35 @@ Comins Table is a controlled React data table for data-heavy application screens
|
|
|
7
9
|
[](https://github.com/kim1124/comins-table/actions/workflows/verify.yml)
|
|
8
10
|
[](LICENSE)
|
|
9
11
|
|
|
10
|
-

|
|
11
13
|
|
|
12
14
|
## Why Comins Table
|
|
13
15
|
|
|
14
16
|
| Area | Shipped capabilities |
|
|
15
17
|
| --- | --- |
|
|
16
18
|
| Controlled data | Application-owned `data`, CRUD helpers, `onChangeData`, pagination, sorting, and layout callbacks |
|
|
17
|
-
| Rendering and scale | Fixed-height virtualization
|
|
19
|
+
| Rendering and scale | Fixed and automatic Row heights, variable-height virtualization, a tested 100,000-row route, bounded Viewport range loading, infinite scroll, append-mode lazy loading, loading, and empty states |
|
|
18
20
|
| Interaction | Accessible single and opt-in multi-column Header sorting, controlled Column Filtering, resize, responsive Column Pinning, 6-pixel horizontal column reorder, Cross-Table Row/Group Drag, Row and Cell selection, ranges, clipboard, and context menu callbacks |
|
|
19
|
-
| Data structure | Controlled client-side flat Row Grouping, flat Row Expand Details, Summary Row aggregation, and
|
|
21
|
+
| Data structure | Controlled client-side flat Row Grouping, flat Row Expand Details, Summary Row aggregation, and Tree Grid expand/fold and subtree drag |
|
|
20
22
|
| Custom UI | Cell/Header renderers, built-in button/input/checkbox/radio/select/toggle/progress/menu/Virtual List components, and CSS-variable themes |
|
|
21
23
|
|
|
22
24
|
Comins Table is standalone and does not wrap another table or grid implementation.
|
|
23
25
|
|
|
26
|
+
### Version 0.1.11
|
|
27
|
+
|
|
28
|
+
The source and demonstrations below target 0.1.11. Publication is tracked separately in the changelog.
|
|
29
|
+
|
|
30
|
+
**0.1.11 migration:** Row Drag is opt-in with `rowProps={{ draggable: true }}`. `onChangeData` is optional for local Row movement; connect it to synchronize application state. New `data` arrays remain authoritative.
|
|
31
|
+
|
|
32
|
+
This source version adds opt-in external TSV paste and a visual Fill Handle, with atomic controlled edits and protected Cell guards. Header sorting uses disclosure-family Chevrons, and drag feedback follows the packaged design contract. Tree Row drag, automatic heights, and Viewport Datasource remain available. See the [0.1.11 changelog](https://github.com/kim1124/comins-table/blob/main/CHANGELOG.md) for the complete change list.
|
|
33
|
+
|
|
34
|
+
For migration, keep these data-ownership boundaries explicit:
|
|
35
|
+
|
|
36
|
+
- Local Row reordering needs `rowProps.draggable: true`; connect `onChangeData` when the application must retain the new order. Use stable Row IDs and keep the input array reference stable when relying on internal order.
|
|
37
|
+
- Tree movement still requires `treeRowDrag` and controlled `onChangeData`. Cross-Table transfers use the Coordinator; enabling a local Row handle does not enable transfers.
|
|
38
|
+
- OS paste and Fill require `cellSelection` and `onChangeData`; both remain opt-in. A two-field TSV updates two destination Cells. A trailing tab deliberately supplies an additional empty field.
|
|
39
|
+
- Viewport loading has no Row Drag handles. Reordering a partially loaded dataset belongs to the server, followed by a dataset reset.
|
|
40
|
+
|
|
24
41
|
### Feature catalog
|
|
25
42
|
|
|
26
43
|
This catalog is a consumer-oriented summary, not the complete status registry. Use the [Canonical Feature Manifest](https://github.com/kim1124/comins-table/blob/main/docs/feature-manifest.json) and the language indexes for every shipped, unsupported, and evidence-linked feature.
|
|
@@ -31,7 +48,7 @@ This catalog is a consumer-oriented summary, not the complete status registry. U
|
|
|
31
48
|
| Header and layout | Sort, multi-sort, resize, move, Header Groups, Filtering, and Pinning | [`Header`](http://127.0.0.1:4002/examples/header), [`Filtering`](http://127.0.0.1:4002/examples/column-filtering), [`Pinning`](http://127.0.0.1:4002/examples/column-pinning) | [Header](https://github.com/kim1124/comins-table/blob/main/docs/user/06-header.md), [Filtering](https://github.com/kim1124/comins-table/blob/main/docs/user/21-column-filtering.md), [Pinning](https://github.com/kim1124/comins-table/blob/main/docs/user/22-column-pinning.md) |
|
|
32
49
|
| Rows, cells, and selection | Row and Cell callbacks, selection, Clipboard, Context Menu, and Row Expand | [`Selection`](http://127.0.0.1:4002/examples/selection-clipboard), [`Row Expand`](http://127.0.0.1:4002/examples/row-expand) | [Row](https://github.com/kim1124/comins-table/blob/main/docs/user/07-row.md), [Cell](https://github.com/kim1124/comins-table/blob/main/docs/user/08-cell.md), [Selection](https://github.com/kim1124/comins-table/blob/main/docs/user/10-selection.md) |
|
|
33
50
|
| Structured rows | Summary Row, Tree Grid, Row Grouping, and Cross-Table Row/Group Drag | [`Summary`](http://127.0.0.1:4002/examples/summary-row), [`Tree`](http://127.0.0.1:4002/examples/tree-grid), [`Grouping`](http://127.0.0.1:4002/examples/row-grouping), [`Transfer`](http://127.0.0.1:4002/examples/cross-table-drag) | [Summary](https://github.com/kim1124/comins-table/blob/main/docs/user/18-summary-row.md), [Tree](https://github.com/kim1124/comins-table/blob/main/docs/user/17-tree-grid.md), [Grouping](https://github.com/kim1124/comins-table/blob/main/docs/user/20-row-grouping.md), [Transfer](https://github.com/kim1124/comins-table/blob/main/docs/user/23-cross-table-drag.md) |
|
|
34
|
-
| Loading and performance | Pagination, fixed-height virtualization, Infinite Scroll, and Lazy Load | [`
|
|
51
|
+
| Loading and performance | Pagination, fixed/variable-height virtualization, automatic heights, Viewport Datasource, Infinite Scroll, and Lazy Load | [`Virtualization`](http://127.0.0.1:4002/performance/virtualization), [`Automatic height`](http://127.0.0.1:4002/performance/auto-row-height), [`Viewport`](http://127.0.0.1:4002/performance/viewport-datasource) | [Virtualization](https://github.com/kim1124/comins-table/blob/main/docs/user/11-virtualization.md), [Automatic height](https://github.com/kim1124/comins-table/blob/main/docs/user/24-auto-row-height.md), [Viewport](https://github.com/kim1124/comins-table/blob/main/docs/user/25-viewport-datasource.md), [Lazy Load](https://github.com/kim1124/comins-table/blob/main/docs/user/16-lazy-load.md) |
|
|
35
52
|
| Rendering and styling | Built-in components, custom renderers, themes, CSS variables, and export helpers | [`Components`](http://127.0.0.1:4002/examples/component), [`Theme`](http://127.0.0.1:4002/examples/theme), [`Export`](http://127.0.0.1:4002/examples/export) | [Cell](https://github.com/kim1124/comins-table/blob/main/docs/user/08-cell.md), [Styling](https://github.com/kim1124/comins-table/blob/main/docs/user/04-styling.md), [Export](https://github.com/kim1124/comins-table/blob/main/docs/user/14-export.md) |
|
|
36
53
|
| API and utilities | Ref controls, framework-independent Core helpers, Clipboard, and selection helpers | [`Ref API`](http://127.0.0.1:4002/api/ref), [`Props`](http://127.0.0.1:4002/api/props) | [Core State](https://github.com/kim1124/comins-table/blob/main/docs/user/03-core-state.md), [Clipboard](https://github.com/kim1124/comins-table/blob/main/docs/user/09-clipboard.md) |
|
|
37
54
|
|
|
@@ -126,9 +143,9 @@ export function UsersTable() {
|
|
|
126
143
|
|
|
127
144
|
## Controlled Model
|
|
128
145
|
|
|
129
|
-
Comins Table is a CSR-focused controlled component for application-owned data. The application owns the `data
|
|
146
|
+
Comins Table is a CSR-focused controlled component for application-owned data. The application owns the Row array or Viewport snapshot passed through `data`.
|
|
130
147
|
|
|
131
|
-
For table-owned data mutations, `onChangeData` emits the next flat Row array or Tree Grid node array; pass that array back through `data` to retain the mutation. Other controlled models use their matching callback and value prop rather than `onChangeData`.
|
|
148
|
+
For table-owned data mutations, `onChangeData` emits the next flat Row array or Tree Grid node array; pass that array back through `data` to retain the mutation. Viewport mode uses a controlled block snapshot instead of a full array; `useCominsViewport` connects that snapshot and its callbacks. Other controlled models use their matching callback and value prop rather than `onChangeData`.
|
|
132
149
|
|
|
133
150
|
Selection, column layout, and sort are internal view state. `onChangeSelection`, `onChangeColumnLayout`, `onChangeSort`, and `onChangeSortModel` observe those changes so an application can coordinate or persist them externally; the table updates the corresponding view state even when a callback is omitted.
|
|
134
151
|
|
|
@@ -178,7 +195,9 @@ When columns overflow horizontally, Comins Table renders one native horizontal s
|
|
|
178
195
|
|
|
179
196
|
Rows expose click, double-click, keyboard, and context-menu callbacks. Cells expose the corresponding Cell callbacks plus `format`, `renderer`, and props hooks.
|
|
180
197
|
|
|
181
|
-
A normal Row interaction selects one Row, `Ctrl`/`Cmd` toggles a Row, and `Shift` extends the visible Row range from the selection anchor. Cell selection supports a single Cell, visible `Ctrl`/`Cmd` discontiguous selection, and `Shift` or pointer-drag rectangular ranges. `CominsSelectionState.cell`
|
|
198
|
+
A normal Row interaction selects one Row, `Ctrl`/`Cmd` toggles a Row, and `Shift` extends the visible Row range from the selection anchor. Cell selection supports a single Cell, visible `Ctrl`/`Cmd` discontiguous selection, and `Shift` or pointer-drag rectangular ranges. `CominsSelectionState.cell` is the active Cell, `cells` records the discontiguous set, and `range` records the rectangle. Built-in component interactions remain isolated from `onClickCell` and `onClickRow` callback payloads so component actions do not also trigger the owning Cell or Row action.
|
|
199
|
+
|
|
200
|
+
Set `rowSelectionOnClick={false}` to preserve selected Rows while clicking or right-clicking Cells. Application checkboxes or `setSelectedRows` can control the Row selection independently. `getSelectedRows()`, `getSelectedCells()`, and `getSelection()` read Row data, raw Cell values, and the selection snapshot separately. The default `rowSelectionOnClick={true}` keeps the existing Row-click behavior.
|
|
182
201
|
|
|
183
202
|
Row Drag exposes `onBeforeRowDrag`, `onRowDrag`, and `onAfterDragRow`. The before callback can cancel prior to listener registration, target updates emit only on identity or validity changes, and the after callback reports one `moved`, `cancelled`, or `rejected` result per started gesture. Data changes remain controlled through `onChangeData` or the Cross-Table Coordinator.
|
|
184
203
|
|
|
@@ -203,7 +222,7 @@ const [expandedRowIds, setExpandedRowIds] = useState<readonly string[]>([]);
|
|
|
203
222
|
|
|
204
223
|
Row Expand is controlled by stable owner business Row IDs. An interactive disclosure requires the application to feed the next value from `onChangeExpandedRowIds` back into `expandedRowIds`; when that callback is omitted, the disclosure is disabled and read-only. A finite positive CSS pixel height is fixed and retains its inline height. Missing values, invalid numeric values, and `"auto"` use measured automatic height with no inline height. Before an automatic Detail has a matching-width measurement, a valid finite positive `estimatedRowDetailHeight` is used; otherwise the resolved `rowHeight` is the estimate. Details render as semantic owner-following Rows, stay outside selection and clipboard addressing, and preserve dormant IDs across sorting and pagination.
|
|
205
224
|
|
|
206
|
-
|
|
225
|
+
Owner data Rows can use `getRowHeight` independently of Detail height. Tree Grid Row Details and nested Details managed by Comins Table remain unsupported.
|
|
207
226
|
|
|
208
227
|
## Row Grouping
|
|
209
228
|
|
|
@@ -213,7 +232,7 @@ See the [Row Grouping guide](https://github.com/kim1124/comins-table/blob/main/d
|
|
|
213
232
|
|
|
214
233
|
Each synthetic Group Row is one full-width colspan Cell with a distinct neutral-gray background. Use `getGroupRowProps` for a typed per-Group `className` or `style`, and override `--comins-table-group-row-background` and `--comins-table-group-row-color` for theme-level styling. The Table owns disclosure and Drag controls while `renderGroupContent` can replace its inner label, count, aggregate, badge, or business-action content. Header sorting never reorders Groups; the existing Row sort policy runs independently inside every Group. Built-in `count`, `sum`, `avg`, `min`, and `max` aggregations remain available.
|
|
215
234
|
|
|
216
|
-
Synthetic Group Rows never masquerade as `TData`: ordinary Row/Cell callbacks, selection, Clipboard, Cell renderers, formatters, and Row Detail remain leaf-only. Row Grouping supports fixed-height virtualization and grouped leaf Row Detail
|
|
235
|
+
Synthetic Group Rows never masquerade as `TData`: ordinary Row/Cell callbacks, selection, Clipboard, Cell renderers, formatters, and Row Detail remain leaf-only. Row Grouping supports fixed or automatic business Row heights, variable-height virtualization, and grouped leaf Row Detail; Group headings keep the fixed `rowHeight`. It cannot be combined with pagination, infinite/lazy loading, Viewport Datasource, or Tree Grid. Multi-depth grouping remains deferred.
|
|
217
236
|
|
|
218
237
|
## Cross-Table Row And Group Drag
|
|
219
238
|
|
|
@@ -225,6 +244,34 @@ Duplicate IDs reject by default. A rejected duplicate displays a post-drop, poin
|
|
|
225
244
|
|
|
226
245
|
The target can reject through `canTransfer` or explicitly return `"overwrite"` from `resolveConflict`; Group overwrite replaces the complete target Group bundle and never merges it. The Coordinator emits one immutable source/target result, and the application applies both controlled models atomically. Cross-Table Transfer is unavailable with Tree Grid, Column Filtering, Infinite Scroll, and Lazy Load.
|
|
227
246
|
|
|
247
|
+
## Automatic Heights and Viewport Loading
|
|
248
|
+
|
|
249
|
+
Use `getRowHeight={() => "auto"}` for content-driven business Row heights, or return a positive number for an individual Row. Omitting the callback keeps the numeric `rowHeight` default of 36. `estimatedRowHeight` supplies an initial estimate, not a height limit. Custom Renderers do not need per-Cell height calculations; use normal-flow content and enable wrapping where required. Automatic heights work with Flat, Grouped business, and Tree Rows, including `treeRowDrag` where that mode supports dragging.
|
|
250
|
+
|
|
251
|
+
`useCominsViewport({ rowCount, queryKey, getRows })` loads blocks around the scroll region and connects them to the Table through `tableProps`. It enables virtualization and can be combined with `getRowHeight={() => "auto"}`. The application supplies a known total count, globally stable Row IDs, and arbitrary `[startIndex, endIndex)` range requests. Change `queryKey` when server sorting, filtering, or index order changes.
|
|
252
|
+
|
|
253
|
+
Viewport bounds cached data and measured heights; distant scrolling does not fetch every earlier page or require a full dataset array. Unloaded heights are estimated, so scrollbar size can change as content is measured. Selection getters and copy operate on loaded data without fetching missing Rows. The application owns network requests and edit persistence. Tree, Row Grouping, Row Detail, Row Drag, append loading, pagination, built-in sorting/filtering, and automatic Summary aggregation are unavailable in Viewport mode.
|
|
254
|
+
|
|
255
|
+
### Tree subtree movement
|
|
256
|
+
|
|
257
|
+
Move Gamma and its child Epsilon to another parent, then fold and expand the hierarchy.
|
|
258
|
+
|
|
259
|
+

|
|
260
|
+
|
|
261
|
+
### Content-driven heights
|
|
262
|
+
|
|
263
|
+
Expand a Cell Renderer and narrow the Table. Row heights adjust automatically across 100,000 virtualized Rows.
|
|
264
|
+
|
|
265
|
+

|
|
266
|
+
|
|
267
|
+
### Load the visible region
|
|
268
|
+
|
|
269
|
+
Drag the scrollbar to a distant region of 1,000,000 Rows, inspect the bounded cache, and change the query. This recording uses a simulated asynchronous source with a 250 ms delay.
|
|
270
|
+
|
|
271
|
+

|
|
272
|
+
|
|
273
|
+
See [automatic height](https://github.com/kim1124/comins-table/blob/main/docs/user/24-auto-row-height.md), [Viewport Datasource](https://github.com/kim1124/comins-table/blob/main/docs/user/25-viewport-datasource.md), and [Tree drag](https://github.com/kim1124/comins-table/blob/main/docs/user/17-tree-grid.md) for examples, defaults, and combination limits.
|
|
274
|
+
|
|
228
275
|
## Column Filtering
|
|
229
276
|
|
|
230
277
|
See the [Column Filtering guide](https://github.com/kim1124/comins-table/blob/main/docs/user/21-column-filtering.md) and run the [`/examples/column-filtering`](http://127.0.0.1:4002/examples/column-filtering) Playground route.
|
|
@@ -237,7 +284,7 @@ Column Filtering cannot be combined with Tree Grid, Infinite/Lazy Loading, `load
|
|
|
237
284
|
|
|
238
285
|
## Virtualization And Loading
|
|
239
286
|
|
|
240
|
-
Set `virtualized`, `rowHeight`, and `"buffer-size"` for fixed-height windowed rendering. The performance Playground includes a tested 100,000-row route while keeping only the current window and buffer mounted.
|
|
287
|
+
Set `virtualized`, `rowHeight`, and `"buffer-size"` for fixed-height windowed rendering; add `getRowHeight` for numeric per-Row or measured automatic heights. The performance Playground includes a tested 100,000-row route while keeping only the current window and buffer mounted. With ordinary virtualization, the application still supplies the full array. Viewport Datasource additionally bounds loaded data; Infinite Scroll and Lazy Load append to an application-owned array.
|
|
241
288
|
|
|
242
289
|
`infiniteScroll` requests application-owned append loading near the body viewport boundary. `lazyLoad` supports asynchronous append-mode batches with an `AbortSignal`. When `loading` is true, an empty table renders skeleton Rows and a populated table keeps its Rows visible under a loading overlay. `emptyComponent` controls the no-data content.
|
|
243
290
|
|
|
@@ -255,6 +302,8 @@ Set `tree` and provide controlled `{ item, expand, children }` nodes. `defaultEx
|
|
|
255
302
|
|
|
256
303
|
Tree Grid reuses `cell.components` and `cell.renderer`, so component cells and custom React renderers work against each node's `item`. The Tree Grid Playground includes an exactly 10,000-node virtual example.
|
|
257
304
|
|
|
305
|
+
Set `treeRowDrag={{}}` and connect `onChangeData` to reorder siblings at every depth. `treeRowDrag={{ allowReparent: true }}` also moves entire subtrees between parents or back to the root. Parent changes default to disabled. `canDrop` and Row guards restrict destinations and sources; cycles are rejected and sorting disables manual movement. `moveCominsTreeNode` exposes the immutable move helper. Handles support pointer dragging and Space, arrow keys, Enter, and Escape. The Playground drag example starts with parent changes and automatic heights enabled; these are example settings.
|
|
306
|
+
|
|
258
307
|
## Components And Renderers
|
|
259
308
|
|
|
260
309
|
Cell components include `button`, `input`, `checkbox`, `radio`, `select`, `toggle`, `progress`, and `virtual-list`; Header components also support `menu`. Use `cell.renderer` or `header.renderer` when the built-in component types are not sufficient.
|
|
@@ -263,7 +312,13 @@ Virtual List Item activation follows the normal Row selection modifiers. More se
|
|
|
263
312
|
|
|
264
313
|
## Clipboard And Export
|
|
265
314
|
|
|
266
|
-
`
|
|
315
|
+
Set `clipboard` to enable OS keyboard copy. It defaults to `false`, preserving the existing internal copy buffer. With OS copy enabled, the default priority is multiple selected Cells → selected Rows → one selected Cell. Five selected Rows and three selected Cells copy the three Cells while retaining all five selected Rows. Discontiguous Cells produce a TSV rectangle with unselected positions empty; internal paste skips those positions.
|
|
316
|
+
|
|
317
|
+
Call `copySelection("auto" | "cells" | "rows")` from a button or context menu to choose the target explicitly. This Ref method writes to the OS clipboard regardless of the `clipboard` prop, returns `Promise<string | null>`, and rejects if writing is unavailable or denied. Native text editing keeps its own copy behavior. Ctrl/Cmd+V uses the Table's internal buffer by default; enable `clipboardPaste` to import external TSV instead. See the [Clipboard guide](https://github.com/kim1124/comins-table/blob/main/docs/user/09-clipboard.md) for guards, TSV escaping, and loaded-data limits.
|
|
318
|
+
|
|
319
|
+

|
|
320
|
+
|
|
321
|
+
`copyCominsRow`, `copyCominsCell`, and `copyCominsCellRange` read Row or Cell selections. `pasteCominsRow`, `pasteCominsCell`, and `pasteCominsCellRange` apply clipboard data while respecting `props.copyable`, `props.pasteable`, and disabled guards. `fillCominsCellRange` accepts a single Cell or rectangular source pattern. Enable `clipboardPaste` for OS TSV paste and `fillHandle` for visual pattern repetition; both default to false and require `cellSelection` and `onChangeData`. Set `cell.parseClipboard` for typed external values, optional `cell.validateFill` for atomic Fill validation, and `onClipboardError` for rejected input. `parseCominsClipboardText` and `pasteCominsText` are available from the root, `/core`, and `/clipboard`. See the [Clipboard guide](https://github.com/kim1124/comins-table/blob/main/docs/user/09-clipboard.md) for limits, guards, native-editor behavior, and `fillSelection("down" | "right")` click alternatives.
|
|
267
322
|
|
|
268
323
|
Use `exportCominsRowsToCsv` and `exportCominsRowsToJson` with the exact rows and export columns the application wants to serialize. Export remains independent of visible pagination, filtering, and selection unless the application passes those rows.
|
|
269
324
|
|
|
@@ -271,7 +326,7 @@ Use `exportCominsRowsToCsv` and `exportCominsRowsToJson` with the exact rows and
|
|
|
271
326
|
|
|
272
327
|
The package stylesheet exposes module-local `--comins-table-*` CSS variables and does not apply a global reset. The six shipped theme classes are `comins-table-theme--basic`, `comins-table-theme--dark`, `comins-table-theme--skyblue`, `comins-table-theme--mint`, `comins-table-theme--gray`, and `comins-table-theme--orange`.
|
|
273
328
|
|
|
274
|
-
Use `theme.className`, `theme.style`, Row and Group Row class/style hooks, Cell props, and renderer output for application-specific presentation.
|
|
329
|
+
Use `theme.className`, `theme.style`, Row and Group Row class/style hooks, Cell props, and renderer output for application-specific presentation. For uniform fixed-height virtualization, keep `rowHeight` aligned with `--comins-table-row-height` when overriding height tokens. Use `getRowHeight` for variable or automatic business Row heights; CSS height alone does not update the virtual layout.
|
|
275
330
|
|
|
276
331
|
The [Design Contract](https://github.com/kim1124/comins-table/blob/main/DESIGN.md) classifies every Table token as public stable, public experimental, or internal. The [Componentization Guide](https://github.com/kim1124/comins-table/blob/main/docs/design/componentization.md) defines when to use a formatter, renderer, built-in component, future typed slot, token, or instance override.
|
|
277
332
|
|
|
@@ -293,6 +348,11 @@ tableRef.current?.setSortModel([
|
|
|
293
348
|
tableRef.current?.clearSort();
|
|
294
349
|
tableRef.current?.setSelectedRow(0);
|
|
295
350
|
tableRef.current?.setSelectedRows([0, 1]);
|
|
351
|
+
tableRef.current?.getSelectedRows();
|
|
352
|
+
tableRef.current?.getSelectedCells();
|
|
353
|
+
tableRef.current?.getSelection();
|
|
354
|
+
// In a user-initiated handler; handle unavailable or denied clipboard access:
|
|
355
|
+
await tableRef.current?.copySelection("rows");
|
|
296
356
|
tableRef.current?.setMoveTargetRow(3, 1);
|
|
297
357
|
tableRef.current?.expand(["department-1", "team-1-1"]);
|
|
298
358
|
tableRef.current?.fold(["team-1-1"]);
|
|
@@ -300,7 +360,9 @@ tableRef.current?.expand(); // all Tree Grid branches
|
|
|
300
360
|
tableRef.current?.fold(); // all Tree Grid branches
|
|
301
361
|
```
|
|
302
362
|
|
|
303
|
-
`setSelectedRow`, `setSelectedRows`, and `setMoveTargetRow` use the visible Row index after current sorting and pagination. `getColumnLayout`, `setColumnLayout`, `getSortState`, `setSortState`, `getSortModel`, `setSortModel`, and `clearSort` read and update the current Header view state. `expand(nodeIds?)` and `fold(nodeIds?)` accept readonly Tree Grid node-id arrays; flat tables ignore them.
|
|
363
|
+
For ordinary array-backed Tables, `setSelectedRow`, `setSelectedRows`, and `setMoveTargetRow` use the visible Row index after current sorting and pagination. Viewport selection setters use absolute dataset indexes and skip unloaded Rows; movement is unavailable. `getColumnLayout`, `setColumnLayout`, `getSortState`, `setSortState`, `getSortModel`, `setSortModel`, and `clearSort` read and update the current Header view state. `expand(nodeIds?)` and `fold(nodeIds?)` accept readonly Tree Grid node-id arrays; flat tables ignore them.
|
|
364
|
+
|
|
365
|
+
`getSelectedRows()` returns loaded selected business data in data order. `getSelectedCells()` returns `{ rowId, columnId, value }` for available selected Cells; ranges use projected display order. `getSelection()` copies the selection IDs and addresses, including Row IDs retained after Viewport cache eviction. Row objects and Cell values remain application-owned references.
|
|
304
366
|
|
|
305
367
|
## Playground
|
|
306
368
|
|
|
@@ -314,9 +376,9 @@ Use the [source repository](https://github.com/kim1124/comins-table) for develop
|
|
|
314
376
|
|
|
315
377
|
## Current Boundaries
|
|
316
378
|
|
|
317
|
-
Comins Table
|
|
379
|
+
Comins Table provides CSR arrays and known-count Viewport range loading. Server-side Row models and built-in server filtering, custom Filter editor renderers, Tree filtering, pivoting, charts, AI assistance, remote Tree loading, hierarchy pagination, Tree Row copy/paste, Tree Grid Row Details, nested managed Details, Firefox, Safari, and SSR are not shipped or supported.
|
|
318
380
|
|
|
319
|
-
The visual fill handle
|
|
381
|
+
The visual fill handle repeats values or selected patterns. Automatic numeric/date series and source clearing on range shrink are not supported. Viewport edits require contiguous loaded Rows and never request missing data.
|
|
320
382
|
|
|
321
383
|
## Development
|
|
322
384
|
|
|
@@ -331,7 +393,7 @@ npm run verify
|
|
|
331
393
|
npm run docs:readme-gif
|
|
332
394
|
```
|
|
333
395
|
|
|
334
|
-
`npm run docs:readme-gif` is a maintainer command that captures the real hidden Playground fixtures and regenerates the overview animation plus
|
|
396
|
+
`npm run docs:readme-gif` is a maintainer command that captures the real hidden Playground fixtures and regenerates the overview animation plus eight detailed feature animations, including TSV paste and Fill Handle, Tree subtree drag, automatic height, and Viewport loading.
|
|
335
397
|
|
|
336
398
|
## Trusted Publishing
|
|
337
399
|
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type RefObject } from "react";
|
|
2
|
+
import type { CominsCellAddress, CominsCellRange, CominsRowId, CominsTableState } from "./core";
|
|
3
|
+
/** Private gesture controller. All writes go through the owning Table's batch callback. */
|
|
4
|
+
export declare function useCominsCellFill<TData>(options: {
|
|
5
|
+
enabled: boolean;
|
|
6
|
+
state: CominsTableState<TData>;
|
|
7
|
+
rowIds: readonly CominsRowId[];
|
|
8
|
+
columnIds: readonly string[];
|
|
9
|
+
root: RefObject<HTMLDivElement | null>;
|
|
10
|
+
viewport: RefObject<HTMLDivElement | null>;
|
|
11
|
+
addressAtPoint: (x: number, y: number) => CominsCellAddress | null;
|
|
12
|
+
canUseRange: (range: CominsCellRange) => boolean;
|
|
13
|
+
onFill: (source: CominsCellRange, target: CominsCellRange) => boolean;
|
|
14
|
+
registerGesture: (cleanup: () => void) => void;
|
|
15
|
+
releaseGesture: (cleanup: () => void) => void;
|
|
16
|
+
scrollHorizontal: (delta: number) => void;
|
|
17
|
+
}): {
|
|
18
|
+
fillSelection: (direction: "down" | "right") => boolean;
|
|
19
|
+
preview: CominsCellRange | null;
|
|
20
|
+
isPreview: (address: CominsCellAddress) => boolean;
|
|
21
|
+
handleAddress: CominsCellAddress | null;
|
|
22
|
+
handle: import("react").JSX.Element;
|
|
23
|
+
menu: import("react").JSX.Element | null;
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=cell-fill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cell-fill.d.ts","sourceRoot":"","sources":["../src/cell-fill.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgF,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACrH,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAahG,2FAA2F;AAC3F,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IAC/B,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,IAAI,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACvC,QAAQ,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC3C,cAAc,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,iBAAiB,GAAG,IAAI,CAAC;IACnE,WAAW,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC;IACjD,MAAM,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC;IACtE,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAC/C,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAC9C,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;+BAyBmC,MAAM,GAAG,OAAO;;yBAuF3B,iBAAiB;;;;EAqBzC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const MAX_CLIPBOARD_CHARACTERS = 1000000;
|
|
2
|
+
export declare const MAX_CLIPBOARD_CELLS = 100000;
|
|
3
|
+
/** Parse plain-text TSV, including spreadsheet quoted tabs, newlines and quotes. */
|
|
4
|
+
export declare function parseCominsClipboardText(text: string): string[][];
|
|
5
|
+
//# sourceMappingURL=clipboard-text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clipboard-text.d.ts","sourceRoot":"","sources":["../src/clipboard-text.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,wBAAwB,UAAY,CAAC;AAClD,eAAO,MAAM,mBAAmB,SAAU,CAAC;AAE3C,oFAAoF;AACpF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CA+BjE"}
|
package/dist/clipboard.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { copyCominsCell, copyCominsCellRange, copyCominsRow, fillCominsCellRange, pasteCominsCell, pasteCominsCellRange, pasteCominsRow, } from "./core";
|
|
1
|
+
export { copyCominsCell, copyCominsCellRange, copyCominsRow, fillCominsCellRange, pasteCominsCell, pasteCominsCellRange, pasteCominsRow, pasteCominsText, parseCominsClipboardText, } from "./core";
|
|
2
2
|
export type { CominsClipboardGuard, CominsCopiedCell, CominsCopiedCellRange, CominsCopiedCellRangeCell, CominsCopiedRow, CominsFillCellRangeOptions, CominsPasteRowOptions, } from "./core";
|
|
3
3
|
//# sourceMappingURL=clipboard.d.ts.map
|
package/dist/clipboard.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../src/clipboard.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,cAAc,
|
|
1
|
+
{"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../src/clipboard.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,wBAAwB,GACzB,MAAM,QAAQ,CAAC;AAChB,YAAY,EACV,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,eAAe,EACf,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,QAAQ,CAAC"}
|
package/dist/clipboard.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
1
|
+
import { F as e, M as t, N as n, P as r, c as i, o as a, p as o, rt as s, s as c } from "./core-C1tlvY8Q.js";
|
|
2
|
+
export { a as copyCominsCell, c as copyCominsCellRange, i as copyCominsRow, o as fillCominsCellRange, s as parseCominsClipboardText, t as pasteCominsCell, n as pasteCominsCellRange, r as pasteCominsRow, e as pasteCominsText };
|
package/dist/column-filter.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { type CominsColumnFilterKind, type CominsColumnFilterRule, type CominsNormalizedColumnFilterRule } from "./filtering";
|
|
2
|
-
export declare function CominsColumnFilterControl<TData>({ columnId, columnLabel, kind, onChangeRule, onOpenChange, open, rule, }: {
|
|
2
|
+
export declare function CominsColumnFilterControl<TData>({ columnId, columnLabel, kind, getPortalContainer, onChangeRule, onOpenChange, open, rule, }: {
|
|
3
3
|
columnId: string;
|
|
4
4
|
columnLabel: string;
|
|
5
5
|
kind: CominsColumnFilterKind;
|
|
6
|
+
getPortalContainer?: () => HTMLElement | null;
|
|
6
7
|
onChangeRule?: (rule: CominsColumnFilterRule | null) => void;
|
|
7
8
|
onOpenChange?: (columnId: string | null) => void;
|
|
8
9
|
open: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-filter.d.ts","sourceRoot":"","sources":["../src/column-filter.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"column-filter.d.ts","sourceRoot":"","sources":["../src/column-filter.tsx"],"names":[],"mappings":"AAUA,OAAO,EAEL,KAAK,sBAAsB,EAE3B,KAAK,sBAAsB,EAC3B,KAAK,gCAAgC,EACtC,MAAM,aAAa,CAAC;AAgErB,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,EAC/C,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,IAAI,EACJ,IAAI,GACL,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,sBAAsB,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IAC9C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7D,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACjD,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,gCAAgC,CAAC,KAAK,CAAC,CAAC;CAChD,+BAgTA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-renderer.d.ts","sourceRoot":"","sources":["../src/component-renderer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EACV,yBAAyB,EACzB,0BAA0B,EAG1B,2BAA2B,EAC3B,4BAA4B,EAE7B,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"component-renderer.d.ts","sourceRoot":"","sources":["../src/component-renderer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EACV,yBAAyB,EACzB,0BAA0B,EAG1B,2BAA2B,EAC3B,4BAA4B,EAE7B,MAAM,QAAQ,CAAC;AAmwBhB,MAAM,MAAM,iCAAiC,GAAG;IAC9C,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE;QAC9B,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QACpF,IAAI,EAAE,WAAW,GAAG,WAAW,CAAC;KACjC,KAAK,OAAO,CAAC;CACf,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,EACxD,SAAS,EAAE,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,EACnD,OAAO,EAAE,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,EAClD,WAAW,CAAC,EAAE,iCAAiC,GAC9C,KAAK,CAAC,SAAS,CAAC;AACnB,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,EACxD,SAAS,EAAE,2BAA2B,CAAC,KAAK,EAAE,MAAM,CAAC,EACrD,OAAO,EAAE,4BAA4B,CAAC,KAAK,EAAE,MAAM,CAAC,EACpD,WAAW,CAAC,EAAE,iCAAiC,GAC9C,KAAK,CAAC,SAAS,CAAC"}
|