@json-to-office/shared-docx 0.21.0 → 0.23.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 (37) hide show
  1. package/dist/{chunk-QR4I4ZNV.js → chunk-2TQ74H6S.js} +2 -2
  2. package/dist/{chunk-QNIC7H4H.js → chunk-3JOBFRYR.js} +62 -4
  3. package/dist/{chunk-QNIC7H4H.js.map → chunk-3JOBFRYR.js.map} +1 -1
  4. package/dist/{chunk-K5USZWUG.js → chunk-7636IMZ5.js} +2 -2
  5. package/dist/{chunk-YSDZJNWV.js → chunk-FNCLWYTA.js} +2 -2
  6. package/dist/{chunk-RV6RFQQP.js → chunk-GJBRYTGZ.js} +6 -6
  7. package/dist/{chunk-CO76J5GZ.js → chunk-HTOT7PVC.js} +3 -3
  8. package/dist/{chunk-2NLQPZ4G.js → chunk-KNMPYZUO.js} +2 -2
  9. package/dist/{chunk-2NLQPZ4G.js.map → chunk-KNMPYZUO.js.map} +1 -1
  10. package/dist/{chunk-3KZ3BI25.js → chunk-S4TSENRQ.js} +26 -10
  11. package/dist/chunk-S4TSENRQ.js.map +1 -0
  12. package/dist/{chunk-TFPNI2DM.js → chunk-U7UNC7QH.js} +2 -2
  13. package/dist/{chunk-OQCQOBHB.js → chunk-YQE7H4H4.js} +6 -3
  14. package/dist/{chunk-OQCQOBHB.js.map → chunk-YQE7H4H4.js.map} +1 -1
  15. package/dist/index.d.ts +1 -3
  16. package/dist/index.js +12 -10
  17. package/dist/index.js.map +1 -1
  18. package/dist/schemas/api.js +4 -4
  19. package/dist/schemas/component-defaults.js +1 -1
  20. package/dist/schemas/component-registry.js +2 -2
  21. package/dist/schemas/components.d.ts +5 -4
  22. package/dist/schemas/components.js +3 -3
  23. package/dist/schemas/document.js +5 -5
  24. package/dist/schemas/export.js +3 -3
  25. package/dist/schemas/generator.js +3 -3
  26. package/dist/schemas/theme.d.ts +19 -1
  27. package/dist/schemas/theme.js +4 -2
  28. package/dist/validation/unified/index.d.ts +0 -2
  29. package/dist/validation/unified/index.js +6 -6
  30. package/package.json +2 -2
  31. package/dist/chunk-3KZ3BI25.js.map +0 -1
  32. /package/dist/{chunk-QR4I4ZNV.js.map → chunk-2TQ74H6S.js.map} +0 -0
  33. /package/dist/{chunk-K5USZWUG.js.map → chunk-7636IMZ5.js.map} +0 -0
  34. /package/dist/{chunk-YSDZJNWV.js.map → chunk-FNCLWYTA.js.map} +0 -0
  35. /package/dist/{chunk-RV6RFQQP.js.map → chunk-GJBRYTGZ.js.map} +0 -0
  36. /package/dist/{chunk-CO76J5GZ.js.map → chunk-HTOT7PVC.js.map} +0 -0
  37. /package/dist/{chunk-TFPNI2DM.js.map → chunk-U7UNC7QH.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createAllComponentSchemas,
3
3
  createAllComponentSchemasNarrowed
4
- } from "./chunk-3KZ3BI25.js";
4
+ } from "./chunk-S4TSENRQ.js";
5
5
 
6
6
  // src/schemas/components.ts
7
7
  import { Type } from "@sinclair/typebox";
@@ -31,4 +31,4 @@ export {
31
31
  StandardComponentDefinitionSchema,
32
32
  ComponentDefinitionSchema
33
33
  };
34
- //# sourceMappingURL=chunk-QR4I4ZNV.js.map
34
+ //# sourceMappingURL=chunk-2TQ74H6S.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  ComponentDefaultsSchema,
3
3
  IndentSchema
4
- } from "./chunk-2NLQPZ4G.js";
4
+ } from "./chunk-KNMPYZUO.js";
5
5
  import {
6
6
  FontDefinitionSchema,
7
7
  HexColorSchema,
@@ -301,7 +301,13 @@ var ThemeConfigSchema = Type.Object(
301
301
  borderPrimary: HexColorSchema,
302
302
  borderSecondary: HexColorSchema,
303
303
  backgroundPrimary: HexColorSchema,
304
- backgroundSecondary: HexColorSchema
304
+ backgroundSecondary: HexColorSchema,
305
+ // Extra chart-series slots, named to match the PPTX theme so both
306
+ // formats share one palette vocabulary. Optional: the bundled DOCX
307
+ // themes leave them unset and charts skip the empty slots.
308
+ accent4: Type.Optional(HexColorSchema),
309
+ accent5: Type.Optional(HexColorSchema),
310
+ accent6: Type.Optional(HexColorSchema)
305
311
  },
306
312
  { additionalProperties: false }
307
313
  ),
