@openpresentation/opf 0.20.5 → 0.22.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 (61) hide show
  1. package/dist/browser.js +16 -16
  2. package/dist/{chunk-2M7U4WL3.js → chunk-23MOKE4B.js} +292 -104
  3. package/dist/{chunk-TCBEF5OY.js → chunk-2SENTA2R.js} +1 -1
  4. package/dist/{chunk-7PQZDC2H.js → chunk-3T7MNRBY.js} +1 -1
  5. package/dist/{chunk-VFMHM2IL.js → chunk-3UAVON3O.js} +28 -2
  6. package/dist/{chunk-IDMQWS6O.js → chunk-7XNAMCGT.js} +6 -6
  7. package/dist/{chunk-URUNMZFO.js → chunk-BULGAKBY.js} +2 -2
  8. package/dist/{chunk-WD4W7KKK.js → chunk-DY7H4RG6.js} +54 -11
  9. package/dist/{chunk-V66KJA3H.js → chunk-KUNXFN7B.js} +1 -1
  10. package/dist/{chunk-52GKVP3I.js → chunk-MAJHCGOW.js} +22 -12
  11. package/dist/{chunk-OIGCC6VA.js → chunk-MG34DCDB.js} +2 -2
  12. package/dist/{chunk-5SQ6CIWR.js → chunk-MLMTXXM4.js} +5 -5
  13. package/dist/{chunk-Z75YB54S.js → chunk-SBWIZSPB.js} +5 -5
  14. package/dist/{chunk-TZ5IZETE.js → chunk-SPCONMIY.js} +1 -1
  15. package/dist/{chunk-XAYMPBNE.js → chunk-VKNFZEMG.js} +403 -189
  16. package/dist/{chunk-S4FR7ATF.js → chunk-X3PQMMAY.js} +1 -1
  17. package/dist/{chunk-YOLDSF7U.js → chunk-YSJRBRHB.js} +1 -1
  18. package/dist/{chunk-DYGYMBBW.js → chunk-YUIEWE5B.js} +2 -2
  19. package/dist/{composition-QtS1rnhv.d.ts → composition-CkHn6JrM.d.ts} +139 -5
  20. package/dist/composition.d.ts +1 -1
  21. package/dist/composition.js +1 -1
  22. package/dist/conversion-3TTBY7OY.js +19 -0
  23. package/dist/{conversion-Cqwu0Ds9.d.ts → conversion-DS4OiVls.d.ts} +6 -5
  24. package/dist/convert.d.ts +3 -3
  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-BdG5H3Qj.d.ts → deck-report-vnWmXBjq.d.ts} +2 -2
  29. package/dist/deck.d.ts +6 -6
  30. package/dist/deck.js +10 -10
  31. package/dist/diff.d.ts +1 -1
  32. package/dist/diff.js +5 -5
  33. package/dist/docs.js +18 -12
  34. package/dist/examples.d.ts +1 -1
  35. package/dist/{finding-DqgwzUmr.d.ts → finding-l9dlQ2NF.d.ts} +4 -0
  36. package/dist/format.js +2 -2
  37. package/dist/index.d.ts +21 -15
  38. package/dist/index.js +20 -20
  39. package/dist/markdown.d.ts +4 -4
  40. package/dist/markdown.js +7 -7
  41. package/dist/node-engine.d.ts +30 -9
  42. package/dist/node-engine.js +20 -20
  43. package/dist/{pagination-CAX6mHG6.d.ts → pagination-C4jzAtFy.d.ts} +2 -2
  44. package/dist/pagination.d.ts +2 -2
  45. package/dist/pagination.js +4 -4
  46. package/dist/patch.d.ts +1 -1
  47. package/dist/patch.js +4 -4
  48. package/dist/{presentation-BG4QCcdB.d.ts → presentation-fN6tORPZ.d.ts} +58 -8
  49. package/dist/repo-readme.js +1 -1
  50. package/dist/schemas.js +1 -1
  51. package/dist/spec/schemas/finding.schema.json +6 -1
  52. package/dist/spec/schemas/opf.schema.json +14 -2
  53. package/dist/types.d.ts +2 -2
  54. package/dist/{validation-types-DRaNnieo.d.ts → validation-types-B21fZfb2.d.ts} +3 -3
  55. package/dist/{validator-BJtXHJKh.d.ts → validator-Cflv4F9e.d.ts} +4 -10
  56. package/dist/validator.d.ts +5 -5
  57. package/dist/validator.js +3 -3
  58. package/dist/yaml.d.ts +4 -4
  59. package/dist/yaml.js +7 -7
  60. package/package.json +1 -1
  61. package/dist/conversion-DRCJIMWS.js +0 -19
@@ -1,4 +1,4 @@
1
- import { P as Presentation } from './presentation-BG4QCcdB.js';
1
+ import { P as Presentation } from './presentation-fN6tORPZ.js';
2
2
 
