[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-tanstack-sorting":3,"mdc--9agcat-key":49,"related-org-tanstack-sorting":739,"related-repo-tanstack-sorting":875},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":24,"topics":25,"repo":44,"sourceUrl":47,"mdContent":48},"sorting","configure sorting in TanStack Table","Sort with rowSortingFeature, sortedRowModel, sortFns, multi-sort and removal options, sortUndefined, and manualSorting. Load for comparator direction, incoming server order, or product-specific sorting cycles.\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,17],{"name":13,"slug":14,"type":15},"Data Analysis","data-analysis","tag",{"name":9,"slug":8,"type":15},{"name":18,"slug":19,"type":15},"Frontend","frontend",28175,"https:\u002F\u002Fgithub.com\u002FTanStack\u002Ftable","2026-07-30T05:25:42.378852",null,3539,[26,27,28,29,30,31,32,33,34,35,36,37,38,4,39,40,41,42,43],"datagrid","datagrids","datatable","filtering","grid","grouping","hooks","javascript","pagination","react","reactjs","solid","solidjs","svelte","sveltejs","table","typescript","vue",{"repoUrl":21,"stars":20,"forks":24,"topics":45,"description":46},[26,27,28,29,30,31,32,33,34,35,36,37,38,4,39,40,41,42,43],"🤖 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\u002Fsorting","---\nname: sorting\ndescription: >\n  Sort with rowSortingFeature, sortedRowModel, sortFns, multi-sort and removal options, sortUndefined, and manualSorting. Load for comparator direction, incoming server order, or product-specific sorting cycles.\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\u002Fsorting.md'\n  - 'TanStack\u002Ftable:packages\u002Ftable-core\u002Fsrc\u002Ffeatures\u002Frow-sorting'\n  - 'TanStack\u002Ftable:examples\u002Freact\u002Fsorting'\n---\n\nThis skill builds on `core`, `table-features`, and `client-vs-server`. Sorting state describes order; client processing requires a sorted model and server processing requires sorted input.\n\n## Setup\n\n```ts\nimport {\n  createSortedRowModel,\n  rowSortingFeature,\n  sortFn_alphanumeric,\n  sortFn_text,\n  tableFeatures,\n} from '@tanstack\u002Ftable-core'\n\nexport const features = tableFeatures({\n  rowSortingFeature,\n  sortedRowModel: createSortedRowModel(),\n  sortFns: { alphanumeric: sortFn_alphanumeric, text: sortFn_text },\n})\n```\n\nImport individual `sortFn_*` built-ins and register only those your columns\nreference by string name or that `sortFn: 'auto'` should resolve for your data\ntypes. The full `sortFns` registry object still works but bundles every\nbuilt-in; numeric columns fall back to a basic comparator without registration.\n\n## Core Patterns\n\n```ts\nconst options = { enableSortingRemoval: false, enableMultiSort: true }\nconst numericColumn = { sortUndefined: 'last' as const }\n```\n\nConfigure sort cycles and undefined placement to match the product rather than relying on implicit defaults.\n\n## Common Mistakes\n\n### [CRITICAL] Expecting manual mode to reorder\n\nWrong: `const options = { data: unsortedRows, manualSorting: true }`\n\nCorrect: `const options = { data: serverSortedRows, manualSorting: true }`\n\nManual sorting bypasses `sortedRowModel` and trusts incoming order.\n\nSource: `packages\u002Ftable-core\u002Fsrc\u002Ffeatures\u002Frow-sorting\u002FrowSortingFeature.types.ts`\n\n### [HIGH] Reversing inside the comparator\n\nWrong: `const newest: SortFn\u003Cany, any> = (a, b, id) => b.getValue\u003Cnumber>(id) - a.getValue\u003Cnumber>(id)`\n\nCorrect: `const numeric: SortFn\u003Cany, any> = (a, b, id) => a.getValue\u003Cnumber>(id) - b.getValue\u003Cnumber>(id)`\n\nReturn ascending comparison only; Table reverses it when sorting is descending.\n\nSource: `docs\u002Fframework\u002Freact\u002Fguide\u002Fsorting.md#custom-sorting-functions`\n\n### [MEDIUM] Leaving ambiguous sort policy\n\nWrong: `const options = { enableSortingRemoval: true }`\n\nCorrect: `const options = { enableSortingRemoval: false }; const rankColumn = { sortUndefined: 'last' as const }`\n\nUndefined placement and removal cycles can differ from expected product behavior unless configured.\n\nSource: `packages\u002Ftable-core\u002Fsrc\u002Ffeatures\u002Frow-sorting\u002FrowSortingFeature.types.ts`\n\n## API Discovery\n\nInspect `node_modules\u002F@tanstack\u002Ftable-core\u002Fdist\u002Ffeatures\u002Frow-sorting\u002F` and `dist\u002Ffeatures\u002Frow-sorting\u002FsortFns.d.ts` for current names and comparator contracts.\n",{"data":50,"body":63},{"name":4,"description":6,"metadata":51,"requires":55,"sources":59},{"type":52,"library":53,"library_version":54},"sub-skill","@tanstack\u002Ftable-core","9.0.0-beta.59",[56,57,58],"core","table-features","client-vs-server",[60,61,62],"TanStack\u002Ftable:docs\u002Fframework\u002Freact\u002Fguide\u002Fsorting.md","TanStack\u002Ftable:packages\u002Ftable-core\u002Fsrc\u002Ffeatures\u002Frow-sorting","TanStack\u002Ftable:examples\u002Freact\u002Fsorting",{"type":64,"children":65},"root",[66,96,103,389,418,424,546,551,557,569,580,591,604,615,626,636,646,651,661,672,682,692,697,706,712,733],{"type":67,"tag":68,"props":69,"children":70},"element","p",{},[71,74,80,82,87,89,94],{"type":72,"value":73},"text","This skill builds on ",{"type":67,"tag":75,"props":76,"children":78},"code",{"className":77},[],[79],{"type":72,"value":56},{"type":72,"value":81},", ",{"type":67,"tag":75,"props":83,"children":85},{"className":84},[],[86],{"type":72,"value":57},{"type":72,"value":88},", and ",{"type":67,"tag":75,"props":90,"children":92},{"className":91},[],[93],{"type":72,"value":58},{"type":72,"value":95},". Sorting state describes order; client processing requires a sorted model and server processing requires sorted input.",{"type":67,"tag":97,"props":98,"children":100},"h2",{"id":99},"setup",[101],{"type":72,"value":102},"Setup",{"type":67,"tag":104,"props":105,"children":110},"pre",{"className":106,"code":107,"language":108,"meta":109,"style":109},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import {\n  createSortedRowModel,\n  rowSortingFeature,\n  sortFn_alphanumeric,\n  sortFn_text,\n  tableFeatures,\n} from '@tanstack\u002Ftable-core'\n\nexport const features = tableFeatures({\n  rowSortingFeature,\n  sortedRowModel: createSortedRowModel(),\n  sortFns: { alphanumeric: sortFn_alphanumeric, text: sortFn_text },\n})\n","ts","",[111],{"type":67,"tag":75,"props":112,"children":113},{"__ignoreMap":109},[114,132,147,160,173,186,199,228,238,279,291,320,376],{"type":67,"tag":115,"props":116,"children":119},"span",{"class":117,"line":118},"line",1,[120,126],{"type":67,"tag":115,"props":121,"children":123},{"style":122},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[124],{"type":72,"value":125},"import",{"type":67,"tag":115,"props":127,"children":129},{"style":128},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[130],{"type":72,"value":131}," {\n",{"type":67,"tag":115,"props":133,"children":135},{"class":117,"line":134},2,[136,142],{"type":67,"tag":115,"props":137,"children":139},{"style":138},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[140],{"type":72,"value":141},"  createSortedRowModel",{"type":67,"tag":115,"props":143,"children":144},{"style":128},[145],{"type":72,"value":146},",\n",{"type":67,"tag":115,"props":148,"children":150},{"class":117,"line":149},3,[151,156],{"type":67,"tag":115,"props":152,"children":153},{"style":138},[154],{"type":72,"value":155},"  rowSortingFeature",{"type":67,"tag":115,"props":157,"children":158},{"style":128},[159],{"type":72,"value":146},{"type":67,"tag":115,"props":161,"children":163},{"class":117,"line":162},4,[164,169],{"type":67,"tag":115,"props":165,"children":166},{"style":138},[167],{"type":72,"value":168},"  sortFn_alphanumeric",{"type":67,"tag":115,"props":170,"children":171},{"style":128},[172],{"type":72,"value":146},{"type":67,"tag":115,"props":174,"children":176},{"class":117,"line":175},5,[177,182],{"type":67,"tag":115,"props":178,"children":179},{"style":138},[180],{"type":72,"value":181},"  sortFn_text",{"type":67,"tag":115,"props":183,"children":184},{"style":128},[185],{"type":72,"value":146},{"type":67,"tag":115,"props":187,"children":189},{"class":117,"line":188},6,[190,195],{"type":67,"tag":115,"props":191,"children":192},{"style":138},[193],{"type":72,"value":194},"  tableFeatures",{"type":67,"tag":115,"props":196,"children":197},{"style":128},[198],{"type":72,"value":146},{"type":67,"tag":115,"props":200,"children":202},{"class":117,"line":201},7,[203,208,213,218,223],{"type":67,"tag":115,"props":204,"children":205},{"style":128},[206],{"type":72,"value":207},"}",{"type":67,"tag":115,"props":209,"children":210},{"style":122},[211],{"type":72,"value":212}," from",{"type":67,"tag":115,"props":214,"children":215},{"style":128},[216],{"type":72,"value":217}," '",{"type":67,"tag":115,"props":219,"children":221},{"style":220},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[222],{"type":72,"value":53},{"type":67,"tag":115,"props":224,"children":225},{"style":128},[226],{"type":72,"value":227},"'\n",{"type":67,"tag":115,"props":229,"children":231},{"class":117,"line":230},8,[232],{"type":67,"tag":115,"props":233,"children":235},{"emptyLinePlaceholder":234},true,[236],{"type":72,"value":237},"\n",{"type":67,"tag":115,"props":239,"children":241},{"class":117,"line":240},9,[242,247,253,258,263,269,274],{"type":67,"tag":115,"props":243,"children":244},{"style":122},[245],{"type":72,"value":246},"export",{"type":67,"tag":115,"props":248,"children":250},{"style":249},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[251],{"type":72,"value":252}," const",{"type":67,"tag":115,"props":254,"children":255},{"style":138},[256],{"type":72,"value":257}," features ",{"type":67,"tag":115,"props":259,"children":260},{"style":128},[261],{"type":72,"value":262},"=",{"type":67,"tag":115,"props":264,"children":266},{"style":265},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[267],{"type":72,"value":268}," tableFeatures",{"type":67,"tag":115,"props":270,"children":271},{"style":138},[272],{"type":72,"value":273},"(",{"type":67,"tag":115,"props":275,"children":276},{"style":128},[277],{"type":72,"value":278},"{\n",{"type":67,"tag":115,"props":280,"children":282},{"class":117,"line":281},10,[283,287],{"type":67,"tag":115,"props":284,"children":285},{"style":138},[286],{"type":72,"value":155},{"type":67,"tag":115,"props":288,"children":289},{"style":128},[290],{"type":72,"value":146},{"type":67,"tag":115,"props":292,"children":294},{"class":117,"line":293},11,[295,301,306,311,316],{"type":67,"tag":115,"props":296,"children":298},{"style":297},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[299],{"type":72,"value":300},"  sortedRowModel",{"type":67,"tag":115,"props":302,"children":303},{"style":128},[304],{"type":72,"value":305},":",{"type":67,"tag":115,"props":307,"children":308},{"style":265},[309],{"type":72,"value":310}," createSortedRowModel",{"type":67,"tag":115,"props":312,"children":313},{"style":138},[314],{"type":72,"value":315},"()",{"type":67,"tag":115,"props":317,"children":318},{"style":128},[319],{"type":72,"value":146},{"type":67,"tag":115,"props":321,"children":323},{"class":117,"line":322},12,[324,329,333,338,343,347,352,357,362,366,371],{"type":67,"tag":115,"props":325,"children":326},{"style":297},[327],{"type":72,"value":328},"  sortFns",{"type":67,"tag":115,"props":330,"children":331},{"style":128},[332],{"type":72,"value":305},{"type":67,"tag":115,"props":334,"children":335},{"style":128},[336],{"type":72,"value":337}," {",{"type":67,"tag":115,"props":339,"children":340},{"style":297},[341],{"type":72,"value":342}," alphanumeric",{"type":67,"tag":115,"props":344,"children":345},{"style":128},[346],{"type":72,"value":305},{"type":67,"tag":115,"props":348,"children":349},{"style":138},[350],{"type":72,"value":351}," sortFn_alphanumeric",{"type":67,"tag":115,"props":353,"children":354},{"style":128},[355],{"type":72,"value":356},",",{"type":67,"tag":115,"props":358,"children":359},{"style":297},[360],{"type":72,"value":361}," text",{"type":67,"tag":115,"props":363,"children":364},{"style":128},[365],{"type":72,"value":305},{"type":67,"tag":115,"props":367,"children":368},{"style":138},[369],{"type":72,"value":370}," sortFn_text ",{"type":67,"tag":115,"props":372,"children":373},{"style":128},[374],{"type":72,"value":375},"},\n",{"type":67,"tag":115,"props":377,"children":379},{"class":117,"line":378},13,[380,384],{"type":67,"tag":115,"props":381,"children":382},{"style":128},[383],{"type":72,"value":207},{"type":67,"tag":115,"props":385,"children":386},{"style":138},[387],{"type":72,"value":388},")\n",{"type":67,"tag":68,"props":390,"children":391},{},[392,394,400,402,408,410,416],{"type":72,"value":393},"Import individual ",{"type":67,"tag":75,"props":395,"children":397},{"className":396},[],[398],{"type":72,"value":399},"sortFn_*",{"type":72,"value":401}," built-ins and register only those your columns\nreference by string name or that ",{"type":67,"tag":75,"props":403,"children":405},{"className":404},[],[406],{"type":72,"value":407},"sortFn: 'auto'",{"type":72,"value":409}," should resolve for your data\ntypes. The full ",{"type":67,"tag":75,"props":411,"children":413},{"className":412},[],[414],{"type":72,"value":415},"sortFns",{"type":72,"value":417}," registry object still works but bundles every\nbuilt-in; numeric columns fall back to a basic comparator without registration.",{"type":67,"tag":97,"props":419,"children":421},{"id":420},"core-patterns",[422],{"type":72,"value":423},"Core Patterns",{"type":67,"tag":104,"props":425,"children":427},{"className":106,"code":426,"language":108,"meta":109,"style":109},"const options = { enableSortingRemoval: false, enableMultiSort: true }\nconst numericColumn = { sortUndefined: 'last' as const }\n",[428],{"type":67,"tag":75,"props":429,"children":430},{"__ignoreMap":109},[431,490],{"type":67,"tag":115,"props":432,"children":433},{"class":117,"line":118},[434,439,444,448,452,457,461,467,471,476,480,485],{"type":67,"tag":115,"props":435,"children":436},{"style":249},[437],{"type":72,"value":438},"const",{"type":67,"tag":115,"props":440,"children":441},{"style":138},[442],{"type":72,"value":443}," options ",{"type":67,"tag":115,"props":445,"children":446},{"style":128},[447],{"type":72,"value":262},{"type":67,"tag":115,"props":449,"children":450},{"style":128},[451],{"type":72,"value":337},{"type":67,"tag":115,"props":453,"children":454},{"style":297},[455],{"type":72,"value":456}," enableSortingRemoval",{"type":67,"tag":115,"props":458,"children":459},{"style":128},[460],{"type":72,"value":305},{"type":67,"tag":115,"props":462,"children":464},{"style":463},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[465],{"type":72,"value":466}," false",{"type":67,"tag":115,"props":468,"children":469},{"style":128},[470],{"type":72,"value":356},{"type":67,"tag":115,"props":472,"children":473},{"style":297},[474],{"type":72,"value":475}," enableMultiSort",{"type":67,"tag":115,"props":477,"children":478},{"style":128},[479],{"type":72,"value":305},{"type":67,"tag":115,"props":481,"children":482},{"style":463},[483],{"type":72,"value":484}," true",{"type":67,"tag":115,"props":486,"children":487},{"style":128},[488],{"type":72,"value":489}," }\n",{"type":67,"tag":115,"props":491,"children":492},{"class":117,"line":134},[493,497,502,506,510,515,519,523,528,533,538,542],{"type":67,"tag":115,"props":494,"children":495},{"style":249},[496],{"type":72,"value":438},{"type":67,"tag":115,"props":498,"children":499},{"style":138},[500],{"type":72,"value":501}," numericColumn ",{"type":67,"tag":115,"props":503,"children":504},{"style":128},[505],{"type":72,"value":262},{"type":67,"tag":115,"props":507,"children":508},{"style":128},[509],{"type":72,"value":337},{"type":67,"tag":115,"props":511,"children":512},{"style":297},[513],{"type":72,"value":514}," sortUndefined",{"type":67,"tag":115,"props":516,"children":517},{"style":128},[518],{"type":72,"value":305},{"type":67,"tag":115,"props":520,"children":521},{"style":128},[522],{"type":72,"value":217},{"type":67,"tag":115,"props":524,"children":525},{"style":220},[526],{"type":72,"value":527},"last",{"type":67,"tag":115,"props":529,"children":530},{"style":128},[531],{"type":72,"value":532},"'",{"type":67,"tag":115,"props":534,"children":535},{"style":122},[536],{"type":72,"value":537}," as",{"type":67,"tag":115,"props":539,"children":540},{"style":249},[541],{"type":72,"value":252},{"type":67,"tag":115,"props":543,"children":544},{"style":128},[545],{"type":72,"value":489},{"type":67,"tag":68,"props":547,"children":548},{},[549],{"type":72,"value":550},"Configure sort cycles and undefined placement to match the product rather than relying on implicit defaults.",{"type":67,"tag":97,"props":552,"children":554},{"id":553},"common-mistakes",[555],{"type":72,"value":556},"Common Mistakes",{"type":67,"tag":558,"props":559,"children":561},"h3",{"id":560},"critical-expecting-manual-mode-to-reorder",[562,567],{"type":67,"tag":115,"props":563,"children":564},{},[565],{"type":72,"value":566},"CRITICAL",{"type":72,"value":568}," Expecting manual mode to reorder",{"type":67,"tag":68,"props":570,"children":571},{},[572,574],{"type":72,"value":573},"Wrong: ",{"type":67,"tag":75,"props":575,"children":577},{"className":576},[],[578],{"type":72,"value":579},"const options = { data: unsortedRows, manualSorting: true }",{"type":67,"tag":68,"props":581,"children":582},{},[583,585],{"type":72,"value":584},"Correct: ",{"type":67,"tag":75,"props":586,"children":588},{"className":587},[],[589],{"type":72,"value":590},"const options = { data: serverSortedRows, manualSorting: true }",{"type":67,"tag":68,"props":592,"children":593},{},[594,596,602],{"type":72,"value":595},"Manual sorting bypasses ",{"type":67,"tag":75,"props":597,"children":599},{"className":598},[],[600],{"type":72,"value":601},"sortedRowModel",{"type":72,"value":603}," and trusts incoming order.",{"type":67,"tag":68,"props":605,"children":606},{},[607,609],{"type":72,"value":608},"Source: ",{"type":67,"tag":75,"props":610,"children":612},{"className":611},[],[613],{"type":72,"value":614},"packages\u002Ftable-core\u002Fsrc\u002Ffeatures\u002Frow-sorting\u002FrowSortingFeature.types.ts",{"type":67,"tag":558,"props":616,"children":618},{"id":617},"high-reversing-inside-the-comparator",[619,624],{"type":67,"tag":115,"props":620,"children":621},{},[622],{"type":72,"value":623},"HIGH",{"type":72,"value":625}," Reversing inside the comparator",{"type":67,"tag":68,"props":627,"children":628},{},[629,630],{"type":72,"value":573},{"type":67,"tag":75,"props":631,"children":633},{"className":632},[],[634],{"type":72,"value":635},"const newest: SortFn\u003Cany, any> = (a, b, id) => b.getValue\u003Cnumber>(id) - a.getValue\u003Cnumber>(id)",{"type":67,"tag":68,"props":637,"children":638},{},[639,640],{"type":72,"value":584},{"type":67,"tag":75,"props":641,"children":643},{"className":642},[],[644],{"type":72,"value":645},"const numeric: SortFn\u003Cany, any> = (a, b, id) => a.getValue\u003Cnumber>(id) - b.getValue\u003Cnumber>(id)",{"type":67,"tag":68,"props":647,"children":648},{},[649],{"type":72,"value":650},"Return ascending comparison only; Table reverses it when sorting is descending.",{"type":67,"tag":68,"props":652,"children":653},{},[654,655],{"type":72,"value":608},{"type":67,"tag":75,"props":656,"children":658},{"className":657},[],[659],{"type":72,"value":660},"docs\u002Fframework\u002Freact\u002Fguide\u002Fsorting.md#custom-sorting-functions",{"type":67,"tag":558,"props":662,"children":664},{"id":663},"medium-leaving-ambiguous-sort-policy",[665,670],{"type":67,"tag":115,"props":666,"children":667},{},[668],{"type":72,"value":669},"MEDIUM",{"type":72,"value":671}," Leaving ambiguous sort policy",{"type":67,"tag":68,"props":673,"children":674},{},[675,676],{"type":72,"value":573},{"type":67,"tag":75,"props":677,"children":679},{"className":678},[],[680],{"type":72,"value":681},"const options = { enableSortingRemoval: true }",{"type":67,"tag":68,"props":683,"children":684},{},[685,686],{"type":72,"value":584},{"type":67,"tag":75,"props":687,"children":689},{"className":688},[],[690],{"type":72,"value":691},"const options = { enableSortingRemoval: false }; const rankColumn = { sortUndefined: 'last' as const }",{"type":67,"tag":68,"props":693,"children":694},{},[695],{"type":72,"value":696},"Undefined placement and removal cycles can differ from expected product behavior unless configured.",{"type":67,"tag":68,"props":698,"children":699},{},[700,701],{"type":72,"value":608},{"type":67,"tag":75,"props":702,"children":704},{"className":703},[],[705],{"type":72,"value":614},{"type":67,"tag":97,"props":707,"children":709},{"id":708},"api-discovery",[710],{"type":72,"value":711},"API Discovery",{"type":67,"tag":68,"props":713,"children":714},{},[715,717,723,725,731],{"type":72,"value":716},"Inspect ",{"type":67,"tag":75,"props":718,"children":720},{"className":719},[],[721],{"type":72,"value":722},"node_modules\u002F@tanstack\u002Ftable-core\u002Fdist\u002Ffeatures\u002Frow-sorting\u002F",{"type":72,"value":724}," and ",{"type":67,"tag":75,"props":726,"children":728},{"className":727},[],[729],{"type":72,"value":730},"dist\u002Ffeatures\u002Frow-sorting\u002FsortFns.d.ts",{"type":72,"value":732}," for current names and comparator contracts.",{"type":67,"tag":734,"props":735,"children":736},"style",{},[737],{"type":72,"value":738},"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":740,"total":874},[741,751,763,775,789,801,811,821,834,844,855,865],{"slug":742,"name":742,"fn":743,"description":744,"org":745,"tags":746,"stars":20,"repoUrl":21,"updatedAt":750},"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},[747,748,749],{"name":13,"slug":14,"type":15},{"name":18,"slug":19,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:25:59.429787",{"slug":752,"name":752,"fn":753,"description":754,"org":755,"tags":756,"stars":20,"repoUrl":21,"updatedAt":762},"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},[757,760,761],{"name":758,"slug":759,"type":15},"Debugging","debugging",{"name":18,"slug":19,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:26:05.418735",{"slug":764,"name":764,"fn":765,"description":766,"org":767,"tags":768,"stars":20,"repoUrl":21,"updatedAt":774},"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},[769,770,771],{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":772,"slug":773,"type":15},"UI Components","ui-components","2026-07-30T05:25:38.403427",{"slug":58,"name":58,"fn":776,"description":777,"org":778,"tags":779,"stars":20,"repoUrl":21,"updatedAt":788},"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},[780,783,784,787],{"name":781,"slug":782,"type":15},"Data Pipeline","data-pipeline",{"name":18,"slug":19,"type":15},{"name":785,"slug":786,"type":15},"Performance","performance",{"name":9,"slug":8,"type":15},"2026-07-30T05:25:45.400104",{"slug":790,"name":790,"fn":791,"description":792,"org":793,"tags":794,"stars":20,"repoUrl":21,"updatedAt":800},"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},[795,798,799],{"name":796,"slug":797,"type":15},"Data Visualization","data-visualization",{"name":18,"slug":19,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:25:41.397257",{"slug":802,"name":802,"fn":803,"description":804,"org":805,"tags":806,"stars":20,"repoUrl":21,"updatedAt":810},"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},[807,808,809],{"name":13,"slug":14,"type":15},{"name":18,"slug":19,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:25:53.391632",{"slug":812,"name":812,"fn":813,"description":814,"org":815,"tags":816,"stars":20,"repoUrl":21,"updatedAt":820},"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},[817,818,819],{"name":18,"slug":19,"type":15},{"name":9,"slug":8,"type":15},{"name":772,"slug":773,"type":15},"2026-07-30T05:26:03.37801",{"slug":822,"name":822,"fn":823,"description":824,"org":825,"tags":826,"stars":20,"repoUrl":21,"updatedAt":833},"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},[827,830,831,832],{"name":828,"slug":829,"type":15},"CSS","css",{"name":18,"slug":19,"type":15},{"name":9,"slug":8,"type":15},{"name":772,"slug":773,"type":15},"2026-07-30T05:25:55.377366",{"slug":835,"name":835,"fn":836,"description":837,"org":838,"tags":839,"stars":20,"repoUrl":21,"updatedAt":843},"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},[840,841,842],{"name":18,"slug":19,"type":15},{"name":9,"slug":8,"type":15},{"name":772,"slug":773,"type":15},"2026-07-30T05:25:51.400011",{"slug":845,"name":845,"fn":846,"description":847,"org":848,"tags":849,"stars":20,"repoUrl":21,"updatedAt":854},"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},[850,851,852,853],{"name":828,"slug":829,"type":15},{"name":18,"slug":19,"type":15},{"name":9,"slug":8,"type":15},{"name":772,"slug":773,"type":15},"2026-07-30T05:25:48.703799",{"slug":856,"name":856,"fn":857,"description":858,"org":859,"tags":860,"stars":20,"repoUrl":21,"updatedAt":864},"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},[861,862,863],{"name":18,"slug":19,"type":15},{"name":9,"slug":8,"type":15},{"name":772,"slug":773,"type":15},"2026-07-30T05:25:47.367943",{"slug":56,"name":56,"fn":866,"description":867,"org":868,"tags":869,"stars":20,"repoUrl":21,"updatedAt":873},"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},[870,871,872],{"name":13,"slug":14,"type":15},{"name":18,"slug":19,"type":15},{"name":772,"slug":773,"type":15},"2026-07-30T05:25:52.366295",125,{"items":876,"total":920},[877,883,889,895,902,908,914],{"slug":742,"name":742,"fn":743,"description":744,"org":878,"tags":879,"stars":20,"repoUrl":21,"updatedAt":750},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[880,881,882],{"name":13,"slug":14,"type":15},{"name":18,"slug":19,"type":15},{"name":9,"slug":8,"type":15},{"slug":752,"name":752,"fn":753,"description":754,"org":884,"tags":885,"stars":20,"repoUrl":21,"updatedAt":762},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[886,887,888],{"name":758,"slug":759,"type":15},{"name":18,"slug":19,"type":15},{"name":9,"slug":8,"type":15},{"slug":764,"name":764,"fn":765,"description":766,"org":890,"tags":891,"stars":20,"repoUrl":21,"updatedAt":774},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[892,893,894],{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":772,"slug":773,"type":15},{"slug":58,"name":58,"fn":776,"description":777,"org":896,"tags":897,"stars":20,"repoUrl":21,"updatedAt":788},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[898,899,900,901],{"name":781,"slug":782,"type":15},{"name":18,"slug":19,"type":15},{"name":785,"slug":786,"type":15},{"name":9,"slug":8,"type":15},{"slug":790,"name":790,"fn":791,"description":792,"org":903,"tags":904,"stars":20,"repoUrl":21,"updatedAt":800},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[905,906,907],{"name":796,"slug":797,"type":15},{"name":18,"slug":19,"type":15},{"name":9,"slug":8,"type":15},{"slug":802,"name":802,"fn":803,"description":804,"org":909,"tags":910,"stars":20,"repoUrl":21,"updatedAt":810},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[911,912,913],{"name":13,"slug":14,"type":15},{"name":18,"slug":19,"type":15},{"name":9,"slug":8,"type":15},{"slug":812,"name":812,"fn":813,"description":814,"org":915,"tags":916,"stars":20,"repoUrl":21,"updatedAt":820},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[917,918,919],{"name":18,"slug":19,"type":15},{"name":9,"slug":8,"type":15},{"name":772,"slug":773,"type":15},30]