Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
20 changes: 18 additions & 2 deletions _artifacts/domain_map.yaml
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
library:
name: '@tanstack/table'
version: '9.0.0-beta.56'
version: '9.0.0-beta.58'
repository: 'https://github.com/TanStack/table'
homepage: 'https://tanstack.com/table'
description: 'Headless, framework-agnostic data-grid state and row-processing primitives with tree-shakeable v9 features and framework adapters.'
primary_framework: 'framework-agnostic'
monorepo: true
package_version_overrides:
'@tanstack/ember-table': '9.0.0-beta.57'
'@tanstack/match-sorter-utils': '9.0.0-beta.53'

meta:
Expand Down Expand Up @@ -528,6 +527,23 @@ skills:
- 'Expecting row pinning to add sticky CSS or render top/center/bottom collections in the correct order automatically.'
- 'Ignoring keepPinnedRows, so pinned rows remain visible outside the center row model when the desired product behavior was to filter or paginate them away.'

- slug: cell-selection
package: '@tanstack/table-core'
domain: feature-plugins
type: feature
purpose: 'Maintain spreadsheet-style rectangular cell ranges anchored to row and column ids across sorting, filtering, pagination, and column layout changes.'
sources:
[
'TanStack/table:docs/framework/react/guide/cell-selection.md',
'TanStack/table:packages/table-core/src/features/cell-selection',
'TanStack/table:examples/react/cell-selection',
]
failure_modes:
- 'Expecting cellSelection to be a per-cell map; it is an array of two-corner rectangles, so a range widens onto new cells when sorting or column order changes what sits between its corners.'
- 'Binding only the mousedown handler and expecting drag selection, or reimplementing mouseup even though the start handler owns its own document listener.'
- 'Drawing the selection outline with borders on a border-collapse table, which changes row heights as cells become selected.'
- 'Re-rendering every cell on each drag update instead of subscribing per row to table.atoms.cellSelection.'

- slug: row-selection
package: '@tanstack/table-core'
domain: feature-plugins
Expand Down
16 changes: 14 additions & 2 deletions _artifacts/skill_tree.yaml
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
library:
name: '@tanstack/table'
version: '9.0.0-beta.56'
version: '9.0.0-beta.58'
repository: 'https://github.com/TanStack/table'
description: 'Headless data-grid state and row processing with tree-shakeable v9 features and framework adapters.'
package_version_overrides:
'@tanstack/ember-table': '9.0.0-beta.57'
'@tanstack/match-sorter-utils': '9.0.0-beta.53'
generated_from:
domain_map: '_artifacts/domain_map.yaml'
Expand Down Expand Up @@ -291,6 +290,19 @@ skills:
- 'TanStack/table:packages/table-core/src/features/row-pinning'
- 'TanStack/table:examples/react/row-pinning'

- name: 'Cell Selection'
slug: cell-selection
type: sub-skill
domain: feature-plugins
path: 'packages/table-core/skills/cell-selection/SKILL.md'
package: 'packages/table-core'
description: 'Select rectangular cell ranges with cellSelectionFeature: two-corner range state, drag and Shift and Ctrl handlers, selection edges, and render-order resolution under pinning. Load when ranges widen unexpectedly after sorting or reordering, or when drag re-renders the whole table.'
requires: ['core', 'table-features']
sources:
- 'TanStack/table:docs/framework/react/guide/cell-selection.md'
- 'TanStack/table:packages/table-core/src/features/cell-selection'
- 'TanStack/table:examples/react/cell-selection'