3
3
  interface ExampleRecord {
4
4
  /** Filename slug, without the `.opf.json` suffix. */
@@ -207,6 +207,10 @@ interface ValidationIssue {
207
207
  params: {
208
208
  [k: string]: unknown;
209
209
  };
210
+ /**
211
+ * Present when the issue is the best match of a oneOf or anyOf: one line per other form the value was checked against and did not fit, such as `string: must be string`.
212
+ */
213
+ alternatives?: string[];
210
214
  }
211
215
 
212
216
  export type { FindingReport as F, JsonPatchOperation as J, ValidationIssue as V, Finding as a, FindingLocation as b, FindingSeverity as c, FindingCategory as d, FindingFix as e, FindingFocus as f, FindingSuggestion as g };
package/dist/format.js CHANGED
@@ -1,2 +1,2 @@
1
- export { OPFFormatError, format, isFormatted, sortPresentationKeys } from './chunk-S4FR7ATF.js';
2
- import './chunk-VFMHM2IL.js';
1
+ export { OPFFormatError, format, isFormatted, sortPresentationKeys } from './chunk-X3PQMMAY.js';
2
+ import './chunk-3UAVON3O.js';
package/dist/index.d.ts CHANGED
@@ -1,20 +1,20 @@
1
1
  export { SchemaEntry, SchemaName, audience, chartType, colorScheme, fontScheme, language, layout, narrative, presentation, purpose, schemaEntries, schemaNames, schemas, socialPlatform, theme, tone } from './schemas.js';
2
- import { a2 as ConvertInput, a3 as ConvertOptions, a4 as ConvertResult, a5 as ConvertFormat, a6 as OpenOptions, a7 as SaveOptions, a8 as SaveResult } from './conversion-Cqwu0Ds9.js';
3
- export { a9 as ConvertedFile, h as ExportFormat, F as FontsHandle, O as OPFApiError, n as OPFExportError, o as OPFImportError, S as SlideSelection, T as parseSlideSelection } from './conversion-Cqwu0Ds9.js';
4
- import { v as validate$1 } from './validator-BJtXHJKh.js';
5
- export { C as CATALOG_SCHEMA, a as CatalogDisplayKind, b as CatalogRecordKind, D as DEFAULT_CHART_PALETTE, c as DEFAULT_VALIDATION_THRESHOLDS, O as OPFValidationError, d as assertValid, e as assertValidCatalogRecord, f as catalogDisplayKinds, g as catalogSchemaNames, h as findValidationRule, i as validateCatalogRecord, j as validationRules } from './validator-BJtXHJKh.js';
6
- import { R as ResolveVariablesOptions, h as VariableDiagnostic } from './validation-types-DRaNnieo.js';
7
- export { B as BuiltinVariableInfo, C as Contract, D as DEFAULT_VARIABLE_DATE_FORMAT, O as OPFVariableError, i as ResolveVariablesResult, j as VARIABLE_KINDS, d as ValidateFonts, a as ValidateOptions, e as ValidationCategory, f as ValidationChecks, V as ValidationReport, g as ValidationRuleCost, c as ValidationRuleInfo, b as ValidationThresholds, k as VariableDeclaration, l as VariableDiagnosticCode, m as VariableDiagnosticSeverity, n as VariableInfo, o as VariableKind, p as VariableUse, q as VariableUseForm, r as VariableValues, s as coerceVariableValue, t as formatVariableNumber, u as hasContentVariables, w as isTemplate, x as listBuiltinVariables, y as listVariables, z as resolveVariables, v as validationCategories, A as variableDeclarations } from './validation-types-DRaNnieo.js';
8
- export { a as CHART_TYPES, C as ComposeSlideOptions, E as ENGINE_DEFAULT_CHART_TYPES, b as ENGINE_DEFAULT_COLOR_SCHEME, c as ENGINE_DEFAULT_FONT_SCHEME, d as ENGINE_DEFAULT_THEME, e as FontFamilies, F as Fonts, f as LANGUAGES, g as LOGO_SHAPES, h as LanguageFamilyName, i as LanguageVocabulary, L as LayoutDiagnostic, j as LogoShape, k as LogoVariant, M as MeasureTextWidth, R as ResolveLogoOptions, l as ResolvedLogo, S as SOCIAL_PLATFORMS, m as SocialPlatformVocabulary, T as TextMeasurement, n as TextStyle, o as normalizeLanguageFamily } from './composition-QtS1rnhv.js';
2
+ import { C as ConvertInput, a as ConvertOptions, b as ConvertResult, c as ConvertFormat, O as OpenOptions, S as SaveOptions, d as SaveResult } from './conversion-DS4OiVls.js';
3
+ export { e as ConvertedFile, E as ExportFormat, F as FontsHandle, f as OPFApiError, g as OPFExportError, h as OPFImportError, i as SlideSelection, p as parseSlideSelection } from './conversion-DS4OiVls.js';
4
+ import { v as validate$1 } from './validator-Cflv4F9e.js';
5
+ export { C as CATALOG_SCHEMA, a as CatalogDisplayKind, b as CatalogRecordKind, D as DEFAULT_VALIDATION_THRESHOLDS, O as OPFValidationError, c as assertValid, d as assertValidCatalogRecord, e as catalogDisplayKinds, f as catalogSchemaNames, g as findValidationRule, h as validateCatalogRecord, i as validationRules } from './validator-Cflv4F9e.js';
6
+ import { R as ResolveVariablesOptions, h as VariableDiagnostic } from './validation-types-B21fZfb2.js';
7
+ export { B as BuiltinVariableInfo, C as Contract, D as DEFAULT_VARIABLE_DATE_FORMAT, O as OPFVariableError, i as ResolveVariablesResult, j as VARIABLE_KINDS, d as ValidateFonts, a as ValidateOptions, e as ValidationCategory, f as ValidationChecks, V as ValidationReport, g as ValidationRuleCost, c as ValidationRuleInfo, b as ValidationThresholds, k as VariableDeclaration, l as VariableDiagnosticCode, m as VariableDiagnosticSeverity, n as VariableInfo, o as VariableKind, p as VariableUse, q as VariableUseForm, r as VariableValues, s as coerceVariableValue, t as formatVariableNumber, u as hasContentVariables, w as isTemplate, x as listBuiltinVariables, y as listVariables, z as resolveVariables, v as validationCategories, A as variableDeclarations } from './validation-types-B21fZfb2.js';
8
+ export { a as CHART_TYPES, C as ComposeSlideOptions, E as ENGINE_DEFAULT_CHART_TYPES, b as ENGINE_DEFAULT_COLOR_SCHEME, c as ENGINE_DEFAULT_FONT_SCHEME, d as ENGINE_DEFAULT_THEME, e as FontFamilies, F as Fonts, f as LANGUAGES, g as LOGO_SHAPES, h as LanguageFamilyName, i as LanguageVocabulary, L as LayoutDiagnostic, j as LogoShape, k as LogoVariant, M as MeasureTextWidth, R as ResolveLogoOptions, l as ResolvedLogo, S as SOCIAL_PLATFORMS, m as SocialPlatformVocabulary, T as TextMeasurement, n as TextStyle, o as normalizeLanguageFamily } from './composition-CkHn6JrM.js';
9
9
  export { SpecFileEntry, SpecFileKind, SpecFilePath, specFileEntries, specFileKinds, specFilePaths } from './spec-files.js';
10
- import { P as Presentation } from './presentation-BG4QCcdB.js';
10
+ import { P as Presentation } from './presentation-fN6tORPZ.js';
11
11
  export { Audience, ChartType, ColorScheme, FontScheme, Language, Layout, Narrative, Purpose, SocialPlatform, Theme, Tone } from './types.js';
12
12
  import { b as CatalogKind, U as UnresolvedReferenceDiagnostic, a as CatalogOptions, C as Catalog, R as RecordProvenance } from './catalog-refs-CSHevLn1.js';
13
13
  export { c as CATALOG_GROUP_PATTERN, d as CATALOG_REFERENCE_PATTERN, e as CatalogRecordMap, f as CatalogRecords, g as CatalogReferenceSite, O as OPFCatalogsOptionError, h as OPFUnresolvedReferenceError, i as ResolvedReference, j as catalogGroupSource, k as catalogKinds, l as catalogRecords, m as catalogReferenceSites, p as parseReference, r as resolveReference, u as unresolvedReference } from './catalog-refs-CSHevLn1.js';
14
- import { a as Finding, J as JsonPatchOperation } from './finding-DqgwzUmr.js';
15
- export { d as FindingCategory, e as FindingFix, f as FindingFocus, b as FindingLocation, F as FindingReport, c as FindingSeverity, g as FindingSuggestion, V as ValidationIssue } from './finding-DqgwzUmr.js';
16
- import { p as paginate$1 } from './pagination-CAX6mHG6.js';
17
- export { O as OPFPaginationError, P as PaginatedPage, c as PaginationMapping, d as PaginationOptions, e as PaginationResult, a as PresentationPaginationOptions, b as PresentationPaginationResult, S as SlideContext, f as SlideContextDiagnostic, g as SlideContextOptions, h as paginateSlide, r as resolveSlideContext } from './pagination-CAX6mHG6.js';
14
+ import { a as Finding, J as JsonPatchOperation } from './finding-l9dlQ2NF.js';
15
+ export { d as FindingCategory, e as FindingFix, f as FindingFocus, b as FindingLocation, F as FindingReport, c as FindingSeverity, g as FindingSuggestion, V as ValidationIssue } from './finding-l9dlQ2NF.js';
16
+ import { p as paginate$1 } from './pagination-C4jzAtFy.js';
17
+ export { O as OPFPaginationError, P as PaginatedPage, b as PaginationMapping, c as PaginationOptions, d as PaginationResult, a as PresentationPaginationOptions, e as PresentationPaginationResult, S as SlideContext, f as SlideContextDiagnostic, g as SlideContextOptions, h as paginateSlide, r as resolveSlideContext } from './pagination-C4jzAtFy.js';
18
18
  export { ApplyPatchOptions, OPFPatchError, OPFPatchValidationError, PatchResult, applyPatch } from './patch.js';
19
19
  export { DiffOptions, MergeConflict, MergeOptions, MergeResult, PresentationDiff, diff, merge } from './diff.js';
20
20
  export { FormatOptions, OPFFormatError, format } from './format.js';
@@ -23,7 +23,7 @@ export { StringifyOptions, parse, stringify } from './deck.js';
23
23
  export { DataCell, DataImportOptions, ImportedChart, ImportedChartData, ImportedChartType, ImportedTable, IngestOptions, OPFDataImportError, TabularData, ingest, parseTabularData } from './data.js';
24
24
  export { I as ChartComboSeries, C as ChartMapping, a as ChartNumberFix, b as ChartNumberFixOperation, c as ChartNumberFixOptions, D as DataCellValue, d as DataColumn, e as DataDiagnostic, f as DataDiagnosticCode, g as DataResolveOptions, h as DataSourceRef, i as DataStyledCell, j as DataTableCell, k as DataTableHeader, l as DataTableValue, m as DataTextRun, n as Dataset, o as DatasetRef, R as ResolvedChartData, p as ResolvedTableData, q as chartNumber, r as datasetDiagnostics, s as formatDataNumber, t as fromExcelNumberFormat, u as inlineChartData, v as inlineDatasets, w as inlineTableData, x as isDatasetRef, y as isXYChartType, z as numberFormatError, A as resolveChartData, B as resolveTableData, E as suggestChartNumberFix, F as tableCellDisplayValue, G as toExcelNumberFormat, H as unusedDatasets } from './chart-data-BnNqgnC-.js';
25
25
  export { FONT_POLICY, FontAvailability, FontAvailabilityCode, FontAvailabilityDiagnostic, FontLicenseClass, FontPolicyDecision, FontPolicyEntry, FontPolicyTable, FontReplacement, FontReplacementCompatibility, FontReplacementMeasurement, applyFontPolicyDecisions, fontAvailabilityDiagnostics, fontPolicyFor } from './font-policy.js';
26
- export { a as DECK_FORMATS, D as DeckFormat, P as ParseOptions, d as deckFormatOf } from './deck-report-BdG5H3Qj.js';
26
+ export { a as DECK_FORMATS, D as DeckFormat, P as ParseOptions, d as deckFormatOf } from './deck-report-vnWmXBjq.js';
27
27
  import './json-BFSdESOE.js';
28
28
 
29
29
  /**
@@ -470,7 +470,7 @@ interface PresentationStats {
470
470
  data: {
471
471
  inline: number;
472
472
  dataset: number;
473
- source: number;
473
+ withSource: number;
474
474
  };
475
475
  };
476
476
  tables: {
@@ -569,6 +569,12 @@ interface StatsOptions extends CatalogOptions {
569
569
  wordsPerMinute?: number;
570
570
  }
571
571
  declare function stats$1(presentation: unknown, options?: StatsOptions): PresentationStats;
572
+ /**
573
+ * The local file sources the deck draws as images (relative paths and file: URLs, an `asset:<id>` reference followed to the
574
+ * registry's source), each once, in the order the deck uses them. URLs, data URIs and videos are left out. Nothing is read:
575
+ * a host with a file system checks that they exist (`opf validate` does, against the folder `opf convert` reads).
576
+ */
577
+ declare function localAssetSources(presentation: unknown): string[];
572
578
 
573
579
  interface EditOptions {
574
580
  /** The catalogs the result's references resolve in. In Node the default catalog when omitted, as `opf edit` registers it; in the browser build none. */
@@ -687,4 +693,4 @@ declare function open(input: string | Uint8Array | ArrayBuffer, options?: OpenOp
687
693
  */
688
694
  declare function save(deck: Presentation, path: string, options?: SaveOptions): Promise<SaveResult>;
689
695
 
690
- export { Catalog, CatalogKind, CatalogOptions, type CatalogPatchOperation, type CatalogRecordChange, type CatalogRef, type CatalogUpdate, ConvertFormat, ConvertInput, ConvertOptions, ConvertResult, type CopiedRecordRename, type CopySlidesResult, type DatasetFact, type EditOptions, type EditResult, type EmbedResult, type EmbeddedRecord, type FillOptions, type FillRecord, type FillResult, type FilledDeck, Finding, type HeaderFooterFact, JsonPatchOperation, type MoveToCustomErrorCode, type MoveToCustomPatchOperation, type MoveToCustomResult, type MovedRecord, OPFMoveToCustomError, OpenOptions, Presentation, type PresentationStats, RecordProvenance, type ReferenceFact, ResolveVariablesOptions, type ResolvedDesignRecords, SLIDE_SCOPED_BUILTINS, SaveOptions, SaveResult, type SlideScopedBuiltin, type SlideSizeFact, type SlideStats, type StatsOptions, type StatsSlideRef, type TableFact, UnresolvedReferenceDiagnostic, VariableDiagnostic, convert, copySlides, edit, embed, fill, fillRecords, moveToCustom, open, paginate, resolveDesignRecords, resolveFontScheme, resolveSlideVariables, sameRecord, save, stats, updateFromCatalog, validate };
696
+ export { Catalog, CatalogKind, CatalogOptions, type CatalogPatchOperation, type CatalogRecordChange, type CatalogRef, type CatalogUpdate, ConvertFormat, ConvertInput, ConvertOptions, ConvertResult, type CopiedRecordRename, type CopySlidesResult, type DatasetFact, type EditOptions, type EditResult, type EmbedResult, type EmbeddedRecord, type FillOptions, type FillRecord, type FillResult, type FilledDeck, Finding, type HeaderFooterFact, JsonPatchOperation, type MoveToCustomErrorCode, type MoveToCustomPatchOperation, type MoveToCustomResult, type MovedRecord, OPFMoveToCustomError, OpenOptions, Presentation, type PresentationStats, RecordProvenance, type ReferenceFact, ResolveVariablesOptions, type ResolvedDesignRecords, SLIDE_SCOPED_BUILTINS, SaveOptions, SaveResult, type SlideScopedBuiltin, type SlideSizeFact, type SlideStats, type StatsOptions, type StatsSlideRef, type TableFact, UnresolvedReferenceDiagnostic, VariableDiagnostic, convert, copySlides, edit, embed, fill, fillRecords, localAssetSources, moveToCustom, open, paginate, resolveDesignRecords, resolveFontScheme, resolveSlideVariables, sameRecord, save, stats, updateFromCatalog, validate };
package/dist/index.js CHANGED
@@ -1,23 +1,23 @@
1
- import { defaultCatalogs } from './chunk-OIGCC6VA.js';
2
- import { stats, embed, edit, OPFApiError, asApiError } from './chunk-52GKVP3I.js';
3
- export { OPFApiError, OPFExportError, OPFImportError, OPFMoveToCustomError, copySlides, fill, fillRecords, moveToCustom, parseSlideSelection, sameRecord, updateFromCatalog } from './chunk-52GKVP3I.js';
1
+ import { defaultCatalogs } from './chunk-MG34DCDB.js';
2
+ import { stats, embed, edit, OPFApiError, asApiError } from './chunk-MAJHCGOW.js';
3
+ export { OPFApiError, OPFExportError, OPFImportError, OPFMoveToCustomError, copySlides, fill, fillRecords, localAssetSources, moveToCustom, parseSlideSelection, sameRecord, updateFromCatalog } from './chunk-MAJHCGOW.js';
4
4
  export { specFileEntries, specFileKinds, specFilePaths } from './chunk-UJSAR6GF.js';
5
- export { OPFDataImportError, ingest, parseTabularData } from './chunk-TZ5IZETE.js';
6
- export { DECK_FORMATS, deckFormatOf, parse, stringify } from './chunk-5SQ6CIWR.js';
7
- export { fromMarkdown, toMarkdown } from './chunk-Z75YB54S.js';
8
- import './chunk-IDMQWS6O.js';
9
- export { OPFMarkdownError } from './chunk-7PQZDC2H.js';
10
- export { diff, merge } from './chunk-URUNMZFO.js';
11
- export { OPFPatchError, OPFPatchValidationError, applyPatch } from './chunk-YOLDSF7U.js';
12
- export { OPFFormatError, format } from './chunk-S4FR7ATF.js';
13
- import { paginate } from './chunk-DYGYMBBW.js';
14
- export { OPFPaginationError, paginateSlide } from './chunk-DYGYMBBW.js';
15
- import './chunk-V66KJA3H.js';
16
- import './chunk-TCBEF5OY.js';
17
- import { validate, OPFValidationError } from './chunk-2M7U4WL3.js';
18
- export { CATALOG_SCHEMA, DEFAULT_CHART_PALETTE, DEFAULT_VALIDATION_THRESHOLDS, OPFValidationError, assertValid, assertValidCatalogRecord, catalogDisplayKinds, catalogSchemaNames, findValidationRule, resolveSlideContext, validateCatalogRecord, validationCategories, validationRules } from './chunk-2M7U4WL3.js';
19
- export { CATALOG_GROUP_PATTERN, CATALOG_REFERENCE_PATTERN, CHART_TYPES, DEFAULT_VARIABLE_DATE_FORMAT, ENGINE_DEFAULT_CHART_TYPES, ENGINE_DEFAULT_COLOR_SCHEME, ENGINE_DEFAULT_FONT_SCHEME, ENGINE_DEFAULT_THEME, LANGUAGES, LOGO_SHAPES, OPFCatalogsOptionError, OPFUnresolvedReferenceError, OPFVariableError, SLIDE_SCOPED_BUILTINS, SOCIAL_PLATFORMS, VARIABLE_KINDS, catalogGroupSource, catalogKinds, catalogRecords, catalogReferenceSites, chartNumber, coerceVariableValue, datasetDiagnostics, formatDataNumber, formatVariableNumber, fromExcelNumberFormat, hasContentVariables, inlineChartData, inlineDatasets, inlineTableData, isDatasetRef, isTemplate, isXYChartType, listBuiltinVariables, listVariables, normalizeLanguageFamily, numberFormatError, parseReference, resolveChartData, resolveDesignRecords, resolveFontScheme, resolveReference, resolveSlideVariables, resolveTableData, resolveVariables, suggestChartNumberFix, tableCellDisplayValue, toExcelNumberFormat, unresolvedReference, unusedDatasets, variableDeclarations } from './chunk-XAYMPBNE.js';
20
- export { audience, chartType, colorScheme, fontScheme, language, layout, narrative, presentation, purpose, schemaEntries, schemaNames, schemas, socialPlatform, theme, tone } from './chunk-VFMHM2IL.js';
5
+ export { OPFDataImportError, ingest, parseTabularData } from './chunk-SPCONMIY.js';
6
+ export { DECK_FORMATS, deckFormatOf, parse, stringify } from './chunk-MLMTXXM4.js';
7
+ export { fromMarkdown, toMarkdown } from './chunk-SBWIZSPB.js';
8
+ import './chunk-7XNAMCGT.js';
9
+ export { OPFMarkdownError } from './chunk-3T7MNRBY.js';
10
+ export { diff, merge } from './chunk-BULGAKBY.js';
11
+ export { OPFPatchError, OPFPatchValidationError, applyPatch } from './chunk-YSJRBRHB.js';
12
+ export { OPFFormatError, format } from './chunk-X3PQMMAY.js';
13
+ import { paginate } from './chunk-YUIEWE5B.js';
14
+ export { OPFPaginationError, paginateSlide } from './chunk-YUIEWE5B.js';
15
+ import './chunk-KUNXFN7B.js';
16
+ import './chunk-2SENTA2R.js';
17
+ import { validate, OPFValidationError } from './chunk-23MOKE4B.js';
18
+ export { CATALOG_SCHEMA, DEFAULT_VALIDATION_THRESHOLDS, OPFValidationError, assertValid, assertValidCatalogRecord, catalogDisplayKinds, catalogSchemaNames, findValidationRule, resolveSlideContext, validateCatalogRecord, validationCategories, validationRules } from './chunk-23MOKE4B.js';
19
+ export { CATALOG_GROUP_PATTERN, CATALOG_REFERENCE_PATTERN, CHART_TYPES, DEFAULT_VARIABLE_DATE_FORMAT, ENGINE_DEFAULT_CHART_TYPES, ENGINE_DEFAULT_COLOR_SCHEME, ENGINE_DEFAULT_FONT_SCHEME, ENGINE_DEFAULT_THEME, LANGUAGES, LOGO_SHAPES, OPFCatalogsOptionError, OPFUnresolvedReferenceError, OPFVariableError, SLIDE_SCOPED_BUILTINS, SOCIAL_PLATFORMS, VARIABLE_KINDS, catalogGroupSource, catalogKinds, catalogRecords, catalogReferenceSites, chartNumber, coerceVariableValue, datasetDiagnostics, formatDataNumber, formatVariableNumber, fromExcelNumberFormat, hasContentVariables, inlineChartData, inlineDatasets, inlineTableData, isDatasetRef, isTemplate, isXYChartType, listBuiltinVariables, listVariables, normalizeLanguageFamily, numberFormatError, parseReference, resolveChartData, resolveDesignRecords, resolveFontScheme, resolveReference, resolveSlideVariables, resolveTableData, resolveVariables, suggestChartNumberFix, tableCellDisplayValue, toExcelNumberFormat, unresolvedReference, unusedDatasets, variableDeclarations } from './chunk-VKNFZEMG.js';
20
+ export { audience, chartType, colorScheme, fontScheme, language, layout, narrative, presentation, purpose, schemaEntries, schemaNames, schemas, socialPlatform, theme, tone } from './chunk-3UAVON3O.js';
21
21
  export { FONT_POLICY, applyFontPolicyDecisions, fontAvailabilityDiagnostics, fontPolicyFor } from './chunk-F7PLNWHQ.js';
22
22
 
23
23
  // src/index.ts
@@ -31,7 +31,7 @@ var stats2 = (presentation2, options) => stats(presentation2, withDefaultCatalog
31
31
  var paginate2 = (input, options) => paginate(input, withDefaultCatalog(options));
32
32
  var embed2 = (document, options) => embed(document, withDefaultCatalog(options));
33
33
  var edit2 = (deck, patch, options) => edit(deck, patch, withDefaultCatalog(options));
34
- var engine = () => import('./conversion-DRCJIMWS.js');
34
+ var engine = () => import('./conversion-3TTBY7OY.js');
35
35
  var rethrow = (error, fallback) => {
36
36
  if (error instanceof OPFValidationError) throw error;
37
37
  throw asApiError(OPFApiError, error, fallback);
@@ -1,8 +1,8 @@
1
1
  import { C as Catalog } from './catalog-refs-CSHevLn1.js';
2
- import { P as Presentation } from './presentation-BG4QCcdB.js';
3
- import { a as Finding, b as FindingLocation } from './finding-DqgwzUmr.js';
4
- import { a as ValidateOptions, V as ValidationReport } from './validation-types-DRaNnieo.js';
5
- import './composition-QtS1rnhv.js';
2
+ import { P as Presentation } from './presentation-fN6tORPZ.js';
3
+ import { a as Finding, b as FindingLocation } from './finding-l9dlQ2NF.js';
4
+ import { a as ValidateOptions, V as ValidationReport } from './validation-types-B21fZfb2.js';
5
+ import './composition-CkHn6JrM.js';
6
6
  import './chart-data-BnNqgnC-.js';
7
7
  import './json-BFSdESOE.js';
8
8
 
package/dist/markdown.js CHANGED
@@ -1,7 +1,7 @@
1
- export { fromMarkdown, toMarkdown } from './chunk-Z75YB54S.js';
2
- export { OPFMarkdownError } from './chunk-7PQZDC2H.js';
3
- import './chunk-V66KJA3H.js';
4
- import './chunk-TCBEF5OY.js';
5
- import './chunk-2M7U4WL3.js';
6
- import './chunk-XAYMPBNE.js';
7
- import './chunk-VFMHM2IL.js';
1
+ export { fromMarkdown, toMarkdown } from './chunk-SBWIZSPB.js';
2
+ export { OPFMarkdownError } from './chunk-3T7MNRBY.js';
3
+ import './chunk-KUNXFN7B.js';
4
+ import './chunk-2SENTA2R.js';
5
+ import './chunk-23MOKE4B.js';
6
+ import './chunk-VKNFZEMG.js';
7
+ import './chunk-3UAVON3O.js';
@@ -1,13 +1,13 @@
1
- export { b as DeckReport, c as DeckReportOptions, r as readDeckReport } from './deck-report-BdG5H3Qj.js';
2
- import { F as FontsHandle, E as EmbeddedFace, R as Renderer, a as Reporter, P as Peer, b as PptxModule, O as OPFApiError } from './conversion-Cqwu0Ds9.js';
3
- export { C as ConversionPlan, D as Diagnostic, c as EXPORT_FORMATS, d as EXPORT_TEXT, e as ExportContext, f as ExportFile, g as ExportFontSummary, h as ExportFormat, i as ExportOptions, j as ExportResult, k as ExportRun, l as ExportText, I as ImportOptions, m as ImportResult, n as OPFExportError, o as OPFImportError, p as PEER_RANGES, q as PPTX_PACKAGE, r as PreparedExport, s as RENDER_EXTRAS, t as RENDER_PACKAGE, u as ReportFinding, v as ResolvedExportOptions, S as SlideSelection, w as Source, V as VERSIONS, x as asApiError, y as checkDate, z as checkOptions, A as checkRenamedOptions, B as checkScale, G as deckFileFormat, H as exportFormatOf, J as finishReport, K as importPresentation, L as loadPptx, M as loadRenderer, N as locatePackage, Q as missingPeerFrom, T as parseSlideSelection, U as planConversion, W as prepareExport, X as reaches, Y as readInput, Z as reportThrown, _ as resolveExportOptions, $ as runExport, a0 as runPreparedExport, a1 as writePlanned } from './conversion-Cqwu0Ds9.js';
1
+ export { b as DeckReport, c as DeckReportOptions, r as readDeckReport } from './deck-report-vnWmXBjq.js';
2
+ import { F as FontsHandle, j as EmbeddedFace, R as Renderer, k as Reporter, P as Peer, l as PptxModule, f as OPFApiError } from './conversion-DS4OiVls.js';
3
+ export { m as ConversionPlan, D as Diagnostic, n as EXPORT_FORMATS, o as EXPORT_TEXT, q as ExportContext, r as ExportFile, s as ExportFontSummary, E as ExportFormat, t as ExportOptions, u as ExportResult, v as ExportRun, w as ExportText, I as ImportOptions, x as ImportResult, g as OPFExportError, h as OPFImportError, y as PEER_RANGES, z as PPTX_PACKAGE, A as PreparedExport, B as RENDER_EXTRAS, G as RENDER_PACKAGE, H as ReportFinding, J as ResolvedExportOptions, i as SlideSelection, K as Source, V as VERSIONS, L as asApiError, M as assetRoot, N as checkDate, Q as checkOptions, T as checkRenamedOptions, U as checkScale, W as deckFileFormat, X as exportFormatOf, Y as finishReport, Z as importPresentation, _ as loadPptx, $ as loadRenderer, a0 as locatePackage, a1 as missingPeerFrom, p as parseSlideSelection, a2 as planConversion, a3 as prepareExport, a4 as reaches, a5 as readInput, a6 as reportThrown, a7 as resolveExportOptions, a8 as runExport, a9 as runPreparedExport, aa as writePlanned } from './conversion-DS4OiVls.js';
4
4
  import { C as Catalog } from './catalog-refs-CSHevLn1.js';
5
- import { b as PresentationPaginationResult } from './pagination-CAX6mHG6.js';
6
- import './presentation-BG4QCcdB.js';
7
- import './validation-types-DRaNnieo.js';
8
- import './composition-QtS1rnhv.js';
5
+ import { e as PresentationPaginationResult } from './pagination-C4jzAtFy.js';
6
+ import './presentation-fN6tORPZ.js';
7
+ import './validation-types-B21fZfb2.js';
8
+ import './composition-CkHn6JrM.js';
9
9
  import './chart-data-BnNqgnC-.js';
10
- import './finding-DqgwzUmr.js';
10
+ import './finding-l9dlQ2NF.js';
11
11
  import './json-BFSdESOE.js';
12
12
 
13
13
  /** `deck.opf.json` and `deck.pptx` both give `deck`; stdin gives `deck`. */
@@ -40,6 +40,13 @@ interface PlannedFile {
40
40
  * message for the library API.
41
41
  */
42
42
  declare function checkDestinations(files: string[], overwrite: boolean, flags?: boolean): Promise<void>;
43
+ /**
44
+ * Publish a complete staged file at `output`, never replacing a file that is already there (the error is EEXIST, as `link`'s).
45
+ * A hard link is atomic: the final name appears with every byte in place. Where the file system refuses links (RR-93), the
46
+ * output is created exclusively (`wx`) and the staged bytes are copied in; a failed copy removes the partial output it created.
47
+ * `link` is a parameter so a test can inject the refusal.
48
+ */
49
+ declare function publishNew(temporary: string, output: string, publish?: (from: string, to: string) => Promise<void>): Promise<void>;
43
50
  /** Stage every file first, then publish each atomically. A later publication failure can leave earlier complete files. */
44
51
  declare function writeFiles(files: PlannedFile[], overwrite: boolean, flags?: boolean): Promise<void>;
45
52
  declare function pointerOf(location: string): string;
@@ -99,6 +106,20 @@ declare function runImport(bytes: Uint8Array, options: {
99
106
  signals?: boolean;
100
107
  }, reporter: Reporter, loaded?: Peer<PptxModule>): Promise<ImportRun>;
101
108
 
109
+ /** A local image reference that `convert` could not read. */
110
+ interface AssetProblem {
111
+ /** The JSON Pointer of the first place the deck spells the source (the registry entry for an `asset:` reference). */
112
+ path: string;
113
+ source: string;
114
+ problem: "blocked" | "missing";
115
+ reason: string;
116
+ }
117
+ /**
118
+ * The deck's local image sources that do not resolve under `root`, by the rules `convert` reads them with (relative to the folder,
119
+ * nothing outside it, only image files). `root` must be an existing folder. Reads files, so it lives here and not in core `validate`.
120
+ */
121
+ declare function localAssetProblems(deck: unknown, root: string): AssetProblem[];
122
+
102
123
  declare function createZip(entries: {
103
124
  name: string;
104
125
  bytes: Uint8Array;
@@ -129,4 +150,4 @@ declare function galleryMismatch(declared: unknown, reads?: number): string | un
129
150
  /** The catalogs a call registers when it names none: `[gallery]`. Throws `gallery-schema-mismatch` for a gallery of another schema. */
130
151
  declare function defaultCatalogs(): readonly Catalog[];
131
152
 
132
- export { FontsHandle, type ImportRun, OPFApiError, type PaginateDeckOptions, type PaginatedDeck, Peer, type PlannedFile, PptxModule, Renderer, Reporter, checkDestinations, checkOutputPattern, createZip, deckStem, defaultCatalogs, embeddedFor, galleryMismatch, leaseSharedFonts, listFontDirectories, padNumber, paginateDeck, pointerOf, prepareFonts, runImport, stemOf, writeFiles };
153
+ export { type AssetProblem, FontsHandle, type ImportRun, OPFApiError, type PaginateDeckOptions, type PaginatedDeck, Peer, type PlannedFile, PptxModule, Renderer, Reporter, checkDestinations, checkOutputPattern, createZip, deckStem, defaultCatalogs, embeddedFor, galleryMismatch, leaseSharedFonts, listFontDirectories, localAssetProblems, padNumber, paginateDeck, pointerOf, prepareFonts, publishNew, runImport, stemOf, writeFiles };
@@ -1,24 +1,24 @@
1
- import { loadRenderer, listFontDirectories, leaseSharedFonts, prepareFonts } from './chunk-WD4W7KKK.js';
2
- export { EXPORT_FORMATS, EXPORT_TEXT, PEER_RANGES, PPTX_PACKAGE, RENDER_EXTRAS, RENDER_PACKAGE, Reporter, VERSIONS, checkDate, checkDestinations, checkOptions, checkOutputPattern, checkRenamedOptions, checkScale, createZip, deckFileFormat, deckStem, embeddedFor, exportFormatOf, finishReport, importPresentation, leaseSharedFonts, listFontDirectories, loadPptx, loadRenderer, locatePackage, missingPeerFrom, padNumber, planConversion, pointerOf, prepareExport, prepareFonts, reaches, readInput, reportThrown, resolveExportOptions, runExport, runImport, runPreparedExport, stemOf, writeFiles, writePlanned } from './chunk-WD4W7KKK.js';
3
- import { defaultCatalogs } from './chunk-OIGCC6VA.js';
4
- export { defaultCatalogs, galleryMismatch } from './chunk-OIGCC6VA.js';
5
- import { OPFApiError } from './chunk-52GKVP3I.js';
6
- export { OPFApiError, OPFExportError, OPFImportError, asApiError, parseSlideSelection } from './chunk-52GKVP3I.js';
1
+ import { loadRenderer, listFontDirectories, leaseSharedFonts, prepareFonts } from './chunk-DY7H4RG6.js';
2
+ export { EXPORT_FORMATS, EXPORT_TEXT, PEER_RANGES, PPTX_PACKAGE, RENDER_EXTRAS, RENDER_PACKAGE, Reporter, VERSIONS, assetRoot, checkDate, checkDestinations, checkOptions, checkOutputPattern, checkRenamedOptions, checkScale, createZip, deckFileFormat, deckStem, embeddedFor, exportFormatOf, finishReport, importPresentation, leaseSharedFonts, listFontDirectories, loadPptx, loadRenderer, localAssetProblems, locatePackage, missingPeerFrom, padNumber, planConversion, pointerOf, prepareExport, prepareFonts, publishNew, reaches, readInput, reportThrown, resolveExportOptions, runExport, runImport, runPreparedExport, stemOf, writeFiles, writePlanned } from './chunk-DY7H4RG6.js';
3
+ import { defaultCatalogs } from './chunk-MG34DCDB.js';
4
+ export { defaultCatalogs, galleryMismatch } from './chunk-MG34DCDB.js';
5
+ import { OPFApiError } from './chunk-MAJHCGOW.js';
6
+ export { OPFApiError, OPFExportError, OPFImportError, asApiError, parseSlideSelection } from './chunk-MAJHCGOW.js';
7
7
  import './chunk-UJSAR6GF.js';
8
- import './chunk-TZ5IZETE.js';
9
- export { readDeckReport } from './chunk-5SQ6CIWR.js';
10
- import './chunk-Z75YB54S.js';
11
- import './chunk-IDMQWS6O.js';
12
- import './chunk-7PQZDC2H.js';
13
- import './chunk-URUNMZFO.js';
14
- import './chunk-YOLDSF7U.js';
15
- import './chunk-S4FR7ATF.js';
16
- import { paginate } from './chunk-DYGYMBBW.js';
17
- import './chunk-V66KJA3H.js';
18
- import './chunk-TCBEF5OY.js';
19
- import './chunk-2M7U4WL3.js';
20
- import './chunk-XAYMPBNE.js';
21
- import './chunk-VFMHM2IL.js';
8
+ import './chunk-SPCONMIY.js';
9
+ export { readDeckReport } from './chunk-MLMTXXM4.js';
10
+ import './chunk-SBWIZSPB.js';
11
+ import './chunk-7XNAMCGT.js';
12
+ import './chunk-3T7MNRBY.js';
13
+ import './chunk-BULGAKBY.js';
14
+ import './chunk-YSJRBRHB.js';
15
+ import './chunk-X3PQMMAY.js';
16
+ import { paginate } from './chunk-YUIEWE5B.js';
17
+ import './chunk-KUNXFN7B.js';
18
+ import './chunk-2SENTA2R.js';
19
+ import './chunk-23MOKE4B.js';
20
+ import './chunk-VKNFZEMG.js';
21
+ import './chunk-3UAVON3O.js';
22
22
  import './chunk-F7PLNWHQ.js';
23
23
 
24
24
  // src/node/paginate.ts
@@ -1,4 +1,4 @@
1
- import { C as ComposeSlideOptions, F as Fonts, L as LayoutDiagnostic } from './composition-QtS1rnhv.js';
1
+ import { C as ComposeSlideOptions, F as Fonts, L as LayoutDiagnostic } from './composition-CkHn6JrM.js';
2
2
  import { U as UnresolvedReferenceDiagnostic, R as RecordProvenance, a as CatalogOptions, C as Catalog } from './catalog-refs-CSHevLn1.js';
3
3
 
4
4
  /**
@@ -133,4 +133,4 @@ interface PresentationPaginationResult {
133
133
  /** Resolve the slides' references (the document's catalogs groups, then the registered catalogs) and paginate a complete presentation without mutating it. */
134
134
  declare function paginate(input: unknown, options?: PresentationPaginationOptions): PresentationPaginationResult;
135
135
 
136
- export { OPFPaginationError as O, type PaginatedPage as P, type SlideContext as S, type PresentationPaginationOptions as a, type PresentationPaginationResult as b, type PaginationMapping as c, type PaginationOptions as d, type PaginationResult as e, type SlideContextDiagnostic as f, type SlideContextOptions as g, paginateSlide as h, paginate as p, resolveSlideContext as r };
136
+ export { OPFPaginationError as O, type PaginatedPage as P, type SlideContext as S, type PresentationPaginationOptions as a, type PaginationMapping as b, type PaginationOptions as c, type PaginationResult as d, type PresentationPaginationResult as e, type SlideContextDiagnostic as f, type SlideContextOptions as g, paginateSlide as h, paginate as p, resolveSlideContext as r };
@@ -1,4 +1,4 @@
1
- import './composition-QtS1rnhv.js';
1
+ import './composition-CkHn6JrM.js';
2
2
  import './catalog-refs-CSHevLn1.js';
3
- export { O as OPFPaginationError, P as PaginatedPage, c as PaginationMapping, d as PaginationOptions, e as PaginationResult, a as PresentationPaginationOptions, b as PresentationPaginationResult, p as paginate, h as paginateSlide } from './pagination-CAX6mHG6.js';
3
+ export { O as OPFPaginationError, P as PaginatedPage, b as PaginationMapping, c as PaginationOptions, d as PaginationResult, a as PresentationPaginationOptions, e as PresentationPaginationResult, p as paginate, h as paginateSlide } from './pagination-C4jzAtFy.js';
4
4
  import './chart-data-BnNqgnC-.js';
@@ -1,4 +1,4 @@
1
- export { OPFPaginationError, paginate, paginateSlide } from './chunk-DYGYMBBW.js';
2
- import './chunk-2M7U4WL3.js';
3
- import './chunk-XAYMPBNE.js';
4
- import './chunk-VFMHM2IL.js';
1
+ export { OPFPaginationError, paginate, paginateSlide } from './chunk-YUIEWE5B.js';
2
+ import './chunk-23MOKE4B.js';
3
+ import './chunk-VKNFZEMG.js';
4
+ import './chunk-3UAVON3O.js';
package/dist/patch.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { F as FindingReport, a as Finding, J as JsonPatchOperation } from './finding-DqgwzUmr.js';
1
+ import { F as FindingReport, a as Finding, J as JsonPatchOperation } from './finding-l9dlQ2NF.js';
2
2
 
3
3
  type JsonPointer = string;
4
4
  type PatchErrorCode = "invalid-patch" | "invalid-patch-operation" | "unsupported-patch-operation" | "invalid-json-pointer" | "patch-path-missing" | "patch-parent-missing" | "invalid-array-index" | "patch-test-failed" | "patch-invalid-move" | "patch-root-remove" | "patch-invalid-document";
package/dist/patch.js CHANGED
@@ -1,4 +1,4 @@
1
- export { OPFPatchError, OPFPatchValidationError, applyPatch, applyPatchWithInverse, escapePointerToken, formatPointer, getAtPointer, hasPointer, invertPatch, jsonEqual, normalizePatch, parsePointer, pointerFromPath, readPointer, splitPointer, unescapePointerToken } from './chunk-YOLDSF7U.js';
2
- import './chunk-2M7U4WL3.js';
3
- import './chunk-XAYMPBNE.js';
4
- import './chunk-VFMHM2IL.js';
1
+ export { OPFPatchError, OPFPatchValidationError, applyPatch, applyPatchWithInverse, escapePointerToken, formatPointer, getAtPointer, hasPointer, invertPatch, jsonEqual, normalizePatch, parsePointer, pointerFromPath, readPointer, splitPointer, unescapePointerToken } from './chunk-YSJRBRHB.js';
2
+ import './chunk-23MOKE4B.js';
3
+ import './chunk-VKNFZEMG.js';
4
+ import './chunk-3UAVON3O.js';
@@ -397,6 +397,18 @@ type ChartDataCell = (string | number | boolean | null);
397
397
  * @minItems 1
398
398
  */
399
399
  type DatasetFields = [string, ...(string)[]];
400
+ /**
401
+ * A color value or reference, enforced on styled table cell fill and text colors, cell border colors, solid background colors, gradient stop colors and pattern foreground and background colors. Three forms:
402
+ * - Literal hex: '#RGB', '#RRGGBB', or '#RRGGBBAA'.
403
+ * - Color-scheme name, resolved through the effective color scheme after design resolution: an OOXML slot ('accent1'-'accent6', 'dark1', 'dark2', 'light1', 'light2', 'hyperlink', 'followedHyperlink') or an abstract role ('primary', 'secondary', 'accent', 'background', 'surface', 'surfaceAlt', 'text', 'textSecondary'). Roles resolve through the same role-to-slot mapping engines already apply to color schemes. 'surfaceAlt' has no slot: it is the alternate surface of banded table rows, derived from 'surface' and 'text' (the surface mixed a tenth of the way towards the text color, further when needed, so it always differs visibly from 'surface' and keeps 4.5:1 text contrast; core surfaceAltColor).
404
+ * - Variable reference: 'var:<id>' into the top-level variables map.
405
+ *
406
+ * Names keep content theme-portable: re-theming the deck updates every named reference, where a literal hex stays frozen. Unknown 'var:' ids produce a validation warning, never an error, and engines fall back to their default text color. TextRun.color documents the same three forms but remains an open string so imported decks with unrecognized run colors stay valid; validators warn there instead of erroring.
407
+ *
408
+ * This interface was referenced by `Presentation`'s JSON-Schema
409
+ * via the `definition` "ColorRef".
410
+ */
411
+ type ColorRef = (HexColor | ("accent1" | "accent2" | "accent3" | "accent4" | "accent5" | "accent6" | "dark1" | "dark2" | "light1" | "light2" | "hyperlink" | "followedHyperlink" | "primary" | "secondary" | "accent" | "background" | "surface" | "surfaceAlt" | "text" | "textSecondary") | string);
400
412
  /**
401
413
  * A scalar, rich-run array, or styled/spanning cell object. Existing scalar and rich forms remain valid.
402
414
  *
@@ -1182,11 +1194,11 @@ interface Design {
1182
1194
  */
1183
1195
  footer?: (false | HeaderFooter);
1184
1196
  /**
1185
- * Default horizontal alignment for the title heading area in resolved layouts. Effective value: the slide's design, then the deck's design, then the theme's design.titleAlignment, then the layout record's design.titleAlignment, then the engine default.
1197
+ * Default horizontal alignment for the title heading area (the title and the tag) in resolved layouts. Effective value: the slide's design, then the deck's design, then the theme's design.titleAlignment, then the layout record's design.titleAlignment, then the engine default.
1186
1198
  */
1187
1199
  titleAlignment?: ("left" | "center" | "right");
1188
1200
  /**
1189
- * Default horizontal alignment for body/content regions in resolved layouts. Effective value: the slide's design, then the deck's design, then the theme's design.contentAlignment, then the layout record's design.contentAlignment, then the engine default. A cover's tag and subtitle follow titleAlignment unless the slide's own design sets contentAlignment.
1201
+ * Default horizontal alignment for body/content regions in resolved layouts. Effective value: the slide's design, then the deck's design, then the theme's design.contentAlignment, then the layout record's design.contentAlignment, then the engine default. The tag follows titleAlignment (and a cover's subtitle with it) unless the slide's own design sets contentAlignment.
1190
1202
  */
1191
1203
  contentAlignment?: ("left" | "center" | "right");
1192
1204
  /**
@@ -2340,6 +2352,13 @@ interface Chart {
2340
2352
  * Text alternative for the chart: what the data shows (the point and the key numbers), not 'a chart' or 'bar chart'. The preview exposes it as the chart's accessible name (role img with aria-label) and the PowerPoint export writes it as the chart frame's alternative text (descr); import reads it back. An empty string marks the chart decorative, with the same meaning as an empty Asset alt, but it is a reviewed choice that opf/chart-text-alternative still reports as info (a chart almost always carries a message). When absent, validate accepts text beside the chart instead.
2341
2353
  */
2342
2354
  alt?: string;
2355
+ /**
2356
+ * Optional series colors, by position: entry i replaces palette color i, the color of series i (the i-th plotted value column), of slice or category i on a pie, doughnut, treemap or funnel chart, and of the i-th color a histogram, pareto, waterfall or box-and-whisker chart draws with. An entry is any ColorRef: a hex color, a color-scheme slot or role ('accent3', 'secondary') or a 'var:<id>' color variable; a scheme name keeps following the deck if its scheme changes, and is written to PowerPoint as a theme color. Positions past the last entry keep the deck palette (accent1 to accent6, then their tints). A color is kept at 3:1 contrast against the chart panel (a lighter or darker shade is used when it falls short) and 'chart.highlight' wins over it: highlighted marks take the primary color and the rest the muted neutral. A color that cannot be resolved falls back to the palette color for its position. Absent keeps the deck palette exactly.
2357
+ *
2358
+ * @minItems 1
2359
+ * @maxItems 24
2360
+ */
2361
+ colors?: [ColorRef, ...(ColorRef)[]];
2343
2362
  highlight?: ChartHighlight;
2344
2363
  }
2345
2364
  /**
@@ -2553,13 +2572,27 @@ interface StyledTableCell {
2553
2572
  */
2554
2573
  interface TableCellStyle {
2555
2574
  /**
2556
- * Cell background: a hex color, a color-scheme slot or role name, or a 'var:<id>' variable reference. Eight-digit hex colors include alpha; #00000000 is transparent.
2575
+ * A color value or reference, enforced on styled table cell fill and text colors, cell border colors, solid background colors, gradient stop colors and pattern foreground and background colors. Three forms:
2576
+ * - Literal hex: '#RGB', '#RRGGBB', or '#RRGGBBAA'.
2577
+ * - Color-scheme name, resolved through the effective color scheme after design resolution: an OOXML slot ('accent1'-'accent6', 'dark1', 'dark2', 'light1', 'light2', 'hyperlink', 'followedHyperlink') or an abstract role ('primary', 'secondary', 'accent', 'background', 'surface', 'surfaceAlt', 'text', 'textSecondary'). Roles resolve through the same role-to-slot mapping engines already apply to color schemes. 'surfaceAlt' has no slot: it is the alternate surface of banded table rows, derived from 'surface' and 'text' (the surface mixed a tenth of the way towards the text color, further when needed, so it always differs visibly from 'surface' and keeps 4.5:1 text contrast; core surfaceAltColor).
2578
+ * - Variable reference: 'var:<id>' into the top-level variables map.
2579
+ *
2580
+ * Names keep content theme-portable: re-theming the deck updates every named reference, where a literal hex stays frozen. Unknown 'var:' ids produce a validation warning, never an error, and engines fall back to their default text color. TextRun.color documents the same three forms but remains an open string so imported decks with unrecognized run colors stay valid; validators warn there instead of erroring.
2557
2581
  */
2558
2582
  fill?: (HexColor | ("accent1" | "accent2" | "accent3" | "accent4" | "accent5" | "accent6" | "dark1" | "dark2" | "light1" | "light2" | "hyperlink" | "followedHyperlink" | "primary" | "secondary" | "accent" | "background" | "surface" | "surfaceAlt" | "text" | "textSecondary") | string);
2559
2583
  /**
2560
- * Default text color, overridden by individual rich run colors. Accepts a hex color, a color-scheme slot or role name, or a 'var:<id>' variable reference.
2584
+ * A color value or reference, enforced on styled table cell fill and text colors, cell border colors, solid background colors, gradient stop colors and pattern foreground and background colors. Three forms:
2585
+ * - Literal hex: '#RGB', '#RRGGBB', or '#RRGGBBAA'.
2586
+ * - Color-scheme name, resolved through the effective color scheme after design resolution: an OOXML slot ('accent1'-'accent6', 'dark1', 'dark2', 'light1', 'light2', 'hyperlink', 'followedHyperlink') or an abstract role ('primary', 'secondary', 'accent', 'background', 'surface', 'surfaceAlt', 'text', 'textSecondary'). Roles resolve through the same role-to-slot mapping engines already apply to color schemes. 'surfaceAlt' has no slot: it is the alternate surface of banded table rows, derived from 'surface' and 'text' (the surface mixed a tenth of the way towards the text color, further when needed, so it always differs visibly from 'surface' and keeps 4.5:1 text contrast; core surfaceAltColor).
2587
+ * - Variable reference: 'var:<id>' into the top-level variables map.
2588
+ *
2589
+ * Names keep content theme-portable: re-theming the deck updates every named reference, where a literal hex stays frozen. Unknown 'var:' ids produce a validation warning, never an error, and engines fall back to their default text color. TextRun.color documents the same three forms but remains an open string so imported decks with unrecognized run colors stay valid; validators warn there instead of erroring.
2561
2590
  */
2562
2591
  color?: (HexColor | ("accent1" | "accent2" | "accent3" | "accent4" | "accent5" | "accent6" | "dark1" | "dark2" | "light1" | "light2" | "hyperlink" | "followedHyperlink" | "primary" | "secondary" | "accent" | "background" | "surface" | "surfaceAlt" | "text" | "textSecondary") | string);
2592
+ /**
2593
+ * Bold cell text. Runs that set their own bold keep it; a number cell stays bold and still uses the cell's or column's number format.
2594
+ */
2595
+ bold?: boolean;
2563
2596
  /**
2564
2597
  * Horizontal text alignment inside the cell.
2565
2598
  */
@@ -2599,7 +2632,12 @@ interface TableCellPadding {
2599
2632
  */
2600
2633
  interface TableCellBorder {
2601
2634
  /**
2602
- * Border color: a hex color, a color-scheme slot or role name, or a 'var:<id>' variable reference. Eight-digit hex colors include alpha; #00000000 is transparent.
2635
+ * A color value or reference, enforced on styled table cell fill and text colors, cell border colors, solid background colors, gradient stop colors and pattern foreground and background colors. Three forms:
2636
+ * - Literal hex: '#RGB', '#RRGGBB', or '#RRGGBBAA'.
2637
+ * - Color-scheme name, resolved through the effective color scheme after design resolution: an OOXML slot ('accent1'-'accent6', 'dark1', 'dark2', 'light1', 'light2', 'hyperlink', 'followedHyperlink') or an abstract role ('primary', 'secondary', 'accent', 'background', 'surface', 'surfaceAlt', 'text', 'textSecondary'). Roles resolve through the same role-to-slot mapping engines already apply to color schemes. 'surfaceAlt' has no slot: it is the alternate surface of banded table rows, derived from 'surface' and 'text' (the surface mixed a tenth of the way towards the text color, further when needed, so it always differs visibly from 'surface' and keeps 4.5:1 text contrast; core surfaceAltColor).
2638
+ * - Variable reference: 'var:<id>' into the top-level variables map.
2639
+ *
2640
+ * Names keep content theme-portable: re-theming the deck updates every named reference, where a literal hex stays frozen. Unknown 'var:' ids produce a validation warning, never an error, and engines fall back to their default text color. TextRun.color documents the same three forms but remains an open string so imported decks with unrecognized run colors stay valid; validators warn there instead of erroring.
2603
2641
  */
2604
2642
  color: (HexColor | ("accent1" | "accent2" | "accent3" | "accent4" | "accent5" | "accent6" | "dark1" | "dark2" | "light1" | "light2" | "hyperlink" | "followedHyperlink" | "primary" | "secondary" | "accent" | "background" | "surface" | "surfaceAlt" | "text" | "textSecondary") | string);
2605
2643
  /**
@@ -2764,7 +2802,12 @@ interface ImageFocus1 {
2764
2802
  */
2765
2803
  interface ImageBorder {
2766
2804
  /**
2767
- * Line color: a hex color, a color-scheme slot or role name, or a 'var:<id>' variable reference.
2805
+ * A color value or reference, enforced on styled table cell fill and text colors, cell border colors, solid background colors, gradient stop colors and pattern foreground and background colors. Three forms:
2806
+ * - Literal hex: '#RGB', '#RRGGBB', or '#RRGGBBAA'.
2807
+ * - Color-scheme name, resolved through the effective color scheme after design resolution: an OOXML slot ('accent1'-'accent6', 'dark1', 'dark2', 'light1', 'light2', 'hyperlink', 'followedHyperlink') or an abstract role ('primary', 'secondary', 'accent', 'background', 'surface', 'surfaceAlt', 'text', 'textSecondary'). Roles resolve through the same role-to-slot mapping engines already apply to color schemes. 'surfaceAlt' has no slot: it is the alternate surface of banded table rows, derived from 'surface' and 'text' (the surface mixed a tenth of the way towards the text color, further when needed, so it always differs visibly from 'surface' and keeps 4.5:1 text contrast; core surfaceAltColor).
2808
+ * - Variable reference: 'var:<id>' into the top-level variables map.
2809
+ *
2810
+ * Names keep content theme-portable: re-theming the deck updates every named reference, where a literal hex stays frozen. Unknown 'var:' ids produce a validation warning, never an error, and engines fall back to their default text color. TextRun.color documents the same three forms but remains an open string so imported decks with unrecognized run colors stay valid; validators warn there instead of erroring.
2768
2811
  */
2769
2812
  color: (HexColor | ("accent1" | "accent2" | "accent3" | "accent4" | "accent5" | "accent6" | "dark1" | "dark2" | "light1" | "light2" | "hyperlink" | "followedHyperlink" | "primary" | "secondary" | "accent" | "background" | "surface" | "surfaceAlt" | "text" | "textSecondary") | string);
2770
2813
  /**
@@ -2848,6 +2891,13 @@ interface Chart1 {
2848
2891
  * Text alternative for the chart: what the data shows (the point and the key numbers), not 'a chart' or 'bar chart'. The preview exposes it as the chart's accessible name (role img with aria-label) and the PowerPoint export writes it as the chart frame's alternative text (descr); import reads it back. An empty string marks the chart decorative, with the same meaning as an empty Asset alt, but it is a reviewed choice that opf/chart-text-alternative still reports as info (a chart almost always carries a message). When absent, validate accepts text beside the chart instead.
2849
2892
  */
2850
2893
  alt?: string;
2894
+ /**
2895
+ * Optional series colors, by position: entry i replaces palette color i, the color of series i (the i-th plotted value column), of slice or category i on a pie, doughnut, treemap or funnel chart, and of the i-th color a histogram, pareto, waterfall or box-and-whisker chart draws with. An entry is any ColorRef: a hex color, a color-scheme slot or role ('accent3', 'secondary') or a 'var:<id>' color variable; a scheme name keeps following the deck if its scheme changes, and is written to PowerPoint as a theme color. Positions past the last entry keep the deck palette (accent1 to accent6, then their tints). A color is kept at 3:1 contrast against the chart panel (a lighter or darker shade is used when it falls short) and 'chart.highlight' wins over it: highlighted marks take the primary color and the rest the muted neutral. A color that cannot be resolved falls back to the palette color for its position. Absent keeps the deck palette exactly.
2896
+ *
2897
+ * @minItems 1
2898
+ * @maxItems 24
2899
+ */
2900
+ colors?: [ColorRef, ...(ColorRef)[]];
2851
2901
  highlight?: ChartHighlight;
2852
2902
  }
2853
2903
  /**
@@ -2960,11 +3010,11 @@ interface Design1 {
2960
3010
  */
2961
3011
  footer?: (false | HeaderFooter);
2962
3012
  /**
2963
- * Default horizontal alignment for the title heading area in resolved layouts. Effective value: the slide's design, then the deck's design, then the theme's design.titleAlignment, then the layout record's design.titleAlignment, then the engine default.
3013
+ * Default horizontal alignment for the title heading area (the title and the tag) in resolved layouts. Effective value: the slide's design, then the deck's design, then the theme's design.titleAlignment, then the layout record's design.titleAlignment, then the engine default.
2964
3014
  */
2965
3015
  titleAlignment?: ("left" | "center" | "right");
2966
3016
  /**
2967
- * Default horizontal alignment for body/content regions in resolved layouts. Effective value: the slide's design, then the deck's design, then the theme's design.contentAlignment, then the layout record's design.contentAlignment, then the engine default. A cover's tag and subtitle follow titleAlignment unless the slide's own design sets contentAlignment.
3017
+ * Default horizontal alignment for body/content regions in resolved layouts. Effective value: the slide's design, then the deck's design, then the theme's design.contentAlignment, then the layout record's design.contentAlignment, then the engine default. The tag follows titleAlignment (and a cover's subtitle with it) unless the slide's own design sets contentAlignment.
2968
3018
  */
2969
3019
  contentAlignment?: ("left" | "center" | "right");
2970
3020
  /**