@@ -326,6 +332,57 @@ var ThemeConfigSchema = Type.Object(
326
332
  function isValidThemeConfig(data) {
327
333
  return Value.Check(ThemeConfigSchema, data);
328
334
  }
335
+ function createMinimalTheme(name = "minimal-theme") {
336
+ return {
337
+ name,
338
+ displayName: name.split(/[-_\s]+/).filter(Boolean).map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ") || name,
339
+ description: "A minimal theme with basic styling",
340
+ version: "1.0.0",
341
+ colors: {
342
+ primary: "#2563EB",
343
+ secondary: "#64748B",
344
+ accent: "#F8FAFC",
345
+ text: "#334155",
346
+ background: "#FFFFFF",
347
+ border: "#E2E8F0",
348
+ textPrimary: "#334155",
349
+ textSecondary: "#64748B",
350
+ textMuted: "#94A3B8",
351
+ borderPrimary: "#CBD5E1",
352
+ borderSecondary: "#E2E8F0",
353
+ backgroundPrimary: "#FFFFFF",
354
+ backgroundSecondary: "#F8FAFC"
355
+ },
356
+ fonts: {
357
+ heading: { family: "Arial", size: 14 },
358
+ body: { family: "Arial", size: 11 },
359
+ mono: { family: "Courier New", size: 10 },
360
+ light: { family: "Arial", size: 10 }
361
+ },
362
+ page: {
363
+ size: "A4",
364
+ margins: {
365
+ top: 1440,
366
+ bottom: 1440,
367
+ left: 1440,
368
+ right: 1440,
369
+ header: 720,
370
+ footer: 720,
371
+ gutter: 0
372
+ }
373
+ },
374
+ styles: {
375
+ normal: {
376
+ font: "body",
377
+ size: 11,
378
+ color: "#334155",
379
+ alignment: "left",
380
+ lineSpacing: { type: "multiple", value: 1.15 },
381
+ spacing: { after: 8 }
382
+ }
383
+ }
384
+ };
385
+ }
329
386
 
330
387
  export {
331
388
  DocumentMarginsSchema,
@@ -335,6 +392,7 @@ export {
335
392
  StyleDefinitionsSchema,
336
393
  HeadingDefinitionSchema,
337
394
  ThemeConfigSchema,
338
- isValidThemeConfig
395
+ isValidThemeConfig,
396
+ createMinimalTheme
339
397
  };
340
- //# sourceMappingURL=chunk-QNIC7H4H.js.map
398
+ //# sourceMappingURL=chunk-3JOBFRYR.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/schemas/theme.ts"],"sourcesContent":["/**\n * Theme Schema Definitions using TypeBox\n * This file provides TypeBox schemas for theme configuration validation\n */\n\nimport { Type, Static } from '@sinclair/typebox';\nimport {\n FontDefinitionSchema,\n TextFormattingPropertiesSchema,\n HexColorSchema,\n} from './font';\nimport { IndentSchema } from './components/common';\n\n// ============================================================================\n// Document Margins Schema\n// ============================================================================\n\nexport const DocumentMarginsSchema = Type.Object(\n {\n top: Type.Number({ minimum: 0 }),\n bottom: Type.Number({ minimum: 0 }),\n left: Type.Number({ minimum: 0 }),\n right: Type.Number({ minimum: 0 }),\n header: Type.Number({ minimum: 0 }),\n footer: Type.Number({ minimum: 0 }),\n gutter: Type.Number({ minimum: 0 }),\n },\n { additionalProperties: false, description: 'Document margin configuration' }\n);\n\n// ============================================================================\n// Page Dimensions Schema\n// ============================================================================\n\nexport const PageDimensionsSchema = Type.Object(\n {\n width: Type.Number({ minimum: 0 }),\n height: Type.Number({ minimum: 0 }),\n },\n { additionalProperties: false, description: 'Page dimensions in twips' }\n);\n\n// ============================================================================\n// Page Schema (replaces PageSetupSchema)\n// ============================================================================\n\nexport const PageSchema = Type.Object(\n {\n size: Type.Union(\n [\n Type.Literal('A4'),\n Type.Literal('A3'),\n Type.Literal('LETTER'),\n Type.Literal('LEGAL'),\n Type.Object(\n {\n width: Type.Number({ minimum: 0 }),\n height: Type.Number({ minimum: 0 }),\n },\n { additionalProperties: false }\n ),\n ],\n { description: 'Standard page size or custom dimensions' }\n ),\n margins: DocumentMarginsSchema,\n },\n {\n description: 'Page configuration including dimensions and margins',\n additionalProperties: false,\n }\n);\n\n// ============================================================================\n// Text formatting and font schemas now imported from './font' to avoid cycles\n\n// ============================================================================\n// Fonts Schema\n// ============================================================================\n\nexport const FontsSchema = Type.Object(\n {\n heading: FontDefinitionSchema,\n body: FontDefinitionSchema,\n mono: FontDefinitionSchema,\n light: FontDefinitionSchema,\n },\n {\n additionalProperties: false,\n description: 'Font definitions for different text types',\n }\n);\n\n// ============================================================================\n// Style Definitions Schema\n// ============================================================================\n\n// Paragraph border style support (matches docx BorderStyle)\nconst BorderStyleSchema = Type.Union(\n [\n Type.Literal('single'),\n Type.Literal('dashDotStroked'),\n Type.Literal('dashed'),\n Type.Literal('dashSmallGap'),\n Type.Literal('dotDash'),\n Type.Literal('dotDotDash'),\n Type.Literal('dotted'),\n Type.Literal('double'),\n Type.Literal('doubleWave'),\n Type.Literal('inset'),\n Type.Literal('nil'),\n Type.Literal('none'),\n Type.Literal('outset'),\n Type.Literal('thick'),\n Type.Literal('thickThinLargeGap'),\n Type.Literal('thickThinMediumGap'),\n Type.Literal('thickThinSmallGap'),\n Type.Literal('thinThickLargeGap'),\n Type.Literal('thinThickMediumGap'),\n Type.Literal('thinThickSmallGap'),\n Type.Literal('thinThickThinLargeGap'),\n Type.Literal('thinThickThinMediumGap'),\n Type.Literal('thinThickThinSmallGap'),\n Type.Literal('threeDEmboss'),\n Type.Literal('threeDEngrave'),\n Type.Literal('triple'),\n Type.Literal('wave'),\n ],\n { description: 'Paragraph border style' }\n);\n\nconst BorderDefinitionSchema = Type.Object(\n {\n style: BorderStyleSchema,\n size: Type.Number({\n minimum: 0,\n description: 'Width in eighths of a point (docx sz)',\n }),\n color: HexColorSchema,\n space: Type.Optional(\n Type.Number({\n minimum: 0,\n description: 'Space between text and border in points',\n })\n ),\n },\n {\n additionalProperties: false,\n description: 'Paragraph border side definition',\n }\n);\n\nconst BordersSchema = Type.Object(\n {\n top: Type.Optional(BorderDefinitionSchema),\n bottom: Type.Optional(BorderDefinitionSchema),\n left: Type.Optional(BorderDefinitionSchema),\n right: Type.Optional(BorderDefinitionSchema),\n },\n { additionalProperties: false, description: 'Paragraph borders (per side)' }\n);\n\n// Alignment schema for paragraph-level alignment (used in styles)\nconst AlignmentSchema = Type.Optional(\n Type.Union([\n Type.Literal('left'),\n Type.Literal('center'),\n Type.Literal('right'),\n Type.Literal('justify'),\n ])\n);\n\n/**\n * Style properties schema that extends text formatting properties\n * with additional style-specific properties (priority, baseStyle, etc.)\n */\nconst StylePropertiesSchema = Type.Object(\n {\n font: Type.Optional(\n Type.Union([\n Type.Literal('heading'),\n Type.Literal('body'),\n Type.Literal('mono'),\n Type.Literal('light'),\n ])\n ),\n ...TextFormattingPropertiesSchema.properties,\n // Paragraph-level alignment (not a font property)\n alignment: AlignmentSchema,\n // Additional properties specific to styles\n priority: Type.Optional(Type.Number()),\n baseStyle: Type.Optional(Type.String()),\n followingStyle: Type.Optional(Type.String()),\n widowControl: Type.Optional(Type.Boolean()),\n keepNext: Type.Optional(Type.Boolean()),\n keepLinesTogether: Type.Optional(Type.Boolean()),\n outlineLevel: Type.Optional(Type.Number()),\n borders: Type.Optional(BordersSchema),\n indent: Type.Optional(IndentSchema),\n },\n { additionalProperties: false }\n);\n\n// ============================================================================\n// Tab Stop Schema\n// ============================================================================\n\n/**\n * Tab stop leader types matching docx.js LeaderType\n */\nconst TabStopLeaderSchema = Type.Union(\n [\n Type.Literal('dot'),\n Type.Literal('hyphen'),\n Type.Literal('middleDot'),\n Type.Literal('none'),\n Type.Literal('underscore'),\n ],\n {\n description:\n 'Tab leader style: dot (dotted), hyphen (dashed), middleDot, none (blank), or underscore',\n }\n);\n\n/**\n * Tab stop type matching docx.js TabStopType\n */\nconst TabStopTypeSchema = Type.Union(\n [\n Type.Literal('left'),\n Type.Literal('right'),\n Type.Literal('center'),\n Type.Literal('bar'),\n Type.Literal('clear'),\n Type.Literal('decimal'),\n Type.Literal('end'),\n Type.Literal('num'),\n Type.Literal('start'),\n ],\n {\n description: 'Tab stop alignment type',\n }\n);\n\n/**\n * Tab stop definition schema\n */\nconst TabStopDefinitionSchema = Type.Object(\n {\n type: TabStopTypeSchema,\n position: Type.Union([\n Type.Number({\n description:\n 'Tab stop position in twips (1/1440 inch). Common: 9026 for right-aligned at page margin',\n }),\n Type.Literal('max', {\n description: 'Use maximum position (TabStopPosition.MAX = 9026 twips)',\n }),\n ]),\n leader: Type.Optional(TabStopLeaderSchema),\n },\n {\n description:\n 'Tab stop configuration with position, alignment, and optional leader',\n additionalProperties: false,\n }\n);\n\n/**\n * TOC style properties schema that extends text formatting properties\n * but EXCLUDES baseStyle to prevent unwanted coupling with Heading styles\n */\nconst TocStylePropertiesSchema = Type.Object(\n {\n font: Type.Optional(\n Type.Union([\n Type.Literal('heading'),\n Type.Literal('body'),\n Type.Literal('mono'),\n Type.Literal('light'),\n ])\n ),\n ...TextFormattingPropertiesSchema.properties,\n // Paragraph-level alignment (not a font property)\n alignment: AlignmentSchema,\n // Tab stops for controlling TOC entry formatting (leader dots, alignment, etc.)\n tabStops: Type.Optional(\n Type.Array(TabStopDefinitionSchema, {\n description:\n 'Tab stops for TOC entries. Use right-aligned tab with leader to create dotted lines to page numbers.',\n default: [{ type: 'right', position: 'max', leader: 'none' }],\n })\n ),\n // Additional properties specific to styles (baseStyle intentionally excluded)\n priority: Type.Optional(Type.Number()),\n followingStyle: Type.Optional(Type.String()),\n widowControl: Type.Optional(Type.Boolean()),\n keepNext: Type.Optional(Type.Boolean()),\n keepLinesTogether: Type.Optional(Type.Boolean()),\n outlineLevel: Type.Optional(Type.Number()),\n borders: Type.Optional(BordersSchema),\n indent: Type.Optional(IndentSchema),\n },\n { additionalProperties: false }\n);\n\nexport const StyleDefinitionsSchema = Type.Object(\n {\n normal: Type.Optional(StylePropertiesSchema),\n heading1: Type.Optional(StylePropertiesSchema),\n heading2: Type.Optional(StylePropertiesSchema),\n heading3: Type.Optional(StylePropertiesSchema),\n heading4: Type.Optional(StylePropertiesSchema),\n heading5: Type.Optional(StylePropertiesSchema),\n heading6: Type.Optional(StylePropertiesSchema),\n title: Type.Optional(StylePropertiesSchema),\n subtitle: Type.Optional(StylePropertiesSchema),\n // TOC entry styles (used by Word to format TOC entries)\n // Note: TOC styles use TocStylePropertiesSchema which excludes baseStyle to prevent coupling with Headings\n TOC1: Type.Optional(TocStylePropertiesSchema),\n TOC2: Type.Optional(TocStylePropertiesSchema),\n TOC3: Type.Optional(TocStylePropertiesSchema),\n TOC4: Type.Optional(TocStylePropertiesSchema),\n TOC5: Type.Optional(TocStylePropertiesSchema),\n TOC6: Type.Optional(TocStylePropertiesSchema),\n },\n {\n additionalProperties: StylePropertiesSchema,\n description:\n 'Style definitions supporting predefined styles (normal, heading1..6, title, subtitle), TOC entry styles (TOC1..TOC6), and arbitrary custom styles.',\n }\n);\n\n// ============================================================================\n// Heading Definition Schema\n// ============================================================================\n\n/**\n * Heading definition schema that uses the same properties as StylePropertiesSchema\n * but adds a required 'level' field.\n */\nexport const HeadingDefinitionSchema = Type.Object(\n {\n level: Type.Union([\n Type.Literal(1),\n Type.Literal(2),\n Type.Literal(3),\n Type.Literal(4),\n Type.Literal(5),\n Type.Literal(6),\n ]),\n ...StylePropertiesSchema.properties,\n },\n { additionalProperties: false }\n);\n\n// ============================================================================\n// Component Defaults Schemas (imported from component-defaults.ts to avoid\n// circular deps: report.ts needs ComponentDefaultsSchema, but the old location\n// here imported from the components barrel which re-exports report.ts)\n// ============================================================================\n\nimport { ComponentDefaultsSchema } from './component-defaults';\n\nexport {\n HeadingComponentDefaultsSchema,\n ParagraphComponentDefaultsSchema,\n ImageComponentDefaultsSchema,\n StatisticComponentDefaultsSchema,\n TableComponentDefaultsSchema,\n SectionComponentDefaultsSchema,\n ColumnsComponentDefaultsSchema,\n ListComponentDefaultsSchema,\n ComponentDefaultsSchema,\n} from './component-defaults';\n\n// ============================================================================\n// Theme Config Schema\n// ============================================================================\n\nexport const ThemeConfigSchema = Type.Object(\n {\n $schema: Type.Optional(Type.String()),\n name: Type.String(),\n displayName: Type.String(),\n description: Type.String(),\n version: Type.String(),\n colors: Type.Object(\n {\n primary: HexColorSchema,\n secondary: HexColorSchema,\n accent: HexColorSchema,\n text: HexColorSchema,\n background: HexColorSchema,\n border: HexColorSchema,\n // Additional semantic color names\n textPrimary: HexColorSchema,\n textSecondary: HexColorSchema,\n textMuted: HexColorSchema,\n borderPrimary: HexColorSchema,\n borderSecondary: HexColorSchema,\n backgroundPrimary: HexColorSchema,\n backgroundSecondary: HexColorSchema,\n },\n { additionalProperties: false }\n ),\n fonts: FontsSchema,\n page: PageSchema,\n styles: Type.Optional(StyleDefinitionsSchema),\n componentDefaults: Type.Optional(ComponentDefaultsSchema),\n // House-style \"known words\" allowlist (whole-word, case-insensitive) that\n // should never be flagged as misspelled. The document's `noProofWords` is\n // merged on top of this at render time.\n noProofWords: Type.Optional(\n Type.Array(Type.String({ minLength: 1 }), {\n description:\n 'Words that should never be flagged as misspelled (whole-word, case-insensitive).',\n })\n ),\n },\n {\n additionalProperties: false,\n description: 'Theme configuration',\n }\n);\n\n// ============================================================================\n// TypeScript Types\n// ============================================================================\n\nexport type ThemeConfigJson = Static<typeof ThemeConfigSchema>;\nexport type DocumentMargins = Static<typeof DocumentMarginsSchema>;\nexport type PageDimensions = Static<typeof PageDimensionsSchema>;\nexport type Page = Static<typeof PageSchema>;\nexport type FontDefinition = Static<typeof FontDefinitionSchema>;\nexport type Fonts = Static<typeof FontsSchema>;\nexport type StyleDefinitions = Static<typeof StyleDefinitionsSchema>;\nexport type HeadingDefinition = Static<typeof HeadingDefinitionSchema>;\nexport type {\n HeadingComponentDefaults,\n ParagraphComponentDefaults,\n ImageComponentDefaults,\n StatisticComponentDefaults,\n TableComponentDefaults,\n SectionComponentDefaults,\n ColumnsComponentDefaults,\n ListComponentDefaults,\n ComponentDefaults,\n} from './component-defaults';\n\n// ============================================================================\n// Validation Function\n// ============================================================================\n\nimport { Value } from '@sinclair/typebox/value';\n\nexport function isValidThemeConfig(data: unknown): data is ThemeConfigJson {\n return Value.Check(ThemeConfigSchema, data);\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/schemas/theme.ts"],"sourcesContent":["/**\n * Theme Schema Definitions using TypeBox\n * This file provides TypeBox schemas for theme configuration validation\n */\n\nimport { Type, Static } from '@sinclair/typebox';\nimport {\n FontDefinitionSchema,\n TextFormattingPropertiesSchema,\n HexColorSchema,\n} from './font';\nimport { IndentSchema } from './components/common';\n\n// ============================================================================\n// Document Margins Schema\n// ============================================================================\n\nexport const DocumentMarginsSchema = Type.Object(\n {\n top: Type.Number({ minimum: 0 }),\n bottom: Type.Number({ minimum: 0 }),\n left: Type.Number({ minimum: 0 }),\n right: Type.Number({ minimum: 0 }),\n header: Type.Number({ minimum: 0 }),\n footer: Type.Number({ minimum: 0 }),\n gutter: Type.Number({ minimum: 0 }),\n },\n { additionalProperties: false, description: 'Document margin configuration' }\n);\n\n// ============================================================================\n// Page Dimensions Schema\n// ============================================================================\n\nexport const PageDimensionsSchema = Type.Object(\n {\n width: Type.Number({ minimum: 0 }),\n height: Type.Number({ minimum: 0 }),\n },\n { additionalProperties: false, description: 'Page dimensions in twips' }\n);\n\n// ============================================================================\n// Page Schema (replaces PageSetupSchema)\n// ============================================================================\n\nexport const PageSchema = Type.Object(\n {\n size: Type.Union(\n [\n Type.Literal('A4'),\n Type.Literal('A3'),\n Type.Literal('LETTER'),\n Type.Literal('LEGAL'),\n Type.Object(\n {\n width: Type.Number({ minimum: 0 }),\n height: Type.Number({ minimum: 0 }),\n },\n { additionalProperties: false }\n ),\n ],\n { description: 'Standard page size or custom dimensions' }\n ),\n margins: DocumentMarginsSchema,\n },\n {\n description: 'Page configuration including dimensions and margins',\n additionalProperties: false,\n }\n);\n\n// ============================================================================\n// Text formatting and font schemas now imported from './font' to avoid cycles\n\n// ============================================================================\n// Fonts Schema\n// ============================================================================\n\nexport const FontsSchema = Type.Object(\n {\n heading: FontDefinitionSchema,\n body: FontDefinitionSchema,\n mono: FontDefinitionSchema,\n light: FontDefinitionSchema,\n },\n {\n additionalProperties: false,\n description: 'Font definitions for different text types',\n }\n);\n\n// ============================================================================\n// Style Definitions Schema\n// ============================================================================\n\n// Paragraph border style support (matches docx BorderStyle)\nconst BorderStyleSchema = Type.Union(\n [\n Type.Literal('single'),\n Type.Literal('dashDotStroked'),\n Type.Literal('dashed'),\n Type.Literal('dashSmallGap'),\n Type.Literal('dotDash'),\n Type.Literal('dotDotDash'),\n Type.Literal('dotted'),\n Type.Literal('double'),\n Type.Literal('doubleWave'),\n Type.Literal('inset'),\n Type.Literal('nil'),\n Type.Literal('none'),\n Type.Literal('outset'),\n Type.Literal('thick'),\n Type.Literal('thickThinLargeGap'),\n Type.Literal('thickThinMediumGap'),\n Type.Literal('thickThinSmallGap'),\n Type.Literal('thinThickLargeGap'),\n Type.Literal('thinThickMediumGap'),\n Type.Literal('thinThickSmallGap'),\n Type.Literal('thinThickThinLargeGap'),\n Type.Literal('thinThickThinMediumGap'),\n Type.Literal('thinThickThinSmallGap'),\n Type.Literal('threeDEmboss'),\n Type.Literal('threeDEngrave'),\n Type.Literal('triple'),\n Type.Literal('wave'),\n ],\n { description: 'Paragraph border style' }\n);\n\nconst BorderDefinitionSchema = Type.Object(\n {\n style: BorderStyleSchema,\n size: Type.Number({\n minimum: 0,\n description: 'Width in eighths of a point (docx sz)',\n }),\n color: HexColorSchema,\n space: Type.Optional(\n Type.Number({\n minimum: 0,\n description: 'Space between text and border in points',\n })\n ),\n },\n {\n additionalProperties: false,\n description: 'Paragraph border side definition',\n }\n);\n\nconst BordersSchema = Type.Object(\n {\n top: Type.Optional(BorderDefinitionSchema),\n bottom: Type.Optional(BorderDefinitionSchema),\n left: Type.Optional(BorderDefinitionSchema),\n right: Type.Optional(BorderDefinitionSchema),\n },\n { additionalProperties: false, description: 'Paragraph borders (per side)' }\n);\n\n// Alignment schema for paragraph-level alignment (used in styles)\nconst AlignmentSchema = Type.Optional(\n Type.Union([\n Type.Literal('left'),\n Type.Literal('center'),\n Type.Literal('right'),\n Type.Literal('justify'),\n ])\n);\n\n/**\n * Style properties schema that extends text formatting properties\n * with additional style-specific properties (priority, baseStyle, etc.)\n */\nconst StylePropertiesSchema = Type.Object(\n {\n font: Type.Optional(\n Type.Union([\n Type.Literal('heading'),\n Type.Literal('body'),\n Type.Literal('mono'),\n Type.Literal('light'),\n ])\n ),\n ...TextFormattingPropertiesSchema.properties,\n // Paragraph-level alignment (not a font property)\n alignment: AlignmentSchema,\n // Additional properties specific to styles\n priority: Type.Optional(Type.Number()),\n baseStyle: Type.Optional(Type.String()),\n followingStyle: Type.Optional(Type.String()),\n widowControl: Type.Optional(Type.Boolean()),\n keepNext: Type.Optional(Type.Boolean()),\n keepLinesTogether: Type.Optional(Type.Boolean()),\n outlineLevel: Type.Optional(Type.Number()),\n borders: Type.Optional(BordersSchema),\n indent: Type.Optional(IndentSchema),\n },\n { additionalProperties: false }\n);\n\n// ============================================================================\n// Tab Stop Schema\n// ============================================================================\n\n/**\n * Tab stop leader types matching docx.js LeaderType\n */\nconst TabStopLeaderSchema = Type.Union(\n [\n Type.Literal('dot'),\n Type.Literal('hyphen'),\n Type.Literal('middleDot'),\n Type.Literal('none'),\n Type.Literal('underscore'),\n ],\n {\n description:\n 'Tab leader style: dot (dotted), hyphen (dashed), middleDot, none (blank), or underscore',\n }\n);\n\n/**\n * Tab stop type matching docx.js TabStopType\n */\nconst TabStopTypeSchema = Type.Union(\n [\n Type.Literal('left'),\n Type.Literal('right'),\n Type.Literal('center'),\n Type.Literal('bar'),\n Type.Literal('clear'),\n Type.Literal('decimal'),\n Type.Literal('end'),\n Type.Literal('num'),\n Type.Literal('start'),\n ],\n {\n description: 'Tab stop alignment type',\n }\n);\n\n/**\n * Tab stop definition schema\n */\nconst TabStopDefinitionSchema = Type.Object(\n {\n type: TabStopTypeSchema,\n position: Type.Union([\n Type.Number({\n description:\n 'Tab stop position in twips (1/1440 inch). Common: 9026 for right-aligned at page margin',\n }),\n Type.Literal('max', {\n description: 'Use maximum position (TabStopPosition.MAX = 9026 twips)',\n }),\n ]),\n leader: Type.Optional(TabStopLeaderSchema),\n },\n {\n description:\n 'Tab stop configuration with position, alignment, and optional leader',\n additionalProperties: false,\n }\n);\n\n/**\n * TOC style properties schema that extends text formatting properties\n * but EXCLUDES baseStyle to prevent unwanted coupling with Heading styles\n */\nconst TocStylePropertiesSchema = Type.Object(\n {\n font: Type.Optional(\n Type.Union([\n Type.Literal('heading'),\n Type.Literal('body'),\n Type.Literal('mono'),\n Type.Literal('light'),\n ])\n ),\n ...TextFormattingPropertiesSchema.properties,\n // Paragraph-level alignment (not a font property)\n alignment: AlignmentSchema,\n // Tab stops for controlling TOC entry formatting (leader dots, alignment, etc.)\n tabStops: Type.Optional(\n Type.Array(TabStopDefinitionSchema, {\n description:\n 'Tab stops for TOC entries. Use right-aligned tab with leader to create dotted lines to page numbers.',\n default: [{ type: 'right', position: 'max', leader: 'none' }],\n })\n ),\n // Additional properties specific to styles (baseStyle intentionally excluded)\n priority: Type.Optional(Type.Number()),\n followingStyle: Type.Optional(Type.String()),\n widowControl: Type.Optional(Type.Boolean()),\n keepNext: Type.Optional(Type.Boolean()),\n keepLinesTogether: Type.Optional(Type.Boolean()),\n outlineLevel: Type.Optional(Type.Number()),\n borders: Type.Optional(BordersSchema),\n indent: Type.Optional(IndentSchema),\n },\n { additionalProperties: false }\n);\n\nexport const StyleDefinitionsSchema = Type.Object(\n {\n normal: Type.Optional(StylePropertiesSchema),\n heading1: Type.Optional(StylePropertiesSchema),\n heading2: Type.Optional(StylePropertiesSchema),\n heading3: Type.Optional(StylePropertiesSchema),\n heading4: Type.Optional(StylePropertiesSchema),\n heading5: Type.Optional(StylePropertiesSchema),\n heading6: Type.Optional(StylePropertiesSchema),\n title: Type.Optional(StylePropertiesSchema),\n subtitle: Type.Optional(StylePropertiesSchema),\n // TOC entry styles (used by Word to format TOC entries)\n // Note: TOC styles use TocStylePropertiesSchema which excludes baseStyle to prevent coupling with Headings\n TOC1: Type.Optional(TocStylePropertiesSchema),\n TOC2: Type.Optional(TocStylePropertiesSchema),\n TOC3: Type.Optional(TocStylePropertiesSchema),\n TOC4: Type.Optional(TocStylePropertiesSchema),\n TOC5: Type.Optional(TocStylePropertiesSchema),\n TOC6: Type.Optional(TocStylePropertiesSchema),\n },\n {\n additionalProperties: StylePropertiesSchema,\n description:\n 'Style definitions supporting predefined styles (normal, heading1..6, title, subtitle), TOC entry styles (TOC1..TOC6), and arbitrary custom styles.',\n }\n);\n\n// ============================================================================\n// Heading Definition Schema\n// ============================================================================\n\n/**\n * Heading definition schema that uses the same properties as StylePropertiesSchema\n * but adds a required 'level' field.\n */\nexport const HeadingDefinitionSchema = Type.Object(\n {\n level: Type.Union([\n Type.Literal(1),\n Type.Literal(2),\n Type.Literal(3),\n Type.Literal(4),\n Type.Literal(5),\n Type.Literal(6),\n ]),\n ...StylePropertiesSchema.properties,\n },\n { additionalProperties: false }\n);\n\n// ============================================================================\n// Component Defaults Schemas (imported from component-defaults.ts to avoid\n// circular deps: report.ts needs ComponentDefaultsSchema, but the old location\n// here imported from the components barrel which re-exports report.ts)\n// ============================================================================\n\nimport { ComponentDefaultsSchema } from './component-defaults';\n\nexport {\n HeadingComponentDefaultsSchema,\n ParagraphComponentDefaultsSchema,\n ImageComponentDefaultsSchema,\n StatisticComponentDefaultsSchema,\n TableComponentDefaultsSchema,\n SectionComponentDefaultsSchema,\n ColumnsComponentDefaultsSchema,\n ListComponentDefaultsSchema,\n ComponentDefaultsSchema,\n} from './component-defaults';\n\n// ============================================================================\n// Theme Config Schema\n// ============================================================================\n\nexport const ThemeConfigSchema = Type.Object(\n {\n $schema: Type.Optional(Type.String()),\n name: Type.String(),\n displayName: Type.String(),\n description: Type.String(),\n version: Type.String(),\n colors: Type.Object(\n {\n primary: HexColorSchema,\n secondary: HexColorSchema,\n accent: HexColorSchema,\n text: HexColorSchema,\n background: HexColorSchema,\n border: HexColorSchema,\n // Additional semantic color names\n textPrimary: HexColorSchema,\n textSecondary: HexColorSchema,\n textMuted: HexColorSchema,\n borderPrimary: HexColorSchema,\n borderSecondary: HexColorSchema,\n backgroundPrimary: HexColorSchema,\n backgroundSecondary: HexColorSchema,\n // Extra chart-series slots, named to match the PPTX theme so both\n // formats share one palette vocabulary. Optional: the bundled DOCX\n // themes leave them unset and charts skip the empty slots.\n accent4: Type.Optional(HexColorSchema),\n accent5: Type.Optional(HexColorSchema),\n accent6: Type.Optional(HexColorSchema),\n },\n { additionalProperties: false }\n ),\n fonts: FontsSchema,\n page: PageSchema,\n styles: Type.Optional(StyleDefinitionsSchema),\n componentDefaults: Type.Optional(ComponentDefaultsSchema),\n // House-style \"known words\" allowlist (whole-word, case-insensitive) that\n // should never be flagged as misspelled. The document's `noProofWords` is\n // merged on top of this at render time.\n noProofWords: Type.Optional(\n Type.Array(Type.String({ minLength: 1 }), {\n description:\n 'Words that should never be flagged as misspelled (whole-word, case-insensitive).',\n })\n ),\n },\n {\n additionalProperties: false,\n description: 'Theme configuration',\n }\n);\n\n// ============================================================================\n// TypeScript Types\n// ============================================================================\n\nexport type ThemeConfigJson = Static<typeof ThemeConfigSchema>;\nexport type DocumentMargins = Static<typeof DocumentMarginsSchema>;\nexport type PageDimensions = Static<typeof PageDimensionsSchema>;\nexport type Page = Static<typeof PageSchema>;\nexport type FontDefinition = Static<typeof FontDefinitionSchema>;\nexport type Fonts = Static<typeof FontsSchema>;\nexport type StyleDefinitions = Static<typeof StyleDefinitionsSchema>;\nexport type HeadingDefinition = Static<typeof HeadingDefinitionSchema>;\nexport type {\n HeadingComponentDefaults,\n ParagraphComponentDefaults,\n ImageComponentDefaults,\n StatisticComponentDefaults,\n TableComponentDefaults,\n SectionComponentDefaults,\n ColumnsComponentDefaults,\n ListComponentDefaults,\n ComponentDefaults,\n} from './component-defaults';\n\n// ============================================================================\n// Validation Function\n// ============================================================================\n\nimport { Value } from '@sinclair/typebox/value';\n\nexport function isValidThemeConfig(data: unknown): data is ThemeConfigJson {\n return Value.Check(ThemeConfigSchema, data);\n}\n\n// ============================================================================\n// Minimal Theme Scaffold\n// ============================================================================\n\n/**\n * Build a schema-complete theme to start from.\n *\n * Lives next to `ThemeConfigSchema` on purpose: the return type is the schema's\n * `Static` type, so a required property added to the schema breaks the build\n * here instead of shipping a scaffold that only fails at validation time.\n * Colour patterns are runtime-only, so `theme-scaffold.test.ts` validates the\n * result against the schema as well.\n *\n * Browser-safe (no Node built-ins), so the playground can scaffold new themes\n * from the same source as the CLI.\n *\n * @param name - Theme identifier; defaults to `minimal-theme`\n */\nexport function createMinimalTheme(\n name: string = 'minimal-theme'\n): ThemeConfigJson {\n return {\n name,\n displayName:\n name\n .split(/[-_\\s]+/)\n .filter(Boolean)\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ') || name,\n description: 'A minimal theme with basic styling',\n version: '1.0.0',\n colors: {\n primary: '#2563EB',\n secondary: '#64748B',\n accent: '#F8FAFC',\n text: '#334155',\n background: '#FFFFFF',\n border: '#E2E8F0',\n textPrimary: '#334155',\n textSecondary: '#64748B',\n textMuted: '#94A3B8',\n borderPrimary: '#CBD5E1',\n borderSecondary: '#E2E8F0',\n backgroundPrimary: '#FFFFFF',\n backgroundSecondary: '#F8FAFC',\n },\n fonts: {\n heading: { family: 'Arial', size: 14 },\n body: { family: 'Arial', size: 11 },\n mono: { family: 'Courier New', size: 10 },\n light: { family: 'Arial', size: 10 },\n },\n page: {\n size: 'A4',\n margins: {\n top: 1440,\n bottom: 1440,\n left: 1440,\n right: 1440,\n header: 720,\n footer: 720,\n gutter: 0,\n },\n },\n styles: {\n normal: {\n font: 'body',\n size: 11,\n color: '#334155',\n alignment: 'left',\n lineSpacing: { type: 'multiple', value: 1.15 },\n spacing: { after: 8 },\n },\n },\n };\n}\n"],"mappings":";;;;;;;;;;;AAKA,SAAS,YAAoB;AAsc7B,SAAS,aAAa;AA1bf,IAAM,wBAAwB,KAAK;AAAA,EACxC;AAAA,IACE,KAAK,KAAK,OAAO,EAAE,SAAS,EAAE,CAAC;AAAA,IAC/B,QAAQ,KAAK,OAAO,EAAE,SAAS,EAAE,CAAC;AAAA,IAClC,MAAM,KAAK,OAAO,EAAE,SAAS,EAAE,CAAC;AAAA,IAChC,OAAO,KAAK,OAAO,EAAE,SAAS,EAAE,CAAC;AAAA,IACjC,QAAQ,KAAK,OAAO,EAAE,SAAS,EAAE,CAAC;AAAA,IAClC,QAAQ,KAAK,OAAO,EAAE,SAAS,EAAE,CAAC;AAAA,IAClC,QAAQ,KAAK,OAAO,EAAE,SAAS,EAAE,CAAC;AAAA,EACpC;AAAA,EACA,EAAE,sBAAsB,OAAO,aAAa,gCAAgC;AAC9E;AAMO,IAAM,uBAAuB,KAAK;AAAA,EACvC;AAAA,IACE,OAAO,KAAK,OAAO,EAAE,SAAS,EAAE,CAAC;AAAA,IACjC,QAAQ,KAAK,OAAO,EAAE,SAAS,EAAE,CAAC;AAAA,EACpC;AAAA,EACA,EAAE,sBAAsB,OAAO,aAAa,2BAA2B;AACzE;AAMO,IAAM,aAAa,KAAK;AAAA,EAC7B;AAAA,IACE,MAAM,KAAK;AAAA,MACT;AAAA,QACE,KAAK,QAAQ,IAAI;AAAA,QACjB,KAAK,QAAQ,IAAI;AAAA,QACjB,KAAK,QAAQ,QAAQ;AAAA,QACrB,KAAK,QAAQ,OAAO;AAAA,QACpB,KAAK;AAAA,UACH;AAAA,YACE,OAAO,KAAK,OAAO,EAAE,SAAS,EAAE,CAAC;AAAA,YACjC,QAAQ,KAAK,OAAO,EAAE,SAAS,EAAE,CAAC;AAAA,UACpC;AAAA,UACA,EAAE,sBAAsB,MAAM;AAAA,QAChC;AAAA,MACF;AAAA,MACA,EAAE,aAAa,0CAA0C;AAAA,IAC3D;AAAA,IACA,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,sBAAsB;AAAA,EACxB;AACF;AASO,IAAM,cAAc,KAAK;AAAA,EAC9B;AAAA,IACE,SAAS;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,sBAAsB;AAAA,IACtB,aAAa;AAAA,EACf;AACF;AAOA,IAAM,oBAAoB,KAAK;AAAA,EAC7B;AAAA,IACE,KAAK,QAAQ,QAAQ;AAAA,IACrB,KAAK,QAAQ,gBAAgB;AAAA,IAC7B,KAAK,QAAQ,QAAQ;AAAA,IACrB,KAAK,QAAQ,cAAc;AAAA,IAC3B,KAAK,QAAQ,SAAS;AAAA,IACtB,KAAK,QAAQ,YAAY;AAAA,IACzB,KAAK,QAAQ,QAAQ;AAAA,IACrB,KAAK,QAAQ,QAAQ;AAAA,IACrB,KAAK,QAAQ,YAAY;AAAA,IACzB,KAAK,QAAQ,OAAO;AAAA,IACpB,KAAK,QAAQ,KAAK;AAAA,IAClB,KAAK,QAAQ,MAAM;AAAA,IACnB,KAAK,QAAQ,QAAQ;AAAA,IACrB,KAAK,QAAQ,OAAO;AAAA,IACpB,KAAK,QAAQ,mBAAmB;AAAA,IAChC,KAAK,QAAQ,oBAAoB;AAAA,IACjC,KAAK,QAAQ,mBAAmB;AAAA,IAChC,KAAK,QAAQ,mBAAmB;AAAA,IAChC,KAAK,QAAQ,oBAAoB;AAAA,IACjC,KAAK,QAAQ,mBAAmB;AAAA,IAChC,KAAK,QAAQ,uBAAuB;AAAA,IACpC,KAAK,QAAQ,wBAAwB;AAAA,IACrC,KAAK,QAAQ,uBAAuB;AAAA,IACpC,KAAK,QAAQ,cAAc;AAAA,IAC3B,KAAK,QAAQ,eAAe;AAAA,IAC5B,KAAK,QAAQ,QAAQ;AAAA,IACrB,KAAK,QAAQ,MAAM;AAAA,EACrB;AAAA,EACA,EAAE,aAAa,yBAAyB;AAC1C;AAEA,IAAM,yBAAyB,KAAK;AAAA,EAClC;AAAA,IACE,OAAO;AAAA,IACP,MAAM,KAAK,OAAO;AAAA,MAChB,SAAS;AAAA,MACT,aAAa;AAAA,IACf,CAAC;AAAA,IACD,OAAO;AAAA,IACP,OAAO,KAAK;AAAA,MACV,KAAK,OAAO;AAAA,QACV,SAAS;AAAA,QACT,aAAa;AAAA,MACf,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EACA;AAAA,IACE,sBAAsB;AAAA,IACtB,aAAa;AAAA,EACf;AACF;AAEA,IAAM,gBAAgB,KAAK;AAAA,EACzB;AAAA,IACE,KAAK,KAAK,SAAS,sBAAsB;AAAA,IACzC,QAAQ,KAAK,SAAS,sBAAsB;AAAA,IAC5C,MAAM,KAAK,SAAS,sBAAsB;AAAA,IAC1C,OAAO,KAAK,SAAS,sBAAsB;AAAA,EAC7C;AAAA,EACA,EAAE,sBAAsB,OAAO,aAAa,+BAA+B;AAC7E;AAGA,IAAM,kBAAkB,KAAK;AAAA,EAC3B,KAAK,MAAM;AAAA,IACT,KAAK,QAAQ,MAAM;AAAA,IACnB,KAAK,QAAQ,QAAQ;AAAA,IACrB,KAAK,QAAQ,OAAO;AAAA,IACpB,KAAK,QAAQ,SAAS;AAAA,EACxB,CAAC;AACH;AAMA,IAAM,wBAAwB,KAAK;AAAA,EACjC;AAAA,IACE,MAAM,KAAK;AAAA,MACT,KAAK,MAAM;AAAA,QACT,KAAK,QAAQ,SAAS;AAAA,QACtB,KAAK,QAAQ,MAAM;AAAA,QACnB,KAAK,QAAQ,MAAM;AAAA,QACnB,KAAK,QAAQ,OAAO;AAAA,MACtB,CAAC;AAAA,IACH;AAAA,IACA,GAAG,+BAA+B;AAAA;AAAA,IAElC,WAAW;AAAA;AAAA,IAEX,UAAU,KAAK,SAAS,KAAK,OAAO,CAAC;AAAA,IACrC,WAAW,KAAK,SAAS,KAAK,OAAO,CAAC;AAAA,IACtC,gBAAgB,KAAK,SAAS,KAAK,OAAO,CAAC;AAAA,IAC3C,cAAc,KAAK,SAAS,KAAK,QAAQ,CAAC;AAAA,IAC1C,UAAU,KAAK,SAAS,KAAK,QAAQ,CAAC;AAAA,IACtC,mBAAmB,KAAK,SAAS,KAAK,QAAQ,CAAC;AAAA,IAC/C,cAAc,KAAK,SAAS,KAAK,OAAO,CAAC;AAAA,IACzC,SAAS,KAAK,SAAS,aAAa;AAAA,IACpC,QAAQ,KAAK,SAAS,YAAY;AAAA,EACpC;AAAA,EACA,EAAE,sBAAsB,MAAM;AAChC;AASA,IAAM,sBAAsB,KAAK;AAAA,EAC/B;AAAA,IACE,KAAK,QAAQ,KAAK;AAAA,IAClB,KAAK,QAAQ,QAAQ;AAAA,IACrB,KAAK,QAAQ,WAAW;AAAA,IACxB,KAAK,QAAQ,MAAM;AAAA,IACnB,KAAK,QAAQ,YAAY;AAAA,EAC3B;AAAA,EACA;AAAA,IACE,aACE;AAAA,EACJ;AACF;AAKA,IAAM,oBAAoB,KAAK;AAAA,EAC7B;AAAA,IACE,KAAK,QAAQ,MAAM;AAAA,IACnB,KAAK,QAAQ,OAAO;AAAA,IACpB,KAAK,QAAQ,QAAQ;AAAA,IACrB,KAAK,QAAQ,KAAK;AAAA,IAClB,KAAK,QAAQ,OAAO;AAAA,IACpB,KAAK,QAAQ,SAAS;AAAA,IACtB,KAAK,QAAQ,KAAK;AAAA,IAClB,KAAK,QAAQ,KAAK;AAAA,IAClB,KAAK,QAAQ,OAAO;AAAA,EACtB;AAAA,EACA;AAAA,IACE,aAAa;AAAA,EACf;AACF;AAKA,IAAM,0BAA0B,KAAK;AAAA,EACnC;AAAA,IACE,MAAM;AAAA,IACN,UAAU,KAAK,MAAM;AAAA,MACnB,KAAK,OAAO;AAAA,QACV,aACE;AAAA,MACJ,CAAC;AAAA,MACD,KAAK,QAAQ,OAAO;AAAA,QAClB,aAAa;AAAA,MACf,CAAC;AAAA,IACH,CAAC;AAAA,IACD,QAAQ,KAAK,SAAS,mBAAmB;AAAA,EAC3C;AAAA,EACA;AAAA,IACE,aACE;AAAA,IACF,sBAAsB;AAAA,EACxB;AACF;AAMA,IAAM,2BAA2B,KAAK;AAAA,EACpC;AAAA,IACE,MAAM,KAAK;AAAA,MACT,KAAK,MAAM;AAAA,QACT,KAAK,QAAQ,SAAS;AAAA,QACtB,KAAK,QAAQ,MAAM;AAAA,QACnB,KAAK,QAAQ,MAAM;AAAA,QACnB,KAAK,QAAQ,OAAO;AAAA,MACtB,CAAC;AAAA,IACH;AAAA,IACA,GAAG,+BAA+B;AAAA;AAAA,IAElC,WAAW;AAAA;AAAA,IAEX,UAAU,KAAK;AAAA,MACb,KAAK,MAAM,yBAAyB;AAAA,QAClC,aACE;AAAA,QACF,SAAS,CAAC,EAAE,MAAM,SAAS,UAAU,OAAO,QAAQ,OAAO,CAAC;AAAA,MAC9D,CAAC;AAAA,IACH;AAAA;AAAA,IAEA,UAAU,KAAK,SAAS,KAAK,OAAO,CAAC;AAAA,IACrC,gBAAgB,KAAK,SAAS,KAAK,OAAO,CAAC;AAAA,IAC3C,cAAc,KAAK,SAAS,KAAK,QAAQ,CAAC;AAAA,IAC1C,UAAU,KAAK,SAAS,KAAK,QAAQ,CAAC;AAAA,IACtC,mBAAmB,KAAK,SAAS,KAAK,QAAQ,CAAC;AAAA,IAC/C,cAAc,KAAK,SAAS,KAAK,OAAO,CAAC;AAAA,IACzC,SAAS,KAAK,SAAS,aAAa;AAAA,IACpC,QAAQ,KAAK,SAAS,YAAY;AAAA,EACpC;AAAA,EACA,EAAE,sBAAsB,MAAM;AAChC;AAEO,IAAM,yBAAyB,KAAK;AAAA,EACzC;AAAA,IACE,QAAQ,KAAK,SAAS,qBAAqB;AAAA,IAC3C,UAAU,KAAK,SAAS,qBAAqB;AAAA,IAC7C,UAAU,KAAK,SAAS,qBAAqB;AAAA,IAC7C,UAAU,KAAK,SAAS,qBAAqB;AAAA,IAC7C,UAAU,KAAK,SAAS,qBAAqB;AAAA,IAC7C,UAAU,KAAK,SAAS,qBAAqB;AAAA,IAC7C,UAAU,KAAK,SAAS,qBAAqB;AAAA,IAC7C,OAAO,KAAK,SAAS,qBAAqB;AAAA,IAC1C,UAAU,KAAK,SAAS,qBAAqB;AAAA;AAAA;AAAA,IAG7C,MAAM,KAAK,SAAS,wBAAwB;AAAA,IAC5C,MAAM,KAAK,SAAS,wBAAwB;AAAA,IAC5C,MAAM,KAAK,SAAS,wBAAwB;AAAA,IAC5C,MAAM,KAAK,SAAS,wBAAwB;AAAA,IAC5C,MAAM,KAAK,SAAS,wBAAwB;AAAA,IAC5C,MAAM,KAAK,SAAS,wBAAwB;AAAA,EAC9C;AAAA,EACA;AAAA,IACE,sBAAsB;AAAA,IACtB,aACE;AAAA,EACJ;AACF;AAUO,IAAM,0BAA0B,KAAK;AAAA,EAC1C;AAAA,IACE,OAAO,KAAK,MAAM;AAAA,MAChB,KAAK,QAAQ,CAAC;AAAA,MACd,KAAK,QAAQ,CAAC;AAAA,MACd,KAAK,QAAQ,CAAC;AAAA,MACd,KAAK,QAAQ,CAAC;AAAA,MACd,KAAK,QAAQ,CAAC;AAAA,MACd,KAAK,QAAQ,CAAC;AAAA,IAChB,CAAC;AAAA,IACD,GAAG,sBAAsB;AAAA,EAC3B;AAAA,EACA,EAAE,sBAAsB,MAAM;AAChC;AA0BO,IAAM,oBAAoB,KAAK;AAAA,EACpC;AAAA,IACE,SAAS,KAAK,SAAS,KAAK,OAAO,CAAC;AAAA,IACpC,MAAM,KAAK,OAAO;AAAA,IAClB,aAAa,KAAK,OAAO;AAAA,IACzB,aAAa,KAAK,OAAO;AAAA,IACzB,SAAS,KAAK,OAAO;AAAA,IACrB,QAAQ,KAAK;AAAA,MACX;AAAA,QACE,SAAS;AAAA,QACT,WAAW;AAAA,QACX,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,QAAQ;AAAA;AAAA,QAER,aAAa;AAAA,QACb,eAAe;AAAA,QACf,WAAW;AAAA,QACX,eAAe;AAAA,QACf,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,qBAAqB;AAAA;AAAA;AAAA;AAAA,QAIrB,SAAS,KAAK,SAAS,cAAc;AAAA,QACrC,SAAS,KAAK,SAAS,cAAc;AAAA,QACrC,SAAS,KAAK,SAAS,cAAc;AAAA,MACvC;AAAA,MACA,EAAE,sBAAsB,MAAM;AAAA,IAChC;AAAA,IACA,OAAO;AAAA,IACP,MAAM;AAAA,IACN,QAAQ,KAAK,SAAS,sBAAsB;AAAA,IAC5C,mBAAmB,KAAK,SAAS,uBAAuB;AAAA;AAAA;AAAA;AAAA,IAIxD,cAAc,KAAK;AAAA,MACjB,KAAK,MAAM,KAAK,OAAO,EAAE,WAAW,EAAE,CAAC,GAAG;AAAA,QACxC,aACE;AAAA,MACJ,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EACA;AAAA,IACE,sBAAsB;AAAA,IACtB,aAAa;AAAA,EACf;AACF;AAgCO,SAAS,mBAAmB,MAAwC;AACzE,SAAO,MAAM,MAAM,mBAAmB,IAAI;AAC5C;AAoBO,SAAS,mBACd,OAAe,iBACE;AACjB,SAAO;AAAA,IACL;AAAA,IACA,aACE,KACG,MAAM,SAAS,EACf,OAAO,OAAO,EACd,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,EAAE,YAAY,IAAI,KAAK,MAAM,CAAC,CAAC,EAC1D,KAAK,GAAG,KAAK;AAAA,IAClB,aAAa;AAAA,IACb,SAAS;AAAA,IACT,QAAQ;AAAA,MACN,SAAS;AAAA,MACT,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,eAAe;AAAA,MACf,WAAW;AAAA,MACX,eAAe;AAAA,MACf,iBAAiB;AAAA,MACjB,mBAAmB;AAAA,MACnB,qBAAqB;AAAA,IACvB;AAAA,IACA,OAAO;AAAA,MACL,SAAS,EAAE,QAAQ,SAAS,MAAM,GAAG;AAAA,MACrC,MAAM,EAAE,QAAQ,SAAS,MAAM,GAAG;AAAA,MAClC,MAAM,EAAE,QAAQ,eAAe,MAAM,GAAG;AAAA,MACxC,OAAO,EAAE,QAAQ,SAAS,MAAM,GAAG;AAAA,IACrC;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,QACP,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,MACN,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,aAAa,EAAE,MAAM,YAAY,OAAO,KAAK;AAAA,QAC7C,SAAS,EAAE,OAAO,EAAE;AAAA,MACtB;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ComponentDefinitionSchema
3
- } from "./chunk-QR4I4ZNV.js";
3
+ } from "./chunk-2TQ74H6S.js";
4
4
 
