@hirokisakabe/pom 0.2.0 → 1.0.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 (82) hide show
  1. package/README.md +3 -2
  2. package/dist/buildPptx.d.ts +2 -2
  3. package/dist/buildPptx.d.ts.map +1 -1
  4. package/dist/buildPptx.js +4 -66
  5. package/dist/calcYogaLayout/calcYogaLayout.d.ts.map +1 -1
  6. package/dist/calcYogaLayout/calcYogaLayout.js +49 -84
  7. package/dist/calcYogaLayout/fontLoader.d.ts +20 -0
  8. package/dist/calcYogaLayout/fontLoader.d.ts.map +1 -0
  9. package/dist/calcYogaLayout/fontLoader.js +59 -0
  10. package/dist/calcYogaLayout/fonts/notoSansJPBold.d.ts +7 -0
  11. package/dist/calcYogaLayout/fonts/notoSansJPBold.d.ts.map +1 -0
  12. package/dist/calcYogaLayout/fonts/notoSansJPBold.js +6 -0
  13. package/dist/calcYogaLayout/fonts/notoSansJPRegular.d.ts +7 -0
  14. package/dist/calcYogaLayout/fonts/notoSansJPRegular.d.ts.map +1 -0
  15. package/dist/calcYogaLayout/fonts/notoSansJPRegular.js +6 -0
  16. package/dist/calcYogaLayout/measureText.d.ts +1 -1
  17. package/dist/calcYogaLayout/measureText.d.ts.map +1 -1
  18. package/dist/calcYogaLayout/measureText.js +65 -114
  19. package/dist/inputSchema.d.ts +269 -10
  20. package/dist/inputSchema.d.ts.map +1 -1
  21. package/dist/inputSchema.js +94 -15
  22. package/dist/renderPptx/nodes/box.d.ts +1 -0
  23. package/dist/renderPptx/nodes/box.d.ts.map +1 -0
  24. package/dist/renderPptx/nodes/box.js +2 -0
  25. package/dist/renderPptx/nodes/chart.d.ts +8 -0
  26. package/dist/renderPptx/nodes/chart.d.ts.map +1 -0
  27. package/dist/renderPptx/nodes/chart.js +23 -0
  28. package/dist/renderPptx/nodes/flow.d.ts +8 -0
  29. package/dist/renderPptx/nodes/flow.d.ts.map +1 -0
  30. package/dist/renderPptx/nodes/flow.js +208 -0
  31. package/dist/renderPptx/nodes/image.d.ts +8 -0
  32. package/dist/renderPptx/nodes/image.d.ts.map +1 -0
  33. package/dist/renderPptx/nodes/image.js +17 -0
  34. package/dist/renderPptx/nodes/index.d.ts +11 -0
  35. package/dist/renderPptx/nodes/index.d.ts.map +1 -0
  36. package/dist/renderPptx/nodes/index.js +10 -0
  37. package/dist/renderPptx/nodes/matrix.d.ts +8 -0
  38. package/dist/renderPptx/nodes/matrix.d.ts.map +1 -0
  39. package/dist/renderPptx/nodes/matrix.js +150 -0
  40. package/dist/renderPptx/nodes/processArrow.d.ts +8 -0
  41. package/dist/renderPptx/nodes/processArrow.d.ts.map +1 -0
  42. package/dist/renderPptx/nodes/processArrow.js +75 -0
  43. package/dist/renderPptx/nodes/shape.d.ts +8 -0
  44. package/dist/renderPptx/nodes/shape.d.ts.map +1 -0
  45. package/dist/renderPptx/nodes/shape.js +49 -0
  46. package/dist/renderPptx/nodes/table.d.ts +8 -0
  47. package/dist/renderPptx/nodes/table.d.ts.map +1 -0
  48. package/dist/renderPptx/nodes/table.js +29 -0
  49. package/dist/renderPptx/nodes/text.d.ts +8 -0
  50. package/dist/renderPptx/nodes/text.d.ts.map +1 -0
  51. package/dist/renderPptx/nodes/text.js +5 -0
  52. package/dist/renderPptx/nodes/timeline.d.ts +8 -0
  53. package/dist/renderPptx/nodes/timeline.d.ts.map +1 -0
  54. package/dist/renderPptx/nodes/timeline.js +157 -0
  55. package/dist/renderPptx/nodes/tree.d.ts +8 -0
  56. package/dist/renderPptx/nodes/tree.d.ts.map +1 -0
  57. package/dist/renderPptx/nodes/tree.js +223 -0
  58. package/dist/renderPptx/renderPptx.d.ts +3 -2
  59. package/dist/renderPptx/renderPptx.d.ts.map +1 -1
  60. package/dist/renderPptx/renderPptx.js +204 -945
  61. package/dist/renderPptx/types.d.ts +10 -0
  62. package/dist/renderPptx/types.d.ts.map +1 -0
  63. package/dist/renderPptx/types.js +1 -0
  64. package/dist/renderPptx/utils/backgroundBorder.d.ts +8 -0
  65. package/dist/renderPptx/utils/backgroundBorder.d.ts.map +1 -0
  66. package/dist/renderPptx/utils/backgroundBorder.js +44 -0
  67. package/dist/renderPptx/utils/index.d.ts +6 -0
  68. package/dist/renderPptx/utils/index.d.ts.map +1 -0
  69. package/dist/renderPptx/utils/index.js +3 -0
  70. package/dist/renderPptx/utils/shapeDrawing.d.ts +27 -0
  71. package/dist/renderPptx/utils/shapeDrawing.d.ts.map +1 -0
  72. package/dist/renderPptx/utils/shapeDrawing.js +36 -0
  73. package/dist/renderPptx/utils/textDrawing.d.ts +20 -0
  74. package/dist/renderPptx/utils/textDrawing.d.ts.map +1 -0
  75. package/dist/renderPptx/utils/textDrawing.js +20 -0
  76. package/dist/schema.d.ts +2 -2
  77. package/dist/schema.d.ts.map +1 -1
  78. package/dist/schema.js +2 -2
  79. package/dist/types.d.ts +258 -16
  80. package/dist/types.d.ts.map +1 -1
  81. package/dist/types.js +74 -15
  82. package/package.json +3 -2
