comins-table 0.1.8 → 0.1.9

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 CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.1.9 - 2026-08-31
6
+
7
+ - Added the packaged `DESIGN.md`, componentization guidance, a canonical Feature Manifest, full public-export and CSS-token classification, structured feature restrictions, and annotated/typechecked documentation examples.
8
+ - Added Ctrl/Cmd discontiguous Cell selection while preserving the active Cell and rectangular range contracts, plus Row Drag lifecycle callbacks for before-start cancellation, semantic target changes, and final moved/cancelled/rejected results.
9
+ - Preserved the last known Column order when dynamic Header Group Columns are hidden and restored, kept Row Group content visible during horizontally pinned scrolling, and connected Header Group and Rows Playground drag examples to controlled data and lifecycle feedback.
10
+ - Standardized Playground toggle contrast, added deterministic collapse-all-Details coverage, and retained the existing Summary Row visible-column `colSpan` contract and example.
11
+ - Added localized event and method reference tables above related Playground examples.
12
+ - Clarified the browser compatibility contract versus Chromium-only automated evidence and expanded documentation/package gates so unclassified exports, tokens, examples, restrictions, or missing packaged design guidance fail closed.
13
+
5
14
  ## 0.1.8 - 2026-08-28
6
15
 
7
16
  - Added responsive left/right Column Pinning for leaf Columns and atomic Header Groups, including persisted pin intent, position locking, resize-aware sticky offsets, wider-side inner-block demotion with a 48px center budget, opaque Header/Body/Skeleton/Summary surfaces, and Summary `colSpan` zone splitting while keeping full-width structural Rows non-sticky.