5
5
  // src/schemas/api.ts
6
6
  import { Type } from "@sinclair/typebox";
@@ -94,4 +94,4 @@ export {
94
94
  GenerateDocumentResponseSchema,
95
95
  ValidateDocumentResponseSchema
96
96
  };
97
- //# sourceMappingURL=chunk-K5USZWUG.js.map
97
+ //# sourceMappingURL=chunk-7636IMZ5.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ComponentDefinitionSchema
3
- } from "./chunk-QR4I4ZNV.js";
3
+ } from "./chunk-2TQ74H6S.js";
4
4
 
5
5
  // src/schemas/document.ts
6
6
  var JsonComponentDefinitionSchema = ComponentDefinitionSchema;
@@ -31,4 +31,4 @@ export {
31
31
  JsonComponentDefinitionSchema,
32
32
  JSON_SCHEMA_URLS
33
33
  };
34
- //# sourceMappingURL=chunk-YSDZJNWV.js.map
34
+ //# sourceMappingURL=chunk-FNCLWYTA.js.map
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  ThemeConfigSchema
3
- } from "./chunk-QNIC7H4H.js";
3
+ } from "./chunk-3JOBFRYR.js";
4
4
  import {
5
5
  documentValidator,
6
6
  strictDocumentValidator,
7
7
  validateAgainstSchema,
8
8
  validateJson
9
- } from "./chunk-CO76J5GZ.js";
9
+ } from "./chunk-HTOT7PVC.js";
10
10
  import {
11
11
  ComponentDefinitionSchema
12
- } from "./chunk-QR4I4ZNV.js";
12
+ } from "./chunk-2TQ74H6S.js";
13
13
  import {
14
14
  CustomComponentDefinitionSchema
15
15
  } from "./chunk-7GGTZ4TA.js";