package/dist/types.js CHANGED
@@ -535,19 +535,78 @@ export const positionedNodeSchema = z.lazy(() => z.union([
535
535
  flowNodeSchema.merge(positionedBaseSchema),
536
536
  processArrowNodeSchema.merge(positionedBaseSchema),
537
537
  ]));
538
- // ===== Master Slide Options =====
539
- export const pageNumberPositionSchema = z.enum(["left", "center", "right"]);
540
- export const masterSlideOptionsSchema = z.object({
541
- header: z.lazy(() => pomNodeSchema).optional(),
542
- footer: z.lazy(() => pomNodeSchema).optional(),
543
- pageNumber: z
544
- .object({
545
- position: pageNumberPositionSchema,
546
- })
547
- .optional(),
548
- date: z
549
- .object({
550
- value: z.string(),
551
- })
552
- .optional(),
538
+ // ===== Slide Master Options =====
539
+ export const masterTextObjectSchema = z.object({
540
+ type: z.literal("text"),
541
+ text: z.string(),
542
+ x: z.number(),
543
+ y: z.number(),
544
+ w: z.number(),
545
+ h: z.number(),
546
+ fontPx: z.number().optional(),
547
+ fontFamily: z.string().optional(),
548
+ color: z.string().optional(),
549
+ bold: z.boolean().optional(),
550
+ alignText: z.enum(["left", "center", "right"]).optional(),
551
+ });
552
+ export const masterImageObjectSchema = z.object({
553
+ type: z.literal("image"),
554
+ src: z.string(),
555
+ x: z.number(),
556
+ y: z.number(),
557
+ w: z.number(),
558
+ h: z.number(),
559
+ });
560
+ export const masterRectObjectSchema = z.object({
561
+ type: z.literal("rect"),
562
+ x: z.number(),
563
+ y: z.number(),
564
+ w: z.number(),
565
+ h: z.number(),
566
+ fill: fillStyleSchema.optional(),
567
+ border: borderStyleSchema.optional(),
568
+ });
569
+ export const masterLineObjectSchema = z.object({
570
+ type: z.literal("line"),
571
+ x: z.number(),
572
+ y: z.number(),
573
+ w: z.number(),
574
+ h: z.number(),
575
+ line: borderStyleSchema.optional(),
576
+ });
577
+ export const masterObjectSchema = z.discriminatedUnion("type", [
578
+ masterTextObjectSchema,
579
+ masterImageObjectSchema,
580
+ masterRectObjectSchema,
581
+ masterLineObjectSchema,
582
+ ]);
583
+ export const slideNumberOptionsSchema = z.object({
584
+ x: z.number(),
585
+ y: z.number(),
586
+ w: z.number().optional(),
587
+ h: z.number().optional(),
588
+ fontPx: z.number().optional(),
589
+ fontFamily: z.string().optional(),
590
+ color: z.string().optional(),
591
+ });
592
+ export const slideMasterBackgroundSchema = z.union([
593
+ z.object({ color: z.string() }),
594
+ z.object({ path: z.string() }),
595
+ z.object({ data: z.string() }),
596
+ ]);
597
+ export const slideMasterMarginSchema = z.union([
598
+ z.number(),
599
+ z.object({
600
+ top: z.number().optional(),
601
+ right: z.number().optional(),
602
+ bottom: z.number().optional(),
603
+ left: z.number().optional(),
604
+ }),
605
+ ]);
606
+ export const slideMasterOptionsSchema = z.object({
607
+ title: z.string().optional(),
608
+ background: slideMasterBackgroundSchema.optional(),
609
+ margin: slideMasterMarginSchema.optional(),
610
+ objects: z.array(masterObjectSchema).optional(),
611
+ slideNumber: slideNumberOptionsSchema.optional(),
553
612
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hirokisakabe/pom",
3
- "version": "0.2.0",
3
+ "version": "1.0.0",
4
4
  "description": "PowerPoint Object Model - A declarative TypeScript library for creating PowerPoint presentations",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -73,6 +73,7 @@
73
73
  "@changesets/cli": "^2.29.8",
74
74
  "@eslint/js": "^9.39.1",
75
75
  "@types/image-size": "0.7.0",
76
+ "@types/opentype.js": "^1.3.8",
76
77
  "@types/pngjs": "6.0.5",
77
78
  "@vitest/ui": "^4.0.8",
78
79
  "eslint": "^9.39.1",
@@ -87,8 +88,8 @@
87
88
  "vitest": "^4.0.8"
88
89
  },
89
90
  "dependencies": {
90
- "canvas": "3.2.0",
91
91
  "image-size": "2.0.2",
92
+ "opentype.js": "^1.3.4",
92
93
  "pptxgenjs": "4.0.1",
93
94
  "yoga-layout": "3.2.1",
94
95
  "zod": "4.1.12"