- name: 'Row Selection'
slug: row-selection
type: sub-skill
Expand Down
18 changes: 18 additions & 0 deletions docs/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,7 @@
{
"label": "alpine",
"children": [
{ "label": "Cell Selection", "to": "framework/alpine/guide/cell-selection" },
{ "label": "Column Ordering", "to": "framework/alpine/guide/column-ordering" },
{ "label": "Column Pinning", "to": "framework/alpine/guide/column-pinning" },
{ "label": "Column Sizing", "to": "framework/alpine/guide/column-sizing" },
Expand All @@ -222,6 +223,7 @@
{
"label": "angular",
"children": [
{ "label": "Cell Selection", "to": "framework/angular/guide/cell-selection" },
{ "label": "Column Ordering", "to": "framework/angular/guide/column-ordering" },
{ "label": "Column Pinning", "to": "framework/angular/guide/column-pinning" },
{ "label": "Column Sizing", "to": "framework/angular/guide/column-sizing" },
Expand All @@ -244,6 +246,7 @@
{
"label": "ember",
"children": [
{ "label": "Cell Selection", "to": "framework/ember/guide/cell-selection" },
{ "label": "Column Ordering", "to": "framework/ember/guide/column-ordering" },
{ "label": "Column Pinning", "to": "framework/ember/guide/column-pinning" },
{ "label": "Column Sizing", "to": "framework/ember/guide/column-sizing" },
Expand All @@ -265,6 +268,7 @@
{
"label": "lit",
"children": [
{ "label": "Cell Selection", "to": "framework/lit/guide/cell-selection" },
{ "label": "Column Ordering", "to": "framework/lit/guide/column-ordering" },
{ "label": "Column Pinning", "to": "framework/lit/guide/column-pinning" },
{ "label": "Column Sizing", "to": "framework/lit/guide/column-sizing" },
Expand All @@ -287,6 +291,7 @@
{
"label": "react",
"children": [
{ "label": "Cell Selection", "to": "framework/react/guide/cell-selection" },
{ "label": "Column Ordering", "to": "framework/react/guide/column-ordering" },
{ "label": "Column Pinning", "to": "framework/react/guide/column-pinning" },
{ "label": "Column Sizing", "to": "framework/react/guide/column-sizing" },
Expand All @@ -309,6 +314,7 @@
{
"label": "preact",
"children": [
{ "label": "Cell Selection", "to": "framework/preact/guide/cell-selection" },
{ "label": "Column Ordering", "to": "framework/preact/guide/column-ordering" },
{ "label": "Column Pinning", "to": "framework/preact/guide/column-pinning" },
{ "label": "Column Sizing", "to": "framework/preact/guide/column-sizing" },
Expand All @@ -331,6 +337,7 @@
{
"label": "solid",
"children": [
{ "label": "Cell Selection", "to": "framework/solid/guide/cell-selection" },
{ "label": "Column Ordering", "to": "framework/solid/guide/column-ordering" },
{ "label": "Column Pinning", "to": "framework/solid/guide/column-pinning" },
{ "label": "Column Sizing", "to": "framework/solid/guide/column-sizing" },
Expand All @@ -353,6 +360,7 @@
{
"label": "svelte",
"children": [
{ "label": "Cell Selection", "to": "framework/svelte/guide/cell-selection" },
{ "label": "Column Ordering", "to": "framework/svelte/guide/column-ordering" },
{ "label": "Column Pinning", "to": "framework/svelte/guide/column-pinning" },
{ "label": "Column Sizing", "to": "framework/svelte/guide/column-sizing" },
Expand All @@ -375,6 +383,7 @@
{
"label": "vue",
"children": [
{ "label": "Cell Selection", "to": "framework/vue/guide/cell-selection" },
{ "label": "Column Ordering", "to": "framework/vue/guide/column-ordering" },
{ "label": "Column Pinning", "to": "framework/vue/guide/column-pinning" },
{ "label": "Column Sizing", "to": "framework/vue/guide/column-sizing" },
Expand Down Expand Up @@ -1060,6 +1069,7 @@
{
"label": "alpine",
"children": [
{ "to": "framework/alpine/examples/cell-selection", "label": "Cell Selection" },
{ "to": "framework/alpine/examples/filters", "label": "Column Filters" },
{ "to": "framework/alpine/examples/filters-faceted", "label": "Column Filters (Faceted)" },
{ "to": "framework/alpine/examples/filters-faceted-bucketed", "label": "Bucketed Faceted Filters" },
Expand Down Expand Up @@ -1087,6 +1097,7 @@
"label": "angular",
"children": [
{ "label": "Kitchen Sink (All Features)", "to": "framework/angular/examples/kitchen-sink" },
{ "label": "Cell Selection", "to": "framework/angular/examples/cell-selection" },
{ "label": "Column Filters", "to": "framework/angular/examples/filters" },
{ "label": "Column Filters (Faceted)", "to": "framework/angular/examples/filters-faceted" },
{ "label": "Bucketed Faceted Filters", "to": "framework/angular/examples/filters-faceted-bucketed" },
Expand Down Expand Up @@ -1114,6 +1125,7 @@
"label": "ember",
"children": [
{ "label": "Kitchen Sink (All Features)", "to": "framework/ember/examples/kitchen-sink" },
{ "label": "Cell Selection", "to": "framework/ember/examples/cell-selection" },
{ "label": "Column Filters", "to": "framework/ember/examples/filters" },
{ "label": "Column Filters (Faceted)", "to": "framework/ember/examples/filters-faceted" },
{ "label": "Bucketed Faceted Filters", "to": "framework/ember/examples/filters-faceted-bucketed" },
Expand Down Expand Up @@ -1141,6 +1153,7 @@
"label": "lit",
"children": [
{ "label": "Kitchen Sink (All Features)", "to": "framework/lit/examples/kitchen-sink" },
{ "label": "Cell Selection", "to": "framework/lit/examples/cell-selection" },
{ "label": "Column Filters", "to": "framework/lit/examples/filters" },
{ "label": "Column Filters (Faceted)", "to": "framework/lit/examples/filters-faceted" },
{ "label": "Bucketed Faceted Filters", "to": "framework/lit/examples/filters-faceted-bucketed" },
Expand Down Expand Up @@ -1169,6 +1182,7 @@
"label": "react",
"children": [
{ "label": "Kitchen Sink (All Features)", "to": "framework/react/examples/kitchen-sink" },
{ "label": "Cell Selection", "to": "framework/react/examples/cell-selection" },
{ "label": "Column Filters", "to": "framework/react/examples/filters" },
{ "label": "Column Filters (Faceted)", "to": "framework/react/examples/filters-faceted" },
{ "label": "Bucketed Faceted Filters", "to": "framework/react/examples/filters-faceted-bucketed" },
Expand Down Expand Up @@ -1198,6 +1212,7 @@
"label": "solid",
"children": [
{ "label": "Kitchen Sink (All Features)", "to": "framework/solid/examples/kitchen-sink" },
{ "label": "Cell Selection", "to": "framework/solid/examples/cell-selection" },
{ "label": "Column Filters", "to": "framework/solid/examples/filters" },
{ "label": "Column Filters (Faceted)", "to": "framework/solid/examples/filters-faceted" },
{ "label": "Bucketed Faceted Filters", "to": "framework/solid/examples/filters-faceted-bucketed" },
Expand Down Expand Up @@ -1225,6 +1240,7 @@
"label": "svelte",
"children": [
{ "label": "Kitchen Sink (All Features)", "to": "framework/svelte/examples/kitchen-sink" },
{ "label": "Cell Selection", "to": "framework/svelte/examples/cell-selection" },
{ "label": "Column Filters", "to": "framework/svelte/examples/filtering" },
{ "label": "Column Filters (Faceted)", "to": "framework/svelte/examples/filters-faceted" },
{ "label": "Bucketed Faceted Filters", "to": "framework/svelte/examples/filters-faceted-bucketed" },
Expand Down Expand Up @@ -1252,6 +1268,7 @@
"label": "vue",
"children": [
{ "label": "Kitchen Sink (All Features)", "to": "framework/vue/examples/kitchen-sink" },
{ "label": "Cell Selection", "to": "framework/vue/examples/cell-selection" },
{ "label": "Column Filters", "to": "framework/vue/examples/filters" },
{ "label": "Column Filters (Faceted)", "to": "framework/vue/examples/filters-faceted" },
{ "label": "Bucketed Faceted Filters", "to": "framework/vue/examples/filters-faceted-bucketed" },
Expand Down Expand Up @@ -1279,6 +1296,7 @@
"label": "preact",
"children": [
{ "label": "Kitchen Sink (All Features)", "to": "framework/preact/examples/kitchen-sink" },
{ "label": "Cell Selection", "to": "framework/preact/examples/cell-selection" },
{ "label": "Column Filters", "to": "framework/preact/examples/filters" },
{ "label": "Column Filters (Faceted)", "to": "framework/preact/examples/filters-faceted" },
{ "label": "Bucketed Faceted Filters", "to": "framework/preact/examples/filters-faceted-bucketed" },
Expand Down
Loading
Loading