16
16
  import {
17
17
  ReportPropsSchema
18
- } from "./chunk-3KZ3BI25.js";
18
+ } from "./chunk-S4TSENRQ.js";
19
19
  import {
20
20
  ColumnsPropsSchema,
21
21
  HeadingPropsSchema,
@@ -25,7 +25,7 @@ import {
25
25
  SectionPropsSchema,
26
26
  StatisticPropsSchema,
27
27
  TablePropsSchema
28
- } from "./chunk-2NLQPZ4G.js";
28
+ } from "./chunk-KNMPYZUO.js";
29
29
 
30
30
  // src/validation/unified/index.ts
31
31
  import {
@@ -416,4 +416,4 @@ export {
416
416
  createErrorConfig,
417
417
  formatErrorMessage
418
418
  };
419
- //# sourceMappingURL=chunk-RV6RFQQP.js.map
419
+ //# sourceMappingURL=chunk-GJBRYTGZ.js.map
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  ComponentDefinitionSchema,
3
3
  StandardComponentDefinitionSchema
4
- } from "./chunk-QR4I4ZNV.js";
4
+ } from "./chunk-2TQ74H6S.js";
5
5
  import {
6
6
  CustomComponentDefinitionSchema
7
7
  } from "./chunk-7GGTZ4TA.js";
