docrev 0.8.1 → 0.8.5

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 (306) hide show
  1. package/.claude/settings.local.json +9 -0
  2. package/PLAN-tables-and-postprocess.md +850 -0
  3. package/README.md +33 -0
  4. package/bin/rev.js +12 -131
  5. package/bin/rev.ts +145 -0
  6. package/dist/bin/rev.d.ts +9 -0
  7. package/dist/bin/rev.d.ts.map +1 -0
  8. package/dist/bin/rev.js +118 -0
  9. package/dist/bin/rev.js.map +1 -0
  10. package/dist/lib/annotations.d.ts +91 -0
  11. package/dist/lib/annotations.d.ts.map +1 -0
  12. package/dist/lib/annotations.js +554 -0
  13. package/dist/lib/annotations.js.map +1 -0
  14. package/dist/lib/build.d.ts +171 -0
  15. package/dist/lib/build.d.ts.map +1 -0
  16. package/dist/lib/build.js +755 -0
  17. package/dist/lib/build.js.map +1 -0
  18. package/dist/lib/citations.d.ts +34 -0
  19. package/dist/lib/citations.d.ts.map +1 -0
  20. package/dist/lib/citations.js +140 -0
  21. package/dist/lib/citations.js.map +1 -0
  22. package/dist/lib/commands/build.d.ts +13 -0
  23. package/dist/lib/commands/build.d.ts.map +1 -0
  24. package/dist/lib/commands/build.js +678 -0
  25. package/dist/lib/commands/build.js.map +1 -0
  26. package/dist/lib/commands/citations.d.ts +11 -0
  27. package/dist/lib/commands/citations.d.ts.map +1 -0
  28. package/dist/lib/commands/citations.js +428 -0
  29. package/dist/lib/commands/citations.js.map +1 -0
  30. package/dist/lib/commands/comments.d.ts +11 -0
  31. package/dist/lib/commands/comments.d.ts.map +1 -0
  32. package/dist/lib/commands/comments.js +883 -0
  33. package/dist/lib/commands/comments.js.map +1 -0
  34. package/dist/lib/commands/context.d.ts +35 -0
  35. package/dist/lib/commands/context.d.ts.map +1 -0
  36. package/dist/lib/commands/context.js +59 -0
  37. package/dist/lib/commands/context.js.map +1 -0
  38. package/dist/lib/commands/core.d.ts +11 -0
  39. package/dist/lib/commands/core.d.ts.map +1 -0
  40. package/dist/lib/commands/core.js +246 -0
  41. package/dist/lib/commands/core.js.map +1 -0
  42. package/dist/lib/commands/doi.d.ts +11 -0
  43. package/dist/lib/commands/doi.d.ts.map +1 -0
  44. package/dist/lib/commands/doi.js +373 -0
  45. package/dist/lib/commands/doi.js.map +1 -0
  46. package/dist/lib/commands/history.d.ts +11 -0
  47. package/dist/lib/commands/history.d.ts.map +1 -0
  48. package/dist/lib/commands/history.js +245 -0
  49. package/dist/lib/commands/history.js.map +1 -0
  50. package/dist/lib/commands/index.d.ts +28 -0
  51. package/dist/lib/commands/index.d.ts.map +1 -0
  52. package/dist/lib/commands/index.js +35 -0
  53. package/dist/lib/commands/index.js.map +1 -0
  54. package/dist/lib/commands/init.d.ts +11 -0
  55. package/dist/lib/commands/init.d.ts.map +1 -0
  56. package/dist/lib/commands/init.js +209 -0
  57. package/dist/lib/commands/init.js.map +1 -0
  58. package/dist/lib/commands/response.d.ts +11 -0
  59. package/dist/lib/commands/response.d.ts.map +1 -0
  60. package/dist/lib/commands/response.js +317 -0
  61. package/dist/lib/commands/response.js.map +1 -0
  62. package/dist/lib/commands/sections.d.ts +11 -0
  63. package/dist/lib/commands/sections.d.ts.map +1 -0
  64. package/dist/lib/commands/sections.js +1071 -0
  65. package/dist/lib/commands/sections.js.map +1 -0
  66. package/dist/lib/commands/utilities.d.ts +19 -0
  67. package/dist/lib/commands/utilities.d.ts.map +1 -0
  68. package/dist/lib/commands/utilities.js +2009 -0
  69. package/dist/lib/commands/utilities.js.map +1 -0
  70. package/dist/lib/comment-realign.d.ts +50 -0
  71. package/dist/lib/comment-realign.d.ts.map +1 -0
  72. package/dist/lib/comment-realign.js +372 -0
  73. package/dist/lib/comment-realign.js.map +1 -0
  74. package/dist/lib/config.d.ts +41 -0
  75. package/dist/lib/config.d.ts.map +1 -0
  76. package/dist/lib/config.js +76 -0
  77. package/dist/lib/config.js.map +1 -0
  78. package/dist/lib/crossref.d.ts +108 -0
  79. package/dist/lib/crossref.d.ts.map +1 -0
  80. package/dist/lib/crossref.js +597 -0
  81. package/dist/lib/crossref.js.map +1 -0
  82. package/dist/lib/dependencies.d.ts +30 -0
  83. package/dist/lib/dependencies.d.ts.map +1 -0
  84. package/dist/lib/dependencies.js +95 -0
  85. package/dist/lib/dependencies.js.map +1 -0
  86. package/dist/lib/doi-cache.d.ts +29 -0
  87. package/dist/lib/doi-cache.d.ts.map +1 -0
  88. package/dist/lib/doi-cache.js +104 -0
  89. package/dist/lib/doi-cache.js.map +1 -0
  90. package/dist/lib/doi.d.ts +65 -0
  91. package/dist/lib/doi.d.ts.map +1 -0
  92. package/dist/lib/doi.js +710 -0
  93. package/dist/lib/doi.js.map +1 -0
  94. package/dist/lib/equations.d.ts +61 -0
  95. package/dist/lib/equations.d.ts.map +1 -0
  96. package/dist/lib/equations.js +445 -0
  97. package/dist/lib/equations.js.map +1 -0
  98. package/dist/lib/errors.d.ts +60 -0
  99. package/dist/lib/errors.d.ts.map +1 -0
  100. package/dist/lib/errors.js +303 -0
  101. package/dist/lib/errors.js.map +1 -0
  102. package/dist/lib/format.d.ts +104 -0
  103. package/dist/lib/format.d.ts.map +1 -0
  104. package/dist/lib/format.js +416 -0
  105. package/dist/lib/format.js.map +1 -0
  106. package/dist/lib/git.d.ts +88 -0
  107. package/dist/lib/git.d.ts.map +1 -0
  108. package/dist/lib/git.js +304 -0
  109. package/dist/lib/git.js.map +1 -0
  110. package/dist/lib/grammar.d.ts +62 -0
  111. package/dist/lib/grammar.d.ts.map +1 -0
  112. package/dist/lib/grammar.js +244 -0
  113. package/dist/lib/grammar.js.map +1 -0
  114. package/dist/lib/image-registry.d.ts +68 -0
  115. package/dist/lib/image-registry.d.ts.map +1 -0
  116. package/dist/lib/image-registry.js +112 -0
  117. package/dist/lib/image-registry.js.map +1 -0
  118. package/dist/lib/import.d.ts +184 -0
  119. package/dist/lib/import.d.ts.map +1 -0
  120. package/dist/lib/import.js +1581 -0
  121. package/dist/lib/import.js.map +1 -0
  122. package/dist/lib/journals.d.ts +55 -0
  123. package/dist/lib/journals.d.ts.map +1 -0
  124. package/dist/lib/journals.js +417 -0
  125. package/dist/lib/journals.js.map +1 -0
  126. package/dist/lib/merge.d.ts +138 -0
  127. package/dist/lib/merge.d.ts.map +1 -0
  128. package/dist/lib/merge.js +603 -0
  129. package/dist/lib/merge.js.map +1 -0
  130. package/dist/lib/orcid.d.ts +36 -0
  131. package/dist/lib/orcid.d.ts.map +1 -0
  132. package/dist/lib/orcid.js +117 -0
  133. package/dist/lib/orcid.js.map +1 -0
  134. package/dist/lib/pdf-comments.d.ts +95 -0
  135. package/dist/lib/pdf-comments.d.ts.map +1 -0
  136. package/dist/lib/pdf-comments.js +192 -0
  137. package/dist/lib/pdf-comments.js.map +1 -0
  138. package/dist/lib/pdf-import.d.ts +118 -0
  139. package/dist/lib/pdf-import.d.ts.map +1 -0
  140. package/dist/lib/pdf-import.js +397 -0
  141. package/dist/lib/pdf-import.js.map +1 -0
  142. package/dist/lib/plugins.d.ts +76 -0
  143. package/dist/lib/plugins.d.ts.map +1 -0
  144. package/dist/lib/plugins.js +235 -0
  145. package/dist/lib/plugins.js.map +1 -0
  146. package/dist/lib/postprocess.d.ts +42 -0
  147. package/dist/lib/postprocess.d.ts.map +1 -0
  148. package/dist/lib/postprocess.js +138 -0
  149. package/dist/lib/postprocess.js.map +1 -0
  150. package/dist/lib/pptx-template.d.ts +59 -0
  151. package/dist/lib/pptx-template.d.ts.map +1 -0
  152. package/dist/lib/pptx-template.js +613 -0
  153. package/dist/lib/pptx-template.js.map +1 -0
  154. package/dist/lib/pptx-themes.d.ts +80 -0
  155. package/dist/lib/pptx-themes.d.ts.map +1 -0
  156. package/dist/lib/pptx-themes.js +818 -0
  157. package/dist/lib/pptx-themes.js.map +1 -0
  158. package/dist/lib/protect-restore.d.ts +137 -0
  159. package/dist/lib/protect-restore.d.ts.map +1 -0
  160. package/dist/lib/protect-restore.js +394 -0
  161. package/dist/lib/protect-restore.js.map +1 -0
  162. package/dist/lib/rate-limiter.d.ts +27 -0
  163. package/dist/lib/rate-limiter.d.ts.map +1 -0
  164. package/dist/lib/rate-limiter.js +79 -0
  165. package/dist/lib/rate-limiter.js.map +1 -0
  166. package/dist/lib/response.d.ts +41 -0
  167. package/dist/lib/response.d.ts.map +1 -0
  168. package/dist/lib/response.js +150 -0
  169. package/dist/lib/response.js.map +1 -0
  170. package/dist/lib/review.d.ts +35 -0
  171. package/dist/lib/review.d.ts.map +1 -0
  172. package/dist/lib/review.js +263 -0
  173. package/dist/lib/review.js.map +1 -0
  174. package/dist/lib/schema.d.ts +66 -0
  175. package/dist/lib/schema.d.ts.map +1 -0
  176. package/dist/lib/schema.js +339 -0
  177. package/dist/lib/schema.js.map +1 -0
  178. package/dist/lib/scientific-words.d.ts +6 -0
  179. package/dist/lib/scientific-words.d.ts.map +1 -0
  180. package/dist/lib/scientific-words.js +66 -0
  181. package/dist/lib/scientific-words.js.map +1 -0
  182. package/dist/lib/sections.d.ts +40 -0
  183. package/dist/lib/sections.d.ts.map +1 -0
  184. package/dist/lib/sections.js +288 -0
  185. package/dist/lib/sections.js.map +1 -0
  186. package/dist/lib/slides.d.ts +86 -0
  187. package/dist/lib/slides.d.ts.map +1 -0
  188. package/dist/lib/slides.js +676 -0
  189. package/dist/lib/slides.js.map +1 -0
  190. package/dist/lib/spelling.d.ts +76 -0
  191. package/dist/lib/spelling.d.ts.map +1 -0
  192. package/dist/lib/spelling.js +272 -0
  193. package/dist/lib/spelling.js.map +1 -0
  194. package/dist/lib/templates.d.ts +30 -0
  195. package/dist/lib/templates.d.ts.map +1 -0
  196. package/dist/lib/templates.js +504 -0
  197. package/dist/lib/templates.js.map +1 -0
  198. package/dist/lib/themes.d.ts +85 -0
  199. package/dist/lib/themes.d.ts.map +1 -0
  200. package/dist/lib/themes.js +652 -0
  201. package/dist/lib/themes.js.map +1 -0
  202. package/dist/lib/trackchanges.d.ts +51 -0
  203. package/dist/lib/trackchanges.d.ts.map +1 -0
  204. package/dist/lib/trackchanges.js +202 -0
  205. package/dist/lib/trackchanges.js.map +1 -0
  206. package/dist/lib/tui.d.ts +76 -0
  207. package/dist/lib/tui.d.ts.map +1 -0
  208. package/dist/lib/tui.js +377 -0
  209. package/dist/lib/tui.js.map +1 -0
  210. package/dist/lib/types.d.ts +447 -0
  211. package/dist/lib/types.d.ts.map +1 -0
  212. package/dist/lib/types.js +6 -0
  213. package/dist/lib/types.js.map +1 -0
  214. package/dist/lib/undo.d.ts +57 -0
  215. package/dist/lib/undo.d.ts.map +1 -0
  216. package/dist/lib/undo.js +185 -0
  217. package/dist/lib/undo.js.map +1 -0
  218. package/dist/lib/utils.d.ts +16 -0
  219. package/dist/lib/utils.d.ts.map +1 -0
  220. package/dist/lib/utils.js +40 -0
  221. package/dist/lib/utils.js.map +1 -0
  222. package/dist/lib/variables.d.ts +42 -0
  223. package/dist/lib/variables.d.ts.map +1 -0
  224. package/dist/lib/variables.js +141 -0
  225. package/dist/lib/variables.js.map +1 -0
  226. package/dist/lib/word.d.ts +80 -0
  227. package/dist/lib/word.d.ts.map +1 -0
  228. package/dist/lib/word.js +360 -0
  229. package/dist/lib/word.js.map +1 -0
  230. package/dist/lib/wordcomments.d.ts +51 -0
  231. package/dist/lib/wordcomments.d.ts.map +1 -0
  232. package/dist/lib/wordcomments.js +587 -0
  233. package/dist/lib/wordcomments.js.map +1 -0
  234. package/eslint.config.js +27 -0
  235. package/lib/annotations.ts +622 -0
  236. package/lib/apply-buildup-colors.py +88 -0
  237. package/lib/build.ts +1013 -0
  238. package/lib/{citations.js → citations.ts} +38 -27
  239. package/lib/commands/{build.js → build.ts} +80 -27
  240. package/lib/commands/{citations.js → citations.ts} +36 -18
  241. package/lib/commands/{comments.js → comments.ts} +187 -54
  242. package/lib/commands/{context.js → context.ts} +18 -8
  243. package/lib/commands/{core.js → core.ts} +34 -20
  244. package/lib/commands/{doi.js → doi.ts} +32 -16
  245. package/lib/commands/{history.js → history.ts} +25 -12
  246. package/lib/commands/{index.js → index.ts} +9 -5
  247. package/lib/commands/{init.js → init.ts} +20 -8
  248. package/lib/commands/{response.js → response.ts} +47 -20
  249. package/lib/commands/{sections.js → sections.ts} +273 -68
  250. package/lib/commands/{utilities.js → utilities.ts} +338 -158
  251. package/lib/{comment-realign.js → comment-realign.ts} +117 -45
  252. package/lib/config.ts +84 -0
  253. package/lib/{crossref.js → crossref.ts} +213 -138
  254. package/lib/dependencies.ts +106 -0
  255. package/lib/doi-cache.ts +115 -0
  256. package/lib/{doi.js → doi.ts} +115 -281
  257. package/lib/{equations.js → equations.ts} +60 -64
  258. package/lib/{errors.js → errors.ts} +56 -48
  259. package/lib/{format.js → format.ts} +137 -63
  260. package/lib/{git.js → git.ts} +66 -63
  261. package/lib/{grammar.js → grammar.ts} +45 -32
  262. package/lib/image-registry.ts +180 -0
  263. package/lib/import.ts +2060 -0
  264. package/lib/journals.ts +505 -0
  265. package/lib/{merge.js → merge.ts} +185 -135
  266. package/lib/{orcid.js → orcid.ts} +17 -22
  267. package/lib/{pdf-comments.js → pdf-comments.ts} +76 -18
  268. package/lib/{pdf-import.js → pdf-import.ts} +148 -70
  269. package/lib/{plugins.js → plugins.ts} +82 -39
  270. package/lib/postprocess.ts +188 -0
  271. package/lib/pptx-color-filter.lua +37 -0
  272. package/lib/pptx-template.ts +625 -0
  273. package/lib/pptx-themes/academic.pptx +0 -0
  274. package/lib/pptx-themes/corporate.pptx +0 -0
  275. package/lib/pptx-themes/dark.pptx +0 -0
  276. package/lib/pptx-themes/default.pptx +0 -0
  277. package/lib/pptx-themes/minimal.pptx +0 -0
  278. package/lib/pptx-themes/plant.pptx +0 -0
  279. package/lib/pptx-themes.ts +896 -0
  280. package/lib/protect-restore.ts +516 -0
  281. package/lib/rate-limiter.ts +94 -0
  282. package/lib/{response.js → response.ts} +36 -21
  283. package/lib/{review.js → review.ts} +53 -43
  284. package/lib/{schema.js → schema.ts} +70 -25
  285. package/lib/{sections.js → sections.ts} +71 -76
  286. package/lib/slides.ts +793 -0
  287. package/lib/{spelling.js → spelling.ts} +43 -59
  288. package/lib/{templates.js → templates.ts} +20 -17
  289. package/lib/themes.ts +742 -0
  290. package/lib/{trackchanges.js → trackchanges.ts} +52 -23
  291. package/lib/types.ts +509 -0
  292. package/lib/{undo.js → undo.ts} +75 -52
  293. package/lib/utils.ts +41 -0
  294. package/lib/{variables.js → variables.ts} +60 -54
  295. package/lib/word.ts +428 -0
  296. package/lib/{wordcomments.js → wordcomments.ts} +94 -40
  297. package/package.json +15 -5
  298. package/skill/REFERENCE.md +67 -0
  299. package/tsconfig.json +26 -0
  300. package/lib/annotations.js +0 -414
  301. package/lib/build.js +0 -639
  302. package/lib/config.js +0 -79
  303. package/lib/import.js +0 -1145
  304. package/lib/journals.js +0 -629
  305. package/lib/word.js +0 -225
  306. /package/lib/{scientific-words.js → scientific-words.ts} +0 -0
