@openpresentation/opf 0.22.2 → 0.24.0

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.
Files changed (59) hide show
  1. package/dist/browser.js +16 -16
  2. package/dist/{chunk-X3PQMMAY.js → chunk-33OBLTKZ.js} +1 -1
  3. package/dist/{chunk-SPCONMIY.js → chunk-4I3XPRAO.js} +1 -1
  4. package/dist/{chunk-3T7MNRBY.js → chunk-5PHLSH4E.js} +1 -1
  5. package/dist/{chunk-MAJHCGOW.js → chunk-6WDLGY25.js} +4 -4
  6. package/dist/{chunk-3UAVON3O.js → chunk-BN3A5TVI.js} +194 -4
  7. package/dist/{chunk-23MOKE4B.js → chunk-F6CDJTSE.js} +43 -9
  8. package/dist/{chunk-BULGAKBY.js → chunk-H5GFPQAS.js} +2 -2
  9. package/dist/{chunk-SBWIZSPB.js → chunk-H77YYHPL.js} +5 -5
  10. package/dist/{chunk-MLMTXXM4.js → chunk-JHSTEBPC.js} +5 -5
  11. package/dist/{chunk-VKNFZEMG.js → chunk-N3ZPLGK5.js} +137 -16
  12. package/dist/{chunk-KUNXFN7B.js → chunk-RE4F2USA.js} +1 -1
  13. package/dist/{chunk-MG34DCDB.js → chunk-RP2KIC7W.js} +2 -2
  14. package/dist/{chunk-YSJRBRHB.js → chunk-RQACV2FR.js} +1 -1
  15. package/dist/{chunk-2SENTA2R.js → chunk-RXKXY75X.js} +1 -1
  16. package/dist/{chunk-YUIEWE5B.js → chunk-UIKXX5EX.js} +2 -2
  17. package/dist/{chunk-AHKRJSCF.js → chunk-VKPFDUR5.js} +6 -6
  18. package/dist/{chunk-7XNAMCGT.js → chunk-ZFNKRZZQ.js} +6 -6
  19. package/dist/{composition-CkHn6JrM.d.ts → composition-qX-igJe5.d.ts} +147 -15
  20. package/dist/composition.d.ts +1 -1
  21. package/dist/composition.js +1 -1
  22. package/dist/{conversion-C_MOkYGH.d.ts → conversion-O0XSW0ZV.d.ts} +5 -5
  23. package/dist/conversion-XITF66VJ.js +19 -0
  24. package/dist/convert.d.ts +2 -2
  25. package/dist/convert.js +7 -7
  26. package/dist/data.d.ts +1 -1
  27. package/dist/data.js +2 -2
  28. package/dist/{deck-report-vnWmXBjq.d.ts → deck-report-CJ6gd_6-.d.ts} +2 -2
  29. package/dist/deck.d.ts +5 -5
  30. package/dist/deck.js +10 -10
  31. package/dist/diff.js +5 -5
  32. package/dist/docs.js +9 -9
  33. package/dist/examples.d.ts +1 -1
  34. package/dist/examples.js +5277 -839
  35. package/dist/format.js +2 -2
  36. package/dist/index.d.ts +11 -11
  37. package/dist/index.js +20 -20
  38. package/dist/markdown.d.ts +3 -3
  39. package/dist/markdown.js +7 -7
  40. package/dist/node-engine.d.ts +7 -7
  41. package/dist/node-engine.js +20 -20
  42. package/dist/{pagination-C4jzAtFy.d.ts → pagination-LiWxhbsz.d.ts} +3 -1
  43. package/dist/pagination.d.ts +2 -2
  44. package/dist/pagination.js +4 -4
  45. package/dist/patch.js +4 -4
  46. package/dist/{presentation-fN6tORPZ.d.ts → presentation-Dn-fm0iY.d.ts} +35 -0
  47. package/dist/schemas.d.ts +4 -0
  48. package/dist/schemas.js +1 -1
  49. package/dist/spec/schemas/opf.schema.json +41 -1
  50. package/dist/spec/schemas/theme.schema.json +42 -3
  51. package/dist/types.d.ts +41 -1
  52. package/dist/{validation-types-B21fZfb2.d.ts → validation-types-CzPKoKWo.d.ts} +1 -1
  53. package/dist/{validator-Cflv4F9e.d.ts → validator-BuAV_HUo.d.ts} +2 -2
  54. package/dist/validator.d.ts +4 -4
  55. package/dist/validator.js +3 -3
  56. package/dist/yaml.d.ts +3 -3
  57. package/dist/yaml.js +7 -7
  58. package/package.json +6 -6
  59. package/dist/conversion-LBQMY7LX.js +0 -19
@@ -3451,27 +3451,141 @@ function readableLink(link, background, text2) {
3451
3451
  const contrast2 = linkHex && backgroundHex ? colorContrast(linkHex, backgroundHex) : void 0;
3452
3452
  return contrast2 !== void 0 && contrast2 < MIN_LINK_CONTRAST ? text2 : link;
3453
3453
  }
3454
+ var ACCENT_SLOTS = ["accent1", "accent2", "accent3", "accent4", "accent5", "accent6"];
3455
+ var MAPS = {
3456
+ light1: { bg1: "light1", tx1: "dark1", bg2: "light2", tx2: "dark2" },
3457
+ light2: { bg1: "light2", tx1: "dark1", bg2: "light2", tx2: "dark2" },
3458
+ dark1: { bg1: "dark1", tx1: "light1", bg2: "dark2", tx2: "light2" },
3459
+ dark2: { bg1: "dark2", tx1: "light1", bg2: "dark2", tx2: "light2" }
3460
+ };
3461
+ function normalizeColorVariant(value) {
3462
+ if (typeof value === "string") return Object.hasOwn(MAPS, value) ? { background: value } : void 0;
3463
+ if (!value || typeof value !== "object" || Array.isArray(value)) return void 0;
3464
+ const { background, accents } = value;
3465
+ if (typeof background !== "string" || !Object.hasOwn(MAPS, background)) return void 0;
3466
+ if (accents === void 0) return { background };
3467
+ return Array.isArray(accents) && accents.length === 6 && ACCENT_SLOTS.every((slot) => accents.includes(slot)) ? { background, accents: [...accents] } : void 0;
3468
+ }
3469
+ function isColorVariant(value) {
3470
+ return normalizeColorVariant(value) !== void 0;
3471
+ }
3472
+ function colorMapFor(variant) {
3473
+ const normalized = normalizeColorVariant(variant);
3474
+ const base = MAPS[normalized?.background ?? "light1"];
3475
+ return { ...base, accents: normalized?.accents ? [...normalized.accents] : ACCENT_SLOTS };
3476
+ }
3477
+ var OOXML_SLOT = { light1: "lt1", light2: "lt2", dark1: "dk1", dark2: "dk2" };
3478
+ function clrMapAttributes(map) {
3479
+ return {
3480
+ bg1: OOXML_SLOT[map.bg1],
3481
+ tx1: OOXML_SLOT[map.tx1],
3482
+ bg2: OOXML_SLOT[map.bg2],
3483
+ tx2: OOXML_SLOT[map.tx2],
3484
+ accent1: map.accents[0],
3485
+ accent2: map.accents[1],
3486
+ accent3: map.accents[2],
3487
+ accent4: map.accents[3],
3488
+ accent5: map.accents[4],
3489
+ accent6: map.accents[5],
3490
+ hlink: "hlink",
3491
+ folHlink: "folHlink"
3492
+ };
3493
+ }
3494
+ function rgbToHsl([r, g, b]) {
3495
+ const red = r / 255, green = g / 255, blue = b / 255, max = Math.max(red, green, blue), min = Math.min(red, green, blue), l = (max + min) / 2;
3496
+ if (max === min) return [0, 0, l];
3497
+ const d = max - min, s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
3498
+ const h = max === red ? (green - blue) / d + (green < blue ? 6 : 0) : max === green ? (blue - red) / d + 2 : (red - green) / d + 4;
3499
+ return [h / 6, s, l];
3500
+ }
3501
+ function hslToRgb([h, s, l]) {
3502
+ if (s === 0) return [l * 255, l * 255, l * 255];
3503
+ const q = l < 0.5 ? l * (1 + s) : l + s - l * s, p = 2 * l - q;
3504
+ const channel = (t) => {
3505
+ const u = t < 0 ? t + 1 : t > 1 ? t - 1 : t;
3506
+ return 255 * (u < 1 / 6 ? p + (q - p) * 6 * u : u < 0.5 ? q : u < 2 / 3 ? p + (q - p) * (2 / 3 - u) * 6 : p);
3507
+ };
3508
+ return [channel(h + 1 / 3), channel(h), channel(h - 1 / 3)];
3509
+ }
3510
+ function applyLuminance(hex, lumMod = 1e5, lumOff = 0) {
3511
+ const channels2 = opaqueChannels(hex);
3512
+ if (!channels2) return hex;
3513
+ const [h, s, l] = rgbToHsl(channels2);
3514
+ return hexOfChannels(hslToRgb([h, s, Math.min(1, Math.max(0, l * lumMod / 1e5 + lumOff / 1e5))]));
3515
+ }
3516
+ function mixTowardsBackground(slot, slotHex, backgroundHex, share) {
3517
+ const from = opaqueChannels(slotHex), to = opaqueChannels(backgroundHex);
3518
+ if (!from || !to) return { slot, hex: slotHex };
3519
+ const own3 = rgbToHsl(from)[2], target = rgbToHsl(to)[2] + share * (own3 - rgbToHsl(to)[2]);
3520
+ let lumMod = 1e5, lumOff = 0;
3521
+ if (target >= own3) {
3522
+ const k = own3 >= 1 ? 0 : (target - own3) / (1 - own3);
3523
+ lumMod = Math.round((1 - k) * 1e5);
3524
+ lumOff = Math.round(k * 1e5);
3525
+ } else lumMod = Math.round(target / own3 * 1e5);
3526
+ return { slot, hex: applyLuminance(slotHex, lumMod, lumOff), ...lumMod !== 1e5 ? { lumMod } : {}, ...lumOff !== 0 ? { lumOff } : {} };
3527
+ }
3528
+ var NEUTRAL_SHARES = { border: 0.2, gridline: 0.15, axisLine: 0.25, chartText: 0.65, codeComment: 0.65 };
3454
3529
  function resolveColorRoles(colorScheme, options = {}) {
3455
3530
  const slot = (name, fallback) => slotKeepingAlpha(colorScheme, name, fallback);
3456
- const background = keepAlpha(options.background) ?? defaultSlideBackground(colorScheme);
3457
- const dark = isDarkColor(background);
3458
- const text2 = dark ? slot("light1", "#FFFFFF") : keepAlpha(colorScheme.text) ?? slot("dark1", "#111827");
3459
- const surface = keepAlpha(colorScheme.surface) ?? (dark ? slot("dark2", "#1E293B") : slot("light2", "#F8FAFC"));
3531
+ const FALLBACK2 = { light1: "#FFFFFF", light2: "#F8FAFC", dark1: "#111827", dark2: "#1E293B" };
3532
+ const explicit = normalizeColorVariant(options.variant);
3533
+ const explicitBackground = keepAlpha(options.background);
3534
+ const dark = explicit ? explicit.background.startsWith("dark") : options.tone ? options.tone === "dark" : isDarkColor(explicitBackground ?? defaultSlideBackground(colorScheme));
3535
+ const variant = explicit ?? { background: dark ? "dark1" : "light1" };
3536
+ const map = colorMapFor(variant);
3537
+ const slotColor = (name) => slot(name, FALLBACK2[name]);
3538
+ const bg1 = map.bg1 === "light1" ? defaultSlideBackground(colorScheme) : slotColor(map.bg1);
3539
+ const background = explicitBackground ?? bg1;
3540
+ const tx1 = slotColor(map.tx1), bg2 = slotColor(map.bg2), tx2 = slotColor(map.tx2);
3541
+ const text2 = dark ? tx1 : keepAlpha(colorScheme.text) ?? tx1;
3542
+ const surface = keepAlpha(colorScheme.surface) ?? bg2;
3543
+ const accents = map.accents.map((name) => slot(name, "#000000"));
3544
+ const neutrals = schemeNeutrals({ bg1: explicitBackground ?? bg1, tx1, bg2, tx2, dark });
3460
3545
  return {
3461
- primary: keepAlpha(colorScheme.primary) ?? slot("accent1", "#2563EB"),
3462
- secondary: keepAlpha(colorScheme.secondary) ?? slot("accent2", "#0F766E"),
3463
- accent: keepAlpha(colorScheme.accent) ?? slot("accent3", "#F59E0B"),
3546
+ primary: keepAlpha(colorScheme.primary) ?? accents[0],
3547
+ secondary: keepAlpha(colorScheme.secondary) ?? accents[1],
3548
+ accent: keepAlpha(colorScheme.accent) ?? accents[2],
3464
3549
  background,
3465
3550
  surface,
3466
3551
  surfaceAlt: surfaceAltColor(surface, text2),
3467
- border: dark ? "#475569" : "#CBD5E1",
3552
+ border: neutrals.border.hex,
3468
3553
  text: text2,
3469
- textSecondary: keepAlpha(colorScheme.textSecondary) ?? (dark ? slot("light2", "#E2E8F0") : slot("dark2", "#334155")),
3554
+ textSecondary: keepAlpha(colorScheme.textSecondary) ?? tx2,
3470
3555
  hyperlink: readableLink(slot("hyperlink", DEFAULT_HYPERLINK), background, text2),
3471
3556
  followedHyperlink: slot("followedHyperlink", DEFAULT_FOLLOWED_HYPERLINK),
3472
- dark
3557
+ dark,
3558
+ variant,
3559
+ map,
3560
+ accents,
3561
+ neutrals
3473
3562
  };
3474
3563
  }