package/DESIGN.md ADDED
@@ -0,0 +1,132 @@
1
+ # Comins Table Design Contract
2
+
3
+ Comins Table uses a restrained, data-first visual language. The application owns business meaning and data; the Table owns structural clarity, interaction feedback, focus visibility, and consistent state treatment. This document describes the public styling contract shipped with the package stylesheet.
4
+
5
+ ## Principles
6
+
7
+ - Preserve density without hiding structure: borders, pinned boundaries, Group Rows, Details, and Summary remain distinguishable.
8
+ - Use color to communicate state, not decoration. Selection and valid actions use the accent family; invalid and rejected drops use the danger family.
9
+ - Keep focus visible independently from hover and selection.
10
+ - Keep application overrides local. Importing `comins-table/styles.css` does not install a global reset.
11
+ - Prefer container-driven behavior. Horizontal overflow, responsive pin demotion, and compact density respond to the Table container rather than the browser viewport.
12
+
13
+ The default stylesheet targets light surfaces. The built-in dark theme supplies its own values. Applications that replace surface tokens are responsible for maintaining readable foreground, border, focus, disabled, and drag-feedback contrast.
14
+
15
+ ## Foundations
16
+
17
+ Typography inherits the application font. Default text is compact, with Header and control labels using stronger weight rather than larger type. Spacing is based on Cell padding and Row/Header height tokens. Borders are one CSS pixel except for focus, selection, and drop indicators. The outer frame uses a small radius; internal Rows remain square so adjacent borders align.
18
+
19
+ Motion is limited to short color, opacity, position, and resize feedback. Motion must not delay a model update or hide the final state. Overlays, menus, and Tooltip surfaces render above pinned content; application portals remain application-owned unless a documented Table component explicitly owns the portal.
20
+
21
+ ## Surfaces and states
22
+
23
+ | Surface | Contract |
24
+ | --- | --- |
25
+ | Frame | Owns the outer border, radius, background, and the final horizontal scrollbar. |
26
+ | Header | Uses an accent surface by default and retains visible focus, resize, sort, move, and pinned boundaries. |
27
+ | Body Cell | Keeps grid borders and application Row backgrounds visible beneath selection indicators. |
28
+ | Group Row | Uses one semantic full-width Cell. Its content remains visible at the Body viewport start during horizontal scrolling. |
29
+ | Detail Row | Follows its owner Row and remains outside Cell selection and Clipboard addressing. |
30
+ | Summary | Uses the same Column geometry and pin zones as Header and Body and remains above the final scrollbar. |
31
+ | Tooltip | Is non-blocking drag feedback with `pointer-events: none`; it does not replace application Toasts or error handling. |
32
+
33
+ Rest, hover, active, `focus-visible`, selected, disabled, loading, invalid, drag-source, valid-drop, and rejected-drop states must remain visually distinct. A custom renderer may change inner content but must not remove the owning semantic Cell, focus behavior, disabled state, or interaction feedback unless the corresponding public contract explicitly delegates those responsibilities.
34
+
35
+ ## Density and responsive behavior
36
+
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
+
39
+ ## CSS token stability
40
+
41
+ The canonical machine-readable inventory is `docs/feature-manifest.json`. Stability means:
42
+
43
+ - `public-stable`: supported theme input. Removal or incompatible meaning requires a breaking release.
44
+ - `public-experimental`: available for advanced styling, but name or behavior may change in a minor release with CHANGELOG notice.
45
+ - `internal`: implementation plumbing. Do not override it in application styles.
46
+
47
+ ### Public stable
48
+
49
+ ```text
50
+ --comins-table-accent
51
+ --comins-table-accent-foreground
52
+ --comins-table-accent-soft
53
+ --comins-table-background
54
+ --comins-table-border
55
+ --comins-table-cell-border
56
+ --comins-table-cell-height
57
+ --comins-table-focus
58
+ --comins-table-foreground
59
+ --comins-table-group-row-background
60
+ --comins-table-group-row-color
61
+ --comins-table-header-background
62
+ --comins-table-header-border
63
+ --comins-table-header-color
64
+ --comins-table-header-split-border
65
+ --comins-table-range-background
66
+ --comins-table-row-border
67
+ --comins-table-row-disabled-background
68
+ --comins-table-row-disabled-color
69
+ --comins-table-row-even-background
70
+ --comins-table-row-height
71
+ --comins-table-row-odd-background
72
+ --comins-table-row-selected-background
73
+ --comins-table-scrollbar-corner
74
+ --comins-table-scrollbar-thumb
75
+ --comins-table-scrollbar-track
76
+ --comins-table-tooltip-danger-background
77
+ --comins-table-tooltip-danger-border
78
+ --comins-table-tooltip-danger-color
79
+ --comins-table-tooltip-danger-muted
80
+ --comins-table-tooltip-shadow
81
+ ```
82
+
83
+ ### Public experimental
84
+
85
+ ```text
86
+ --comins-table-accent-strong
87
+ --comins-table-cell-background
88
+ --comins-table-cell-color
89
+ --comins-table-cell-padding-x
90
+ --comins-table-cell-padding-y
91
+ --comins-table-component-accent
92
+ --comins-table-component-accent-foreground
93
+ --comins-table-component-accent-soft
94
+ --comins-table-component-accent-strong
95
+ --comins-table-component-border
96
+ --comins-table-component-button-foreground
97
+ --comins-table-component-focus
98
+ --comins-table-component-foreground
99
+ --comins-table-component-muted
100
+ --comins-table-component-surface
101
+ --comins-table-component-surface-muted
102
+ --comins-table-component-virtual-list-height
103
+ --comins-table-detail-background
104
+ --comins-table-detail-border
105
+ --comins-table-detail-padding
106
+ --comins-table-drop-invalid
107
+ --comins-table-drop-invalid-background
108
+ --comins-table-drop-marker
109
+ --comins-table-drop-valid
110
+ --comins-table-drop-valid-background
111
+ --comins-table-header-height
112
+ --comins-table-muted
113
+ --comins-table-resize-handle
114
+ --comins-table-selected-range-background
115
+ --comins-table-skeleton-background
116
+ --comins-table-skeleton-highlight
117
+ --comins-table-surface
118
+ --comins-table-surface-muted
119
+ --comins-table-virtual-list-item-height
120
+ ```
121
+
122
+ ### Internal
123
+
124
+ ```text
125
+ --comins-table-row-custom-background
126
+ ```
127
+
128
+ Stable tokens inherit through the Table root and use the current theme value as their fallback. Experimental component and structural tokens fall back to the related stable accent, surface, foreground, border, or resolved Row geometry. Internal tokens have no compatibility guarantee.
129
+
130
+ ## Extension choice
131
+
132
+ Use a formatter for value presentation, a renderer for typed React content, a built-in component when the Table must own interaction isolation and accessibility, a CSS token for reusable visual policy, and `className`/`style` for one application instance or business state. See the [componentization guide](https://github.com/kim1124/comins-table/blob/main/docs/design/componentization.md) for the full decision contract.
package/README.md CHANGED
@@ -1,13 +1,13 @@
1
1
  # Comins Table
2
2
 
3
- Comins Table is a controlled React data table for data-heavy application screens, with virtualized rendering, precise selection, movable and pinned headers, controlled Column Filtering, Row Grouping and Row Expand Details, Cross-Table Row/Group Drag, Summary Row aggregation, Tree Grid data, built-in component cells, and framework-independent core helpers.
3
+ 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
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/comins-table)](https://www.npmjs.com/package/comins-table)
6
6
  [![TypeScript declarations](https://img.shields.io/npm/types/comins-table)](https://www.npmjs.com/package/comins-table)
7
7
  [![Verify](https://github.com/kim1124/comins-table/actions/workflows/verify.yml/badge.svg?branch=main)](https://github.com/kim1124/comins-table/actions/workflows/verify.yml)
8
8
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
9
9
 
10
- ![Comins Table sorting, column reorder, Row selection, Summary Row, and Tree Grid demo](https://raw.githubusercontent.com/kim1124/comins-table/main/docs/assets/comins-table-demo.gif)
10
+ ![Comins Table controlled Rows, Column Pinning, Row Grouping, Filtering, Tree Grid, and Cross-Table Drag overview](https://raw.githubusercontent.com/kim1124/comins-table/main/docs/assets/comins-table-overview.gif)
11
11
 
12
12
  ## Why Comins Table
13
13
 
@@ -21,6 +21,20 @@ Comins Table is a controlled React data table for data-heavy application screens
21
21
 
22
22
  Comins Table is standalone and does not wrap another table or grid implementation.
23
23
 
24
+ ### Feature catalog
25
+
26
+ 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.
27
+
28
+ | Area | Shipped capabilities | Live examples | Guides |
29
+ | --- | --- | --- | --- |
30
+ | Getting started | Controlled data, CRUD, Core state, loading, and empty states | [`Getting Started`](http://127.0.0.1:4002/docs/getting-started), [`CRUD`](http://127.0.0.1:4002/examples/crud) | [Quick Start](https://github.com/kim1124/comins-table/blob/main/docs/user/01-quick-start.md), [Data And CRUD](https://github.com/kim1124/comins-table/blob/main/docs/user/02-data-and-crud.md) |
31
+ | 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
+ | 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
+ | 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 | [`Pagination`](http://127.0.0.1:4002/performance/pagination), [`Virtualization`](http://127.0.0.1:4002/performance/virtualization) | [Pagination](https://github.com/kim1124/comins-table/blob/main/docs/user/05-pagination.md), [Virtualization](https://github.com/kim1124/comins-table/blob/main/docs/user/11-virtualization.md), [Lazy Load](https://github.com/kim1124/comins-table/blob/main/docs/user/16-lazy-load.md) |
35
+ | 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
+ | 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
+
24
38
  ## Support
25
39
 
26
40
  | Surface | Support |
@@ -34,12 +48,15 @@ Comins Table is standalone and does not wrap another table or grid implementatio
34
48
  | SSR | Client boundary required; server rendering is not currently supported |
35
49
  | Runtime network behavior | No package-owned requests, remote assets, telemetry, or error reporting |
36
50
 
51
+ The Chrome and Edge row is the compatibility contract. The automated browser gate is evidence from Playwright-bundled Chromium only; it is not a claim that Firefox, Safari, or every installed Edge build was tested.
52
+
37
53
  ## Installation
38
54
 
39
55
  ```bash
40
56
  npm install comins-table react react-dom
41
57
  ```
42
58
 
59
+ <!-- comins-doc-example: fragment -->
43
60
  ```tsx
44
61
  import { CominsTable, type CominsTableColumn } from "comins-table";
45
62
  import "comins-table/styles.css";
@@ -47,8 +64,22 @@ import "comins-table/styles.css";
47
64
 
48
65
  React and React DOM are peer dependencies. Import `comins-table/styles.css` when the default table shell, themes, and built-in component skin are required.
49
66
 
67
+ ### Run the Playground locally
68
+
69
+ The Playground is a repository development server, not a command installed into a consumer application.
70
+
71
+ ```bash
72
+ git clone https://github.com/kim1124/comins-table.git
73
+ cd comins-table
74
+ npm ci
75
+ npm run dev
76
+ ```
77
+
78
+ Open [`http://127.0.0.1:4002/docs/getting-started`](http://127.0.0.1:4002/docs/getting-started).
79
+
50
80
  ## Quick Start
51
81
 
82
+ <!-- comins-doc-example: fragment -->
52
83
  ```tsx
53
84
  import { useState } from "react";
54
85
  import { CominsTable, type CominsTableColumn } from "comins-table";
@@ -107,6 +138,7 @@ Where restoration is supported, use the supported Ref API: `setSelectedRow` and
107
138
 
108
139
  Set `multiSort` to opt into ordered multi-column sorting. Normal Header click or `Enter`/`Space` keeps single sorting; hold `Shift` while using the same input to add, update, or remove one rule without replacing the others. Active Headers display their 1-based priority.
109
140
 
141
+ <!-- comins-doc-example: fragment -->
110
142
  ```tsx
111
143
  <CominsTable
112
144
  columns={columns}
@@ -136,7 +168,9 @@ A left-button mouse interaction activates column movement after a 6-pixel horizo
136
168
 
137
169
  Use `getColumnLayout()` and `setColumnLayout()` through the Ref API, or `serializeCominsColumnLayout()` and `applyCominsColumnLayout()` from `comins-table/core`, to persist and restore order, widths, and visibility.
138
170
 
139
- Set `pinned: "left"` or `pinned: "right"` on a Column or Header Group to keep its atomic block visible during horizontal scrolling and lock its configured position. Direct resize of an effective pinned block stops before it would consume the 48px center budget and demote itself; independent container resize can still temporarily demote inner pinned blocks without changing the persisted layout intent. Header, Body, Skeleton, and Summary use the same offsets; Group Rows and Row Details remain full-width non-sticky cells. See the [Column Pinning guide](https://github.com/kim1124/comins-table/blob/main/docs/user/22-column-pinning.md) and [`/examples/column-pinning`](http://127.0.0.1:4002/examples/column-pinning).
171
+ ### Column Pinning
172
+
173
+ Set `pinned: "left"` or `pinned: "right"` on a Column or Header Group to keep its atomic block visible during horizontal scrolling and lock its configured position. Direct resize of an effective pinned block stops before it would consume the 48px center budget and demote itself; independent container resize can still temporarily demote inner pinned blocks without changing the persisted layout intent. Header, Body, Skeleton, and Summary use the same offsets. Group Rows and Row Details remain full-width spanning cells; Row Group inner content stays visible at the Body viewport start while horizontally scrolling. See the [Column Pinning guide](https://github.com/kim1124/comins-table/blob/main/docs/user/22-column-pinning.md) and [`/examples/column-pinning`](http://127.0.0.1:4002/examples/column-pinning).
140
174
 
141
175
  When columns overflow horizontally, Comins Table renders one native horizontal scrollbar at the bottom of the complete Table. A configured Summary Row stays above that scrollbar, while Body trackpad or Shift-wheel input and direct scrollbar input keep Header, Body, and Summary `scrollLeft` synchronized.
142
176
 
@@ -144,12 +178,15 @@ When columns overflow horizontally, Comins Table renders one native horizontal s
144
178
 
145
179
  Rows expose click, double-click, keyboard, and context-menu callbacks. Cells expose the corresponding Cell callbacks plus `format`, `renderer`, and props hooks.
146
180
 
147
- 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, `Ctrl`/`Cmd` multi-selection, and `Shift` or pointer-drag ranges. 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.
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` remains the active Clipboard address while `cells` records the discontiguous set; 0.1.9 does not copy that set as a Clipboard matrix. 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.
182
+
183
+ 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.
148
184
 
149
185
  ### Row Expand
150
186
 
151
187
  See the [Row Expand guide](https://github.com/kim1124/comins-table/blob/main/docs/user/19-row-expand.md) and run the [`/examples/row-expand`](http://127.0.0.1:4002/examples/row-expand) Playground route.
152
188
 
189
+ <!-- comins-doc-example: fragment -->
153
190
  ```tsx
154
191
  const [expandedRowIds, setExpandedRowIds] = useState<readonly string[]>([]);
155
192
 
@@ -236,8 +273,11 @@ The package stylesheet exposes module-local `--comins-table-*` CSS variables and
236
273
 
237
274
  Use `theme.className`, `theme.style`, Row and Group Row class/style hooks, Cell props, and renderer output for application-specific presentation. Keep virtualized `rowHeight` aligned with `--comins-table-row-height` when overriding height tokens.
238
275
 
276
+ 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
+
239
278
  ## Ref API
240
279
 
280
+ <!-- comins-doc-example: fragment -->
241
281
  ```tsx
242
282
  const tableRef = useRef<CominsTableRef<UserRow>>(null);
243
283
 
@@ -264,15 +304,11 @@ tableRef.current?.fold(); // all Tree Grid branches
264
304
 
265
305
  ## Playground
266
306
 
267
- ```bash
268
- npm run dev
269
- ```
270
-
271
- The local Playground starts at [`/docs/getting-started`](http://127.0.0.1:4002/docs/getting-started). Key routes include [`/examples/selection-clipboard`](http://127.0.0.1:4002/examples/selection-clipboard), [`/examples/row-expand`](http://127.0.0.1:4002/examples/row-expand), [`/examples/row-grouping`](http://127.0.0.1:4002/examples/row-grouping), [`/examples/column-filtering`](http://127.0.0.1:4002/examples/column-filtering), [`/examples/summary-row`](http://127.0.0.1:4002/examples/summary-row), [`/examples/tree-grid`](http://127.0.0.1:4002/examples/tree-grid), [`/examples/component`](http://127.0.0.1:4002/examples/component), and [`/performance/virtualization`](http://127.0.0.1:4002/performance/virtualization).
307
+ After the repository setup under Installation, the local Playground starts at [`/docs/getting-started`](http://127.0.0.1:4002/docs/getting-started). Key routes include [`/examples/selection-clipboard`](http://127.0.0.1:4002/examples/selection-clipboard), [`/examples/row-expand`](http://127.0.0.1:4002/examples/row-expand), [`/examples/row-grouping`](http://127.0.0.1:4002/examples/row-grouping), [`/examples/column-filtering`](http://127.0.0.1:4002/examples/column-filtering), [`/examples/column-pinning`](http://127.0.0.1:4002/examples/column-pinning), [`/examples/cross-table-drag`](http://127.0.0.1:4002/examples/cross-table-drag), [`/examples/summary-row`](http://127.0.0.1:4002/examples/summary-row), [`/examples/tree-grid`](http://127.0.0.1:4002/examples/tree-grid), [`/examples/component`](http://127.0.0.1:4002/examples/component), and [`/performance/virtualization`](http://127.0.0.1:4002/performance/virtualization).
272
308
 
273
309
  ## Documentation
274
310
 
275
- Start with the [English Quick Start](https://github.com/kim1124/comins-table/blob/main/docs/user/01-quick-start.md), then browse [all English feature guides](https://github.com/kim1124/comins-table/tree/main/docs/user). The detailed [Tree Grid](https://github.com/kim1124/comins-table/blob/main/docs/user/17-tree-grid.md), [Summary Row](https://github.com/kim1124/comins-table/blob/main/docs/user/18-summary-row.md), [Row Expand](https://github.com/kim1124/comins-table/blob/main/docs/user/19-row-expand.md), [Row Grouping](https://github.com/kim1124/comins-table/blob/main/docs/user/20-row-grouping.md), and [Column Filtering](https://github.com/kim1124/comins-table/blob/main/docs/user/21-column-filtering.md) contracts include runnable examples and edge cases. [Korean guides](https://github.com/kim1124/comins-table/tree/main/docs/ko) are retained as secondary documentation.
311
+ Start with the [English Quick Start](https://github.com/kim1124/comins-table/blob/main/docs/user/01-quick-start.md), [documentation index](https://github.com/kim1124/comins-table/blob/main/docs/README.md), [English feature guides](https://github.com/kim1124/comins-table/blob/main/docs/user/README.md), or [Korean feature guides](https://github.com/kim1124/comins-table/blob/main/docs/ko/README.md). Use the [Design Contract](https://github.com/kim1124/comins-table/blob/main/DESIGN.md), [Componentization Guide](https://github.com/kim1124/comins-table/blob/main/docs/design/componentization.md), and [Canonical Feature Manifest](https://github.com/kim1124/comins-table/blob/main/docs/feature-manifest.json) for visual stability, extension ownership, complete feature status, and evidence mapping. Each category links the detailed usage contract, runnable Playground route, related features, and the matching guide in the other language.
276
312
 
277
313
  Use the [source repository](https://github.com/kim1124/comins-table) for development context, review the [changelog](https://github.com/kim1124/comins-table/blob/main/CHANGELOG.md) for version history, and follow the [security policy](https://github.com/kim1124/comins-table/blob/main/SECURITY.md) for vulnerability reporting.
278
314
 
@@ -295,7 +331,7 @@ npm run verify
295
331
  npm run docs:readme-gif
296
332
  ```
297
333
 
298
- `npm run docs:readme-gif` is a maintainer command that captures the real hidden Playground fixture and regenerates the checked-in README animation.
334
+ `npm run docs:readme-gif` is a maintainer command that captures the real hidden Playground fixtures and regenerates the overview animation plus four detailed feature animations.
299
335
 
300
336
  ## Trusted Publishing
301
337
 
package/dist/clipboard.js CHANGED
@@ -1,2 +1,2 @@
1
- import { M as e, N as t, P as n, c as r, o as i, p as a, s as o } from "./core-BF1H3EEK.js";
1
+ import { M as e, N as t, P as n, c as r, o as i, p as a, s as o } from "./core-D01wEe-7.js";
2
2
  export { i as copyCominsCell, o as copyCominsCellRange, r as copyCominsRow, a as fillCominsCellRange, e as pasteCominsCell, t as pasteCominsCellRange, n as pasteCominsRow };