[{"data":1,"prerenderedAt":4238},["ShallowReactive",2],{"navigation_docs":3,"page:docs:\u002Fmigration\u002Fv1-to-v2":199,"surround:docs:\u002Fmigration\u002Fv1-to-v2":4233},[4,27,45,79,101,123,141,159,181],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":26},"Getting Started","i-lucide-rocket","\u002Fgetting-started","01.getting-started",[10,14,18,22],{"title":11,"path":12,"stem":13},"Introduction","\u002Fgetting-started\u002Fintroduction","01.getting-started\u002F1.introduction",{"title":15,"path":16,"stem":17},"Installation","\u002Fgetting-started\u002Finstallation","01.getting-started\u002F2.installation",{"title":19,"path":20,"stem":21},"Quick Start","\u002Fgetting-started\u002Fquick-start","01.getting-started\u002F3.quick-start",{"title":23,"path":24,"stem":25},"Comparison","\u002Fgetting-started\u002Fcomparison","01.getting-started\u002F4.comparison",false,{"title":28,"icon":29,"path":30,"stem":31,"children":32,"page":26},"Core Concepts","i-lucide-layers","\u002Fcore-concepts","02.core-concepts",[33,37,41],{"title":34,"path":35,"stem":36},"Schema Modes","\u002Fcore-concepts\u002Fschema-modes","02.core-concepts\u002F1.schema-modes",{"title":38,"path":39,"stem":40},"Schema Context","\u002Fcore-concepts\u002Fschema-context","02.core-concepts\u002F2.schema-context",{"title":42,"path":43,"stem":44},"Execution Model","\u002Fcore-concepts\u002Fexecution-model","02.core-concepts\u002F3.execution-model",{"title":46,"icon":47,"path":48,"stem":49,"children":50,"page":26},"Columns","i-lucide-table-2","\u002Fcolumns","03.columns",[51,55,59,63,67,71,75],{"title":52,"path":53,"stem":54},"Defining Columns","\u002Fcolumns\u002Fdefining-columns","03.columns\u002F1.defining-columns",{"title":56,"path":57,"stem":58},"Column Groups","\u002Fcolumns\u002Fcolumn-groups","03.columns\u002F2.column-groups",{"title":60,"path":61,"stem":62},"Dynamic Columns","\u002Fcolumns\u002Fdynamic-columns","03.columns\u002F3.dynamic-columns",{"title":64,"path":65,"stem":66},"Column Selection","\u002Fcolumns\u002Fcolumn-selection","03.columns\u002F4.column-selection",{"title":68,"path":69,"stem":70},"Summary Rows","\u002Fcolumns\u002Fsummary-rows","03.columns\u002F5.summary-rows",{"title":72,"path":73,"stem":74},"Data Validation","\u002Fcolumns\u002Fdata-validation","03.columns\u002F6.data-validation",{"title":76,"path":77,"stem":78},"Hyperlinks","\u002Fcolumns\u002Fhyperlinks","03.columns\u002F7.hyperlinks",{"title":80,"icon":81,"path":82,"stem":83,"children":84,"page":26},"Styling","i-lucide-palette","\u002Fstyling","04.styling",[85,89,93,97],{"title":86,"path":87,"stem":88},"Themes","\u002Fstyling\u002Fthemes","04.styling\u002F1.themes",{"title":90,"path":91,"stem":92},"Cell Styles","\u002Fstyling\u002Fcell-styles","04.styling\u002F2.cell-styles",{"title":94,"path":95,"stem":96},"Dynamic Styles","\u002Fstyling\u002Fdynamic-styles","04.styling\u002F3.dynamic-styles",{"title":98,"path":99,"stem":100},"Conditional Styles","\u002Fstyling\u002Fconditional-styles","04.styling\u002F4.conditional-styles",{"title":102,"icon":103,"path":104,"stem":105,"children":106,"page":26},"Formulas","i-lucide-function-square","\u002Fformulas","05.formulas",[107,111,115,119],{"title":108,"path":109,"stem":110},"Formula Columns","\u002Fformulas\u002Fformula-columns","05.formulas\u002F1.formula-columns",{"title":112,"path":113,"stem":114},"Row Model","\u002Fformulas\u002Frow-model","05.formulas\u002F2.row-model",{"title":116,"path":117,"stem":118},"Summary Formulas","\u002Fformulas\u002Fsummary-formulas","05.formulas\u002F3.summary-formulas",{"title":120,"path":121,"stem":122},"Scope & References","\u002Fformulas\u002Fscope-and-references","05.formulas\u002F4.scope-and-references",{"title":124,"icon":125,"path":126,"stem":127,"children":128,"page":26},"Excel Tables","i-lucide-table","\u002Fexcel-tables","06.excel-tables",[129,133,137],{"title":130,"path":131,"stem":132},"Table Mode","\u002Fexcel-tables\u002Ftable-mode","06.excel-tables\u002F1.table-mode",{"title":134,"path":135,"stem":136},"Table Styles","\u002Fexcel-tables\u002Ftable-styles","06.excel-tables\u002F2.table-styles",{"title":138,"path":139,"stem":140},"Totals Row","\u002Fexcel-tables\u002Ftotals-row","06.excel-tables\u002F3.totals-row",{"title":142,"icon":143,"path":144,"stem":145,"children":146,"page":26},"Workbook","i-lucide-book-open","\u002Fworkbook","07.workbook",[147,151,155],{"title":148,"path":149,"stem":150},"Building Workbooks","\u002Fworkbook\u002Fbuilding-workbooks","07.workbook\u002F1.building-workbooks",{"title":152,"path":153,"stem":154},"Sheet Options","\u002Fworkbook\u002Fsheet-options","07.workbook\u002F2.sheet-options",{"title":156,"path":157,"stem":158},"Protection","\u002Fworkbook\u002Fprotection","07.workbook\u002F3.protection",{"title":160,"icon":161,"path":162,"stem":163,"children":164,"page":26},"Streaming","i-lucide-waves","\u002Fstreaming","08.streaming",[165,169,173,177],{"title":166,"path":167,"stem":168},"Streaming Intro","\u002Fstreaming\u002Fstreaming-intro","08.streaming\u002F1.streaming-intro",{"title":170,"path":171,"stem":172},"Output Targets","\u002Fstreaming\u002Foutput-targets","08.streaming\u002F2.output-targets",{"title":174,"path":175,"stem":176},"Memory Tuning","\u002Fstreaming\u002Fmemory-tuning","08.streaming\u002F3.memory-tuning",{"title":178,"path":179,"stem":180},"Stream Examples","\u002Fstreaming\u002Fstream-examples","08.streaming\u002F4.stream-examples",{"title":182,"icon":183,"path":184,"stem":185,"children":186,"page":26},"Migration","i-lucide-arrow-right-left","\u002Fmigration","12.migration",[187,191,195],{"title":188,"path":189,"stem":190},"v0 → v1","\u002Fmigration\u002Fv0-to-v1","12.migration\u002F1.v0-to-v1",{"title":192,"path":193,"stem":194},"v1 → v2","\u002Fmigration\u002Fv1-to-v2","12.migration\u002F2.v1-to-v2",{"title":196,"path":197,"stem":198},"v2 → typed-xlsx","\u002Fmigration\u002Fv2-to-typed-xlsx","12.migration\u002F3.v2-to-typed-xlsx",{"id":200,"title":192,"body":201,"description":4227,"extension":4228,"links":4229,"meta":4230,"navigation":273,"path":193,"seo":4231,"stem":194,"__hash__":4232},"docs\u002F12.migration\u002F2.v1-to-v2.md",{"type":202,"value":203,"toc":4211},"minimark",[204,208,211,216,219,321,324,423,430,432,436,439,442,720,723,812,826,828,832,845,848,1183,1186,1219,1227,1229,1233,1239,1245,1376,1381,1491,1493,1497,1504,1511,2020,2037,2039,2043,2046,2404,2407,2514,2516,2519,2522,2705,2707,2711,2714,2719,2775,2780,2856,2861,3016,3018,3022,3029,3193,3195,3199,3202,3813,3815,3819,3822,3872,3875,3877,3881,3888,3890,3894,3960,3962,3966,4208],[205,206,207],"p",{},"v2 is not a rewrite — the core schema\u002Fworkbook model from v1 is untouched. Instead v2 extends the engine with native Excel features: live formulas, Excel tables, conditional formatting, data validation, hyperlinks, and worksheet\u002Fworkbook protection. Most v1 code runs on v2 without changes. This page covers the conceptual shifts, new APIs to adopt, and practical constraints to be aware of.",[209,210],"hr",{},[212,213,215],"h2",{"id":214},"schema-mode-is-now-an-explicit-choice","Schema mode is now an explicit choice",[205,217,218],{},"v1 schemas always emitted styled worksheet ranges (report mode). v2 adds a second mode: native Excel tables.",[220,221,226],"pre",{"className":222,"code":223,"language":224,"meta":225,"style":225},"language-ts shiki shiki-themes vitesse-light vitesse-light vitesse-dark","\u002F\u002F v1 — implicit report mode (still works in v2)\ncreateExcelSchema\u003CRow>().column(...).build()\n\n\u002F\u002F v2 — explicit excel-table mode\ncreateExcelSchema\u003CRow>({ mode: \"excel-table\" }).column(...).build()\n","ts","",[227,228,229,238,268,275,281],"code",{"__ignoreMap":225},[230,231,234],"span",{"class":232,"line":233},"line",1,[230,235,237],{"class":236},"syVH9","\u002F\u002F v1 — implicit report mode (still works in v2)\n",[230,239,241,245,249,253,256,259,262,265],{"class":232,"line":240},2,[230,242,244],{"class":243},"skGA_","createExcelSchema",[230,246,248],{"class":247},"so0ae","\u003C",[230,250,252],{"class":251},"sEy5d","Row",[230,254,255],{"class":247},">().",[230,257,258],{"class":243},"column",[230,260,261],{"class":247},"(...).",[230,263,264],{"class":243},"build",[230,266,267],{"class":247},"()\n",[230,269,271],{"class":232,"line":270},3,[230,272,274],{"emptyLinePlaceholder":273},true,"\n",[230,276,278],{"class":232,"line":277},4,[230,279,280],{"class":236},"\u002F\u002F v2 — explicit excel-table mode\n",[230,282,284,286,288,290,293,297,300,304,308,310,313,315,317,319],{"class":232,"line":283},5,[230,285,244],{"class":243},[230,287,248],{"class":247},[230,289,252],{"class":251},[230,291,292],{"class":247},">({ ",[230,294,296],{"class":295},"sJWN2","mode",[230,298,299],{"class":247},": ",[230,301,303],{"class":302},"sb0JU","\"",[230,305,307],{"class":306},"scWd0","excel-table",[230,309,303],{"class":302},[230,311,312],{"class":247}," }).",[230,314,258],{"class":243},[230,316,261],{"class":247},[230,318,264],{"class":243},[230,320,267],{"class":247},[205,322,323],{},"Both modes share the same column\u002Fgroup\u002Fsummary builder. The difference is in what the engine emits:",[325,326,327,343],"table",{},[328,329,330],"thead",{},[331,332,333,337,340],"tr",{},[334,335,336],"th",{},"Concern",[334,338,339],{},"Report mode",[334,341,342],{},"Excel-table mode",[344,345,346,362,380,391,402],"tbody",{},[331,347,348,352,355],{},[349,350,351],"td",{},"Output",[349,353,354],{},"Styled worksheet range",[349,356,357,358,361],{},"Native OOXML ",[227,359,360],{},"\u003Ctable>"," object",[331,363,364,367,374],{},[349,365,366],{},"Formula refs",[349,368,369,370,373],{},"A1-style (",[227,371,372],{},"=C2*D2",")",[349,375,376,377,373],{},"Structured refs (",[227,378,379],{},"=[@[Qty]]*[@[Unit Price]]",[331,381,382,385,388],{},[349,383,384],{},"autoFilter",[349,386,387],{},"Opt-in",[349,389,390],{},"On by default",[331,392,393,396,399],{},[349,394,395],{},"Sub-row expansion",[349,397,398],{},"Supported",[349,400,401],{},"Not supported",[331,403,404,407,413],{},[349,405,406],{},"Summary rows",[349,408,409,412],{},[227,410,411],{},"summary()"," on columns",[349,414,415,418,419,422],{},[227,416,417],{},"totalsRow"," on columns + ",[227,420,421],{},"totalsRow: true"," on table",[205,424,425,426,429],{},"If your v1 schemas do not use ",[227,427,428],{},"{ mode: \"excel-table\" }",", they behave identically to before.",[209,431],{},[212,433,435],{"id":434},"formulas-replace-precomputed-values","Formulas replace precomputed values",[205,437,438],{},"v1 had no formula API. Computed columns required resolving values in JavaScript before export.",[205,440,441],{},"v2 adds a typed formula DSL that emits live Excel formulas.",[220,443,445],{"className":222,"code":444,"language":224,"meta":225,"style":225},"\u002F\u002F v1 — precompute in JS\n.column(\"net\", {\n  accessor: (row) => row.contractValue * (1 - row.discountPct),\n  style: { numFmt: '\"$\"#,##0.00' },\n})\n\n\u002F\u002F v2 — live Excel formula\n.column(\"net\", {\n  formula: ({ row, refs, fx }) =>\n    fx.round(\n      refs.column(\"contractValue\").mul(fx.literal(1).sub(refs.column(\"discountPct\"))),\n      2,\n    ),\n  style: { numFmt: '\"$\"#,##0.00' },\n})\n",[227,446,447,452,475,522,546,551,556,562,581,606,620,681,690,696,715],{"__ignoreMap":225},[230,448,449],{"class":232,"line":233},[230,450,451],{"class":236},"\u002F\u002F v1 — precompute in JS\n",[230,453,454,457,459,462,464,467,469,472],{"class":232,"line":240},[230,455,456],{"class":247},".",[230,458,258],{"class":243},[230,460,461],{"class":247},"(",[230,463,303],{"class":302},[230,465,466],{"class":306},"net",[230,468,303],{"class":302},[230,470,471],{"class":247},",",[230,473,474],{"class":247}," {\n",[230,476,477,480,483,487,490,492,494,497,501,504,508,511,514,516,519],{"class":232,"line":270},[230,478,479],{"class":243},"  accessor",[230,481,482],{"class":247},": (",[230,484,486],{"class":485},"svjTx","row",[230,488,489],{"class":247},") => ",[230,491,486],{"class":485},[230,493,456],{"class":247},[230,495,496],{"class":485},"contractValue",[230,498,500],{"class":499},"sjWS2"," *",[230,502,503],{"class":247}," (",[230,505,507],{"class":506},"syQuE","1",[230,509,510],{"class":499}," -",[230,512,513],{"class":485}," row",[230,515,456],{"class":247},[230,517,518],{"class":485},"discountPct",[230,520,521],{"class":247},"),\n",[230,523,524,527,530,533,535,538,541,543],{"class":232,"line":277},[230,525,526],{"class":295},"  style",[230,528,529],{"class":247},": { ",[230,531,532],{"class":295},"numFmt",[230,534,299],{"class":247},[230,536,537],{"class":302},"'",[230,539,540],{"class":306},"\"$\"#,##0.00",[230,542,537],{"class":302},[230,544,545],{"class":247}," },\n",[230,547,548],{"class":232,"line":283},[230,549,550],{"class":247},"})\n",[230,552,554],{"class":232,"line":553},6,[230,555,274],{"emptyLinePlaceholder":273},[230,557,559],{"class":232,"line":558},7,[230,560,561],{"class":236},"\u002F\u002F v2 — live Excel formula\n",[230,563,565,567,569,571,573,575,577,579],{"class":232,"line":564},8,[230,566,456],{"class":247},[230,568,258],{"class":243},[230,570,461],{"class":247},[230,572,303],{"class":302},[230,574,466],{"class":306},[230,576,303],{"class":302},[230,578,471],{"class":247},[230,580,474],{"class":247},[230,582,584,587,590,592,595,598,600,603],{"class":232,"line":583},9,[230,585,586],{"class":243},"  formula",[230,588,589],{"class":247},": ({ ",[230,591,486],{"class":485},[230,593,594],{"class":247},", ",[230,596,597],{"class":485},"refs",[230,599,594],{"class":247},[230,601,602],{"class":485},"fx",[230,604,605],{"class":247}," }) =>\n",[230,607,609,612,614,617],{"class":232,"line":608},10,[230,610,611],{"class":485},"    fx",[230,613,456],{"class":247},[230,615,616],{"class":243},"round",[230,618,619],{"class":247},"(\n",[230,621,623,626,628,630,632,634,636,638,641,644,646,648,650,653,655,657,659,662,664,666,668,670,672,674,676,678],{"class":232,"line":622},11,[230,624,625],{"class":485},"      refs",[230,627,456],{"class":247},[230,629,258],{"class":243},[230,631,461],{"class":247},[230,633,303],{"class":302},[230,635,496],{"class":306},[230,637,303],{"class":302},[230,639,640],{"class":247},").",[230,642,643],{"class":243},"mul",[230,645,461],{"class":247},[230,647,602],{"class":485},[230,649,456],{"class":247},[230,651,652],{"class":243},"literal",[230,654,461],{"class":247},[230,656,507],{"class":506},[230,658,640],{"class":247},[230,660,661],{"class":243},"sub",[230,663,461],{"class":247},[230,665,597],{"class":485},[230,667,456],{"class":247},[230,669,258],{"class":243},[230,671,461],{"class":247},[230,673,303],{"class":302},[230,675,518],{"class":306},[230,677,303],{"class":302},[230,679,680],{"class":247},"))),\n",[230,682,684,687],{"class":232,"line":683},12,[230,685,686],{"class":506},"      2",[230,688,689],{"class":247},",\n",[230,691,693],{"class":232,"line":692},13,[230,694,695],{"class":247},"    ),\n",[230,697,699,701,703,705,707,709,711,713],{"class":232,"line":698},14,[230,700,526],{"class":295},[230,702,529],{"class":247},[230,704,532],{"class":295},[230,706,299],{"class":247},[230,708,537],{"class":302},[230,710,540],{"class":306},[230,712,537],{"class":302},[230,714,545],{"class":247},[230,716,718],{"class":232,"line":717},15,[230,719,550],{"class":247},[205,721,722],{},"Key APIs:",[325,724,725,735],{},[328,726,727],{},[331,728,729,732],{},[334,730,731],{},"API",[334,733,734],{},"Purpose",[344,736,737,747,757,771,802],{},[331,738,739,744],{},[349,740,741],{},[227,742,743],{},"refs.column(\"columnId\")",[349,745,746],{},"Reference the current row's cell for a preceding column",[331,748,749,754],{},[349,750,751],{},[227,752,753],{},"row.series(\"columnId\")",[349,755,756],{},"Reference the full expanded range of a column within the current logical row (report mode)",[331,758,759,768],{},[349,760,761,764,765],{},[227,762,763],{},"fx.sum(refs.group(\"groupId\"))"," \u002F ",[227,766,767],{},"fx.sum(refs.dynamic(\"dynamicId\"))",[349,769,770],{},"Aggregate all columns in a structural group or dynamic scope",[331,772,773,799],{},[349,774,775,594,778,594,781,594,784,594,787,594,790,594,793,594,796],{},[227,776,777],{},"fx.round",[227,779,780],{},"fx.abs",[227,782,783],{},"fx.if",[227,785,786],{},"fx.and",[227,788,789],{},"fx.or",[227,791,792],{},"fx.not",[227,794,795],{},"fx.min",[227,797,798],{},"fx.max",[349,800,801],{},"Reusable formula helpers",[331,803,804,809],{},[349,805,806],{},[227,807,808],{},"fx.literal(n)",[349,810,811],{},"Wrap a constant value for use in formula chains",[205,813,814,815,818,819,822,823,825],{},"Formula columns with ",[227,816,817],{},"accessor"," still work, but ",[227,820,821],{},"formula"," and ",[227,824,817],{}," are mutually exclusive on a single column.",[209,827],{},[212,829,831],{"id":830},"summary-rows-can-now-be-live-formulas","Summary rows can now be live formulas",[205,833,834,835,764,838,764,841,844],{},"v1 summaries used a JS reducer (",[227,836,837],{},"init",[227,839,840],{},"step",[227,842,843],{},"finalize","). That still works.",[205,846,847],{},"v2 adds formula-based summaries that emit live Excel formulas in the summary row.",[220,849,851],{"className":222,"code":850,"language":224,"meta":225,"style":225},"\u002F\u002F v1 — JS reducer (still works in v2)\nsummary: (s) => [\n  s.cell({\n    init: () => 0,\n    step: (acc, row) => acc + row.revenue,\n    finalize: (acc) => acc,\n    style: { numFmt: '\"$\"#,##0.00' },\n  }),\n];\n\n\u002F\u002F v2 — live formula summary\nsummary: (s) => [\n  s.formula(\"sum\", {\n    style: { numFmt: '\"$\"#,##0.00', font: { bold: true } },\n  }),\n];\n\n\u002F\u002F v2 — custom formula summary\nsummary: (s) => [\n  s.formula(({ column, fx }) => fx.round(column.cells().average(), 2), {\n    style: { numFmt: '\"$\"#,##0.00' },\n  }),\n];\n",[227,852,853,858,879,892,905,935,950,969,974,979,983,988,1004,1025,1060,1064,1069,1074,1080,1097,1154,1173,1178],{"__ignoreMap":225},[230,854,855],{"class":232,"line":233},[230,856,857],{"class":236},"\u002F\u002F v1 — JS reducer (still works in v2)\n",[230,859,860,863,866,868,871,873,876],{"class":232,"line":240},[230,861,862],{"class":243},"summary",[230,864,865],{"class":247},":",[230,867,503],{"class":247},[230,869,870],{"class":485},"s",[230,872,373],{"class":247},[230,874,875],{"class":247}," =>",[230,877,878],{"class":247}," [\n",[230,880,881,884,886,889],{"class":232,"line":270},[230,882,883],{"class":485},"  s",[230,885,456],{"class":247},[230,887,888],{"class":243},"cell",[230,890,891],{"class":247},"({\n",[230,893,894,897,900,903],{"class":232,"line":277},[230,895,896],{"class":243},"    init",[230,898,899],{"class":247},": () => ",[230,901,902],{"class":506},"0",[230,904,689],{"class":247},[230,906,907,910,912,915,917,919,921,923,926,928,930,933],{"class":232,"line":283},[230,908,909],{"class":243},"    step",[230,911,482],{"class":247},[230,913,914],{"class":485},"acc",[230,916,594],{"class":247},[230,918,486],{"class":485},[230,920,489],{"class":247},[230,922,914],{"class":485},[230,924,925],{"class":499}," +",[230,927,513],{"class":485},[230,929,456],{"class":247},[230,931,932],{"class":485},"revenue",[230,934,689],{"class":247},[230,936,937,940,942,944,946,948],{"class":232,"line":553},[230,938,939],{"class":243},"    finalize",[230,941,482],{"class":247},[230,943,914],{"class":485},[230,945,489],{"class":247},[230,947,914],{"class":485},[230,949,689],{"class":247},[230,951,952,955,957,959,961,963,965,967],{"class":232,"line":558},[230,953,954],{"class":295},"    style",[230,956,529],{"class":247},[230,958,532],{"class":295},[230,960,299],{"class":247},[230,962,537],{"class":302},[230,964,540],{"class":306},[230,966,537],{"class":302},[230,968,545],{"class":247},[230,970,971],{"class":232,"line":564},[230,972,973],{"class":247},"  }),\n",[230,975,976],{"class":232,"line":583},[230,977,978],{"class":247},"];\n",[230,980,981],{"class":232,"line":608},[230,982,274],{"emptyLinePlaceholder":273},[230,984,985],{"class":232,"line":622},[230,986,987],{"class":236},"\u002F\u002F v2 — live formula summary\n",[230,989,990,992,994,996,998,1000,1002],{"class":232,"line":683},[230,991,862],{"class":243},[230,993,865],{"class":247},[230,995,503],{"class":247},[230,997,870],{"class":485},[230,999,373],{"class":247},[230,1001,875],{"class":247},[230,1003,878],{"class":247},[230,1005,1006,1008,1010,1012,1014,1016,1019,1021,1023],{"class":232,"line":692},[230,1007,883],{"class":485},[230,1009,456],{"class":247},[230,1011,821],{"class":243},[230,1013,461],{"class":247},[230,1015,303],{"class":302},[230,1017,1018],{"class":306},"sum",[230,1020,303],{"class":302},[230,1022,471],{"class":247},[230,1024,474],{"class":247},[230,1026,1027,1029,1031,1033,1035,1037,1039,1041,1043,1046,1048,1051,1053,1057],{"class":232,"line":698},[230,1028,954],{"class":295},[230,1030,529],{"class":247},[230,1032,532],{"class":295},[230,1034,299],{"class":247},[230,1036,537],{"class":302},[230,1038,540],{"class":306},[230,1040,537],{"class":302},[230,1042,594],{"class":247},[230,1044,1045],{"class":295},"font",[230,1047,529],{"class":247},[230,1049,1050],{"class":295},"bold",[230,1052,299],{"class":247},[230,1054,1056],{"class":1055},"ssIE9","true",[230,1058,1059],{"class":247}," } },\n",[230,1061,1062],{"class":232,"line":717},[230,1063,973],{"class":247},[230,1065,1067],{"class":232,"line":1066},16,[230,1068,978],{"class":247},[230,1070,1072],{"class":232,"line":1071},17,[230,1073,274],{"emptyLinePlaceholder":273},[230,1075,1077],{"class":232,"line":1076},18,[230,1078,1079],{"class":236},"\u002F\u002F v2 — custom formula summary\n",[230,1081,1083,1085,1087,1089,1091,1093,1095],{"class":232,"line":1082},19,[230,1084,862],{"class":243},[230,1086,865],{"class":247},[230,1088,503],{"class":247},[230,1090,870],{"class":485},[230,1092,373],{"class":247},[230,1094,875],{"class":247},[230,1096,878],{"class":247},[230,1098,1100,1102,1104,1106,1109,1112,1114,1117,1120,1122,1124,1126,1128,1130,1132,1134,1137,1140,1143,1146,1149,1152],{"class":232,"line":1099},20,[230,1101,883],{"class":485},[230,1103,456],{"class":247},[230,1105,821],{"class":243},[230,1107,1108],{"class":247},"(({",[230,1110,1111],{"class":485}," column",[230,1113,471],{"class":247},[230,1115,1116],{"class":485}," fx",[230,1118,1119],{"class":247}," })",[230,1121,875],{"class":247},[230,1123,1116],{"class":485},[230,1125,456],{"class":247},[230,1127,616],{"class":243},[230,1129,461],{"class":247},[230,1131,258],{"class":485},[230,1133,456],{"class":247},[230,1135,1136],{"class":243},"cells",[230,1138,1139],{"class":247},"().",[230,1141,1142],{"class":243},"average",[230,1144,1145],{"class":247},"(),",[230,1147,1148],{"class":506}," 2",[230,1150,1151],{"class":247},"),",[230,1153,474],{"class":247},[230,1155,1157,1159,1161,1163,1165,1167,1169,1171],{"class":232,"line":1156},21,[230,1158,954],{"class":295},[230,1160,529],{"class":247},[230,1162,532],{"class":295},[230,1164,299],{"class":247},[230,1166,537],{"class":302},[230,1168,540],{"class":306},[230,1170,537],{"class":302},[230,1172,545],{"class":247},[230,1174,1176],{"class":232,"line":1175},22,[230,1177,973],{"class":247},[230,1179,1181],{"class":232,"line":1180},23,[230,1182,978],{"class":247},[205,1184,1185],{},"Formula summaries also understand logical vs physical rows:",[325,1187,1188,1197],{},[328,1189,1190],{},[331,1191,1192,1194],{},[334,1193,731],{},[334,1195,1196],{},"Meaning",[344,1198,1199,1209],{},[331,1200,1201,1206],{},[349,1202,1203],{},[227,1204,1205],{},"column.cells()",[349,1207,1208],{},"Aggregates physical worksheet cells",[331,1210,1211,1216],{},[349,1212,1213],{},[227,1214,1215],{},"column.rows()",[349,1217,1218],{},"Aggregates logical source rows (relevant when sub-row expansion is used)",[1220,1221,1223,1224,1226],"callout",{"type":1222},"info","Formula summaries are report-mode only. In excel-table mode, use ",[227,1225,417],{}," on columns instead.",[209,1228],{},[212,1230,1232],{"id":1231},"excel-table-mode-new-column-and-table-options","Excel-table mode — new column and table options",[205,1234,1235,1236,1238],{},"If you adopt ",[227,1237,428],{},", these options become available:",[205,1240,1241],{},[1242,1243,1244],"strong",{},"On columns:",[220,1246,1248],{"className":222,"code":1247,"language":224,"meta":225,"style":225},".column(\"units\", {\n  accessor: \"units\",\n  totalsRow: { function: \"sum\" },    \u002F\u002F native totals row aggregate\n})\n\n.column(\"label\", {\n  accessor: \"rep\",\n  totalsRow: { label: \"TOTAL\" },     \u002F\u002F static label in totals row\n})\n",[227,1249,1250,1269,1283,1307,1311,1315,1334,1349,1372],{"__ignoreMap":225},[230,1251,1252,1254,1256,1258,1260,1263,1265,1267],{"class":232,"line":233},[230,1253,456],{"class":247},[230,1255,258],{"class":243},[230,1257,461],{"class":247},[230,1259,303],{"class":302},[230,1261,1262],{"class":306},"units",[230,1264,303],{"class":302},[230,1266,471],{"class":247},[230,1268,474],{"class":247},[230,1270,1271,1273,1275,1277,1279,1281],{"class":232,"line":240},[230,1272,479],{"class":295},[230,1274,299],{"class":247},[230,1276,303],{"class":302},[230,1278,1262],{"class":306},[230,1280,303],{"class":302},[230,1282,689],{"class":247},[230,1284,1285,1288,1290,1293,1295,1297,1299,1301,1304],{"class":232,"line":270},[230,1286,1287],{"class":295},"  totalsRow",[230,1289,529],{"class":247},[230,1291,1292],{"class":295},"function",[230,1294,299],{"class":247},[230,1296,303],{"class":302},[230,1298,1018],{"class":306},[230,1300,303],{"class":302},[230,1302,1303],{"class":247}," },    ",[230,1305,1306],{"class":236},"\u002F\u002F native totals row aggregate\n",[230,1308,1309],{"class":232,"line":277},[230,1310,550],{"class":247},[230,1312,1313],{"class":232,"line":283},[230,1314,274],{"emptyLinePlaceholder":273},[230,1316,1317,1319,1321,1323,1325,1328,1330,1332],{"class":232,"line":553},[230,1318,456],{"class":247},[230,1320,258],{"class":243},[230,1322,461],{"class":247},[230,1324,303],{"class":302},[230,1326,1327],{"class":306},"label",[230,1329,303],{"class":302},[230,1331,471],{"class":247},[230,1333,474],{"class":247},[230,1335,1336,1338,1340,1342,1345,1347],{"class":232,"line":558},[230,1337,479],{"class":295},[230,1339,299],{"class":247},[230,1341,303],{"class":302},[230,1343,1344],{"class":306},"rep",[230,1346,303],{"class":302},[230,1348,689],{"class":247},[230,1350,1351,1353,1355,1357,1359,1361,1364,1366,1369],{"class":232,"line":564},[230,1352,1287],{"class":295},[230,1354,529],{"class":247},[230,1356,1327],{"class":295},[230,1358,299],{"class":247},[230,1360,303],{"class":302},[230,1362,1363],{"class":306},"TOTAL",[230,1365,303],{"class":302},[230,1367,1368],{"class":247}," },     ",[230,1370,1371],{"class":236},"\u002F\u002F static label in totals row\n",[230,1373,1374],{"class":232,"line":583},[230,1375,550],{"class":247},[205,1377,1378],{},[1242,1379,1380],{},"On table input:",[220,1382,1384],{"className":222,"code":1383,"language":224,"meta":225,"style":225},".table(\"forecast\", {\n  schema,\n  rows,\n  name: \"ForecastTable\",             \u002F\u002F native table name\n  style: \"TableStyleMedium2\",        \u002F\u002F native table style\n  totalsRow: true,                   \u002F\u002F enable totals row\n  autoFilter: true,                  \u002F\u002F on by default, can opt out\n})\n",[227,1385,1386,1405,1412,1419,1439,1458,1472,1487],{"__ignoreMap":225},[230,1387,1388,1390,1392,1394,1396,1399,1401,1403],{"class":232,"line":233},[230,1389,456],{"class":247},[230,1391,325],{"class":243},[230,1393,461],{"class":247},[230,1395,303],{"class":302},[230,1397,1398],{"class":306},"forecast",[230,1400,303],{"class":302},[230,1402,471],{"class":247},[230,1404,474],{"class":247},[230,1406,1407,1410],{"class":232,"line":240},[230,1408,1409],{"class":485},"  schema",[230,1411,689],{"class":247},[230,1413,1414,1417],{"class":232,"line":270},[230,1415,1416],{"class":485},"  rows",[230,1418,689],{"class":247},[230,1420,1421,1424,1426,1428,1431,1433,1436],{"class":232,"line":277},[230,1422,1423],{"class":295},"  name",[230,1425,299],{"class":247},[230,1427,303],{"class":302},[230,1429,1430],{"class":306},"ForecastTable",[230,1432,303],{"class":302},[230,1434,1435],{"class":247},",             ",[230,1437,1438],{"class":236},"\u002F\u002F native table name\n",[230,1440,1441,1443,1445,1447,1450,1452,1455],{"class":232,"line":283},[230,1442,526],{"class":295},[230,1444,299],{"class":247},[230,1446,303],{"class":302},[230,1448,1449],{"class":306},"TableStyleMedium2",[230,1451,303],{"class":302},[230,1453,1454],{"class":247},",        ",[230,1456,1457],{"class":236},"\u002F\u002F native table style\n",[230,1459,1460,1462,1464,1466,1469],{"class":232,"line":553},[230,1461,1287],{"class":295},[230,1463,299],{"class":247},[230,1465,1056],{"class":1055},[230,1467,1468],{"class":247},",                   ",[230,1470,1471],{"class":236},"\u002F\u002F enable totals row\n",[230,1473,1474,1477,1479,1481,1484],{"class":232,"line":558},[230,1475,1476],{"class":295},"  autoFilter",[230,1478,299],{"class":247},[230,1480,1056],{"class":1055},[230,1482,1483],{"class":247},",                  ",[230,1485,1486],{"class":236},"\u002F\u002F on by default, can opt out\n",[230,1488,1489],{"class":232,"line":564},[230,1490,550],{"class":247},[209,1492],{},[212,1494,1496],{"id":1495},"conditional-styling-native-excel-conditional-formatting","Conditional styling — native Excel conditional formatting",[205,1498,1499,1500,1503],{},"v1 had ",[227,1501,1502],{},"dynamicStyle",", which resolved styles once during export. That still works.",[205,1505,1506,1507,1510],{},"v2 adds ",[227,1508,1509],{},"conditionalStyle",", which emits native Excel conditional formatting rules that stay reactive after export.",[220,1512,1514],{"className":222,"code":1513,"language":224,"meta":225,"style":225},"\u002F\u002F v1 — resolved once during export (still works in v2)\n.column(\"amount\", {\n  accessor: \"amount\",\n  dynamicStyle: (row) =>\n    row.amount > 10000\n      ? { font: { bold: true } }\n      : undefined,\n})\n\n\u002F\u002F v2 — native Excel conditional formatting (live in Excel)\n.column(\"attainment\", {\n  formula: ({ row, refs, fx }) => fx.safeDiv(refs.column(\"amount\"), refs.column(\"quota\")),\n  style: { numFmt: \"0.0%\" },\n  conditionalStyle: (conditional) =>\n    conditional\n      .when(({ row, refs }) => refs.column(\"attainment\").lt(0.5), {\n        fill: { color: { rgb: \"FEE2E2\" } },\n        font: { color: { rgb: \"991B1B\" }, bold: true },\n      })\n      .when(({ row, refs, fx }) =>\n        fx.and(refs.column(\"attainment\").gte(1), refs.column(\"status\").eq(\"won\")),\n        {\n          fill: { color: { rgb: \"DCFCE7\" } },\n          font: { color: { rgb: \"166534\" }, bold: true },\n        },\n      ),\n})\n",[227,1515,1516,1521,1540,1554,1566,1581,1602,1612,1616,1620,1625,1644,1707,1726,1738,1743,1789,1815,1848,1853,1873,1941,1946,1970,2003,2009,2015],{"__ignoreMap":225},[230,1517,1518],{"class":232,"line":233},[230,1519,1520],{"class":236},"\u002F\u002F v1 — resolved once during export (still works in v2)\n",[230,1522,1523,1525,1527,1529,1531,1534,1536,1538],{"class":232,"line":240},[230,1524,456],{"class":247},[230,1526,258],{"class":243},[230,1528,461],{"class":247},[230,1530,303],{"class":302},[230,1532,1533],{"class":306},"amount",[230,1535,303],{"class":302},[230,1537,471],{"class":247},[230,1539,474],{"class":247},[230,1541,1542,1544,1546,1548,1550,1552],{"class":232,"line":270},[230,1543,479],{"class":295},[230,1545,299],{"class":247},[230,1547,303],{"class":302},[230,1549,1533],{"class":306},[230,1551,303],{"class":302},[230,1553,689],{"class":247},[230,1555,1556,1559,1561,1563],{"class":232,"line":277},[230,1557,1558],{"class":243},"  dynamicStyle",[230,1560,482],{"class":247},[230,1562,486],{"class":485},[230,1564,1565],{"class":247},") =>\n",[230,1567,1568,1571,1573,1575,1578],{"class":232,"line":283},[230,1569,1570],{"class":485},"    row",[230,1572,456],{"class":247},[230,1574,1533],{"class":485},[230,1576,1577],{"class":247}," > ",[230,1579,1580],{"class":506},"10000\n",[230,1582,1583,1586,1589,1591,1593,1595,1597,1599],{"class":232,"line":553},[230,1584,1585],{"class":499},"      ?",[230,1587,1588],{"class":247}," { ",[230,1590,1045],{"class":295},[230,1592,529],{"class":247},[230,1594,1050],{"class":295},[230,1596,299],{"class":247},[230,1598,1056],{"class":1055},[230,1600,1601],{"class":247}," } }\n",[230,1603,1604,1607,1610],{"class":232,"line":558},[230,1605,1606],{"class":499},"      :",[230,1608,1609],{"class":499}," undefined",[230,1611,689],{"class":247},[230,1613,1614],{"class":232,"line":564},[230,1615,550],{"class":247},[230,1617,1618],{"class":232,"line":583},[230,1619,274],{"emptyLinePlaceholder":273},[230,1621,1622],{"class":232,"line":608},[230,1623,1624],{"class":236},"\u002F\u002F v2 — native Excel conditional formatting (live in Excel)\n",[230,1626,1627,1629,1631,1633,1635,1638,1640,1642],{"class":232,"line":622},[230,1628,456],{"class":247},[230,1630,258],{"class":243},[230,1632,461],{"class":247},[230,1634,303],{"class":302},[230,1636,1637],{"class":306},"attainment",[230,1639,303],{"class":302},[230,1641,471],{"class":247},[230,1643,474],{"class":247},[230,1645,1646,1648,1650,1652,1654,1656,1658,1660,1663,1665,1667,1670,1672,1674,1676,1678,1680,1682,1684,1686,1689,1691,1693,1695,1697,1699,1702,1704],{"class":232,"line":683},[230,1647,586],{"class":243},[230,1649,589],{"class":247},[230,1651,486],{"class":485},[230,1653,594],{"class":247},[230,1655,597],{"class":485},[230,1657,594],{"class":247},[230,1659,602],{"class":485},[230,1661,1662],{"class":247}," }) => ",[230,1664,602],{"class":485},[230,1666,456],{"class":247},[230,1668,1669],{"class":243},"safeDiv",[230,1671,461],{"class":247},[230,1673,597],{"class":485},[230,1675,456],{"class":247},[230,1677,258],{"class":243},[230,1679,461],{"class":247},[230,1681,303],{"class":302},[230,1683,1533],{"class":306},[230,1685,303],{"class":302},[230,1687,1688],{"class":247},"), ",[230,1690,597],{"class":485},[230,1692,456],{"class":247},[230,1694,258],{"class":243},[230,1696,461],{"class":247},[230,1698,303],{"class":302},[230,1700,1701],{"class":306},"quota",[230,1703,303],{"class":302},[230,1705,1706],{"class":247},")),\n",[230,1708,1709,1711,1713,1715,1717,1719,1722,1724],{"class":232,"line":692},[230,1710,526],{"class":295},[230,1712,529],{"class":247},[230,1714,532],{"class":295},[230,1716,299],{"class":247},[230,1718,303],{"class":302},[230,1720,1721],{"class":306},"0.0%",[230,1723,303],{"class":302},[230,1725,545],{"class":247},[230,1727,1728,1731,1733,1736],{"class":232,"line":698},[230,1729,1730],{"class":243},"  conditionalStyle",[230,1732,482],{"class":247},[230,1734,1735],{"class":485},"conditional",[230,1737,1565],{"class":247},[230,1739,1740],{"class":232,"line":717},[230,1741,1742],{"class":485},"    conditional\n",[230,1744,1745,1748,1751,1754,1756,1758,1760,1762,1764,1766,1768,1770,1772,1774,1776,1778,1781,1783,1786],{"class":232,"line":1066},[230,1746,1747],{"class":247},"      .",[230,1749,1750],{"class":243},"when",[230,1752,1753],{"class":247},"(({ ",[230,1755,486],{"class":485},[230,1757,594],{"class":247},[230,1759,597],{"class":485},[230,1761,1662],{"class":247},[230,1763,597],{"class":485},[230,1765,456],{"class":247},[230,1767,258],{"class":243},[230,1769,461],{"class":247},[230,1771,303],{"class":302},[230,1773,1637],{"class":306},[230,1775,303],{"class":302},[230,1777,640],{"class":247},[230,1779,1780],{"class":243},"lt",[230,1782,461],{"class":247},[230,1784,1785],{"class":506},"0.5",[230,1787,1788],{"class":247},"), {\n",[230,1790,1791,1794,1796,1799,1801,1804,1806,1808,1811,1813],{"class":232,"line":1071},[230,1792,1793],{"class":295},"        fill",[230,1795,529],{"class":247},[230,1797,1798],{"class":295},"color",[230,1800,529],{"class":247},[230,1802,1803],{"class":295},"rgb",[230,1805,299],{"class":247},[230,1807,303],{"class":302},[230,1809,1810],{"class":306},"FEE2E2",[230,1812,303],{"class":302},[230,1814,1059],{"class":247},[230,1816,1817,1820,1822,1824,1826,1828,1830,1832,1835,1837,1840,1842,1844,1846],{"class":232,"line":1076},[230,1818,1819],{"class":295},"        font",[230,1821,529],{"class":247},[230,1823,1798],{"class":295},[230,1825,529],{"class":247},[230,1827,1803],{"class":295},[230,1829,299],{"class":247},[230,1831,303],{"class":302},[230,1833,1834],{"class":306},"991B1B",[230,1836,303],{"class":302},[230,1838,1839],{"class":247}," }, ",[230,1841,1050],{"class":295},[230,1843,299],{"class":247},[230,1845,1056],{"class":1055},[230,1847,545],{"class":247},[230,1849,1850],{"class":232,"line":1082},[230,1851,1852],{"class":247},"      })\n",[230,1854,1855,1857,1859,1861,1863,1865,1867,1869,1871],{"class":232,"line":1099},[230,1856,1747],{"class":247},[230,1858,1750],{"class":243},[230,1860,1753],{"class":247},[230,1862,486],{"class":485},[230,1864,594],{"class":247},[230,1866,597],{"class":485},[230,1868,594],{"class":247},[230,1870,602],{"class":485},[230,1872,605],{"class":247},[230,1874,1875,1878,1880,1883,1885,1887,1889,1891,1893,1895,1897,1899,1901,1904,1906,1908,1910,1912,1914,1916,1918,1920,1923,1925,1927,1930,1932,1934,1937,1939],{"class":232,"line":1156},[230,1876,1877],{"class":485},"        fx",[230,1879,456],{"class":247},[230,1881,1882],{"class":243},"and",[230,1884,461],{"class":247},[230,1886,597],{"class":485},[230,1888,456],{"class":247},[230,1890,258],{"class":243},[230,1892,461],{"class":247},[230,1894,303],{"class":302},[230,1896,1637],{"class":306},[230,1898,303],{"class":302},[230,1900,640],{"class":247},[230,1902,1903],{"class":243},"gte",[230,1905,461],{"class":247},[230,1907,507],{"class":506},[230,1909,1688],{"class":247},[230,1911,597],{"class":485},[230,1913,456],{"class":247},[230,1915,258],{"class":243},[230,1917,461],{"class":247},[230,1919,303],{"class":302},[230,1921,1922],{"class":306},"status",[230,1924,303],{"class":302},[230,1926,640],{"class":247},[230,1928,1929],{"class":243},"eq",[230,1931,461],{"class":247},[230,1933,303],{"class":302},[230,1935,1936],{"class":306},"won",[230,1938,303],{"class":302},[230,1940,1706],{"class":247},[230,1942,1943],{"class":232,"line":1175},[230,1944,1945],{"class":247},"        {\n",[230,1947,1948,1951,1953,1955,1957,1959,1961,1963,1966,1968],{"class":232,"line":1180},[230,1949,1950],{"class":295},"          fill",[230,1952,529],{"class":247},[230,1954,1798],{"class":295},[230,1956,529],{"class":247},[230,1958,1803],{"class":295},[230,1960,299],{"class":247},[230,1962,303],{"class":302},[230,1964,1965],{"class":306},"DCFCE7",[230,1967,303],{"class":302},[230,1969,1059],{"class":247},[230,1971,1973,1976,1978,1980,1982,1984,1986,1988,1991,1993,1995,1997,1999,2001],{"class":232,"line":1972},24,[230,1974,1975],{"class":295},"          font",[230,1977,529],{"class":247},[230,1979,1798],{"class":295},[230,1981,529],{"class":247},[230,1983,1803],{"class":295},[230,1985,299],{"class":247},[230,1987,303],{"class":302},[230,1989,1990],{"class":306},"166534",[230,1992,303],{"class":302},[230,1994,1839],{"class":247},[230,1996,1050],{"class":295},[230,1998,299],{"class":247},[230,2000,1056],{"class":1055},[230,2002,545],{"class":247},[230,2004,2006],{"class":232,"line":2005},25,[230,2007,2008],{"class":247},"        },\n",[230,2010,2012],{"class":232,"line":2011},26,[230,2013,2014],{"class":247},"      ),\n",[230,2016,2018],{"class":232,"line":2017},27,[230,2019,550],{"class":247},[1220,2021,2023,2025,2026,764,2029,2032,2033,2036],{"type":2022},"warning",[227,2024,1509],{}," cannot toggle protection flags (",[227,2027,2028],{},"locked",[227,2030,2031],{},"hidden","). Use base ",[227,2034,2035],{},"style"," for those.",[209,2038],{},[212,2040,2042],{"id":2041},"data-validation-dsl","Data validation DSL",[205,2044,2045],{},"v2 introduces native Excel data validation on columns.",[220,2047,2049],{"className":222,"code":2048,"language":224,"meta":225,"style":225},".column(\"status\", {\n  accessor: \"status\",\n  validation: (v) =>\n    v.list([\"draft\", \"active\", \"archived\"])\n      .prompt({\n        title: () => \"Allowed values\",\n        message: () => \"Choose draft, active, or archived\",\n      })\n      .error({\n        title: () => \"Invalid status\",\n        message: () => \"Use one of the allowed workflow states\",\n      }),\n})\n\n.column(\"amount\", {\n  accessor: \"amount\",\n  validation: (v) => v.integer().between(100, 100000).allowBlank(),\n})\n\n.column(\"startDate\", {\n  accessor: \"startDate\",\n  validation: (v) => v.date().gte(new Date(Date.UTC(2025, 0, 1))),\n})\n",[227,2050,2051,2069,2083,2095,2136,2145,2161,2177,2181,2190,2205,2220,2225,2229,2233,2251,2265,2305,2309,2313,2332,2346,2400],{"__ignoreMap":225},[230,2052,2053,2055,2057,2059,2061,2063,2065,2067],{"class":232,"line":233},[230,2054,456],{"class":247},[230,2056,258],{"class":243},[230,2058,461],{"class":247},[230,2060,303],{"class":302},[230,2062,1922],{"class":306},[230,2064,303],{"class":302},[230,2066,471],{"class":247},[230,2068,474],{"class":247},[230,2070,2071,2073,2075,2077,2079,2081],{"class":232,"line":240},[230,2072,479],{"class":295},[230,2074,299],{"class":247},[230,2076,303],{"class":302},[230,2078,1922],{"class":306},[230,2080,303],{"class":302},[230,2082,689],{"class":247},[230,2084,2085,2088,2090,2093],{"class":232,"line":270},[230,2086,2087],{"class":243},"  validation",[230,2089,482],{"class":247},[230,2091,2092],{"class":485},"v",[230,2094,1565],{"class":247},[230,2096,2097,2100,2102,2105,2108,2110,2113,2115,2117,2119,2122,2124,2126,2128,2131,2133],{"class":232,"line":277},[230,2098,2099],{"class":485},"    v",[230,2101,456],{"class":247},[230,2103,2104],{"class":243},"list",[230,2106,2107],{"class":247},"([",[230,2109,303],{"class":302},[230,2111,2112],{"class":306},"draft",[230,2114,303],{"class":302},[230,2116,594],{"class":247},[230,2118,303],{"class":302},[230,2120,2121],{"class":306},"active",[230,2123,303],{"class":302},[230,2125,594],{"class":247},[230,2127,303],{"class":302},[230,2129,2130],{"class":306},"archived",[230,2132,303],{"class":302},[230,2134,2135],{"class":247},"])\n",[230,2137,2138,2140,2143],{"class":232,"line":283},[230,2139,1747],{"class":247},[230,2141,2142],{"class":243},"prompt",[230,2144,891],{"class":247},[230,2146,2147,2150,2152,2154,2157,2159],{"class":232,"line":553},[230,2148,2149],{"class":243},"        title",[230,2151,899],{"class":247},[230,2153,303],{"class":302},[230,2155,2156],{"class":306},"Allowed values",[230,2158,303],{"class":302},[230,2160,689],{"class":247},[230,2162,2163,2166,2168,2170,2173,2175],{"class":232,"line":558},[230,2164,2165],{"class":243},"        message",[230,2167,899],{"class":247},[230,2169,303],{"class":302},[230,2171,2172],{"class":306},"Choose draft, active, or archived",[230,2174,303],{"class":302},[230,2176,689],{"class":247},[230,2178,2179],{"class":232,"line":564},[230,2180,1852],{"class":247},[230,2182,2183,2185,2188],{"class":232,"line":583},[230,2184,1747],{"class":247},[230,2186,2187],{"class":243},"error",[230,2189,891],{"class":247},[230,2191,2192,2194,2196,2198,2201,2203],{"class":232,"line":608},[230,2193,2149],{"class":243},[230,2195,899],{"class":247},[230,2197,303],{"class":302},[230,2199,2200],{"class":306},"Invalid status",[230,2202,303],{"class":302},[230,2204,689],{"class":247},[230,2206,2207,2209,2211,2213,2216,2218],{"class":232,"line":622},[230,2208,2165],{"class":243},[230,2210,899],{"class":247},[230,2212,303],{"class":302},[230,2214,2215],{"class":306},"Use one of the allowed workflow states",[230,2217,303],{"class":302},[230,2219,689],{"class":247},[230,2221,2222],{"class":232,"line":683},[230,2223,2224],{"class":247},"      }),\n",[230,2226,2227],{"class":232,"line":692},[230,2228,550],{"class":247},[230,2230,2231],{"class":232,"line":698},[230,2232,274],{"emptyLinePlaceholder":273},[230,2234,2235,2237,2239,2241,2243,2245,2247,2249],{"class":232,"line":717},[230,2236,456],{"class":247},[230,2238,258],{"class":243},[230,2240,461],{"class":247},[230,2242,303],{"class":302},[230,2244,1533],{"class":306},[230,2246,303],{"class":302},[230,2248,471],{"class":247},[230,2250,474],{"class":247},[230,2252,2253,2255,2257,2259,2261,2263],{"class":232,"line":1066},[230,2254,479],{"class":295},[230,2256,299],{"class":247},[230,2258,303],{"class":302},[230,2260,1533],{"class":306},[230,2262,303],{"class":302},[230,2264,689],{"class":247},[230,2266,2267,2269,2271,2273,2275,2277,2279,2282,2284,2287,2289,2292,2294,2297,2299,2302],{"class":232,"line":1071},[230,2268,2087],{"class":243},[230,2270,482],{"class":247},[230,2272,2092],{"class":485},[230,2274,489],{"class":247},[230,2276,2092],{"class":485},[230,2278,456],{"class":247},[230,2280,2281],{"class":243},"integer",[230,2283,1139],{"class":247},[230,2285,2286],{"class":243},"between",[230,2288,461],{"class":247},[230,2290,2291],{"class":506},"100",[230,2293,594],{"class":247},[230,2295,2296],{"class":506},"100000",[230,2298,640],{"class":247},[230,2300,2301],{"class":243},"allowBlank",[230,2303,2304],{"class":247},"(),\n",[230,2306,2307],{"class":232,"line":1076},[230,2308,550],{"class":247},[230,2310,2311],{"class":232,"line":1082},[230,2312,274],{"emptyLinePlaceholder":273},[230,2314,2315,2317,2319,2321,2323,2326,2328,2330],{"class":232,"line":1099},[230,2316,456],{"class":247},[230,2318,258],{"class":243},[230,2320,461],{"class":247},[230,2322,303],{"class":302},[230,2324,2325],{"class":306},"startDate",[230,2327,303],{"class":302},[230,2329,471],{"class":247},[230,2331,474],{"class":247},[230,2333,2334,2336,2338,2340,2342,2344],{"class":232,"line":1156},[230,2335,479],{"class":295},[230,2337,299],{"class":247},[230,2339,303],{"class":302},[230,2341,2325],{"class":306},[230,2343,303],{"class":302},[230,2345,689],{"class":247},[230,2347,2348,2350,2352,2354,2356,2358,2360,2363,2365,2367,2369,2372,2375,2377,2380,2382,2385,2387,2390,2392,2394,2396,2398],{"class":232,"line":1175},[230,2349,2087],{"class":243},[230,2351,482],{"class":247},[230,2353,2092],{"class":485},[230,2355,489],{"class":247},[230,2357,2092],{"class":485},[230,2359,456],{"class":247},[230,2361,2362],{"class":243},"date",[230,2364,1139],{"class":247},[230,2366,1903],{"class":243},[230,2368,461],{"class":247},[230,2370,2371],{"class":499},"new",[230,2373,2374],{"class":243}," Date",[230,2376,461],{"class":247},[230,2378,2379],{"class":485},"Date",[230,2381,456],{"class":247},[230,2383,2384],{"class":243},"UTC",[230,2386,461],{"class":247},[230,2388,2389],{"class":506},"2025",[230,2391,594],{"class":247},[230,2393,902],{"class":506},[230,2395,594],{"class":247},[230,2397,507],{"class":506},[230,2399,680],{"class":247},[230,2401,2402],{"class":232,"line":1180},[230,2403,550],{"class":247},[205,2405,2406],{},"Custom formula-based validation can reference other columns:",[220,2408,2410],{"className":222,"code":2409,"language":224,"meta":225,"style":225},".column(\"score\", {\n  accessor: \"score\",\n  validation: (v) =>\n    v.custom(({ row, refs }) => refs.column(\"score\").gte(refs.column(\"amount\"))),\n})\n",[227,2411,2412,2431,2445,2455,2510],{"__ignoreMap":225},[230,2413,2414,2416,2418,2420,2422,2425,2427,2429],{"class":232,"line":233},[230,2415,456],{"class":247},[230,2417,258],{"class":243},[230,2419,461],{"class":247},[230,2421,303],{"class":302},[230,2423,2424],{"class":306},"score",[230,2426,303],{"class":302},[230,2428,471],{"class":247},[230,2430,474],{"class":247},[230,2432,2433,2435,2437,2439,2441,2443],{"class":232,"line":240},[230,2434,479],{"class":295},[230,2436,299],{"class":247},[230,2438,303],{"class":302},[230,2440,2424],{"class":306},[230,2442,303],{"class":302},[230,2444,689],{"class":247},[230,2446,2447,2449,2451,2453],{"class":232,"line":270},[230,2448,2087],{"class":243},[230,2450,482],{"class":247},[230,2452,2092],{"class":485},[230,2454,1565],{"class":247},[230,2456,2457,2459,2461,2464,2466,2468,2470,2472,2474,2476,2478,2480,2482,2484,2486,2488,2490,2492,2494,2496,2498,2500,2502,2504,2506,2508],{"class":232,"line":277},[230,2458,2099],{"class":485},[230,2460,456],{"class":247},[230,2462,2463],{"class":243},"custom",[230,2465,1753],{"class":247},[230,2467,486],{"class":485},[230,2469,594],{"class":247},[230,2471,597],{"class":485},[230,2473,1662],{"class":247},[230,2475,597],{"class":485},[230,2477,456],{"class":247},[230,2479,258],{"class":243},[230,2481,461],{"class":247},[230,2483,303],{"class":302},[230,2485,2424],{"class":306},[230,2487,303],{"class":302},[230,2489,640],{"class":247},[230,2491,1903],{"class":243},[230,2493,461],{"class":247},[230,2495,597],{"class":485},[230,2497,456],{"class":247},[230,2499,258],{"class":243},[230,2501,461],{"class":247},[230,2503,303],{"class":302},[230,2505,1533],{"class":306},[230,2507,303],{"class":302},[230,2509,680],{"class":247},[230,2511,2512],{"class":232,"line":283},[230,2513,550],{"class":247},[209,2515],{},[212,2517,76],{"id":2518},"hyperlinks",[205,2520,2521],{},"v2 adds native hyperlink support. Link metadata is separate from the rendered cell value.",[220,2523,2525],{"className":222,"code":2524,"language":224,"meta":225,"style":225},".column(\"customerName\", {\n  accessor: \"customerName\",\n  hyperlink: ({ row }) =>\n    row.hasPortal\n      ? {\n          target: `https:\u002F\u002Fexample.com\u002Fcustomers\u002F${row.customerId}`,\n          tooltip: \"Open customer record\",\n          style: {\n            font: { color: { rgb: \"7C3AED\" }, underline: false, bold: true },\n          },\n        }\n      : null,\n})\n",[227,2526,2527,2546,2560,2571,2580,2586,2616,2632,2640,2682,2687,2692,2701],{"__ignoreMap":225},[230,2528,2529,2531,2533,2535,2537,2540,2542,2544],{"class":232,"line":233},[230,2530,456],{"class":247},[230,2532,258],{"class":243},[230,2534,461],{"class":247},[230,2536,303],{"class":302},[230,2538,2539],{"class":306},"customerName",[230,2541,303],{"class":302},[230,2543,471],{"class":247},[230,2545,474],{"class":247},[230,2547,2548,2550,2552,2554,2556,2558],{"class":232,"line":240},[230,2549,479],{"class":295},[230,2551,299],{"class":247},[230,2553,303],{"class":302},[230,2555,2539],{"class":306},[230,2557,303],{"class":302},[230,2559,689],{"class":247},[230,2561,2562,2565,2567,2569],{"class":232,"line":270},[230,2563,2564],{"class":243},"  hyperlink",[230,2566,589],{"class":247},[230,2568,486],{"class":485},[230,2570,605],{"class":247},[230,2572,2573,2575,2577],{"class":232,"line":277},[230,2574,1570],{"class":485},[230,2576,456],{"class":247},[230,2578,2579],{"class":485},"hasPortal\n",[230,2581,2582,2584],{"class":232,"line":283},[230,2583,1585],{"class":499},[230,2585,474],{"class":247},[230,2587,2588,2591,2593,2596,2599,2602,2604,2606,2609,2612,2614],{"class":232,"line":553},[230,2589,2590],{"class":295},"          target",[230,2592,299],{"class":247},[230,2594,2595],{"class":302},"`",[230,2597,2598],{"class":306},"https:\u002F\u002Fexample.com\u002Fcustomers\u002F",[230,2600,2601],{"class":1055},"${",[230,2603,486],{"class":306},[230,2605,456],{"class":247},[230,2607,2608],{"class":306},"customerId",[230,2610,2611],{"class":1055},"}",[230,2613,2595],{"class":302},[230,2615,689],{"class":247},[230,2617,2618,2621,2623,2625,2628,2630],{"class":232,"line":558},[230,2619,2620],{"class":295},"          tooltip",[230,2622,299],{"class":247},[230,2624,303],{"class":302},[230,2626,2627],{"class":306},"Open customer record",[230,2629,303],{"class":302},[230,2631,689],{"class":247},[230,2633,2634,2637],{"class":232,"line":564},[230,2635,2636],{"class":295},"          style",[230,2638,2639],{"class":247},": {\n",[230,2641,2642,2645,2647,2649,2651,2653,2655,2657,2660,2662,2664,2667,2669,2672,2674,2676,2678,2680],{"class":232,"line":583},[230,2643,2644],{"class":295},"            font",[230,2646,529],{"class":247},[230,2648,1798],{"class":295},[230,2650,529],{"class":247},[230,2652,1803],{"class":295},[230,2654,299],{"class":247},[230,2656,303],{"class":302},[230,2658,2659],{"class":306},"7C3AED",[230,2661,303],{"class":302},[230,2663,1839],{"class":247},[230,2665,2666],{"class":295},"underline",[230,2668,299],{"class":247},[230,2670,2671],{"class":1055},"false",[230,2673,594],{"class":247},[230,2675,1050],{"class":295},[230,2677,299],{"class":247},[230,2679,1056],{"class":1055},[230,2681,545],{"class":247},[230,2683,2684],{"class":232,"line":608},[230,2685,2686],{"class":247},"          },\n",[230,2688,2689],{"class":232,"line":622},[230,2690,2691],{"class":247},"        }\n",[230,2693,2694,2696,2699],{"class":232,"line":683},[230,2695,1606],{"class":499},[230,2697,2698],{"class":499}," null",[230,2700,689],{"class":247},[230,2702,2703],{"class":232,"line":692},[230,2704,550],{"class":247},[209,2706],{},[212,2708,2710],{"id":2709},"worksheet-and-workbook-protection","Worksheet and workbook protection",[205,2712,2713],{},"v2 adds sheet-level and workbook-level protection, plus cell-level protection flags in the style object.",[205,2715,2716],{},[1242,2717,2718],{},"Workbook protection:",[220,2720,2722],{"className":222,"code":2721,"language":224,"meta":225,"style":225},"createWorkbook({\n  protection: {\n    password: \"workbook-secret\",\n    structure: true,\n  },\n});\n",[227,2723,2724,2731,2738,2754,2765,2770],{"__ignoreMap":225},[230,2725,2726,2729],{"class":232,"line":233},[230,2727,2728],{"class":243},"createWorkbook",[230,2730,891],{"class":247},[230,2732,2733,2736],{"class":232,"line":240},[230,2734,2735],{"class":295},"  protection",[230,2737,2639],{"class":247},[230,2739,2740,2743,2745,2747,2750,2752],{"class":232,"line":270},[230,2741,2742],{"class":295},"    password",[230,2744,299],{"class":247},[230,2746,303],{"class":302},[230,2748,2749],{"class":306},"workbook-secret",[230,2751,303],{"class":302},[230,2753,689],{"class":247},[230,2755,2756,2759,2761,2763],{"class":232,"line":277},[230,2757,2758],{"class":295},"    structure",[230,2760,299],{"class":247},[230,2762,1056],{"class":1055},[230,2764,689],{"class":247},[230,2766,2767],{"class":232,"line":283},[230,2768,2769],{"class":247},"  },\n",[230,2771,2772],{"class":232,"line":553},[230,2773,2774],{"class":247},"});\n",[205,2776,2777],{},[1242,2778,2779],{},"Sheet protection:",[220,2781,2783],{"className":222,"code":2782,"language":224,"meta":225,"style":225},".sheet(\"Protected\", {\n  protection: {\n    password: \"sheet-secret\",\n    selectUnlockedCells: true,\n    selectLockedCells: false,\n  },\n})\n",[227,2784,2785,2805,2811,2826,2837,2848,2852],{"__ignoreMap":225},[230,2786,2787,2789,2792,2794,2796,2799,2801,2803],{"class":232,"line":233},[230,2788,456],{"class":247},[230,2790,2791],{"class":243},"sheet",[230,2793,461],{"class":247},[230,2795,303],{"class":302},[230,2797,2798],{"class":306},"Protected",[230,2800,303],{"class":302},[230,2802,471],{"class":247},[230,2804,474],{"class":247},[230,2806,2807,2809],{"class":232,"line":240},[230,2808,2735],{"class":295},[230,2810,2639],{"class":247},[230,2812,2813,2815,2817,2819,2822,2824],{"class":232,"line":270},[230,2814,2742],{"class":295},[230,2816,299],{"class":247},[230,2818,303],{"class":302},[230,2820,2821],{"class":306},"sheet-secret",[230,2823,303],{"class":302},[230,2825,689],{"class":247},[230,2827,2828,2831,2833,2835],{"class":232,"line":277},[230,2829,2830],{"class":295},"    selectUnlockedCells",[230,2832,299],{"class":247},[230,2834,1056],{"class":1055},[230,2836,689],{"class":247},[230,2838,2839,2842,2844,2846],{"class":232,"line":283},[230,2840,2841],{"class":295},"    selectLockedCells",[230,2843,299],{"class":247},[230,2845,2671],{"class":1055},[230,2847,689],{"class":247},[230,2849,2850],{"class":232,"line":553},[230,2851,2769],{"class":247},[230,2853,2854],{"class":232,"line":558},[230,2855,550],{"class":247},[205,2857,2858],{},[1242,2859,2860],{},"Cell-level protection via style:",[220,2862,2864],{"className":222,"code":2863,"language":224,"meta":225,"style":225},"\u002F\u002F Editable input cell\n.column(\"input\", {\n  accessor: \"input\",\n  style: { protection: { locked: false } },\n})\n\n\u002F\u002F Hidden formula cell\n.column(\"formulaValue\", {\n  formula: ({ row, refs }) => refs.column(\"input\").mul(2),\n  style: { protection: { hidden: true } },\n})\n",[227,2865,2866,2871,2890,2904,2923,2927,2931,2936,2955,2994,3012],{"__ignoreMap":225},[230,2867,2868],{"class":232,"line":233},[230,2869,2870],{"class":236},"\u002F\u002F Editable input cell\n",[230,2872,2873,2875,2877,2879,2881,2884,2886,2888],{"class":232,"line":240},[230,2874,456],{"class":247},[230,2876,258],{"class":243},[230,2878,461],{"class":247},[230,2880,303],{"class":302},[230,2882,2883],{"class":306},"input",[230,2885,303],{"class":302},[230,2887,471],{"class":247},[230,2889,474],{"class":247},[230,2891,2892,2894,2896,2898,2900,2902],{"class":232,"line":270},[230,2893,479],{"class":295},[230,2895,299],{"class":247},[230,2897,303],{"class":302},[230,2899,2883],{"class":306},[230,2901,303],{"class":302},[230,2903,689],{"class":247},[230,2905,2906,2908,2910,2913,2915,2917,2919,2921],{"class":232,"line":277},[230,2907,526],{"class":295},[230,2909,529],{"class":247},[230,2911,2912],{"class":295},"protection",[230,2914,529],{"class":247},[230,2916,2028],{"class":295},[230,2918,299],{"class":247},[230,2920,2671],{"class":1055},[230,2922,1059],{"class":247},[230,2924,2925],{"class":232,"line":283},[230,2926,550],{"class":247},[230,2928,2929],{"class":232,"line":553},[230,2930,274],{"emptyLinePlaceholder":273},[230,2932,2933],{"class":232,"line":558},[230,2934,2935],{"class":236},"\u002F\u002F Hidden formula cell\n",[230,2937,2938,2940,2942,2944,2946,2949,2951,2953],{"class":232,"line":564},[230,2939,456],{"class":247},[230,2941,258],{"class":243},[230,2943,461],{"class":247},[230,2945,303],{"class":302},[230,2947,2948],{"class":306},"formulaValue",[230,2950,303],{"class":302},[230,2952,471],{"class":247},[230,2954,474],{"class":247},[230,2956,2957,2959,2961,2963,2965,2967,2969,2971,2973,2975,2977,2979,2981,2983,2985,2987,2989,2992],{"class":232,"line":583},[230,2958,586],{"class":243},[230,2960,589],{"class":247},[230,2962,486],{"class":485},[230,2964,594],{"class":247},[230,2966,597],{"class":485},[230,2968,1662],{"class":247},[230,2970,597],{"class":485},[230,2972,456],{"class":247},[230,2974,258],{"class":243},[230,2976,461],{"class":247},[230,2978,303],{"class":302},[230,2980,2883],{"class":306},[230,2982,303],{"class":302},[230,2984,640],{"class":247},[230,2986,643],{"class":243},[230,2988,461],{"class":247},[230,2990,2991],{"class":506},"2",[230,2993,521],{"class":247},[230,2995,2996,2998,3000,3002,3004,3006,3008,3010],{"class":232,"line":608},[230,2997,526],{"class":295},[230,2999,529],{"class":247},[230,3001,2912],{"class":295},[230,3003,529],{"class":247},[230,3005,2031],{"class":295},[230,3007,299],{"class":247},[230,3009,1056],{"class":1055},[230,3011,1059],{"class":247},[230,3013,3014],{"class":232,"line":622},[230,3015,550],{"class":247},[209,3017],{},[212,3019,3021],{"id":3020},"table-wide-style-defaults","Table-wide style defaults",[205,3023,3024,3025,3028],{},"v2 adds a ",[227,3026,3027],{},"defaults"," option on table inputs for consistent theming across header, summary, and body cells.",[220,3030,3032],{"className":222,"code":3031,"language":224,"meta":225,"style":225},".table(\"renewals\", {\n  schema,\n  rows,\n  defaults: {\n    header: { preset: \"header.accent\" },\n    summary: { preset: \"summary.subtle\" },\n    cells: {\n      unlocked: { preset: \"cell.input\" },\n      locked: { preset: \"cell.locked\" },\n      hidden: { preset: \"cell.hidden\" },\n    },\n  },\n})\n",[227,3033,3034,3053,3059,3065,3072,3093,3113,3120,3140,3160,3180,3185,3189],{"__ignoreMap":225},[230,3035,3036,3038,3040,3042,3044,3047,3049,3051],{"class":232,"line":233},[230,3037,456],{"class":247},[230,3039,325],{"class":243},[230,3041,461],{"class":247},[230,3043,303],{"class":302},[230,3045,3046],{"class":306},"renewals",[230,3048,303],{"class":302},[230,3050,471],{"class":247},[230,3052,474],{"class":247},[230,3054,3055,3057],{"class":232,"line":240},[230,3056,1409],{"class":485},[230,3058,689],{"class":247},[230,3060,3061,3063],{"class":232,"line":270},[230,3062,1416],{"class":485},[230,3064,689],{"class":247},[230,3066,3067,3070],{"class":232,"line":277},[230,3068,3069],{"class":295},"  defaults",[230,3071,2639],{"class":247},[230,3073,3074,3077,3079,3082,3084,3086,3089,3091],{"class":232,"line":283},[230,3075,3076],{"class":295},"    header",[230,3078,529],{"class":247},[230,3080,3081],{"class":295},"preset",[230,3083,299],{"class":247},[230,3085,303],{"class":302},[230,3087,3088],{"class":306},"header.accent",[230,3090,303],{"class":302},[230,3092,545],{"class":247},[230,3094,3095,3098,3100,3102,3104,3106,3109,3111],{"class":232,"line":553},[230,3096,3097],{"class":295},"    summary",[230,3099,529],{"class":247},[230,3101,3081],{"class":295},[230,3103,299],{"class":247},[230,3105,303],{"class":302},[230,3107,3108],{"class":306},"summary.subtle",[230,3110,303],{"class":302},[230,3112,545],{"class":247},[230,3114,3115,3118],{"class":232,"line":558},[230,3116,3117],{"class":295},"    cells",[230,3119,2639],{"class":247},[230,3121,3122,3125,3127,3129,3131,3133,3136,3138],{"class":232,"line":564},[230,3123,3124],{"class":295},"      unlocked",[230,3126,529],{"class":247},[230,3128,3081],{"class":295},[230,3130,299],{"class":247},[230,3132,303],{"class":302},[230,3134,3135],{"class":306},"cell.input",[230,3137,303],{"class":302},[230,3139,545],{"class":247},[230,3141,3142,3145,3147,3149,3151,3153,3156,3158],{"class":232,"line":583},[230,3143,3144],{"class":295},"      locked",[230,3146,529],{"class":247},[230,3148,3081],{"class":295},[230,3150,299],{"class":247},[230,3152,303],{"class":302},[230,3154,3155],{"class":306},"cell.locked",[230,3157,303],{"class":302},[230,3159,545],{"class":247},[230,3161,3162,3165,3167,3169,3171,3173,3176,3178],{"class":232,"line":608},[230,3163,3164],{"class":295},"      hidden",[230,3166,529],{"class":247},[230,3168,3081],{"class":295},[230,3170,299],{"class":247},[230,3172,303],{"class":302},[230,3174,3175],{"class":306},"cell.hidden",[230,3177,303],{"class":302},[230,3179,545],{"class":247},[230,3181,3182],{"class":232,"line":622},[230,3183,3184],{"class":247},"    },\n",[230,3186,3187],{"class":232,"line":683},[230,3188,2769],{"class":247},[230,3190,3191],{"class":232,"line":692},[230,3192,550],{"class":247},[209,3194],{},[212,3196,3198],{"id":3197},"grouped-formulas","Grouped formulas",[205,3200,3201],{},"v1 groups were mainly used for generated column structure. v2 adds explicit scope selectors so formulas can aggregate structural groups and runtime dynamic scopes.",[220,3203,3205],{"className":222,"code":3204,"language":224,"meta":225,"style":225},"\u002F\u002F v1 — groups generate columns, no formula integration\ncreateExcelSchema\u003CRow>()\n  .group(\"regions\", (group) => {\n    group.column(\"amer\", { accessor: (row) => row.byRegion.amer ?? 0 });\n    group.column(\"apac\", { accessor: (row) => row.byRegion.apac ?? 0 });\n    group.column(\"emea\", { accessor: (row) => row.byRegion.emea ?? 0 });\n  })\n  .build();\n\n\u002F\u002F v2 — runtime-generated scopes use dynamic(), and formulas aggregate them with refs.dynamic()\ncreateExcelSchema\u003CRow, { regions: string[] }>({ mode: \"excel-table\" })\n  .dynamic(\"regions\", (builder, { ctx }) => {\n    for (const region of ctx.regions)\n      builder.column(region, {\n        header: region,\n        accessor: (row) => row.byRegion[region] ?? 0,\n        totalsRow: { function: \"sum\" },\n      });\n  })\n  .column(\"total\", {\n    header: \"Regional Total\",\n    formula: ({ refs, fx }) => fx.sum(refs.dynamic(\"regions\")),\n    totalsRow: { function: \"sum\" },\n  })\n  .column(\"average\", {\n    header: \"Regional Avg\",\n    formula: ({ refs, fx }) => fx.round(fx.average(refs.dynamic(\"regions\")), 0),\n    totalsRow: { function: \"average\" },\n  })\n  .build();\n",[227,3206,3207,3212,3223,3252,3302,3347,3392,3397,3406,3410,3415,3452,3487,3512,3529,3540,3572,3591,3596,3600,3619,3634,3673,3692,3696,3714,3729,3780,3799,3804],{"__ignoreMap":225},[230,3208,3209],{"class":232,"line":233},[230,3210,3211],{"class":236},"\u002F\u002F v1 — groups generate columns, no formula integration\n",[230,3213,3214,3216,3218,3220],{"class":232,"line":240},[230,3215,244],{"class":243},[230,3217,248],{"class":247},[230,3219,252],{"class":251},[230,3221,3222],{"class":247},">()\n",[230,3224,3225,3228,3231,3233,3235,3238,3240,3242,3244,3246,3248,3250],{"class":232,"line":270},[230,3226,3227],{"class":247},"  .",[230,3229,3230],{"class":243},"group",[230,3232,461],{"class":247},[230,3234,303],{"class":302},[230,3236,3237],{"class":306},"regions",[230,3239,303],{"class":302},[230,3241,471],{"class":247},[230,3243,503],{"class":247},[230,3245,3230],{"class":485},[230,3247,373],{"class":247},[230,3249,875],{"class":247},[230,3251,474],{"class":247},[230,3253,3254,3257,3259,3261,3263,3265,3268,3270,3272,3274,3276,3278,3280,3282,3284,3286,3289,3291,3293,3296,3299],{"class":232,"line":277},[230,3255,3256],{"class":485},"    group",[230,3258,456],{"class":247},[230,3260,258],{"class":243},[230,3262,461],{"class":247},[230,3264,303],{"class":302},[230,3266,3267],{"class":306},"amer",[230,3269,303],{"class":302},[230,3271,471],{"class":247},[230,3273,1588],{"class":247},[230,3275,817],{"class":243},[230,3277,482],{"class":247},[230,3279,486],{"class":485},[230,3281,489],{"class":247},[230,3283,486],{"class":485},[230,3285,456],{"class":247},[230,3287,3288],{"class":485},"byRegion",[230,3290,456],{"class":247},[230,3292,3267],{"class":485},[230,3294,3295],{"class":499}," ??",[230,3297,3298],{"class":506}," 0",[230,3300,3301],{"class":247}," });\n",[230,3303,3304,3306,3308,3310,3312,3314,3317,3319,3321,3323,3325,3327,3329,3331,3333,3335,3337,3339,3341,3343,3345],{"class":232,"line":283},[230,3305,3256],{"class":485},[230,3307,456],{"class":247},[230,3309,258],{"class":243},[230,3311,461],{"class":247},[230,3313,303],{"class":302},[230,3315,3316],{"class":306},"apac",[230,3318,303],{"class":302},[230,3320,471],{"class":247},[230,3322,1588],{"class":247},[230,3324,817],{"class":243},[230,3326,482],{"class":247},[230,3328,486],{"class":485},[230,3330,489],{"class":247},[230,3332,486],{"class":485},[230,3334,456],{"class":247},[230,3336,3288],{"class":485},[230,3338,456],{"class":247},[230,3340,3316],{"class":485},[230,3342,3295],{"class":499},[230,3344,3298],{"class":506},[230,3346,3301],{"class":247},[230,3348,3349,3351,3353,3355,3357,3359,3362,3364,3366,3368,3370,3372,3374,3376,3378,3380,3382,3384,3386,3388,3390],{"class":232,"line":553},[230,3350,3256],{"class":485},[230,3352,456],{"class":247},[230,3354,258],{"class":243},[230,3356,461],{"class":247},[230,3358,303],{"class":302},[230,3360,3361],{"class":306},"emea",[230,3363,303],{"class":302},[230,3365,471],{"class":247},[230,3367,1588],{"class":247},[230,3369,817],{"class":243},[230,3371,482],{"class":247},[230,3373,486],{"class":485},[230,3375,489],{"class":247},[230,3377,486],{"class":485},[230,3379,456],{"class":247},[230,3381,3288],{"class":485},[230,3383,456],{"class":247},[230,3385,3361],{"class":485},[230,3387,3295],{"class":499},[230,3389,3298],{"class":506},[230,3391,3301],{"class":247},[230,3393,3394],{"class":232,"line":558},[230,3395,3396],{"class":247},"  })\n",[230,3398,3399,3401,3403],{"class":232,"line":564},[230,3400,3227],{"class":247},[230,3402,264],{"class":243},[230,3404,3405],{"class":247},"();\n",[230,3407,3408],{"class":232,"line":583},[230,3409,274],{"emptyLinePlaceholder":273},[230,3411,3412],{"class":232,"line":608},[230,3413,3414],{"class":236},"\u002F\u002F v2 — runtime-generated scopes use dynamic(), and formulas aggregate them with refs.dynamic()\n",[230,3416,3417,3419,3421,3423,3425,3428,3431,3433,3436,3439,3441,3443,3445,3447,3449],{"class":232,"line":622},[230,3418,244],{"class":243},[230,3420,248],{"class":247},[230,3422,252],{"class":251},[230,3424,471],{"class":247},[230,3426,3427],{"class":247}," {",[230,3429,3430],{"class":485}," regions",[230,3432,299],{"class":247},[230,3434,3435],{"class":251},"string",[230,3437,3438],{"class":247},"[] }>({ ",[230,3440,296],{"class":295},[230,3442,299],{"class":247},[230,3444,303],{"class":302},[230,3446,307],{"class":306},[230,3448,303],{"class":302},[230,3450,3451],{"class":247}," })\n",[230,3453,3454,3456,3459,3461,3463,3465,3467,3469,3471,3474,3476,3478,3481,3483,3485],{"class":232,"line":683},[230,3455,3227],{"class":247},[230,3457,3458],{"class":243},"dynamic",[230,3460,461],{"class":247},[230,3462,303],{"class":302},[230,3464,3237],{"class":306},[230,3466,303],{"class":302},[230,3468,471],{"class":247},[230,3470,503],{"class":247},[230,3472,3473],{"class":485},"builder",[230,3475,471],{"class":247},[230,3477,3427],{"class":247},[230,3479,3480],{"class":485}," ctx",[230,3482,1119],{"class":247},[230,3484,875],{"class":247},[230,3486,474],{"class":247},[230,3488,3489,3492,3494,3497,3500,3503,3505,3507,3509],{"class":232,"line":692},[230,3490,3491],{"class":1055},"    for",[230,3493,503],{"class":247},[230,3495,3496],{"class":499},"const ",[230,3498,3499],{"class":485},"region",[230,3501,3502],{"class":499}," of",[230,3504,3480],{"class":485},[230,3506,456],{"class":247},[230,3508,3237],{"class":485},[230,3510,3511],{"class":247},")\n",[230,3513,3514,3517,3519,3521,3523,3525,3527],{"class":232,"line":698},[230,3515,3516],{"class":485},"      builder",[230,3518,456],{"class":247},[230,3520,258],{"class":243},[230,3522,461],{"class":247},[230,3524,3499],{"class":485},[230,3526,471],{"class":247},[230,3528,474],{"class":247},[230,3530,3531,3534,3536,3538],{"class":232,"line":717},[230,3532,3533],{"class":295},"        header",[230,3535,299],{"class":247},[230,3537,3499],{"class":485},[230,3539,689],{"class":247},[230,3541,3542,3545,3547,3549,3551,3553,3555,3557,3560,3562,3565,3568,3570],{"class":232,"line":1066},[230,3543,3544],{"class":243},"        accessor",[230,3546,482],{"class":247},[230,3548,486],{"class":485},[230,3550,489],{"class":247},[230,3552,486],{"class":485},[230,3554,456],{"class":247},[230,3556,3288],{"class":485},[230,3558,3559],{"class":247},"[",[230,3561,3499],{"class":485},[230,3563,3564],{"class":247},"] ",[230,3566,3567],{"class":499},"??",[230,3569,3298],{"class":506},[230,3571,689],{"class":247},[230,3573,3574,3577,3579,3581,3583,3585,3587,3589],{"class":232,"line":1071},[230,3575,3576],{"class":295},"        totalsRow",[230,3578,529],{"class":247},[230,3580,1292],{"class":295},[230,3582,299],{"class":247},[230,3584,303],{"class":302},[230,3586,1018],{"class":306},[230,3588,303],{"class":302},[230,3590,545],{"class":247},[230,3592,3593],{"class":232,"line":1076},[230,3594,3595],{"class":247},"      });\n",[230,3597,3598],{"class":232,"line":1082},[230,3599,3396],{"class":247},[230,3601,3602,3604,3606,3608,3610,3613,3615,3617],{"class":232,"line":1099},[230,3603,3227],{"class":247},[230,3605,258],{"class":243},[230,3607,461],{"class":247},[230,3609,303],{"class":302},[230,3611,3612],{"class":306},"total",[230,3614,303],{"class":302},[230,3616,471],{"class":247},[230,3618,474],{"class":247},[230,3620,3621,3623,3625,3627,3630,3632],{"class":232,"line":1156},[230,3622,3076],{"class":295},[230,3624,299],{"class":247},[230,3626,303],{"class":302},[230,3628,3629],{"class":306},"Regional Total",[230,3631,303],{"class":302},[230,3633,689],{"class":247},[230,3635,3636,3639,3641,3643,3645,3647,3649,3651,3653,3655,3657,3659,3661,3663,3665,3667,3669,3671],{"class":232,"line":1175},[230,3637,3638],{"class":243},"    formula",[230,3640,589],{"class":247},[230,3642,597],{"class":485},[230,3644,594],{"class":247},[230,3646,602],{"class":485},[230,3648,1662],{"class":247},[230,3650,602],{"class":485},[230,3652,456],{"class":247},[230,3654,1018],{"class":243},[230,3656,461],{"class":247},[230,3658,597],{"class":485},[230,3660,456],{"class":247},[230,3662,3458],{"class":243},[230,3664,461],{"class":247},[230,3666,303],{"class":302},[230,3668,3237],{"class":306},[230,3670,303],{"class":302},[230,3672,1706],{"class":247},[230,3674,3675,3678,3680,3682,3684,3686,3688,3690],{"class":232,"line":1180},[230,3676,3677],{"class":295},"    totalsRow",[230,3679,529],{"class":247},[230,3681,1292],{"class":295},[230,3683,299],{"class":247},[230,3685,303],{"class":302},[230,3687,1018],{"class":306},[230,3689,303],{"class":302},[230,3691,545],{"class":247},[230,3693,3694],{"class":232,"line":1972},[230,3695,3396],{"class":247},[230,3697,3698,3700,3702,3704,3706,3708,3710,3712],{"class":232,"line":2005},[230,3699,3227],{"class":247},[230,3701,258],{"class":243},[230,3703,461],{"class":247},[230,3705,303],{"class":302},[230,3707,1142],{"class":306},[230,3709,303],{"class":302},[230,3711,471],{"class":247},[230,3713,474],{"class":247},[230,3715,3716,3718,3720,3722,3725,3727],{"class":232,"line":2011},[230,3717,3076],{"class":295},[230,3719,299],{"class":247},[230,3721,303],{"class":302},[230,3723,3724],{"class":306},"Regional Avg",[230,3726,303],{"class":302},[230,3728,689],{"class":247},[230,3730,3731,3733,3735,3737,3739,3741,3743,3745,3747,3749,3751,3753,3755,3757,3759,3761,3763,3765,3767,3769,3771,3773,3776,3778],{"class":232,"line":2017},[230,3732,3638],{"class":243},[230,3734,589],{"class":247},[230,3736,597],{"class":485},[230,3738,594],{"class":247},[230,3740,602],{"class":485},[230,3742,1662],{"class":247},[230,3744,602],{"class":485},[230,3746,456],{"class":247},[230,3748,616],{"class":243},[230,3750,461],{"class":247},[230,3752,602],{"class":485},[230,3754,456],{"class":247},[230,3756,1142],{"class":243},[230,3758,461],{"class":247},[230,3760,597],{"class":485},[230,3762,456],{"class":247},[230,3764,3458],{"class":243},[230,3766,461],{"class":247},[230,3768,303],{"class":302},[230,3770,3237],{"class":306},[230,3772,303],{"class":302},[230,3774,3775],{"class":247},")), ",[230,3777,902],{"class":506},[230,3779,521],{"class":247},[230,3781,3783,3785,3787,3789,3791,3793,3795,3797],{"class":232,"line":3782},28,[230,3784,3677],{"class":295},[230,3786,529],{"class":247},[230,3788,1292],{"class":295},[230,3790,299],{"class":247},[230,3792,303],{"class":302},[230,3794,1142],{"class":306},[230,3796,303],{"class":302},[230,3798,545],{"class":247},[230,3800,3802],{"class":232,"line":3801},29,[230,3803,3396],{"class":247},[230,3805,3807,3809,3811],{"class":232,"line":3806},30,[230,3808,3227],{"class":247},[230,3810,264],{"class":243},[230,3812,3405],{"class":247},[209,3814],{},[212,3816,3818],{"id":3817},"autofilter-in-report-mode","autoFilter in report mode",[205,3820,3821],{},"v2 adds opt-in autoFilter support in report mode.",[220,3823,3825],{"className":222,"code":3824,"language":224,"meta":225,"style":225},".table(\"sales\", {\n  schema,\n  rows,\n  autoFilter: true,\n})\n",[227,3826,3827,3846,3852,3858,3868],{"__ignoreMap":225},[230,3828,3829,3831,3833,3835,3837,3840,3842,3844],{"class":232,"line":233},[230,3830,456],{"class":247},[230,3832,325],{"class":243},[230,3834,461],{"class":247},[230,3836,303],{"class":302},[230,3838,3839],{"class":306},"sales",[230,3841,303],{"class":302},[230,3843,471],{"class":247},[230,3845,474],{"class":247},[230,3847,3848,3850],{"class":232,"line":240},[230,3849,1409],{"class":485},[230,3851,689],{"class":247},[230,3853,3854,3856],{"class":232,"line":270},[230,3855,1416],{"class":485},[230,3857,689],{"class":247},[230,3859,3860,3862,3864,3866],{"class":232,"line":277},[230,3861,1476],{"class":295},[230,3863,299],{"class":247},[230,3865,1056],{"class":1055},[230,3867,689],{"class":247},[230,3869,3870],{"class":232,"line":283},[230,3871,550],{"class":247},[1220,3873,3874],{"type":1222},"Report-mode autoFilter is automatically disabled when merged expanded rows make Excel filtering invalid.",[209,3876],{},[212,3878,3880],{"id":3879},"streaming-all-new-features-included","Streaming — all new features included",[205,3882,3883,3884,3887],{},"All v2 features work in streaming mode via ",[227,3885,3886],{},"createWorkbookStream()",". There is no separate feature surface for buffered vs streaming — the same schema model applies.",[209,3889],{},[212,3891,3893],{"id":3892},"constraints-to-be-aware-of","Constraints to be aware of",[325,3895,3896,3906],{},[328,3897,3898],{},[331,3899,3900,3903],{},[334,3901,3902],{},"Constraint",[334,3904,3905],{},"Details",[344,3907,3908,3919,3927,3935,3943],{},[331,3909,3910,3913],{},[349,3911,3912],{},"Formula summaries are report-mode only",[349,3914,3915,3916,3918],{},"Excel-table mode uses ",[227,3917,417],{}," instead",[331,3920,3921,3924],{},[349,3922,3923],{},"Excel-table mode does not support sub-row expansion",[349,3925,3926],{},"Use report mode if your accessor returns arrays",[331,3928,3929,3932],{},[349,3930,3931],{},"Excel-table formulas require unique effective headers",[349,3933,3934],{},"Structured references depend on unique column headers",[331,3936,3937,3940],{},[349,3938,3939],{},"Report-mode autoFilter disabled with merged rows",[349,3941,3942],{},"Merged expanded rows make Excel filtering invalid",[331,3944,3945,3950],{},[349,3946,3947,3949],{},[227,3948,1509],{}," cannot set protection flags",[349,3951,3952,3953,3955,3956,764,3958],{},"Use base ",[227,3954,2035],{}," for ",[227,3957,2028],{},[227,3959,2031],{},[209,3961],{},[212,3963,3965],{"id":3964},"quick-reference","Quick reference",[325,3967,3968,3981],{},[328,3969,3970],{},[331,3971,3972,3975,3978],{},[334,3973,3974],{},"Feature",[334,3976,3977],{},"v1",[334,3979,3980],{},"v2",[344,3982,3983,4001,4019,4039,4057,4071,4083,4098,4112,4127,4141,4160,4173,4190],{},[331,3984,3985,3988,3991],{},[349,3986,3987],{},"Schema mode",[349,3989,3990],{},"Implicit report mode",[349,3992,3993,3994,3997,3998],{},"Explicit: ",[227,3995,3996],{},"\"report\""," (default) or ",[227,3999,4000],{},"\"excel-table\"",[331,4002,4003,4006,4011],{},[349,4004,4005],{},"Computed columns",[349,4007,4008,4009],{},"JS-only via ",[227,4010,817],{},[349,4012,4013,4015,4016,4018],{},[227,4014,817],{}," (JS) or ",[227,4017,821],{}," (live Excel)",[331,4020,4021,4023,4033],{},[349,4022,406],{},[349,4024,4025,4026,4028,4029,4028,4031,373],{},"JS reducer (",[227,4027,837],{},"\u002F",[227,4030,840],{},[227,4032,843],{},[349,4034,4035,4036],{},"JS reducer or ",[227,4037,4038],{},"summary.formula(...)",[331,4040,4041,4044,4049],{},[349,4042,4043],{},"Conditional styles",[349,4045,4046,4048],{},[227,4047,1502],{}," (resolved once)",[349,4050,4051,4053,4054,4056],{},[227,4052,1502],{}," or ",[227,4055,1509],{}," (native Excel CF)",[331,4058,4059,4062,4065],{},[349,4060,4061],{},"Data validation",[349,4063,4064],{},"Not available",[349,4066,4067,4070],{},[227,4068,4069],{},"validation"," DSL on columns",[331,4072,4073,4075,4077],{},[349,4074,76],{},[349,4076,4064],{},[349,4078,4079,4082],{},[227,4080,4081],{},"hyperlink"," callback on columns",[331,4084,4085,4088,4090],{},[349,4086,4087],{},"Sheet protection",[349,4089,4064],{},[349,4091,4092,4094,4095],{},[227,4093,2912],{}," on ",[227,4096,4097],{},".sheet()",[331,4099,4100,4103,4105],{},[349,4101,4102],{},"Workbook protection",[349,4104,4064],{},[349,4106,4107,4094,4109],{},[227,4108,2912],{},[227,4110,4111],{},"createWorkbook()",[331,4113,4114,4117,4119],{},[349,4115,4116],{},"Cell protection",[349,4118,4064],{},[349,4120,4121,764,4124],{},[227,4122,4123],{},"style.protection.locked",[227,4125,4126],{},".hidden",[331,4128,4129,4132,4134],{},[349,4130,4131],{},"Table style defaults",[349,4133,4064],{},[349,4135,4136,4094,4138],{},[227,4137,3027],{},[227,4139,4140],{},".table()",[331,4142,4143,4146,4148],{},[349,4144,4145],{},"Native Excel tables",[349,4147,4064],{},[349,4149,4150,4152,4153,764,4155,764,4157],{},[227,4151,428],{}," + ",[227,4154,417],{},[227,4156,2035],{},[227,4158,4159],{},"name",[331,4161,4162,4164,4166],{},[349,4163,384],{},[349,4165,4064],{},[349,4167,4168,4094,4170,4172],{},[227,4169,384],{},[227,4171,4140],{}," (opt-in report, default excel-table)",[331,4174,4175,4178,4181],{},[349,4176,4177],{},"Group formulas",[349,4179,4180],{},"Groups generate columns only",[349,4182,4183,594,4186,4189],{},[227,4184,4185],{},"fx.sum(refs.group(\"id\"))",[227,4187,4188],{},"fx.sum(refs.dynamic(\"id\"))",", etc.",[331,4191,4192,4195,4197],{},[349,4193,4194],{},"Formula row model",[349,4196,4064],{},[349,4198,4199,764,4202,764,4205],{},[227,4200,4201],{},"refs.column()",[227,4203,4204],{},"row.series()",[227,4206,4207],{},"expansion",[2035,4209,4210],{},"html pre.shiki code .syVH9, html code.shiki .syVH9{--shiki-light:#A0ADA0;--shiki-default:#A0ADA0;--shiki-dark:#758575DD}html pre.shiki code .skGA_, html code.shiki .skGA_{--shiki-light:#59873A;--shiki-default:#59873A;--shiki-dark:#80A665}html pre.shiki code .so0ae, html code.shiki .so0ae{--shiki-light:#999999;--shiki-default:#999999;--shiki-dark:#666666}html pre.shiki code .sEy5d, html code.shiki .sEy5d{--shiki-light:#2E8F82;--shiki-default:#2E8F82;--shiki-dark:#5DA994}html pre.shiki code .sJWN2, html code.shiki .sJWN2{--shiki-light:#998418;--shiki-default:#998418;--shiki-dark:#B8A965}html pre.shiki code .sb0JU, html code.shiki .sb0JU{--shiki-light:#B5695977;--shiki-default:#B5695977;--shiki-dark:#C98A7D77}html pre.shiki code .scWd0, html code.shiki .scWd0{--shiki-light:#B56959;--shiki-default:#B56959;--shiki-dark:#C98A7D}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);}html pre.shiki code .svjTx, html code.shiki .svjTx{--shiki-light:#B07D48;--shiki-default:#B07D48;--shiki-dark:#BD976A}html pre.shiki code .sjWS2, html code.shiki .sjWS2{--shiki-light:#AB5959;--shiki-default:#AB5959;--shiki-dark:#CB7676}html pre.shiki code .syQuE, html code.shiki .syQuE{--shiki-light:#2F798A;--shiki-default:#2F798A;--shiki-dark:#4C9A91}html pre.shiki code .ssIE9, html code.shiki .ssIE9{--shiki-light:#1E754F;--shiki-default:#1E754F;--shiki-dark:#4D9375}",{"title":225,"searchDepth":240,"depth":240,"links":4212},[4213,4214,4215,4216,4217,4218,4219,4220,4221,4222,4223,4224,4225,4226],{"id":214,"depth":240,"text":215},{"id":434,"depth":240,"text":435},{"id":830,"depth":240,"text":831},{"id":1231,"depth":240,"text":1232},{"id":1495,"depth":240,"text":1496},{"id":2041,"depth":240,"text":2042},{"id":2518,"depth":240,"text":76},{"id":2709,"depth":240,"text":2710},{"id":3020,"depth":240,"text":3021},{"id":3197,"depth":240,"text":3198},{"id":3817,"depth":240,"text":3818},{"id":3879,"depth":240,"text":3880},{"id":3892,"depth":240,"text":3893},{"id":3964,"depth":240,"text":3965},"What changed between v1.x and v2.0, how to adopt the new features, and what to watch out for.","md",null,{},{"title":192,"description":4227},"jgzDWcOg026DzH8d78ytWzZdPtWDRDPxxEYEiB0IaPs",[4234,4236],{"title":188,"path":189,"stem":190,"description":4235,"children":-1},"Every breaking change from v0.x to v1.0 with before\u002Fafter examples.",{"title":196,"path":197,"stem":198,"description":4237,"children":-1},"Package rename from @chronicstone\u002Ftyped-xlsx to typed-xlsx.",1775575814863]