@bendyline/squisq 1.2.2 → 1.4.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 (427) hide show
  1. package/dist/{Doc-BfBhiCNr.d.ts → Doc-BeSeH2iX.d.ts} +141 -33
  2. package/dist/ImageEditDoc-BTIvw0oq.d.ts +84 -0
  3. package/dist/__tests__/colorUtils.test.d.ts +2 -0
  4. package/dist/__tests__/colorUtils.test.d.ts.map +1 -0
  5. package/dist/__tests__/colorUtils.test.js +94 -0
  6. package/dist/__tests__/colorUtils.test.js.map +1 -0
  7. package/dist/__tests__/getLayers.test.js +31 -7
  8. package/dist/__tests__/getLayers.test.js.map +1 -1
  9. package/dist/__tests__/iconResolve.test.d.ts +2 -0
  10. package/dist/__tests__/iconResolve.test.d.ts.map +1 -0
  11. package/dist/__tests__/iconResolve.test.js +99 -0
  12. package/dist/__tests__/iconResolve.test.js.map +1 -0
  13. package/dist/__tests__/imageEditState.test.d.ts +2 -0
  14. package/dist/__tests__/imageEditState.test.d.ts.map +1 -0
  15. package/dist/__tests__/imageEditState.test.js +61 -0
  16. package/dist/__tests__/imageEditState.test.js.map +1 -0
  17. package/dist/__tests__/imageEditVersions.test.d.ts +2 -0
  18. package/dist/__tests__/imageEditVersions.test.d.ts.map +1 -0
  19. package/dist/__tests__/imageEditVersions.test.js +141 -0
  20. package/dist/__tests__/imageEditVersions.test.js.map +1 -0
  21. package/dist/__tests__/inferDocumentTitle.test.d.ts +2 -0
  22. package/dist/__tests__/inferDocumentTitle.test.d.ts.map +1 -0
  23. package/dist/__tests__/inferDocumentTitle.test.js +42 -0
  24. package/dist/__tests__/inferDocumentTitle.test.js.map +1 -0
  25. package/dist/__tests__/jsonForm.chooseControl.test.d.ts +2 -0
  26. package/dist/__tests__/jsonForm.chooseControl.test.d.ts.map +1 -0
  27. package/dist/__tests__/jsonForm.chooseControl.test.js +74 -0
  28. package/dist/__tests__/jsonForm.chooseControl.test.js.map +1 -0
  29. package/dist/__tests__/jsonForm.evaluateWhen.test.d.ts +2 -0
  30. package/dist/__tests__/jsonForm.evaluateWhen.test.d.ts.map +1 -0
  31. package/dist/__tests__/jsonForm.evaluateWhen.test.js +51 -0
  32. package/dist/__tests__/jsonForm.evaluateWhen.test.js.map +1 -0
  33. package/dist/__tests__/jsonForm.inferSchema.test.d.ts +2 -0
  34. package/dist/__tests__/jsonForm.inferSchema.test.d.ts.map +1 -0
  35. package/dist/__tests__/jsonForm.inferSchema.test.js +23 -0
  36. package/dist/__tests__/jsonForm.inferSchema.test.js.map +1 -0
  37. package/dist/__tests__/jsonForm.pointer.test.d.ts +2 -0
  38. package/dist/__tests__/jsonForm.pointer.test.d.ts.map +1 -0
  39. package/dist/__tests__/jsonForm.pointer.test.js +94 -0
  40. package/dist/__tests__/jsonForm.pointer.test.js.map +1 -0
  41. package/dist/__tests__/markdown.test.js +40 -0
  42. package/dist/__tests__/markdown.test.js.map +1 -1
  43. package/dist/__tests__/markdownIcons.test.d.ts +2 -0
  44. package/dist/__tests__/markdownIcons.test.d.ts.map +1 -0
  45. package/dist/__tests__/markdownIcons.test.js +93 -0
  46. package/dist/__tests__/markdownIcons.test.js.map +1 -0
  47. package/dist/__tests__/markdownToDoc.test.js +15 -4
  48. package/dist/__tests__/markdownToDoc.test.js.map +1 -1
  49. package/dist/__tests__/recommendTemplates.test.d.ts +2 -0
  50. package/dist/__tests__/recommendTemplates.test.d.ts.map +1 -0
  51. package/dist/__tests__/recommendTemplates.test.js +158 -0
  52. package/dist/__tests__/recommendTemplates.test.js.map +1 -0
  53. package/dist/__tests__/scopedContentContainer.test.d.ts +2 -0
  54. package/dist/__tests__/scopedContentContainer.test.d.ts.map +1 -0
  55. package/dist/__tests__/scopedContentContainer.test.js +74 -0
  56. package/dist/__tests__/scopedContentContainer.test.js.map +1 -0
  57. package/dist/__tests__/slideshowGenerator.test.js +1 -1
  58. package/dist/__tests__/slideshowGenerator.test.js.map +1 -1
  59. package/dist/__tests__/surface.test.d.ts +2 -0
  60. package/dist/__tests__/surface.test.d.ts.map +1 -0
  61. package/dist/__tests__/surface.test.js +57 -0
  62. package/dist/__tests__/surface.test.js.map +1 -0
  63. package/dist/__tests__/templateAnnotationParse.test.d.ts +2 -0
  64. package/dist/__tests__/templateAnnotationParse.test.d.ts.map +1 -0
  65. package/dist/__tests__/templateAnnotationParse.test.js +42 -0
  66. package/dist/__tests__/templateAnnotationParse.test.js.map +1 -0
  67. package/dist/__tests__/templates.test.js +90 -9
  68. package/dist/__tests__/templates.test.js.map +1 -1
  69. package/dist/__tests__/themeCompile.test.d.ts +2 -0
  70. package/dist/__tests__/themeCompile.test.d.ts.map +1 -0
  71. package/dist/__tests__/themeCompile.test.js +134 -0
  72. package/dist/__tests__/themeCompile.test.js.map +1 -0
  73. package/dist/__tests__/themeValidator.test.d.ts +2 -0
  74. package/dist/__tests__/themeValidator.test.d.ts.map +1 -0
  75. package/dist/__tests__/themeValidator.test.js +107 -0
  76. package/dist/__tests__/themeValidator.test.js.map +1 -0
  77. package/dist/__tests__/versions.test.d.ts +2 -0
  78. package/dist/__tests__/versions.test.d.ts.map +1 -0
  79. package/dist/__tests__/versions.test.js +339 -0
  80. package/dist/__tests__/versions.test.js.map +1 -0
  81. package/dist/{chunk-CYQHG27J.js → chunk-2TMAWB4Y.js} +74 -1
  82. package/dist/chunk-2TMAWB4Y.js.map +1 -0
  83. package/dist/{chunk-LAZELBON.js → chunk-3K5OG6KI.js} +165 -17
  84. package/dist/chunk-3K5OG6KI.js.map +1 -0
  85. package/dist/chunk-57CVQCFX.js +193 -0
  86. package/dist/chunk-57CVQCFX.js.map +1 -0
  87. package/dist/{chunk-QM5PKNPW.js → chunk-5WFRKURX.js} +1 -1
  88. package/dist/chunk-5WFRKURX.js.map +1 -0
  89. package/dist/chunk-B4EEON3N.js +1317 -0
  90. package/dist/chunk-B4EEON3N.js.map +1 -0
  91. package/dist/chunk-DBS6RIFL.js +81 -0
  92. package/dist/chunk-DBS6RIFL.js.map +1 -0
  93. package/dist/{chunk-MIBRIRGJ.js → chunk-FR2RBTKO.js} +3 -3
  94. package/dist/{chunk-MIBRIRGJ.js.map → chunk-FR2RBTKO.js.map} +1 -1
  95. package/dist/chunk-H3AXU4MJ.js +179 -0
  96. package/dist/chunk-H3AXU4MJ.js.map +1 -0
  97. package/dist/chunk-JELIRVDP.js +24 -0
  98. package/dist/chunk-JELIRVDP.js.map +1 -0
  99. package/dist/chunk-K32VJONL.js +193 -0
  100. package/dist/chunk-K32VJONL.js.map +1 -0
  101. package/dist/{chunk-GAQLMORN.js → chunk-KSWJR66U.js} +248 -44
  102. package/dist/chunk-KSWJR66U.js.map +1 -0
  103. package/dist/{chunk-TSG2OSE6.js → chunk-MYIH7FWD.js} +3 -3
  104. package/dist/chunk-MYIH7FWD.js.map +1 -0
  105. package/dist/chunk-VLJJHDAC.js +218 -0
  106. package/dist/chunk-VLJJHDAC.js.map +1 -0
  107. package/dist/chunk-WMOI7FN3.js +182 -0
  108. package/dist/chunk-WMOI7FN3.js.map +1 -0
  109. package/dist/chunk-ZTX4PFFT.js +520 -0
  110. package/dist/chunk-ZTX4PFFT.js.map +1 -0
  111. package/dist/doc/audioMapping.d.ts.map +1 -1
  112. package/dist/doc/audioMapping.js +80 -9
  113. package/dist/doc/audioMapping.js.map +1 -1
  114. package/dist/doc/getLayers.d.ts.map +1 -1
  115. package/dist/doc/getLayers.js +29 -18
  116. package/dist/doc/getLayers.js.map +1 -1
  117. package/dist/doc/markdownToDoc.d.ts.map +1 -1
  118. package/dist/doc/markdownToDoc.js +40 -6
  119. package/dist/doc/markdownToDoc.js.map +1 -1
  120. package/dist/doc/templates/featureBlock.d.ts +18 -0
  121. package/dist/doc/templates/featureBlock.d.ts.map +1 -0
  122. package/dist/doc/templates/featureBlock.js +180 -0
  123. package/dist/doc/templates/featureBlock.js.map +1 -0
  124. package/dist/doc/templates/fullBleedQuote.d.ts +12 -0
  125. package/dist/doc/templates/fullBleedQuote.d.ts.map +1 -1
  126. package/dist/doc/templates/fullBleedQuote.js +12 -0
  127. package/dist/doc/templates/fullBleedQuote.js.map +1 -1
  128. package/dist/doc/templates/index.d.ts +28 -4
  129. package/dist/doc/templates/index.d.ts.map +1 -1
  130. package/dist/doc/templates/index.js +45 -12
  131. package/dist/doc/templates/index.js.map +1 -1
  132. package/dist/doc/templates/listBlock.d.ts.map +1 -1
  133. package/dist/doc/templates/listBlock.js +22 -5
  134. package/dist/doc/templates/listBlock.js.map +1 -1
  135. package/dist/doc/templates/statHighlight.d.ts +12 -0
  136. package/dist/doc/templates/statHighlight.d.ts.map +1 -1
  137. package/dist/doc/templates/statHighlight.js +12 -0
  138. package/dist/doc/templates/statHighlight.js.map +1 -1
  139. package/dist/doc/templates/titleBlock.d.ts +11 -0
  140. package/dist/doc/templates/titleBlock.d.ts.map +1 -1
  141. package/dist/doc/templates/titleBlock.js +8 -0
  142. package/dist/doc/templates/titleBlock.js.map +1 -1
  143. package/dist/doc/utils/themeUtils.d.ts +4 -4
  144. package/dist/doc/utils/themeUtils.d.ts.map +1 -1
  145. package/dist/doc/utils/themeUtils.js +8 -7
  146. package/dist/doc/utils/themeUtils.js.map +1 -1
  147. package/dist/generate/slideshowGenerator.js +1 -1
  148. package/dist/generate/slideshowGenerator.js.map +1 -1
  149. package/dist/generate/templateMapper.js +2 -2
  150. package/dist/generate/templateMapper.js.map +1 -1
  151. package/dist/icons/iconData.d.ts +26 -0
  152. package/dist/icons/iconData.d.ts.map +1 -0
  153. package/dist/icons/iconData.js +12 -0
  154. package/dist/icons/iconData.js.map +1 -0
  155. package/dist/icons/index.d.ts +12 -0
  156. package/dist/icons/index.d.ts.map +1 -0
  157. package/dist/icons/index.js +10 -0
  158. package/dist/icons/index.js.map +1 -0
  159. package/dist/icons/resolve.d.ts +61 -0
  160. package/dist/icons/resolve.d.ts.map +1 -0
  161. package/dist/icons/resolve.js +130 -0
  162. package/dist/icons/resolve.js.map +1 -0
  163. package/dist/imageEdit/ImageEditVersionManager.d.ts +31 -0
  164. package/dist/imageEdit/ImageEditVersionManager.d.ts.map +1 -0
  165. package/dist/imageEdit/ImageEditVersionManager.js +39 -0
  166. package/dist/imageEdit/ImageEditVersionManager.js.map +1 -0
  167. package/dist/imageEdit/export.d.ts +33 -0
  168. package/dist/imageEdit/export.d.ts.map +1 -0
  169. package/dist/imageEdit/export.js +253 -0
  170. package/dist/imageEdit/export.js.map +1 -0
  171. package/dist/imageEdit/index.d.ts +14 -0
  172. package/dist/imageEdit/index.d.ts.map +1 -0
  173. package/dist/imageEdit/index.js +22 -0
  174. package/dist/imageEdit/index.js.map +1 -0
  175. package/dist/imageEdit/persistence.d.ts +15 -0
  176. package/dist/imageEdit/persistence.d.ts.map +1 -0
  177. package/dist/imageEdit/persistence.js +49 -0
  178. package/dist/imageEdit/persistence.js.map +1 -0
  179. package/dist/imageEdit/state.d.ts +42 -0
  180. package/dist/imageEdit/state.d.ts.map +1 -0
  181. package/dist/imageEdit/state.js +98 -0
  182. package/dist/imageEdit/state.js.map +1 -0
  183. package/dist/imageEdit/versionPaths.d.ts +27 -0
  184. package/dist/imageEdit/versionPaths.d.ts.map +1 -0
  185. package/dist/imageEdit/versionPaths.js +57 -0
  186. package/dist/imageEdit/versionPaths.js.map +1 -0
  187. package/dist/imageEdit/versions.d.ts +67 -0
  188. package/dist/imageEdit/versions.d.ts.map +1 -0
  189. package/dist/imageEdit/versions.js +161 -0
  190. package/dist/imageEdit/versions.js.map +1 -0
  191. package/dist/index.d.ts +4 -0
  192. package/dist/index.d.ts.map +1 -1
  193. package/dist/index.js +4 -0
  194. package/dist/index.js.map +1 -1
  195. package/dist/jsonForm/chooseControl.d.ts +20 -0
  196. package/dist/jsonForm/chooseControl.d.ts.map +1 -0
  197. package/dist/jsonForm/chooseControl.js +82 -0
  198. package/dist/jsonForm/chooseControl.js.map +1 -0
  199. package/dist/jsonForm/evaluateWhen.d.ts +12 -0
  200. package/dist/jsonForm/evaluateWhen.d.ts.map +1 -0
  201. package/dist/jsonForm/evaluateWhen.js +65 -0
  202. package/dist/jsonForm/evaluateWhen.js.map +1 -0
  203. package/dist/jsonForm/index.d.ts +14 -0
  204. package/dist/jsonForm/index.d.ts.map +1 -0
  205. package/dist/jsonForm/index.js +12 -0
  206. package/dist/jsonForm/index.js.map +1 -0
  207. package/dist/jsonForm/inferSchema.d.ts +12 -0
  208. package/dist/jsonForm/inferSchema.d.ts.map +1 -0
  209. package/dist/jsonForm/inferSchema.js +15 -0
  210. package/dist/jsonForm/inferSchema.js.map +1 -0
  211. package/dist/jsonForm/pointer.d.ts +26 -0
  212. package/dist/jsonForm/pointer.d.ts.map +1 -0
  213. package/dist/jsonForm/pointer.js +102 -0
  214. package/dist/jsonForm/pointer.js.map +1 -0
  215. package/dist/jsonForm/types.d.ts +120 -0
  216. package/dist/jsonForm/types.d.ts.map +1 -0
  217. package/dist/jsonForm/types.js +10 -0
  218. package/dist/jsonForm/types.js.map +1 -0
  219. package/dist/markdown/convert.d.ts +11 -1
  220. package/dist/markdown/convert.d.ts.map +1 -1
  221. package/dist/markdown/convert.js +235 -15
  222. package/dist/markdown/convert.js.map +1 -1
  223. package/dist/markdown/index.d.ts +2 -2
  224. package/dist/markdown/index.d.ts.map +1 -1
  225. package/dist/markdown/index.js +1 -1
  226. package/dist/markdown/index.js.map +1 -1
  227. package/dist/markdown/types.d.ts +34 -1
  228. package/dist/markdown/types.d.ts.map +1 -1
  229. package/dist/markdown/utils.d.ts +40 -0
  230. package/dist/markdown/utils.d.ts.map +1 -1
  231. package/dist/markdown/utils.js +155 -0
  232. package/dist/markdown/utils.js.map +1 -1
  233. package/dist/recommend/index.d.ts +16 -0
  234. package/dist/recommend/index.d.ts.map +1 -0
  235. package/dist/recommend/index.js +15 -0
  236. package/dist/recommend/index.js.map +1 -0
  237. package/dist/recommend/templates.d.ts +39 -0
  238. package/dist/recommend/templates.d.ts.map +1 -0
  239. package/dist/recommend/templates.js +235 -0
  240. package/dist/recommend/templates.js.map +1 -0
  241. package/dist/schemas/BlockTemplates.d.ts +46 -8
  242. package/dist/schemas/BlockTemplates.d.ts.map +1 -1
  243. package/dist/schemas/BlockTemplates.js +3 -3
  244. package/dist/schemas/BlockTemplates.js.map +1 -1
  245. package/dist/schemas/ImageEditDoc.d.ts +81 -0
  246. package/dist/schemas/ImageEditDoc.d.ts.map +1 -0
  247. package/dist/schemas/ImageEditDoc.js +20 -0
  248. package/dist/schemas/ImageEditDoc.js.map +1 -0
  249. package/dist/schemas/Theme.d.ts +93 -23
  250. package/dist/schemas/Theme.d.ts.map +1 -1
  251. package/dist/schemas/Theme.js +80 -13
  252. package/dist/schemas/Theme.js.map +1 -1
  253. package/dist/schemas/colorUtils.d.ts +51 -0
  254. package/dist/schemas/colorUtils.d.ts.map +1 -0
  255. package/dist/schemas/colorUtils.js +154 -0
  256. package/dist/schemas/colorUtils.js.map +1 -0
  257. package/dist/schemas/fontStacks.d.ts +57 -0
  258. package/dist/schemas/fontStacks.d.ts.map +1 -0
  259. package/dist/schemas/fontStacks.js +227 -0
  260. package/dist/schemas/fontStacks.js.map +1 -0
  261. package/dist/schemas/index.d.ts +5 -0
  262. package/dist/schemas/index.d.ts.map +1 -1
  263. package/dist/schemas/index.js +4 -0
  264. package/dist/schemas/index.js.map +1 -1
  265. package/dist/schemas/themeCompile.d.ts +45 -0
  266. package/dist/schemas/themeCompile.d.ts.map +1 -0
  267. package/dist/schemas/themeCompile.js +160 -0
  268. package/dist/schemas/themeCompile.js.map +1 -0
  269. package/dist/schemas/themeLibrary.d.ts +11 -15
  270. package/dist/schemas/themeLibrary.d.ts.map +1 -1
  271. package/dist/schemas/themeLibrary.js +18 -499
  272. package/dist/schemas/themeLibrary.js.map +1 -1
  273. package/dist/schemas/themeValidator.d.ts +26 -0
  274. package/dist/schemas/themeValidator.d.ts.map +1 -0
  275. package/dist/schemas/themeValidator.js +352 -0
  276. package/dist/schemas/themeValidator.js.map +1 -0
  277. package/dist/schemas/themes/bold.json +48 -0
  278. package/dist/schemas/themes/cinematic.json +54 -0
  279. package/dist/schemas/themes/documentary.json +49 -0
  280. package/dist/schemas/themes/gezellig.json +44 -0
  281. package/dist/schemas/themes/index.d.ts +26 -0
  282. package/dist/schemas/themes/index.d.ts.map +1 -0
  283. package/dist/schemas/themes/index.js +49 -0
  284. package/dist/schemas/themes/index.js.map +1 -0
  285. package/dist/schemas/themes/magazine.json +44 -0
  286. package/dist/schemas/themes/minimalist.json +45 -0
  287. package/dist/schemas/themes/morning-light.json +42 -0
  288. package/dist/schemas/themes/standard-dark.json +50 -0
  289. package/dist/schemas/themes/standard.json +42 -0
  290. package/dist/schemas/themes/tech-dark.json +48 -0
  291. package/dist/schemas/themes/warm-earth.json +50 -0
  292. package/dist/storage/ScopedContentContainer.d.ts +44 -0
  293. package/dist/storage/ScopedContentContainer.d.ts.map +1 -0
  294. package/dist/storage/ScopedContentContainer.js +94 -0
  295. package/dist/storage/ScopedContentContainer.js.map +1 -0
  296. package/dist/storage/index.d.ts +1 -0
  297. package/dist/storage/index.d.ts.map +1 -1
  298. package/dist/storage/index.js +1 -0
  299. package/dist/storage/index.js.map +1 -1
  300. package/dist/story/index.d.ts +53 -13
  301. package/dist/story/index.js +12 -4
  302. package/dist/themeLibrary-BHjJ0Qx6.d.ts +40 -0
  303. package/dist/{types-DYAzisMG.d.ts → types-BdZkdJ3z.d.ts} +35 -2
  304. package/dist/types-D98li1gV.d.ts +93 -0
  305. package/dist/versions/DocumentVersionManager.d.ts +31 -0
  306. package/dist/versions/DocumentVersionManager.d.ts.map +1 -0
  307. package/dist/versions/DocumentVersionManager.js +33 -0
  308. package/dist/versions/DocumentVersionManager.js.map +1 -0
  309. package/dist/versions/index.d.ts +29 -0
  310. package/dist/versions/index.d.ts.map +1 -0
  311. package/dist/versions/index.js +28 -0
  312. package/dist/versions/index.js.map +1 -0
  313. package/dist/versions/operations.d.ts +44 -0
  314. package/dist/versions/operations.d.ts.map +1 -0
  315. package/dist/versions/operations.js +190 -0
  316. package/dist/versions/operations.js.map +1 -0
  317. package/dist/versions/paths.d.ts +29 -0
  318. package/dist/versions/paths.d.ts.map +1 -0
  319. package/dist/versions/paths.js +66 -0
  320. package/dist/versions/paths.js.map +1 -0
  321. package/dist/versions/timestamp.d.ts +22 -0
  322. package/dist/versions/timestamp.d.ts.map +1 -0
  323. package/dist/versions/timestamp.js +44 -0
  324. package/dist/versions/timestamp.js.map +1 -0
  325. package/dist/versions/types.d.ts +92 -0
  326. package/dist/versions/types.d.ts.map +1 -0
  327. package/dist/versions/types.js +11 -0
  328. package/dist/versions/types.js.map +1 -0
  329. package/package.json +28 -1
  330. package/src/__tests__/colorUtils.test.ts +112 -0
  331. package/src/__tests__/getLayers.test.ts +32 -7
  332. package/src/__tests__/iconResolve.test.ts +122 -0
  333. package/src/__tests__/imageEditState.test.ts +74 -0
  334. package/src/__tests__/imageEditVersions.test.ts +169 -0
  335. package/src/__tests__/inferDocumentTitle.test.ts +50 -0
  336. package/src/__tests__/jsonForm.chooseControl.test.ts +86 -0
  337. package/src/__tests__/jsonForm.evaluateWhen.test.ts +59 -0
  338. package/src/__tests__/jsonForm.inferSchema.test.ts +25 -0
  339. package/src/__tests__/jsonForm.pointer.test.ts +103 -0
  340. package/src/__tests__/markdown.test.ts +44 -0
  341. package/src/__tests__/markdownIcons.test.ts +104 -0
  342. package/src/__tests__/markdownToDoc.test.ts +19 -4
  343. package/src/__tests__/recommendTemplates.test.ts +183 -0
  344. package/src/__tests__/scopedContentContainer.test.ts +89 -0
  345. package/src/__tests__/slideshowGenerator.test.ts +1 -1
  346. package/src/__tests__/surface.test.ts +68 -0
  347. package/src/__tests__/templateAnnotationParse.test.ts +42 -0
  348. package/src/__tests__/templates.test.ts +93 -9
  349. package/src/__tests__/themeCompile.test.ts +156 -0
  350. package/src/__tests__/themeValidator.test.ts +125 -0
  351. package/src/__tests__/versions.test.ts +415 -0
  352. package/src/doc/audioMapping.ts +95 -13
  353. package/src/doc/getLayers.ts +32 -21
  354. package/src/doc/markdownToDoc.ts +45 -7
  355. package/src/doc/templates/featureBlock.ts +202 -0
  356. package/src/doc/templates/fullBleedQuote.ts +13 -0
  357. package/src/doc/templates/index.ts +50 -16
  358. package/src/doc/templates/listBlock.ts +24 -5
  359. package/src/doc/templates/statHighlight.ts +13 -0
  360. package/src/doc/templates/titleBlock.ts +9 -0
  361. package/src/doc/utils/themeUtils.ts +8 -7
  362. package/src/generate/slideshowGenerator.ts +1 -1
  363. package/src/generate/templateMapper.ts +2 -2
  364. package/src/icons/iconData.ts +31 -0
  365. package/src/icons/index.ts +18 -0
  366. package/src/icons/resolve.ts +139 -0
  367. package/src/imageEdit/ImageEditVersionManager.ts +73 -0
  368. package/src/imageEdit/export.ts +326 -0
  369. package/src/imageEdit/index.ts +71 -0
  370. package/src/imageEdit/persistence.ts +62 -0
  371. package/src/imageEdit/state.ts +112 -0
  372. package/src/imageEdit/versionPaths.ts +57 -0
  373. package/src/imageEdit/versions.ts +231 -0
  374. package/src/index.ts +4 -0
  375. package/src/jsonForm/chooseControl.ts +88 -0
  376. package/src/jsonForm/evaluateWhen.ts +59 -0
  377. package/src/jsonForm/index.ts +22 -0
  378. package/src/jsonForm/inferSchema.ts +25 -0
  379. package/src/jsonForm/pointer.ts +109 -0
  380. package/src/jsonForm/types.ts +167 -0
  381. package/src/markdown/convert.ts +248 -15
  382. package/src/markdown/index.ts +4 -0
  383. package/src/markdown/types.ts +38 -1
  384. package/src/markdown/utils.ts +159 -0
  385. package/src/recommend/index.ts +16 -0
  386. package/src/recommend/templates.ts +273 -0
  387. package/src/schemas/BlockTemplates.ts +50 -7
  388. package/src/schemas/ImageEditDoc.ts +95 -0
  389. package/src/schemas/Theme.ts +152 -23
  390. package/src/schemas/colorUtils.ts +186 -0
  391. package/src/schemas/fontStacks.ts +257 -0
  392. package/src/schemas/index.ts +12 -0
  393. package/src/schemas/themeCompile.ts +203 -0
  394. package/src/schemas/themeLibrary.ts +18 -524
  395. package/src/schemas/themeValidator.ts +388 -0
  396. package/src/schemas/themes/bold.json +48 -0
  397. package/src/schemas/themes/cinematic.json +54 -0
  398. package/src/schemas/themes/documentary.json +49 -0
  399. package/src/schemas/themes/gezellig.json +44 -0
  400. package/src/schemas/themes/index.ts +53 -0
  401. package/src/schemas/themes/magazine.json +44 -0
  402. package/src/schemas/themes/minimalist.json +45 -0
  403. package/src/schemas/themes/morning-light.json +42 -0
  404. package/src/schemas/themes/standard-dark.json +50 -0
  405. package/src/schemas/themes/standard.json +42 -0
  406. package/src/schemas/themes/tech-dark.json +48 -0
  407. package/src/schemas/themes/warm-earth.json +50 -0
  408. package/src/storage/ScopedContentContainer.ts +113 -0
  409. package/src/storage/index.ts +1 -0
  410. package/src/versions/DocumentVersionManager.ts +70 -0
  411. package/src/versions/index.ts +54 -0
  412. package/src/versions/operations.ts +230 -0
  413. package/src/versions/paths.ts +66 -0
  414. package/src/versions/timestamp.ts +48 -0
  415. package/src/versions/types.ts +91 -0
  416. package/dist/chunk-53TZ2UTL.js +0 -470
  417. package/dist/chunk-53TZ2UTL.js.map +0 -1
  418. package/dist/chunk-7GF6RDED.js +0 -82
  419. package/dist/chunk-7GF6RDED.js.map +0 -1
  420. package/dist/chunk-CYQHG27J.js.map +0 -1
  421. package/dist/chunk-GAQLMORN.js.map +0 -1
  422. package/dist/chunk-LAZELBON.js.map +0 -1
  423. package/dist/chunk-QM5PKNPW.js.map +0 -1
  424. package/dist/chunk-TSG2OSE6.js.map +0 -1
  425. package/dist/chunk-XM4WSOHB.js +0 -92
  426. package/dist/chunk-XM4WSOHB.js.map +0 -1
  427. package/dist/themeLibrary-IP7EdyRq.d.ts +0 -44
