dimcode-darwin-x64 0.1.2-beta.1 → 0.1.2

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 (148) hide show
  1. package/bin/dimcode +0 -0
  2. package/package.json +1 -1
  3. package/bin/runtime/sandbox/dim-sandbox-runner +0 -0
  4. package/bin/runtime/sandbox/manifest.json +0 -15
  5. package/bin/skills-assets/deep-investigate/SKILL.md +0 -101
  6. package/bin/skills-assets/deep-investigate/references/prompts.md +0 -75
  7. package/bin/skills-assets/deep-investigate/references/templates.md +0 -73
  8. package/bin/skills-assets/deep-investigate/references/thinking-tools.md +0 -36
  9. package/bin/skills-assets/docs-sprint/SKILL.md +0 -73
  10. package/bin/skills-assets/docs-sprint/agents/openai.yaml +0 -4
  11. package/bin/skills-assets/docs-sprint/references/contract-discipline.md +0 -30
  12. package/bin/skills-assets/docs-sprint/references/delivery-plan.md +0 -162
  13. package/bin/skills-assets/docs-sprint/references/documentation-system.md +0 -109
  14. package/bin/skills-assets/docs-sprint/references/ui-layout.md +0 -73
  15. package/bin/skills-assets/docs-sprint/references/worktree-guide.md +0 -45
  16. package/bin/skills-assets/docx/SKILL.md +0 -273
  17. package/bin/skills-assets/docx/assets/styles/academic_styles.xml +0 -250
  18. package/bin/skills-assets/docx/assets/styles/corporate_styles.xml +0 -284
  19. package/bin/skills-assets/docx/assets/styles/default_styles.xml +0 -449
  20. package/bin/skills-assets/docx/assets/xsd/aesthetic-rules.xsd +0 -470
  21. package/bin/skills-assets/docx/assets/xsd/business-rules.xsd +0 -130
  22. package/bin/skills-assets/docx/assets/xsd/common-types.xsd +0 -159
  23. package/bin/skills-assets/docx/assets/xsd/wml-subset.xsd +0 -589
  24. package/bin/skills-assets/docx/references/cjk_typography.md +0 -357
  25. package/bin/skills-assets/docx/references/cjk_university_template_guide.md +0 -184
  26. package/bin/skills-assets/docx/references/comments_guide.md +0 -191
  27. package/bin/skills-assets/docx/references/design_good_bad_examples.md +0 -829
  28. package/bin/skills-assets/docx/references/design_principles.md +0 -819
  29. package/bin/skills-assets/docx/references/openxml_element_order.md +0 -308
  30. package/bin/skills-assets/docx/references/openxml_encyclopedia_part1.md +0 -4061
  31. package/bin/skills-assets/docx/references/openxml_encyclopedia_part2.md +0 -2820
  32. package/bin/skills-assets/docx/references/openxml_encyclopedia_part3.md +0 -3381
  33. package/bin/skills-assets/docx/references/openxml_namespaces.md +0 -82
  34. package/bin/skills-assets/docx/references/openxml_units.md +0 -72
  35. package/bin/skills-assets/docx/references/scenario_a_create.md +0 -284
  36. package/bin/skills-assets/docx/references/scenario_b_edit_content.md +0 -295
  37. package/bin/skills-assets/docx/references/scenario_c_apply_template.md +0 -456
  38. package/bin/skills-assets/docx/references/track_changes_guide.md +0 -200
  39. package/bin/skills-assets/docx/references/troubleshooting.md +0 -506
  40. package/bin/skills-assets/docx/references/typography_guide.md +0 -294
  41. package/bin/skills-assets/docx/references/xsd_validation_guide.md +0 -158
  42. package/bin/skills-assets/docx/scripts/doc_to_docx.sh +0 -40
  43. package/bin/skills-assets/docx/scripts/docx_preview.sh +0 -37
  44. package/bin/skills-assets/docx/scripts/dotnet/Docx.Cli/Docx.Cli.csproj +0 -19
  45. package/bin/skills-assets/docx/scripts/dotnet/Docx.Cli/Program.cs +0 -18
  46. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Commands/AnalyzeCommand.cs +0 -147
  47. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Commands/ApplyTemplateCommand.cs +0 -322
  48. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Commands/CreateCommand.cs +0 -324
  49. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Commands/DiffCommand.cs +0 -155
  50. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Commands/EditContentCommand.cs +0 -487
  51. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Commands/FixOrderCommand.cs +0 -108
  52. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Commands/MergeRunsCommand.cs +0 -122
  53. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Commands/ValidateCommand.cs +0 -107
  54. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Docx.Core.csproj +0 -15
  55. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/OpenXml/CommentSynchronizer.cs +0 -169
  56. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/OpenXml/ElementOrder.cs +0 -80
  57. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/OpenXml/NamespaceConstants.cs +0 -42
  58. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/OpenXml/RunMerger.cs +0 -81
  59. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/OpenXml/StyleAnalyzer.cs +0 -81
  60. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/OpenXml/TrackChangesHelper.cs +0 -99
  61. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/OpenXml/UnitConverter.cs +0 -23
  62. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/AestheticRecipeSamples.cs +0 -1832
  63. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/AestheticRecipeSamples_Batch1.cs +0 -910
  64. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/AestheticRecipeSamples_Batch2.cs +0 -999
  65. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/AestheticRecipeSamples_Batch3.cs +0 -1048
  66. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/AestheticRecipeSamples_Batch4.cs +0 -1038
  67. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/CharacterFormattingSamples.cs +0 -1020
  68. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/DocumentCreationSamples.cs +0 -1121
  69. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/FieldAndTocSamples.cs +0 -624
  70. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/FootnoteAndCommentSamples.cs +0 -675
  71. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/HeaderFooterSamples.cs +0 -838
  72. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/ImageSamples.cs +0 -917
  73. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/ListAndNumberingSamples.cs +0 -826
  74. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/ParagraphFormattingSamples.cs +0 -1199
  75. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/StyleSystemSamples.cs +0 -1487
  76. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/TableSamples.cs +0 -1163
  77. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Samples/TrackChangesSamples.cs +0 -595
  78. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Typography/CjkHelper.cs +0 -39
  79. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Typography/FontDefaults.cs +0 -24
  80. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Typography/PageSizes.cs +0 -20
  81. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Validation/BusinessRuleValidator.cs +0 -224
  82. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Validation/GateCheckValidator.cs +0 -148
  83. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Validation/ValidationResult.cs +0 -23
  84. package/bin/skills-assets/docx/scripts/dotnet/Docx.Core/Validation/XsdValidator.cs +0 -69
  85. package/bin/skills-assets/docx/scripts/dotnet/Docx.slnx +0 -4
  86. package/bin/skills-assets/docx/scripts/env_check.sh +0 -196
  87. package/bin/skills-assets/docx/scripts/setup.ps1 +0 -274
  88. package/bin/skills-assets/docx/scripts/setup.sh +0 -504
  89. package/bin/skills-assets/pdf/README.md +0 -222
  90. package/bin/skills-assets/pdf/SKILL.md +0 -191
  91. package/bin/skills-assets/pdf/design/design.md +0 -381
  92. package/bin/skills-assets/pdf/scripts/cover.py +0 -1579
  93. package/bin/skills-assets/pdf/scripts/fill_inspect.py +0 -200
  94. package/bin/skills-assets/pdf/scripts/fill_write.py +0 -242
  95. package/bin/skills-assets/pdf/scripts/make.sh +0 -491
  96. package/bin/skills-assets/pdf/scripts/merge.py +0 -112
  97. package/bin/skills-assets/pdf/scripts/palette.py +0 -521
  98. package/bin/skills-assets/pdf/scripts/reformat_parse.py +0 -374
  99. package/bin/skills-assets/pdf/scripts/render_body.py +0 -1052
  100. package/bin/skills-assets/pdf/scripts/render_cover.js +0 -111
  101. package/bin/skills-assets/pptx-generator/SKILL.md +0 -248
  102. package/bin/skills-assets/pptx-generator/references/design-system.md +0 -392
  103. package/bin/skills-assets/pptx-generator/references/editing.md +0 -162
  104. package/bin/skills-assets/pptx-generator/references/pitfalls.md +0 -112
  105. package/bin/skills-assets/pptx-generator/references/pptxgenjs.md +0 -420
  106. package/bin/skills-assets/pptx-generator/references/slide-types.md +0 -413
  107. package/bin/skills-assets/skill-creator/SKILL.md +0 -368
  108. package/bin/skills-assets/skill-creator/agents/openai.yaml +0 -5
  109. package/bin/skills-assets/skill-creator/assets/skill-creator-small.svg +0 -3
  110. package/bin/skills-assets/skill-creator/assets/skill-creator.png +0 -0
  111. package/bin/skills-assets/skill-creator/license.txt +0 -202
  112. package/bin/skills-assets/skill-creator/references/openai_yaml.md +0 -49
  113. package/bin/skills-assets/skill-creator/scripts/generate_openai_yaml.py +0 -226
  114. package/bin/skills-assets/skill-creator/scripts/init_skill.py +0 -397
  115. package/bin/skills-assets/skill-creator/scripts/quick_validate.py +0 -101
  116. package/bin/skills-assets/skill-installer/LICENSE.txt +0 -202
  117. package/bin/skills-assets/skill-installer/SKILL.md +0 -58
  118. package/bin/skills-assets/skill-installer/agents/openai.yaml +0 -5
  119. package/bin/skills-assets/skill-installer/assets/skill-installer-small.svg +0 -3
  120. package/bin/skills-assets/skill-installer/assets/skill-installer.png +0 -0
  121. package/bin/skills-assets/skill-installer/scripts/github_utils.py +0 -21
  122. package/bin/skills-assets/skill-installer/scripts/install-skill-from-github.py +0 -308
  123. package/bin/skills-assets/skill-installer/scripts/list-skills.py +0 -107
  124. package/bin/skills-assets/xlsx/SKILL.md +0 -137
  125. package/bin/skills-assets/xlsx/references/create.md +0 -691
  126. package/bin/skills-assets/xlsx/references/edit.md +0 -684
  127. package/bin/skills-assets/xlsx/references/fix.md +0 -37
  128. package/bin/skills-assets/xlsx/references/format.md +0 -768
  129. package/bin/skills-assets/xlsx/references/ooxml-cheatsheet.md +0 -231
  130. package/bin/skills-assets/xlsx/references/read-analyze.md +0 -97
  131. package/bin/skills-assets/xlsx/references/validate.md +0 -772
  132. package/bin/skills-assets/xlsx/scripts/formula_check.py +0 -422
  133. package/bin/skills-assets/xlsx/scripts/libreoffice_recalc.py +0 -248
  134. package/bin/skills-assets/xlsx/scripts/shared_strings_builder.py +0 -163
  135. package/bin/skills-assets/xlsx/scripts/style_audit.py +0 -575
  136. package/bin/skills-assets/xlsx/scripts/xlsx_add_column.py +0 -395
  137. package/bin/skills-assets/xlsx/scripts/xlsx_insert_row.py +0 -274
  138. package/bin/skills-assets/xlsx/scripts/xlsx_pack.py +0 -87
  139. package/bin/skills-assets/xlsx/scripts/xlsx_reader.py +0 -362
  140. package/bin/skills-assets/xlsx/scripts/xlsx_shift_rows.py +0 -396
  141. package/bin/skills-assets/xlsx/scripts/xlsx_unpack.py +0 -130
  142. package/bin/skills-assets/xlsx/templates/minimal_xlsx/[Content_Types].xml +0 -9
  143. package/bin/skills-assets/xlsx/templates/minimal_xlsx/_rels/.rels +0 -6
  144. package/bin/skills-assets/xlsx/templates/minimal_xlsx/xl/_rels/workbook.xml.rels +0 -19
  145. package/bin/skills-assets/xlsx/templates/minimal_xlsx/xl/sharedStrings.xml +0 -33
  146. package/bin/skills-assets/xlsx/templates/minimal_xlsx/xl/styles.xml +0 -160
  147. package/bin/skills-assets/xlsx/templates/minimal_xlsx/xl/workbook.xml +0 -30
  148. package/bin/skills-assets/xlsx/templates/minimal_xlsx/xl/worksheets/sheet1.xml +0 -70
