[{"data":1,"prerenderedAt":1187},["ShallowReactive",2],{"navigation_docs_en":3,"-en-core-overview":335,"-en-core-overview-surround":1182},[4,31,61,91,175,256],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":30},"Getting Started","i-lucide-rocket","\u002Fen\u002Fgetting-started","en\u002F01.getting-started",[10,14,18,22,26],{"title":11,"path":12,"stem":13},"Introduction","\u002Fen\u002Fgetting-started\u002Fintroduction","en\u002F01.getting-started\u002F01.introduction",{"title":15,"path":16,"stem":17},"Installation","\u002Fen\u002Fgetting-started\u002Finstallation","en\u002F01.getting-started\u002F02.installation",{"title":19,"path":20,"stem":21},"Command Line Interface (CLI)","\u002Fen\u002Fgetting-started\u002Fcommand-line-interface","en\u002F01.getting-started\u002F03.command-line-interface",{"title":23,"path":24,"stem":25},"AI Tools","\u002Fen\u002Fgetting-started\u002Fai-tools","en\u002F01.getting-started\u002F04.ai-tools",{"title":27,"path":28,"stem":29},"AI Integration","\u002Fen\u002Fgetting-started\u002Fai-integration","en\u002F01.getting-started\u002F05.ai-integration",false,{"title":32,"icon":33,"path":34,"stem":35,"children":36,"page":30},"CORE","i-lucide-box","\u002Fen\u002Fcore","en\u002F02.core",[37,41,45,49,53,57],{"title":38,"path":39,"stem":40},"@office-open\u002Fcore","\u002Fen\u002Fcore\u002Foverview","en\u002F02.core\u002F01.overview",{"title":42,"path":43,"stem":44},"Descriptor System","\u002Fen\u002Fcore\u002Fdescriptors","en\u002F02.core\u002F02.descriptors",{"title":46,"path":47,"stem":48},"Values and Validation","\u002Fen\u002Fcore\u002Fvalues","en\u002F02.core\u002F03.values",{"title":50,"path":51,"stem":52},"Unit Converters","\u002Fen\u002Fcore\u002Fconverters","en\u002F02.core\u002F04.converters",{"title":54,"path":55,"stem":56},"Charts","\u002Fen\u002Fcore\u002Fcharts","en\u002F02.core\u002F05.charts",{"title":58,"path":59,"stem":60},"Parser","\u002Fen\u002Fcore\u002Fparser","en\u002F02.core\u002F06.parser",{"title":62,"icon":63,"path":64,"stem":65,"children":66,"page":30},"XML","i-lucide-code-xml","\u002Fen\u002Fxml","en\u002F03.xml",[67,71,75,79,83,87],{"title":68,"path":69,"stem":70},"@office-open\u002Fxml","\u002Fen\u002Fxml\u002Foverview","en\u002F03.xml\u002F01.overview",{"title":72,"path":73,"stem":74},"Parsing","\u002Fen\u002Fxml\u002Fparsing","en\u002F03.xml\u002F02.parsing",{"title":76,"path":77,"stem":78},"Serialization","\u002Fen\u002Fxml\u002Fserialization","en\u002F03.xml\u002F03.serialization",{"title":80,"path":81,"stem":82},"Query Utilities","\u002Fen\u002Fxml\u002Fquery-utilities","en\u002F03.xml\u002F04.query-utilities",{"title":84,"path":85,"stem":86},"XML Escape","\u002Fen\u002Fxml\u002Fescape","en\u002F03.xml\u002F05.escape",{"title":88,"path":89,"stem":90},"Type Reference","\u002Fen\u002Fxml\u002Ftypes","en\u002F03.xml\u002F06.types",{"title":92,"icon":93,"path":94,"stem":95,"children":96,"page":30},"DOCX","i-lucide-file-text","\u002Fen\u002Fdocx","en\u002F04.docx",[97,101,105,109,113,117,121,124,128,132,136,140,144,148,152,156,160,164,168,171],{"title":98,"path":99,"stem":100},"@office-open\u002Fdocx","\u002Fen\u002Fdocx\u002Foverview","en\u002F04.docx\u002F01.overview",{"title":102,"path":103,"stem":104},"Quick Start","\u002Fen\u002Fdocx\u002Fquickstart","en\u002F04.docx\u002F02.quickstart",{"title":106,"path":107,"stem":108},"Text and Paragraphs","\u002Fen\u002Fdocx\u002Ftext-and-paragraphs","en\u002F04.docx\u002F03.text-and-paragraphs",{"title":110,"path":111,"stem":112},"Tables","\u002Fen\u002Fdocx\u002Ftables","en\u002F04.docx\u002F04.tables",{"title":114,"path":115,"stem":116},"Images","\u002Fen\u002Fdocx\u002Fimages","en\u002F04.docx\u002F05.images",{"title":118,"path":119,"stem":120},"Text Boxes","\u002Fen\u002Fdocx\u002Ftextbox","en\u002F04.docx\u002F06.textbox",{"title":54,"path":122,"stem":123},"\u002Fen\u002Fdocx\u002Fcharts","en\u002F04.docx\u002F07.charts",{"title":125,"path":126,"stem":127},"SmartArt","\u002Fen\u002Fdocx\u002Fsmartart","en\u002F04.docx\u002F08.smartart",{"title":129,"path":130,"stem":131},"Media","\u002Fen\u002Fdocx\u002Fmedia","en\u002F04.docx\u002F09.media",{"title":133,"path":134,"stem":135},"Links","\u002Fen\u002Fdocx\u002Flinks","en\u002F04.docx\u002F10.links",{"title":137,"path":138,"stem":139},"Headers and Footers","\u002Fen\u002Fdocx\u002Fheaders-and-footers","en\u002F04.docx\u002F11.headers-and-footers",{"title":141,"path":142,"stem":143},"Equations and Symbols","\u002Fen\u002Fdocx\u002Fequations-and-symbols","en\u002F04.docx\u002F12.equations-and-symbols",{"title":145,"path":146,"stem":147},"Styles and Themes","\u002Fen\u002Fdocx\u002Fstyles-and-themes","en\u002F04.docx\u002F13.styles-and-themes",{"title":149,"path":150,"stem":151},"Page Layout","\u002Fen\u002Fdocx\u002Fpage-layout","en\u002F04.docx\u002F14.page-layout",{"title":153,"path":154,"stem":155},"References","\u002Fen\u002Fdocx\u002Freferences","en\u002F04.docx\u002F15.references",{"title":157,"path":158,"stem":159},"Comments and Revisions","\u002Fen\u002Fdocx\u002Fcomments-and-revisions","en\u002F04.docx\u002F16.comments-and-revisions",{"title":161,"path":162,"stem":163},"Document Properties","\u002Fen\u002Fdocx\u002Fproperties","en\u002F04.docx\u002F17.properties",{"title":165,"path":166,"stem":167},"Export","\u002Fen\u002Fdocx\u002Fexport","en\u002F04.docx\u002F18.export",{"title":72,"path":169,"stem":170},"\u002Fen\u002Fdocx\u002Fparsing","en\u002F04.docx\u002F19.parsing",{"title":172,"path":173,"stem":174},"Patching","\u002Fen\u002Fdocx\u002Fpatch","en\u002F04.docx\u002F20.patch",{"title":176,"icon":177,"path":178,"stem":179,"children":180,"page":30},"PPTX","i-lucide-presentation","\u002Fen\u002Fpptx","en\u002F05.pptx",[181,185,188,192,195,198,201,204,207,210,214,217,220,224,227,231,235,239,243,247,250,253],{"title":182,"path":183,"stem":184},"@office-open\u002Fpptx","\u002Fen\u002Fpptx\u002Foverview","en\u002F05.pptx\u002F01.overview",{"title":102,"path":186,"stem":187},"\u002Fen\u002Fpptx\u002Fquickstart","en\u002F05.pptx\u002F02.quickstart",{"title":189,"path":190,"stem":191},"Shapes and Text","\u002Fen\u002Fpptx\u002Fshapes-and-text","en\u002F05.pptx\u002F03.shapes-and-text",{"title":110,"path":193,"stem":194},"\u002Fen\u002Fpptx\u002Ftables","en\u002F05.pptx\u002F04.tables",{"title":114,"path":196,"stem":197},"\u002Fen\u002Fpptx\u002Fimages","en\u002F05.pptx\u002F05.images",{"title":54,"path":199,"stem":200},"\u002Fen\u002Fpptx\u002Fcharts","en\u002F05.pptx\u002F06.charts",{"title":125,"path":202,"stem":203},"\u002Fen\u002Fpptx\u002Fsmartart","en\u002F05.pptx\u002F07.smartart",{"title":129,"path":205,"stem":206},"\u002Fen\u002Fpptx\u002Fmedia","en\u002F05.pptx\u002F08.media",{"title":133,"path":208,"stem":209},"\u002Fen\u002Fpptx\u002Flinks","en\u002F05.pptx\u002F09.links",{"title":211,"path":212,"stem":213},"Lines and Connectors","\u002Fen\u002Fpptx\u002Flines-and-connectors","en\u002F05.pptx\u002F10.lines-and-connectors",{"title":137,"path":215,"stem":216},"\u002Fen\u002Fpptx\u002Fheaders-and-footers","en\u002F05.pptx\u002F11.headers-and-footers",{"title":141,"path":218,"stem":219},"\u002Fen\u002Fpptx\u002Fequations-and-symbols","en\u002F05.pptx\u002F12.equations-and-symbols",{"title":221,"path":222,"stem":223},"Slide Layout","\u002Fen\u002Fpptx\u002Fslide-layout","en\u002F05.pptx\u002F13.slide-layout",{"title":145,"path":225,"stem":226},"\u002Fen\u002Fpptx\u002Fstyles-and-themes","en\u002F05.pptx\u002F14.styles-and-themes",{"title":228,"path":229,"stem":230},"Effects and Fills","\u002Fen\u002Fpptx\u002Feffects-and-fills","en\u002F05.pptx\u002F15.effects-and-fills",{"title":232,"path":233,"stem":234},"Transitions","\u002Fen\u002Fpptx\u002Ftransitions","en\u002F05.pptx\u002F16.transitions",{"title":236,"path":237,"stem":238},"Animations","\u002Fen\u002Fpptx\u002Fanimations","en\u002F05.pptx\u002F17.animations",{"title":240,"path":241,"stem":242},"Comments","\u002Fen\u002Fpptx\u002Fcomments","en\u002F05.pptx\u002F18.comments",{"title":244,"path":245,"stem":246},"Presentation Properties","\u002Fen\u002Fpptx\u002Fproperties","en\u002F05.pptx\u002F19.properties",{"title":165,"path":248,"stem":249},"\u002Fen\u002Fpptx\u002Fexport","en\u002F05.pptx\u002F20.export",{"title":72,"path":251,"stem":252},"\u002Fen\u002Fpptx\u002Fparsing","en\u002F05.pptx\u002F21.parsing",{"title":172,"path":254,"stem":255},"\u002Fen\u002Fpptx\u002Fpatch","en\u002F05.pptx\u002F22.patch",{"title":257,"icon":258,"path":259,"stem":260,"children":261,"page":30},"XLSX","i-lucide-table-2","\u002Fen\u002Fxlsx","en\u002F06.xlsx",[262,266,269,273,277,281,285,289,292,295,299,303,307,311,314,318,322,326,329,332],{"title":263,"path":264,"stem":265},"@office-open\u002Fxlsx","\u002Fen\u002Fxlsx\u002Foverview","en\u002F06.xlsx\u002F01.overview",{"title":102,"path":267,"stem":268},"\u002Fen\u002Fxlsx\u002Fquickstart","en\u002F06.xlsx\u002F02.quickstart",{"title":270,"path":271,"stem":272},"Cells & Data","\u002Fen\u002Fxlsx\u002Fcells","en\u002F06.xlsx\u002F03.cells",{"title":274,"path":275,"stem":276},"Styles","\u002Fen\u002Fxlsx\u002Fstyles","en\u002F06.xlsx\u002F04.styles",{"title":278,"path":279,"stem":280},"Merge, Columns & Rows","\u002Fen\u002Fxlsx\u002Fmerge-col-row","en\u002F06.xlsx\u002F05.merge-col-row",{"title":282,"path":283,"stem":284},"Hyperlinks","\u002Fen\u002Fxlsx\u002Flinks","en\u002F06.xlsx\u002F06.links",{"title":286,"path":287,"stem":288},"Pivot Tables","\u002Fen\u002Fxlsx\u002Fpivot-tables","en\u002F06.xlsx\u002F07.pivot-tables",{"title":114,"path":290,"stem":291},"\u002Fen\u002Fxlsx\u002Fimages","en\u002F06.xlsx\u002F08.images",{"title":54,"path":293,"stem":294},"\u002Fen\u002Fxlsx\u002Fcharts","en\u002F06.xlsx\u002F09.charts",{"title":296,"path":297,"stem":298},"Page Setup & Headers\u002FFooters","\u002Fen\u002Fxlsx\u002Fpage-setup","en\u002F06.xlsx\u002F10.page-setup",{"title":300,"path":301,"stem":302},"Formulas","\u002Fen\u002Fxlsx\u002Fformulas","en\u002F06.xlsx\u002F11.formulas",{"title":304,"path":305,"stem":306},"Freeze Panes & Auto Filter","\u002Fen\u002Fxlsx\u002Ffreeze-filter","en\u002F06.xlsx\u002F12.freeze-filter",{"title":308,"path":309,"stem":310},"Data Validation","\u002Fen\u002Fxlsx\u002Fvalidation","en\u002F06.xlsx\u002F13.validation",{"title":240,"path":312,"stem":313},"\u002Fen\u002Fxlsx\u002Fcomments","en\u002F06.xlsx\u002F14.comments",{"title":315,"path":316,"stem":317},"Protection","\u002Fen\u002Fxlsx\u002Fprotection","en\u002F06.xlsx\u002F15.protection",{"title":319,"path":320,"stem":321},"Shared Workbook Revisions","\u002Fen\u002Fxlsx\u002Frevisions","en\u002F06.xlsx\u002F16.revisions",{"title":323,"path":324,"stem":325},"Workbook Properties","\u002Fen\u002Fxlsx\u002Fproperties","en\u002F06.xlsx\u002F17.properties",{"title":165,"path":327,"stem":328},"\u002Fen\u002Fxlsx\u002Fexport","en\u002F06.xlsx\u002F18.export",{"title":72,"path":330,"stem":331},"\u002Fen\u002Fxlsx\u002Fparsing","en\u002F06.xlsx\u002F19.parsing",{"title":172,"path":333,"stem":334},"\u002Fen\u002Fxlsx\u002Fpatch","en\u002F06.xlsx\u002F20.patch",{"id":336,"title":38,"body":337,"description":1176,"extension":1177,"links":1178,"meta":1179,"navigation":423,"path":39,"seo":1180,"stem":40,"__hash__":1181},"docs_en\u002Fen\u002F02.core\u002F01.overview.md",{"type":338,"value":339,"toc":1164},"minimark",[340,356,361,365,371,548,562,664,668,671,741,744,861,865,876,880,883,887,890,894,901,965,971,982,986,999,1157,1160],[341,342,343,346,347,349,350,352,353,355],"p",{},[344,345,38],"code",{}," is the shared infrastructure layer for ",[344,348,98],{},", ",[344,351,182],{},", and ",[344,354,263],{},". You typically don't install it directly — but if you're building custom OOXML elements or extending the library, it provides all the building blocks.",[357,358,360],"h2",{"id":359},"module-overview","Module Overview",[362,363,42],"h3",{"id":364},"descriptor-system",[341,366,367,368,370],{},"All OOXML XML parts are defined as descriptors — plain objects that declare how to stringify (JSON → XML) and parse (XML → JSON). The descriptor runtime lives in ",[344,369,38],{},".",[372,373,378],"pre",{"className":374,"code":375,"language":376,"meta":377,"style":377},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import type { CustomDescriptor } from \"@office-open\u002Fcore\";\n\nconst myPartDesc: CustomDescriptor\u003CMyOptions> = {\n  kind: \"custom\",\n  stringify(value, ctx) {\n    \u002F* ...build XML string... *\u002F\n  },\n  parse(el, ctx) {\n    \u002F* ...read XML element into options... *\u002F\n  },\n};\n","ts","",[344,379,380,418,425,456,475,499,506,512,531,537,542],{"__ignoreMap":377},[381,382,385,389,392,396,400,403,406,409,412,415],"span",{"class":383,"line":384},"line",1,[381,386,388],{"class":387},"s7zQu","import",[381,390,391],{"class":387}," type",[381,393,395],{"class":394},"sMK4o"," {",[381,397,399],{"class":398},"sTEyZ"," CustomDescriptor",[381,401,402],{"class":394}," }",[381,404,405],{"class":387}," from",[381,407,408],{"class":394}," \"",[381,410,38],{"class":411},"sfazB",[381,413,414],{"class":394},"\"",[381,416,417],{"class":394},";\n",[381,419,421],{"class":383,"line":420},2,[381,422,424],{"emptyLinePlaceholder":423},true,"\n",[381,426,428,432,435,438,441,444,447,450,453],{"class":383,"line":427},3,[381,429,431],{"class":430},"spNyl","const",[381,433,434],{"class":398}," myPartDesc",[381,436,437],{"class":394},":",[381,439,399],{"class":440},"sBMFI",[381,442,443],{"class":394},"\u003C",[381,445,446],{"class":440},"MyOptions",[381,448,449],{"class":394},">",[381,451,452],{"class":394}," =",[381,454,455],{"class":394}," {\n",[381,457,459,463,465,467,470,472],{"class":383,"line":458},4,[381,460,462],{"class":461},"swJcz","  kind",[381,464,437],{"class":394},[381,466,408],{"class":394},[381,468,469],{"class":411},"custom",[381,471,414],{"class":394},[381,473,474],{"class":394},",\n",[381,476,478,481,484,488,491,494,497],{"class":383,"line":477},5,[381,479,480],{"class":461},"  stringify",[381,482,483],{"class":394},"(",[381,485,487],{"class":486},"sHdIc","value",[381,489,490],{"class":394},",",[381,492,493],{"class":486}," ctx",[381,495,496],{"class":394},")",[381,498,455],{"class":394},[381,500,502],{"class":383,"line":501},6,[381,503,505],{"class":504},"sHwdD","    \u002F* ...build XML string... *\u002F\n",[381,507,509],{"class":383,"line":508},7,[381,510,511],{"class":394},"  },\n",[381,513,515,518,520,523,525,527,529],{"class":383,"line":514},8,[381,516,517],{"class":461},"  parse",[381,519,483],{"class":394},[381,521,522],{"class":486},"el",[381,524,490],{"class":394},[381,526,493],{"class":486},[381,528,496],{"class":394},[381,530,455],{"class":394},[381,532,534],{"class":383,"line":533},9,[381,535,536],{"class":504},"    \u002F* ...read XML element into options... *\u002F\n",[381,538,540],{"class":383,"line":539},10,[381,541,511],{"class":394},[381,543,545],{"class":383,"line":544},11,[381,546,547],{"class":394},"};\n",[341,549,550,551,554,555,558,559,437],{},"Core provides ",[344,552,553],{},"CustomDescriptor\u003CT>"," — every descriptor is custom, with hand-written ",[344,556,557],{},"stringify()"," and ",[344,560,561],{},"parse()",[372,563,565],{"className":374,"code":564,"language":376,"meta":377,"style":377},"\u002F\u002F Serialize: Options → XML string\nconst xml = stringify(spacingDesc, { before: 240, after: 120 }, ctx);\n\u002F\u002F \u003Cw:spacing w:before=\"240\" w:after=\"120\"\u002F>\n\n\u002F\u002F Parse: Element → Options\nconst opts = parse(spacingDesc, element, ctx);\n\u002F\u002F { before: 240, after: 120 }\n",[344,566,567,572,620,625,629,634,659],{"__ignoreMap":377},[381,568,569],{"class":383,"line":384},[381,570,571],{"class":504},"\u002F\u002F Serialize: Options → XML string\n",[381,573,574,576,579,582,586,589,591,593,596,598,602,604,607,609,612,615,618],{"class":383,"line":420},[381,575,431],{"class":430},[381,577,578],{"class":398}," xml ",[381,580,581],{"class":394},"=",[381,583,585],{"class":584},"s2Zo4"," stringify",[381,587,588],{"class":398},"(spacingDesc",[381,590,490],{"class":394},[381,592,395],{"class":394},[381,594,595],{"class":461}," before",[381,597,437],{"class":394},[381,599,601],{"class":600},"sbssI"," 240",[381,603,490],{"class":394},[381,605,606],{"class":461}," after",[381,608,437],{"class":394},[381,610,611],{"class":600}," 120",[381,613,614],{"class":394}," },",[381,616,617],{"class":398}," ctx)",[381,619,417],{"class":394},[381,621,622],{"class":383,"line":427},[381,623,624],{"class":504},"\u002F\u002F \u003Cw:spacing w:before=\"240\" w:after=\"120\"\u002F>\n",[381,626,627],{"class":383,"line":458},[381,628,424],{"emptyLinePlaceholder":423},[381,630,631],{"class":383,"line":477},[381,632,633],{"class":504},"\u002F\u002F Parse: Element → Options\n",[381,635,636,638,641,643,646,648,650,653,655,657],{"class":383,"line":501},[381,637,431],{"class":430},[381,639,640],{"class":398}," opts ",[381,642,581],{"class":394},[381,644,645],{"class":584}," parse",[381,647,588],{"class":398},[381,649,490],{"class":394},[381,651,652],{"class":398}," element",[381,654,490],{"class":394},[381,656,617],{"class":398},[381,658,417],{"class":394},[381,660,661],{"class":383,"line":508},[381,662,663],{"class":504},"\u002F\u002F { before: 240, after: 120 }\n",[362,665,667],{"id":666},"values-validation","Values & Validation",[341,669,670],{},"Runtime validation functions for OOXML specification value types:",[672,673,674,687],"table",{},[675,676,677],"thead",{},[678,679,680,684],"tr",{},[681,682,683],"th",{},"Function",[681,685,686],{},"Description",[688,689,690,701,711,721,731],"tbody",{},[678,691,692,698],{},[693,694,695],"td",{},[344,696,697],{},"decimalNumber(val)",[693,699,700],{},"Validates and floors to integer",[678,702,703,708],{},[693,704,705],{},[344,706,707],{},"hexColorValue(val)",[693,709,710],{},"Validates hex color",[678,712,713,718],{},[693,714,715],{},[344,716,717],{},"twipsMeasureValue(val)",[693,719,720],{},"TWIP measurement",[678,722,723,728],{},[693,724,725],{},[344,726,727],{},"hpsMeasureValue(val)",[693,729,730],{},"Half-point measurement (font sizes)",[678,732,733,738],{},[693,734,735],{},[344,736,737],{},"percentageValue(val)",[693,739,740],{},"Normalizes percentage string",[362,742,50],{"id":743},"unit-converters",[372,745,747],{"className":374,"code":746,"language":376,"meta":377,"style":377},"import {\n  convertMillimetersToTwip,\n  convertInchesToTwip,\n  convertPixelsToEmu,\n  convertEmuToPixels,\n  convertPointsToEmu,\n} from \"@office-open\u002Fcore\";\n\nconvertMillimetersToTwip(25.4); \u002F\u002F 1440 (1 inch)\nconvertPixelsToEmu(100); \u002F\u002F 952500\nconvertPointsToEmu(12); \u002F\u002F 152400\n",[344,748,749,755,762,769,776,783,790,805,809,827,844],{"__ignoreMap":377},[381,750,751,753],{"class":383,"line":384},[381,752,388],{"class":387},[381,754,455],{"class":394},[381,756,757,760],{"class":383,"line":420},[381,758,759],{"class":398},"  convertMillimetersToTwip",[381,761,474],{"class":394},[381,763,764,767],{"class":383,"line":427},[381,765,766],{"class":398},"  convertInchesToTwip",[381,768,474],{"class":394},[381,770,771,774],{"class":383,"line":458},[381,772,773],{"class":398},"  convertPixelsToEmu",[381,775,474],{"class":394},[381,777,778,781],{"class":383,"line":477},[381,779,780],{"class":398},"  convertEmuToPixels",[381,782,474],{"class":394},[381,784,785,788],{"class":383,"line":501},[381,786,787],{"class":398},"  convertPointsToEmu",[381,789,474],{"class":394},[381,791,792,795,797,799,801,803],{"class":383,"line":508},[381,793,794],{"class":394},"}",[381,796,405],{"class":387},[381,798,408],{"class":394},[381,800,38],{"class":411},[381,802,414],{"class":394},[381,804,417],{"class":394},[381,806,807],{"class":383,"line":514},[381,808,424],{"emptyLinePlaceholder":423},[381,810,811,814,816,819,821,824],{"class":383,"line":533},[381,812,813],{"class":584},"convertMillimetersToTwip",[381,815,483],{"class":398},[381,817,818],{"class":600},"25.4",[381,820,496],{"class":398},[381,822,823],{"class":394},";",[381,825,826],{"class":504}," \u002F\u002F 1440 (1 inch)\n",[381,828,829,832,834,837,839,841],{"class":383,"line":539},[381,830,831],{"class":584},"convertPixelsToEmu",[381,833,483],{"class":398},[381,835,836],{"class":600},"100",[381,838,496],{"class":398},[381,840,823],{"class":394},[381,842,843],{"class":504}," \u002F\u002F 952500\n",[381,845,846,849,851,854,856,858],{"class":383,"line":544},[381,847,848],{"class":584},"convertPointsToEmu",[381,850,483],{"class":398},[381,852,853],{"class":600},"12",[381,855,496],{"class":398},[381,857,823],{"class":394},[381,859,860],{"class":504}," \u002F\u002F 152400\n",[362,862,864],{"id":863},"charts-smartart","Charts & SmartArt",[341,866,867,868,871,872,558,874,370],{},"The shared chart descriptor (",[344,869,870],{},"chartSpaceDesc",") and SmartArt components used by both ",[344,873,98],{},[344,875,182],{},[362,877,879],{"id":878},"drawingml","DrawingML",[341,881,882],{},"Shared primitives for colors, fills, outlines, effects, and geometry.",[362,884,886],{"id":885},"vector-vml","Vector (VML)",[341,888,889],{},"The full structured VML vocabulary across the vml, office, word, excel, and presentation namespaces — shapes, strokes, text boxes, and legacy anchors used by text boxes, OLE objects, and cell comments.",[362,891,893],{"id":892},"password-hashing","Password Hashing",[341,895,896,897,900],{},"All packages support plaintext ",[344,898,899],{},"password"," fields for document protection. The core crypto module implements ECMA-376 Agile Encryption with SHA-512:",[372,902,904],{"className":374,"code":903,"language":376,"meta":377,"style":377},"import { derivePasswordHash } from \"@office-open\u002Fcore\";\n\n\u002F\u002F Auto-generates hashValue, saltValue, spinCount, algorithmName\nconst derived = derivePasswordHash(\"secret\");\n\u002F\u002F { hashValue: \"...\", saltValue: \"...\", spinCount: 100000, algorithmName: \"SHA-512\" }\n",[344,905,906,927,931,936,960],{"__ignoreMap":377},[381,907,908,910,912,915,917,919,921,923,925],{"class":383,"line":384},[381,909,388],{"class":387},[381,911,395],{"class":394},[381,913,914],{"class":398}," derivePasswordHash",[381,916,402],{"class":394},[381,918,405],{"class":387},[381,920,408],{"class":394},[381,922,38],{"class":411},[381,924,414],{"class":394},[381,926,417],{"class":394},[381,928,929],{"class":383,"line":420},[381,930,424],{"emptyLinePlaceholder":423},[381,932,933],{"class":383,"line":427},[381,934,935],{"class":504},"\u002F\u002F Auto-generates hashValue, saltValue, spinCount, algorithmName\n",[381,937,938,940,943,945,947,949,951,954,956,958],{"class":383,"line":458},[381,939,431],{"class":430},[381,941,942],{"class":398}," derived ",[381,944,581],{"class":394},[381,946,914],{"class":584},[381,948,483],{"class":398},[381,950,414],{"class":394},[381,952,953],{"class":411},"secret",[381,955,414],{"class":394},[381,957,496],{"class":398},[381,959,417],{"class":394},[381,961,962],{"class":383,"line":477},[381,963,964],{"class":504},"\u002F\u002F { hashValue: \"...\", saltValue: \"...\", spinCount: 100000, algorithmName: \"SHA-512\" }\n",[341,966,967,968,970],{},"This is used internally by DOCX document protection, PPTX modify verifier, and XLSX sheet\u002Fworkbook protection when a ",[344,969,899],{}," field is provided.",[341,972,973,974,977,978,981],{},"The module also exports ",[344,975,976],{},"randomBytes(length)"," for generating cryptographically secure random bytes, and ",[344,979,980],{},"hashPasswordAgile(password, salt, spinCount)"," for computing the ECMA-376 Agile Encryption hash directly.",[362,983,985],{"id":984},"compilation-packing","Compilation & Packing",[341,987,988,989,349,992,352,995,998],{},"Shared ZIP compilation utilities used internally by ",[344,990,991],{},"generateDocument()",[344,993,994],{},"generatePresentation()",[344,996,997],{},"generateWorkbook()",". You typically call the top-level generate functions from each format package rather than using core directly:",[372,1000,1002],{"className":374,"code":1001,"language":376,"meta":377,"style":377},"import { generateDocument } from \"@office-open\u002Fdocx\";\nimport { generatePresentation } from \"@office-open\u002Fpptx\";\nimport { generateWorkbookSync } from \"@office-open\u002Fxlsx\";\n\n\u002F\u002F Async — returns a Buffer (Node.js) or Blob (browser) by default\nconst buffer = await generateDocument(docOptions);\nconst blob = await generateDocument(docOptions, { type: \"blob\" });\n\n\u002F\u002F Sync variants are also available\nconst buf = generateWorkbookSync(xlsxOptions);\n",[344,1003,1004,1025,1046,1067,1071,1076,1095,1132,1136,1141],{"__ignoreMap":377},[381,1005,1006,1008,1010,1013,1015,1017,1019,1021,1023],{"class":383,"line":384},[381,1007,388],{"class":387},[381,1009,395],{"class":394},[381,1011,1012],{"class":398}," generateDocument",[381,1014,402],{"class":394},[381,1016,405],{"class":387},[381,1018,408],{"class":394},[381,1020,98],{"class":411},[381,1022,414],{"class":394},[381,1024,417],{"class":394},[381,1026,1027,1029,1031,1034,1036,1038,1040,1042,1044],{"class":383,"line":420},[381,1028,388],{"class":387},[381,1030,395],{"class":394},[381,1032,1033],{"class":398}," generatePresentation",[381,1035,402],{"class":394},[381,1037,405],{"class":387},[381,1039,408],{"class":394},[381,1041,182],{"class":411},[381,1043,414],{"class":394},[381,1045,417],{"class":394},[381,1047,1048,1050,1052,1055,1057,1059,1061,1063,1065],{"class":383,"line":427},[381,1049,388],{"class":387},[381,1051,395],{"class":394},[381,1053,1054],{"class":398}," generateWorkbookSync",[381,1056,402],{"class":394},[381,1058,405],{"class":387},[381,1060,408],{"class":394},[381,1062,263],{"class":411},[381,1064,414],{"class":394},[381,1066,417],{"class":394},[381,1068,1069],{"class":383,"line":458},[381,1070,424],{"emptyLinePlaceholder":423},[381,1072,1073],{"class":383,"line":477},[381,1074,1075],{"class":504},"\u002F\u002F Async — returns a Buffer (Node.js) or Blob (browser) by default\n",[381,1077,1078,1080,1083,1085,1088,1090,1093],{"class":383,"line":501},[381,1079,431],{"class":430},[381,1081,1082],{"class":398}," buffer ",[381,1084,581],{"class":394},[381,1086,1087],{"class":387}," await",[381,1089,1012],{"class":584},[381,1091,1092],{"class":398},"(docOptions)",[381,1094,417],{"class":394},[381,1096,1097,1099,1102,1104,1106,1108,1111,1113,1115,1117,1119,1121,1124,1126,1128,1130],{"class":383,"line":508},[381,1098,431],{"class":430},[381,1100,1101],{"class":398}," blob ",[381,1103,581],{"class":394},[381,1105,1087],{"class":387},[381,1107,1012],{"class":584},[381,1109,1110],{"class":398},"(docOptions",[381,1112,490],{"class":394},[381,1114,395],{"class":394},[381,1116,391],{"class":461},[381,1118,437],{"class":394},[381,1120,408],{"class":394},[381,1122,1123],{"class":411},"blob",[381,1125,414],{"class":394},[381,1127,402],{"class":394},[381,1129,496],{"class":398},[381,1131,417],{"class":394},[381,1133,1134],{"class":383,"line":514},[381,1135,424],{"emptyLinePlaceholder":423},[381,1137,1138],{"class":383,"line":533},[381,1139,1140],{"class":504},"\u002F\u002F Sync variants are also available\n",[381,1142,1143,1145,1148,1150,1152,1155],{"class":383,"line":539},[381,1144,431],{"class":430},[381,1146,1147],{"class":398}," buf ",[381,1149,581],{"class":394},[381,1151,1054],{"class":584},[381,1153,1154],{"class":398},"(xlsxOptions)",[381,1156,417],{"class":394},[341,1158,1159],{},"Async methods use Web Workers for non-blocking DEFLATE. Sync methods block the main thread but avoid Worker overhead. Compression strategy matches Microsoft Office behavior: XML entries use DEFLATE (level 1, SuperFast); media is split by type — already-compressed formats (JPEG, PNG, GIF) use STORE, the rest (EMF\u002FWMF\u002FBMP\u002FTIFF) use DEFLATE level 6 \u002F Normal.",[1161,1162,1163],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":377,"searchDepth":420,"depth":420,"links":1165},[1166],{"id":359,"depth":420,"text":360,"children":1167},[1168,1169,1170,1171,1172,1173,1174,1175],{"id":364,"depth":427,"text":42},{"id":666,"depth":427,"text":667},{"id":743,"depth":427,"text":50},{"id":863,"depth":427,"text":864},{"id":878,"depth":427,"text":879},{"id":885,"depth":427,"text":886},{"id":892,"depth":427,"text":893},{"id":984,"depth":427,"text":985},"Shared OOXML infrastructure — descriptors, validators, converters, charts, and SmartArt","md",null,{},{"title":38,"description":1176},"IDov8ZTnlE2C4ZfWlXzW1hEvfEMLe8MaPg6qM1JAepc",[1183,1185],{"title":27,"path":28,"stem":29,"description":1184,"children":-1},"Use Office Open with AI agents via MCP, Skills, and LLMs.txt",{"title":42,"path":43,"stem":44,"description":1186,"children":-1},"Declarative XML mapping for OOXML elements — stringify and parse",1787501491021]