@@ -3,17 +3,17 @@
3
3
  *
4
4
  * Defines a template system for AI-generated doc blocks. Instead of
5
5
  * specifying low-level layers, positions, and animations, AI can use
6
- * high-level templates like "titleBlock" or "statHighlight" with simple
6
+ * high-level templates like "title" or "statHighlight" with simple
7
7
  * content parameters.
8
8
  *
9
9
  * Templates are expanded into full Block structures at render time,
10
10
  * ensuring consistent styling and reducing AI generation errors.
11
11
  *
12
12
  * Template Types:
13
- * - titleBlock: Doc intro with title + subtitle
13
+ * - title: Doc intro with title + subtitle
14
14
  * - sectionHeader: Colored section divider
15
15
  * - statHighlight: Big number/stat with description
16
- * - quoteBlock: Large centered quote
16
+ * - quote: Large centered quote
17
17
  * - factCard: Key fact with explanation
18
18
  * - twoColumn: Side-by-side comparison
19
19
  * - dateEvent: Timeline-style date + description
@@ -94,7 +94,7 @@ interface BaseTemplateBlock {
94
94
  * Title block - doc intro with large title and subtitle.
95
95
  */
96
96
  export interface TitleBlockInput extends BaseTemplateBlock {
97
- template: 'titleBlock';
97
+ template: 'title';
98
98
  /** Main title text */
99
99
  title: string;
100
100
  /** Subtitle or tagline (supports \n for line breaks) */
@@ -139,7 +139,7 @@ export interface StatHighlightInput extends BaseTemplateBlock {
139
139
  * Quote block - large centered quote text.
140
140
  */
141
141
  export interface QuoteBlockInput extends BaseTemplateBlock {
142
- template: 'quoteBlock';
142
+ template: 'quote';
143
143
  /** The quote text (supports \n for line breaks) */
144
144
  quote: string;
145
145
  /** Attribution (author, source) */
@@ -222,6 +222,44 @@ export interface ImageWithCaptionInput extends BaseTemplateBlock {
222
222
  /** License identifier (e.g., 'CC BY-SA 4.0') */
223
223
  imageLicense?: string;
224
224
  }
225
+ /**
226
+ * Shared fields for left/right feature blocks. A "feature" pairs an
227
+ * image on one side of the block with a title and body paragraph on
228
+ * the other — a common editorial layout for product highlights,
229
+ * profile callouts, or section intros.
230
+ */
231
+ interface FeatureInputBase extends BaseTemplateBlock {
232
+ /** Path to the feature image. */
233
+ imageSrc: string;
234
+ /** Alt text for accessibility. */
235
+ imageAlt?: string;
236
+ /**
237
+ * Explicit display width of the image, in pixels (typically pulled
238
+ * from a `<img width>` attribute when the WYSIWYG editor resized it).
239
+ * When set, the renderer treats the image as a sized asset and
240
+ * centers it inside its half with padding instead of stretching it
241
+ * to fill the cell.
242
+ */
243
+ imageWidth?: number;
244
+ /** Explicit display height of the image, in pixels. */
245
+ imageHeight?: number;
246
+ /** Heading / title text shown next to the image. */
247
+ title?: string;
248
+ /** Body text shown below the title. */
249
+ body?: string;
250
+ }
251
+ /**
252
+ * Left feature — image on the left, title + body stacked on the right.
253
+ */
254
+ export interface LeftFeatureInput extends FeatureInputBase {
255
+ template: 'leftFeature';
256
+ }
257
+ /**
258
+ * Right feature — image on the right, title + body stacked on the left.
259
+ */
260
+ export interface RightFeatureInput extends FeatureInputBase {
261
+ template: 'rightFeature';
262
+ }
225
263
  /**
226
264
  * Map block - geographic map showing article location.
227
265
  *
@@ -230,7 +268,7 @@ export interface ImageWithCaptionInput extends BaseTemplateBlock {
230
268
  * See docs/MAP_TILES.md for available tile styles and attribution.
231
269
  */
232
270
  export interface MapBlockInput extends BaseTemplateBlock {
233
- template: 'mapBlock';
271
+ template: 'map';
234
272
  /** Map center coordinates */
235
273
  center: {
236
274
  lat: number;
@@ -267,7 +305,7 @@ export interface FullBleedQuoteInput extends BaseTemplateBlock {
267
305
  * Good for enumerations like "things to see" or "key features".
268
306
  */
269
307
  export interface ListBlockInput extends BaseTemplateBlock {
270
- template: 'listBlock';
308
+ template: 'list';
271
309
  /** List items (3-5 recommended) */
272
310
  items: string[];
273
311
  /** Optional header above the list */
@@ -420,7 +458,7 @@ export interface DataTableInput extends BaseTemplateBlock {
420
458
  /**
421
459
  * Union of all template block types.
422
460
  */
423
- export type TemplateBlock = TitleBlockInput | SectionHeaderInput | StatHighlightInput | QuoteBlockInput | FactCardInput | TwoColumnInput | DateEventInput | ImageWithCaptionInput | MapBlockInput | FullBleedQuoteInput | ListBlockInput | PhotoGridInput | DefinitionCardInput | ComparisonBarInput | PullQuoteInput | VideoWithCaptionInput | VideoPullQuoteInput | DataTableInput;
461
+ export type TemplateBlock = TitleBlockInput | SectionHeaderInput | StatHighlightInput | QuoteBlockInput | FactCardInput | TwoColumnInput | DateEventInput | ImageWithCaptionInput | LeftFeatureInput | RightFeatureInput | MapBlockInput | FullBleedQuoteInput | ListBlockInput | PhotoGridInput | DefinitionCardInput | ComparisonBarInput | PullQuoteInput | VideoWithCaptionInput | VideoPullQuoteInput | DataTableInput;
424
462
  /**
425
463
  * A block can be either a raw Block or a TemplateBlock.
426
464
  */
@@ -1 +1 @@
1
- {"version":3,"file":"BlockTemplates.d.ts","sourceRoot":"","sources":["../../src/schemas/BlockTemplates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BlockTemplates.d.ts","sourceRoot":"","sources":["../../src/schemas/BlockTemplates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAIxC;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,+DAA6D,CAAC;AAE3F;;GAEG;AACH,eAAO,MAAM,kBAAkB,wCAAsC,CAAC;AAMtE;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB,YAAY,GACZ,aAAa,GACb,cAAc,GACd,cAAc,CAAC;AAEnB;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,yDAAyD;IACzD,GAAG,EAAE,MAAM,CAAC;IACZ,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,yCAAyC;IACzC,QAAQ,EAAE,cAAc,CAAC;IACzB,+CAA+C;IAC/C,aAAa,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IAC9D,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD;;GAEG;AACH,UAAU,iBAAiB;IACzB,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB;IACvB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACxD,QAAQ,EAAE,OAAO,CAAC;IAClB,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,QAAQ,EAAE,eAAe,CAAC;IAC1B,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,aAAa,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;CAC/D;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,QAAQ,EAAE,eAAe,CAAC;IAC1B,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,mDAAmD;IACnD,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACxD,QAAQ,EAAE,OAAO,CAAC;IAClB,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACtD,QAAQ,EAAE,UAAU,CAAC;IACrB,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACvD,QAAQ,EAAE,WAAW,CAAC;IACtB,0BAA0B;IAC1B,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,2BAA2B;IAC3B,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,UAAU,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACvD,QAAQ,EAAE,WAAW,CAAC;IACtB,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,aAAa,CAAC;IAC5C,mDAAmD;IACnD,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,eAAe,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC9C,kEAAkE;IAClE,aAAa,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IAC9D,wEAAwE;IACxE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,UAAU,gBAAiB,SAAQ,iBAAiB;IAClD,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACtD,QAAQ,EAAE,KAAK,CAAC;IAChB,6BAA6B;IAC7B,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,kEAAkE;IAClE,aAAa,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IAC9D,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,4BAA4B;IAC5B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACvD,QAAQ,EAAE,WAAW,CAAC;IACtB,8BAA8B;IAC9B,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1E,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,aAAa,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;CAC/D;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,4BAA4B;IAC5B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,QAAQ,EAAE,eAAe,CAAC;IAC1B,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mBAAmB;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACvD,QAAQ,EAAE,WAAW,CAAC;IACtB,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,eAAe,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjF,0CAA0C;IAC1C,aAAa,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;CAC/D;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,eAAe,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC9C,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,eAAe,EAAE;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACvD,QAAQ,EAAE,WAAW,CAAC;IACtB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,6CAA6C;IAC7C,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;IACjB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;IACjD,wCAAwC;IACxC,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,eAAe,GACf,kBAAkB,GAClB,kBAAkB,GAClB,eAAe,GACf,aAAa,GACb,cAAc,GACd,cAAc,GACd,qBAAqB,GACrB,gBAAgB,GAChB,iBAAiB,GACjB,aAAa,GACb,mBAAmB,GACnB,cAAc,GACd,cAAc,GACd,mBAAmB,GACnB,kBAAkB,GAClB,cAAc,GACd,qBAAqB,GACrB,mBAAmB,GACnB,cAAc,CAAC;AAEnB;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,aAAa,CAAC;AAE7C;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,IAAI,aAAa,CAEvE;AAMD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,wEAAwE;IACxE,KAAK,EAAE,KAAK,CAAC;IACb,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,QAAQ,EAAE,cAAc,CAAC;IACzB,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,WAAW,EAAE,mBAAmB,CAAC;IACjC,wCAAwC;IACxC,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,QAAQ,GAAE,cAA2C,GACpD,eAAe,CAWjB;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,eAAe,EACxB,OAAO,GAAE,OAAe,GACvB,MAAM,CAER;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,aAAa,IAAI,CACtD,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,eAAe,KACrB,KAAK,EAAE,CAAC;AAEb;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;KAC5B,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,aAAa,EAAE;QAAE,QAAQ,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC;CAC5F,CAAC;AAMF;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAC/C,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;IACjC,kDAAkD;IAClD,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,uBAAuB,GAAG,KAAK,CAAC;AAE9D;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,eAAe,GACrB,KAAK,IAAI,uBAAuB,CAElC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,2BAA2B,CAAC;IACtC,MAAM,EAAE,6BAA6B,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,MAAM,2BAA2B,GACnC,iBAAiB,GACjB,oBAAoB,GACpB,iBAAiB,GACjB,mBAAmB,GACnB,cAAc,GACd,gBAAgB,GAChB,mBAAmB,CAAC;AAExB;;GAEG;AACH,MAAM,MAAM,6BAA6B,GACrC,qBAAqB,GACrB,wBAAwB,GACxB,qBAAqB,GACrB,uBAAuB,GACvB,kBAAkB,GAClB,oBAAoB,GACpB,uBAAuB,CAAC;AAM5B;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,iBAAiB,CAAC;IACxB,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,eAAe,GAAG,aAAa,GAAG,aAAa,GAAG,WAAW,GAAG,aAAa,CAAC;CACxF;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,iBAAiB,CAAC;IACxB,yBAAyB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,aAAa,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;CAC/D;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,mBAAmB;IACnB,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;IAChD,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,CAAC;IACrB,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,QAAQ,EAAE,aAAa,GAAG,cAAc,GAAG,UAAU,GAAG,WAAW,CAAC;IACpE,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2BAA2B;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,gBAAgB,CAAC;IACvB,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,QAAQ,EAAE,aAAa,GAAG,cAAc,GAAG,UAAU,GAAG,WAAW,CAAC;IACpE,iDAAiD;IACjD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,sBAAsB;IACtB,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,UAAU,CAAC;IACnC,yBAAyB;IACzB,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC3B,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
@@ -3,17 +3,17 @@
3
3
  *
4
4
  * Defines a template system for AI-generated doc blocks. Instead of
5
5
  * specifying low-level layers, positions, and animations, AI can use
6
- * high-level templates like "titleBlock" or "statHighlight" with simple
6
+ * high-level templates like "title" or "statHighlight" with simple
7
7
  * content parameters.
8
8
  *
9
9
  * Templates are expanded into full Block structures at render time,
10
10
  * ensuring consistent styling and reducing AI generation errors.
11
11
  *
12
12
  * Template Types:
13
- * - titleBlock: Doc intro with title + subtitle
13
+ * - title: Doc intro with title + subtitle
14
14
  * - sectionHeader: Colored section divider
15
15
  * - statHighlight: Big number/stat with description
16
- * - quoteBlock: Large centered quote
16
+ * - quote: Large centered quote
17
17
  * - factCard: Key fact with explanation
18
18
  * - twoColumn: Side-by-side comparison
19
19
  * - dateEvent: Timeline-style date + description
@@ -1 +1 @@
1
- {"version":3,"file":"BlockTemplates.js","sourceRoot":"","sources":["../../src/schemas/BlockTemplates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,cAAc,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAStF;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,0DAA0D,CAAC;AAE3F;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,mCAAmC,CAAC;AA+atE;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAe;IAC7C,OAAO,UAAU,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC;AACnE,CAAC;AA2BD;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAY,EACZ,UAAkB,EAClB,WAAmB,EACnB,WAA2B,gBAAgB,CAAC,SAAS;IAErD,MAAM,WAAW,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACrD,OAAO;QACL,KAAK;QACL,UAAU;QACV,WAAW;QACX,QAAQ;QACR,SAAS,EAAE,kBAAkB,CAAC,QAAQ,CAAC;QACvC,WAAW;QACX,MAAM,EAAE,cAAc,CAAC,WAAW,CAAC;KACpC,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAc,EACd,OAAwB,EACxB,UAAmB,KAAK;IAExB,OAAO,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAC/E,CAAC;AAsCD;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAsB;IAEtB,OAAO,UAAU,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC;AACnE,CAAC"}
1
+ {"version":3,"file":"BlockTemplates.js","sourceRoot":"","sources":["../../src/schemas/BlockTemplates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,cAAc,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAStF;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,0DAA0D,CAAC;AAE3F;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,mCAAmC,CAAC;AA0dtE;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAe;IAC7C,OAAO,UAAU,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC;AACnE,CAAC;AA2BD;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAY,EACZ,UAAkB,EAClB,WAAmB,EACnB,WAA2B,gBAAgB,CAAC,SAAS;IAErD,MAAM,WAAW,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACrD,OAAO;QACL,KAAK;QACL,UAAU;QACV,WAAW;QACX,QAAQ;QACR,SAAS,EAAE,kBAAkB,CAAC,QAAQ,CAAC;QACvC,WAAW;QACX,MAAM,EAAE,cAAc,CAAC,WAAW,CAAC;KACpC,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAc,EACd,OAAwB,EACxB,UAAmB,KAAK;IAExB,OAAO,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAC/E,CAAC;AAsCD;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAsB;IAEtB,OAAO,UAAU,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC;AACnE,CAAC"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * ImageEditDoc — JSON document describing a layered, editable image.
3
+ *
4
+ * This is the persistent state of the `<ImageEditor>` component. It lives
5
+ * inside a `<imagebasename>_files/` sidecar folder (exposed as a
6
+ * {@link ContentContainer}) at `state.json`, alongside referenced asset
7
+ * bytes in `assets/` and version snapshots in `.versions/`.
8
+ *
9
+ * Layers compose the existing core {@link Layer} types (image / text /
10
+ * shape) so renderers can share infrastructure with the doc system.
11
+ * Editor-specific metadata (name, visibility, lock, opacity, blendMode)
12
+ * lives in {@link EditorLayerMeta} and is merged onto each layer. The
13
+ * {@link Layer.animation} field is permitted but ignored by the image
14
+ * editor — animations are a slideshow concept.
15
+ *
16
+ * All asset paths in layers (e.g. `ImageLayer.content.src`) are
17
+ * relative to the sidecar root, keeping the document portable.
18
+ */
19
+ import type { ImageLayer, ShapeLayer, TextLayer } from './Doc.js';
20
+ /**
21
+ * Per-layer editor metadata. Merged into each layer so the persisted
22
+ * shape is a single object. All fields optional; sensible defaults
23
+ * apply when absent (visible: true, locked: false, opacity: 1).
24
+ */
25
+ export interface EditorLayerMeta {
26
+ /** Human-readable name shown in the layers panel. */
27
+ name?: string;
28
+ /** When false, the layer is hidden from rendering. Default true. */
29
+ visible?: boolean;
30
+ /** When true, the layer cannot be selected/edited. Default false. */
31
+ locked?: boolean;
32
+ /** 0..1 multiplier on the layer's alpha. Default 1. */
33
+ opacity?: number;
34
+ /**
35
+ * Canvas blend mode (matches the CSS / Canvas2D vocabulary).
36
+ * Default 'source-over' (normal compositing).
37
+ */
38
+ blendMode?: GlobalCompositeOperation;
39
+ }
40
+ /** A layer in an {@link ImageEditDoc}. */
41
+ export type ImageEditLayer = (ImageLayer | TextLayer | ShapeLayer) & EditorLayerMeta;
42
+ /** The layer kinds the image editor supports. */
43
+ export type ImageEditLayerKind = ImageEditLayer['type'];
44
+ /** Canvas dimensions and background. */
45
+ export interface ImageEditCanvas {
46
+ /** Canvas width in pixels. */
47
+ width: number;
48
+ /** Canvas height in pixels. */
49
+ height: number;
50
+ /**
51
+ * Background fill (CSS color, or `'transparent'` for an alpha canvas).
52
+ * Default: `'transparent'`.
53
+ */
54
+ background?: string;
55
+ }
56
+ /** Optional document metadata. */
57
+ export interface ImageEditMeta {
58
+ /** Path to the original source image (sidecar-relative). Set when the doc is seeded from an existing image. */
59
+ sourcePath?: string;
60
+ /** ISO timestamp set on first save. */
61
+ createdAt?: string;
62
+ /** ISO timestamp updated on every save. */
63
+ updatedAt?: string;
64
+ }
65
+ /**
66
+ * The persisted image-editor document.
67
+ *
68
+ * Layers are composited back-to-front: `layers[0]` is the bottom of the stack
69
+ * (typically the base raster), `layers[layers.length - 1]` is the top.
70
+ */
71
+ export interface ImageEditDoc {
72
+ /** Schema version. Bumped on breaking changes. */
73
+ version: 1;
74
+ /** Canvas configuration. */
75
+ canvas: ImageEditCanvas;
76
+ /** Layers, back-to-front. */
77
+ layers: ImageEditLayer[];
78
+ /** Optional metadata. */
79
+ meta?: ImageEditMeta;
80
+ }
81
+ //# sourceMappingURL=ImageEditDoc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageEditDoc.d.ts","sourceRoot":"","sources":["../../src/schemas/ImageEditDoc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAMlE;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,SAAS,CAAC,EAAE,wBAAwB,CAAC;CACtC;AAED,0CAA0C;AAC1C,MAAM,MAAM,cAAc,GAAG,CAAC,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC,GAAG,eAAe,CAAC;AAErF,iDAAiD;AACjD,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AAMxD,wCAAwC;AACxC,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,kCAAkC;AAClC,MAAM,WAAW,aAAa;IAC5B,+GAA+G;IAC/G,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,OAAO,EAAE,CAAC,CAAC;IACX,4BAA4B;IAC5B,MAAM,EAAE,eAAe,CAAC;IACxB,6BAA6B;IAC7B,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,yBAAyB;IACzB,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * ImageEditDoc — JSON document describing a layered, editable image.
3
+ *
4
+ * This is the persistent state of the `<ImageEditor>` component. It lives
5
+ * inside a `<imagebasename>_files/` sidecar folder (exposed as a
6
+ * {@link ContentContainer}) at `state.json`, alongside referenced asset
7
+ * bytes in `assets/` and version snapshots in `.versions/`.
8
+ *
9
+ * Layers compose the existing core {@link Layer} types (image / text /
10
+ * shape) so renderers can share infrastructure with the doc system.
11
+ * Editor-specific metadata (name, visibility, lock, opacity, blendMode)
12
+ * lives in {@link EditorLayerMeta} and is merged onto each layer. The
13
+ * {@link Layer.animation} field is permitted but ignored by the image
14
+ * editor — animations are a slideshow concept.
15
+ *
16
+ * All asset paths in layers (e.g. `ImageLayer.content.src`) are
17
+ * relative to the sidecar root, keeping the document portable.
18
+ */
19
+ export {};
20
+ //# sourceMappingURL=ImageEditDoc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageEditDoc.js","sourceRoot":"","sources":["../../src/schemas/ImageEditDoc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG"}
@@ -3,19 +3,30 @@
3
3
  *
4
4
  * A Theme bundles color palette, typography, visual style, render-style
5
5
  * algorithm, and per-block color schemes into one JSON-serializable object.
6
- * Builders choose a theme from the built-in library or create a custom one
7
- * via `createTheme(base, overrides)`.
6
+ *
7
+ * Built-in themes and customizer-authored themes share this exact schema.
8
+ * Customizer-authored themes additionally specify `seedColors` so the few
9
+ * fields the user picked can be re-edited later; built-ins typically omit
10
+ * `seedColors` and ship with explicit `colors` already filled in.
8
11
  *
9
12
  * Design principles:
10
- * - Fully JSON-serializable (no functions) storable in config / APIs.
11
- * - Doc carries an optional `themeId` pointer; resolution happens at render time.
12
- * - `createTheme` deep-merges a base theme with partial overrides.
13
+ * - Fully JSON-serializable. No functions; no raw CSS font strings.
14
+ * - Font families are structured `FontFamily` references resolved by
15
+ * `resolveFontFamily()` at render time.
16
+ * - Doc carries an optional `themeId`; resolution happens at render time
17
+ * via `resolveTheme(id)`.
18
+ * - `createTheme` deep-merges a base theme with partial overrides;
19
+ * `compileTheme` fills in defaults and derives missing color slots from
20
+ * `seedColors`; both produce a complete `Theme`.
13
21
  */
14
22
  import type { LayoutHints } from './LayoutStrategy.js';
15
23
  import type { AnimationType, TransitionType } from './Doc.js';
16
24
  import type { PersistentLayerConfig } from './BlockTemplates.js';
25
+ /** Current Theme schema version. Bump on breaking changes; loader migrates. */
26
+ export declare const THEME_SCHEMA_VERSION: "1";
27
+ export type ThemeSchemaVersion = typeof THEME_SCHEMA_VERSION;
17
28
  /**
18
- * Core color palette for a theme. Every color is a CSS color string.
29
+ * Core color palette for a theme. Every color is a `#rrggbb` hex string.
19
30
  */
20
31
  export interface ThemeColorPalette {
21
32
  /** Primary accent color */
@@ -47,16 +58,44 @@ export interface ThemeColorScheme {
47
58
  /** Accent / secondary tint */
48
59
  accent: string;
49
60
  }
61
+ /**
62
+ * Optional authoring metadata. When present and `colors` is partial,
63
+ * `compileTheme` derives missing color slots from these seeds via OKLCh
64
+ * lightening / darkening. Round-trips a customizer-authored theme back
65
+ * into editable form.
66
+ */
67
+ export interface ThemeSeedColors {
68
+ primary: string;
69
+ secondary?: string;
70
+ accent?: string;
71
+ background?: string;
72
+ text?: string;
73
+ }
74
+ /** Categorical bucket for a font family — drives default fallback. */
75
+ export type FontFamilyKind = 'sans' | 'serif' | 'mono' | 'display';
76
+ /**
77
+ * Structured reference to a font family. Either a curated stack id (looked
78
+ * up in `AVAILABLE_FONT_STACKS`) or a custom user-supplied name with a
79
+ * structured fallback bucket. Themes never carry raw CSS family strings.
80
+ */
81
+ export type FontFamily = {
82
+ stackId: string;
83
+ } | {
84
+ custom: {
85
+ name: string;
86
+ fallback: 'serif' | 'sans-serif' | 'monospace' | 'system-ui';
87
+ };
88
+ };
50
89
  /**
51
90
  * Typography settings for a theme.
52
91
  */
53
92
  export interface ThemeTypography {
54
93
  /** Font family for body / description text */
55
- bodyFontFamily: string;
94
+ bodyFont: FontFamily;
56
95
  /** Font family for titles and headings */
57
- titleFontFamily: string;
96
+ titleFont: FontFamily;
58
97
  /** Font family for code / monospaced text (optional) */
59
- monoFontFamily?: string;
98
+ monoFont?: FontFamily;
60
99
  /** Multiplier applied to LayoutHints.titleScale (default 1.0) */
61
100
  titleScale?: number;
62
101
  /** Multiplier applied to LayoutHints.bodyScale (default 1.0) */
@@ -106,24 +145,26 @@ export interface RenderStyle {
106
145
  /**
107
146
  * Per-template behavioral hints. Keys are template names, values are
108
147
  * string/number/boolean maps that templates can read to vary their output.
109
- *
110
- * @example
111
- * ```
112
- * { statHighlight: { entrance: 'dramatic' }, titleBlock: { showAccentLine: false } }
113
- * ```
148
+ * Templates that consume hints publish a `hintSchema` export documenting
149
+ * the keys they recognise.
114
150
  */
115
151
  templateHints?: Record<string, Record<string, string | number | boolean>>;
116
152
  }
117
153
  /**
118
- * A complete, JSON-serializable theme definition.
154
+ * A complete, JSON-serializable theme definition. Built-in and customizer-
155
+ * authored themes share this exact shape.
119
156
  */
120
157
  export interface Theme {
158
+ /** Schema version. Always '1' for now. */
159
+ schemaVersion: ThemeSchemaVersion;
121
160
  /** Unique identifier (e.g. "documentary") */
122
161
  id: string;
123
162
  /** Human-readable display name */
124
163
  name: string;
125
164
  /** Short description for theme pickers */
126
165
  description?: string;
166
+ /** Optional authoring seeds (customizer fills these; built-ins typically omit) */
167
+ seedColors?: ThemeSeedColors;
127
168
  /** Color palette */
128
169
  colors: ThemeColorPalette;
129
170
  /** Typography settings */
@@ -150,14 +191,43 @@ export type DeepPartial<T> = {
150
191
  * Create a new theme by deep-merging overrides onto a base theme.
151
192
  * The returned theme gets its own `id` if one is provided in overrides,
152
193
  * otherwise keeps the base theme's `id` suffixed with "-custom".
153
- *
154
- * @example
155
- * ```ts
156
- * const myTheme = createTheme(THEMES.documentary, {
157
- * colors: { primary: '#ff0000' },
158
- * typography: { bodyFontFamily: '"Inter", sans-serif' },
159
- * });
160
- * ```
161
194
  */
162
195
  export declare function createTheme(base: Theme, overrides: DeepPartial<Theme>): Theme;
196
+ /**
197
+ * A Surface Scheme is the light/dark axis, orthogonal to the editorial
198
+ * identity of a Theme. A Theme chooses voice (serif vs sans, muted vs
199
+ * bold, documentary vs magazine); a SurfaceScheme chooses what the paper
200
+ * looks like. Any theme can render on either surface.
201
+ */
202
+ export interface SurfaceScheme {
203
+ /** Identifier — 'light', 'dark', or a custom id. */
204
+ id: string;
205
+ background: string;
206
+ backgroundLight: string;
207
+ text: string;
208
+ textMuted: string;
209
+ }
210
+ /** Near-white paper with dark text — standard light mode. */
211
+ export declare const LIGHT_SURFACE: SurfaceScheme;
212
+ /** Dark charcoal paper with light text — standard dark mode. */
213
+ export declare const DARK_SURFACE: SurfaceScheme;
214
+ /**
215
+ * Overlay a SurfaceScheme's surface colors onto a Theme's palette,
216
+ * leaving everything else (primary, highlight, warning, typography,
217
+ * style, renderStyle, colorSchemes) untouched.
218
+ */
219
+ export declare function applySurface(theme: Theme, surface: SurfaceScheme): Theme;
220
+ /**
221
+ * Register a Theme so it can be looked up by id via `resolveTheme(id)`.
222
+ * Lets `Doc.themeId` round-trip through Doc serialization for custom themes.
223
+ *
224
+ * Registered themes take precedence over built-ins with the same id.
225
+ */
226
+ export declare function registerTheme(theme: Theme): void;
227
+ /** Remove a previously registered theme. */
228
+ export declare function unregisterTheme(id: string): void;
229
+ /** Snapshot of all currently registered (non-built-in) themes. */
230
+ export declare function getRegisteredThemes(): Theme[];
231
+ /** @internal — used by themeLibrary's `resolveTheme` to check the registry first. */
232
+ export declare function lookupRegisteredTheme(id: string | undefined): Theme | undefined;
163
233
  //# sourceMappingURL=Theme.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Theme.d.ts","sourceRoot":"","sources":["../../src/schemas/Theme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Theme.d.ts","sourceRoot":"","sources":["../../src/schemas/Theme.ts"],"names":[],"mappings":"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"}
@@ -3,15 +3,28 @@
3
3
  *
4
4
  * A Theme bundles color palette, typography, visual style, render-style
5
5
  * algorithm, and per-block color schemes into one JSON-serializable object.
6
- * Builders choose a theme from the built-in library or create a custom one
7
- * via `createTheme(base, overrides)`.
6
+ *
7
+ * Built-in themes and customizer-authored themes share this exact schema.
8
+ * Customizer-authored themes additionally specify `seedColors` so the few
9
+ * fields the user picked can be re-edited later; built-ins typically omit
10
+ * `seedColors` and ship with explicit `colors` already filled in.
8
11
  *
9
12
  * Design principles:
10
- * - Fully JSON-serializable (no functions) storable in config / APIs.
11
- * - Doc carries an optional `themeId` pointer; resolution happens at render time.
12
- * - `createTheme` deep-merges a base theme with partial overrides.
13
+ * - Fully JSON-serializable. No functions; no raw CSS font strings.
14
+ * - Font families are structured `FontFamily` references resolved by
15
+ * `resolveFontFamily()` at render time.
16
+ * - Doc carries an optional `themeId`; resolution happens at render time
17
+ * via `resolveTheme(id)`.
18
+ * - `createTheme` deep-merges a base theme with partial overrides;
19
+ * `compileTheme` fills in defaults and derives missing color slots from
20
+ * `seedColors`; both produce a complete `Theme`.
13
21
  */
14
22
  // ============================================
23
+ // Schema version
24
+ // ============================================
25
+ /** Current Theme schema version. Bump on breaking changes; loader migrates. */
26
+ export const THEME_SCHEMA_VERSION = '1';
27
+ // ============================================
15
28
  // Helpers
16
29
  // ============================================
17
30
  /**
@@ -43,20 +56,74 @@ function deepMerge(target, source) {
43
56
  * Create a new theme by deep-merging overrides onto a base theme.
44
57
  * The returned theme gets its own `id` if one is provided in overrides,
45
58
  * otherwise keeps the base theme's `id` suffixed with "-custom".
46
- *
47
- * @example
48
- * ```ts
49
- * const myTheme = createTheme(THEMES.documentary, {
50
- * colors: { primary: '#ff0000' },
51
- * typography: { bodyFontFamily: '"Inter", sans-serif' },
52
- * });
53
- * ```
54
59
  */
55
60
  export function createTheme(base, overrides) {
56
61
  const merged = deepMerge(base, overrides);
57
62
  if (!overrides.id && merged.id === base.id) {
58
63
  merged.id = `${base.id}-custom`;
59
64
  }
65
+ if (!merged.schemaVersion)
66
+ merged.schemaVersion = THEME_SCHEMA_VERSION;
60
67
  return merged;
61
68
  }
69
+ /** Near-white paper with dark text — standard light mode. */
70
+ export const LIGHT_SURFACE = {
71
+ id: 'light',
72
+ background: '#ffffff',
73
+ backgroundLight: '#f5f5f5',
74
+ text: '#1a1a1a',
75
+ textMuted: '#666666',
76
+ };
77
+ /** Dark charcoal paper with light text — standard dark mode. */
78
+ export const DARK_SURFACE = {
79
+ id: 'dark',
80
+ background: '#1a202c',
81
+ backgroundLight: '#2d3748',
82
+ text: '#f0f0f0',
83
+ textMuted: '#a0aec0',
84
+ };
85
+ /**
86
+ * Overlay a SurfaceScheme's surface colors onto a Theme's palette,
87
+ * leaving everything else (primary, highlight, warning, typography,
88
+ * style, renderStyle, colorSchemes) untouched.
89
+ */
90
+ export function applySurface(theme, surface) {
91
+ return {
92
+ ...theme,
93
+ colors: {
94
+ ...theme.colors,
95
+ background: surface.background,
96
+ backgroundLight: surface.backgroundLight,
97
+ text: surface.text,
98
+ textMuted: surface.textMuted,
99
+ },
100
+ };
101
+ }
102
+ // ============================================
103
+ // Runtime registry — for custom themes
104
+ // ============================================
105
+ const CUSTOM_THEME_REGISTRY = new Map();
106
+ /**
107
+ * Register a Theme so it can be looked up by id via `resolveTheme(id)`.
108
+ * Lets `Doc.themeId` round-trip through Doc serialization for custom themes.
109
+ *
110
+ * Registered themes take precedence over built-ins with the same id.
111
+ */
112
+ export function registerTheme(theme) {
113
+ CUSTOM_THEME_REGISTRY.set(theme.id, theme);
114
+ }
115
+ /** Remove a previously registered theme. */
116
+ export function unregisterTheme(id) {
117
+ CUSTOM_THEME_REGISTRY.delete(id);
118
+ }
119
+ /** Snapshot of all currently registered (non-built-in) themes. */
120
+ export function getRegisteredThemes() {
121
+ return Array.from(CUSTOM_THEME_REGISTRY.values());
122
+ }
123
+ /** @internal — used by themeLibrary's `resolveTheme` to check the registry first. */
124
+ export function lookupRegisteredTheme(id) {
125
+ if (!id)
126
+ return undefined;
127
+ return CUSTOM_THEME_REGISTRY.get(id);
128
+ }
62
129
  //# sourceMappingURL=Theme.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Theme.js","sourceRoot":"","sources":["../../src/schemas/Theme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAsKH,+CAA+C;AAC/C,UAAU;AACV,+CAA+C;AAE/C;;;GAGG;AACH,SAAS,SAAS,CAAoC,MAAS,EAAE,MAAsB;IACrF,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAA6B,CAAC;IACxD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,MAAM,MAAM,GAAI,MAAkC,CAAC,GAAG,CAAC,CAAC;QACxD,MAAM,MAAM,GAAI,MAAkC,CAAC,GAAG,CAAC,CAAC;QACxD,IACE,MAAM,KAAK,IAAI;YACf,MAAM,KAAK,SAAS;YACpB,OAAO,MAAM,KAAK,QAAQ;YAC1B,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YACtB,MAAM,KAAK,IAAI;YACf,MAAM,KAAK,SAAS;YACpB,OAAO,MAAM,KAAK,QAAQ;YAC1B,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EACtB,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CACrB,MAAiC,EACjC,MAA8C,CAC/C,CAAC;QACJ,CAAC;aAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,MAAW,CAAC;AACrB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW,CAAC,IAAW,EAAE,SAA6B;IACpE,MAAM,MAAM,GAAG,SAAS,CACtB,IAA0C,EAC1C,SAAiD,CAC9B,CAAC;IACtB,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,EAAE,SAAS,CAAC;IAClC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"Theme.js","sourceRoot":"","sources":["../../src/schemas/Theme.ts"],"names":[],"mappings":"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"}