@office-open/core 0.12.3 → 0.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chart/index.d.mts +2 -2
- package/dist/chart/index.mjs +1 -1
- package/dist/{chart-DEIF3VZn.mjs → chart-Bn_McAo-.mjs} +4 -4
- package/dist/chart-Bn_McAo-.mjs.map +1 -0
- package/dist/drawing/index.d.mts +2 -2
- package/dist/drawing/index.mjs +1 -1
- package/dist/{drawing-BVwCkNXB.mjs → drawing-DJ363Awy.mjs} +102 -108
- package/dist/drawing-DJ363Awy.mjs.map +1 -0
- package/dist/{ext-uri-BHBcIrW7.mjs → ext-uri-BR1ouCh3.mjs} +6 -11
- package/dist/ext-uri-BR1ouCh3.mjs.map +1 -0
- package/dist/{index-DRggxtp7.d.mts → index-6_MYd0cg.d.mts} +3 -3
- package/dist/{index-DRggxtp7.d.mts.map → index-6_MYd0cg.d.mts.map} +1 -1
- package/dist/{index-DPkf_CtG.d.mts → index-BDeoFmTS.d.mts} +146 -149
- package/dist/index-BDeoFmTS.d.mts.map +1 -0
- package/dist/{index-DfFszyH1.d.mts → index-Cd0lFS5x.d.mts} +9 -17
- package/dist/index-Cd0lFS5x.d.mts.map +1 -0
- package/dist/{index-DcukVskh.d.mts → index-DOtPArpl.d.mts} +2 -2
- package/dist/{index-DcukVskh.d.mts.map → index-DOtPArpl.d.mts.map} +1 -1
- package/dist/{index-BwRtWyaP.d.mts → index-Dg0nIw2S.d.mts} +7 -7
- package/dist/{index-BwRtWyaP.d.mts.map → index-Dg0nIw2S.d.mts.map} +1 -1
- package/dist/{index-L6AXewfV.d.mts → index-DkJrkIVp.d.mts} +2 -3
- package/dist/index-DkJrkIVp.d.mts.map +1 -0
- package/dist/index.d.mts +8 -8
- package/dist/index.mjs +30 -10
- package/dist/index.mjs.map +1 -1
- package/dist/patch-AkQY17CD.mjs.map +1 -1
- package/dist/smartart/index.d.mts +1 -1
- package/dist/smartart/index.mjs +1 -1
- package/dist/{smartart-YH87Emca.mjs → smartart-D-8KBdQ_.mjs} +4 -4
- package/dist/{smartart-YH87Emca.mjs.map → smartart-D-8KBdQ_.mjs.map} +1 -1
- package/dist/{style-matrix-DjhMuuQg.mjs → style-matrix-B6YSVw6a.mjs} +2 -2
- package/dist/{style-matrix-DjhMuuQg.mjs.map → style-matrix-B6YSVw6a.mjs.map} +1 -1
- package/dist/theme/index.d.mts +3 -3
- package/dist/theme/index.mjs +2 -2
- package/dist/{theme-Dx0Db9bX.mjs → theme-BdqG5lmO.mjs} +3 -3
- package/dist/theme-BdqG5lmO.mjs.map +1 -0
- package/dist/{theme-options-kO89NUEX.d.mts → theme-options-wZX4i_xx.d.mts} +2 -2
- package/dist/{theme-options-kO89NUEX.d.mts.map → theme-options-wZX4i_xx.d.mts.map} +1 -1
- package/dist/util/index.d.mts +2 -2
- package/dist/util/index.mjs +3 -3
- package/dist/{util-iHHKF2Rx.mjs → util-BGfk-gE0.mjs} +2 -2
- package/dist/{util-iHHKF2Rx.mjs.map → util-BGfk-gE0.mjs.map} +1 -1
- package/dist/vector/index.d.mts +2 -2
- package/dist/vector/index.mjs +2 -2
- package/dist/{vector-DZ_OteHJ.mjs → vector-BhETDAdp.mjs} +2 -9
- package/dist/vector-BhETDAdp.mjs.map +1 -0
- package/package.json +2 -2
- package/dist/chart-DEIF3VZn.mjs.map +0 -1
- package/dist/drawing-BVwCkNXB.mjs.map +0 -1
- package/dist/ext-uri-BHBcIrW7.mjs.map +0 -1
- package/dist/index-DPkf_CtG.d.mts.map +0 -1
- package/dist/index-DfFszyH1.d.mts.map +0 -1
- package/dist/index-L6AXewfV.d.mts.map +0 -1
- package/dist/theme-Dx0Db9bX.mjs.map +0 -1
- package/dist/vector-DZ_OteHJ.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ext-uri-BHBcIrW7.mjs","names":[],"sources":["../src/util/values.ts","../src/util/base64.ts","../src/util/data-type.ts","../src/util/mappings.ts","../src/util/converters.ts","../src/util/generators.ts","../src/util/image-type.ts","../src/util/ext-uri.ts"],"sourcesContent":["/**\n * Runtime validation and type conversion functions for OOXML specification values.\n *\n * This module provides runtime checks and cleanup for value types in the OOXML spec\n * that aren't easily expressed through the TypeScript type system alone. These\n * validators help prevent silent failures and corrupted documents by enforcing\n * spec-compliant values at runtime.\n *\n * @module\n */\n\n/**\n * A measurement value with optional sign and unit suffix.\n *\n * Supports units: mm (millimeters), cm (centimeters), in (inches), pt (points),\n * pc (picas), pi (picas), and a project-only px (96 DPI pixels).\n *\n * px is NOT part of OOXML's ST_UniversalMeasure (whose pattern is\n * `-?[0-9]+(\\.[0-9]+)?(mm|cm|in|pt|pc|pi)`); it is a project extension so\n * geometry APIs can accept `\"200px\"` alongside `\"5cm\"`. px is converted to EMU\n * (or TWIP) on input and never written to XML verbatim. Note: Word line spacing\n * with lineRule=\"auto\" uses a bare multiple (240ths of a line), not a measure,\n * so px is irrelevant there; spacing before/after and indents accept px and\n * convert it to twips (1px = 15twip).\n *\n * @example\n * ```typescript\n * const measure: UniversalMeasure = \"10.5mm\";\n * const px: UniversalMeasure = \"200px\";\n * const negative: UniversalMeasure = \"-5pt\";\n * ```\n */\nexport type UniversalMeasure =\n `${\"-\" | \"\"}${number}${\"mm\" | \"cm\" | \"in\" | \"pt\" | \"pc\" | \"pi\" | \"px\"}`;\n\n/**\n * A positive measurement value with unit suffix.\n *\n * Same as UniversalMeasure but restricted to positive values only.\n *\n * Reference: ST_PositiveUniversalMeasure in OOXML specification\n *\n * @example\n * ```typescript\n * const measure: PositiveUniversalMeasure = \"10.5mm\";\n * ```\n */\nexport type PositiveUniversalMeasure = `${number}${\"mm\" | \"cm\" | \"in\" | \"pt\" | \"pc\" | \"pi\"}`;\n\n/**\n * A percentage value with optional sign.\n *\n * Pattern: `-?[0-9]+(\\.[0-9]+)?%`\n *\n * Reference: ST_Percentage in OOXML specification\n *\n * @example\n * ```typescript\n * const percent: Percentage = \"50%\";\n * const negative: Percentage = \"-10.5%\";\n * ```\n */\nexport type Percentage = `${\"-\" | \"\"}${number}%`;\n\n/**\n * A positive percentage value.\n *\n * Same as Percentage but restricted to positive values only.\n *\n * Reference: ST_PositivePercentage in OOXML specification\n *\n * @example\n * ```typescript\n * const percent: PositivePercentage = \"50%\";\n * ```\n */\nexport type PositivePercentage = `${number}%`;\n\n/**\n * A relative measurement value using em or ex units.\n *\n * Used in VML text boxes for font-relative measurements.\n *\n * @example\n * ```typescript\n * const measure: RelativeMeasure = \"2em\";\n * const negative: RelativeMeasure = \"-0.5ex\";\n * ```\n */\nexport type RelativeMeasure = `${\"-\" | \"\"}${number}${\"em\" | \"ex\"}`;\n\n// ── Constrained string value domains ──\n//\n// Plain-string aliases over XSD facets that enumeration cannot express\n// (hex digits, GUID shape, base64). The JSON schema generator attaches the\n// matching regex to each alias definition, so schema-driven generation gets\n// a hard constraint where TypeScript alone stays permissive.\n\n/**\n * A 6-digit hex RGB color, without \"#\" (ST_HexColorRGB — 3-byte hexBinary).\n *\n * DrawingML writes it in upper case (\"FF0000\"); the pattern admits both\n * cases since parse keeps source casing verbatim.\n *\n * @example\n * ```typescript\n * const color: HexColor = \"4472C4\";\n * ```\n */\nexport type HexColor = string;\n\n/**\n * An 8-digit hex ARGB color (ST_UnsignedIntHex in sml.xsd — 4-byte\n * hexBinary). SpreadsheetML tab colors carry the alpha channel verbatim\n * (\"FF4472C4\" is opaque blue); most other sml color fields normalize to\n * {@link HexColor} with the library owning the FF prefix.\n *\n * @example\n * ```typescript\n * const tab: ArgbHexColor = \"FF4472C4\";\n * ```\n */\nexport type ArgbHexColor = string;\n\n/**\n * \"auto\" or a 6-digit hex RGB color (ST_HexColor — union of ST_HexColorAuto\n * and ST_HexColorRGB in wml.xsd).\n *\n * @example\n * ```typescript\n * const auto: HexColorOrAuto = \"auto\";\n * const red: HexColorOrAuto = \"FF0000\";\n * ```\n */\nexport type HexColorOrAuto = string;\n\n/**\n * A GUID in braced form (ST_Guid — `{{8-4-4-4-12 hex}}`, upper case per the\n * XSD pattern; Office writes it braced).\n *\n * @example\n * ```typescript\n * const id: Guid = \"{1DF903F5-8FC7-4C6A-9DF9-2AB1D10E6D84}\";\n * ```\n */\nexport type Guid = string;\n\n/**\n * A 20-digit hex Panose-1 font classification string (ST_Panose — 10-byte\n * hexBinary, e.g. \"020F0502020204030204\" for Arial).\n */\nexport type Panose = string;\n\n/**\n * An 8-digit hex number (ST_LongHexNumber in wml.xsd — 4-byte hexBinary).\n * Word revision-save ids (rsid) and font-signature bytes (usb/csb) use it.\n */\nexport type LongHexNumber = string;\n\n/**\n * A 4-digit hex number (ST_ShortHexNumber in wml.xsd — 2-byte hexBinary).\n */\nexport type ShortHexNumber = string;\n\n/**\n * A 2-digit hex byte (ST_UcharHexNumber in wml.xsd — 1-byte hexBinary).\n * Border/shading theme tint and shade percentages use it.\n */\nexport type UcharHexNumber = string;\n\n/**\n * A 4-digit hex number (ST_UnsignedShortHex in sml.xsd — 2-byte hexBinary).\n * The legacy file-sharing reservation password hash uses it.\n */\nexport type UnsignedShortHex = string;\n\n/**\n * Base64-encoded bytes (xsd:base64Binary). Workbook, sheet, and write\n * protection carry password hashes and salts in this form.\n *\n * @example\n * ```typescript\n * const hash: Base64 = \"Hh8eLiw+KTpAPT4nPj8=\";\n * ```\n */\nexport type Base64 = string;\n\n/**\n * An xsd:dateTime timestamp in ISO 8601 form (track-change and comment\n * dates). Office writes the UTC \"Z\" suffix (\"2024-06-01T09:30:00Z\").\n *\n * @example\n * ```typescript\n * const stamp: DateTime = \"2024-06-01T09:30:00Z\";\n * ```\n */\nexport type DateTime = string;\n\n/**\n * Validates and converts a number to an integer (decimal number).\n *\n * Reference: ST_DecimalNumber in OOXML specification\n *\n * @param val - The number to validate and convert\n * @returns The floored integer value\n * @throws Error if the value is NaN\n *\n * @example\n * ```typescript\n * const num = decimalNumber(10.7); // Returns 10\n * const negative = decimalNumber(-5.3); // Returns -5\n * ```\n */\nexport const decimalNumber = (val: number): number => {\n if (!Number.isFinite(val)) {\n throw new Error(`Invalid value '${val}' specified. Must be a finite number.`);\n }\n return Math.floor(val);\n};\n\n/**\n * Validates and converts a number to a positive integer (unsigned decimal number).\n *\n * Reference: ST_UnsignedDecimalNumber in OOXML specification\n *\n * @param val - The number to validate and convert\n * @returns The floored positive integer value\n * @throws Error if the value is NaN or negative\n *\n * @example\n * ```typescript\n * const num = unsignedDecimalNumber(10.7); // Returns 10\n * const invalid = unsignedDecimalNumber(-5); // Throws Error\n * ```\n */\nexport const unsignedDecimalNumber = (val: number): number => {\n const value = decimalNumber(val);\n if (value < 0) {\n throw new Error(`Invalid value '${val}' specified. Must be a positive integer.`);\n }\n return value;\n};\n\n/**\n * Validates and normalizes a hexadecimal binary value.\n *\n * The xsd:hexBinary type represents binary data as a sequence of binary octets\n * using hexadecimal encoding, where each binary octet is a two-character\n * hexadecimal number. Both lowercase and uppercase letters A-F are permitted.\n *\n * @param val - The hexadecimal string to validate\n * @param length - The expected length in bytes (not characters)\n * @returns The validated hexadecimal string\n * @throws Error if the value is not a valid hex string of the expected length\n *\n * @example\n * ```typescript\n * hexBinary(\"0FB8\", 2); // Valid: 2 bytes = 4 characters\n * hexBinary(\"ABC\", 2); // Invalid: wrong length\n * ```\n */\nexport const hexBinary = (val: string, length: number): string => {\n const expectedLength = length * 2;\n if (val.length !== expectedLength || isNaN(Number(`0x${val}`))) {\n throw new Error(`Invalid hex value '${val}'. Expected ${expectedLength} digit hex value`);\n }\n return val;\n};\n\n/**\n * Validates a long hexadecimal number (4 bytes / 8 characters).\n *\n * Reference: ST_LongHexNumber in OOXML specification\n *\n * @param val - The hexadecimal string to validate\n * @returns The validated hexadecimal string\n * @throws Error if the value is not a valid 8-character hex string\n *\n * @example\n * ```typescript\n * const hex = longHexNumber(\"ABCD1234\"); // Valid\n * ```\n */\nexport const longHexNumber = (val: string): string => hexBinary(val, 4);\n\n/**\n * Validates a short hexadecimal number (2 bytes / 4 characters).\n *\n * Reference: ST_ShortHexNumber in OOXML specification\n *\n * @param val - The hexadecimal string to validate\n * @returns The validated hexadecimal string\n * @throws Error if the value is not a valid 4-character hex string\n *\n * @example\n * ```typescript\n * const hex = shortHexNumber(\"AB12\"); // Valid\n * ```\n */\nexport const shortHexNumber = (val: string): string => hexBinary(val, 2);\n\n/**\n * Validates a single-byte hexadecimal number (1 byte / 2 characters).\n *\n * Reference: ST_UcharHexNumber in OOXML specification\n *\n * @param val - The hexadecimal string to validate\n * @returns The validated hexadecimal string\n * @throws Error if the value is not a valid 2-character hex string\n *\n * @example\n * ```typescript\n * const hex = uCharHexNumber(\"FF\"); // Valid\n * ```\n */\nexport const uCharHexNumber = (val: string): string => hexBinary(val, 1);\n\n/**\n * Normalizes a universal measure value by parsing and reformatting.\n *\n * Ensures the numeric portion is properly formatted while preserving the unit.\n *\n * Reference: ST_UniversalMeasure in OOXML specification\n *\n * @param val - The universal measure string to normalize\n * @returns The normalized universal measure\n *\n * @example\n * ```typescript\n * const measure = universalMeasureValue(\"10.500mm\"); // Returns \"10.5mm\"\n * ```\n */\nexport const universalMeasureValue = (val: UniversalMeasure): UniversalMeasure => {\n const unit = val.slice(-2);\n const amount = val.substring(0, val.length - 2);\n return `${Number(amount)}${unit}` as UniversalMeasure;\n};\n\n/**\n * Validates and normalizes a positive universal measure value.\n *\n * Reference: ST_PositiveUniversalMeasure in OOXML specification\n *\n * @param val - The positive universal measure string to validate\n * @returns The normalized positive universal measure\n * @throws Error if the value is negative\n *\n * @example\n * ```typescript\n * const measure = positiveUniversalMeasureValue(\"10.5mm\"); // Valid\n * const invalid = positiveUniversalMeasureValue(\"-5mm\"); // Throws Error\n * ```\n */\nexport const positiveUniversalMeasureValue = (\n val: PositiveUniversalMeasure,\n): PositiveUniversalMeasure => {\n const value = universalMeasureValue(val);\n if (parseFloat(value) < 0) {\n throw new Error(`Invalid value '${value}' specified. Expected a positive number.`);\n }\n return value as PositiveUniversalMeasure;\n};\n\n/**\n * Validates and normalizes a hexadecimal color value.\n *\n * Accepts either \"auto\" or a 6-character RGB hex value (with or without # prefix).\n * The # prefix is commonly used but technically invalid in OOXML, so it is stripped\n * for strict compliance.\n *\n * Reference: ST_HexColor in OOXML specification\n *\n * @param val - The color value to validate (\"auto\" or hex color)\n * @returns The normalized color value\n * @throws Error if the hex color is invalid\n *\n * @example\n * ```typescript\n * const color1 = hexColorValue(\"auto\"); // Returns \"auto\"\n * const color2 = hexColorValue(\"FF0000\"); // Returns \"FF0000\"\n * const color3 = hexColorValue(\"#00FF00\"); // Returns \"00FF00\" (# stripped)\n * ```\n */\nexport const hexColorValue = (val: string): string => {\n if (val === \"auto\") {\n return val;\n }\n // It's super common to see colors prefixed with a pound, but technically invalid here.\n // Most clients work with it, but strip it off anyway for strict compliance.\n const color = stripColorHashPrefix(val);\n return hexBinary(color, 3);\n};\n\n/**\n * Strips the leading \"#\" prefix from a color string if present.\n *\n * Hex color values in OOXML do not include the \"#\" prefix, but user input\n * commonly includes it. This helper normalizes color strings for OOXML output.\n *\n * @param color - The color string (with or without \"#\" prefix)\n * @returns The color string without the \"#\" prefix\n *\n * @example\n * ```typescript\n * stripColorHashPrefix(\"#FF0000\"); // Returns \"FF0000\"\n * stripColorHashPrefix(\"00FF00\"); // Returns \"00FF00\"\n * ```\n */\nexport const stripColorHashPrefix = (color: string): string =>\n color.charAt(0) === \"#\" ? color.substring(1) : color;\n\n/**\n * Parses an ST_OnOff / xsd:boolean attribute value.\n *\n * Accepts the full union lexical space leniently on read: true/false, 1/0\n * (number or string — nativeTypeAttributes coerces 1/0 to numbers), and\n * on/off (legal only in wml's ST_OnOff union, not in xsd:boolean). Emission\n * stays per-schema canonical (\"1\"/\"0\").\n *\n * Reference: ST_OnOff in shared-commonSimpleTypes.xsd\n *\n * @param raw - The raw attribute value (string, number, or boolean)\n * @returns The parsed boolean, or undefined when unrecognized\n *\n * @example\n * ```typescript\n * parseOnOff(\"1\"); // true\n * parseOnOff(\"off\"); // false\n * parseOnOff(1); // true (nativeTypeAttributes number coercion)\n * ```\n */\nexport const parseOnOff = (raw: string | number | boolean | undefined): boolean | undefined => {\n if (raw === undefined) return undefined;\n if (typeof raw === \"boolean\") return raw;\n const s = String(raw).toLowerCase();\n // Full ST_OnOff union across editions — the original 2006 enumeration\n // included the single-letter t/f Word 2007 wrote.\n if (s === \"1\" || s === \"true\" || s === \"on\" || s === \"t\") return true;\n if (s === \"0\" || s === \"false\" || s === \"off\" || s === \"f\") return false;\n return undefined;\n};\n\n/**\n * Validates a signed TWIP measurement value.\n *\n * Accepts either a universal measure string or a numeric TWIP value.\n *\n * Reference: ST_SignedTwipsMeasure in OOXML specification\n *\n * @param val - The measurement value (universal measure or number)\n * @returns The normalized measurement value\n *\n * @example\n * ```typescript\n * const measure1 = signedTwipsMeasureValue(\"10mm\");\n * const measure2 = signedTwipsMeasureValue(1440); // 1 inch in TWIP\n * ```\n */\nexport const signedTwipsMeasureValue = (\n val: UniversalMeasure | number,\n): UniversalMeasure | number =>\n typeof val === \"string\" ? universalMeasureValue(val) : decimalNumber(val);\n\n/**\n * Validates a half-point (HPS) measurement value.\n *\n * Accepts either a positive universal measure string or a positive number.\n * HPS (half-points) are commonly used for font sizes.\n *\n * Reference: ST_HpsMeasure in OOXML specification\n *\n * @param val - The measurement value (positive universal measure or number)\n * @returns The normalized measurement value\n *\n * @example\n * ```typescript\n * const fontSize1 = hpsMeasureValue(\"12pt\");\n * const fontSize2 = hpsMeasureValue(24); // 12pt in half-points\n * ```\n */\nexport const hpsMeasureValue = (val: PositiveUniversalMeasure | number): string | number =>\n typeof val === \"string\" ? positiveUniversalMeasureValue(val) : unsignedDecimalNumber(val);\n\n/**\n * Validates a signed half-point (HPS) measurement value.\n *\n * Accepts either a universal measure string or a numeric value.\n *\n * Reference: ST_SignedHpsMeasure in OOXML specification\n *\n * @param val - The measurement value (universal measure or number)\n * @returns The normalized measurement value\n *\n * @example\n * ```typescript\n * const spacing1 = signedHpsMeasureValue(\"6pt\");\n * const spacing2 = signedHpsMeasureValue(-12); // Negative spacing\n * ```\n */\nexport const signedHpsMeasureValue = (val: UniversalMeasure | number): string | number =>\n typeof val === \"string\" ? universalMeasureValue(val) : decimalNumber(val);\n\n/**\n * Validates a positive TWIP measurement value.\n *\n * Accepts either a positive universal measure string or a positive number.\n *\n * Reference: ST_TwipsMeasure in OOXML specification\n *\n * @param val - The measurement value (positive universal measure or number)\n * @returns The normalized measurement value\n *\n * @example\n * ```typescript\n * const width1 = twipsMeasureValue(\"25.4mm\");\n * const width2 = twipsMeasureValue(1440); // 1 inch in TWIP\n * ```\n */\nexport const twipsMeasureValue = (\n val: PositiveUniversalMeasure | number,\n): PositiveUniversalMeasure | number =>\n typeof val === \"string\" ? positiveUniversalMeasureValue(val) : unsignedDecimalNumber(val);\n\n/**\n * Normalizes a percentage value by parsing and reformatting.\n *\n * Reference: ST_Percentage in OOXML specification\n *\n * @param val - The percentage string to normalize\n * @returns The normalized percentage\n *\n * @example\n * ```typescript\n * const percent = percentageValue(\"50.000%\"); // Returns \"50%\"\n * ```\n */\nexport const percentageValue = (val: Percentage): Percentage => {\n const percent = val.substring(0, val.length - 1);\n return `${Number(percent)}%`;\n};\n\n/**\n * Validates a measurement value that can be expressed as a number, percentage, or universal measure.\n *\n * Reference: ST_MeasurementOrPercent in OOXML specification\n *\n * @param val - The measurement value (number, percentage, or universal measure)\n * @returns The normalized measurement value\n *\n * @example\n * ```typescript\n * const measure1 = measurementOrPercentValue(100); // Unqualified number\n * const measure2 = measurementOrPercentValue(\"50%\"); // Percentage\n * const measure3 = measurementOrPercentValue(\"10mm\"); // Universal measure\n * ```\n */\nexport const measurementOrPercentValue = (\n val: number | Percentage | UniversalMeasure,\n): number | UniversalMeasure | Percentage => {\n if (typeof val === \"number\") {\n return decimalNumber(val);\n }\n if (val.slice(-1) === \"%\") {\n return percentageValue(val as Percentage);\n }\n return universalMeasureValue(val as UniversalMeasure);\n};\n\n/**\n * Validates an eighth-point measurement value.\n *\n * Eighth-points are used for fine-grained measurements in text formatting.\n *\n * Reference: ST_EighthPointMeasure in OOXML specification\n *\n * @param val - The measurement value in eighth-points\n * @returns The validated positive integer value\n *\n * @example\n * ```typescript\n * const measure = eighthPointMeasureValue(16); // 2 points\n * ```\n */\nexport const eighthPointMeasureValue = unsignedDecimalNumber;\n\n/**\n * Validates a point measurement value.\n *\n * Reference: ST_PointMeasure in OOXML specification\n *\n * @param val - The measurement value in points\n * @returns The validated positive integer value\n *\n * @example\n * ```typescript\n * const fontSize = pointMeasureValue(12); // 12pt\n * ```\n */\nexport const pointMeasureValue = unsignedDecimalNumber;\n\n// Cspell:words CCYY\n/**\n * Converts a JavaScript Date object to an ISO 8601 date-time string.\n *\n * The format is CCYY-MM-DDThh:mm:ss.sssZ where T is a literal and Z indicates UTC.\n * This matches the xsd:dateTime format required by OOXML.\n *\n * Reference: ST_DateTime in OOXML specification\n *\n * @param val - The Date object to convert\n * @returns An ISO 8601 formatted date-time string\n *\n * @example\n * ```typescript\n * const now = new Date();\n * const timestamp = dateTimeValue(now); // Returns \"2024-01-15T10:30:00.000Z\"\n * ```\n */\nexport const dateTimeValue = (val: Date): string => val.toISOString();\n\n/**\n * Theme color values used throughout OOXML for referencing document theme colors.\n *\n * Reference: ST_ThemeColor in OOXML specification\n *\n * @publicApi\n */\nexport type ThemeColor =\n | \"dark1\"\n | \"light1\"\n | \"dark2\"\n | \"light2\"\n | \"accent1\"\n | \"accent2\"\n | \"accent3\"\n | \"accent4\"\n | \"accent5\"\n | \"accent6\"\n | \"hyperlink\"\n | \"followedHyperlink\"\n | \"none\"\n | \"background1\"\n | \"text1\"\n | \"background2\"\n | \"text2\";\n\n/**\n * Theme font values used for referencing document theme fonts.\n *\n * Reference: ST_Theme in OOXML specification\n *\n * @publicApi\n */\nexport type ThemeFont =\n | \"majorEastAsia\"\n | \"majorBidi\"\n | \"majorAscii\"\n | \"majorHAnsi\"\n | \"minorEastAsia\"\n | \"minorBidi\"\n | \"minorAscii\"\n | \"minorHAnsi\";\n","/**\n * Shared base64 encode/decode helpers.\n *\n * Both prefer the native `Uint8Array` base64 methods (Node 22+, modern\n * browsers): they avoid the intermediate binary string that `btoa`/`atob`\n * materialize and cannot stack-overflow on large buffers. Node `Buffer` is the\n * secondary path; a manual loop covers older runtimes.\n *\n * @module\n */\n\n/**\n * Decode a base64 string into a `Uint8Array`.\n *\n * Prefers native `Uint8Array.fromBase64` (no intermediate binary string), then\n * Node `Buffer` (zero-copy), then `atob`.\n */\nexport function decodeBase64(input: string): Uint8Array {\n const fromBase64 = (Uint8Array as { fromBase64?: (s: string) => Uint8Array }).fromBase64;\n if (typeof fromBase64 === \"function\") return fromBase64.call(Uint8Array, input);\n if (typeof Buffer !== \"undefined\") return Buffer.from(input, \"base64\");\n return Uint8Array.from(atob(input), (c) => c.codePointAt(0)!);\n}\n\n/**\n * Encode a `Uint8Array` into a base64 string.\n *\n * Prefers native `Uint8Array.prototype.toBase64` (no intermediate binary\n * string), then Node `Buffer` (zero-copy), then a `btoa` fallback.\n *\n * The fallback builds the binary string in a loop rather than\n * `String.fromCharCode(...bytes)` — the spread form places every byte on the\n * call stack and overflows for large buffers (V8 caps function arguments near\n * ~65k).\n */\nexport function encodeBase64(bytes: Uint8Array): string {\n const toBase64 = (Uint8Array.prototype as { toBase64?: () => string }).toBase64;\n if (typeof toBase64 === \"function\") return toBase64.call(bytes);\n if (typeof Buffer !== \"undefined\") return Buffer.from(bytes).toString(\"base64\");\n let binary = \"\";\n for (const byte of bytes) {\n binary += String.fromCharCode(byte);\n }\n return btoa(binary);\n}\n","/**\n * Binary input normalization.\n *\n * Accepts the full range of binary inputs (Buffer/Uint8Array/ArrayBuffer/\n * DataView/number[]/string/base64 data URL/…) and normalizes to `Uint8Array`.\n * Centralized here so every entry point (packer, patch, descriptor helpers)\n * shares one definition instead of re-declaring per module.\n *\n * @module\n */\nimport { decodeBase64 } from \"./base64\";\n\n/** Supported binary input shapes. */\nexport type DataType =\n | ArrayBufferLike\n | Blob\n | DataView\n | number[]\n | ReadableStream\n | string\n | Uint8Array;\n\n// Matches data:[<mediatype>][;base64],<data> — a base64 data URL. Mirrors the\n// `isBase64DataURL` check in unjs/undio so plain strings stay UTF-8 text.\nconst DATA_URL_RE = /^data:([\\w.+-]+\\/[\\w.+-]+)?;base64,/;\n\n/** Test whether a string is a base64 data URL (`data:[mime];base64,...`). */\nexport function isBase64DataURL(input: string): boolean {\n return DATA_URL_RE.test(input);\n}\n\n/** Options for {@link toUint8Array}. */\nexport interface ToUint8ArrayOptions {\n /**\n * How to interpret a plain (non-data-URL) string input. Data URLs\n * (`data:...;base64,...`) and binary inputs (Buffer/Uint8Array/ArrayBuffer/\n * DataView/number[]) are auto-detected and ignore this hint.\n *\n * - `\"utf8\"` (default): UTF-8 text.\n * - `\"base64\"`: base64-encoded binary — e.g. an image supplied via\n * `readFileSync(...).toString(\"base64\")`.\n */\n encoding?: \"utf8\" | \"base64\";\n}\n\n/** Normalize any supported binary input to a `Uint8Array`. */\nexport function toUint8Array(data: DataType, options?: ToUint8ArrayOptions): Uint8Array {\n if (data instanceof Uint8Array) return data;\n if (data instanceof ArrayBuffer) return new Uint8Array(data);\n if (data instanceof DataView)\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n if (typeof data === \"string\") {\n const match = data.match(DATA_URL_RE);\n if (match) return decodeBase64(data.slice(match[0].length));\n if (options?.encoding === \"base64\") return decodeBase64(data);\n return new TextEncoder().encode(data);\n }\n if (Array.isArray(data)) return new Uint8Array(data);\n if (data instanceof Blob) throw new TypeError(\"Blob input requires async processing\");\n if (data instanceof ReadableStream)\n throw new TypeError(\"ReadableStream input requires async processing\");\n throw new TypeError(`Unsupported data type: ${typeof data}`);\n}\n","/**\n * Bidirectional mappings between user-friendly values and XSD abbreviated values.\n *\n * When XSD uses full English words (e.g. \"center\", \"start\"), values are used directly — no mapping needed.\n * When XSD uses abbreviations (e.g. \"ctr\", \"l\", \"rnd\"), this module maps them to full words.\n *\n * Usage in generation (Options → XML): xsdAlign.to(\"center\") → \"ctr\"\n * Usage in parsing (XML → Options): xsdAlign.from(\"ctr\") → \"center\"\n */\n\n/** Invert a Record<K, V> into Record<V, K>. */\nexport function invertMap<K extends string, V extends string>(map: Record<K, V>): Record<V, K> {\n const result = {} as Record<V, K>;\n for (const key of Object.keys(map) as K[]) {\n result[map[key]] = key;\n }\n return result;\n}\n\n/** Create a bidirectional mapping helper from a single forward map. */\nfunction bidi<K extends string, V extends string>(forward: Record<K, V>) {\n const reverse = invertMap(forward);\n return {\n /** User-friendly value → XSD value */\n to: (key: string): string => (forward as Record<string, string>)[key] ?? key,\n /** XSD value → user-friendly value */\n from: (xsd: string): string => (reverse as Record<string, string>)[xsd] ?? xsd,\n /** The forward map (user → XSD) */\n forward,\n /** The reverse map (XSD → user) */\n reverse,\n };\n}\n\n// ---------------------------------------------------------------------------\n// DrawingML — Direction / Position (ST_RectAlignment)\n// Used by: RectAlignment, TileAlignment, ReflectionAlignment\n// ---------------------------------------------------------------------------\n\nexport const xsdRectAlignment = bidi({\n topLeft: \"tl\",\n top: \"t\",\n topRight: \"tr\",\n left: \"l\",\n center: \"ctr\",\n right: \"r\",\n bottomLeft: \"bl\",\n bottom: \"b\",\n bottomRight: \"br\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// DrawingML — Text alignment (ST_TextAlignType)\n// Used by: TextAlignment (pptx)\n// ---------------------------------------------------------------------------\n\nexport const xsdTextAlign = bidi({\n left: \"l\",\n center: \"ctr\",\n right: \"r\",\n justify: \"just\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// DrawingML — Text anchoring (ST_TextAnchoringType)\n// Used by: VerticalAlignment (pptx)\n// ---------------------------------------------------------------------------\n\nexport const xsdTextAnchor = bidi({\n top: \"t\",\n center: \"ctr\",\n bottom: \"b\",\n justify: \"just\",\n distribute: \"dist\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// DrawingML — Line cap (ST_LineCap)\n// ---------------------------------------------------------------------------\n\nexport const xsdLineCap = bidi({\n round: \"rnd\",\n square: \"sq\",\n flat: \"flat\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// DrawingML — Compound line (ST_CompoundLine)\n// ---------------------------------------------------------------------------\n\nexport const xsdCompoundLine = bidi({\n single: \"sng\",\n double: \"dbl\",\n thickThin: \"thickThin\",\n thinThick: \"thinThick\",\n triple: \"tri\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// DrawingML — Pen alignment (ST_PenAlignment)\n// ---------------------------------------------------------------------------\n\nexport const xsdPenAlignment = bidi({\n center: \"ctr\",\n inside: \"in\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// DrawingML — Line end size (ST_LineEndWidth, ST_LineEndLength)\n// ---------------------------------------------------------------------------\n\nexport const xsdLineEndSize = bidi({\n small: \"sm\",\n medium: \"med\",\n large: \"lg\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// DrawingML — Blend mode (ST_BlendMode)\n// ---------------------------------------------------------------------------\n\nexport const xsdBlendMode = bidi({\n over: \"over\",\n multiply: \"mult\",\n screen: \"screen\",\n darken: \"darken\",\n lighten: \"lighten\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// DrawingML — Path fill mode (ST_PathFillMode)\n// ---------------------------------------------------------------------------\n\nexport const xsdPathFillMode = bidi({\n none: \"none\",\n normal: \"norm\",\n lighten: \"lighten\",\n lightenLess: \"lightenLess\",\n darken: \"darken\",\n darkenLess: \"darkenLess\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// DrawingML — Effect container type\n// ---------------------------------------------------------------------------\n\nexport const xsdEffectContainer = bidi({\n sibling: \"sib\",\n tree: \"tree\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// DrawingML — Preset shadow (ST_PresetShadowVal)\n// ---------------------------------------------------------------------------\n\nexport const xsdPresetShadow = bidi({\n shadow1: \"shdw1\",\n shadow2: \"shdw2\",\n shadow3: \"shdw3\",\n shadow4: \"shdw4\",\n shadow5: \"shdw5\",\n shadow6: \"shdw6\",\n shadow7: \"shdw7\",\n shadow8: \"shdw8\",\n shadow9: \"shdw9\",\n shadow10: \"shdw10\",\n shadow11: \"shdw11\",\n shadow12: \"shdw12\",\n shadow13: \"shdw13\",\n shadow14: \"shdw14\",\n shadow15: \"shdw15\",\n shadow16: \"shdw16\",\n shadow17: \"shdw17\",\n shadow18: \"shdw18\",\n shadow19: \"shdw19\",\n shadow20: \"shdw20\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// DrawingML — Preset material type (ST_PresetMaterialType)\n// Only the abbreviated ones need mapping; full-word values pass through.\n// ---------------------------------------------------------------------------\n\nexport const xsdLightRigDirection = bidi({\n topLeft: \"tl\",\n top: \"t\",\n topRight: \"tr\",\n left: \"l\",\n right: \"r\",\n bottomLeft: \"bl\",\n bottom: \"b\",\n bottomRight: \"br\",\n} as const);\n\nexport const xsdMaterialType = bidi({\n legacyMatte: \"legacyMatte\",\n legacyPlastic: \"legacyPlastic\",\n legacyMetal: \"legacyMetal\",\n legacyWireframe: \"legacyWireframe\",\n matte: \"matte\",\n plastic: \"plastic\",\n metal: \"metal\",\n warmMatte: \"warmMatte\",\n translucentPowder: \"translucentPowder\",\n powder: \"powder\",\n darkEdge: \"dkEdge\",\n softEdge: \"softEdge\",\n clear: \"clear\",\n flat: \"flat\",\n softMetal: \"softmetal\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// DrawingML — Preset pattern fill (ST_PresetPatternVal)\n// Only the abbreviated ones are mapped; values already using full words pass through.\n// ---------------------------------------------------------------------------\n\nexport const xsdPattern = bidi({\n percent5: \"pct5\",\n percent10: \"pct10\",\n percent20: \"pct20\",\n percent25: \"pct25\",\n percent30: \"pct30\",\n percent40: \"pct40\",\n percent50: \"pct50\",\n percent60: \"pct60\",\n percent70: \"pct70\",\n percent75: \"pct75\",\n percent80: \"pct80\",\n percent90: \"pct90\",\n horizontal: \"horz\",\n vertical: \"vert\",\n lightHorizontal: \"ltHorz\",\n lightVertical: \"ltVert\",\n darkHorizontal: \"dkHorz\",\n darkVertical: \"dkVert\",\n narrowHorizontal: \"narHorz\",\n narrowVertical: \"narVert\",\n dashedHorizontal: \"dashHorz\",\n dashedVertical: \"dashVert\",\n cross: \"cross\",\n downDiagonal: \"dnDiag\",\n upDiagonal: \"upDiag\",\n lightDownDiagonal: \"ltDnDiag\",\n lightUpDiagonal: \"ltUpDiag\",\n darkDownDiagonal: \"dkDnDiag\",\n darkUpDiagonal: \"dkUpDiag\",\n wideDownDiagonal: \"wdDnDiag\",\n wideUpDiagonal: \"wdUpDiag\",\n dashedDownDiagonal: \"dashDnDiag\",\n dashedUpDiagonal: \"dashUpDiag\",\n diagonalCross: \"diagCross\",\n smallChecker: \"smCheck\",\n largeChecker: \"lgCheck\",\n smallGrid: \"smGrid\",\n largeGrid: \"lgGrid\",\n dotGrid: \"dotGrid\",\n smallConfetti: \"smConfetti\",\n largeConfetti: \"lgConfetti\",\n horizontalBrick: \"horzBrick\",\n diagonalBrick: \"diagBrick\",\n solidDiamond: \"solidDmnd\",\n openDiamond: \"openDmnd\",\n dottedDiamond: \"dotDmnd\",\n plaid: \"plaid\",\n sphere: \"sphere\",\n weave: \"weave\",\n divot: \"divot\",\n shingle: \"shingle\",\n wave: \"wave\",\n trellis: \"trellis\",\n zigZag: \"zigZag\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// DOCX — Vertical merge revision (ST_VerticalMergeRestart)\n// ---------------------------------------------------------------------------\n\nexport const xsdVerticalMergeRev = bidi({\n continue: \"cont\",\n restart: \"rest\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// PPTX — Underline style (ST_TextUnderlineType, abbreviated subset)\n// ---------------------------------------------------------------------------\n\nexport const xsdUnderlineStyle = bidi({\n single: \"sng\",\n double: \"dbl\",\n none: \"none\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// PPTX — Strike style (ST_TextStrikeType)\n// ---------------------------------------------------------------------------\n\nexport const xsdStrikeStyle = bidi({\n singleStrike: \"sngStrike\",\n doubleStrike: \"dblStrike\",\n noStrike: \"noStrike\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// PPTX — Text capitalization (ST_TextCapsType)\n// ---------------------------------------------------------------------------\n\nexport const xsdTextCaps = bidi({\n none: \"none\",\n all: \"all\",\n small: \"small\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// Chart — axis / legend / label placement (c:axPos, c:legendPos, c:dLblPos)\n// Only the abbreviated tokens are mapped; identical values pass through.\n// ---------------------------------------------------------------------------\n\nexport const xsdAxisPosition = bidi({ bottom: \"b\", left: \"l\", right: \"r\", top: \"t\" } as const);\n\nexport const xsdLegendPosition = bidi({\n bottom: \"b\",\n topRight: \"tr\",\n left: \"l\",\n right: \"r\",\n top: \"t\",\n} as const);\n\nexport const xsdDataLabelPosition = bidi({\n bottom: \"b\",\n center: \"ctr\",\n insideBase: \"inBase\",\n insideEnd: \"inEnd\",\n left: \"l\",\n outsideEnd: \"outEnd\",\n right: \"r\",\n top: \"t\",\n} as const);\n\nexport const xsdAxisCrossBetween = bidi({ middleOfCategory: \"midCat\" } as const);\n\nexport const xsdAxisCrosses = bidi({ zero: \"autoZero\" } as const);\n\nexport const xsdComments = bidi({\n none: \"commNone\",\n indicator: \"commIndicator\",\n comment: \"commIndAndComment\",\n} as const);\n\nexport const xsdErrorValueType = bidi({\n custom: \"cust\",\n fixedValue: \"fixedVal\",\n standardDeviation: \"stdDev\",\n standardError: \"stdErr\",\n} as const);\n\nexport const xsdSizeRepresents = bidi({ width: \"w\" } as const);\n\nexport const xsdSplitType = bidi({ custom: \"cust\", position: \"pos\", value: \"val\" } as const);\n\nexport const xsdAxisLabelAlignment = bidi({ center: \"ctr\", left: \"l\", right: \"r\" } as const);\n\nexport const xsdAxisOrientation = bidi({ ascending: \"minMax\", descending: \"maxMin\" } as const);\n\nexport const xsdTrendlineType = bidi({\n exponential: \"exp\",\n logarithmic: \"log\",\n movingAverage: \"movingAvg\",\n polynomial: \"poly\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// Chart / text — tab alignment, font alignment, compound line\n// ---------------------------------------------------------------------------\n\nexport const xsdTextTabAlignment = bidi({\n left: \"l\",\n center: \"ctr\",\n right: \"r\",\n decimal: \"dec\",\n} as const);\n\nexport const xsdFontAlignment = bidi({ top: \"t\", center: \"ctr\", bottom: \"b\" } as const);\n\n// ---------------------------------------------------------------------------\n// Diagram — animation levels, hierarchy branch, hue direction (dgm:)\n// ---------------------------------------------------------------------------\n\nexport const xsdAnimLevel = bidi({ level: \"lvl\", center: \"ctr\" } as const);\n\nexport const xsdHierBranch = bidi({\n left: \"l\",\n right: \"r\",\n hanging: \"hang\",\n standard: \"std\",\n initial: \"init\",\n} as const);\n\nexport const xsdHueDirection = bidi({ clockwise: \"cw\", counterClockwise: \"ccw\" } as const);\n\nexport const xsdDiagramDirection = bidi({ normal: \"norm\", reversed: \"rev\" } as const);\n\nexport const xsdResizeHandles = bidi({ exact: \"exact\", relative: \"rel\" } as const);\n\nexport const xsdOnOffStyle = bidi({ default: \"def\" } as const);\n\n// ---------------------------------------------------------------------------\n// PPTX — animation classes, calc modes, slide layouts, text direction\n// ---------------------------------------------------------------------------\n\nexport const xsdAnimClass = bidi({\n entrance: \"entr\",\n emphasis: \"emph\",\n mediaCall: \"mediacall\",\n} as const);\n\nexport const xsdAnimCalcMode = bidi({ linear: \"lin\", formula: \"fmla\" } as const);\n\nexport const xsdAnimValueType = bidi({ string: \"str\", number: \"num\", color: \"clr\" } as const);\n\nexport const xsdTextBuild = bidi({ paragraph: \"p\", custom: \"cust\" } as const);\n\n// Diagram build (p:bldDgm @bld, ST_TLDiagramBuildType) — rotation directions\n// and \"cust\" are abbreviated; the rest pass through verbatim.\nexport const xsdDiagramBuild = bidi({\n clockwise: \"cw\",\n clockwiseIn: \"cwIn\",\n clockwiseOut: \"cwOut\",\n counterclockwise: \"ccw\",\n counterclockwiseIn: \"ccwIn\",\n counterclockwiseOut: \"ccwOut\",\n custom: \"cust\",\n} as const);\n\n// Chart build (p:bldOleChart @bld and a:bldChart @bld — identical token sets,\n// ST_TLOleChartBuildType / ST_AnimationChartBuildType).\nexport const xsdChartBuild = bidi({\n seriesElement: \"seriesEl\",\n categoryElement: \"categoryEl\",\n} as const);\n\n// Diagram sub-build (a:bldDgm @bld, ST_AnimationDgmBuildType).\nexport const xsdAnimationDgmBuild = bidi({\n levelOne: \"lvlOne\",\n levelAtOnce: \"lvlAtOnce\",\n} as const);\n\nexport const xsdIterateType = bidi({ element: \"el\", word: \"wd\", letter: \"lt\" } as const);\n\nexport const xsdSlideLayoutType = bidi({\n text: \"tx\",\n twoColumnText: \"twoColTx\",\n object: \"obj\",\n sectionHeader: \"secHead\",\n table: \"tbl\",\n clipArtAndText: \"clipArtAndTx\",\n pictureText: \"picTx\",\n twoObjects: \"twoObj\",\n twoTextAndTwoObjects: \"twoTxTwoObj\",\n objectAndText: \"objTx\",\n verticalText: \"vertTx\",\n verticalTitleAndText: \"vertTitleAndTx\",\n} as const);\n\nexport const xsdTextVerticalType = bidi({\n horizontal: \"horz\",\n vertical: \"vert\",\n vertical270: \"vert270\",\n wordArtVertical: \"wordArtVert\",\n eastAsianVertical: \"eaVert\",\n mongolianVertical: \"mongolianVert\",\n wordArtVerticalRightToLeft: \"wordArtVertRtl\",\n} as const);\n\nexport const xsdDashStyle = bidi({\n longDash: \"lgDash\",\n systemDot: \"sysDot\",\n systemDash: \"sysDash\",\n} as const);\n\nexport const xsdOrient = bidi({ horizontal: \"horz\", vertical: \"vert\" } as const);\n\n// ST_PlaceholderType (p:ph/@type) — identity pairs title/body/subTitle/chart/\n// clipArt/media are omitted.\nexport const xsdPlaceholderType = bidi({\n centerTitle: \"ctrTitle\",\n date: \"dt\",\n slideNumber: \"sldNum\",\n footer: \"ftr\",\n header: \"hdr\",\n object: \"obj\",\n table: \"tbl\",\n diagram: \"dgm\",\n slideImage: \"sldImg\",\n picture: \"pic\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// DOCX / XLSX — math run style, table width unit, totals-row aggregates\n// ---------------------------------------------------------------------------\n\nexport const xsdMathStyle = bidi({ plain: \"p\", bold: \"b\", italic: \"i\", boldItalic: \"bi\" } as const);\n\nexport const xsdTableWidthType = bidi({ twips: \"dxa\", percent: \"pct\" } as const);\n\n// ---------------------------------------------------------------------------\n// DOCX — paragraph/table justification (ST_Jc*) and shading pattern (ST_Shd)\n// ---------------------------------------------------------------------------\n\nexport const xsdJcAlignment = bidi({ numericTab: \"numTab\" } as const);\n\nexport const xsdConsolidateFunction = bidi({\n countNumbers: \"countNums\",\n standardDeviation: \"stdDev\",\n standardDeviationPopulation: \"stdDevp\",\n variance: \"var\",\n variancePopulation: \"varp\",\n} as const);\n\nexport const xsdShadingPattern = bidi({\n horizontalStripe: \"horzStripe\",\n verticalStripe: \"vertStripe\",\n reverseDiagonalStripe: \"reverseDiagStripe\",\n diagonalStripe: \"diagStripe\",\n horizontalCross: \"horzCross\",\n diagonalCross: \"diagCross\",\n thinHorizontalStripe: \"thinHorzStripe\",\n thinVerticalStripe: \"thinVertStripe\",\n thinReverseDiagonalStripe: \"thinReverseDiagStripe\",\n thinDiagonalStripe: \"thinDiagStripe\",\n thinHorizontalCross: \"thinHorzCross\",\n thinDiagonalCross: \"thinDiagCross\",\n percent5: \"pct5\",\n percent10: \"pct10\",\n percent12: \"pct12\",\n percent15: \"pct15\",\n percent20: \"pct20\",\n percent25: \"pct25\",\n percent30: \"pct30\",\n percent35: \"pct35\",\n percent37: \"pct37\",\n percent40: \"pct40\",\n percent45: \"pct45\",\n percent50: \"pct50\",\n percent55: \"pct55\",\n percent60: \"pct60\",\n percent62: \"pct62\",\n percent65: \"pct65\",\n percent70: \"pct70\",\n percent75: \"pct75\",\n percent80: \"pct80\",\n percent85: \"pct85\",\n percent87: \"pct87\",\n percent90: \"pct90\",\n percent95: \"pct95\",\n} as const);\n\nexport const xsdTotalsRowFunction = bidi({\n countNumbers: \"countNums\",\n standardDeviation: \"stdDev\",\n variance: \"var\",\n} as const);\n","/**\n * OOXML unit conversion utilities.\n *\n * @module\n */\nimport type { UniversalMeasure } from \"./values\";\n\n/**\n * Apply `fn` to `value` unless it is `undefined`; `undefined` passes through.\n *\n * Lets an optional field (e.g. `radius?: number | UniversalMeasure`) be threaded\n * through a conversion without a per-call ternary.\n */\nexport const mapOptional = <T, R>(value: T | undefined, fn: (value: T) => R): R | undefined =>\n value === undefined ? undefined : fn(value);\n\n// ---------------------------------------------------------------------------\n// Percent and angle conversions (public API ↔ OOXML scalars)\n// ---------------------------------------------------------------------------\n\n/**\n * Convert public percent (100 = 100%) to OOXML ST_Percentage scalar (1/1000).\n * Math.round ensures JSON-first float input produces exact integer output.\n */\nexport const emitPercent = (percent: number): number => Math.round(percent * 1000);\n\n/**\n * Convert OOXML ST_Percentage scalar (1/1000) to public percent.\n */\nexport const parsePercent = (value: number): number => value / 1000;\n\n/**\n * Parse an ST_Percentage attribute that may arrive as either a 1/1000th\n * integer (\"50000\" = 50%) or a percent literal (\"50%\"); both are XSD-valid.\n * Returns the caller-facing integer percent.\n */\nexport const parsePercentAttr = (raw: string | number | undefined): number | undefined => {\n if (raw === undefined) return undefined;\n const s = typeof raw === \"number\" ? String(raw) : raw;\n return s.endsWith(\"%\") ? Number(s.slice(0, -1)) : parsePercent(Number(s));\n};\n\n/**\n * Convert public degrees to OOXML ST_Angle / ST_FixedAngle scalar (1/60000).\n * Math.round ensures JSON-first float input produces exact integer output.\n */\nexport const emitAngle = (degrees: number): number => Math.round(degrees * 60000);\n\n/**\n * Convert OOXML ST_Angle / ST_FixedAngle scalar (1/60000) to public degrees.\n */\nexport const parseAngle = (value: number): number => value / 60000;\n\n// ---------------------------------------------------------------------------\n// TWIP conversions (1 TWIP = 1/20 point, used in WordprocessingML)\n// ---------------------------------------------------------------------------\n\n/**\n * Converts millimeters to TWIP (twentieths of a point).\n */\nexport const convertMillimetersToTwip = (millimeters: number): number =>\n Math.floor((millimeters / 25.4) * 72 * 20);\n\n/**\n * Converts inches to TWIP (twentieths of a point).\n */\nexport const convertInchesToTwip = (inches: number): number => Math.floor(inches * 72 * 20);\n\n// ---------------------------------------------------------------------------\n// EMU conversions (English Metric Units, used in DrawingML)\n// 1 inch = 914400 EMU, 1 pixel (96 DPI) = 9525 EMU, 1 point = 12700 EMU\n// ---------------------------------------------------------------------------\n\n/**\n * Converts pixels to EMU (96 DPI).\n */\nexport const convertPixelsToEmu = (pixels: number): number => Math.round(pixels * 9525);\n\n/**\n * Converts EMU to pixels (96 DPI).\n *\n * Returns a possibly fractional (sub-pixel) value. The integer rounding that\n * lived here before permanently discarded sub-pixel precision, which made an\n * EMU → pixel → EMU round-trip lossy (e.g. 5521960 EMU → 580 px → 5524500 EMU).\n * Keeping the fraction lets convertPixelsToEmu restore the exact original EMU.\n * Callers needing an integer pixel for display should Math.round the result.\n */\nexport const convertEmuToPixels = (emus: number): number => emus / 9525;\n\n/**\n * Converts inches to EMU.\n */\nexport const convertInchesToEmu = (inches: number): number => Math.round(inches * 914400);\n\n/**\n * Converts EMU to inches.\n */\nexport const convertEmuToInches = (emus: number): number => emus / 914400;\n\n/**\n * Converts points to EMU.\n */\nexport const convertPointsToEmu = (points: number): number => Math.round(points * 12700);\n\n/**\n * Converts EMU to points.\n */\nexport const convertEmuToPoints = (emus: number): number => emus / 12700;\n\n// ---------------------------------------------------------------------------\n// Cross-unit conversions (EMU ↔ TWIP ↔ points)\n// 1 TWIP = 1/20 point = 635 EMU\n// ---------------------------------------------------------------------------\n\n/** Converts EMU to TWIP (1 TWIP = 635 EMU). */\nexport const convertEmuToTwip = (emus: number): number => Math.round(emus / 635);\n\n/** Converts TWIP to EMU (1 TWIP = 635 EMU). */\nexport const convertTwipToEmu = (twips: number): number => twips * 635;\n\n/** Converts points to TWIP (1 point = 20 TWIP). */\nexport const convertPointsToTwip = (points: number): number => Math.round(points * 20);\n\n/** Converts TWIP to points (1 point = 20 TWIP). */\nexport const convertTwipToPoints = (twips: number): number => twips / 20;\n\n// ---------------------------------------------------------------------------\n// UniversalMeasure → Twips conversion\n// Used when numeric computation is needed (e.g., landscape width/height swap)\n// ---------------------------------------------------------------------------\n\n/** Parsed result of a UniversalMeasure string. */\ninterface ParsedMeasure {\n value: number;\n unit: \"mm\" | \"cm\" | \"in\" | \"pt\" | \"pc\" | \"pi\" | \"px\";\n}\n\n/**\n * Parse a UniversalMeasure string into its numeric value and unit.\n *\n * @param measure - A universal measure string like \"2.54cm\", \"-10mm\", \"1in\"\n * @returns The parsed value and unit\n * @throws Error if the format is invalid\n *\n * @example\n * ```typescript\n * parseUniversalMeasure(\"2.54cm\"); // { value: 2.54, unit: \"cm\" }\n * parseUniversalMeasure(\"-10mm\"); // { value: -10, unit: \"mm\" }\n * ```\n */\nexport const parseUniversalMeasure = (measure: string): ParsedMeasure => {\n const match = measure.match(/^(-?[0-9]+(?:\\.[0-9]+)?)(mm|cm|in|pt|pc|pi|px)$/);\n if (!match) {\n throw new Error(`Invalid universal measure: '${measure}'`);\n }\n const [, value, unit] = match;\n if (value === undefined || unit === undefined) {\n throw new Error(`Invalid universal measure: '${measure}'`);\n }\n return { value: parseFloat(value), unit: unit as ParsedMeasure[\"unit\"] };\n};\n\n/**\n * Converts a UniversalMeasure string to TWIP (twentieths of a point).\n *\n * Supports units: mm, cm, in, pt, pc (picas, 1pc = 12pt), pi (alias for pc).\n *\n * @param measure - A universal measure string like \"2.54cm\", \"1in\", \"12pt\"\n * @returns The value in TWIP\n *\n * @example\n * ```typescript\n * convertUniversalMeasureToTwip(\"1in\"); // 1440\n * convertUniversalMeasureToTwip(\"2.54cm\"); // ~1440 (1 inch)\n * convertUniversalMeasureToTwip(\"72pt\"); // 1440 (1 inch = 72pt = 1440 twips)\n * ```\n */\nexport const convertUniversalMeasureToTwip = (measure: string): number => {\n const { value, unit } = parseUniversalMeasure(measure);\n switch (unit) {\n case \"mm\":\n return convertMillimetersToTwip(value);\n case \"cm\":\n return convertMillimetersToTwip(value * 10);\n case \"in\":\n return convertInchesToTwip(value);\n case \"pt\":\n return Math.floor(value * 20); // 1 point = 20 twips\n case \"pc\":\n case \"pi\":\n return Math.floor(value * 12 * 20); // 1 pica = 12 points = 240 twips\n case \"px\":\n return Math.round(value * 15); // 1px = 15twip (1in = 1440twip = 96px)\n }\n};\n\n/**\n * Converts a measurement value (number or UniversalMeasure) to TWIP.\n *\n * If the value is already a number, it is returned as-is (assumed to be in twips).\n * If the value is a UniversalMeasure string, it is converted to twips.\n *\n * Useful for accepting both `number` and `UniversalMeasure` inputs where\n * the XSD type is a union (e.g., ST_TwipsMeasure, ST_SignedTwipsMeasure).\n *\n * @param val - A numeric twip value or a universal measure string\n * @returns The value in TWIP\n *\n * @example\n * ```typescript\n * convertToTwip(1440); // 1440 (already twips)\n * convertToTwip(\"1in\"); // 1440\n * convertToTwip(\"2.54cm\"); // ~1440\n * ```\n */\nexport const convertToTwip = (val: number | UniversalMeasure): number =>\n typeof val === \"string\" ? convertUniversalMeasureToTwip(val) : val;\n\n// ---------------------------------------------------------------------------\n// UniversalMeasure → EMU conversion\n// Used in DrawingML (PPTX shapes, images, etc.)\n// ---------------------------------------------------------------------------\n\n/**\n * Converts a UniversalMeasure string to EMU (English Metric Units).\n *\n * Supports units: mm, cm, in, pt, pc (picas, 1pc = 12pt), pi (alias for pc).\n *\n * @param measure - A universal measure string like \"2.54cm\", \"1in\", \"12pt\"\n * @returns The value in EMU\n *\n * @example\n * ```typescript\n * convertUniversalMeasureToEmu(\"1in\"); // 914400\n * convertUniversalMeasureToEmu(\"2.54cm\"); // 914400\n * convertUniversalMeasureToEmu(\"12pt\"); // 152400\n * ```\n */\nexport const convertUniversalMeasureToEmu = (measure: string): number => {\n const { value, unit } = parseUniversalMeasure(measure);\n switch (unit) {\n case \"mm\":\n return Math.round(value * 36000);\n case \"cm\":\n return Math.round(value * 360000);\n case \"in\":\n return convertInchesToEmu(value);\n case \"pt\":\n return convertPointsToEmu(value);\n case \"pc\":\n case \"pi\":\n return convertPointsToEmu(value * 12); // 1 pica = 12 points\n case \"px\":\n return convertPixelsToEmu(value); // 1px = 9525 EMU (96 DPI)\n }\n};\n\n/**\n * Converts a measurement value (number or UniversalMeasure) to EMU.\n *\n * Numbers are returned as-is (assumed EMU). Strings are parsed as\n * UniversalMeasure via {@link convertUniversalMeasureToEmu} — including the\n * project-only `px` unit (96 DPI). The result is always an EMU number written to\n * XML, so px never appears verbatim in the document.\n *\n * Useful for DrawingML fields where the XSD type is a union (e.g., ST_Coordinate).\n *\n * @param val - A numeric EMU value, or a UniversalMeasure string (incl. `${n}px`)\n * @returns The value in EMU\n *\n * @example\n * ```typescript\n * convertToEmu(914400); // 914400 (already EMU)\n * convertToEmu(\"1in\"); // 914400\n * convertToEmu(\"2.54cm\"); // 914400\n * convertToEmu(\"200px\"); // 1905000 (200 * 9525)\n * ```\n */\nexport const convertToEmu = (val: number | UniversalMeasure): number =>\n typeof val === \"string\" ? convertUniversalMeasureToEmu(val) : val;\n\n// ---------------------------------------------------------------------------\n// UniversalMeasure → Points / Inches conversion\n// Used in SpreadsheetML (row height in points, page margins in inches)\n// ---------------------------------------------------------------------------\n\n/**\n * Converts a UniversalMeasure string to points (1pt = 1/72 inch).\n *\n * Supports units: mm, cm, in, pt, pc (picas, 1pc = 12pt), pi (alias for pc),\n * px (96 DPI).\n */\nexport const convertUniversalMeasureToPt = (measure: string): number => {\n const { value, unit } = parseUniversalMeasure(measure);\n switch (unit) {\n case \"mm\":\n return (value / 25.4) * 72;\n case \"cm\":\n return ((value * 10) / 25.4) * 72;\n case \"in\":\n return value * 72;\n case \"pt\":\n return value;\n case \"pc\":\n case \"pi\":\n return value * 12; // 1 pica = 12 points\n case \"px\":\n return (value / 96) * 72; // 1px = 0.75pt (96 DPI)\n }\n};\n\n/**\n * Converts a measurement value (number or UniversalMeasure) to points.\n *\n * Numbers are returned as-is (assumed to be in points). Strings are parsed as\n * UniversalMeasure. Useful for SpreadsheetML fields where a number is points.\n */\nexport const convertToPt = (val: number | UniversalMeasure): number =>\n typeof val === \"string\" ? convertUniversalMeasureToPt(val) : val;\n\n/**\n * Converts a UniversalMeasure string to inches.\n *\n * Supports units: mm, cm, in, pt, pc, pi, px (96 DPI).\n */\nexport const convertUniversalMeasureToInch = (measure: string): number => {\n const { value, unit } = parseUniversalMeasure(measure);\n switch (unit) {\n case \"mm\":\n return value / 25.4;\n case \"cm\":\n return (value * 10) / 25.4;\n case \"in\":\n return value;\n case \"pt\":\n return value / 72;\n case \"pc\":\n case \"pi\":\n return (value * 12) / 72;\n case \"px\":\n return value / 96;\n }\n};\n\n/**\n * Converts a measurement value (number or UniversalMeasure) to inches.\n *\n * Numbers are returned as-is (assumed to be in inches). Useful for SpreadsheetML\n * page-margin fields where a number is inches.\n */\nexport const convertToInch = (val: number | UniversalMeasure): number =>\n typeof val === \"string\" ? convertUniversalMeasureToInch(val) : val;\n","/**\n * Unique ID generation utilities.\n *\n * @module\n */\n\nimport { sha1 } from \"@noble/hashes/legacy.js\";\nimport { bytesToHex } from \"@noble/hashes/utils.js\";\n\n/**\n * A function that generates unique sequential numeric IDs.\n */\nexport type UniqueNumericIdCreator = () => number;\n\n/**\n * Creates a unique numeric ID generator with sequential numbering.\n */\nexport const uniqueNumericIdCreator = (initial = 0): UniqueNumericIdCreator => {\n let currentCount = initial;\n return () => ++currentCount;\n};\n\nconst URL_ALPHABET = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\n\n/**\n * Generates a unique lowercase alphanumeric ID using crypto.getRandomValues.\n */\nexport const uniqueId = (): string => {\n const bytes = new Uint8Array(21);\n crypto.getRandomValues(bytes);\n let id = \"\";\n // URL_ALPHABET has 64 entries; the index is masked to [0,63], so the access is in-bounds.\n for (const byte of bytes) id += URL_ALPHABET[byte & 63]!;\n return id.toLowerCase();\n};\n\n/**\n * Generates a SHA-1 hash of the provided data.\n */\nexport const hashedId = (data: Uint8Array | ArrayBuffer | string): string => {\n const bytes =\n data instanceof ArrayBuffer\n ? new Uint8Array(data)\n : typeof data === \"string\"\n ? new TextEncoder().encode(data)\n : data;\n return bytesToHex(sha1(bytes));\n};\n\n/**\n * Generates a UUID v4-style unique identifier using crypto.randomUUID.\n */\nexport const uniqueUuid = (): string => crypto.randomUUID();\n","/**\n * Media path extension → image type token.\n *\n * The shared normalization for every package's image-kind media: `jpeg`\n * collapses to `jpg`, `tiff` to `tif`, unknown extensions fall back to `png`.\n * Format packages narrow the superset to their own options union at the\n * consumption site.\n *\n * @module\n */\n\n/** Image type tokens (extension-derived, superset shared by all packages). */\nexport type ImageFileType = \"jpg\" | \"png\" | \"gif\" | \"bmp\" | \"tif\" | \"ico\" | \"emf\" | \"wmf\";\n\n/** Map a media path's file extension to an image type token. */\nexport function imageTypeFromPath(path: string): ImageFileType {\n const ext = path.split(\".\").pop()?.toLowerCase() ?? \"\";\n switch (ext) {\n case \"jpg\":\n case \"jpeg\":\n return \"jpg\";\n case \"png\":\n return \"png\";\n case \"gif\":\n return \"gif\";\n case \"bmp\":\n return \"bmp\";\n case \"tif\":\n case \"tiff\":\n return \"tif\";\n case \"ico\":\n return \"ico\";\n case \"emf\":\n return \"emf\";\n case \"wmf\":\n return \"wmf\";\n default:\n return \"png\";\n }\n}\n","/**\n * Extension-uri matching for a:ext/p:ext style extension lists.\n *\n * @module\n */\n\n/**\n * Match an `@uri` attribute against a known extension uri. Producers write\n * GUID-style uris with or without the enclosing braces and in mixed case —\n * both spellings denote the same extension, so compare brace-stripped and\n * case-insensitively.\n */\nexport function extUriMatches(actual: string | undefined, expected: string): boolean {\n if (actual === undefined) return false;\n const norm = (uri: string) => uri.replace(/^[{]+|[}]+$/g, \"\").toLowerCase();\n return norm(actual) === norm(expected);\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-DPkf_CtG.d.mts","names":[],"sources":["../src/drawing/color/color-transform.ts","../src/drawing/color/hsl-color.ts","../src/drawing/color/preset-color.ts","../src/drawing/color/rgb-color.ts","../src/drawing/color/sc-rgb-color.ts","../src/drawing/color/scheme-color.ts","../src/drawing/color/system-color.ts","../src/drawing/color/solid-fill.ts","../src/drawing/blip/tile.ts","../src/drawing/fill/gradient-fill.ts","../src/drawing/fill/pattern-fill.ts","../src/drawing/effects/fill-overlay.ts","../src/drawing/effects/glow.ts","../src/drawing/effects/inner-shadow.ts","../src/drawing/effects/outer-shadow.ts","../src/drawing/effects/preset-shadow.ts","../src/drawing/effects/reflection.ts","../src/drawing/effects/effect-list.ts","../src/drawing/blip/blip-effects.ts","../src/drawing/effects/effect-dag.ts","../src/drawing/blip/source-rectangle.ts","../src/drawing/fill/fill-options.ts","../src/drawing/geometry/adjustment-values.ts","../src/drawing/geometry/custom-geometry.ts","../src/drawing/geometry/preset-geometry.ts","../src/drawing/outline/custom-dash.ts","../src/drawing/outline/line-end.ts","../src/drawing/outline/outline.ts","../src/drawing/three-d/scene-3d.ts","../src/drawing/three-d/bevel.ts","../src/drawing/three-d/shape-3d.ts","../src/drawing/shape-properties-desc.ts","../src/drawing/text/body-properties.ts","../src/drawing/text/types.ts","../src/drawing/text/list-style.ts","../src/drawing/text/run-properties.ts","../src/drawing/text/paragraph.ts","../src/drawing/text/text-body.ts","../src/drawing/fill/no-fill.ts","../src/drawing/fill/group-fill.ts","../src/drawing/outline/outline-descriptors.ts","../src/drawing/effects/soft-edge.ts","../src/drawing/blip/blip.ts","../src/drawing/blip/blip-fill.ts","../src/drawing/blip/blip-extensions.ts","../src/drawing/blip/stretch.ts","../src/drawing/transform.ts","../src/drawing/black-white-mode.ts","../src/drawing/style-reference.ts","../src/drawing/three-d/three-d-descriptors.ts","../src/drawing/table-style.ts","../src/drawing/locking/locking.ts","../src/drawing/connection.ts","../src/drawing/non-visual/drawing-properties.ts","../src/drawing/non-visual/content-part-properties.ts","../src/drawing/diagram/layout-vars.ts","../src/drawing/diagram/headers.ts","../src/drawing/diagram/diagram-style.ts","../src/drawing/diagram/diagram-rel.ts","../src/drawing/diagram/diagram-props.ts","../src/drawing/color/color-descriptors.ts","../src/drawing/fill/fill-descriptors.ts","../src/drawing/effects/effect-descriptors.ts","../src/drawing/locking/locking-descriptors.ts","../src/drawing/geometry/geometry-descriptors.ts","../src/drawing/transform-descriptors.ts","../src/drawing/group-shape-properties-desc.ts","../src/drawing/text/run.ts","../src/drawing/blip/blip-descriptors.ts","../src/drawing/diagram/diagram-descriptors.ts"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-DfFszyH1.d.mts","names":[],"sources":["../src/opc/packer.ts","../src/opc/relationships.ts","../src/util/compile.ts","../src/util/converters.ts","../src/util/crypto.ts","../src/util/ext-uri.ts","../src/util/generators.ts","../src/util/image-type.ts","../src/util/mappings.ts","../src/util/placeholder.ts"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-L6AXewfV.d.mts","names":[],"sources":["../src/vector/style.ts","../src/vector/attributes.ts","../src/vector/shape-elements/client-data.ts","../src/vector/shape-elements/office-elements.ts","../src/vector/shape-elements/fill.ts","../src/vector/shape-elements/formulas.ts","../src/vector/shape-elements/handles.ts","../src/vector/shape-elements/imagedata.ts","../src/vector/shape-elements/path.ts","../src/vector/shape-elements/presentation-elements.ts","../src/vector/shape-elements/shadow.ts","../src/vector/shape-elements/stroke.ts","../src/vector/shape-elements/textbox.ts","../src/vector/shape-elements/textpath.ts","../src/vector/shape-elements/word-elements.ts","../src/vector/shapes.ts","../src/vector/office-shape-defaults.ts"],"mappings":";;;KAuBY,+BAA+B,aAAa,mBAAmB;cAM9D,eAAe,aAAa;iBAiCzB,kBAAkB,OAAO;iBAezB,cAAc,mBAAmB;iBAqBjC,mBAAmB,QAAQ,yBAAyB;UAsBnD;EAEf;EAEA,SAAS;EAET,OAAO;EAEP,eAAe;EAEf,aAAa;EAEb,cAAc;EAEd,YAAY;EAEZ;EAEA;EAEA;EAEA;EAEA;EAEA;EAEA;EAEA;EAEA;EAEA;EAEA;EAEA;EAEA;EAEA;EAEA,MAAM;EAEN;EAEA,QAAQ;EAER;;;;KClJU;KAGA;KAGA;KAGA;KAeA;KAGA;KAGA;KAGA;KAGA;KAGA;UAGK;EACf;EACA,QAAQ;EACR;EACA;EACA;EACA;EACA;EAEA;EAEA;EACA;EACA,QAAQ;;UAIO;EACf,YAAY;EACZ,SAAS;EACT,YAAY;EACZ;EACA,UAAU;EACV,cAAc;EACd;EACA,WAAW;;KAMD;UAEK;EAEf;EAEA;EACA,MAAM;;cAIK,yBAAyB;cAczB,0BAA0B;UAiBtB;EAEf;EAEA,OAAO;EACP;EACA,oBAAoB;EAEpB,SAAS;EACT,aAAa;EAEb,SAAS;EAET,KAAK;EACL,QAAQ;EACR,YAAY;EAEZ;EACA,UAAU;EACV,cAAc;EACd,eAAe;EACf,YAAY;EACZ,iBAAiB;EACjB,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,YAAY;EACZ;EACA,eAAe;EACf,YAAY;;UAMG;EAEf;EACA,gBAAgB;EAChB,SAAS;EACT,SAAS;EACT,WAAW;EAEX,YAAY;EACZ,UAAU;EAEV,MAAM;EACN,iBAAiB;EACjB,aAAa;EACb,OAAO;;cAII,gCAAgC;cA2BhC,iCAAiC;iBAiB9B,sBAAsB;iBAKtB,kBAAkB;iBAWlB,uBACd,MAAM,yBACN,gBAAgB;iBAoBF,2BAA2B,OAAO;iBAKlC,uBAAuB,gBAAgB;iBAKvC,mBACd,IAAI,SACJ,gBAAgB,eAChB,KAAK;;;KC3QK;UAsBK;EACf,YAAY;EAEZ,gBAAgB;EAChB,gBAAgB;EAChB,SAAS;EACT,cAAc;EACd,cAAc;EACd,WAAW;EACX,WAAW;EACX,WAAW;EACX,WAAW;EACX,WAAW;EACX,YAAY;EACZ,aAAa;EACb,UAAU;EACV,OAAO;EACP,SAAS;EACT,UAAU;EACV,UAAU;EACV,YAAY;EACZ,YAAY;EACZ,YAAY;EACZ,UAAU;EACV,WAAW;EACX,YAAY;EACZ,UAAU;EACV,WAAW;EACX,cAAc;EACd,QAAQ;EACR,SAAS;EACT,SAAS;EACT,eAAe;EACf,YAAY;EACZ,MAAM;EACN,QAAQ;EAER;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;;iBAoFc,uBAAuB,MAAM;iBAoB7B,mBAAmB,IAAI,UAAa;;;KC1KxC;UAGK;EACf,MAAM;;cAIK,mBAAmB;UAKf,uBAAuB;EACtC;EACA,KAAK;EACL;EACA;EACA;;iBAYc,iBAAiB,MAAM;iBAKvB,aAAa,IAAI,UAAa;KASlC;KAGA;KAGA;KAGA;UAGK,4BAA4B;EAC3C,KAAK;EACL,OAAO;EACP,SAAS;EACT;EACA;EACA,QAAQ;EACR;EACA;EACA;EACA;EACA;EACA;EACA,qBAAqB;EACrB,qBAAqB;EACrB;EACA;EACA,YAAY;EACZ,QAAQ;EACR;EACA;EACA;EACA,QAAQ;EACR;EACA;EACA,YAAY;EACZ;EACA;EACA;EACA,aAAa;EACb;EACA;EACA,cAAc;;iBAuCA,sBAAsB,MAAM;iBAK5B,kBAAkB,IAAI,UAAa;KASvC;UAGK,0BAA0B;EACzC,KAAK;EACL;EACA;EACA,QAAQ;EACR,WAAW;EACX;EACA;EACA,kBAAkB;EAClB;EACA,YAAY;EACZ,aAAa;EACb,SAAS;EACT,SAAS;;iBAoBK,oBAAoB,MAAM;iBAK1B,gBAAgB,IAAI,UAAa;UAShC,uBAAuB;EACtC,WAAW;EACX,YAAY;EACZ,WAAW;EACX,aAAa;EACb,WAAW;EACX,WAAW;EACX,YAAY;EACZ,gBAAgB;EAChB,OAAO;EACP,cAAc;EACd,YAAY;;iBAkBE,iBAAiB,MAAM;iBAKvB,aAAa,IAAI,UAAa;UAS7B;EAEf;;iBAIc,qBAAqB,MAAM;iBAK3B,iBAAiB,IAAI,UAAa;UAOjC,gCAAgC;EAC/C,kBAAkB;EAElB,KAAK;EACL,SAAS;EACT,yBAAyB;EACzB,gBAAgB;EAChB,eAAe;EACf;EACA;EACA;EACA;EACA;EACA;;iBAoBc,0BAA0B,MAAM;iBAKhC,sBAAsB,IAAI,UAAa;UAStC;EAEf;EACA,aAAa;EACb;;iBAIc,gBAAgB,MAAM;iBAUtB,YAAY,IAAI,UAAa;UAiB5B;EACf;EAEA;;iBAIc,wBAAwB,MAAM;iBAO9B,oBAAoB,IAAI,UAAa;UAgBpC,kCAAkC;EACjD;EACA;EACA;;UAUe,0BAA0B;EACzC;EACA,aAAa;EACb,UAAU;EACV,aAAa;EACb;EACA;EACA;EACA;EACA;EACA,YAAY;;iBAgBE,oBAAoB,MAAM;iBAY1B,gBAAgB,IAAI,UAAa;UAuBhC,0BAA0B;iBAG3B,oBAAoB,MAAM;iBAK1B,gBAAgB,IAAI,UAAa;KASrC;UAYK,6BAA6B;EAC5C,OAAO;;iBAIO,uBAAuB,MAAM;iBAK7B,mBAAmB,IAAI,UAAa;KAUxC;KAGA;KAGA;UAMK;EACf,OAAO;EACP;EACA;EACA,aAAa;EACb;EAEA;EACA,aAAa;EAEb;EAEA,cAAc;EAEd;;iBAcc,sBAAsB,MAAM;iBAuB5B,kBAAkB,IAAI,UAAa;;;KC1jBvC;KAGA;KAGA;UAGK;EACf;EACA,OAAO;EACP,KAAK;EACL,QAAQ;EACR;EACA,SAAS;EACT;EACA;EACA;EACA;EACA,SAAS;EACT;EAEA;EACA,aAAa;EACb;EACA;EACA;EACA,SAAS;EACT,UAAU;EACV,SAAS;EAET;EAGA;EAEA;EAEA,mBAAmB;EAEnB;EAEA;EAEA;EAEA,aAAa;;iBAkCC,iBAAiB,MAAM;iBAOvB,aAAa,IAAI,UAAa;;;UC1G7B;EAEf;;iBAIc,qBAAqB,MAAM;iBAM3B,iBAAiB,IAAI,UAAa;;;UCVjC;EACf;EACA;EACA;EACA,OAAO;EACP,OAAO;EACP,SAAS;EACT;EACA;EACA;;UAIe;EACf,UAAU;;iBAcI,oBAAoB,MAAM;iBAkB1B,gBAAgB,IAAI,UAAa;;;UCpChC;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YAAY;EACZ,UAAU;EACV,YAAY;EACZ,cAAc;EACd,gBAAgB;EAEhB;EAEA;EAEA;EAGA;EAEA;EAEA;EAEA;EAEA,mBAAmB;EAEnB;EAEA;;iBA+Bc,sBAAsB,MAAM;iBAK5B,kBAAkB,IAAI,UAAa;;;UC5ElC;EACf;EAEA;EACA;EACA;EACA,SAAS;EACT,WAAW;EACX,WAAW;EACX,UAAU;EACV,kBAAkB;EAClB,aAAa;EACb,aAAa;EAGb,cAAc;EAEd;EAEA;EAEA,cAAc;;iBAsBA,iBAAiB,MAAM;iBAKvB,aAAa,IAAI,UAAa;;;UCvD7B;iBAGD,sBAAsB,OAAO;iBAK7B,kBAAkB,KAAK,UAAa;UAKnC;EAEf;;iBAIc,qBAAqB,MAAM;iBAK3B,iBAAiB,IAAI,UAAa;;;KCjBtC;UAGK;EACf;EACA,KAAK;EACL,OAAO;EACP,WAAW;EACX,QAAQ;EACR;EACA;EACA,SAAS;EACT;EACA;EACA;;iBAkBc,mBAAmB,MAAM;iBAKzB,eAAe,IAAI,UAAa;;;KChCpC;KAQA;KAGA;KAGA;KAGA;KAGA;UAGK;EACf;EACA,KAAK;EAEL;EACA,QAAQ;EACR;EACA,YAAY;EACZ;EACA,YAAY;EACZ,SAAS;EAET;EACA,WAAW;EACX;EACA,cAAc;EACd;EACA,kBAAkB;EAClB,SAAS;EACT,aAAa;EACb,kBAAkB;EAClB,mBAAmB;EACnB,WAAW;EACX,gBAAgB;EAChB,iBAAiB;EAEjB;EACA,WAAW;EAGX;EAEA;EAEA;EAEA,YAAY;EAEZ;EAEA,aAAa;EACb,YAAY;EACZ,cAAc;EACd,eAAe;EACf,eAAe;;UAOA;EACf;EACA,KAAK;EACL;EACA,QAAQ;EACR,SAAS;EACT;EACA,YAAY;EACZ;EACA,YAAY;EACZ,SAAS;EACT;EACA,WAAW;EACX,WAAW;EACX;EACA,cAAc;EACd;EACA,kBAAkB;EAClB,aAAa;EACb,kBAAkB;EAClB,mBAAmB;EACnB,WAAW;EACX,gBAAgB;EAChB,iBAAiB;EAEjB;EAEA;EAEA;EAEA,YAAY;;iBA8EE,mBAAmB,MAAM;iBAkBzB,eAAe,IAAI,UAAa;;;UC5M/B;EACf;EACA,QAAQ;EAER;EAEA;EAEA,YAAY;EAEZ;EAEA;;iBAOc,oBAAoB,MAAM;iBAqB1B,gBAAgB,IAAI,UAAa;;;UCtChC;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EAEA;EAEA;EAEA;;UA0Ce;EACf;EACA,QAAQ;EACR,KAAK;EACL,WAAW;EACX,UAAU;EACV,OAAO;EACP,SAAS;EACT;;iBAcc,qBAAqB,MAAM;iBAY3B,iBAAiB,IAAI,UAAa;;;KChGtC;KAGA;KAGA;KAGA;KAGA;UA8BK;EACf,OAAO;EACP,OAAO;EACP,UAAU;EACV,UAAU;;iBAWI,iBAAiB,MAAM;iBAKvB,aAAa,IAAI,UAAa;UAO7B;iBAGD,uBAAuB,OAAO;iBAK9B,mBAAmB,KAAK,UAAa;UAKpC;EACf,OAAO;EAEP;EACA,SAAS;;cAUE;iBAQG,mBACd,aAAa,0BACb,MAAM;iBAMQ,eAAe,IAAI,UAAa;;;iBCEhC;UAWC,2BACP,mBAAmB,yBAAyB,oBAAoB;EAExE;EAEA,cAAc;EACd,WAAW;EACX,UAAU;EACV,OAAO;EACP,SAAS;EACT,SAAS;EACT,UAAU;EACV,WAAW;EACX,YAAY;EAEZ,OAAO;EACP,YAAY;EACZ,UAAU;EACV,OAAO;EACP,WAAW;EACX,gBAAgB;EAEhB,OAAO;EACP,aAAa;EACb,YAAY;EACZ,eAAe;EACf,aAAa;EACb,cAAc;EACd,aAAa;EACb,WAAW;EAKX;;KAIU;UAYK,wBAAwB;EAEvC;EAEA;EAEA;EAEA;EAEA,MAAM;EAEN,qBAAqB;EAErB,YAAY;;UAIG,4BAA4B;EAC3C;EAEA;EAEA,UAAU;;KAMA;EACN,OAAO;;EACP,WAAW;;EACX,OAAO;;EACP,KAAK;;EACL,OAAO;;EACP,OAAO;;EACP,MAAM;;EACN,MAAM;;EACN,UAAU;;EACV,MAAM;;EACN,WAAW;;UAGA,wBAAwB;EACvC,SAAS;EACT,YAAY;EACZ,SAAS;EAET;EACA;EAEA,UAAU;EACV,WAAW;;UAII;EACf;EACA,SAAS;EACT,YAAY;EACZ,SAAS;EACT,SAAS;EACT,WAAW;EACX,mBAAmB;EACnB,OAAO;;UAIQ,sBAAsB;EAErC;EAEA;;UAIe,wBAAwB;EACvC;EACA;EACA;EACA;;UAIe,wBAAwB;EACvC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YAAY;EACZ,UAAU;;UAIK,uBAAuB;EACtC;EACA;;UAIe,uBAAuB;UAGvB,2BAA2B;EAC1C;EAEA,MAAM;;UAIS,uBAAuB;UAGvB,4BAA4B;EAC3C;;iBAoQc,kBAAkB,MAAM;iBAgBxB,cAAc,IAAI,UAAa;iBAkB/B,sBAAsB,MAAM;iBAa5B,kBAAkB,IAAI,UAAa;iBAgBnC,uBAAuB,OAAO;iBA2B9B,mBAAmB,IAAI,UAAa;iBA8BpC,kBAAkB,MAAM;iBAaxB,cAAc,IAAI,UAAa;iBAmC/B,uBAAuB,MAAM;iBAe7B,mBAAmB,IAAI,UAAa;iBAepC,gBAAgB,MAAM;iBAUtB,YAAY,IAAI,UAAa;iBAQ7B,kBAAkB,MAAM;iBAUxB,cAAc,IAAI,UAAa;iBAQ/B,kBAAkB,MAAM;iBAUxB,cAAc,IAAI,UAAa;iBAQ/B,iBAAiB,MAAM;iBAUvB,aAAa,IAAI,UAAa;iBAQ9B,iBAAiB,MAAM;iBAUvB,aAAa,IAAI,UAAa;iBAQ9B,qBAAqB,MAAM;iBAY3B,iBAAiB,IAAI,UAAa;iBAclC,iBAAiB,MAAM;iBAUvB,aAAa,IAAI,UAAa;iBAQ9B,sBAAsB,MAAM;iBAU5B,kBAAkB,IAAI,UAAa;;;UC51BlC,gCAAgC;EAE/C;EACA;EACA,OAAO;EACP,YAAY;EACZ,SAAS;EACT,cAAc;EAEd,cAAc;EAEd,cAAc;EACd,gBAAgB;EAChB,UAAU;EACV,SAAS;EACT,OAAO;EACP,YAAY;EACZ,UAAU;EACV,OAAO;EACP,WAAW;EACX,YAAY;;iBAeE,0BAA0B,MAAM;iBAmBhC,sBAAsB,IAAI,UAAa;UA4CtC,2BAA2B;EAC1C;;iBAIc,qBAAqB,MAAM;iBAQ3B,iBAAiB,IAAI,UAAa;UAOjC,4BAA4B;EAC3C,cAAc;EACd,YAAY;EACZ,cAAc;EACd,iBAAiB;;iBAYH,sBAAsB,MAAM;iBAK5B,kBAAkB,IAAI,UAAa;UASlC;EACf;EACA;;UASe,+BAA+B;EAC9C,UAAU;;KAIA;KAGA;UAGK;EACf;EACA;EACA;EACA;;UAIe;EACf;EACA,OAAO;EACP,MAAM;EACN;EACA,UAAU;;UAIK,wBAAwB;EACvC,QAAQ;;UAIO,wBAAwB;EAEvC;;UAIe,8BAA8B;EAC7C,QAAQ;EACR,eAAe;EACf,QAAQ;;iBAyHM,wBAAwB,MAAM;iBAY9B,oBAAoB,IAAI,UAAa"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"theme-Dx0Db9bX.mjs","names":[],"sources":["../src/theme/default-colors.ts","../src/theme/color-scheme.ts","../src/theme/custom-color.ts","../src/theme/extra-color-scheme.ts","../src/theme/font-scheme.ts","../src/theme/object-defaults.ts","../src/theme/build-theme-xml.ts","../src/theme/default-theme.ts","../src/theme/theme-descriptors.ts","../src/theme/theme-override.ts"],"sourcesContent":["/**\n * Default Office 2016+ theme colors.\n *\n * @module\n */\nimport type { ColorSchemeOptions } from \"./theme-options\";\n\n/** Office 2016+ default theme colors (hex without #). */\nexport const DEFAULT_COLORS: Record<Exclude<keyof ColorSchemeOptions, \"name\">, string> = {\n dark1: \"000000\",\n light1: \"FFFFFF\",\n dark2: \"44546A\",\n light2: \"E7E6E6\",\n accent1: \"4472C4\",\n accent2: \"ED7D31\",\n accent3: \"A5A5A5\",\n accent4: \"FFC000\",\n accent5: \"5B9BD5\",\n accent6: \"70AD47\",\n hyperlink: \"0563C1\",\n followedHyperlink: \"954F72\",\n};\n","/**\n * Color scheme (a:clrScheme / CT_ColorScheme) stringify + parse.\n *\n * Every slot accepts a hex string (emits a:srgbClr) or a structured\n * SystemColorOptions (emits a:sysClr verbatim). dk1/lt1 default to the\n * conventional windowText/window sysClr form; parse reads both forms back\n * losslessly, so a source's sysClr spelling survives round-trip.\n *\n * @module\n */\nimport { findChild } from \"@office-open/xml\";\nimport type { Element as XmlElement } from \"@office-open/xml\";\n\nimport type { ReadContext } from \"../descriptor\";\nimport { systemColorDesc } from \"../drawing\";\nimport type { SystemColorOptions } from \"../drawing\";\nimport { DEFAULT_COLORS } from \"./default-colors\";\nimport type { ColorSchemeOptions } from \"./theme-options\";\n\nexport type { SchemeColorValue } from \"./theme-options\";\n\n/** Color keys excluding the clrScheme/`@name` attribute. */\ntype ColorKey = Exclude<keyof ColorSchemeOptions, \"name\">;\n\n/** clrScheme child tag → ColorSchemeOptions key, in schema order. */\nconst COLOR_TAGS: ReadonlyArray<{ tag: string; key: ColorKey }> = [\n { tag: \"a:dk1\", key: \"dark1\" },\n { tag: \"a:lt1\", key: \"light1\" },\n { tag: \"a:dk2\", key: \"dark2\" },\n { tag: \"a:lt2\", key: \"light2\" },\n { tag: \"a:accent1\", key: \"accent1\" },\n { tag: \"a:accent2\", key: \"accent2\" },\n { tag: \"a:accent3\", key: \"accent3\" },\n { tag: \"a:accent4\", key: \"accent4\" },\n { tag: \"a:accent5\", key: \"accent5\" },\n { tag: \"a:accent6\", key: \"accent6\" },\n { tag: \"a:hlink\", key: \"hyperlink\" },\n { tag: \"a:folHlink\", key: \"followedHyperlink\" },\n];\n\n/** The conventional dk1/lt1 sysClr forms emitted when a slot is unset. */\nconst DEFAULT_SYS_CLR: Partial<Record<ColorKey, string>> = {\n dark1: \"windowText\",\n light1: \"window\",\n};\n\nfunction stringifyColorTag(\n tag: string,\n key: ColorKey,\n opts: ColorSchemeOptions | undefined,\n): string {\n const userValue = opts?.[key];\n if (userValue !== undefined) {\n const colorXml =\n typeof userValue === \"string\"\n ? `<a:srgbClr val=\"${userValue}\"/>`\n : (systemColorDesc.stringify(userValue, undefined as never) ?? \"\");\n return `<${tag}>${colorXml}</${tag}>`;\n }\n const defaultValue = DEFAULT_COLORS[key];\n const sysClr = DEFAULT_SYS_CLR[key];\n if (sysClr) {\n return `<${tag}><a:sysClr val=\"${sysClr}\" lastClr=\"${defaultValue}\"/></${tag}>`;\n }\n return `<${tag}><a:srgbClr val=\"${defaultValue}\"/></${tag}>`;\n}\n\n/** Serialize a:clrScheme. Undefined options emit the full default scheme. */\nexport function stringifyColorScheme(\n opts: ColorSchemeOptions | undefined,\n fallbackName: string,\n): string {\n const name = opts?.name ?? fallbackName;\n const tags = COLOR_TAGS.map(({ tag, key }) => stringifyColorTag(tag, key, opts)).join(\"\");\n return `<a:clrScheme name=\"${name}\">${tags}</a:clrScheme>`;\n}\n\n/** Parse a:clrScheme into the subset of colors explicitly present. */\nexport function parseColorScheme(\n el: XmlElement | undefined,\n ctx: ReadContext,\n): ColorSchemeOptions | undefined {\n if (!el) return undefined;\n const result: Partial<ColorSchemeOptions> = {};\n const name = el.attributes?.[\"name\"];\n if (name) result.name = String(name);\n for (const { tag, key } of COLOR_TAGS) {\n const colorEl = findChild(el, tag);\n if (!colorEl) continue;\n const sysClr = findChild(colorEl, \"a:sysClr\");\n if (sysClr) {\n result[key] = systemColorDesc.parse(sysClr, ctx) as SystemColorOptions;\n continue;\n }\n const srgb = findChild(colorEl, \"a:srgbClr\");\n const val = srgb?.attributes?.[\"val\"];\n if (val !== undefined) result[key] = String(val);\n }\n return result;\n}\n","/**\n * Custom colors (a:custClr / CT_CustomColor) stringify + parse.\n *\n * Each entry is a named color choice; the list wrapper (a:custClrLst /\n * CT_CustomColorList) sits after extraClrSchemeLst in a theme.\n *\n * @module\n */\nimport type { Element as XmlElement } from \"@office-open/xml\";\n\nimport type { ReadContext, WriteContext } from \"../descriptor\";\nimport { parseColorChoice, stringifyColorChoice } from \"../drawing\";\nimport type { SolidFillOptions } from \"../drawing\";\nimport type { CustomColorOptions } from \"./theme-options\";\n\n/** Serialize a:custClrLst. Returns \"\" when no custom colors set (optional element). */\nexport function stringifyCustomColors(\n opts: CustomColorOptions[] | undefined,\n ctx: WriteContext,\n): string {\n if (!opts || opts.length === 0) return \"\";\n const items = opts\n .map((c) => {\n const name = c.name ? ` name=\"${c.name}\"` : \"\";\n return `<a:custClr${name}>${stringifyColorChoice(c.color, ctx)}</a:custClr>`;\n })\n .join(\"\");\n return `<a:custClrLst>${items}</a:custClrLst>`;\n}\n\n/** Parse a:custClrLst. */\nexport function parseCustomColors(\n el: XmlElement | undefined,\n ctx: ReadContext,\n): CustomColorOptions[] | undefined {\n if (!el) return undefined;\n const result: CustomColorOptions[] = [];\n for (const child of el.elements ?? []) {\n if (child.name !== \"a:custClr\") continue;\n const color: SolidFillOptions | undefined = parseColorChoice(child, ctx);\n if (!color) continue;\n const name = child.attributes?.[\"name\"];\n result.push(name !== undefined ? { name: String(name), color } : { color });\n }\n return result.length > 0 ? result : undefined;\n}\n","/**\n * Extra color scheme (a:extraClrScheme / CT_ExtraColorScheme) stringify + parse.\n *\n * Each entry pairs a color scheme with an optional color mapping. The list\n * wrapper (a:extraClrSchemeLst / CT_ColorSchemeList) holds zero or more entries.\n *\n * @module\n */\nimport { findChild } from \"@office-open/xml\";\nimport type { Element as XmlElement } from \"@office-open/xml\";\n\nimport type { ReadContext } from \"../descriptor\";\nimport { parseColorMapping, stringifyColorMapping } from \"./color-mapping\";\nimport { parseColorScheme, stringifyColorScheme } from \"./color-scheme\";\nimport type { ExtraColorSchemeOptions } from \"./theme-options\";\n\n/** Serialize a:extraClrSchemeLst. Returns an empty element when no schemes set. */\nexport function stringifyExtraColorSchemes(\n opts: ExtraColorSchemeOptions[] | undefined,\n fallbackName: string,\n): string {\n if (!opts || opts.length === 0) return \"<a:extraClrSchemeLst/>\";\n const items = opts\n .map((scheme) => {\n const clrScheme = stringifyColorScheme(\n scheme.colorScheme,\n scheme.colorScheme.name ?? fallbackName,\n );\n const clrMap = scheme.colorMapping ? stringifyColorMapping(scheme.colorMapping) : \"\";\n return `<a:extraClrScheme>${clrScheme}${clrMap}</a:extraClrScheme>`;\n })\n .join(\"\");\n return `<a:extraClrSchemeLst>${items}</a:extraClrSchemeLst>`;\n}\n\n/** Parse a:extraClrSchemeLst. */\nexport function parseExtraColorSchemes(\n el: XmlElement | undefined,\n ctx: ReadContext,\n): ExtraColorSchemeOptions[] | undefined {\n if (!el) return undefined;\n const result: ExtraColorSchemeOptions[] = [];\n for (const child of el.elements ?? []) {\n if (child.name !== \"a:extraClrScheme\") continue;\n const colorScheme = parseColorScheme(findChild(child, \"a:clrScheme\"), ctx);\n if (!colorScheme) continue;\n const colorMapping = parseColorMapping(findChild(child, \"a:clrMap\"));\n result.push(colorMapping ? { colorScheme, colorMapping } : { colorScheme });\n }\n return result.length > 0 ? result : undefined;\n}\n","/**\n * Font scheme (a:fontScheme / CT_FontScheme) stringify + parse.\n *\n * CT_FontCollection order: latin → ea → cs → font[] (supplemental).\n *\n * @module\n */\nimport { escapeXml } from \"@office-open/xml\";\nimport { findChild } from \"@office-open/xml\";\nimport type { Element as XmlElement } from \"@office-open/xml\";\n\nimport type {\n FontCollectionOptions,\n FontSchemeOptions,\n SupplementalFontOptions,\n TextFontOptions,\n} from \"./theme-options\";\n\n// ── TextFont (a:latin / a:ea / a:cs) ──\n\nfunction stringifyTextFont(tag: string, opts: TextFontOptions | undefined): string {\n if (!opts) return \"\";\n const attrs = [`typeface=\"${escapeXml(opts.typeface)}\"`];\n if (opts.panose !== undefined) attrs.push(`panose=\"${escapeXml(opts.panose)}\"`);\n if (opts.pitchFamily !== undefined) attrs.push(`pitchFamily=\"${opts.pitchFamily}\"`);\n if (opts.charset !== undefined) attrs.push(`charset=\"${opts.charset}\"`);\n return `<${tag} ${attrs.join(\" \")}/>`;\n}\n\nfunction parseTextFont(el: XmlElement | undefined): TextFontOptions | undefined {\n if (!el?.attributes) return undefined;\n const typeface = el.attributes[\"typeface\"];\n if (typeface === undefined) return undefined;\n const result: TextFontOptions = { typeface: String(typeface) };\n if (el.attributes[\"panose\"] !== undefined) result.panose = String(el.attributes[\"panose\"]);\n if (el.attributes[\"pitchFamily\"] !== undefined)\n result.pitchFamily = Number(el.attributes[\"pitchFamily\"]);\n if (el.attributes[\"charset\"] !== undefined) result.charset = Number(el.attributes[\"charset\"]);\n return result;\n}\n\n// ── Font collection (a:majorFont / a:minorFont) ──\n\nfunction stringifyFontCollection(tag: string, opts: FontCollectionOptions | undefined): string {\n const latin = stringifyTextFont(\"a:latin\", opts?.latin);\n const eastAsian = stringifyTextFont(\"a:ea\", opts?.eastAsian);\n const complexScript = stringifyTextFont(\"a:cs\", opts?.complexScript);\n const supplemental = (opts?.supplementalFonts ?? [])\n .map((f) => `<a:font script=\"${escapeXml(f.script)}\" typeface=\"${escapeXml(f.typeface)}\"/>`)\n .join(\"\");\n return `<${tag}>${latin}${eastAsian}${complexScript}${supplemental}</${tag}>`;\n}\n\nfunction parseFontCollection(el: XmlElement | undefined): FontCollectionOptions | undefined {\n if (!el) return undefined;\n const result: FontCollectionOptions = {};\n const latin = parseTextFont(findChild(el, \"a:latin\"));\n if (latin) result.latin = latin;\n const eastAsian = parseTextFont(findChild(el, \"a:ea\"));\n if (eastAsian) result.eastAsian = eastAsian;\n const complexScript = parseTextFont(findChild(el, \"a:cs\"));\n if (complexScript) result.complexScript = complexScript;\n const supplementalFonts = (el.elements ?? [])\n .filter((c) => c.name === \"a:font\")\n .map((c): SupplementalFontOptions | undefined => {\n const script = c.attributes?.[\"script\"];\n const typeface = c.attributes?.[\"typeface\"];\n if (script === undefined || typeface === undefined) return undefined;\n return { script: String(script), typeface: String(typeface) };\n })\n .filter((v): v is SupplementalFontOptions => v !== undefined);\n if (supplementalFonts.length > 0) result.supplementalFonts = supplementalFonts;\n return Object.keys(result).length > 0 ? result : undefined;\n}\n\n// ── Fresh defaults (Office theme major/minor fonts) ──\n\nexport const DEFAULT_MAJOR_FONT: FontCollectionOptions = {\n latin: { typeface: \"Calibri Light\", panose: \"020F0302020204030204\" },\n eastAsian: { typeface: \"\" },\n complexScript: { typeface: \"\" },\n};\n\nexport const DEFAULT_MINOR_FONT: FontCollectionOptions = {\n latin: { typeface: \"Calibri\", panose: \"020F0502020204030204\" },\n eastAsian: { typeface: \"\" },\n complexScript: { typeface: \"\" },\n};\n\n// ── Font scheme (a:fontScheme) ──\n\n/** Serialize a:fontScheme. Undefined options emit the Office default scheme. */\nexport function stringifyFontScheme(\n opts: FontSchemeOptions | undefined,\n fallbackName: string,\n): string {\n // Merge defaults so the XSD-required latin/ea/cs slots are always present,\n // even when the caller only customizes one font (e.g. latin typeface).\n const majorFont = stringifyFontCollection(\n \"a:majorFont\",\n opts?.majorFont ? { ...DEFAULT_MAJOR_FONT, ...opts.majorFont } : DEFAULT_MAJOR_FONT,\n );\n const minorFont = stringifyFontCollection(\n \"a:minorFont\",\n opts?.minorFont ? { ...DEFAULT_MINOR_FONT, ...opts.minorFont } : DEFAULT_MINOR_FONT,\n );\n const name = opts?.name ?? fallbackName;\n return `<a:fontScheme name=\"${name}\">${majorFont}${minorFont}</a:fontScheme>`;\n}\n\n/** Parse a:fontScheme. Returns undefined only when neither major nor minor font is present. */\nexport function parseFontScheme(el: XmlElement | undefined): FontSchemeOptions | undefined {\n if (!el) return undefined;\n const result: FontSchemeOptions = {};\n const name = el.attributes?.[\"name\"];\n if (name) result.name = String(name);\n const majorFont = parseFontCollection(findChild(el, \"a:majorFont\"));\n if (majorFont) result.majorFont = majorFont;\n const minorFont = parseFontCollection(findChild(el, \"a:minorFont\"));\n if (minorFont) result.minorFont = minorFont;\n return Object.keys(result).length > 0 ? result : undefined;\n}\n","/**\n * Object defaults (a:objectDefaults / CT_ObjectStyleDefaults) stringify + parse.\n *\n * Each default definition (spDef/lnDef/txDef) holds shape properties, body\n * properties, list style, and an optional shape style. Reuses core descriptors\n * so defaults round-trip through the same machinery as shapes.\n *\n * @module\n */\nimport { findChild } from \"@office-open/xml\";\nimport type { Element as XmlElement } from \"@office-open/xml\";\n\nimport type { ReadContext, WriteContext } from \"../descriptor\";\nimport { bodyPropertiesDesc, shapePropertiesDesc, textListStyleDesc } from \"../drawing\";\nimport { parseShapeStyle, stringifyShapeStyle } from \"./style-matrix\";\nimport type { DefaultShapeDefinitionOptions, ObjectDefaultsOptions } from \"./theme-options\";\n\nfunction stringifyDefaultShapeDefinition(\n tag: string,\n opts: DefaultShapeDefinitionOptions,\n ctx: WriteContext,\n): string {\n // spPr/bodyPr/lstStyle are minOccurs=1 in CT_DefaultShapeDefinition — a\n // present-but-empty section must still emit its (empty) element. The spPr\n // and lstStyle descriptors return inner content only, so the wrapper tags\n // are added here.\n const spPr =\n opts.shapeProperties !== undefined\n ? `<a:spPr>${shapePropertiesDesc.stringify(opts.shapeProperties, ctx) ?? \"\"}</a:spPr>`\n : \"\";\n const bodyPr =\n opts.bodyProperties !== undefined\n ? bodyPropertiesDesc.stringify(opts.bodyProperties, ctx) || \"<a:bodyPr/>\"\n : \"\";\n const lstStyle =\n opts.listStyle !== undefined\n ? `<a:lstStyle>${textListStyleDesc.stringify(opts.listStyle, ctx) ?? \"\"}</a:lstStyle>`\n : \"\";\n const style = opts.shapeStyle ? stringifyShapeStyle(opts.shapeStyle, ctx) : \"\";\n return `<${tag}>${spPr}${bodyPr}${lstStyle}${style}</${tag}>`;\n}\n\nfunction parseDefaultShapeDefinition(\n el: XmlElement | undefined,\n ctx: ReadContext,\n): DefaultShapeDefinitionOptions | undefined {\n if (!el) return undefined;\n const result: Partial<DefaultShapeDefinitionOptions> = {};\n // An empty element still marks the section present (the stringify leg\n // re-emits the empty marker), so `?? {}` — never drop on empty.\n const spPr = findChild(el, \"a:spPr\");\n if (spPr) result.shapeProperties = shapePropertiesDesc.parse(spPr, ctx) ?? {};\n const bodyPr = findChild(el, \"a:bodyPr\");\n if (bodyPr) result.bodyProperties = bodyPropertiesDesc.parse(bodyPr, ctx) ?? {};\n const lstStyle = findChild(el, \"a:lstStyle\");\n if (lstStyle) result.listStyle = textListStyleDesc.parse(lstStyle, ctx) ?? {};\n const style = findChild(el, \"a:style\");\n if (style) {\n const shapeStyle = parseShapeStyle(style, ctx);\n if (shapeStyle) result.shapeStyle = shapeStyle;\n }\n return Object.keys(result).length > 0 ? (result as DefaultShapeDefinitionOptions) : undefined;\n}\n\n/** Serialize a:objectDefaults. Returns an empty element when no defaults set. */\nexport function stringifyObjectDefaults(\n opts: ObjectDefaultsOptions | undefined,\n ctx: WriteContext,\n): string {\n if (!opts) return \"<a:objectDefaults/>\";\n const spDef = opts.shapeDefault\n ? stringifyDefaultShapeDefinition(\"a:spDef\", opts.shapeDefault, ctx)\n : \"\";\n const lnDef = opts.lineDefault\n ? stringifyDefaultShapeDefinition(\"a:lnDef\", opts.lineDefault, ctx)\n : \"\";\n const txDef = opts.textDefault\n ? stringifyDefaultShapeDefinition(\"a:txDef\", opts.textDefault, ctx)\n : \"\";\n if (!spDef && !lnDef && !txDef) return \"<a:objectDefaults/>\";\n return `<a:objectDefaults>${spDef}${lnDef}${txDef}</a:objectDefaults>`;\n}\n\n/** Parse a:objectDefaults. */\nexport function parseObjectDefaults(\n el: XmlElement | undefined,\n ctx: ReadContext,\n): ObjectDefaultsOptions | undefined {\n if (!el) return undefined;\n const result: Partial<ObjectDefaultsOptions> = {};\n const shapeDefault = parseDefaultShapeDefinition(findChild(el, \"a:spDef\"), ctx);\n if (shapeDefault) result.shapeDefault = shapeDefault;\n const lineDefault = parseDefaultShapeDefinition(findChild(el, \"a:lnDef\"), ctx);\n if (lineDefault) result.lineDefault = lineDefault;\n const textDefault = parseDefaultShapeDefinition(findChild(el, \"a:txDef\"), ctx);\n if (textDefault) result.textDefault = textDefault;\n return Object.keys(result).length > 0 ? (result as ObjectDefaultsOptions) : undefined;\n}\n","/**\n * Build theme XML string — structured driver over the CT_BaseStyles parts.\n *\n * Fresh output stays byte-identical to Office by reusing a pre-extracted\n * default fmtScheme fragment (O(1) fast path) unless the caller supplies a\n * structured formatScheme / objectDefaults / extraColorSchemes, in which case\n * the relevant descriptor serializes them.\n *\n * @module\n */\nimport type { WriteContext } from \"../descriptor\";\nimport { stringifyColorScheme } from \"./color-scheme\";\nimport { stringifyCustomColors } from \"./custom-color\";\nimport { stringifyExtraColorSchemes } from \"./extra-color-scheme\";\nimport { stringifyFontScheme } from \"./font-scheme\";\nimport { stringifyObjectDefaults } from \"./object-defaults\";\nimport { stringifyFormatScheme } from \"./style-matrix\";\nimport type { ThemeOptions } from \"./theme-options\";\n\n// Default Office fmtScheme — byte-identical to fresh output, keeps the common\n// path O(1) without running fill/line/effect descriptors.\nconst DEFAULT_FORMAT_SCHEME_XML =\n '<a:fmtScheme name=\"Office\"><a:fillStyleLst><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>' +\n '<a:gradFill rotWithShape=\"1\"><a:gsLst><a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"110000\"/>' +\n '<a:satMod val=\"105000\"/><a:tint val=\"67000\"/></a:schemeClr></a:gs><a:gs pos=\"50000\"><a:schemeClr val=\"phClr\">' +\n '<a:lumMod val=\"105000\"/><a:satMod val=\"103000\"/><a:tint val=\"73000\"/></a:schemeClr></a:gs>' +\n '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"105000\"/><a:satMod val=\"109000\"/><a:tint val=\"81000\"/>' +\n '</a:schemeClr></a:gs></a:gsLst><a:lin ang=\"5400000\" scaled=\"0\"/></a:gradFill><a:gradFill rotWithShape=\"1\">' +\n '<a:gsLst><a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"102000\"/><a:satMod val=\"103000\"/><a:tint val=\"94000\"/>' +\n '</a:schemeClr></a:gs><a:gs pos=\"50000\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"100000\"/><a:satMod val=\"110000\"/>' +\n '<a:shade val=\"100000\"/></a:schemeClr></a:gs><a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"99000\"/>' +\n '<a:satMod val=\"120000\"/><a:shade val=\"78000\"/></a:schemeClr></a:gs></a:gsLst><a:lin ang=\"5400000\" scaled=\"0\"/>' +\n '</a:gradFill></a:fillStyleLst><a:lnStyleLst><a:ln w=\"6350\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill>' +\n '<a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/><a:miter lim=\"800000\"/></a:ln>' +\n '<a:ln w=\"12700\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>' +\n '<a:prstDash val=\"solid\"/><a:miter lim=\"800000\"/></a:ln><a:ln w=\"19050\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\">' +\n '<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/><a:miter lim=\"800000\"/></a:ln>' +\n \"</a:lnStyleLst><a:effectStyleLst><a:effectStyle><a:effectLst/></a:effectStyle><a:effectStyle><a:effectLst/>\" +\n '</a:effectStyle><a:effectStyle><a:effectLst><a:outerShdw blurRad=\"57150\" dist=\"19050\" dir=\"5400000\" algn=\"ctr\" ' +\n 'rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"63000\"/></a:srgbClr></a:outerShdw></a:effectLst>' +\n '</a:effectStyle></a:effectStyleLst><a:bgFillStyleLst><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>' +\n '<a:solidFill><a:schemeClr val=\"phClr\"><a:tint val=\"95000\"/><a:satMod val=\"170000\"/></a:schemeClr></a:solidFill>' +\n '<a:gradFill rotWithShape=\"1\"><a:gsLst><a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"102000\"/>' +\n '<a:satMod val=\"150000\"/><a:tint val=\"93000\"/><a:shade val=\"98000\"/></a:schemeClr></a:gs><a:gs pos=\"50000\">' +\n '<a:schemeClr val=\"phClr\"><a:lumMod val=\"103000\"/><a:satMod val=\"130000\"/><a:tint val=\"98000\"/><a:shade val=\"90000\"/>' +\n '</a:schemeClr></a:gs><a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:satMod val=\"120000\"/><a:shade val=\"63000\"/>' +\n '</a:schemeClr></a:gs></a:gsLst><a:lin ang=\"5400000\" scaled=\"0\"/></a:gradFill></a:bgFillStyleLst></a:fmtScheme>';\n\nfunction requireCtx(ctx: WriteContext | undefined, field: string): WriteContext {\n if (!ctx) throw new Error(`buildThemeXml: ${field} requires a WriteContext`);\n return ctx;\n}\n\nexport function buildThemeXml(options?: ThemeOptions, ctx?: WriteContext): string {\n const opts = options ?? {};\n const name = opts.name ?? \"Office Theme\";\n\n const clrScheme = stringifyColorScheme(opts.colorScheme, name);\n const fontScheme = stringifyFontScheme(opts.fontScheme, name);\n const fmtScheme = opts.formatScheme\n ? stringifyFormatScheme(opts.formatScheme, requireCtx(ctx, \"formatScheme\"))\n : DEFAULT_FORMAT_SCHEME_XML;\n const objectDefaults = opts.objectDefaults\n ? stringifyObjectDefaults(opts.objectDefaults, requireCtx(ctx, \"objectDefaults\"))\n : \"<a:objectDefaults/>\";\n const extraClrSchemeLst = stringifyExtraColorSchemes(opts.extraColorSchemes, name);\n const custClrLst = opts.customColors\n ? stringifyCustomColors(opts.customColors, requireCtx(ctx, \"customColors\"))\n : \"\";\n\n return (\n `<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"${name}\">` +\n `<a:themeElements>${clrScheme}${fontScheme}${fmtScheme}</a:themeElements>` +\n `${objectDefaults}${extraClrSchemeLst}${custClrLst}</a:theme>`\n );\n}\n","/**\n * Theme XML generation — pure function.\n *\n * Fresh output (no options) returns a pre-computed default; anything else\n * rebuilds via buildThemeXml (simple customizations don't need a WriteContext).\n *\n * @module\n */\nimport type { WriteContext } from \"../descriptor\";\nimport { buildThemeXml } from \"./build-theme-xml\";\nimport type { ThemeOptions } from \"./theme-options\";\n\n// Pre-computed default theme XML — zero allocation for the common case.\nconst DEFAULT_XML = buildThemeXml();\n\n/**\n * Generate theme XML string from options.\n * Returns the pre-computed default when no options are provided.\n */\nexport function createThemeXml(options?: ThemeOptions, ctx?: WriteContext): string {\n if (!options) return DEFAULT_XML;\n return buildThemeXml(options, ctx);\n}\n","/**\n * Theme descriptor — bidirectional mapping between ThemeOptions and theme XML.\n *\n * stringify delegates to buildThemeXml (structured driver). parse reads the full\n * CT_BaseStyles surface: colorScheme, fontScheme, formatScheme, objectDefaults,\n * and extraClrSchemeLst — so every part round-trips.\n *\n * @module\n */\n\nimport { findChild } from \"@office-open/xml\";\nimport type { Element as XmlElement } from \"@office-open/xml\";\n\nimport type { CustomDescriptor, ReadContext, WriteContext } from \"../descriptor\";\nimport { buildThemeXml } from \"./build-theme-xml\";\nimport { parseColorScheme } from \"./color-scheme\";\nimport { parseCustomColors } from \"./custom-color\";\nimport { parseExtraColorSchemes } from \"./extra-color-scheme\";\nimport { parseFontScheme } from \"./font-scheme\";\nimport { parseObjectDefaults } from \"./object-defaults\";\nimport { parseFormatScheme } from \"./style-matrix\";\nimport type { ThemeOptions } from \"./theme-options\";\n\nexport const themeDesc: CustomDescriptor<ThemeOptions, WriteContext, ThemeOptions> = {\n kind: \"custom\",\n\n stringify(opts: ThemeOptions, ctx: WriteContext): string | undefined {\n return buildThemeXml(opts, ctx);\n },\n\n parse(el: XmlElement, ctx: ReadContext): ThemeOptions {\n const result: Partial<ThemeOptions> = {};\n\n const name = el.attributes?.[\"name\"];\n if (name) result.name = String(name);\n\n const themeElements = findChild(el, \"a:themeElements\");\n if (themeElements) {\n const colorScheme = parseColorScheme(findChild(themeElements, \"a:clrScheme\"), ctx);\n if (colorScheme) result.colorScheme = colorScheme;\n const fontScheme = parseFontScheme(findChild(themeElements, \"a:fontScheme\"));\n if (fontScheme) result.fontScheme = fontScheme;\n const formatScheme = parseFormatScheme(findChild(themeElements, \"a:fmtScheme\"), ctx);\n if (formatScheme) result.formatScheme = formatScheme;\n }\n\n const objectDefaults = parseObjectDefaults(findChild(el, \"a:objectDefaults\"), ctx);\n if (objectDefaults) result.objectDefaults = objectDefaults;\n\n const extraColorSchemes = parseExtraColorSchemes(findChild(el, \"a:extraClrSchemeLst\"), ctx);\n if (extraColorSchemes) result.extraColorSchemes = extraColorSchemes;\n\n const customColors = parseCustomColors(findChild(el, \"a:custClrLst\"), ctx);\n if (customColors) result.customColors = customColors;\n\n return result as ThemeOptions;\n },\n};\n","/**\n * Theme override and theme manager descriptors.\n *\n * a:themeOverride (CT_BaseStylesOverride) is the root of a themeOverride{n}.xml\n * part — an optional subset of the base styles that a slide/layout/master can\n * reference to deviate from its owning theme. a:themeManager (CT_EmptyElement)\n * is the root of the legacy themeManager part; it carries no content.\n *\n * @module\n */\n\nimport { findChild } from \"@office-open/xml\";\n\nimport type { CustomDescriptor, WriteContext } from \"../descriptor\";\nimport { parseColorScheme, stringifyColorScheme } from \"./color-scheme\";\nimport { parseFontScheme, stringifyFontScheme } from \"./font-scheme\";\nimport { parseFormatScheme, stringifyFormatScheme } from \"./style-matrix\";\nimport type { ThemeOverrideOptions } from \"./theme-options\";\n\nconst THEME_NS = 'xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\"';\n\nexport const themeOverrideDesc: CustomDescriptor<\n ThemeOverrideOptions,\n WriteContext,\n ThemeOverrideOptions\n> = {\n kind: \"custom\",\n\n stringify(opts, ctx) {\n let content = \"\";\n if (opts.colorScheme) {\n content += stringifyColorScheme(opts.colorScheme, opts.colorScheme.name ?? \"Override\");\n }\n if (opts.fontScheme) {\n content += stringifyFontScheme(opts.fontScheme, opts.fontScheme.name ?? \"Override\");\n }\n if (opts.formatScheme) content += stringifyFormatScheme(opts.formatScheme, ctx);\n return `<a:themeOverride ${THEME_NS}>${content}</a:themeOverride>`;\n },\n\n parse(el, ctx) {\n const result: Partial<ThemeOverrideOptions> = {};\n const colorScheme = parseColorScheme(findChild(el, \"a:clrScheme\"), ctx);\n if (colorScheme) result.colorScheme = colorScheme;\n const fontScheme = parseFontScheme(findChild(el, \"a:fontScheme\"));\n if (fontScheme) result.fontScheme = fontScheme;\n const formatScheme = parseFormatScheme(findChild(el, \"a:fmtScheme\"), ctx);\n if (formatScheme) result.formatScheme = formatScheme;\n return result as ThemeOverrideOptions;\n },\n};\n\n/** Options for a themeManager part — CT_EmptyElement has no content or attributes. */\nexport type ThemeManagerOptions = Record<never, never>;\n\nexport const themeManagerDesc: CustomDescriptor<\n ThemeManagerOptions,\n WriteContext,\n ThemeManagerOptions\n> = {\n kind: \"custom\",\n\n stringify(_opts, _ctx) {\n return `<a:themeManager ${THEME_NS}/>`;\n },\n\n parse(_el, _ctx) {\n return {};\n },\n};\n"],"mappings":"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"}
|