[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-tanstack-expanding":3,"mdc-l4ihic-key":53,"related-org-tanstack-expanding":742,"related-repo-tanstack-expanding":876},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":48,"sourceUrl":51,"mdContent":52},"expanding","manage hierarchical row expansion in TanStack Table","Expand hierarchical subrows or custom detail panels with rowExpandingFeature, expandedRowModel, getSubRows, getRowCanExpand, manualExpanding, and paginateExpandedRows. Load when expansion state changes but no UI appears.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"tanstack","TanStack","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Ftanstack.png",[12,16,19,20],{"name":13,"slug":14,"type":15},"Data Analysis","data-analysis","tag",{"name":17,"slug":18,"type":15},"UI Components","ui-components",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"Frontend","frontend",28175,"https:\u002F\u002Fgithub.com\u002FTanStack\u002Ftable","2026-07-30T05:25:49.412826",null,3539,[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],"datagrid","datagrids","datatable","filtering","grid","grouping","hooks","javascript","pagination","react","reactjs","solid","solidjs","sorting","svelte","sveltejs","table","typescript","vue",{"repoUrl":24,"stars":23,"forks":27,"topics":49,"description":50},[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],"🤖 Headless UI for building powerful tables & datagrids for TS\u002FJS -  React-Table, Vue-Table, Solid-Table, Svelte-Table","https:\u002F\u002Fgithub.com\u002FTanStack\u002Ftable\u002Ftree\u002FHEAD\u002Fpackages\u002Ftable-core\u002Fskills\u002Fexpanding","---\nname: expanding\ndescription: >\n  Expand hierarchical subrows or custom detail panels with rowExpandingFeature, expandedRowModel, getSubRows, getRowCanExpand, manualExpanding, and paginateExpandedRows. Load when expansion state changes but no UI appears.\nmetadata:\n  {\n    type: sub-skill,\n    library: '@tanstack\u002Ftable-core',\n    library_version: '9.0.0-beta.59',\n  }\nrequires: ['core', 'table-features', 'client-vs-server']\nsources:\n  - 'TanStack\u002Ftable:docs\u002Fframework\u002Freact\u002Fguide\u002Fexpanding.md'\n  - 'TanStack\u002Ftable:packages\u002Ftable-core\u002Fsrc\u002Ffeatures\u002Frow-expanding'\n  - 'TanStack\u002Ftable:examples\u002Freact\u002Fexpanding'\n---\n\nThis skill builds on `core`, `table-features`, and `client-vs-server`. Expansion controls row-tree inclusion; the renderer owns disclosure controls and detail panels.\n\n## Setup\n\n```ts\nimport {\n  createExpandedRowModel,\n  rowExpandingFeature,\n  tableFeatures,\n} from '@tanstack\u002Ftable-core'\n\ntype Node = { id: string; children?: Node[] }\nexport const features = tableFeatures({\n  rowExpandingFeature,\n  expandedRowModel: createExpandedRowModel(),\n})\nexport const options = { getSubRows: (row: Node) => row.children }\n```\n\n## Core Patterns\n\n```ts\nconst detailOptions = { getRowCanExpand: () => true }\nconst isDetailOpen = row.getIsExpanded()\n```\n\nFor custom detail UI, render an additional row\u002Fpanel when `isDetailOpen` is true.\n\n## Common Mistakes\n\n### [HIGH] Omitting the subrow accessor\n\nWrong: `const options = { data: nestedRows }`\n\nCorrect: `const options = { data: nestedRows, getSubRows: (row: Node) => row.children }`\n\nNested object structure is not inferred automatically.\n\nSource: `docs\u002Fframework\u002Freact\u002Fguide\u002Fexpanding.md#table-rows-as-expanded-data`\n\n### [HIGH] Expecting detail markup from state\n\nWrong: `row.toggleExpanded(true)`\n\nCorrect: `if (row.getIsExpanded()) renderDetail(row.original)`\n\nTable is headless and cannot render a custom detail panel.\n\nSource: `docs\u002Fframework\u002Freact\u002Fguide\u002Fexpanding.md#custom-expanding-ui`\n\n### [HIGH] Misreading pagination placement\n\nWrong: `const options = { paginateExpandedRows: false }; const leafOnlyPages = true`\n\nCorrect: `const options = { paginateExpandedRows: false }; const descendantsStayWithParent = true`\n\nThis option controls whether expansion happens before or after pagination; it does not make page size count only leaf rows.\n\nSource: `packages\u002Ftable-core\u002Fsrc\u002Ffeatures\u002Frow-expanding\u002FrowExpandingFeature.types.ts`\n\n## API Discovery\n\nInspect `node_modules\u002F@tanstack\u002Ftable-core\u002Fdist\u002Ffeatures\u002Frow-expanding\u002F` for expansion state, row APIs, and model placement.\n",{"data":54,"body":67},{"name":4,"description":6,"metadata":55,"requires":59,"sources":63},{"type":56,"library":57,"library_version":58},"sub-skill","@tanstack\u002Ftable-core","9.0.0-beta.59",[60,61,62],"core","table-features","client-vs-server",[64,65,66],"TanStack\u002Ftable:docs\u002Fframework\u002Freact\u002Fguide\u002Fexpanding.md","TanStack\u002Ftable:packages\u002Ftable-core\u002Fsrc\u002Ffeatures\u002Frow-expanding","TanStack\u002Ftable:examples\u002Freact\u002Fexpanding",{"type":68,"children":69},"root",[70,100,107,461,467,558,571,577,589,600,611,616,627,637,647,657,662,672,682,692,702,707,717,723,736],{"type":71,"tag":72,"props":73,"children":74},"element","p",{},[75,78,84,86,91,93,98],{"type":76,"value":77},"text","This skill builds on ",{"type":71,"tag":79,"props":80,"children":82},"code",{"className":81},[],[83],{"type":76,"value":60},{"type":76,"value":85},", ",{"type":71,"tag":79,"props":87,"children":89},{"className":88},[],[90],{"type":76,"value":61},{"type":76,"value":92},", and ",{"type":71,"tag":79,"props":94,"children":96},{"className":95},[],[97],{"type":76,"value":62},{"type":76,"value":99},". Expansion controls row-tree inclusion; the renderer owns disclosure controls and detail panels.",{"type":71,"tag":101,"props":102,"children":104},"h2",{"id":103},"setup",[105],{"type":76,"value":106},"Setup",{"type":71,"tag":108,"props":109,"children":114},"pre",{"className":110,"code":111,"language":112,"meta":113,"style":113},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import {\n  createExpandedRowModel,\n  rowExpandingFeature,\n  tableFeatures,\n} from '@tanstack\u002Ftable-core'\n\ntype Node = { id: string; children?: Node[] }\nexport const features = tableFeatures({\n  rowExpandingFeature,\n  expandedRowModel: createExpandedRowModel(),\n})\nexport const options = { getSubRows: (row: Node) => row.children }\n","ts","",[115],{"type":71,"tag":79,"props":116,"children":117},{"__ignoreMap":113},[118,136,151,164,177,206,216,287,327,339,366,379],{"type":71,"tag":119,"props":120,"children":123},"span",{"class":121,"line":122},"line",1,[124,130],{"type":71,"tag":119,"props":125,"children":127},{"style":126},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[128],{"type":76,"value":129},"import",{"type":71,"tag":119,"props":131,"children":133},{"style":132},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[134],{"type":76,"value":135}," {\n",{"type":71,"tag":119,"props":137,"children":139},{"class":121,"line":138},2,[140,146],{"type":71,"tag":119,"props":141,"children":143},{"style":142},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[144],{"type":76,"value":145},"  createExpandedRowModel",{"type":71,"tag":119,"props":147,"children":148},{"style":132},[149],{"type":76,"value":150},",\n",{"type":71,"tag":119,"props":152,"children":154},{"class":121,"line":153},3,[155,160],{"type":71,"tag":119,"props":156,"children":157},{"style":142},[158],{"type":76,"value":159},"  rowExpandingFeature",{"type":71,"tag":119,"props":161,"children":162},{"style":132},[163],{"type":76,"value":150},{"type":71,"tag":119,"props":165,"children":167},{"class":121,"line":166},4,[168,173],{"type":71,"tag":119,"props":169,"children":170},{"style":142},[171],{"type":76,"value":172},"  tableFeatures",{"type":71,"tag":119,"props":174,"children":175},{"style":132},[176],{"type":76,"value":150},{"type":71,"tag":119,"props":178,"children":180},{"class":121,"line":179},5,[181,186,191,196,201],{"type":71,"tag":119,"props":182,"children":183},{"style":132},[184],{"type":76,"value":185},"}",{"type":71,"tag":119,"props":187,"children":188},{"style":126},[189],{"type":76,"value":190}," from",{"type":71,"tag":119,"props":192,"children":193},{"style":132},[194],{"type":76,"value":195}," '",{"type":71,"tag":119,"props":197,"children":199},{"style":198},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[200],{"type":76,"value":57},{"type":71,"tag":119,"props":202,"children":203},{"style":132},[204],{"type":76,"value":205},"'\n",{"type":71,"tag":119,"props":207,"children":209},{"class":121,"line":208},6,[210],{"type":71,"tag":119,"props":211,"children":213},{"emptyLinePlaceholder":212},true,[214],{"type":76,"value":215},"\n",{"type":71,"tag":119,"props":217,"children":219},{"class":121,"line":218},7,[220,226,232,237,242,248,253,258,263,268,273,277,282],{"type":71,"tag":119,"props":221,"children":223},{"style":222},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[224],{"type":76,"value":225},"type",{"type":71,"tag":119,"props":227,"children":229},{"style":228},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[230],{"type":76,"value":231}," Node",{"type":71,"tag":119,"props":233,"children":234},{"style":132},[235],{"type":76,"value":236}," =",{"type":71,"tag":119,"props":238,"children":239},{"style":132},[240],{"type":76,"value":241}," {",{"type":71,"tag":119,"props":243,"children":245},{"style":244},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[246],{"type":76,"value":247}," id",{"type":71,"tag":119,"props":249,"children":250},{"style":132},[251],{"type":76,"value":252},":",{"type":71,"tag":119,"props":254,"children":255},{"style":228},[256],{"type":76,"value":257}," string",{"type":71,"tag":119,"props":259,"children":260},{"style":132},[261],{"type":76,"value":262},";",{"type":71,"tag":119,"props":264,"children":265},{"style":244},[266],{"type":76,"value":267}," children",{"type":71,"tag":119,"props":269,"children":270},{"style":132},[271],{"type":76,"value":272},"?:",{"type":71,"tag":119,"props":274,"children":275},{"style":228},[276],{"type":76,"value":231},{"type":71,"tag":119,"props":278,"children":279},{"style":142},[280],{"type":76,"value":281},"[] ",{"type":71,"tag":119,"props":283,"children":284},{"style":132},[285],{"type":76,"value":286},"}\n",{"type":71,"tag":119,"props":288,"children":290},{"class":121,"line":289},8,[291,296,301,306,311,317,322],{"type":71,"tag":119,"props":292,"children":293},{"style":126},[294],{"type":76,"value":295},"export",{"type":71,"tag":119,"props":297,"children":298},{"style":222},[299],{"type":76,"value":300}," const",{"type":71,"tag":119,"props":302,"children":303},{"style":142},[304],{"type":76,"value":305}," features ",{"type":71,"tag":119,"props":307,"children":308},{"style":132},[309],{"type":76,"value":310},"=",{"type":71,"tag":119,"props":312,"children":314},{"style":313},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[315],{"type":76,"value":316}," tableFeatures",{"type":71,"tag":119,"props":318,"children":319},{"style":142},[320],{"type":76,"value":321},"(",{"type":71,"tag":119,"props":323,"children":324},{"style":132},[325],{"type":76,"value":326},"{\n",{"type":71,"tag":119,"props":328,"children":330},{"class":121,"line":329},9,[331,335],{"type":71,"tag":119,"props":332,"children":333},{"style":142},[334],{"type":76,"value":159},{"type":71,"tag":119,"props":336,"children":337},{"style":132},[338],{"type":76,"value":150},{"type":71,"tag":119,"props":340,"children":342},{"class":121,"line":341},10,[343,348,352,357,362],{"type":71,"tag":119,"props":344,"children":345},{"style":244},[346],{"type":76,"value":347},"  expandedRowModel",{"type":71,"tag":119,"props":349,"children":350},{"style":132},[351],{"type":76,"value":252},{"type":71,"tag":119,"props":353,"children":354},{"style":313},[355],{"type":76,"value":356}," createExpandedRowModel",{"type":71,"tag":119,"props":358,"children":359},{"style":142},[360],{"type":76,"value":361},"()",{"type":71,"tag":119,"props":363,"children":364},{"style":132},[365],{"type":76,"value":150},{"type":71,"tag":119,"props":367,"children":369},{"class":121,"line":368},11,[370,374],{"type":71,"tag":119,"props":371,"children":372},{"style":132},[373],{"type":76,"value":185},{"type":71,"tag":119,"props":375,"children":376},{"style":142},[377],{"type":76,"value":378},")\n",{"type":71,"tag":119,"props":380,"children":382},{"class":121,"line":381},12,[383,387,391,396,400,404,409,413,418,424,428,432,437,442,447,452,457],{"type":71,"tag":119,"props":384,"children":385},{"style":126},[386],{"type":76,"value":295},{"type":71,"tag":119,"props":388,"children":389},{"style":222},[390],{"type":76,"value":300},{"type":71,"tag":119,"props":392,"children":393},{"style":142},[394],{"type":76,"value":395}," options ",{"type":71,"tag":119,"props":397,"children":398},{"style":132},[399],{"type":76,"value":310},{"type":71,"tag":119,"props":401,"children":402},{"style":132},[403],{"type":76,"value":241},{"type":71,"tag":119,"props":405,"children":406},{"style":313},[407],{"type":76,"value":408}," getSubRows",{"type":71,"tag":119,"props":410,"children":411},{"style":132},[412],{"type":76,"value":252},{"type":71,"tag":119,"props":414,"children":415},{"style":132},[416],{"type":76,"value":417}," (",{"type":71,"tag":119,"props":419,"children":421},{"style":420},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[422],{"type":76,"value":423},"row",{"type":71,"tag":119,"props":425,"children":426},{"style":132},[427],{"type":76,"value":252},{"type":71,"tag":119,"props":429,"children":430},{"style":228},[431],{"type":76,"value":231},{"type":71,"tag":119,"props":433,"children":434},{"style":132},[435],{"type":76,"value":436},")",{"type":71,"tag":119,"props":438,"children":439},{"style":222},[440],{"type":76,"value":441}," =>",{"type":71,"tag":119,"props":443,"children":444},{"style":142},[445],{"type":76,"value":446}," row",{"type":71,"tag":119,"props":448,"children":449},{"style":132},[450],{"type":76,"value":451},".",{"type":71,"tag":119,"props":453,"children":454},{"style":142},[455],{"type":76,"value":456},"children ",{"type":71,"tag":119,"props":458,"children":459},{"style":132},[460],{"type":76,"value":286},{"type":71,"tag":101,"props":462,"children":464},{"id":463},"core-patterns",[465],{"type":76,"value":466},"Core Patterns",{"type":71,"tag":108,"props":468,"children":470},{"className":110,"code":469,"language":112,"meta":113,"style":113},"const detailOptions = { getRowCanExpand: () => true }\nconst isDetailOpen = row.getIsExpanded()\n",[471],{"type":71,"tag":79,"props":472,"children":473},{"__ignoreMap":113},[474,524],{"type":71,"tag":119,"props":475,"children":476},{"class":121,"line":122},[477,482,487,491,495,500,504,509,513,519],{"type":71,"tag":119,"props":478,"children":479},{"style":222},[480],{"type":76,"value":481},"const",{"type":71,"tag":119,"props":483,"children":484},{"style":142},[485],{"type":76,"value":486}," detailOptions ",{"type":71,"tag":119,"props":488,"children":489},{"style":132},[490],{"type":76,"value":310},{"type":71,"tag":119,"props":492,"children":493},{"style":132},[494],{"type":76,"value":241},{"type":71,"tag":119,"props":496,"children":497},{"style":313},[498],{"type":76,"value":499}," getRowCanExpand",{"type":71,"tag":119,"props":501,"children":502},{"style":132},[503],{"type":76,"value":252},{"type":71,"tag":119,"props":505,"children":506},{"style":132},[507],{"type":76,"value":508}," ()",{"type":71,"tag":119,"props":510,"children":511},{"style":222},[512],{"type":76,"value":441},{"type":71,"tag":119,"props":514,"children":516},{"style":515},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[517],{"type":76,"value":518}," true",{"type":71,"tag":119,"props":520,"children":521},{"style":132},[522],{"type":76,"value":523}," }\n",{"type":71,"tag":119,"props":525,"children":526},{"class":121,"line":138},[527,531,536,540,544,548,553],{"type":71,"tag":119,"props":528,"children":529},{"style":222},[530],{"type":76,"value":481},{"type":71,"tag":119,"props":532,"children":533},{"style":142},[534],{"type":76,"value":535}," isDetailOpen ",{"type":71,"tag":119,"props":537,"children":538},{"style":132},[539],{"type":76,"value":310},{"type":71,"tag":119,"props":541,"children":542},{"style":142},[543],{"type":76,"value":446},{"type":71,"tag":119,"props":545,"children":546},{"style":132},[547],{"type":76,"value":451},{"type":71,"tag":119,"props":549,"children":550},{"style":313},[551],{"type":76,"value":552},"getIsExpanded",{"type":71,"tag":119,"props":554,"children":555},{"style":142},[556],{"type":76,"value":557},"()\n",{"type":71,"tag":72,"props":559,"children":560},{},[561,563,569],{"type":76,"value":562},"For custom detail UI, render an additional row\u002Fpanel when ",{"type":71,"tag":79,"props":564,"children":566},{"className":565},[],[567],{"type":76,"value":568},"isDetailOpen",{"type":76,"value":570}," is true.",{"type":71,"tag":101,"props":572,"children":574},{"id":573},"common-mistakes",[575],{"type":76,"value":576},"Common Mistakes",{"type":71,"tag":578,"props":579,"children":581},"h3",{"id":580},"high-omitting-the-subrow-accessor",[582,587],{"type":71,"tag":119,"props":583,"children":584},{},[585],{"type":76,"value":586},"HIGH",{"type":76,"value":588}," Omitting the subrow accessor",{"type":71,"tag":72,"props":590,"children":591},{},[592,594],{"type":76,"value":593},"Wrong: ",{"type":71,"tag":79,"props":595,"children":597},{"className":596},[],[598],{"type":76,"value":599},"const options = { data: nestedRows }",{"type":71,"tag":72,"props":601,"children":602},{},[603,605],{"type":76,"value":604},"Correct: ",{"type":71,"tag":79,"props":606,"children":608},{"className":607},[],[609],{"type":76,"value":610},"const options = { data: nestedRows, getSubRows: (row: Node) => row.children }",{"type":71,"tag":72,"props":612,"children":613},{},[614],{"type":76,"value":615},"Nested object structure is not inferred automatically.",{"type":71,"tag":72,"props":617,"children":618},{},[619,621],{"type":76,"value":620},"Source: ",{"type":71,"tag":79,"props":622,"children":624},{"className":623},[],[625],{"type":76,"value":626},"docs\u002Fframework\u002Freact\u002Fguide\u002Fexpanding.md#table-rows-as-expanded-data",{"type":71,"tag":578,"props":628,"children":630},{"id":629},"high-expecting-detail-markup-from-state",[631,635],{"type":71,"tag":119,"props":632,"children":633},{},[634],{"type":76,"value":586},{"type":76,"value":636}," Expecting detail markup from state",{"type":71,"tag":72,"props":638,"children":639},{},[640,641],{"type":76,"value":593},{"type":71,"tag":79,"props":642,"children":644},{"className":643},[],[645],{"type":76,"value":646},"row.toggleExpanded(true)",{"type":71,"tag":72,"props":648,"children":649},{},[650,651],{"type":76,"value":604},{"type":71,"tag":79,"props":652,"children":654},{"className":653},[],[655],{"type":76,"value":656},"if (row.getIsExpanded()) renderDetail(row.original)",{"type":71,"tag":72,"props":658,"children":659},{},[660],{"type":76,"value":661},"Table is headless and cannot render a custom detail panel.",{"type":71,"tag":72,"props":663,"children":664},{},[665,666],{"type":76,"value":620},{"type":71,"tag":79,"props":667,"children":669},{"className":668},[],[670],{"type":76,"value":671},"docs\u002Fframework\u002Freact\u002Fguide\u002Fexpanding.md#custom-expanding-ui",{"type":71,"tag":578,"props":673,"children":675},{"id":674},"high-misreading-pagination-placement",[676,680],{"type":71,"tag":119,"props":677,"children":678},{},[679],{"type":76,"value":586},{"type":76,"value":681}," Misreading pagination placement",{"type":71,"tag":72,"props":683,"children":684},{},[685,686],{"type":76,"value":593},{"type":71,"tag":79,"props":687,"children":689},{"className":688},[],[690],{"type":76,"value":691},"const options = { paginateExpandedRows: false }; const leafOnlyPages = true",{"type":71,"tag":72,"props":693,"children":694},{},[695,696],{"type":76,"value":604},{"type":71,"tag":79,"props":697,"children":699},{"className":698},[],[700],{"type":76,"value":701},"const options = { paginateExpandedRows: false }; const descendantsStayWithParent = true",{"type":71,"tag":72,"props":703,"children":704},{},[705],{"type":76,"value":706},"This option controls whether expansion happens before or after pagination; it does not make page size count only leaf rows.",{"type":71,"tag":72,"props":708,"children":709},{},[710,711],{"type":76,"value":620},{"type":71,"tag":79,"props":712,"children":714},{"className":713},[],[715],{"type":76,"value":716},"packages\u002Ftable-core\u002Fsrc\u002Ffeatures\u002Frow-expanding\u002FrowExpandingFeature.types.ts",{"type":71,"tag":101,"props":718,"children":720},{"id":719},"api-discovery",[721],{"type":76,"value":722},"API Discovery",{"type":71,"tag":72,"props":724,"children":725},{},[726,728,734],{"type":76,"value":727},"Inspect ",{"type":71,"tag":79,"props":729,"children":731},{"className":730},[],[732],{"type":76,"value":733},"node_modules\u002F@tanstack\u002Ftable-core\u002Fdist\u002Ffeatures\u002Frow-expanding\u002F",{"type":76,"value":735}," for expansion state, row APIs, and model placement.",{"type":71,"tag":737,"props":738,"children":739},"style",{},[740],{"type":76,"value":741},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":743,"total":875},[744,754,766,776,790,802,812,822,835,845,856,866],{"slug":745,"name":745,"fn":746,"description":747,"org":748,"tags":749,"stars":23,"repoUrl":24,"updatedAt":753},"aggregation","perform data aggregation in TanStack Table","Aggregate TanStack Table columns independently of grouping, including grand totals, caller-selected row totals, multiple keyed aggregations, custom context-based definitions, grouped merges, manual values, and worker constraints.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[750,751,752],{"name":13,"slug":14,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:25:59.429787",{"slug":755,"name":755,"fn":756,"description":757,"org":758,"tags":759,"stars":23,"repoUrl":24,"updatedAt":765},"api-not-found","diagnose TanStack Table API errors","Diagnose missing TanStack Table v9 exports, options, state slices, and instance methods. Load before inventing an API when code sees a type error, undefined feature method, absent object key, adapter mismatch, or v8-shaped example.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[760,763,764],{"name":761,"slug":762,"type":15},"Debugging","debugging",{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:26:05.418735",{"slug":767,"name":767,"fn":768,"description":769,"org":770,"tags":771,"stars":23,"repoUrl":24,"updatedAt":775},"cell-selection","select rectangular cell ranges in tables","Select rectangular cell ranges with cellSelectionFeature: two-corner range state keyed by row and column id, mousedown\u002Fmouseenter handlers, selection edges, render-order resolution under pinning, and autoResetCellSelection. Load when ranges widen unexpectedly after sorting or column reordering, when a drag re-renders the whole table, or when building copy-to-clipboard from a selection.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[772,773,774],{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":17,"slug":18,"type":15},"2026-07-30T05:25:38.403427",{"slug":62,"name":62,"fn":777,"description":778,"org":779,"tags":780,"stars":23,"repoUrl":24,"updatedAt":789},"manage TanStack Table data pipelines","Choose client or server ownership for filtering, grouping, sorting, expanding, and pagination in TanStack Table v9. Load for manual* flags, mixed pipelines, server counts, or deciding which dataset each row-model stage receives.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[781,784,785,788],{"name":782,"slug":783,"type":15},"Data Pipeline","data-pipeline",{"name":21,"slug":22,"type":15},{"name":786,"slug":787,"type":15},"Performance","performance",{"name":9,"slug":8,"type":15},"2026-07-30T05:25:45.400104",{"slug":791,"name":791,"fn":792,"description":793,"org":794,"tags":795,"stars":23,"repoUrl":24,"updatedAt":801},"column-faceting","build faceted filter UIs","Build faceted filter UIs with columnFacetingFeature, facetedRowModel, facetedUniqueValues, and facetedMinMaxValues. Load for facet counts, numeric ranges, own-filter exclusion, or server-page facet completeness.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[796,799,800],{"name":797,"slug":798,"type":15},"Data Visualization","data-visualization",{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:25:41.397257",{"slug":803,"name":803,"fn":804,"description":805,"org":806,"tags":807,"stars":23,"repoUrl":24,"updatedAt":811},"column-filtering","implement column filtering in TanStack Table","Filter columns with columnFilteringFeature, filteredRowModel, filterFns, filterMeta, nested-row direction, and manualFiltering. Load for accessor compatibility, controlled filter updaters, fuzzy metadata, or client\u002Fserver ownership.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[808,809,810],{"name":13,"slug":14,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:25:53.391632",{"slug":813,"name":813,"fn":814,"description":815,"org":816,"tags":817,"stars":23,"repoUrl":24,"updatedAt":821},"column-ordering","manage TanStack Table column ordering","Control TanStack Table v9 leaf columnOrder with stable IDs while accounting for pinning regions, visibility, and groupedColumnMode precedence. Load for drag-and-drop columns or rendered order that differs from state.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[818,819,820],{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":17,"slug":18,"type":15},"2026-07-30T05:26:03.37801",{"slug":823,"name":823,"fn":824,"description":825,"org":826,"tags":827,"stars":23,"repoUrl":24,"updatedAt":834},"column-pinning","configure column pinning in TanStack Table","Pin columns into logical start, center, and end regions with columnPinningFeature and renderer-owned sticky CSS. Load for RTL offsets, z-index, backgrounds, overflow, widths, gaps, or overlaps.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[828,831,832,833],{"name":829,"slug":830,"type":15},"CSS","css",{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":17,"slug":18,"type":15},"2026-07-30T05:25:55.377366",{"slug":836,"name":836,"fn":837,"description":838,"org":839,"tags":840,"stars":23,"repoUrl":24,"updatedAt":844},"column-resizing","implement column resizing in TanStack Table","Wire columnResizingFeature, header.getResizeHandler, resize mode and direction, pointer or touch events, and performant CSS-variable updates. Load when resize state changes but widths do not, or large tables resize slowly.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[841,842,843],{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":17,"slug":18,"type":15},"2026-07-30T05:25:51.400011",{"slug":846,"name":846,"fn":847,"description":848,"org":849,"tags":850,"stars":23,"repoUrl":24,"updatedAt":855},"column-sizing","configure column sizing in TanStack Table","Use columnSizingFeature numeric size, minSize, maxSize, getSize, getStart, getAfter, and total-size APIs in table, grid, or flex CSS. Load for auto or percentage misconceptions and sizing\u002Fpinning layout mismatch.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[851,852,853,854],{"name":829,"slug":830,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":17,"slug":18,"type":15},"2026-07-30T05:25:48.703799",{"slug":857,"name":857,"fn":858,"description":859,"org":860,"tags":861,"stars":23,"repoUrl":24,"updatedAt":865},"column-visibility","manage column visibility in TanStack Table","Hide columns with columnVisibilityFeature while rendering visibility-aware header, column, and cell collections. Load when hidden columns remain in the DOM, false-versus-absent state is confused, or enableHiding is misunderstood.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[862,863,864],{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":17,"slug":18,"type":15},"2026-07-30T05:25:47.367943",{"slug":60,"name":60,"fn":867,"description":868,"org":869,"tags":870,"stars":23,"repoUrl":24,"updatedAt":874},"build data grids with TanStack Table","Use TanStack Table v9 as a headless data-grid state and row-processing engine. Load for first-table architecture, stable data and columns, row numbering with getDisplayIndex, semantic rendering, framework adapter choice, or deciding what Table owns versus the renderer.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[871,872,873],{"name":13,"slug":14,"type":15},{"name":21,"slug":22,"type":15},{"name":17,"slug":18,"type":15},"2026-07-30T05:25:52.366295",125,{"items":877,"total":921},[878,884,890,896,903,909,915],{"slug":745,"name":745,"fn":746,"description":747,"org":879,"tags":880,"stars":23,"repoUrl":24,"updatedAt":753},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[881,882,883],{"name":13,"slug":14,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"slug":755,"name":755,"fn":756,"description":757,"org":885,"tags":886,"stars":23,"repoUrl":24,"updatedAt":765},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[887,888,889],{"name":761,"slug":762,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"slug":767,"name":767,"fn":768,"description":769,"org":891,"tags":892,"stars":23,"repoUrl":24,"updatedAt":775},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[893,894,895],{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":17,"slug":18,"type":15},{"slug":62,"name":62,"fn":777,"description":778,"org":897,"tags":898,"stars":23,"repoUrl":24,"updatedAt":789},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[899,900,901,902],{"name":782,"slug":783,"type":15},{"name":21,"slug":22,"type":15},{"name":786,"slug":787,"type":15},{"name":9,"slug":8,"type":15},{"slug":791,"name":791,"fn":792,"description":793,"org":904,"tags":905,"stars":23,"repoUrl":24,"updatedAt":801},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[906,907,908],{"name":797,"slug":798,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"slug":803,"name":803,"fn":804,"description":805,"org":910,"tags":911,"stars":23,"repoUrl":24,"updatedAt":811},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[912,913,914],{"name":13,"slug":14,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"slug":813,"name":813,"fn":814,"description":815,"org":916,"tags":917,"stars":23,"repoUrl":24,"updatedAt":821},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[918,919,920],{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":17,"slug":18,"type":15},30]