@@ -0,0 +1,652 @@
1
+ /**
2
+ * Slide Themes for Beamer and PPTX
3
+ *
4
+ * 20 professionally designed themes based on modern design principles:
5
+ * - Bold, confident typography (2025-2026 trend)
6
+ * - Curated color palettes (monochrome, earth tones, neo-mint, dark mode)
7
+ * - Clean sans-serif fonts for readability
8
+ * - Consistent visual hierarchy
9
+ *
10
+ * Each theme includes:
11
+ * - Primary, secondary, accent colors
12
+ * - Background and text colors
13
+ * - Font recommendations
14
+ * - Beamer configuration
15
+ */
16
+ export const THEMES = {
17
+ // ============================================
18
+ // MINIMAL & PROFESSIONAL (1-5)
19
+ // ============================================
20
+ metropolis: {
21
+ name: 'metropolis',
22
+ displayName: 'Metropolis',
23
+ description: 'Clean, modern minimal theme inspired by the popular Beamer theme',
24
+ colors: {
25
+ primary: '#23373B', // Dark teal-gray
26
+ secondary: '#EB811B', // Orange accent
27
+ accent: '#14B03D', // Green
28
+ background: '#FAFAFA', // Off-white
29
+ backgroundDark: '#23373B',
30
+ text: '#23373B',
31
+ textLight: '#FAFAFA',
32
+ },
33
+ fonts: {
34
+ heading: 'Fira Sans',
35
+ body: 'Fira Sans',
36
+ mono: 'Fira Mono',
37
+ },
38
+ beamer: {
39
+ theme: 'metropolis',
40
+ colortheme: null,
41
+ fonttheme: null,
42
+ },
43
+ },
44
+ nordic: {
45
+ name: 'nordic',
46
+ displayName: 'Nordic',
47
+ description: 'Scandinavian-inspired minimal design with soft contrasts',
48
+ colors: {
49
+ primary: '#2E3440', // Polar Night
50
+ secondary: '#5E81AC', // Frost blue
51
+ accent: '#88C0D0', // Aurora cyan
52
+ background: '#ECEFF4', // Snow
53
+ backgroundDark: '#2E3440',
54
+ text: '#2E3440',
55
+ textLight: '#ECEFF4',
56
+ },
57
+ fonts: {
58
+ heading: 'Inter',
59
+ body: 'Inter',
60
+ mono: 'JetBrains Mono',
61
+ },
62
+ beamer: {
63
+ theme: 'default',
64
+ colortheme: 'dove',
65
+ fonttheme: null,
66
+ },
67
+ },
68
+ slate: {
69
+ name: 'slate',
70
+ displayName: 'Slate',
71
+ description: 'Professional gray tones with subtle blue accent',
72
+ colors: {
73
+ primary: '#334155', // Slate 700
74
+ secondary: '#64748B', // Slate 500
75
+ accent: '#3B82F6', // Blue 500
76
+ background: '#F8FAFC', // Slate 50
77
+ backgroundDark: '#1E293B',
78
+ text: '#1E293B',
79
+ textLight: '#F1F5F9',
80
+ },
81
+ fonts: {
82
+ heading: 'IBM Plex Sans',
83
+ body: 'IBM Plex Sans',
84
+ mono: 'IBM Plex Mono',
85
+ },
86
+ beamer: {
87
+ theme: 'default',
88
+ colortheme: 'dove',
89
+ fonttheme: null,
90
+ },
91
+ },
92
+ paper: {
93
+ name: 'paper',
94
+ displayName: 'Paper',
95
+ description: 'Warm, academic feel with sepia undertones',
96
+ colors: {
97
+ primary: '#44403C', // Stone 700
98
+ secondary: '#78716C', // Stone 500
99
+ accent: '#B45309', // Amber 700
100
+ background: '#FAFAF9', // Stone 50
101
+ backgroundDark: '#292524',
102
+ text: '#1C1917',
103
+ textLight: '#FAFAF9',
104
+ },
105
+ fonts: {
106
+ heading: 'Source Sans Pro',
107
+ body: 'Source Serif Pro',
108
+ mono: 'Source Code Pro',
109
+ },
110
+ beamer: {
111
+ theme: 'default',
112
+ colortheme: 'seagull',
113
+ fonttheme: null,
114
+ },
115
+ },
116
+ mono: {
117
+ name: 'mono',
118
+ displayName: 'Mono',
119
+ description: 'Pure black and white for maximum contrast',
120
+ colors: {
121
+ primary: '#000000',
122
+ secondary: '#404040',
123
+ accent: '#000000',
124
+ background: '#FFFFFF',
125
+ backgroundDark: '#000000',
126
+ text: '#000000',
127
+ textLight: '#FFFFFF',
128
+ },
129
+ fonts: {
130
+ heading: 'Helvetica Neue',
131
+ body: 'Helvetica Neue',
132
+ mono: 'Menlo',
133
+ },
134
+ beamer: {
135
+ theme: 'default',
136
+ colortheme: 'dove',
137
+ fonttheme: null,
138
+ },
139
+ },
140
+ // ============================================
141
+ // BOLD & MODERN (6-10)
142
+ // ============================================
143
+ electric: {
144
+ name: 'electric',
145
+ displayName: 'Electric',
146
+ description: 'Bold electric blue monochrome for high-impact presentations',
147
+ colors: {
148
+ primary: '#2563EB', // Blue 600
149
+ secondary: '#3B82F6', // Blue 500
150
+ accent: '#60A5FA', // Blue 400
151
+ background: '#EFF6FF', // Blue 50
152
+ backgroundDark: '#1E3A8A',
153
+ text: '#1E3A8A',
154
+ textLight: '#EFF6FF',
155
+ },
156
+ fonts: {
157
+ heading: 'Montserrat',
158
+ body: 'Open Sans',
159
+ mono: 'Fira Code',
160
+ },
161
+ beamer: {
162
+ theme: 'default',
163
+ colortheme: 'whale',
164
+ fonttheme: null,
165
+ },
166
+ },
167
+ crimson: {
168
+ name: 'crimson',
169
+ displayName: 'Crimson',
170
+ description: 'Deep red monochrome for bold, confident statements',
171
+ colors: {
172
+ primary: '#DC2626', // Red 600
173
+ secondary: '#B91C1C', // Red 700
174
+ accent: '#F87171', // Red 400
175
+ background: '#FEF2F2', // Red 50
176
+ backgroundDark: '#7F1D1D',
177
+ text: '#7F1D1D',
178
+ textLight: '#FEF2F2',
179
+ },
180
+ fonts: {
181
+ heading: 'Raleway',
182
+ body: 'Lato',
183
+ mono: 'Roboto Mono',
184
+ },
185
+ beamer: {
186
+ theme: 'default',
187
+ colortheme: 'crane',
188
+ fonttheme: null,
189
+ },
190
+ },
191
+ emerald: {
192
+ name: 'emerald',
193
+ displayName: 'Emerald',
194
+ description: 'Rich green for environmental or growth-focused topics',
195
+ colors: {
196
+ primary: '#059669', // Emerald 600
197
+ secondary: '#10B981', // Emerald 500
198
+ accent: '#34D399', // Emerald 400
199
+ background: '#ECFDF5', // Emerald 50
200
+ backgroundDark: '#064E3B',
201
+ text: '#064E3B',
202
+ textLight: '#ECFDF5',
203
+ },
204
+ fonts: {
205
+ heading: 'Poppins',
206
+ body: 'Nunito',
207
+ mono: 'Inconsolata',
208
+ },
209
+ beamer: {
210
+ theme: 'default',
211
+ colortheme: 'spruce',
212
+ fonttheme: null,
213
+ },
214
+ },
215
+ violet: {
216
+ name: 'violet',
217
+ displayName: 'Violet',
218
+ description: 'Deep purple for creative and innovative presentations',
219
+ colors: {
220
+ primary: '#7C3AED', // Violet 600
221
+ secondary: '#8B5CF6', // Violet 500
222
+ accent: '#A78BFA', // Violet 400
223
+ background: '#F5F3FF', // Violet 50
224
+ backgroundDark: '#4C1D95',
225
+ text: '#4C1D95',
226
+ textLight: '#F5F3FF',
227
+ },
228
+ fonts: {
229
+ heading: 'Space Grotesk',
230
+ body: 'DM Sans',
231
+ mono: 'JetBrains Mono',
232
+ },
233
+ beamer: {
234
+ theme: 'default',
235
+ colortheme: 'orchid',
236
+ fonttheme: null,
237
+ },
238
+ },
239
+ amber: {
240
+ name: 'amber',
241
+ displayName: 'Amber',
242
+ description: 'Warm golden tones for engaging, energetic presentations',
243
+ colors: {
244
+ primary: '#D97706', // Amber 600
245
+ secondary: '#F59E0B', // Amber 500
246
+ accent: '#FBBF24', // Amber 400
247
+ background: '#FFFBEB', // Amber 50
248
+ backgroundDark: '#78350F',
249
+ text: '#78350F',
250
+ textLight: '#FFFBEB',
251
+ },
252
+ fonts: {
253
+ heading: 'Outfit',
254
+ body: 'Work Sans',
255
+ mono: 'Source Code Pro',
256
+ },
257
+ beamer: {
258
+ theme: 'default',
259
+ colortheme: 'beaver',
260
+ fonttheme: null,
261
+ },
262
+ },
263
+ // ============================================
264
+ // DARK MODE (11-14)
265
+ // ============================================
266
+ midnight: {
267
+ name: 'midnight',
268
+ displayName: 'Midnight',
269
+ description: 'Deep dark mode with blue accents',
270
+ colors: {
271
+ primary: '#60A5FA', // Blue 400
272
+ secondary: '#93C5FD', // Blue 300
273
+ accent: '#3B82F6', // Blue 500
274
+ background: '#0F172A', // Slate 900
275
+ backgroundDark: '#020617',
276
+ text: '#E2E8F0',
277
+ textLight: '#F1F5F9',
278
+ },
279
+ fonts: {
280
+ heading: 'Inter',
281
+ body: 'Inter',
282
+ mono: 'Fira Code',
283
+ },
284
+ beamer: {
285
+ theme: 'default',
286
+ colortheme: 'owl',
287
+ fonttheme: null,
288
+ },
289
+ },
290
+ obsidian: {
291
+ name: 'obsidian',
292
+ displayName: 'Obsidian',
293
+ description: 'Pure dark mode with subtle purple glow',
294
+ colors: {
295
+ primary: '#A78BFA', // Violet 400
296
+ secondary: '#C4B5FD', // Violet 300
297
+ accent: '#8B5CF6', // Violet 500
298
+ background: '#18181B', // Zinc 900
299
+ backgroundDark: '#09090B',
300
+ text: '#E4E4E7',
301
+ textLight: '#FAFAFA',
302
+ },
303
+ fonts: {
304
+ heading: 'Manrope',
305
+ body: 'Manrope',
306
+ mono: 'JetBrains Mono',
307
+ },
308
+ beamer: {
309
+ theme: 'default',
310
+ colortheme: 'owl',
311
+ fonttheme: null,
312
+ },
313
+ },
314
+ carbon: {
315
+ name: 'carbon',
316
+ displayName: 'Carbon',
317
+ description: 'Tech-forward dark theme with green terminal accent',
318
+ colors: {
319
+ primary: '#4ADE80', // Green 400
320
+ secondary: '#86EFAC', // Green 300
321
+ accent: '#22C55E', // Green 500
322
+ background: '#171717', // Neutral 900
323
+ backgroundDark: '#0A0A0A',
324
+ text: '#E5E5E5',
325
+ textLight: '#FAFAFA',
326
+ },
327
+ fonts: {
328
+ heading: 'Roboto',
329
+ body: 'Roboto',
330
+ mono: 'Fira Mono',
331
+ },
332
+ beamer: {
333
+ theme: 'default',
334
+ colortheme: 'owl',
335
+ fonttheme: null,
336
+ },
337
+ },
338
+ noir: {
339
+ name: 'noir',
340
+ displayName: 'Noir',
341
+ description: 'Elegant dark mode with warm amber highlights',
342
+ colors: {
343
+ primary: '#FBBF24', // Amber 400
344
+ secondary: '#FCD34D', // Amber 300
345
+ accent: '#F59E0B', // Amber 500
346
+ background: '#1C1917', // Stone 900
347
+ backgroundDark: '#0C0A09',
348
+ text: '#E7E5E4',
349
+ textLight: '#FAFAF9',
350
+ },
351
+ fonts: {
352
+ heading: 'Playfair Display',
353
+ body: 'Lato',
354
+ mono: 'IBM Plex Mono',
355
+ },
356
+ beamer: {
357
+ theme: 'default',
358
+ colortheme: 'owl',
359
+ fonttheme: null,
360
+ },
361
+ },
362
+ // ============================================
363
+ // EARTH & NATURE (15-17)
364
+ // ============================================
365
+ forest: {
366
+ name: 'forest',
367
+ displayName: 'Forest',
368
+ description: 'Deep greens and earthy browns for natural topics',
369
+ colors: {
370
+ primary: '#166534', // Green 800
371
+ secondary: '#15803D', // Green 700
372
+ accent: '#A3E635', // Lime 400
373
+ background: '#F0FDF4', // Green 50
374
+ backgroundDark: '#14532D',
375
+ text: '#14532D',
376
+ textLight: '#F0FDF4',
377
+ },
378
+ fonts: {
379
+ heading: 'Josefin Sans',
380
+ body: 'Merriweather Sans',
381
+ mono: 'Inconsolata',
382
+ },
383
+ beamer: {
384
+ theme: 'default',
385
+ colortheme: 'spruce',
386
+ fonttheme: null,
387
+ },
388
+ },
389
+ terracotta: {
390
+ name: 'terracotta',
391
+ displayName: 'Terracotta',
392
+ description: 'Warm earth tones with Mediterranean warmth',
393
+ colors: {
394
+ primary: '#C2410C', // Orange 700
395
+ secondary: '#EA580C', // Orange 600
396
+ accent: '#FDBA74', // Orange 300
397
+ background: '#FFF7ED', // Orange 50
398
+ backgroundDark: '#7C2D12',
399
+ text: '#7C2D12',
400
+ textLight: '#FFF7ED',
401
+ },
402
+ fonts: {
403
+ heading: 'Cormorant Garamond',
404
+ body: 'Mulish',
405
+ mono: 'Cousine',
406
+ },
407
+ beamer: {
408
+ theme: 'default',
409
+ colortheme: 'beaver',
410
+ fonttheme: null,
411
+ },
412
+ },
413
+ ocean: {
414
+ name: 'ocean',
415
+ displayName: 'Ocean',
416
+ description: 'Deep teal and aqua for marine and water themes',
417
+ colors: {
418
+ primary: '#0D9488', // Teal 600
419
+ secondary: '#14B8A6', // Teal 500
420
+ accent: '#5EEAD4', // Teal 300
421
+ background: '#F0FDFA', // Teal 50
422
+ backgroundDark: '#134E4A',
423
+ text: '#134E4A',
424
+ textLight: '#F0FDFA',
425
+ },
426
+ fonts: {
427
+ heading: 'Quicksand',
428
+ body: 'Nunito Sans',
429
+ mono: 'Hack',
430
+ },
431
+ beamer: {
432
+ theme: 'default',
433
+ colortheme: 'seahorse',
434
+ fonttheme: null,
435
+ },
436
+ },
437
+ // ============================================
438
+ // CONTEMPORARY & TRENDY (18-20)
439
+ // ============================================
440
+ neomint: {
441
+ name: 'neomint',
442
+ displayName: 'Neo Mint',
443
+ description: '2026 trend: soft futuristic mint with pastel accents',
444
+ colors: {
445
+ primary: '#10B981', // Emerald 500
446
+ secondary: '#6EE7B7', // Emerald 300
447
+ accent: '#F472B6', // Pink 400
448
+ background: '#F0FDF4', // Green 50
449
+ backgroundDark: '#064E3B',
450
+ text: '#064E3B',
451
+ textLight: '#ECFDF5',
452
+ },
453
+ fonts: {
454
+ heading: 'Plus Jakarta Sans',
455
+ body: 'Plus Jakarta Sans',
456
+ mono: 'Space Mono',
457
+ },
458
+ beamer: {
459
+ theme: 'default',
460
+ colortheme: 'default',
461
+ fonttheme: null,
462
+ },
463
+ },
464
+ gradient: {
465
+ name: 'gradient',
466
+ displayName: 'Gradient',
467
+ description: 'Modern gradient-inspired with pink to purple flow',
468
+ colors: {
469
+ primary: '#EC4899', // Pink 500
470
+ secondary: '#8B5CF6', // Violet 500
471
+ accent: '#06B6D4', // Cyan 500
472
+ background: '#FDF4FF', // Fuchsia 50
473
+ backgroundDark: '#701A75',
474
+ text: '#701A75',
475
+ textLight: '#FDF4FF',
476
+ },
477
+ fonts: {
478
+ heading: 'Sora',
479
+ body: 'Outfit',
480
+ mono: 'Cascadia Code',
481
+ },
482
+ beamer: {
483
+ theme: 'default',
484
+ colortheme: 'orchid',
485
+ fonttheme: null,
486
+ },
487
+ },
488
+ bauhaus: {
489
+ name: 'bauhaus',
490
+ displayName: 'Bauhaus',
491
+ description: 'Geometric, primary colors inspired by Bauhaus design',
492
+ colors: {
493
+ primary: '#1D4ED8', // Blue 700
494
+ secondary: '#DC2626', // Red 600
495
+ accent: '#FACC15', // Yellow 400
496
+ background: '#FAFAFA', // Neutral 50
497
+ backgroundDark: '#1E293B',
498
+ text: '#0F172A',
499
+ textLight: '#F8FAFC',
500
+ },
501
+ fonts: {
502
+ heading: 'Archivo',
503
+ body: 'Rubik',
504
+ mono: 'Overpass Mono',
505
+ },
506
+ beamer: {
507
+ theme: 'default',
508
+ colortheme: 'default',
509
+ fonttheme: null,
510
+ },
511
+ },
512
+ };
513
+ /**
514
+ * Get theme by name
515
+ */
516
+ export function getTheme(name) {
517
+ return THEMES[name] || null;
518
+ }
519
+ /**
520
+ * Get all theme names
521
+ */
522
+ export function getThemeNames() {
523
+ return Object.keys(THEMES);
524
+ }
525
+ /**
526
+ * Get themes by category
527
+ */
528
+ export function getThemesByCategory(category) {
529
+ const categories = {
530
+ minimal: ['metropolis', 'nordic', 'slate', 'paper', 'mono'],
531
+ bold: ['electric', 'crimson', 'emerald', 'violet', 'amber'],
532
+ dark: ['midnight', 'obsidian', 'carbon', 'noir'],
533
+ earth: ['forest', 'terracotta', 'ocean'],
534
+ trendy: ['neomint', 'gradient', 'bauhaus'],
535
+ };
536
+ const names = categories[category] || [];
537
+ return names.map(name => THEMES[name]).filter(Boolean);
538
+ }
539
+ /**
540
+ * Generate Beamer color definitions for a theme
541
+ */
542
+ export function generateBeamerColors(theme) {
543
+ const { colors } = theme;
544
+ // Convert hex to RGB
545
+ const hexToRgb = (hex) => {
546
+ const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
547
+ return result ? {
548
+ r: parseInt(result[1], 16),
549
+ g: parseInt(result[2], 16),
550
+ b: parseInt(result[3], 16),
551
+ } : { r: 0, g: 0, b: 0 };
552
+ };
553
+ const primary = hexToRgb(colors.primary);
554
+ const secondary = hexToRgb(colors.secondary);
555
+ const accent = hexToRgb(colors.accent);
556
+ const bg = hexToRgb(colors.background);
557
+ const bgDark = hexToRgb(colors.backgroundDark);
558
+ const text = hexToRgb(colors.text);
559
+ return `
560
+ % Theme: ${theme.displayName}
561
+ % ${theme.description}
562
+ \\definecolor{ThemePrimary}{RGB}{${primary.r},${primary.g},${primary.b}}
563
+ \\definecolor{ThemeSecondary}{RGB}{${secondary.r},${secondary.g},${secondary.b}}
564
+ \\definecolor{ThemeAccent}{RGB}{${accent.r},${accent.g},${accent.b}}
565
+ \\definecolor{ThemeBackground}{RGB}{${bg.r},${bg.g},${bg.b}}
566
+ \\definecolor{ThemeBackgroundDark}{RGB}{${bgDark.r},${bgDark.g},${bgDark.b}}
567
+ \\definecolor{ThemeText}{RGB}{${text.r},${text.g},${text.b}}
568
+
569
+ \\setbeamercolor{structure}{fg=ThemePrimary}
570
+ \\setbeamercolor{frametitle}{fg=ThemePrimary,bg=ThemeBackground}
571
+ \\setbeamercolor{title}{fg=ThemePrimary}
572
+ \\setbeamercolor{subtitle}{fg=ThemeSecondary}
573
+ \\setbeamercolor{normal text}{fg=ThemeText,bg=ThemeBackground}
574
+ \\setbeamercolor{alerted text}{fg=ThemeAccent}
575
+ \\setbeamercolor{example text}{fg=ThemeSecondary}
576
+ `.trim();
577
+ }
578
+ /**
579
+ * Generate CSS for PPTX reference doc
580
+ */
581
+ export function generatePptxCSS(theme) {
582
+ const { colors, fonts } = theme;
583
+ return `
584
+ /* Theme: ${theme.displayName} */
585
+ /* ${theme.description} */
586
+
587
+ :root {
588
+ --theme-primary: ${colors.primary};
589
+ --theme-secondary: ${colors.secondary};
590
+ --theme-accent: ${colors.accent};
591
+ --theme-background: ${colors.background};
592
+ --theme-background-dark: ${colors.backgroundDark};
593
+ --theme-text: ${colors.text};
594
+ --theme-text-light: ${colors.textLight};
595
+
596
+ --font-heading: '${fonts.heading}', sans-serif;
597
+ --font-body: '${fonts.body}', sans-serif;
598
+ --font-mono: '${fonts.mono}', monospace;
599
+ }
600
+
601
+ /* Slide styles */
602
+ .dark {
603
+ background-color: var(--theme-background-dark);
604
+ color: var(--theme-text-light);
605
+ }
606
+
607
+ .cover, .thanks, .section {
608
+ background-color: var(--theme-primary);
609
+ color: var(--theme-text-light);
610
+ text-align: center;
611
+ }
612
+
613
+ .accent {
614
+ background-color: var(--theme-accent);
615
+ color: var(--theme-text);
616
+ }
617
+ `.trim();
618
+ }
619
+ /**
620
+ * Format theme info for display
621
+ */
622
+ export function formatThemeInfo(theme) {
623
+ const lines = [
624
+ `${theme.displayName}`,
625
+ ` ${theme.description}`,
626
+ ` Colors: ${theme.colors.primary} (primary), ${theme.colors.accent} (accent)`,
627
+ ` Fonts: ${theme.fonts.heading} / ${theme.fonts.body}`,
628
+ ];
629
+ return lines.join('\n');
630
+ }
631
+ /**
632
+ * List all themes with descriptions
633
+ */
634
+ export function listThemes() {
635
+ const categories = [
636
+ { name: 'Minimal & Professional', themes: ['metropolis', 'nordic', 'slate', 'paper', 'mono'] },
637
+ { name: 'Bold & Modern', themes: ['electric', 'crimson', 'emerald', 'violet', 'amber'] },
638
+ { name: 'Dark Mode', themes: ['midnight', 'obsidian', 'carbon', 'noir'] },
639
+ { name: 'Earth & Nature', themes: ['forest', 'terracotta', 'ocean'] },
640
+ { name: 'Contemporary', themes: ['neomint', 'gradient', 'bauhaus'] },
641
+ ];
642
+ const lines = [];
643
+ for (const cat of categories) {
644
+ lines.push(`\n${cat.name}:`);
645
+ for (const name of cat.themes) {
646
+ const theme = THEMES[name];
647
+ lines.push(` ${name.padEnd(12)} - ${theme.description}`);
648
+ }
649
+ }
650
+ return lines.join('\n');
651
+ }
652
+ //# sourceMappingURL=themes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themes.js","sourceRoot":"","sources":["../../lib/themes.ts"],"names":[],"mappings":"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"}