@@ -1,420 +0,0 @@
1
- # PptxGenJS Tutorial
2
-
3
- ## Setup & Basic Structure
4
-
5
- ```javascript
6
- const pptxgen = require("pptxgenjs");
7
-
8
- let pres = new pptxgen();
9
- pres.layout = 'LAYOUT_16x9'; // or 'LAYOUT_16x10', 'LAYOUT_4x3', 'LAYOUT_WIDE'
10
- pres.author = 'Your Name';
11
- pres.title = 'Presentation Title';
12
-
13
- let slide = pres.addSlide();
14
- slide.addText("Hello World!", { x: 0.5, y: 0.5, fontSize: 36, color: "363636" });
15
-
16
- pres.writeFile({ fileName: "Presentation.pptx" });
17
- ```
18
-
19
- ## Layout Dimensions
20
-
21
- Slide dimensions (coordinates in inches):
22
- - `LAYOUT_16x9`: 10" x 5.625" (default)
23
- - `LAYOUT_16x10`: 10" x 6.25"
24
- - `LAYOUT_4x3`: 10" x 7.5"
25
- - `LAYOUT_WIDE`: 13.3" x 7.5"
26
-
27
- ---
28
-
29
- ## Text & Formatting
30
-
31
- ```javascript
32
- // Basic text
33
- slide.addText("Simple Text", {
34
- x: 1, y: 1, w: 8, h: 2, fontSize: 24, fontFace: "Arial",
35
- color: "363636", bold: true, align: "center", valign: "middle"
36
- });
37
-
38
- // Character spacing (use charSpacing, not letterSpacing which is silently ignored)
39
- slide.addText("SPACED TEXT", { x: 1, y: 1, w: 8, h: 1, charSpacing: 6 });
40
-
41
- // Rich text arrays
42
- slide.addText([
43
- { text: "Bold ", options: { bold: true } },
44
- { text: "Italic ", options: { italic: true } }
45
- ], { x: 1, y: 3, w: 8, h: 1 });
46
-
47
- // Multi-line text (requires breakLine: true)
48
- slide.addText([
49
- { text: "Line 1", options: { breakLine: true } },
50
- { text: "Line 2", options: { breakLine: true } },
51
- { text: "Line 3" } // Last item doesn't need breakLine
52
- ], { x: 0.5, y: 0.5, w: 8, h: 2 });
53
-
54
- // Text box margin (internal padding)
55
- slide.addText("Title", {
56
- x: 0.5, y: 0.3, w: 9, h: 0.6,
57
- margin: 0 // Use 0 when aligning text with other elements like shapes or icons
58
- });
59
- ```
60
-
61
- **Tip:** Text boxes have internal margin by default. Set `margin: 0` when you need text to align precisely with shapes, lines, or icons at the same x-position.
62
-
63
- ---
64
-
65
- ## Lists & Bullets
66
-
67
- ```javascript
68
- // CORRECT: Multiple bullets
69
- slide.addText([
70
- { text: "First item", options: { bullet: true, breakLine: true } },
71
- { text: "Second item", options: { bullet: true, breakLine: true } },
72
- { text: "Third item", options: { bullet: true } }
73
- ], { x: 0.5, y: 0.5, w: 8, h: 3 });
74
-
75
- // WRONG: Never use unicode bullets
76
- slide.addText("* First item", { ... }); // Creates double bullets
77
-
78
- // Sub-items and numbered lists
79
- { text: "Sub-item", options: { bullet: true, indentLevel: 1 } }
80
- { text: "First", options: { bullet: { type: "number" }, breakLine: true } }
81
- ```
82
-
83
- ---
84
-
85
- ## Shapes
86
-
87
- ```javascript
88
- slide.addShape(pres.shapes.RECTANGLE, {
89
- x: 0.5, y: 0.8, w: 1.5, h: 3.0,
90
- fill: { color: "FF0000" }, line: { color: "000000", width: 2 }
91
- });
92
-
93
- slide.addShape(pres.shapes.OVAL, { x: 4, y: 1, w: 2, h: 2, fill: { color: "0000FF" } });
94
-
95
- slide.addShape(pres.shapes.LINE, {
96
- x: 1, y: 3, w: 5, h: 0, line: { color: "FF0000", width: 3, dashType: "dash" }
97
- });
98
-
99
- // With transparency
100
- slide.addShape(pres.shapes.RECTANGLE, {
101
- x: 1, y: 1, w: 3, h: 2,
102
- fill: { color: "0088CC", transparency: 50 }
103
- });
104
-
105
- // Rounded rectangle (rectRadius only works with ROUNDED_RECTANGLE, not RECTANGLE)
106
- // Don't pair with rectangular accent overlays -- they won't cover rounded corners. Use RECTANGLE instead.
107
- slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
108
- x: 1, y: 1, w: 3, h: 2,
109
- fill: { color: "FFFFFF" }, rectRadius: 0.1
110
- });
111
-
112
- // With shadow
113
- slide.addShape(pres.shapes.RECTANGLE, {
114
- x: 1, y: 1, w: 3, h: 2,
115
- fill: { color: "FFFFFF" },
116
- shadow: { type: "outer", color: "000000", blur: 6, offset: 2, angle: 135, opacity: 0.15 }
117
- });
118
- ```
119
-
120
- Shadow options:
121
-
122
- | Property | Type | Range | Notes |
123
- |----------|------|-------|-------|
124
- | `type` | string | `"outer"`, `"inner"` | |
125
- | `color` | string | 6-char hex (e.g. `"000000"`) | No `#` prefix, no 8-char hex -- see Common Pitfalls |
126
- | `blur` | number | 0-100 pt | |
127
- | `offset` | number | 0-200 pt | **Must be non-negative** -- negative values corrupt the file |
128
- | `angle` | number | 0-359 degrees | Direction the shadow falls (135 = bottom-right, 270 = upward) |
129
- | `opacity` | number | 0.0-1.0 | Use this for transparency, never encode in color string |
130
-
131
- To cast a shadow upward (e.g. on a footer bar), use `angle: 270` with a positive offset -- do **not** use a negative offset.
132
-
133
- **Note**: Gradient fills are not natively supported. Use a gradient image as a background instead.
134
-
135
- ---
136
-
137
- ## Images
138
-
139
- ### Image Sources
140
-
141
- ```javascript
142
- // From file path
143
- slide.addImage({ path: "images/chart.png", x: 1, y: 1, w: 5, h: 3 });
144
-
145
- // From URL
146
- slide.addImage({ path: "https://example.com/image.jpg", x: 1, y: 1, w: 5, h: 3 });
147
-
148
- // From base64 (faster, no file I/O)
149
- slide.addImage({ data: "image/png;base64,iVBORw0KGgo...", x: 1, y: 1, w: 5, h: 3 });
150
- ```
151
-
152
- ### Image Options
153
-
154
- ```javascript
155
- slide.addImage({
156
- path: "image.png",
157
- x: 1, y: 1, w: 5, h: 3,
158
- rotate: 45, // 0-359 degrees
159
- rounding: true, // Circular crop
160
- transparency: 50, // 0-100
161
- flipH: true, // Horizontal flip
162
- flipV: false, // Vertical flip
163
- altText: "Description", // Accessibility
164
- hyperlink: { url: "https://example.com" }
165
- });
166
- ```
167
-
168
- ### Image Sizing Modes
169
-
170
- ```javascript
171
- // Contain - fit inside, preserve ratio
172
- { sizing: { type: 'contain', w: 4, h: 3 } }
173
-
174
- // Cover - fill area, preserve ratio (may crop)
175
- { sizing: { type: 'cover', w: 4, h: 3 } }
176
-
177
- // Crop - cut specific portion
178
- { sizing: { type: 'crop', x: 0.5, y: 0.5, w: 2, h: 2 } }
179
- ```
180
-
181
- ### Calculate Dimensions (preserve aspect ratio)
182
-
183
- ```javascript
184
- const origWidth = 1978, origHeight = 923, maxHeight = 3.0;
185
- const calcWidth = maxHeight * (origWidth / origHeight);
186
- const centerX = (10 - calcWidth) / 2;
187
-
188
- slide.addImage({ path: "image.png", x: centerX, y: 1.2, w: calcWidth, h: maxHeight });
189
- ```
190
-
191
- ### Supported Formats
192
-
193
- - **Standard**: PNG, JPG, GIF (animated GIFs work in Microsoft 365)
194
- - **SVG**: Works in modern PowerPoint/Microsoft 365
195
-
196
- ---
197
-
198
- ## Icons
199
-
200
- Use react-icons to generate SVG icons, then rasterize to PNG for universal compatibility.
201
-
202
- ### Setup
203
-
204
- ```javascript
205
- const React = require("react");
206
- const ReactDOMServer = require("react-dom/server");
207
- const sharp = require("sharp");
208
- const { FaCheckCircle, FaChartLine } = require("react-icons/fa");
209
-
210
- function renderIconSvg(IconComponent, color = "#000000", size = 256) {
211
- return ReactDOMServer.renderToStaticMarkup(
212
- React.createElement(IconComponent, { color, size: String(size) })
213
- );
214
- }
215
-
216
- async function iconToBase64Png(IconComponent, color, size = 256) {
217
- const svg = renderIconSvg(IconComponent, color, size);
218
- const pngBuffer = await sharp(Buffer.from(svg)).png().toBuffer();
219
- return "image/png;base64," + pngBuffer.toString("base64");
220
- }
221
- ```
222
-
223
- ### Add Icon to Slide
224
-
225
- ```javascript
226
- const iconData = await iconToBase64Png(FaCheckCircle, "#4472C4", 256);
227
-
228
- slide.addImage({
229
- data: iconData,
230
- x: 1, y: 1, w: 0.5, h: 0.5 // Size in inches
231
- });
232
- ```
233
-
234
- **Note**: Use size 256 or higher for crisp icons. The size parameter controls the rasterization resolution, not the display size on the slide (which is set by `w` and `h` in inches).
235
-
236
- ### Icon Libraries
237
-
238
- Install: `npm install -g react-icons react react-dom sharp`
239
-
240
- Popular icon sets in react-icons:
241
- - `react-icons/fa` - Font Awesome
242
- - `react-icons/md` - Material Design
243
- - `react-icons/hi` - Heroicons
244
- - `react-icons/bi` - Bootstrap Icons
245
-
246
- ---
247
-
248
- ## Slide Backgrounds
249
-
250
- ```javascript
251
- // Solid color
252
- slide.background = { color: "F1F1F1" };
253
-
254
- // Color with transparency
255
- slide.background = { color: "FF3399", transparency: 50 };
256
-
257
- // Image from URL
258
- slide.background = { path: "https://example.com/bg.jpg" };
259
-
260
- // Image from base64
261
- slide.background = { data: "image/png;base64,iVBORw0KGgo..." };
262
- ```
263
-
264
- ---
265
-
266
- ## Tables
267
-
268
- ```javascript
269
- slide.addTable([
270
- ["Header 1", "Header 2"],
271
- ["Cell 1", "Cell 2"]
272
- ], {
273
- x: 1, y: 1, w: 8, h: 2,
274
- border: { pt: 1, color: "999999" }, fill: { color: "F1F1F1" }
275
- });
276
-
277
- // Advanced with merged cells
278
- let tableData = [
279
- [{ text: "Header", options: { fill: { color: "6699CC" }, color: "FFFFFF", bold: true } }, "Cell"],
280
- [{ text: "Merged", options: { colspan: 2 } }]
281
- ];
282
- slide.addTable(tableData, { x: 1, y: 3.5, w: 8, colW: [4, 4] });
283
- ```
284
-
285
- ---
286
-
287
- ## Charts
288
-
289
- ```javascript
290
- // Bar chart
291
- slide.addChart(pres.charts.BAR, [{
292
- name: "Sales", labels: ["Q1", "Q2", "Q3", "Q4"], values: [4500, 5500, 6200, 7100]
293
- }], {
294
- x: 0.5, y: 0.6, w: 6, h: 3, barDir: 'col',
295
- showTitle: true, title: 'Quarterly Sales'
296
- });
297
-
298
- // Line chart
299
- slide.addChart(pres.charts.LINE, [{
300
- name: "Temp", labels: ["Jan", "Feb", "Mar"], values: [32, 35, 42]
301
- }], { x: 0.5, y: 4, w: 6, h: 3, lineSize: 3, lineSmooth: true });
302
-
303
- // Pie chart
304
- slide.addChart(pres.charts.PIE, [{
305
- name: "Share", labels: ["A", "B", "Other"], values: [35, 45, 20]
306
- }], { x: 7, y: 1, w: 5, h: 4, showPercent: true });
307
- ```
308
-
309
- ### Better-Looking Charts
310
-
311
- Default charts look dated. Apply these options for a modern, clean appearance:
312
-
313
- ```javascript
314
- slide.addChart(pres.charts.BAR, chartData, {
315
- x: 0.5, y: 1, w: 9, h: 4, barDir: "col",
316
-
317
- // Custom colors (match your presentation palette)
318
- chartColors: ["0D9488", "14B8A6", "5EEAD4"],
319
-
320
- // Clean background
321
- chartArea: { fill: { color: "FFFFFF" }, roundedCorners: true },
322
-
323
- // Muted axis labels
324
- catAxisLabelColor: "64748B",
325
- valAxisLabelColor: "64748B",
326
-
327
- // Subtle grid (value axis only)
328
- valGridLine: { color: "E2E8F0", size: 0.5 },
329
- catGridLine: { style: "none" },
330
-
331
- // Data labels on bars
332
- showValue: true,
333
- dataLabelPosition: "outEnd",
334
- dataLabelColor: "1E293B",
335
-
336
- // Hide legend for single series
337
- showLegend: false,
338
- });
339
- ```
340
-
341
- **Key styling options:**
342
- - `chartColors: [...]` - hex colors for series/segments
343
- - `chartArea: { fill, border, roundedCorners }` - chart background
344
- - `catGridLine/valGridLine: { color, style, size }` - grid lines (`style: "none"` to hide)
345
- - `lineSmooth: true` - curved lines (line charts)
346
- - `legendPos: "r"` - legend position: "b", "t", "l", "r", "tr"
347
-
348
- ---
349
-
350
- ## Slide Masters
351
-
352
- ```javascript
353
- pres.defineSlideMaster({
354
- title: 'TITLE_SLIDE', background: { color: '283A5E' },
355
- objects: [{
356
- placeholder: { options: { name: 'title', type: 'title', x: 1, y: 2, w: 8, h: 2 } }
357
- }]
358
- });
359
-
360
- let titleSlide = pres.addSlide({ masterName: "TITLE_SLIDE" });
361
- titleSlide.addText("My Title", { placeholder: "title" });
362
- ```
363
-
364
- ---
365
-
366
- ## Common Pitfalls
367
-
368
- These issues cause file corruption, visual bugs, or broken output. Avoid them.
369
-
370
- 1. **NEVER use "#" with hex colors** - causes file corruption
371
- ```javascript
372
- color: "FF0000" // CORRECT
373
- color: "#FF0000" // WRONG
374
- ```
375
-
376
- 2. **NEVER encode opacity in hex color strings** - 8-char colors (e.g., `"00000020"`) corrupt the file. Use the `opacity` property instead.
377
- ```javascript
378
- shadow: { type: "outer", blur: 6, offset: 2, color: "00000020" } // CORRUPTS FILE
379
- shadow: { type: "outer", blur: 6, offset: 2, color: "000000", opacity: 0.12 } // CORRECT
380
- ```
381
-
382
- 3. **Use `bullet: true`** - NEVER unicode symbols like "o" (creates double bullets)
383
-
384
- 4. **Use `breakLine: true`** between array items or text runs together
385
-
386
- 5. **Avoid `lineSpacing` with bullets** - causes excessive gaps; use `paraSpaceAfter` instead
387
-
388
- 6. **Each presentation needs fresh instance** - don't reuse `pptxgen()` objects
389
-
390
- 7. **NEVER reuse option objects across calls** - PptxGenJS mutates objects in-place (e.g. converting shadow values to EMU). Sharing one object between multiple calls corrupts the second shape.
391
- ```javascript
392
- const shadow = { type: "outer", blur: 6, offset: 2, color: "000000", opacity: 0.15 };
393
- slide.addShape(pres.shapes.RECTANGLE, { shadow, ... }); // second call gets already-converted values
394
- slide.addShape(pres.shapes.RECTANGLE, { shadow, ... });
395
-
396
- const makeShadow = () => ({ type: "outer", blur: 6, offset: 2, color: "000000", opacity: 0.15 });
397
- slide.addShape(pres.shapes.RECTANGLE, { shadow: makeShadow(), ... }); // fresh object each time
398
- slide.addShape(pres.shapes.RECTANGLE, { shadow: makeShadow(), ... });
399
- ```
400
-
401
- 8. **Don't use `ROUNDED_RECTANGLE` with accent borders** - rectangular overlay bars won't cover rounded corners. Use `RECTANGLE` instead.
402
- ```javascript
403
- // WRONG: Accent bar doesn't cover rounded corners
404
- slide.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 1, y: 1, w: 3, h: 1.5, fill: { color: "FFFFFF" } });
405
- slide.addShape(pres.shapes.RECTANGLE, { x: 1, y: 1, w: 0.08, h: 1.5, fill: { color: "0891B2" } });
406
-
407
- // CORRECT: Use RECTANGLE for clean alignment
408
- slide.addShape(pres.shapes.RECTANGLE, { x: 1, y: 1, w: 3, h: 1.5, fill: { color: "FFFFFF" } });
409
- slide.addShape(pres.shapes.RECTANGLE, { x: 1, y: 1, w: 0.08, h: 1.5, fill: { color: "0891B2" } });
410
- ```
411
-
412
- ---
413
-
414
- ## Quick Reference
415
-
416
- - **Shapes**: RECTANGLE, OVAL, LINE, ROUNDED_RECTANGLE
417
- - **Charts**: BAR, LINE, PIE, DOUGHNUT, SCATTER, BUBBLE, RADAR
418
- - **Layouts**: LAYOUT_16x9 (10"x5.625"), LAYOUT_16x10, LAYOUT_4x3, LAYOUT_WIDE
419
- - **Alignment**: "left", "center", "right"
420
- - **Chart data labels**: "outEnd", "inEnd", "center"