3564
+ function schemeNeutrals(colors) {
3565
+ const { bg1, tx1, bg2, tx2, dark } = colors;
3566
+ const opaque = (value) => normalizeHexColor(value) ?? value;
3567
+ const [back, front, second, secondText] = [opaque(bg1), opaque(tx1), opaque(bg2), opaque(tx2)];
3568
+ const share = (amount) => mixTowardsBackground("tx1", front, back, amount);
3569
+ const panel = dark ? { slot: "bg2", hex: second } : { slot: "tx1", hex: front };
3570
+ const textOnPanel = (colorContrast(back, panel.hex) ?? 0) >= (colorContrast(front, panel.hex) ?? 0) ? { slot: "bg1", hex: back } : { slot: "tx1", hex: front };
3571
+ const comment = mixTowardsBackground(textOnPanel.slot, textOnPanel.hex, panel.hex, NEUTRAL_SHARES.codeComment);
3572
+ return {
3573
+ border: share(NEUTRAL_SHARES.border),
3574
+ gridline: share(NEUTRAL_SHARES.gridline),
3575
+ axisLine: share(NEUTRAL_SHARES.axisLine),
3576
+ chartText: share(NEUTRAL_SHARES.chartText),
3577
+ outline: { slot: "bg1", hex: back },
3578
+ trendNeutral: { slot: "tx2", hex: secondText },
3579
+ codePanel: panel,
3580
+ codeText: textOnPanel,
3581
+ codeComment: comment
3582
+ };
3583
+ }
3584
+ function readableSchemeColor(fill, roles) {
3585
+ const light = { slot: "bg1", hex: normalizeHexColor(roles.background) ?? roles.background };
3586
+ const ink = { slot: "tx1", hex: normalizeHexColor(roles.text) ?? roles.text };
3587
+ return (colorContrast(light.hex, fill) ?? 0) >= (colorContrast(ink.hex, fill) ?? 0) ? light : ink;
3588
+ }
3475
3589
  function luminance(value) {
3476
3590
  if (typeof value !== "string") return void 0;
3477
3591
  let hex = value.trim();
@@ -3609,8 +3723,8 @@ function chartPaletteForFill(fill, palette) {
3609
3723
  }
3610
3724
  var CHART_SERIES_TINT_MIX = 0.4;
3611
3725
  function chartSeriesPalette(colorScheme = {}, colors, context = {}) {
3612
- const accents = [1, 2, 3, 4, 5, 6].map((number) => {
3613
- const slot = `accent${number}`;
3726
+ const order = context.accents && context.accents.length === 6 && ACCENT_SLOTS.every((slot) => context.accents.includes(slot)) ? context.accents : ACCENT_SLOTS;
3727
+ const accents = order.map((slot) => {
3614
3728
  return normalizeHexColor(colorScheme?.[slot]) ?? normalizeHexColor(ENGINE_DEFAULT_COLOR_SCHEME[slot]) ?? "#000000";
3615
3729
  });
3616
3730
  const palette = [...accents, ...accents.map((accent) => mixChannels(opaqueChannels(accent), [255, 255, 255], CHART_SERIES_TINT_MIX))];
@@ -4397,6 +4511,13 @@ function codeSyntaxPaletteForScheme(scheme, options = {}) {
4397
4511
  const pick = (role, slot, fallback) => normalize(record9[role]) ?? normalize(record9[slot]) ?? fallback;
4398
4512
  return codeSyntaxPalette({ primary: pick("primary", "accent1", "#2563EB"), secondary: pick("secondary", "accent2", "#0F766E"), accent: pick("accent", "accent3", "#F59E0B") }, options);
4399
4513
  }
4514
+ function codeSyntaxPaletteForRoles(roles, options = {}) {
4515
+ const { neutrals } = roles;
4516
+ return codeSyntaxPalette(
4517
+ { primary: roles.primary, secondary: roles.secondary, accent: roles.accent, mutedText: neutrals.codeComment.hex },
4518
+ { background: neutrals.codePanel.hex, foreground: neutrals.codeText.hex, ...options }
4519
+ );
4520
+ }
4400
4521
 
4401
4522
  // src/metric-trend.ts
4402
4523
  var METRIC_DEFAULT_SENTIMENT = Object.freeze({ up: "positive", down: "negative", flat: "neutral" });
@@ -4545,16 +4666,16 @@ var blend = (from, to, amount) => {
4545
4666
  const a = channels(from), b = channels(to);
4546
4667
  return toHex(a.map((value, index) => value + (b[index] - value) * amount));
4547
4668
  };
4548
- function codeHighlightColors(scheme, palette = codeSyntaxPaletteForScheme(scheme)) {
4669
+ function codeHighlightColors(scheme, palette = codeSyntaxPaletteForScheme(scheme), panel = CODE_PANEL_BACKGROUND) {
4549
4670
  const record9 = scheme && typeof scheme === "object" ? scheme : {};
4550
4671
  const primary = normalize(record9.primary) ?? normalize(record9.accent1) ?? "#2563EB";
4551
4672
  const [hue, saturation] = toHsl(primary);
4552
4673
  const tint = fromHsl(hue, Math.min(saturation, 0.7), 0.45);
4553
- const band = blend(CODE_PANEL_BACKGROUND, tint, CODE_HIGHLIGHT_BAND_TINT);
4674
+ const band = blend(panel, tint, CODE_HIGHLIGHT_BAND_TINT);
4554
4675
  const lit = {}, dim = {};
4555
4676
  for (const key of Object.keys(palette)) {
4556
4677
  lit[key] = legible(palette[key], band, CODE_SYNTAX_MIN_CONTRAST);
4557
- dim[key] = legible(blend(palette[key], CODE_PANEL_BACKGROUND, CODE_HIGHLIGHT_DIM), CODE_PANEL_BACKGROUND, CODE_SYNTAX_MIN_CONTRAST);
4678
+ dim[key] = legible(blend(palette[key], panel, CODE_HIGHLIGHT_DIM), panel, CODE_SYNTAX_MIN_CONTRAST);
4558
4679
  }
4559
4680
  return { band, lit, dim };
4560
4681
  }
@@ -7279,4 +7400,4 @@ function resolveCanvasDimensions(input) {
7279
7400
  return { width, height };
7280
7401
  }
7281
7402
 
7282
- export { AUTO_LAYOUT, CAPTIONABLE_FIELDS, CAPTION_FONT_RATIO, CAPTION_MAX_RATIO, CATALOG_GROUP_PATTERN, CATALOG_REFERENCE_PATTERN, CHART_HIGHLIGHT_MUTED_MIN_CONTRAST, CHART_HIGHLIGHT_MUTED_MIX, CHART_SERIES_MIN_DIFFERENCE, CHART_SERIES_MIN_LIGHTNESS_STEP, CHART_SERIES_TIER_SIZE, CHART_SERIES_TINT_MIX, CHART_TEXT_PX, CHART_TYPES, CITATION_MARKER_RAISE, CITATION_MARKER_SCALE, CODE_HIGHLIGHT_LANGUAGES, CODE_HIGHLIGHT_MAX_LENGTH, CODE_PANEL_BACKGROUND, CODE_PANEL_FOREGROUND, CODE_SYNTAX_MIN_CONTRAST, DARK_BACKGROUND_LUMINANCE, DEFAULT_CHART_LABEL_SEPARATOR, DEFAULT_FURNITURE_DATE_FORMAT, DEFAULT_VARIABLE_DATE_FORMAT, DESIGN_HINT_KEYS, ENGINE_DEFAULT_CHART_TYPES, ENGINE_DEFAULT_COLOR_SCHEME, ENGINE_DEFAULT_FONT_SCHEME, ENGINE_DEFAULT_THEME, FONT_SIZE_GRID_PER_PX, FOOTNOTE_MAX_RATIO, FURNITURE_GAP, FURNITURE_IMAGE_SHARE, FURNITURE_ZONE_GUTTER, HEADING_AREAS, LANGUAGES, LAYOUT_BODY_KINDS, LOGO_SHAPES, MAX_COMPOSITION_DEPTH, MAX_NUMBERING_LEVELS, MAX_NUMBERING_VALUE, MAX_REGION_BLOCKS, MAX_ROMAN_VALUE, MAX_TEMPLATE_TRACKS, METRIC_TREND_MIN_CONTRAST, METRIC_TREND_SHAPES, NUMBERING_STYLES, NUMBERING_SUFFIXES, OPFCatalogsOptionError, OPFCompositionError, OPFLayoutTemplateError, OPFUnresolvedReferenceError, OPFVariableError, PATTERN_PRESETS, PATTERN_PRESET_ALIASES, PATTERN_TILE_SIZE, PICTURE_BULLET_SCALE, PROMOTED_REGION_KEY, REGION_ANCHORS, REGION_FLOWS, REGION_KINDS, REGION_ROLES, RESERVED_REGION_NAMES, SLIDE_SCOPED_BUILTINS, SOCIAL_PLATFORMS, SURFACE_ALT_MIN_CONTRAST, SURFACE_ALT_MIX, THEME_DESIGN_KEYS, TIMELINE_OUTLINE_MIN_CONTRAST, TIMELINE_STATUSES, TIMELINE_TEXT_MIN_CONTRAST, VARIABLE_KINDS, allocateRows, annotationText, bindRegions, blockKind, captionSettings, catalogGroupDeclared, catalogGroupSource, catalogKinds, catalogRecords, catalogReferenceSites, chartColorForFill, chartHighlightColors, chartHighlightMarks, chartLabelText, chartNumber, chartNumberFixesByCell, chartOptionSupport, chartOptionTarget, chartPaletteForFill, chartSeriesPalette, chartTextSize, chartValueAxis, checkCatalogsOption, citationMarkerText, codeHighlightBands, codeHighlightColors, codeHighlightLines, codeHighlightSlice, codeLineNumbers, codeLineRuns, codeSyntaxPalette, codeSyntaxPaletteForScheme, coerceVariableValue, collectCitations, colorContrast, composeLayoutAreas, composeSlide, datasetDiagnostics, defaultSlideBackground, dottedPath, embeddedCopy, fitImage, fitList, fitRichText, fitText, formatChartLabelNumber, formatChartLabelPercent, formatDataNumber, formatFurnitureDate, formatListNumber, formatVariableNumber, fromExcelNumberFormat, gridFlowShape, hasContentVariables, imageBackground, imageShape, inlineChartData, inlineDatasets, inlineTableData, instantiateForValidation, intrinsicImageAspect, intrinsicImageSize, isDarkColor, isDatasetRef, isLayoutTemplate, isRecord, isTemplate, isXYChartType, layoutCaption, layoutCode, layoutContent, layoutFootnotes, layoutFurniture, layoutMetric, layoutQuote, layoutRegion, layoutStructure, layoutTable, layoutTemplate, layoutTemplateIssues, layoutTimeline, layoutWatermark, listBuiltinVariables, listColumnBreaks, listNumbers, listVariables, maxIntervalsFor, measureText, measureTextOutline, metricTrendColor, metricTrendMark, metricTrendPoints, niceScale, normalizeHexColor, normalizeLanguageFamily, numberFormatError, numberingAtLevel, numberingFindings, numberingStyleDraws, paragraphDirection, paragraphDirectionAt, parseReference, pathFor, patternBitmap, patternRuns, physicalAlignment, placeTextLines, placedImageBlocks, pointerPath, promotedRegionKeys, provenanceOf, readingRows, recordReferenceSites, referencesSlide, regionAccepts, regionRoleRank, registeredCatalog, resolveCanvasDimensions, resolveChartColors, resolveChartData, resolveChartOptions, resolveCodeLanguage, resolveColorRef, resolveColorRoles, resolveDesignHints, resolveDesignRecords, resolveFontFamilies, resolveFontScheme, resolveLogo, resolveNumbering, resolvePatternPreset, resolveReference, resolveScriptFonts, resolveSlideDirection, resolveSlideVariables, resolveSocialProfile, resolveTableData, resolveTextStyle, resolveVariables, rootNodes, scriptFontRole, sliceNumberedItems, slideCitations, slideTokenSpans, snapFontSizeDown, snapFontSizeUp, stackCategoryValues, suggestChartNumberFix, surfaceAltColor, tableCellDisplayValue, tableGrid, tableRowBoundaries, textColorForFill, textWidthMeasurer, timelineMarkerShapes, timelineTextColor, toExcelNumberFormat, tokenizeCode, unresolvedReference, unusedDatasets, usesSlideBuiltin, variableDeclarations, visitContentPayloads, visualReadingOrder, walkCitationRuns, wrapText };
7403
+ export { AUTO_LAYOUT, CAPTIONABLE_FIELDS, CAPTION_FONT_RATIO, CAPTION_MAX_RATIO, CATALOG_GROUP_PATTERN, CATALOG_REFERENCE_PATTERN, CHART_HIGHLIGHT_MUTED_MIN_CONTRAST, CHART_HIGHLIGHT_MUTED_MIX, CHART_SERIES_MIN_DIFFERENCE, CHART_SERIES_MIN_LIGHTNESS_STEP, CHART_SERIES_TIER_SIZE, CHART_SERIES_TINT_MIX, CHART_TEXT_PX, CHART_TYPES, CITATION_MARKER_RAISE, CITATION_MARKER_SCALE, CODE_HIGHLIGHT_LANGUAGES, CODE_HIGHLIGHT_MAX_LENGTH, CODE_PANEL_BACKGROUND, CODE_PANEL_FOREGROUND, CODE_SYNTAX_MIN_CONTRAST, DARK_BACKGROUND_LUMINANCE, DEFAULT_CHART_LABEL_SEPARATOR, DEFAULT_FURNITURE_DATE_FORMAT, DEFAULT_VARIABLE_DATE_FORMAT, DESIGN_HINT_KEYS, ENGINE_DEFAULT_CHART_TYPES, ENGINE_DEFAULT_COLOR_SCHEME, ENGINE_DEFAULT_FONT_SCHEME, ENGINE_DEFAULT_THEME, FONT_SIZE_GRID_PER_PX, FOOTNOTE_MAX_RATIO, FURNITURE_GAP, FURNITURE_IMAGE_SHARE, FURNITURE_ZONE_GUTTER, HEADING_AREAS, LANGUAGES, LAYOUT_BODY_KINDS, LOGO_SHAPES, MAX_COMPOSITION_DEPTH, MAX_NUMBERING_LEVELS, MAX_NUMBERING_VALUE, MAX_REGION_BLOCKS, MAX_ROMAN_VALUE, MAX_TEMPLATE_TRACKS, METRIC_TREND_MIN_CONTRAST, METRIC_TREND_SHAPES, NEUTRAL_SHARES, NUMBERING_STYLES, NUMBERING_SUFFIXES, OPFCatalogsOptionError, OPFCompositionError, OPFLayoutTemplateError, OPFUnresolvedReferenceError, OPFVariableError, PATTERN_PRESETS, PATTERN_PRESET_ALIASES, PATTERN_TILE_SIZE, PICTURE_BULLET_SCALE, PROMOTED_REGION_KEY, REGION_ANCHORS, REGION_FLOWS, REGION_KINDS, REGION_ROLES, RESERVED_REGION_NAMES, SLIDE_SCOPED_BUILTINS, SOCIAL_PLATFORMS, SURFACE_ALT_MIN_CONTRAST, SURFACE_ALT_MIX, THEME_DESIGN_KEYS, TIMELINE_OUTLINE_MIN_CONTRAST, TIMELINE_STATUSES, TIMELINE_TEXT_MIN_CONTRAST, VARIABLE_KINDS, allocateRows, annotationText, applyLuminance, bindRegions, blockKind, captionSettings, catalogGroupDeclared, catalogGroupSource, catalogKinds, catalogRecords, catalogReferenceSites, chartColorForFill, chartHighlightColors, chartHighlightMarks, chartLabelText, chartNumber, chartNumberFixesByCell, chartOptionSupport, chartOptionTarget, chartPaletteForFill, chartSeriesPalette, chartTextSize, chartValueAxis, checkCatalogsOption, citationMarkerText, clrMapAttributes, codeHighlightBands, codeHighlightColors, codeHighlightLines, codeHighlightSlice, codeLineNumbers, codeLineRuns, codeSyntaxPalette, codeSyntaxPaletteForRoles, codeSyntaxPaletteForScheme, coerceVariableValue, collectCitations, colorContrast, colorMapFor, composeLayoutAreas, composeSlide, datasetDiagnostics, defaultSlideBackground, dottedPath, embeddedCopy, fitImage, fitList, fitRichText, fitText, formatChartLabelNumber, formatChartLabelPercent, formatDataNumber, formatFurnitureDate, formatListNumber, formatVariableNumber, fromExcelNumberFormat, gridFlowShape, hasContentVariables, imageBackground, imageShape, inlineChartData, inlineDatasets, inlineTableData, instantiateForValidation, intrinsicImageAspect, intrinsicImageSize, isColorVariant, isDarkColor, isDatasetRef, isLayoutTemplate, isRecord, isTemplate, isXYChartType, layoutCaption, layoutCode, layoutContent, layoutFootnotes, layoutFurniture, layoutMetric, layoutQuote, layoutRegion, layoutStructure, layoutTable, layoutTemplate, layoutTemplateIssues, layoutTimeline, layoutWatermark, listBuiltinVariables, listColumnBreaks, listNumbers, listVariables, maxIntervalsFor, measureText, measureTextOutline, metricTrendColor, metricTrendMark, metricTrendPoints, niceScale, normalizeColorVariant, normalizeHexColor, normalizeLanguageFamily, numberFormatError, numberingAtLevel, numberingFindings, numberingStyleDraws, paragraphDirection, paragraphDirectionAt, parseReference, pathFor, patternBitmap, patternRuns, physicalAlignment, placeTextLines, placedImageBlocks, pointerPath, promotedRegionKeys, provenanceOf, readableSchemeColor, readingRows, recordReferenceSites, referencesSlide, regionAccepts, regionRoleRank, registeredCatalog, resolveCanvasDimensions, resolveChartColors, resolveChartData, resolveChartOptions, resolveCodeLanguage, resolveColorRef, resolveColorRoles, resolveDesignHints, resolveDesignRecords, resolveFontFamilies, resolveFontScheme, resolveLogo, resolveNumbering, resolvePatternPreset, resolveReference, resolveScriptFonts, resolveSlideDirection, resolveSlideVariables, resolveSocialProfile, resolveTableData, resolveTextStyle, resolveVariables, rootNodes, scriptFontRole, sliceNumberedItems, slideCitations, slideTokenSpans, snapFontSizeDown, snapFontSizeUp, stackCategoryValues, suggestChartNumberFix, surfaceAltColor, tableCellDisplayValue, tableGrid, tableRowBoundaries, textColorForFill, textWidthMeasurer, timelineMarkerShapes, timelineTextColor, toExcelNumberFormat, tokenizeCode, unresolvedReference, unusedDatasets, usesSlideBuiltin, variableDeclarations, visitContentPayloads, visualReadingOrder, walkCitationRuns, wrapText };
@@ -1,4 +1,4 @@
1
- import { runText } from './chunk-2SENTA2R.js';
1
+ import { runText } from './chunk-RXKXY75X.js';
2
2
 
3
3
  // src/convert/text-lines.ts
4
4
  var LIST_PREFIX = /^([ \t]*)(?:([-*•+]|\d{1,3}[.)])[ \t]+)?/;
@@ -1,5 +1,5 @@
1
- import { OPFApiError } from './chunk-MAJHCGOW.js';
2
- import { CATALOG_SCHEMA } from './chunk-23MOKE4B.js';
1
+ import { OPFApiError } from './chunk-6WDLGY25.js';
2
+ import { CATALOG_SCHEMA } from './chunk-F6CDJTSE.js';
3
3
  import { CATALOG_SCHEMA as CATALOG_SCHEMA$1, gallery } from '@openpresentation/gallery';
4
4
 
5
5
  function galleryMismatch(declared, reads = CATALOG_SCHEMA) {
@@ -1,4 +1,4 @@
1
- import { validate } from './chunk-23MOKE4B.js';
1
+ import { validate } from './chunk-F6CDJTSE.js';
2
2
 
3
3
  // src/patch.ts
4
4
  var OPFPatchError = class extends Error {
@@ -1,4 +1,4 @@
1
- import { validate } from './chunk-23MOKE4B.js';
1
+ import { validate } from './chunk-F6CDJTSE.js';
2
2
 
3
3
  // src/convert/shared.ts
4
4
  var CONTENT_KEYS = ["text", "items", "bullets", "image", "video", "chart", "table", "code", "metric", "quote", "timeline"];
@@ -1,5 +1,5 @@
1
- import { assertValid, resolveSlideScriptMeasurement, resolveSlideContext } from './chunk-23MOKE4B.js';
2
- import { resolveSlideVariables, checkCatalogsOption, usesSlideBuiltin, composeSlide, codeHighlightSlice, tableRowBoundaries, visitContentPayloads, regionAccepts, slideTokenSpans, sliceNumberedItems } from './chunk-VKNFZEMG.js';
1
+ import { assertValid, resolveSlideScriptMeasurement, resolveSlideContext } from './chunk-F6CDJTSE.js';
2
+ import { resolveSlideVariables, checkCatalogsOption, usesSlideBuiltin, composeSlide, codeHighlightSlice, tableRowBoundaries, visitContentPayloads, regionAccepts, slideTokenSpans, sliceNumberedItems } from './chunk-N3ZPLGK5.js';
3
3
 
4
4
  // src/pagination.ts
5
5
  var OPFPaginationError = class extends Error {
@@ -1,8 +1,8 @@
1
- import { defaultCatalogs } from './chunk-MG34DCDB.js';
2
- import { localAssetSources, OPFApiError, parseSlideSelection, OPFExportError, asApiError, OPFImportError } from './chunk-MAJHCGOW.js';
3
- import { deckFormatOf, readDeckReport, stringify } from './chunk-MLMTXXM4.js';
4
- import { paginate } from './chunk-YUIEWE5B.js';
5
- import { validate, OPFValidationError } from './chunk-23MOKE4B.js';
1
+ import { defaultCatalogs } from './chunk-RP2KIC7W.js';
2
+ import { localAssetSources, OPFApiError, parseSlideSelection, OPFExportError, asApiError, OPFImportError } from './chunk-6WDLGY25.js';
3
+ import { deckFormatOf, readDeckReport, stringify } from './chunk-JHSTEBPC.js';
4
+ import { paginate } from './chunk-UIKXX5EX.js';
5
+ import { validate, OPFValidationError } from './chunk-F6CDJTSE.js';
6
6
  import { link, stat, readdir, lstat, readFile, open, unlink, mkdir, rename } from 'fs/promises';
7
7
  import path6 from 'path';
8
8
  import { readFileSync, statSync, realpathSync } from 'fs';
@@ -117,7 +117,7 @@ function localAssetProblems(deck, root) {
117
117
  }
118
118
  var RENDER_PACKAGE = "@openpresentation/opf-render";
119
119
  var PPTX_PACKAGE = "@openpresentation/opf-pptx";
120
- var PEER_RANGES = { [RENDER_PACKAGE]: "^0.22.0", [PPTX_PACKAGE]: "^0.22.0" };
120
+ var PEER_RANGES = { [RENDER_PACKAGE]: "^0.24.0", [PPTX_PACKAGE]: "^0.24.0" };
121
121
  var PPTX_TEXT_OPTIONS_FROM = "0.22.0";
122
122
  var numbers = (version) => version.replace(/[-+].*$/, "").split(".").map((part) => Number.parseInt(part, 10) || 0);
123
123
  function atLeast(version, minimum) {
@@ -1,9 +1,9 @@
1
- import { NOT_CHECKED, Ctx } from './chunk-3T7MNRBY.js';
2
- import { sortPresentationKeys } from './chunk-X3PQMMAY.js';
3
- import { same } from './chunk-2SENTA2R.js';
4
- import { validate } from './chunk-23MOKE4B.js';
5
- import { checkCatalogsOption } from './chunk-VKNFZEMG.js';
6
- import { presentation } from './chunk-3UAVON3O.js';
1
+ import { NOT_CHECKED, Ctx } from './chunk-5PHLSH4E.js';
2
+ import { sortPresentationKeys } from './chunk-33OBLTKZ.js';
3
+ import { same } from './chunk-RXKXY75X.js';
4
+ import { validate } from './chunk-F6CDJTSE.js';
5
+ import { checkCatalogsOption } from './chunk-N3ZPLGK5.js';
6
+ import { presentation } from './chunk-BN3A5TVI.js';
7
7
  import { Parser, parseDocument, isMap, Document, visit, isScalar, isAlias, isSeq } from 'yaml';
8
8
 
9
9
  var MAX_ALIAS_COUNT = 100;
@@ -798,45 +798,152 @@ declare function isDarkColor(color: unknown): boolean;
798
798
  * `background` role override, else its light1 slot, else white. Gradient and picture backgrounds use it too.
799
799
  */
800
800
  declare function defaultSlideBackground(colorScheme: Record<string, unknown>): string;
801
+ /** The four slots a variant can use as the slide background. */
802
+ type ColorVariantBackground = 'light1' | 'light2' | 'dark1' | 'dark2';
803
+ type ColorAccentSlot = 'accent1' | 'accent2' | 'accent3' | 'accent4' | 'accent5' | 'accent6';
804
+ /**
805
+ * A variant of the deck's single colour scheme: which slot is the background (and so which are the text and the alternate surface),
806
+ * and optionally the order of the accents. It is a mapping over the scheme's twelve slots, as PowerPoint's `clrMap` is, never a second
807
+ * scheme: nothing in it is a colour.
808
+ */
809
+ interface ColorVariant {
810
+ background: ColorVariantBackground;
811
+ /** A permutation of `accent1` to `accent6`: entry `i` is the scheme slot drawn as accent `i + 1`. Default: the scheme's own order. */
812
+ accents?: readonly ColorAccentSlot[];
813
+ }
814
+ /** The slots the roles bg1, tx1, bg2 and tx2 and the six accents point at (OOXML `clrMap`, with `lt1` named `light1` and so on). */
815
+ interface ColorMap {
816
+ bg1: ColorVariantBackground;
817
+ tx1: ColorVariantBackground;
818
+ bg2: ColorVariantBackground;
819
+ tx2: ColorVariantBackground;
820
+ accents: readonly ColorAccentSlot[];
821
+ }
822
+ /** A variant as authored: the background slot alone (`"dark1"`, the same as `{ "background": "dark1" }`), or the object form, which is needed only for an accent order. */
823
+ type ColorVariantInput = ColorVariantBackground | ColorVariant;
824
+ /** The variant an authored value stands for, always the normalized object form, or undefined for a value that is not a variant: a background slot string, or an object with a background slot and, when given, a permutation of the six accent slots. */
825
+ declare function normalizeColorVariant(value: unknown): ColorVariant | undefined;
826
+ /** True for a well formed variant in either form (see {@link normalizeColorVariant}). */
827
+ declare function isColorVariant(value: unknown): value is ColorVariantInput;
828
+ /**
829
+ * The map a variant stands for: `light1` is the default map (bg1 = light1, tx1 = dark1, bg2 = light2, tx2 = dark2); `dark1` swaps
830
+ * light and dark; `light2` and `dark2` make that slot both the background and the alternate surface (bg2, as a slide with that theme
831
+ * background has always had it, which keeps the default theme's dark2 background unchanged), with the text of the family's side. No variant is `light1`.
832
+ */
833
+ declare function colorMapFor(variant?: ColorVariantInput): ColorMap;
834
+ /**
835
+ * The attributes of PowerPoint's `<p:clrMap>` for a map (`bg1="lt1" tx1="dk1" bg2="lt2" tx2="dk2" accent1="accent1" ...` and the two
836
+ * hyperlink slots unchanged), so the PPTX export writes the master map and a slide's `clrMapOvr` from the same data the preview reads.
837
+ */
838
+ declare function clrMapAttributes(map: ColorMap): Record<string, string>;
839
+ /**
840
+ * A scheme colour as the PPTX export writes it and the preview draws it: `slot` is the colour role or slot (`tx1`, `bg1`, `bg2`, `tx2`,
841
+ * `accent1` ...), `lumMod` and `lumOff` are DrawingML luminance transforms in thousandths of a percent (`lumMod 15000, lumOff 85000` is
842
+ * 15% of the slot's luminance plus 85%), `alpha` an opacity in the same unit, and `hex` is the colour the transforms give for the
843
+ * resolved scheme, so a preview that draws `hex` and a PPTX that writes `<a:schemeClr val={slot}>` with the transforms show the same colour.
844
+ */
845
+ interface SchemeColor {
846
+ slot: string;
847
+ hex: string;
848
+ lumMod?: number;
849
+ lumOff?: number;
850
+ alpha?: number;
851
+ }
852
+ /** The colour a `lumMod`/`lumOff` pair (thousandths of a percent) makes of `hex`: its HSL luminance times `lumMod`, plus `lumOff`. */
853
+ declare function applyLuminance(hex: string, lumMod?: number, lumOff?: number): string;
854
+ /** Shares of the text colour (tx1) mixed into the background (bg1) for the neutrals, PowerPoint's chart-style values. */
855
+ declare const NEUTRAL_SHARES: {
856
+ readonly border: 0.2;
857
+ readonly gridline: 0.15;
858
+ readonly axisLine: 0.25;
859
+ readonly chartText: 0.65;
860
+ readonly codeComment: 0.65;
861
+ };
862
+ /**
863
+ * The colours OPF draws that are neither text nor an accent, all derived from the scheme through the variant's map, so a dark variant
864
+ * gets light lines and a change of variant or background style in PowerPoint recolours them.
865
+ */
866
+ interface SchemeNeutrals {
867
+ /** Quiet structural rules, card borders and table borders: tx1 at {@link NEUTRAL_SHARES}.border over bg1. */
868
+ border: SchemeColor;
869
+ /** Chart gridlines: tx1 at 15%. */
870
+ gridline: SchemeColor;
871
+ /** Chart axis lines: tx1 at 25%. */
872
+ axisLine: SchemeColor;
873
+ /** Chart axis labels and legend text where the chart does not use the slide text colour: tx1 at 65%. */
874
+ chartText: SchemeColor;
875
+ /** Pie and treemap outlines, the video play icon and anything drawn on top of a mark: bg1. */
876
+ outline: SchemeColor;
877
+ /** The neutral metric trend (no good or bad news): tx2. */
878
+ trendNeutral: SchemeColor;
879
+ /** The code panel: tx1 (a dark panel) on a light variant, bg2 on a dark one, so a code block is a dark card on either. */
880
+ codePanel: SchemeColor;
881
+ /** Plain code text: bg1 or tx1, whichever reads better on the panel. */
882
+ codeText: SchemeColor;
883
+ /** Code comments and line numbers: the code text at 65% over the panel. */
884
+ codeComment: SchemeColor;
885
+ }
801
886
  interface ResolvedColorRoles {
802
- /** Role override, else accent1. */
887
+ /** Role override, else the first accent of the variant (accent1 by default). */
803
888
  primary: string;
804
- /** Role override, else accent2. */
889
+ /** Role override, else the second accent of the variant (accent2 by default). */
805
890
  secondary: string;
806
- /** Role override, else accent3. */
891
+ /** Role override, else the third accent of the variant (accent3 by default). */
807
892
  accent: string;
808
- /** The slide background: the resolved single-color background of the slide, else {@link defaultSlideBackground}. */
893
+ /** The slide background: the resolved single-color background of the slide, else the variant's bg1 (light1 by default; see {@link defaultSlideBackground}). */
809
894
  background: string;
810
- /** Role override, else dark2 on a dark background and light2 on a light one. */
895
+ /** Role override, else bg2 of the variant (light2 on a light slide, dark2 on a dark one). */
811
896
  surface: string;
812
897
  /** The alternate surface of banded table rows: {@link surfaceAltColor} of `surface` and `text`, always distinguishable from `surface`. */
813
898
  surfaceAlt: string;
814
- /** Default text. On a dark background light1. On a light background the `text` role override, else dark1. */
899
+ /** Default text: tx1 of the variant (light1 on a dark background). On a light background the `text` role override, else dark1. */
815
900
  text: string;
816
- /** Role override, else light2 on a dark background and dark2 on a light one. */
901
+ /** Role override, else tx2 of the variant (light2 on a dark background and dark2 on a light one). */
817
902
  textSecondary: string;
818
903
  /** The color of a link run that sets no color of its own: the scheme's hyperlink slot (OOXML hlink), unless that has under 4.5:1 contrast against the slide background, then the slide `text` color. */
819
904
  hyperlink: string;
820
905
  /** Followed-hyperlink slot (OOXML folHlink). */
821
906
  followedHyperlink: string;
822
- /** Quiet structural rules/cards: neutral slate on a light or dark slide, never a brand accent. Authored borders still resolve their own ColorRef. */
907
+ /** Quiet structural rules/cards: `neutrals.border.hex`, tx1 mixed into bg1. Authored borders still resolve their own ColorRef. */
823
908
  border: string;
824
909
  /** Whether the slide background is dark; text, surface and textSecondary defaults follow it. */
825
910
  dark: boolean;
911
+ /** The variant these roles were resolved with: the one given, else the one the background's luminance (or tone) implies. */
912
+ variant: ColorVariant;
913
+ /** The map behind the roles (bg1, tx1, bg2, tx2 and the accent order), for PPTX `clrMap` and `clrMapOvr` ({@link clrMapAttributes}). */
914
+ map: ColorMap;
915
+ /** The six accent colours in the variant's order (primary, secondary and accent are the first three unless overridden). */
916
+ accents: string[];
917
+ /** Every neutral derived from the scheme, with its slot and luminance transform for `schemeClr` export. */
918
+ neutrals: SchemeNeutrals;
826
919
  }
827
920
  interface ResolveColorRolesOptions {
828
921
  /** The slide's resolved single-color background (solid, theme-slot or pattern background color). Omit for a gradient, picture or no background. */
829
922
  background?: string | null;
923
+ /** The slide's variant (RR-96), as authored (`"dark1"` or the object form). It sets the map; without it the background's luminance (or `tone`) chooses light1 or dark1. */
924
+ variant?: ColorVariantInput;
925
+ /** `dark` or `light` for a picture or gradient background that names its tone: it chooses dark1 or light1 when there is no `variant`. */
926
+ tone?: 'dark' | 'light';
830
927
  }
831
928
  /**
832
929
  * Resolve a color scheme's abstract roles for one slide: the single definition the opf-render preview, the
833
- * PPTX export and the audit share, so the same deck draws the same colors in all three. Role overrides on the
834
- * scheme (`primary`, `secondary`, `accent`, `background`, `surface`, `text`, `textSecondary`) win over the slots they
835
- * default to. The background-dependent roles follow {@link isDarkColor} of the slide background; a `text`
836
- * override applies only on a light background, so a dark slide always gets readable light1 text.
930
+ * PPTX export and the audit share, so the same deck draws the same colors in all three.
931
+ *
932
+ * RR-96: the roles come from the variant's map over the scheme's slots, as PowerPoint's roles do: background is bg1, text tx1,
933
+ * textSecondary tx2, surface bg2, and primary, secondary and accent the first three accents in the variant's order. Without
934
+ * `options.variant` the map is chosen from the slide: `options.tone` for a picture or gradient that names one, else the luminance of
935
+ * `options.background` ({@link isDarkColor}; dark1 when dark, light1 otherwise), which is the earlier behavior. Role overrides on the
936
+ * scheme (`primary`, `secondary`, `accent`, `background`, `surface`, `text`, `textSecondary`) win over the slots they default to; a
937
+ * `text` override applies only on a light background, so a dark slide always gets readable light text. `roles.neutrals` holds every
938
+ * line and quiet color derived from the same map, each with the slot and luminance transform the PPTX export writes.
837
939
  * Values are uppercase #RRGGBB, or #RRGGBBAA where the scheme color carries an alpha byte.
838
940
  */
839
941
  declare function resolveColorRoles(colorScheme: Record<string, unknown>, options?: ResolveColorRolesOptions): ResolvedColorRoles;
942
+ /**
943
+ * The scheme color, bg1 or tx1 of the roles, that reads best on `fill`: for table header text, text on a mark and anything else that
944
+ * sits on a color the scheme does not name. Returned as a {@link SchemeColor} (slot `bg1` or `tx1`) so the export can write a theme color.
945
+ */
946
+ declare function readableSchemeColor(fill: string, roles: Pick<ResolvedColorRoles, 'neutrals' | 'text' | 'background'>): SchemeColor;
840
947
  declare function colorContrast(foreground: string, background: string): number | undefined;
841
948
  /** Keep an inherited text color at >=4.5:1; otherwise select black or white.
842
949
  * Callers must preserve explicit text-color overrides before using this fallback.
@@ -908,6 +1015,8 @@ declare const CHART_SERIES_TINT_MIX = 0.4;
908
1015
  declare function chartSeriesPalette(colorScheme?: Record<string, unknown>, colors?: unknown, context?: ChartColorContext): string[];
909
1016
  /** What a `chart.colors` entry resolves against: the deck's role colours and `variables`, as for any ColorRef. */
910
1017
  interface ChartColorContext {
1018
+ /** RR-96: the variant's accent order (`roles.map.accents`): series 1 to 6 take these slots in this order. Default: accent1 to accent6. */
1019
+ accents?: readonly ColorAccentSlot[];
911
1020
  roles?: ResolveColorRefRoles;
912
1021
  variables?: Record<string, unknown>;
913
1022
  }
@@ -1028,6 +1137,28 @@ declare function codeSyntaxPalette(theme?: CodeSyntaxPaletteTheme, options?: Cod
1028
1137
  * with the scheme they resolved, so they cannot disagree on the inputs.
1029
1138
  */
1030
1139
  declare function codeSyntaxPaletteForScheme(scheme: unknown, options?: CodeSyntaxPaletteOptions): CodeSyntaxPalette;
1140
+ /**
1141
+ * RR-96: the palette for a slide's resolved roles. The code panel, the plain text and the comment colour come from the scheme through the
1142
+ * variant's map (`roles.neutrals.codePanel`, `codeText`, `codeComment`), and keyword, string and number take the first three accents of the
1143
+ * variant, so a dark variant or a re-ordered accent list restyles the code block with the rest of the slide. Preview and export call this with
1144
+ * the roles they resolved; `scheme` supplies `primary`, `secondary` and `accent` overrides the same way {@link codeSyntaxPaletteForScheme} does.
1145
+ */
1146
+ declare function codeSyntaxPaletteForRoles(roles: {
1147
+ primary: string;
1148
+ secondary: string;
1149
+ accent: string;
1150
+ neutrals: {
1151
+ codePanel: {
1152
+ hex: string;
1153
+ };
1154
+ codeText: {
1155
+ hex: string;
1156
+ };
1157
+ codeComment: {
1158
+ hex: string;
1159
+ };
1160
+ };
1161
+ }, options?: CodeSyntaxPaletteOptions): CodeSyntaxPalette;
1031
1162
 
1032
1163
  /**
1033
1164
  * Timeline event status (FA-11): how a `done`, `current` or `planned` event looks in the SVG
@@ -1133,9 +1264,10 @@ interface CodeHighlightColors {
1133
1264
  /**
1134
1265
  * The highlight colours for a resolved colour scheme record. The band takes the scheme's `primary`
1135
1266
  * (or `accent1`); the palette is `codeSyntaxPaletteForScheme(scheme)` so highlighted lines keep their syntax
1136
- * colours. Preview and export call this with the scheme they resolved.
1267
+ * colours. Preview and export call this with the scheme they resolved. `panel` is the code panel colour the band and the dimmed
1268
+ * lines sit on (RR-96: `roles.neutrals.codePanel.hex`, derived from the scheme); the default is the fixed {@link CODE_PANEL_BACKGROUND}.
1137
1269
  */
1138
- declare function codeHighlightColors(scheme: unknown, palette?: CodeSyntaxPalette): CodeHighlightColors;
1270
+ declare function codeHighlightColors(scheme: unknown, palette?: CodeSyntaxPalette, panel?: string): CodeHighlightColors;
1139
1271
 
1140
1272
  /**
1141
1273
  * Geometry of a text watermark (`design.watermark = { text, opacity }`), shared by the SVG preview and the
@@ -2933,4 +3065,4 @@ declare function resolveCanvasDimensions(input: unknown): {
2933
3065
  height: number;
2934
3066
  };
2935
3067
 
2936
- export { type ChartColorContext as $, AUTO_LAYOUT as A, type BackgroundImageFit as B, type ComposeSlideOptions as C, CHART_SERIES_MIN_LIGHTNESS_STEP as D, ENGINE_DEFAULT_CHART_TYPES as E, type Fonts as F, CHART_SERIES_TIER_SIZE as G, CHART_SERIES_TINT_MIX as H, CHART_TEXT_PX as I, CITATION_MARKER_RAISE as J, CITATION_MARKER_SCALE as K, type LayoutDiagnostic as L, type MeasureTextWidth as M, CODE_HIGHLIGHT_LANGUAGES as N, CODE_HIGHLIGHT_MAX_LENGTH as O, CODE_PANEL_BACKGROUND as P, CODE_PANEL_FOREGROUND as Q, type ResolveLogoOptions as R, SOCIAL_PLATFORMS as S, type TextMeasurement as T, CODE_SYNTAX_MIN_CONTRAST as U, type Caption as V, type CaptionAlignment as W, type CaptionObject as X, type CaptionPosition as Y, type CaptionSettings as Z, type ChartAxisGeometry as _, CHART_TYPES as a, FURNITURE_GAP as a$, type ChartHighlightMarks as a0, type ChartLabelContent as a1, type ChartLabelPosition as a2, type ChartLegendPosition as a3, type ChartOptionDiagnostic as a4, type ChartOptionKind as a5, type ChartOptionSupport as a6, type ChartOptionTarget as a7, type ChartScale as a8, type ChartValueAxis as a9, type ComposedFootnotes as aA, type ComposedGroup as aB, type ComposedHeadingArea as aC, type ComposedImage as aD, type ComposedItem as aE, type ComposedLayoutArea as aF, type ComposedListColumn as aG, type ComposedLogo as aH, type ComposedOverlay as aI, type ComposedPlacement as aJ, type ComposedRegion as aK, type Composition as aL, type CompositionCandidate as aM, type CompositionDecision as aN, type CompositionExplanation as aO, type CompositionPenalties as aP, type CompositionTrack as aQ, DARK_BACKGROUND_LUMINANCE as aR, DEFAULT_CHART_LABEL_SEPARATOR as aS, DEFAULT_FURNITURE_DATE_FORMAT as aT, DESIGN_HINT_KEYS as aU, type DeckCitations as aV, type DesignHintKey as aW, type DesignHintSource as aX, type DesignHints as aY, FONT_SIZE_GRID_PER_PX as aZ, FOOTNOTE_MAX_RATIO as a_, type CitationMarker as aa, type CitationNote as ab, type CodeContent as ac, type CodeHighlightBand as ad, type CodeHighlightColors as ae, type CodeHighlightEntry as af, type CodeHighlightIssue as ag, type CodeHighlightLines as ah, type CodeLayout as ai, type CodeLayoutDiagnostic as aj, type CodeLayoutOptions as ak, type CodeLineSegment as al, type CodeLineSource as am, type CodeRun as an, type CodeSyntaxPalette as ao, type CodeSyntaxPaletteOptions as ap, type CodeSyntaxPaletteTheme as aq, type CodeTextFit as ar, type CodeTextPart as as, type CodeToken as at, type CodeTokenKind as au, type ComposedBackgroundImage as av, type ComposedCaption as aw, type ComposedChart as ax, type ComposedFlow as ay, type ComposedFootnoteEntry as az, ENGINE_DEFAULT_COLOR_SCHEME as b, PATTERN_TILE_SIZE as b$, FURNITURE_IMAGE_SHARE as b0, FURNITURE_ZONE_GUTTER as b1, type FlowShape as b2, type FontFaceSelection as b3, type FootnoteLayoutOptions as b4, type FurnitureField as b5, type FurnitureImagePart as b6, type FurnitureLayout as b7, type FurniturePart as b8, type FurniturePartBase as b9, MAX_NUMBERING_LEVELS as bA, MAX_NUMBERING_VALUE as bB, MAX_REGION_BLOCKS as bC, MAX_ROMAN_VALUE as bD, MAX_TEMPLATE_TRACKS as bE, METRIC_TREND_MIN_CONTRAST as bF, METRIC_TREND_SHAPES as bG, type MetricContent as bH, type MetricLayout as bI, type MetricLayoutDiagnostic as bJ, type MetricLayoutOptions as bK, type MetricSentiment as bL, type MetricTextPart as bM, type MetricTextSource as bN, type MetricTrend as bO, type MetricTrendColorOptions as bP, type MetricTrendMark as bQ, NUMBERING_STYLES as bR, NUMBERING_SUFFIXES as bS, type Numbering as bT, type NumberingInput as bU, type NumberingStyleName as bV, type NumberingSuffix as bW, OPFCompositionError as bX, OPFLayoutTemplateError as bY, PATTERN_PRESETS as bZ, PATTERN_PRESET_ALIASES as b_, type FurnitureSocialLink as ba, type FurnitureTextExtras as bb, type FurnitureTextPart as bc, HEADING_AREAS as bd, type ImageEdge as be, type ImageFit as bf, type ImageFitPlacement as bg, type ImageFocus as bh, type ImageShape as bi, LAYOUT_BODY_KINDS as bj, type LayoutArea as bk, type LayoutAreasOptions as bl, type LayoutBodyKind as bm, type LayoutBox as bn, type LayoutContent as bo, type LayoutRegion as bp, type LayoutTemplate as bq, type LayoutTemplateIssue as br, type ListBulletImage as bs, type ListEntryLayout as bt, type ListFit as bu, type ListFitOptions as bv, type ListNumber as bw, type ListText as bx, type ListValue as by, MAX_COMPOSITION_DEPTH as bz, ENGINE_DEFAULT_FONT_SCHEME as c, type TableGridCell as c$, PICTURE_BULLET_SCALE as c0, type PhysicalAlignment as c1, type QuoteContent as c2, type QuoteLayout as c3, type QuoteLayoutDiagnostic as c4, type QuoteLayoutOptions as c5, type QuotePhoto as c6, type QuoteTextPart as c7, type QuoteTextSource as c8, REGION_ANCHORS as c9, type RichText as cA, type RichTextFit as cB, type RichTextFragment as cC, type RichTextLine as cD, type RichTextOptions as cE, type RichTextRun as cF, type RowDemand as cG, SURFACE_ALT_MIN_CONTRAST as cH, SURFACE_ALT_MIX as cI, type ScriptFontApp as cJ, type ScriptFontSlots as cK, type ScriptFontSource as cL, type ScriptFontSupplement as cM, type ScriptMeasurementProfile as cN, type ScriptRole as cO, type SlideCitations as cP, type SlideComposition as cQ, type SocialProfile as cR, type SourceTextFit as cS, THEME_DESIGN_KEYS as cT, TIMELINE_OUTLINE_MIN_CONTRAST as cU, TIMELINE_STATUSES as cV, TIMELINE_TEXT_MIN_CONTRAST as cW, type TableBorder as cX, type TableCellLayout as cY, type TableCellStyle as cZ, type TableGrid as c_, REGION_FLOWS as ca, REGION_KINDS as cb, REGION_ROLES as cc, RESERVED_REGION_NAMES as cd, type ReadingBox as ce, type Reference as cf, type ReferencesSlideOptions as cg, type RegionAnchor as ch, type RegionBinding as ci, type RegionBindingDiagnostic as cj, type RegionBindingResult as ck, type RegionFlow as cl, type RegionKind as cm, type RegionRole as cn, type ResolveColorRefOptions as co, type ResolveColorRefRoles as cp, type ResolveColorRolesOptions as cq, type ResolveDesignHintsOptions as cr, type ResolveScriptFontsOptions as cs, type ResolvedChartDataLabels as ct, type ResolvedChartHighlight as cu, type ResolvedChartOptions as cv, type ResolvedColorRoles as cw, type ResolvedDesignHints as cx, type ResolvedNumbering as cy, type ResolvedScriptFonts as cz, ENGINE_DEFAULT_THEME as d, intrinsicImageSize as d$, type TableGridIssue as d0, type TableLayout as d1, type TableLayoutOptions as d2, type TableRowLayout as d3, type TextDirection as d4, type TextFit as d5, type TextLineInk as d6, type TextLineSegment as d7, type TextLineSource as d8, type TextPlacement as d9, chartTextSize as dA, chartValueAxis as dB, citationMarkerText as dC, codeHighlightBands as dD, codeHighlightColors as dE, codeHighlightLines as dF, codeLineNumbers as dG, codeLineRuns as dH, codeSyntaxPalette as dI, codeSyntaxPaletteForScheme as dJ, collectCitations as dK, colorContrast as dL, composeLayoutAreas as dM, composeSlide as dN, defaultSlideBackground as dO, fitImage as dP, fitList as dQ, fitRichText as dR, fitText as dS, formatChartLabelNumber as dT, formatChartLabelPercent as dU, formatFurnitureDate as dV, formatListNumber as dW, gridFlowShape as dX, imageBackground as dY, imageShape as dZ, intrinsicImageAspect as d_, type TextPlacementLine as da, type TimelineContent as db, type TimelineEvent as dc, type TimelineLayout as dd, type TimelineLayoutDiagnostic as de, type TimelineLayoutOptions as df, type TimelineMarkerShape as dg, type TimelineStatus as dh, type TimelineStatusColors as di, type TimelineTextPart as dj, type WatermarkTextLayout as dk, type WatermarkTextOptions as dl, allocateRows as dm, annotationText as dn, bindRegions as dp, blockKind as dq, captionSettings as dr, chartColorForFill as ds, chartHighlightColors as dt, chartHighlightMarks as du, chartLabelText as dv, chartOptionSupport as dw, chartOptionTarget as dx, chartPaletteForFill as dy, chartSeriesPalette as dz, type FontFamilies as e, textColorForFill as e$, isDarkColor as e0, isLayoutTemplate as e1, layoutCaption as e2, layoutCode as e3, layoutContent as e4, layoutFootnotes as e5, layoutFurniture as e6, layoutMetric as e7, layoutQuote as e8, layoutRegion as e9, regionAccepts as eA, regionRoleRank as eB, resolveCanvasDimensions as eC, resolveChartColors as eD, resolveChartOptions as eE, resolveCodeLanguage as eF, resolveColorRef as eG, resolveColorRoles as eH, resolveDesignHints as eI, resolveFontFamilies as eJ, resolveLogo as eK, resolveNumbering as eL, resolvePatternPreset as eM, resolveScriptFonts as eN, resolveSlideDirection as eO, resolveSocialProfile as eP, resolveTextStyle as eQ, rootNodes as eR, scriptFontRole as eS, sliceNumberedItems as eT, slideCitations as eU, snapFontSizeDown as eV, snapFontSizeUp as eW, stackCategoryValues as eX, surfaceAltColor as eY, tableGrid as eZ, tableRowBoundaries as e_, layoutStructure as ea, layoutTable as eb, layoutTemplate as ec, layoutTemplateIssues as ed, layoutTimeline as ee, layoutWatermark as ef, listColumnBreaks as eg, listNumbers as eh, maxIntervalsFor as ei, measureText as ej, measureTextOutline as ek, metricTrendColor as el, metricTrendMark as em, metricTrendPoints as en, niceScale as eo, normalizeHexColor as ep, numberingAtLevel as eq, numberingStyleDraws as er, paragraphDirection as es, paragraphDirectionAt as et, patternBitmap as eu, patternRuns as ev, physicalAlignment as ew, placeTextLines as ex, placedImageBlocks as ey, referencesSlide as ez, LANGUAGES as f, textWidthMeasurer as f0, timelineMarkerShapes as f1, timelineTextColor as f2, tokenizeCode as f3, visualReadingOrder as f4, walkCitationRuns as f5, wrapText as f6, LOGO_SHAPES as g, type LanguageFamilyName as h, type LanguageVocabulary as i, type LogoShape as j, type LogoVariant as k, type ResolvedLogo as l, type SocialPlatformVocabulary as m, type TextStyle as n, normalizeLanguageFamily as o, type AnnotatedRun as p, type AnnotationFitter as q, type AnnotationLayoutOptions as r, type BindRegionsOptions as s, type BoundBlock as t, CAPTIONABLE_FIELDS as u, CAPTION_FONT_RATIO as v, CAPTION_MAX_RATIO as w, CHART_HIGHLIGHT_MUTED_MIN_CONTRAST as x, CHART_HIGHLIGHT_MUTED_MIX as y, CHART_SERIES_MIN_DIFFERENCE as z };
3068
+ export { type ChartAxisGeometry as $, AUTO_LAYOUT as A, type BackgroundImageFit as B, type ComposeSlideOptions as C, CHART_SERIES_MIN_DIFFERENCE as D, ENGINE_DEFAULT_CHART_TYPES as E, type Fonts as F, CHART_SERIES_MIN_LIGHTNESS_STEP as G, CHART_SERIES_TIER_SIZE as H, CHART_SERIES_TINT_MIX as I, CHART_TEXT_PX as J, CITATION_MARKER_RAISE as K, type LayoutDiagnostic as L, type MeasureTextWidth as M, CITATION_MARKER_SCALE as N, CODE_HIGHLIGHT_LANGUAGES as O, CODE_HIGHLIGHT_MAX_LENGTH as P, CODE_PANEL_BACKGROUND as Q, type ResolvedColorRoles as R, SOCIAL_PLATFORMS as S, type TextMeasurement as T, CODE_PANEL_FOREGROUND as U, CODE_SYNTAX_MIN_CONTRAST as V, type Caption as W, type CaptionAlignment as X, type CaptionObject as Y, type CaptionPosition as Z, type CaptionSettings as _, CHART_TYPES as a, type DeckCitations as a$, type ChartColorContext as a0, type ChartHighlightMarks as a1, type ChartLabelContent as a2, type ChartLabelPosition as a3, type ChartLegendPosition as a4, type ChartOptionDiagnostic as a5, type ChartOptionKind as a6, type ChartOptionSupport as a7, type ChartOptionTarget as a8, type ChartScale as a9, type ColorVariantInput as aA, type ComposedBackgroundImage as aB, type ComposedCaption as aC, type ComposedChart as aD, type ComposedFlow as aE, type ComposedFootnoteEntry as aF, type ComposedFootnotes as aG, type ComposedGroup as aH, type ComposedHeadingArea as aI, type ComposedImage as aJ, type ComposedItem as aK, type ComposedLayoutArea as aL, type ComposedListColumn as aM, type ComposedLogo as aN, type ComposedOverlay as aO, type ComposedPlacement as aP, type ComposedRegion as aQ, type Composition as aR, type CompositionCandidate as aS, type CompositionDecision as aT, type CompositionExplanation as aU, type CompositionPenalties as aV, type CompositionTrack as aW, DARK_BACKGROUND_LUMINANCE as aX, DEFAULT_CHART_LABEL_SEPARATOR as aY, DEFAULT_FURNITURE_DATE_FORMAT as aZ, DESIGN_HINT_KEYS as a_, type ChartValueAxis as aa, type CitationMarker as ab, type CitationNote as ac, type CodeContent as ad, type CodeHighlightBand as ae, type CodeHighlightColors as af, type CodeHighlightEntry as ag, type CodeHighlightIssue as ah, type CodeHighlightLines as ai, type CodeLayout as aj, type CodeLayoutDiagnostic as ak, type CodeLayoutOptions as al, type CodeLineSegment as am, type CodeLineSource as an, type CodeRun as ao, type CodeSyntaxPalette as ap, type CodeSyntaxPaletteOptions as aq, type CodeSyntaxPaletteTheme as ar, type CodeTextFit as as, type CodeTextPart as at, type CodeToken as au, type CodeTokenKind as av, type ColorAccentSlot as aw, type ColorMap as ax, type ColorVariant as ay, type ColorVariantBackground as az, ENGINE_DEFAULT_COLOR_SCHEME as b, type NumberingInput as b$, type DesignHintKey as b0, type DesignHintSource as b1, type DesignHints as b2, FONT_SIZE_GRID_PER_PX as b3, FOOTNOTE_MAX_RATIO as b4, FURNITURE_GAP as b5, FURNITURE_IMAGE_SHARE as b6, FURNITURE_ZONE_GUTTER as b7, type FlowShape as b8, type FontFaceSelection as b9, type ListFit as bA, type ListFitOptions as bB, type ListNumber as bC, type ListText as bD, type ListValue as bE, MAX_COMPOSITION_DEPTH as bF, MAX_NUMBERING_LEVELS as bG, MAX_NUMBERING_VALUE as bH, MAX_REGION_BLOCKS as bI, MAX_ROMAN_VALUE as bJ, MAX_TEMPLATE_TRACKS as bK, METRIC_TREND_MIN_CONTRAST as bL, METRIC_TREND_SHAPES as bM, type MetricContent as bN, type MetricLayout as bO, type MetricLayoutDiagnostic as bP, type MetricLayoutOptions as bQ, type MetricSentiment as bR, type MetricTextPart as bS, type MetricTextSource as bT, type MetricTrend as bU, type MetricTrendColorOptions as bV, type MetricTrendMark as bW, NEUTRAL_SHARES as bX, NUMBERING_STYLES as bY, NUMBERING_SUFFIXES as bZ, type Numbering as b_, type FootnoteLayoutOptions as ba, type FurnitureField as bb, type FurnitureImagePart as bc, type FurnitureLayout as bd, type FurniturePart as be, type FurniturePartBase as bf, type FurnitureSocialLink as bg, type FurnitureTextExtras as bh, type FurnitureTextPart as bi, HEADING_AREAS as bj, type ImageEdge as bk, type ImageFit as bl, type ImageFitPlacement as bm, type ImageFocus as bn, type ImageShape as bo, LAYOUT_BODY_KINDS as bp, type LayoutArea as bq, type LayoutAreasOptions as br, type LayoutBodyKind as bs, type LayoutBox as bt, type LayoutContent as bu, type LayoutRegion as bv, type LayoutTemplate as bw, type LayoutTemplateIssue as bx, type ListBulletImage as by, type ListEntryLayout as bz, ENGINE_DEFAULT_FONT_SCHEME as c, THEME_DESIGN_KEYS as c$, type NumberingStyleName as c0, type NumberingSuffix as c1, OPFCompositionError as c2, OPFLayoutTemplateError as c3, PATTERN_PRESETS as c4, PATTERN_PRESET_ALIASES as c5, PATTERN_TILE_SIZE as c6, PICTURE_BULLET_SCALE as c7, type PhysicalAlignment as c8, type QuoteContent as c9, type ResolvedChartDataLabels as cA, type ResolvedChartHighlight as cB, type ResolvedChartOptions as cC, type ResolvedDesignHints as cD, type ResolvedNumbering as cE, type ResolvedScriptFonts as cF, type RichText as cG, type RichTextFit as cH, type RichTextFragment as cI, type RichTextLine as cJ, type RichTextOptions as cK, type RichTextRun as cL, type RowDemand as cM, SURFACE_ALT_MIN_CONTRAST as cN, SURFACE_ALT_MIX as cO, type SchemeColor as cP, type SchemeNeutrals as cQ, type ScriptFontApp as cR, type ScriptFontSlots as cS, type ScriptFontSource as cT, type ScriptFontSupplement as cU, type ScriptMeasurementProfile as cV, type ScriptRole as cW, type SlideCitations as cX, type SlideComposition as cY, type SocialProfile as cZ, type SourceTextFit as c_, type QuoteLayout as ca, type QuoteLayoutDiagnostic as cb, type QuoteLayoutOptions as cc, type QuotePhoto as cd, type QuoteTextPart as ce, type QuoteTextSource as cf, REGION_ANCHORS as cg, REGION_FLOWS as ch, REGION_KINDS as ci, REGION_ROLES as cj, RESERVED_REGION_NAMES as ck, type ReadingBox as cl, type Reference as cm, type ReferencesSlideOptions as cn, type RegionAnchor as co, type RegionBinding as cp, type RegionBindingDiagnostic as cq, type RegionBindingResult as cr, type RegionFlow as cs, type RegionKind as ct, type RegionRole as cu, type ResolveColorRefOptions as cv, type ResolveColorRefRoles as cw, type ResolveColorRolesOptions as cx, type ResolveDesignHintsOptions as cy, type ResolveScriptFontsOptions as cz, ENGINE_DEFAULT_THEME as d, fitImage as d$, TIMELINE_OUTLINE_MIN_CONTRAST as d0, TIMELINE_STATUSES as d1, TIMELINE_TEXT_MIN_CONTRAST as d2, type TableBorder as d3, type TableCellLayout as d4, type TableCellStyle as d5, type TableGrid as d6, type TableGridCell as d7, type TableGridIssue as d8, type TableLayout as d9, captionSettings as dA, chartColorForFill as dB, chartHighlightColors as dC, chartHighlightMarks as dD, chartLabelText as dE, chartOptionSupport as dF, chartOptionTarget as dG, chartPaletteForFill as dH, chartSeriesPalette as dI, chartTextSize as dJ, chartValueAxis as dK, citationMarkerText as dL, clrMapAttributes as dM, codeHighlightBands as dN, codeHighlightColors as dO, codeHighlightLines as dP, codeLineNumbers as dQ, codeLineRuns as dR, codeSyntaxPalette as dS, codeSyntaxPaletteForRoles as dT, codeSyntaxPaletteForScheme as dU, collectCitations as dV, colorContrast as dW, colorMapFor as dX, composeLayoutAreas as dY, composeSlide as dZ, defaultSlideBackground as d_, type TableLayoutOptions as da, type TableRowLayout as db, type TextDirection as dc, type TextFit as dd, type TextLineInk as de, type TextLineSegment as df, type TextLineSource as dg, type TextPlacement as dh, type TextPlacementLine as di, type TimelineContent as dj, type TimelineEvent as dk, type TimelineLayout as dl, type TimelineLayoutDiagnostic as dm, type TimelineLayoutOptions as dn, type TimelineMarkerShape as dp, type TimelineStatus as dq, type TimelineStatusColors as dr, type TimelineTextPart as ds, type WatermarkTextLayout as dt, type WatermarkTextOptions as du, allocateRows as dv, annotationText as dw, applyLuminance as dx, bindRegions as dy, blockKind as dz, type FontFamilies as e, resolvePatternPreset as e$, fitList as e0, fitRichText as e1, fitText as e2, formatChartLabelNumber as e3, formatChartLabelPercent as e4, formatFurnitureDate as e5, formatListNumber as e6, gridFlowShape as e7, imageBackground as e8, imageShape as e9, metricTrendPoints as eA, niceScale as eB, normalizeColorVariant as eC, normalizeHexColor as eD, numberingAtLevel as eE, numberingStyleDraws as eF, paragraphDirection as eG, paragraphDirectionAt as eH, patternBitmap as eI, patternRuns as eJ, physicalAlignment as eK, placeTextLines as eL, placedImageBlocks as eM, readableSchemeColor as eN, referencesSlide as eO, regionAccepts as eP, regionRoleRank as eQ, resolveCanvasDimensions as eR, resolveChartColors as eS, resolveChartOptions as eT, resolveCodeLanguage as eU, resolveColorRef as eV, resolveColorRoles as eW, resolveDesignHints as eX, resolveFontFamilies as eY, resolveLogo as eZ, resolveNumbering as e_, intrinsicImageAspect as ea, intrinsicImageSize as eb, isColorVariant as ec, isDarkColor as ed, isLayoutTemplate as ee, layoutCaption as ef, layoutCode as eg, layoutContent as eh, layoutFootnotes as ei, layoutFurniture as ej, layoutMetric as ek, layoutQuote as el, layoutRegion as em, layoutStructure as en, layoutTable as eo, layoutTemplate as ep, layoutTemplateIssues as eq, layoutTimeline as er, layoutWatermark as es, listColumnBreaks as et, listNumbers as eu, maxIntervalsFor as ev, measureText as ew, measureTextOutline as ex, metricTrendColor as ey, metricTrendMark as ez, LANGUAGES as f, resolveScriptFonts as f0, resolveSlideDirection as f1, resolveSocialProfile as f2, resolveTextStyle as f3, rootNodes as f4, scriptFontRole as f5, sliceNumberedItems as f6, slideCitations as f7, snapFontSizeDown as f8, snapFontSizeUp as f9, stackCategoryValues as fa, surfaceAltColor as fb, tableGrid as fc, tableRowBoundaries as fd, textColorForFill as fe, textWidthMeasurer as ff, timelineMarkerShapes as fg, timelineTextColor as fh, tokenizeCode as fi, visualReadingOrder as fj, walkCitationRuns as fk, wrapText as fl, LOGO_SHAPES as g, type LanguageFamilyName as h, type LanguageVocabulary as i, type LogoShape as j, type LogoVariant as k, type ResolveLogoOptions as l, type ResolvedLogo as m, type SocialPlatformVocabulary as n, type TextStyle as o, normalizeLanguageFamily as p, type AnnotatedRun as q, type AnnotationFitter as r, type AnnotationLayoutOptions as s, type BindRegionsOptions as t, type BoundBlock as u, CAPTIONABLE_FIELDS as v, CAPTION_FONT_RATIO as w, CAPTION_MAX_RATIO as x, CHART_HIGHLIGHT_MUTED_MIN_CONTRAST as y, CHART_HIGHLIGHT_MUTED_MIX as z };