8
8
  import {
9
9
  ReportPropsSchema,
10
10
  STANDARD_COMPONENTS_REGISTRY
11
- } from "./chunk-3KZ3BI25.js";
11
+ } from "./chunk-S4TSENRQ.js";
12
12
 
13
13
  // src/validation/unified/error-transformer.ts
14
14
  import {
@@ -813,4 +813,4 @@ export {
813
813
  validateJsonComponent,
814
814
  validateDocumentWithSchema
815
815
  };
816
- //# sourceMappingURL=chunk-CO76J5GZ.js.map
816
+ //# sourceMappingURL=chunk-HTOT7PVC.js.map
@@ -1041,7 +1041,7 @@ function createTablePropsSchema(componentRef) {
1041
1041
  ),
1042
1042
  repeatHeaderOnPageBreak: Type7.Optional(
1043
1043
  Type7.Boolean({
1044
- description: "Repeat the header row on each page when the table spans multiple pages. Defaults to false.",
1044
+ description: "Repeat the header row on each page when the table spans multiple pages. Defaults to true.",
1045
1045
  default: true
1046
1046
  })
1047
1047
  )
@@ -1459,4 +1459,4 @@ export {
1459
1459
  ListComponentDefaultsSchema,
1460
1460
  ComponentDefaultsSchema
1461
1461
  };
1462
- //# sourceMappingURL=chunk-2NLQPZ4G.js.map
1462
+ //# sourceMappingURL=chunk-KNMPYZUO.js.map