@prismicio/types-internal 3.17.0 → 4.0.0-canary.3fe5f1e

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 (758) hide show
  1. package/README.md +36 -20
  2. package/dist/_virtual/_rolldown/runtime.js +13 -0
  3. package/dist/common/asset.d.ts +22 -0
  4. package/dist/common/asset.d.ts.map +1 -0
  5. package/dist/common/asset.js +21 -0
  6. package/dist/common/asset.js.map +1 -0
  7. package/dist/common/embed.d.ts +21 -0
  8. package/dist/common/embed.d.ts.map +1 -0
  9. package/dist/common/embed.js +20 -0
  10. package/dist/common/embed.js.map +1 -0
  11. package/dist/common/hexaColorCode.d.ts +8 -0
  12. package/dist/common/hexaColorCode.d.ts.map +1 -0
  13. package/dist/common/hexaColorCode.js +8 -0
  14. package/dist/common/hexaColorCode.js.map +1 -0
  15. package/dist/common/nonEmptyString.d.ts +8 -0
  16. package/dist/common/nonEmptyString.d.ts.map +1 -0
  17. package/dist/common/nonEmptyString.js +7 -0
  18. package/dist/common/nonEmptyString.js.map +1 -0
  19. package/dist/common/widgetKey.d.ts +8 -0
  20. package/dist/common/widgetKey.d.ts.map +1 -0
  21. package/dist/common/widgetKey.js +8 -0
  22. package/dist/common/widgetKey.js.map +1 -0
  23. package/dist/content/boolean.d.ts +11 -0
  24. package/dist/content/boolean.d.ts.map +1 -0
  25. package/dist/content/boolean.js +11 -0
  26. package/dist/content/boolean.js.map +1 -0
  27. package/dist/content/codec/boolean.js +31 -0
  28. package/dist/content/codec/boolean.js.map +1 -0
  29. package/dist/content/codec/document.js +49 -0
  30. package/dist/content/codec/document.js.map +1 -0
  31. package/dist/content/codec/embed.js +42 -0
  32. package/dist/content/codec/embed.js.map +1 -0
  33. package/dist/content/codec/empty.js +35 -0
  34. package/dist/content/codec/empty.js.map +1 -0
  35. package/dist/content/codec/field.js +41 -0
  36. package/dist/content/codec/field.js.map +1 -0
  37. package/dist/content/codec/geopoint.js +32 -0
  38. package/dist/content/codec/geopoint.js.map +1 -0
  39. package/dist/content/codec/group.js +127 -0
  40. package/dist/content/codec/group.js.map +1 -0
  41. package/dist/content/codec/image.js +44 -0
  42. package/dist/content/codec/image.js.map +1 -0
  43. package/dist/content/codec/integrationField.js +31 -0
  44. package/dist/content/codec/integrationField.js.map +1 -0
  45. package/dist/content/codec/legacyContentCtx.d.ts +50 -0
  46. package/dist/content/codec/legacyContentCtx.d.ts.map +1 -0
  47. package/dist/content/codec/legacyContentCtx.js +68 -0
  48. package/dist/content/codec/legacyContentCtx.js.map +1 -0
  49. package/dist/content/codec/link.js +93 -0
  50. package/dist/content/codec/link.js.map +1 -0
  51. package/dist/content/codec/nestable.js +91 -0
  52. package/dist/content/codec/nestable.js.map +1 -0
  53. package/dist/content/codec/repeatable.js +56 -0
  54. package/dist/content/codec/repeatable.js.map +1 -0
  55. package/dist/content/codec/richText.js +87 -0
  56. package/dist/content/codec/richText.js.map +1 -0
  57. package/dist/content/codec/separator.js +26 -0
  58. package/dist/content/codec/separator.js.map +1 -0
  59. package/dist/content/codec/slice.js +220 -0
  60. package/dist/content/codec/slice.js.map +1 -0
  61. package/dist/content/codec/slices.js +106 -0
  62. package/dist/content/codec/slices.js.map +1 -0
  63. package/dist/content/codec/table.js +56 -0
  64. package/dist/content/codec/table.js.map +1 -0
  65. package/dist/content/codec/uid.js +31 -0
  66. package/dist/content/codec/uid.js.map +1 -0
  67. package/dist/content/codec/widget.js +39 -0
  68. package/dist/content/codec/widget.js.map +1 -0
  69. package/dist/content/document.d.ts +9 -0
  70. package/dist/content/document.d.ts.map +1 -0
  71. package/dist/content/document.js +9 -0
  72. package/dist/content/document.js.map +1 -0
  73. package/dist/content/embed.d.ts +24 -0
  74. package/dist/content/embed.d.ts.map +1 -0
  75. package/dist/content/embed.js +12 -0
  76. package/dist/content/embed.js.map +1 -0
  77. package/dist/content/empty.d.ts +11 -0
  78. package/dist/content/empty.d.ts.map +1 -0
  79. package/dist/content/empty.js +11 -0
  80. package/dist/content/empty.js.map +1 -0
  81. package/dist/content/field.d.ts +49 -0
  82. package/dist/content/field.d.ts.map +1 -0
  83. package/dist/content/field.js +52 -0
  84. package/dist/content/field.js.map +1 -0
  85. package/dist/content/geopoint.d.ts +14 -0
  86. package/dist/content/geopoint.d.ts.map +1 -0
  87. package/dist/content/geopoint.js +9 -0
  88. package/dist/content/geopoint.js.map +1 -0
  89. package/dist/content/group.d.ts +19 -0
  90. package/dist/content/group.d.ts.map +1 -0
  91. package/dist/content/group.js +19 -0
  92. package/dist/content/group.js.map +1 -0
  93. package/dist/content/image.d.ts +52 -0
  94. package/dist/content/image.d.ts.map +1 -0
  95. package/dist/content/image.js +10 -0
  96. package/dist/content/image.js.map +1 -0
  97. package/dist/content/integrationField.d.ts +11 -0
  98. package/dist/content/integrationField.d.ts.map +1 -0
  99. package/dist/content/integrationField.js +11 -0
  100. package/dist/content/integrationField.js.map +1 -0
  101. package/dist/content/legacy/boolean.d.ts +1 -0
  102. package/dist/content/legacy/boolean.js +7 -0
  103. package/dist/content/legacy/boolean.js.map +1 -0
  104. package/dist/content/legacy/document.d.ts +8 -0
  105. package/dist/content/legacy/document.d.ts.map +1 -0
  106. package/dist/content/legacy/document.js +15 -0
  107. package/dist/content/legacy/document.js.map +1 -0
  108. package/dist/content/legacy/embed.d.ts +1 -0
  109. package/dist/content/legacy/embed.js +23 -0
  110. package/dist/content/legacy/embed.js.map +1 -0
  111. package/dist/content/legacy/empty.d.ts +1 -0
  112. package/dist/content/legacy/empty.js +7 -0
  113. package/dist/content/legacy/empty.js.map +1 -0
  114. package/dist/content/legacy/field.d.ts +1 -0
  115. package/dist/content/legacy/field.js +7 -0
  116. package/dist/content/legacy/field.js.map +1 -0
  117. package/dist/content/legacy/geopoint.d.ts +1 -0
  118. package/dist/content/legacy/geopoint.js +10 -0
  119. package/dist/content/legacy/geopoint.js.map +1 -0
  120. package/dist/content/legacy/group.d.ts +9 -0
  121. package/dist/content/legacy/group.d.ts.map +1 -0
  122. package/dist/content/legacy/group.js +10 -0
  123. package/dist/content/legacy/group.js.map +1 -0
  124. package/dist/content/legacy/image.d.ts +1 -0
  125. package/dist/content/legacy/image.js +33 -0
  126. package/dist/content/legacy/image.js.map +1 -0
  127. package/dist/content/legacy/integrationField.d.ts +1 -0
  128. package/dist/content/legacy/integrationField.js +7 -0
  129. package/dist/content/legacy/integrationField.js.map +1 -0
  130. package/dist/content/legacy/link.d.ts +41 -0
  131. package/dist/content/legacy/link.d.ts.map +1 -0
  132. package/dist/content/legacy/link.js +88 -0
  133. package/dist/content/legacy/link.js.map +1 -0
  134. package/dist/content/legacy/nestable.d.ts +1 -0
  135. package/dist/content/legacy/nestable.js +32 -0
  136. package/dist/content/legacy/nestable.js.map +1 -0
  137. package/dist/content/legacy/repeatable.d.ts +1 -0
  138. package/dist/content/legacy/repeatable.js +7 -0
  139. package/dist/content/legacy/repeatable.js.map +1 -0
  140. package/dist/content/legacy/richText.d.ts +109 -0
  141. package/dist/content/legacy/richText.d.ts.map +1 -0
  142. package/dist/content/legacy/richText.js +100 -0
  143. package/dist/content/legacy/richText.js.map +1 -0
  144. package/dist/content/legacy/separator.d.ts +1 -0
  145. package/dist/content/legacy/separator.js +7 -0
  146. package/dist/content/legacy/separator.js.map +1 -0
  147. package/dist/content/legacy/slice.js +22 -0
  148. package/dist/content/legacy/slice.js.map +1 -0
  149. package/dist/content/legacy/slices.js +13 -0
  150. package/dist/content/legacy/slices.js.map +1 -0
  151. package/dist/content/legacy/table.d.ts +1 -0
  152. package/dist/content/legacy/table.js +19 -0
  153. package/dist/content/legacy/table.js.map +1 -0
  154. package/dist/content/legacy/uid.js +7 -0
  155. package/dist/content/legacy/uid.js.map +1 -0
  156. package/dist/content/link.d.ts +163 -0
  157. package/dist/content/link.d.ts.map +1 -0
  158. package/dist/content/link.js +50 -0
  159. package/dist/content/link.js.map +1 -0
  160. package/dist/content/nestable.d.ts +19 -0
  161. package/dist/content/nestable.d.ts.map +1 -0
  162. package/dist/content/nestable.js +56 -0
  163. package/dist/content/nestable.js.map +1 -0
  164. package/dist/content/repeatable.d.ts +97 -0
  165. package/dist/content/repeatable.d.ts.map +1 -0
  166. package/dist/content/repeatable.js +17 -0
  167. package/dist/content/repeatable.js.map +1 -0
  168. package/dist/content/richText.d.ts +91 -0
  169. package/dist/content/richText.d.ts.map +1 -0
  170. package/dist/content/richText.js +24 -0
  171. package/dist/content/richText.js.map +1 -0
  172. package/dist/content/separator.d.ts +10 -0
  173. package/dist/content/separator.d.ts.map +1 -0
  174. package/dist/content/separator.js +8 -0
  175. package/dist/content/separator.js.map +1 -0
  176. package/dist/content/slice.d.ts +24 -0
  177. package/dist/content/slice.d.ts.map +1 -0
  178. package/dist/content/slice.js +27 -0
  179. package/dist/content/slice.js.map +1 -0
  180. package/dist/content/slices.d.ts +56 -0
  181. package/dist/content/slices.d.ts.map +1 -0
  182. package/dist/content/slices.js +24 -0
  183. package/dist/content/slices.js.map +1 -0
  184. package/dist/content/table.d.ts +21 -0
  185. package/dist/content/table.d.ts.map +1 -0
  186. package/dist/content/table.js +13 -0
  187. package/dist/content/table.js.map +1 -0
  188. package/dist/content/uid.d.ts +11 -0
  189. package/dist/content/uid.d.ts.map +1 -0
  190. package/dist/content/uid.js +11 -0
  191. package/dist/content/uid.js.map +1 -0
  192. package/dist/content/widget.d.ts +11 -0
  193. package/dist/content/widget.d.ts.map +1 -0
  194. package/dist/content/widget.js +16 -0
  195. package/dist/content/widget.js.map +1 -0
  196. package/dist/helpers/contentPath.d.ts +15 -0
  197. package/dist/helpers/contentPath.d.ts.map +1 -0
  198. package/dist/helpers/contentPath.js +30 -0
  199. package/dist/helpers/contentPath.js.map +1 -0
  200. package/dist/helpers/customTypeModel.d.ts +15 -0
  201. package/dist/helpers/customTypeModel.d.ts.map +1 -0
  202. package/dist/helpers/customTypeModel.js +85 -0
  203. package/dist/helpers/customTypeModel.js.map +1 -0
  204. package/dist/helpers/documentContent.d.ts +20 -0
  205. package/dist/helpers/documentContent.d.ts.map +1 -0
  206. package/dist/helpers/documentContent.js +64 -0
  207. package/dist/helpers/documentContent.js.map +1 -0
  208. package/dist/helpers/sliceContent.d.ts +12 -0
  209. package/dist/helpers/sliceContent.d.ts.map +1 -0
  210. package/dist/helpers/sliceContent.js +60 -0
  211. package/dist/helpers/sliceContent.js.map +1 -0
  212. package/dist/helpers/traverseContent.d.ts +84 -0
  213. package/dist/helpers/traverseContent.d.ts.map +1 -0
  214. package/dist/helpers/traverseContent.js +374 -0
  215. package/dist/helpers/traverseContent.js.map +1 -0
  216. package/dist/helpers/traverseContentWithModel.d.ts +84 -0
  217. package/dist/helpers/traverseContentWithModel.d.ts.map +1 -0
  218. package/dist/helpers/traverseContentWithModel.js +388 -0
  219. package/dist/helpers/traverseContentWithModel.js.map +1 -0
  220. package/dist/index.d.ts +56 -0
  221. package/dist/index.js +9 -0
  222. package/dist/io-ts.d.ts +4363 -0
  223. package/dist/io-ts.d.ts.map +1 -0
  224. package/dist/io-ts.js +220 -0
  225. package/dist/io-ts.js.map +1 -0
  226. package/dist/model/boolean.d.ts +16 -0
  227. package/dist/model/boolean.d.ts.map +1 -0
  228. package/dist/model/boolean.js +16 -0
  229. package/dist/model/boolean.js.map +1 -0
  230. package/dist/model/color.d.ts +15 -0
  231. package/dist/model/color.d.ts.map +1 -0
  232. package/dist/model/color.js +15 -0
  233. package/dist/model/color.js.map +1 -0
  234. package/dist/model/customType.d.ts +31 -0
  235. package/dist/model/customType.d.ts.map +1 -0
  236. package/dist/model/customType.js +18 -0
  237. package/dist/model/customType.js.map +1 -0
  238. package/dist/model/date.d.ts +16 -0
  239. package/dist/model/date.d.ts.map +1 -0
  240. package/dist/model/date.js +16 -0
  241. package/dist/model/date.js.map +1 -0
  242. package/dist/model/embed.d.ts +16 -0
  243. package/dist/model/embed.d.ts.map +1 -0
  244. package/dist/model/embed.js +16 -0
  245. package/dist/model/embed.js.map +1 -0
  246. package/dist/model/geopoint.d.ts +14 -0
  247. package/dist/model/geopoint.d.ts.map +1 -0
  248. package/dist/model/geopoint.js +12 -0
  249. package/dist/model/geopoint.js.map +1 -0
  250. package/dist/model/group.d.ts +567 -0
  251. package/dist/model/group.d.ts.map +1 -0
  252. package/dist/model/group.js +23 -0
  253. package/dist/model/group.js.map +1 -0
  254. package/dist/model/image.d.ts +24 -0
  255. package/dist/model/image.d.ts.map +1 -0
  256. package/dist/model/image.js +41 -0
  257. package/dist/model/image.js.map +1 -0
  258. package/dist/model/integrationField.d.ts +16 -0
  259. package/dist/model/integrationField.d.ts.map +1 -0
  260. package/dist/model/integrationField.js +16 -0
  261. package/dist/model/integrationField.js.map +1 -0
  262. package/dist/model/link.d.ts +48 -0
  263. package/dist/model/link.d.ts.map +1 -0
  264. package/dist/model/link.js +94 -0
  265. package/dist/model/link.js.map +1 -0
  266. package/dist/model/nestable.d.ts +23 -0
  267. package/dist/model/nestable.d.ts.map +1 -0
  268. package/dist/model/nestable.js +40 -0
  269. package/dist/model/nestable.js.map +1 -0
  270. package/dist/model/number.d.ts +18 -0
  271. package/dist/model/number.d.ts.map +1 -0
  272. package/dist/model/number.js +19 -0
  273. package/dist/model/number.js.map +1 -0
  274. package/dist/model/range.d.ts +18 -0
  275. package/dist/model/range.d.ts.map +1 -0
  276. package/dist/model/range.js +19 -0
  277. package/dist/model/range.js.map +1 -0
  278. package/dist/model/richText.d.ts +24 -0
  279. package/dist/model/richText.d.ts.map +1 -0
  280. package/dist/model/richText.js +73 -0
  281. package/dist/model/richText.js.map +1 -0
  282. package/dist/model/section.d.ts +11 -0
  283. package/dist/model/section.d.ts.map +1 -0
  284. package/dist/model/section.js +10 -0
  285. package/dist/model/section.js.map +1 -0
  286. package/dist/model/select.d.ts +17 -0
  287. package/dist/model/select.d.ts.map +1 -0
  288. package/dist/model/select.js +22 -0
  289. package/dist/model/select.js.map +1 -0
  290. package/dist/model/separator.d.ts +13 -0
  291. package/dist/model/separator.d.ts.map +1 -0
  292. package/dist/model/separator.js +11 -0
  293. package/dist/model/separator.js.map +1 -0
  294. package/dist/model/slice.d.ts +1476 -0
  295. package/dist/model/slice.d.ts.map +1 -0
  296. package/dist/model/slice.js +68 -0
  297. package/dist/model/slice.js.map +1 -0
  298. package/dist/model/slices.d.ts +33 -0
  299. package/dist/model/slices.d.ts.map +1 -0
  300. package/dist/model/slices.js +29 -0
  301. package/dist/model/slices.js.map +1 -0
  302. package/dist/model/table.d.ts +14 -0
  303. package/dist/model/table.d.ts.map +1 -0
  304. package/dist/model/table.js +22 -0
  305. package/dist/model/table.js.map +1 -0
  306. package/dist/model/text.d.ts +16 -0
  307. package/dist/model/text.d.ts.map +1 -0
  308. package/dist/model/text.js +16 -0
  309. package/dist/model/text.js.map +1 -0
  310. package/dist/model/timestamp.d.ts +16 -0
  311. package/dist/model/timestamp.d.ts.map +1 -0
  312. package/dist/model/timestamp.js +16 -0
  313. package/dist/model/timestamp.js.map +1 -0
  314. package/dist/model/uid.d.ts +16 -0
  315. package/dist/model/uid.d.ts.map +1 -0
  316. package/dist/model/uid.js +16 -0
  317. package/dist/model/uid.js.map +1 -0
  318. package/dist/model/widget.d.ts +60 -0
  319. package/dist/model/widget.d.ts.map +1 -0
  320. package/dist/model/widget.js +47 -0
  321. package/dist/model/widget.js.map +1 -0
  322. package/dist/zod4.d.ts +2321 -0
  323. package/dist/zod4.d.ts.map +1 -0
  324. package/dist/zod4.js +132 -0
  325. package/dist/zod4.js.map +1 -0
  326. package/package.json +55 -58
  327. package/src/common/asset.ts +29 -0
  328. package/src/common/embed.ts +27 -0
  329. package/src/common/hexaColorCode.ts +11 -0
  330. package/src/common/nonEmptyString.ts +9 -0
  331. package/src/common/widgetKey.ts +11 -0
  332. package/src/content/boolean.ts +23 -0
  333. package/src/content/codec/boolean.ts +38 -0
  334. package/src/content/codec/document.ts +60 -0
  335. package/src/content/codec/embed.ts +55 -0
  336. package/src/content/codec/empty.ts +49 -0
  337. package/src/content/codec/field.ts +96 -0
  338. package/src/content/codec/geopoint.ts +40 -0
  339. package/src/content/codec/group.ts +163 -0
  340. package/src/content/codec/image.ts +50 -0
  341. package/src/content/codec/integrationField.ts +38 -0
  342. package/src/content/{LegacyContentCtx.ts → codec/legacyContentCtx.ts} +17 -17
  343. package/src/content/codec/link.ts +103 -0
  344. package/src/content/codec/nestable.ts +146 -0
  345. package/src/content/codec/repeatable.ts +68 -0
  346. package/src/content/codec/richText.ts +117 -0
  347. package/src/content/codec/separator.ts +33 -0
  348. package/src/content/codec/slice.ts +276 -0
  349. package/src/content/codec/slices.ts +130 -0
  350. package/src/content/codec/table.ts +65 -0
  351. package/src/content/codec/uid.ts +36 -0
  352. package/src/content/codec/widget.ts +58 -0
  353. package/src/content/document.ts +8 -0
  354. package/src/content/embed.ts +12 -0
  355. package/src/content/empty.ts +10 -0
  356. package/src/content/field.ts +94 -0
  357. package/src/content/geopoint.ts +11 -0
  358. package/src/content/group.ts +99 -0
  359. package/src/content/image.ts +103 -0
  360. package/src/content/integrationField.ts +10 -0
  361. package/src/content/legacy/boolean.ts +5 -0
  362. package/src/content/legacy/document.ts +25 -0
  363. package/src/content/legacy/embed.ts +23 -0
  364. package/src/content/legacy/empty.ts +10 -0
  365. package/src/content/legacy/field.ts +8 -0
  366. package/src/content/legacy/geopoint.ts +10 -0
  367. package/src/content/legacy/group.ts +23 -0
  368. package/src/content/legacy/image.ts +43 -0
  369. package/src/content/legacy/integrationField.ts +5 -0
  370. package/src/content/legacy/link.ts +194 -0
  371. package/src/content/legacy/nestable.ts +55 -0
  372. package/src/content/legacy/repeatable.ts +7 -0
  373. package/src/content/legacy/richText.ts +198 -0
  374. package/src/content/legacy/separator.ts +6 -0
  375. package/src/content/legacy/slice.ts +38 -0
  376. package/src/content/legacy/slices.ts +17 -0
  377. package/src/content/legacy/table.ts +39 -0
  378. package/src/content/legacy/uid.ts +6 -0
  379. package/src/content/legacy/widget.ts +19 -0
  380. package/src/content/link.ts +154 -0
  381. package/src/content/nestable.ts +126 -0
  382. package/src/content/repeatable.ts +21 -0
  383. package/src/content/richText.ts +54 -0
  384. package/src/content/separator.ts +9 -0
  385. package/src/content/slice.ts +41 -0
  386. package/src/content/slices.ts +57 -0
  387. package/src/content/table.ts +14 -0
  388. package/src/content/uid.ts +10 -0
  389. package/src/content/widget.ts +21 -0
  390. package/src/content/{fields/withDefaultValues.ts → withDefaultValues.ts} +34 -39
  391. package/src/helpers/contentPath.ts +35 -0
  392. package/src/helpers/customTypeModel.ts +113 -0
  393. package/src/helpers/documentContent.ts +108 -0
  394. package/src/helpers/sliceContent.ts +86 -0
  395. package/src/helpers/traverseContent.ts +594 -0
  396. package/src/helpers/traverseContentWithModel.ts +616 -0
  397. package/src/index.ts +123 -0
  398. package/src/io-ts.ts +351 -0
  399. package/src/model/boolean.ts +15 -0
  400. package/src/model/color.ts +14 -0
  401. package/src/model/customType.ts +26 -0
  402. package/src/model/date.ts +15 -0
  403. package/src/model/diff/index.ts +4 -0
  404. package/src/{customtypes/diff/SharedSlice.ts → model/diff/sharedSlice.ts} +16 -18
  405. package/src/model/diff/utils.ts +45 -0
  406. package/src/model/diff/variation.ts +155 -0
  407. package/src/model/diff/widgets.ts +15 -0
  408. package/src/model/embed.ts +15 -0
  409. package/src/model/geopoint.ts +13 -0
  410. package/src/model/group.ts +39 -0
  411. package/src/model/image.ts +54 -0
  412. package/src/model/integrationField.ts +15 -0
  413. package/src/model/link.ts +141 -0
  414. package/src/model/nestable.ts +71 -0
  415. package/src/model/number.ts +26 -0
  416. package/src/model/range.ts +26 -0
  417. package/src/model/richText.ts +106 -0
  418. package/src/model/section.ts +12 -0
  419. package/src/model/select.ts +30 -0
  420. package/src/model/separator.ts +12 -0
  421. package/src/model/slice.ts +133 -0
  422. package/src/model/slices.ts +54 -0
  423. package/src/model/table.ts +29 -0
  424. package/src/model/text.ts +15 -0
  425. package/src/model/timestamp.ts +15 -0
  426. package/src/model/uid.ts +15 -0
  427. package/src/model/widget.ts +63 -0
  428. package/src/zod4.ts +187 -0
  429. package/lib/common/Asset.d.ts +0 -16
  430. package/lib/common/Asset.js +0 -11
  431. package/lib/common/Embed.d.ts +0 -15
  432. package/lib/common/Embed.js +0 -10
  433. package/lib/common/HexaColorCode.d.ts +0 -4
  434. package/lib/common/HexaColorCode.js +0 -7
  435. package/lib/common/UUID.d.ts +0 -6
  436. package/lib/common/UUID.js +0 -8
  437. package/lib/common/WidgetKey.d.ts +0 -3
  438. package/lib/common/WidgetKey.js +0 -8
  439. package/lib/common/index.d.ts +0 -3
  440. package/lib/common/index.js +0 -6
  441. package/lib/content/Document.d.ts +0 -11813
  442. package/lib/content/Document.js +0 -364
  443. package/lib/content/LegacyContentCtx.d.ts +0 -64
  444. package/lib/content/LegacyContentCtx.js +0 -130
  445. package/lib/content/fields/EmptyContent.d.ts +0 -16
  446. package/lib/content/fields/EmptyContent.js +0 -30
  447. package/lib/content/fields/GroupContent.d.ts +0 -53
  448. package/lib/content/fields/GroupContent.js +0 -307
  449. package/lib/content/fields/UIDContent.d.ts +0 -16
  450. package/lib/content/fields/UIDContent.js +0 -25
  451. package/lib/content/fields/WidgetContent.d.ts +0 -11749
  452. package/lib/content/fields/WidgetContent.js +0 -57
  453. package/lib/content/fields/index.d.ts +0 -6
  454. package/lib/content/fields/index.js +0 -9
  455. package/lib/content/fields/nestable/BooleanContent.d.ts +0 -18
  456. package/lib/content/fields/nestable/BooleanContent.js +0 -35
  457. package/lib/content/fields/nestable/EmbedContent.d.ts +0 -78
  458. package/lib/content/fields/nestable/EmbedContent.js +0 -56
  459. package/lib/content/fields/nestable/FieldContent/ColorContent.d.ts +0 -18
  460. package/lib/content/fields/nestable/FieldContent/ColorContent.js +0 -35
  461. package/lib/content/fields/nestable/FieldContent/DateContent.d.ts +0 -18
  462. package/lib/content/fields/nestable/FieldContent/DateContent.js +0 -35
  463. package/lib/content/fields/nestable/FieldContent/NumberContent.d.ts +0 -18
  464. package/lib/content/fields/nestable/FieldContent/NumberContent.js +0 -35
  465. package/lib/content/fields/nestable/FieldContent/RangeContent.d.ts +0 -18
  466. package/lib/content/fields/nestable/FieldContent/RangeContent.js +0 -35
  467. package/lib/content/fields/nestable/FieldContent/SelectContent.d.ts +0 -20
  468. package/lib/content/fields/nestable/FieldContent/SelectContent.js +0 -46
  469. package/lib/content/fields/nestable/FieldContent/TextContent.d.ts +0 -18
  470. package/lib/content/fields/nestable/FieldContent/TextContent.js +0 -35
  471. package/lib/content/fields/nestable/FieldContent/TimestampContent.d.ts +0 -18
  472. package/lib/content/fields/nestable/FieldContent/TimestampContent.js +0 -35
  473. package/lib/content/fields/nestable/FieldContent/common.d.ts +0 -1
  474. package/lib/content/fields/nestable/FieldContent/common.js +0 -4
  475. package/lib/content/fields/nestable/FieldContent/index.d.ts +0 -49
  476. package/lib/content/fields/nestable/FieldContent/index.js +0 -38
  477. package/lib/content/fields/nestable/GeoPointContent.d.ts +0 -33
  478. package/lib/content/fields/nestable/GeoPointContent.js +0 -31
  479. package/lib/content/fields/nestable/ImageContent.d.ts +0 -252
  480. package/lib/content/fields/nestable/ImageContent.js +0 -122
  481. package/lib/content/fields/nestable/IntegrationFieldContent.d.ts +0 -16
  482. package/lib/content/fields/nestable/IntegrationFieldContent.js +0 -28
  483. package/lib/content/fields/nestable/LinkContent.d.ts +0 -919
  484. package/lib/content/fields/nestable/LinkContent.js +0 -399
  485. package/lib/content/fields/nestable/NestableContent.d.ts +0 -1953
  486. package/lib/content/fields/nestable/NestableContent.js +0 -167
  487. package/lib/content/fields/nestable/RepeatableContent.d.ts +0 -182
  488. package/lib/content/fields/nestable/RepeatableContent.js +0 -146
  489. package/lib/content/fields/nestable/RichTextContent/Blocks.d.ts +0 -1261
  490. package/lib/content/fields/nestable/RichTextContent/Blocks.js +0 -170
  491. package/lib/content/fields/nestable/RichTextContent/index.d.ts +0 -1004
  492. package/lib/content/fields/nestable/RichTextContent/index.js +0 -28
  493. package/lib/content/fields/nestable/SeparatorContent.d.ts +0 -13
  494. package/lib/content/fields/nestable/SeparatorContent.js +0 -22
  495. package/lib/content/fields/nestable/TableContent.d.ts +0 -776
  496. package/lib/content/fields/nestable/TableContent.js +0 -167
  497. package/lib/content/fields/nestable/index.d.ts +0 -12
  498. package/lib/content/fields/nestable/index.js +0 -15
  499. package/lib/content/fields/slices/Slice/CompositeSliceContent.d.ts +0 -3934
  500. package/lib/content/fields/slices/Slice/CompositeSliceContent.js +0 -195
  501. package/lib/content/fields/slices/Slice/RepeatableContent.d.ts +0 -774
  502. package/lib/content/fields/slices/Slice/RepeatableContent.js +0 -21
  503. package/lib/content/fields/slices/Slice/SharedSliceContent.d.ts +0 -3937
  504. package/lib/content/fields/slices/Slice/SharedSliceContent.js +0 -215
  505. package/lib/content/fields/slices/Slice/SimpleSliceContent.d.ts +0 -1962
  506. package/lib/content/fields/slices/Slice/SimpleSliceContent.js +0 -130
  507. package/lib/content/fields/slices/Slice/SlicePrimaryContent.d.ts +0 -1952
  508. package/lib/content/fields/slices/Slice/SlicePrimaryContent.js +0 -30
  509. package/lib/content/fields/slices/Slice/index.d.ts +0 -6810
  510. package/lib/content/fields/slices/Slice/index.js +0 -45
  511. package/lib/content/fields/slices/SliceItem.d.ts +0 -6846
  512. package/lib/content/fields/slices/SliceItem.js +0 -116
  513. package/lib/content/fields/slices/SlicesContent.d.ts +0 -9827
  514. package/lib/content/fields/slices/SlicesContent.js +0 -465
  515. package/lib/content/fields/slices/index.d.ts +0 -3
  516. package/lib/content/fields/slices/index.js +0 -6
  517. package/lib/content/fields/withDefaultValues.d.ts +0 -9
  518. package/lib/content/fields/withDefaultValues.js +0 -79
  519. package/lib/content/helpers.d.ts +0 -9
  520. package/lib/content/helpers.js +0 -22
  521. package/lib/content/index.d.ts +0 -4
  522. package/lib/content/index.js +0 -7
  523. package/lib/content/utils.d.ts +0 -50
  524. package/lib/content/utils.js +0 -35
  525. package/lib/customtypes/CustomType.d.ts +0 -3680
  526. package/lib/customtypes/CustomType.js +0 -184
  527. package/lib/customtypes/Section.d.ts +0 -3635
  528. package/lib/customtypes/Section.js +0 -66
  529. package/lib/customtypes/diff/Changes.d.ts +0 -17
  530. package/lib/customtypes/diff/Changes.js +0 -9
  531. package/lib/customtypes/diff/SharedSlice.d.ts +0 -1624
  532. package/lib/customtypes/diff/SharedSlice.js +0 -55
  533. package/lib/customtypes/diff/Variation.d.ts +0 -1605
  534. package/lib/customtypes/diff/Variation.js +0 -113
  535. package/lib/customtypes/diff/Widgets.d.ts +0 -11
  536. package/lib/customtypes/diff/Widgets.js +0 -2
  537. package/lib/customtypes/diff/index.d.ts +0 -4
  538. package/lib/customtypes/diff/index.js +0 -7
  539. package/lib/customtypes/index.d.ts +0 -4
  540. package/lib/customtypes/index.js +0 -7
  541. package/lib/customtypes/widgets/Group.d.ts +0 -1352
  542. package/lib/customtypes/widgets/Group.js +0 -92
  543. package/lib/customtypes/widgets/UID.d.ts +0 -19
  544. package/lib/customtypes/widgets/UID.js +0 -21
  545. package/lib/customtypes/widgets/Widget.d.ts +0 -4457
  546. package/lib/customtypes/widgets/Widget.js +0 -49
  547. package/lib/customtypes/widgets/index.d.ts +0 -6
  548. package/lib/customtypes/widgets/index.js +0 -9
  549. package/lib/customtypes/widgets/nestable/BooleanField.d.ts +0 -20
  550. package/lib/customtypes/widgets/nestable/BooleanField.js +0 -21
  551. package/lib/customtypes/widgets/nestable/Color.d.ts +0 -17
  552. package/lib/customtypes/widgets/nestable/Color.js +0 -20
  553. package/lib/customtypes/widgets/nestable/Date.d.ts +0 -19
  554. package/lib/customtypes/widgets/nestable/Date.js +0 -21
  555. package/lib/customtypes/widgets/nestable/Embed.d.ts +0 -19
  556. package/lib/customtypes/widgets/nestable/Embed.js +0 -21
  557. package/lib/customtypes/widgets/nestable/GeoPoint.d.ts +0 -15
  558. package/lib/customtypes/widgets/nestable/GeoPoint.js +0 -19
  559. package/lib/customtypes/widgets/nestable/Image.d.ts +0 -44
  560. package/lib/customtypes/widgets/nestable/Image.js +0 -29
  561. package/lib/customtypes/widgets/nestable/IntegrationField.d.ts +0 -19
  562. package/lib/customtypes/widgets/nestable/IntegrationField.js +0 -21
  563. package/lib/customtypes/widgets/nestable/Link.d.ts +0 -196
  564. package/lib/customtypes/widgets/nestable/Link.js +0 -167
  565. package/lib/customtypes/widgets/nestable/NestableWidget.d.ts +0 -217
  566. package/lib/customtypes/widgets/nestable/NestableWidget.js +0 -39
  567. package/lib/customtypes/widgets/nestable/Number.d.ts +0 -23
  568. package/lib/customtypes/widgets/nestable/Number.js +0 -24
  569. package/lib/customtypes/widgets/nestable/Range.d.ts +0 -23
  570. package/lib/customtypes/widgets/nestable/Range.js +0 -24
  571. package/lib/customtypes/widgets/nestable/RichText.d.ts +0 -73
  572. package/lib/customtypes/widgets/nestable/RichText.js +0 -131
  573. package/lib/customtypes/widgets/nestable/Select.d.ts +0 -21
  574. package/lib/customtypes/widgets/nestable/Select.js +0 -22
  575. package/lib/customtypes/widgets/nestable/Separator.d.ts +0 -14
  576. package/lib/customtypes/widgets/nestable/Separator.js +0 -18
  577. package/lib/customtypes/widgets/nestable/Table.d.ts +0 -21
  578. package/lib/customtypes/widgets/nestable/Table.js +0 -30
  579. package/lib/customtypes/widgets/nestable/Text.d.ts +0 -19
  580. package/lib/customtypes/widgets/nestable/Text.js +0 -21
  581. package/lib/customtypes/widgets/nestable/Timestamp.d.ts +0 -19
  582. package/lib/customtypes/widgets/nestable/Timestamp.js +0 -21
  583. package/lib/customtypes/widgets/nestable/index.d.ts +0 -17
  584. package/lib/customtypes/widgets/nestable/index.js +0 -20
  585. package/lib/customtypes/widgets/shared/ImageConstraint.d.ts +0 -7
  586. package/lib/customtypes/widgets/shared/ImageConstraint.js +0 -31
  587. package/lib/customtypes/widgets/shared/index.d.ts +0 -1
  588. package/lib/customtypes/widgets/shared/index.js +0 -8
  589. package/lib/customtypes/widgets/slices/CompositeSlice.d.ts +0 -455
  590. package/lib/customtypes/widgets/slices/CompositeSlice.js +0 -63
  591. package/lib/customtypes/widgets/slices/LegacySlice.d.ts +0 -442
  592. package/lib/customtypes/widgets/slices/LegacySlice.js +0 -12
  593. package/lib/customtypes/widgets/slices/SharedSlice.d.ts +0 -1807
  594. package/lib/customtypes/widgets/slices/SharedSlice.js +0 -118
  595. package/lib/customtypes/widgets/slices/SharedSliceRef.d.ts +0 -5
  596. package/lib/customtypes/widgets/slices/SharedSliceRef.js +0 -9
  597. package/lib/customtypes/widgets/slices/Slice.d.ts +0 -6
  598. package/lib/customtypes/widgets/slices/Slice.js +0 -2
  599. package/lib/customtypes/widgets/slices/SlicePrimaryWidget.d.ts +0 -1259
  600. package/lib/customtypes/widgets/slices/SlicePrimaryWidget.js +0 -10
  601. package/lib/customtypes/widgets/slices/Slices.d.ts +0 -5917
  602. package/lib/customtypes/widgets/slices/Slices.js +0 -146
  603. package/lib/customtypes/widgets/slices/SlicesTypes.d.ts +0 -6
  604. package/lib/customtypes/widgets/slices/SlicesTypes.js +0 -11
  605. package/lib/customtypes/widgets/slices/index.d.ts +0 -8
  606. package/lib/customtypes/widgets/slices/index.js +0 -11
  607. package/lib/utils/Arrays.d.ts +0 -1
  608. package/lib/utils/Arrays.js +0 -13
  609. package/lib/utils/DocumentId.d.ts +0 -2
  610. package/lib/utils/DocumentId.js +0 -7
  611. package/lib/utils/Fields.d.ts +0 -6
  612. package/lib/utils/Fields.js +0 -2
  613. package/lib/utils/Objects.d.ts +0 -8
  614. package/lib/utils/Objects.js +0 -42
  615. package/lib/utils/index.d.ts +0 -4
  616. package/lib/utils/index.js +0 -8
  617. package/lib/validators/BasicTypes.d.ts +0 -10
  618. package/lib/validators/BasicTypes.js +0 -25
  619. package/lib/validators/DateFromString.d.ts +0 -3
  620. package/lib/validators/DateFromString.js +0 -11
  621. package/lib/validators/DateFromStringOrNumber.d.ts +0 -3
  622. package/lib/validators/DateFromStringOrNumber.js +0 -10
  623. package/lib/validators/DateFromTsMs.d.ts +0 -3
  624. package/lib/validators/DateFromTsMs.js +0 -10
  625. package/lib/validators/DefaultOrElse.d.ts +0 -5
  626. package/lib/validators/DefaultOrElse.js +0 -21
  627. package/lib/validators/IntFromNumber.d.ts +0 -5
  628. package/lib/validators/IntFromNumber.js +0 -14
  629. package/lib/validators/IntFromPixels.d.ts +0 -8
  630. package/lib/validators/IntFromPixels.js +0 -24
  631. package/lib/validators/NonEmptyString.d.ts +0 -3
  632. package/lib/validators/NonEmptyString.js +0 -6
  633. package/lib/validators/NonEmptyStringOrNull.d.ts +0 -3
  634. package/lib/validators/NonEmptyStringOrNull.js +0 -15
  635. package/lib/validators/NumberOrNull.d.ts +0 -3
  636. package/lib/validators/NumberOrNull.js +0 -6
  637. package/lib/validators/NumberRange.d.ts +0 -32
  638. package/lib/validators/NumberRange.js +0 -40
  639. package/lib/validators/StringFromBoolean.d.ts +0 -5
  640. package/lib/validators/StringFromBoolean.js +0 -10
  641. package/lib/validators/StringFromNumber.d.ts +0 -5
  642. package/lib/validators/StringFromNumber.js +0 -10
  643. package/lib/validators/StringOrNull.d.ts +0 -3
  644. package/lib/validators/StringOrNull.js +0 -6
  645. package/lib/validators/TrimmedString.d.ts +0 -5
  646. package/lib/validators/TrimmedString.js +0 -23
  647. package/lib/validators/function.d.ts +0 -34
  648. package/lib/validators/function.js +0 -100
  649. package/lib/validators/index.d.ts +0 -15
  650. package/lib/validators/index.js +0 -31
  651. package/src/common/Asset.ts +0 -25
  652. package/src/common/Embed.ts +0 -22
  653. package/src/common/HexaColorCode.ts +0 -11
  654. package/src/common/UUID.ts +0 -19
  655. package/src/common/WidgetKey.ts +0 -13
  656. package/src/common/index.ts +0 -3
  657. package/src/content/Document.ts +0 -539
  658. package/src/content/fields/EmptyContent.ts +0 -45
  659. package/src/content/fields/GroupContent.ts +0 -466
  660. package/src/content/fields/UIDContent.ts +0 -42
  661. package/src/content/fields/WidgetContent.ts +0 -76
  662. package/src/content/fields/index.ts +0 -6
  663. package/src/content/fields/nestable/BooleanContent.ts +0 -52
  664. package/src/content/fields/nestable/EmbedContent.ts +0 -74
  665. package/src/content/fields/nestable/FieldContent/ColorContent.ts +0 -49
  666. package/src/content/fields/nestable/FieldContent/DateContent.ts +0 -49
  667. package/src/content/fields/nestable/FieldContent/NumberContent.ts +0 -49
  668. package/src/content/fields/nestable/FieldContent/RangeContent.ts +0 -49
  669. package/src/content/fields/nestable/FieldContent/SelectContent.ts +0 -60
  670. package/src/content/fields/nestable/FieldContent/TextContent.ts +0 -49
  671. package/src/content/fields/nestable/FieldContent/TimestampContent.ts +0 -49
  672. package/src/content/fields/nestable/FieldContent/common.ts +0 -1
  673. package/src/content/fields/nestable/FieldContent/index.ts +0 -40
  674. package/src/content/fields/nestable/GeoPointContent.ts +0 -48
  675. package/src/content/fields/nestable/ImageContent.ts +0 -196
  676. package/src/content/fields/nestable/IntegrationFieldContent.ts +0 -51
  677. package/src/content/fields/nestable/LinkContent.ts +0 -651
  678. package/src/content/fields/nestable/NestableContent.ts +0 -241
  679. package/src/content/fields/nestable/RepeatableContent.ts +0 -224
  680. package/src/content/fields/nestable/RichTextContent/Blocks.ts +0 -238
  681. package/src/content/fields/nestable/RichTextContent/index.ts +0 -42
  682. package/src/content/fields/nestable/SeparatorContent.ts +0 -34
  683. package/src/content/fields/nestable/TableContent.ts +0 -234
  684. package/src/content/fields/nestable/index.ts +0 -12
  685. package/src/content/fields/slices/Slice/CompositeSliceContent.ts +0 -293
  686. package/src/content/fields/slices/Slice/RepeatableContent.ts +0 -29
  687. package/src/content/fields/slices/Slice/SharedSliceContent.ts +0 -305
  688. package/src/content/fields/slices/Slice/SimpleSliceContent.ts +0 -180
  689. package/src/content/fields/slices/Slice/SlicePrimaryContent.ts +0 -40
  690. package/src/content/fields/slices/Slice/index.ts +0 -52
  691. package/src/content/fields/slices/SliceItem.ts +0 -184
  692. package/src/content/fields/slices/SlicesContent.ts +0 -677
  693. package/src/content/fields/slices/index.ts +0 -3
  694. package/src/content/helpers.ts +0 -25
  695. package/src/content/index.ts +0 -4
  696. package/src/content/utils.ts +0 -145
  697. package/src/customtypes/CustomType.ts +0 -280
  698. package/src/customtypes/Section.ts +0 -98
  699. package/src/customtypes/diff/Variation.ts +0 -167
  700. package/src/customtypes/diff/Widgets.ts +0 -17
  701. package/src/customtypes/diff/index.ts +0 -4
  702. package/src/customtypes/index.ts +0 -4
  703. package/src/customtypes/widgets/Group.ts +0 -120
  704. package/src/customtypes/widgets/UID.ts +0 -27
  705. package/src/customtypes/widgets/Widget.ts +0 -83
  706. package/src/customtypes/widgets/index.ts +0 -6
  707. package/src/customtypes/widgets/nestable/BooleanField.ts +0 -29
  708. package/src/customtypes/widgets/nestable/Color.ts +0 -25
  709. package/src/customtypes/widgets/nestable/Date.ts +0 -27
  710. package/src/customtypes/widgets/nestable/Embed.ts +0 -27
  711. package/src/customtypes/widgets/nestable/GeoPoint.ts +0 -25
  712. package/src/customtypes/widgets/nestable/Image.ts +0 -39
  713. package/src/customtypes/widgets/nestable/IntegrationField.ts +0 -26
  714. package/src/customtypes/widgets/nestable/Link.ts +0 -313
  715. package/src/customtypes/widgets/nestable/NestableWidget.ts +0 -40
  716. package/src/customtypes/widgets/nestable/Number.ts +0 -30
  717. package/src/customtypes/widgets/nestable/Range.ts +0 -30
  718. package/src/customtypes/widgets/nestable/RichText.ts +0 -215
  719. package/src/customtypes/widgets/nestable/Select.ts +0 -34
  720. package/src/customtypes/widgets/nestable/Separator.ts +0 -24
  721. package/src/customtypes/widgets/nestable/Table.ts +0 -38
  722. package/src/customtypes/widgets/nestable/Text.ts +0 -27
  723. package/src/customtypes/widgets/nestable/Timestamp.ts +0 -27
  724. package/src/customtypes/widgets/nestable/index.ts +0 -17
  725. package/src/customtypes/widgets/shared/ImageConstraint.ts +0 -41
  726. package/src/customtypes/widgets/shared/index.ts +0 -1
  727. package/src/customtypes/widgets/slices/CompositeSlice.ts +0 -79
  728. package/src/customtypes/widgets/slices/LegacySlice.ts +0 -15
  729. package/src/customtypes/widgets/slices/SharedSlice.ts +0 -152
  730. package/src/customtypes/widgets/slices/SharedSliceRef.ts +0 -10
  731. package/src/customtypes/widgets/slices/Slice.ts +0 -7
  732. package/src/customtypes/widgets/slices/SlicePrimaryWidget.ts +0 -12
  733. package/src/customtypes/widgets/slices/Slices.ts +0 -184
  734. package/src/customtypes/widgets/slices/SlicesTypes.ts +0 -11
  735. package/src/customtypes/widgets/slices/index.ts +0 -8
  736. package/src/utils/Arrays.ts +0 -12
  737. package/src/utils/DocumentId.ts +0 -8
  738. package/src/utils/Fields.ts +0 -4
  739. package/src/utils/Objects.ts +0 -53
  740. package/src/utils/index.ts +0 -4
  741. package/src/validators/BasicTypes.ts +0 -55
  742. package/src/validators/DateFromString.ts +0 -19
  743. package/src/validators/DateFromStringOrNumber.ts +0 -17
  744. package/src/validators/DateFromTsMs.ts +0 -17
  745. package/src/validators/DefaultOrElse.ts +0 -24
  746. package/src/validators/IntFromNumber.ts +0 -22
  747. package/src/validators/IntFromPixels.ts +0 -32
  748. package/src/validators/NonEmptyString.ts +0 -8
  749. package/src/validators/NonEmptyStringOrNull.ts +0 -22
  750. package/src/validators/NumberOrNull.ts +0 -5
  751. package/src/validators/NumberRange.ts +0 -51
  752. package/src/validators/StringFromBoolean.ts +0 -19
  753. package/src/validators/StringFromNumber.ts +0 -19
  754. package/src/validators/StringOrNull.ts +0 -5
  755. package/src/validators/TrimmedString.ts +0 -33
  756. package/src/validators/function.ts +0 -115
  757. package/src/validators/index.ts +0 -15
  758. /package/src/{customtypes/diff/Changes.ts → model/diff/changes.ts} +0 -0
@@ -0,0 +1,154 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import {
4
+ EmptyDocumentLinkValueLegacySchema,
5
+ EmptyImageLinkValueLegacySchema,
6
+ FilledDocumentLinkValueLegacySchema,
7
+ FilledFileLinkValueLegacySchema,
8
+ FilledImageLinkValueLegacySchema,
9
+ EmptyMediaLinkValueLegacySchema,
10
+ FilledExternalLinkValueLegacySchema,
11
+ EmptyExternalLinkValueLegacySchema,
12
+ AnyLinkLegacySchema,
13
+ LinkType,
14
+ EmptyFileLinkValueLegacySchema,
15
+ } from "./legacy/link"
16
+
17
+ // Image
18
+ const FilledImageLinkValueContentSchema = z.extend(FilledImageLinkValueLegacySchema, {
19
+ __TYPE__: z.literal(LinkType.Image),
20
+ })
21
+
22
+ const EmptyImageLinkValueContentSchema = z.extend(EmptyImageLinkValueLegacySchema, {
23
+ __TYPE__: z.literal(LinkType.Image),
24
+ })
25
+
26
+ // File
27
+ const FilledFileLinkValueContentSchema = z.extend(FilledFileLinkValueLegacySchema, {
28
+ __TYPE__: z.literal(LinkType.File),
29
+ })
30
+
31
+ const EmptyFileLinkValueContentSchema = z.extend(EmptyFileLinkValueLegacySchema, {
32
+ __TYPE__: z.literal(LinkType.File),
33
+ })
34
+
35
+ // Media
36
+ const EmptyMediaLinkValueContentSchema = z.extend(EmptyMediaLinkValueLegacySchema, {
37
+ __TYPE__: z.literal(LinkType.Media),
38
+ })
39
+
40
+ // Document
41
+ const FilledDocumentLinkValueContentSchema = z.extend(FilledDocumentLinkValueLegacySchema, {
42
+ __TYPE__: z.literal(LinkType.Document),
43
+ })
44
+
45
+ const EmptyDocumentLinkValueContentSchema = z.extend(EmptyDocumentLinkValueLegacySchema, {
46
+ __TYPE__: z.literal(LinkType.Document),
47
+ })
48
+
49
+ // External
50
+ const FilledExternalLinkValueContentSchema = z.extend(FilledExternalLinkValueLegacySchema, {
51
+ __TYPE__: z.literal(LinkType.External),
52
+ })
53
+
54
+ const EmptyExternalLinkValueContentSchema = z.extend(EmptyExternalLinkValueLegacySchema, {
55
+ __TYPE__: z.literal(LinkType.External),
56
+ })
57
+
58
+ // Any
59
+ const AnyLinkValueContentSchema = z.extend(AnyLinkLegacySchema, {
60
+ __TYPE__: z.literal(LinkType.Any),
61
+ })
62
+
63
+ // All
64
+
65
+ // Used by content/richText
66
+ export const FilledLinkValueContentSchema: z.ZodMiniType<FilledLinkValueContent> = z.union([
67
+ FilledImageLinkValueContentSchema,
68
+ FilledFileLinkValueContentSchema,
69
+ FilledDocumentLinkValueContentSchema,
70
+ FilledExternalLinkValueContentSchema,
71
+ ])
72
+
73
+ // Used by content/legacy/link
74
+ type FilledImageLinkValueContent = z.infer<typeof FilledImageLinkValueContentSchema>
75
+ type FilledFileLinkValueContent = z.infer<typeof FilledFileLinkValueContentSchema>
76
+ type FilledDocumentLinkValueContent = z.infer<typeof FilledDocumentLinkValueContentSchema>
77
+ type FilledExternalLinkValueContent = z.infer<typeof FilledExternalLinkValueContentSchema>
78
+ export type FilledLinkValueContent =
79
+ | FilledImageLinkValueContent
80
+ | FilledFileLinkValueContent
81
+ | FilledDocumentLinkValueContent
82
+ | FilledExternalLinkValueContent
83
+
84
+ const EmptyLinkValueContentSchema: z.ZodMiniType<EmptyLinkValueContent> = z.union([
85
+ EmptyImageLinkValueContentSchema,
86
+ EmptyFileLinkValueContentSchema,
87
+ EmptyMediaLinkValueContentSchema,
88
+ EmptyDocumentLinkValueContentSchema,
89
+ EmptyExternalLinkValueContentSchema,
90
+ AnyLinkValueContentSchema,
91
+ ])
92
+
93
+ // Used by content/codec/link
94
+ type EmptyImageLinkValueContent = z.infer<typeof EmptyImageLinkValueContentSchema>
95
+ type EmptyFileLinkValueContent = z.infer<typeof EmptyFileLinkValueContentSchema>
96
+ type EmptyMediaLinkValueContent = z.infer<typeof EmptyMediaLinkValueContentSchema>
97
+ type EmptyDocumentLinkValueContent = z.infer<typeof EmptyDocumentLinkValueContentSchema>
98
+ type EmptyExternalLinkValueContent = z.infer<typeof EmptyExternalLinkValueContentSchema>
99
+ type AnyLinkValueContent = z.infer<typeof AnyLinkValueContentSchema>
100
+ export type EmptyLinkValueContent =
101
+ | EmptyImageLinkValueContent
102
+ | EmptyFileLinkValueContent
103
+ | EmptyMediaLinkValueContent
104
+ | EmptyDocumentLinkValueContent
105
+ | EmptyExternalLinkValueContent
106
+ | AnyLinkValueContent
107
+
108
+ const LinkValueContentSchema: z.ZodMiniType<LinkValueContent> = z.union([
109
+ FilledLinkValueContentSchema,
110
+ EmptyLinkValueContentSchema,
111
+ ])
112
+
113
+ // Used by content/codec/link
114
+ export type LinkValueContent = FilledLinkValueContent | EmptyLinkValueContent
115
+
116
+ // Content
117
+ export const LinkContentType = "LinkContent" as const
118
+
119
+ export const LinkContentSchema = z.object({
120
+ __TYPE__: z.literal(LinkContentType),
121
+ key: z.transform((value) => z.uuidv4().safeParse(value).data || crypto.randomUUID()),
122
+ // We cannot use z.extend here because we're working with unions.
123
+ // z.intersection wouldn't work also for the same reason.
124
+ value: z.pipe(
125
+ z.pipe(
126
+ z.pipe(
127
+ z.record(z.string(), z.unknown()),
128
+ z.transform(
129
+ ({
130
+ text,
131
+ variant,
132
+ ...value
133
+ }): {
134
+ text?: unknown
135
+ variant?: unknown
136
+ value: Record<string, unknown>
137
+ } => ({ text, variant, value }),
138
+ ),
139
+ ),
140
+ z.object({
141
+ text: z.optional(z.string()),
142
+ variant: z.optional(z.string()),
143
+ value: LinkValueContentSchema as z.ZodMiniType<LinkValueContent, Record<string, unknown>>,
144
+ }),
145
+ ),
146
+ z.transform(({ text, variant, value }) => ({
147
+ ...(text ? { text } : {}),
148
+ ...(variant ? { variant } : {}),
149
+ ...value,
150
+ })),
151
+ ),
152
+ })
153
+
154
+ export type LinkContent = z.infer<typeof LinkContentSchema>
@@ -0,0 +1,126 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import type { NestableModel } from "../model/nestable"
4
+ import type { BooleanContent } from "./boolean"
5
+ import { BooleanContentDefaultValue, BooleanContentSchema, BooleanContentType } from "./boolean"
6
+ import type { EmbedContent } from "./embed"
7
+ import { EmbedContentSchema, EmbedContentType } from "./embed"
8
+ import type { EmptyContent } from "./empty"
9
+ import { EmptyContentSchema, EmptyContentType } from "./empty"
10
+ import type {
11
+ ColorContent,
12
+ DateContent,
13
+ NumberContent,
14
+ RangeContent,
15
+ SelectContent,
16
+ TextContent,
17
+ TimestampContent,
18
+ } from "./field"
19
+ import {
20
+ ColorContentSchema,
21
+ DateContentSchema,
22
+ FieldContentType,
23
+ NumberContentSchema,
24
+ RangeContentSchema,
25
+ SelectContentDefaultValue,
26
+ SelectContentSchema,
27
+ TextContentSchema,
28
+ TimestampContentSchema,
29
+ } from "./field"
30
+ import type { GeoPointContent } from "./geopoint"
31
+ import { GeoPointContentSchema, GeoPointContentType } from "./geopoint"
32
+ import type { ImageContent } from "./image"
33
+ import { ImageContentSchema, ImageContentType } from "./image"
34
+ import type { IntegrationFieldContent } from "./integrationField"
35
+ import { IntegrationFieldContentSchema, IntegrationFieldContentType } from "./integrationField"
36
+ import type { LinkContent } from "./link"
37
+ import { LinkContentSchema, LinkContentType } from "./link"
38
+ import type { RepeatableContent } from "./repeatable"
39
+ import { RepeatableContentSchema, RepeatableContentType } from "./repeatable"
40
+ import type { RichTextContent } from "./richText"
41
+ import { RichTextContentSchema, RichTextContentType } from "./richText"
42
+ import type { SeparatorContent } from "./separator"
43
+ import { SeparatorContentSchema, SeparatorContentType } from "./separator"
44
+ import type { TableContent } from "./table"
45
+ import { TableContentSchema, TableContentType } from "./table"
46
+
47
+ export const NestableContentSchema: z.ZodMiniType<NestableContent> = z.union([
48
+ EmptyContentSchema,
49
+ BooleanContentSchema,
50
+ ColorContentSchema,
51
+ DateContentSchema,
52
+ EmbedContentSchema,
53
+ GeoPointContentSchema,
54
+ ImageContentSchema,
55
+ IntegrationFieldContentSchema,
56
+ LinkContentSchema,
57
+ NumberContentSchema,
58
+ RangeContentSchema,
59
+ RepeatableContentSchema,
60
+ RichTextContentSchema,
61
+ SelectContentSchema,
62
+ SeparatorContentSchema,
63
+ TableContentSchema,
64
+ TextContentSchema,
65
+ TimestampContentSchema,
66
+ ])
67
+
68
+ export type NestableContent =
69
+ | EmptyContent
70
+ | BooleanContent
71
+ | ColorContent
72
+ | DateContent
73
+ | EmbedContent
74
+ | GeoPointContent
75
+ | ImageContent
76
+ | IntegrationFieldContent
77
+ | LinkContent
78
+ | NumberContent
79
+ | RangeContent
80
+ | RepeatableContent
81
+ | RichTextContent
82
+ | SelectContent
83
+ | SeparatorContent
84
+ | TableContent
85
+ | TextContent
86
+ | TimestampContent
87
+
88
+ const NestableContentTypes = [
89
+ EmptyContentType,
90
+ BooleanContentType,
91
+ EmbedContentType,
92
+ FieldContentType,
93
+ GeoPointContentType,
94
+ ImageContentType,
95
+ IntegrationFieldContentType,
96
+ LinkContentType,
97
+ RepeatableContentType,
98
+ RichTextContentType,
99
+ SeparatorContentType,
100
+ TableContentType,
101
+ ]
102
+ type NestableContentType = (typeof NestableContentTypes)[number]
103
+
104
+ /** @internal */
105
+ export function isNestableContent(content: {
106
+ __TYPE__: string
107
+ }): content is { __TYPE__: NestableContentType } {
108
+ return (NestableContentTypes as string[]).includes(content.__TYPE__)
109
+ }
110
+
111
+ /**
112
+ * Returns the default value for a nestable widget based on its configuration.
113
+ * Currently only Boolean and Select fields have default values.
114
+ */
115
+ export const NestableContentDefaultValue = (
116
+ widgetDef: NestableModel,
117
+ ): NestableContent | undefined => {
118
+ switch (widgetDef.type) {
119
+ case "Boolean":
120
+ return BooleanContentDefaultValue(widgetDef)
121
+ case "Select":
122
+ return SelectContentDefaultValue(widgetDef)
123
+ default:
124
+ return undefined
125
+ }
126
+ }
@@ -0,0 +1,21 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import { LinkContentSchema, LinkContentType } from "./link"
4
+
5
+ export const RepeatableContentType = "RepeatableContent" as const
6
+
7
+ export const RepeatableContentSchema = z.object({
8
+ __TYPE__: z.literal(RepeatableContentType),
9
+ type: z.literal("Link"),
10
+ value: z.array(LinkContentSchema),
11
+ })
12
+
13
+ export type RepeatableContent = z.infer<typeof RepeatableContentSchema>
14
+
15
+ const RepeatableContentTypes = [LinkContentType]
16
+ type RepeatableContentType = (typeof RepeatableContentTypes)[number]
17
+ export function isRepeatableContentValue(content: {
18
+ __TYPE__: string
19
+ }): content is { __TYPE__: RepeatableContentType } {
20
+ return (RepeatableContentTypes as string[]).includes(content.__TYPE__)
21
+ }
@@ -0,0 +1,54 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import { EmbedContentSchema } from "./embed"
4
+ import { ImageViewContentSchema } from "./image"
5
+ import {
6
+ getEmbedBlockSchema,
7
+ getImageBlockSchema,
8
+ getSpanSchema,
9
+ getTextBlockSchema,
10
+ } from "./legacy/richText"
11
+ import type { Span } from "./legacy/richText"
12
+ import type { FilledLinkValueContent } from "./link"
13
+ import { FilledLinkValueContentSchema } from "./link"
14
+
15
+ // Spans
16
+ export type RichTextContentSpan = Span<FilledLinkValueContent>
17
+
18
+ export const RichTextContentSpanSchema: z.ZodMiniType<RichTextContentSpan> = getSpanSchema(
19
+ FilledLinkValueContentSchema,
20
+ )
21
+
22
+ // Blocks
23
+ const TextBlockValueSchema = getTextBlockSchema(FilledLinkValueContentSchema)
24
+ type TextBlockValue = z.infer<typeof TextBlockValueSchema>
25
+
26
+ const ImageBlockValueSchema = getImageBlockSchema(
27
+ ImageViewContentSchema,
28
+ FilledLinkValueContentSchema,
29
+ )
30
+ type ImageBlockValue = z.infer<typeof ImageBlockValueSchema>
31
+
32
+ const EmbedBlockValueSchema = getEmbedBlockSchema(EmbedContentSchema)
33
+ type EmbedBlockValue = z.infer<typeof EmbedBlockValueSchema>
34
+
35
+ export const RichTextContentBlockSchema: z.ZodMiniType<RichTextContentBlock> = z.union([
36
+ TextBlockValueSchema,
37
+ ImageBlockValueSchema,
38
+ EmbedBlockValueSchema,
39
+ ])
40
+
41
+ // Used by content/codec/richText
42
+ export type RichTextContentBlock = TextBlockValue | ImageBlockValue | EmbedBlockValue
43
+
44
+ export const RichTextContentType = "StructuredTextContent" as const
45
+
46
+ export type RichTextContent = {
47
+ __TYPE__: typeof RichTextContentType
48
+ value: RichTextContentBlock[]
49
+ }
50
+
51
+ export const RichTextContentSchema: z.ZodMiniType<RichTextContent> = z.object({
52
+ __TYPE__: z.literal(RichTextContentType),
53
+ value: z.array(RichTextContentBlockSchema),
54
+ })
@@ -0,0 +1,9 @@
1
+ import { z } from "zod/mini"
2
+
3
+ export const SeparatorContentType = "SeparatorContent" as const
4
+
5
+ export const SeparatorContentSchema = z.object({
6
+ __TYPE__: z.literal(SeparatorContentType),
7
+ })
8
+
9
+ export type SeparatorContent = z.infer<typeof SeparatorContentSchema>
@@ -0,0 +1,41 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import { GroupItemContentSchema, NestableAndGroupContentSchema } from "./group"
4
+ import { NestableContentSchema } from "./nestable"
5
+
6
+ // Legacy (before 2020)
7
+ export const LegacySliceContentSchema = NestableAndGroupContentSchema
8
+
9
+ export type LegacySliceContent = z.infer<typeof LegacySliceContentSchema>
10
+
11
+ // Composite (2020 to 2021)
12
+ export const CompositeSliceContentType = "CompositeSliceContent" as const
13
+
14
+ export const CompositeSliceContentSchema = z.object({
15
+ __TYPE__: z.literal(CompositeSliceContentType),
16
+ nonRepeat: z.record(z.string(), NestableContentSchema),
17
+ repeat: z.array(GroupItemContentSchema),
18
+ })
19
+
20
+ export type CompositeSliceContent = z.infer<typeof CompositeSliceContentSchema>
21
+
22
+ // Shared (2021 to present)
23
+ export const SharedSliceContentType = "SharedSliceContent" as const
24
+
25
+ export const SharedSliceContentSchema = z.object({
26
+ __TYPE__: z.literal(SharedSliceContentType),
27
+ variation: z.string(),
28
+ primary: z.record(z.string(), NestableAndGroupContentSchema),
29
+ items: z.array(GroupItemContentSchema),
30
+ })
31
+
32
+ export type SharedSliceContent = z.infer<typeof SharedSliceContentSchema>
33
+
34
+ // All
35
+ export const SliceContentSchema: z.ZodMiniType<SliceContent> = z.union([
36
+ LegacySliceContentSchema,
37
+ CompositeSliceContentSchema,
38
+ SharedSliceContentSchema,
39
+ ])
40
+
41
+ export type SliceContent = LegacySliceContent | CompositeSliceContent | SharedSliceContent
@@ -0,0 +1,57 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import {
4
+ CompositeSliceContentSchema,
5
+ SharedSliceContentSchema,
6
+ LegacySliceContentSchema,
7
+ SliceContentSchema,
8
+ } from "./slice"
9
+
10
+ // Item
11
+ const getSliceItemContentSchema = <
12
+ TWidgetSchema extends
13
+ | typeof LegacySliceContentSchema
14
+ | typeof CompositeSliceContentSchema
15
+ | typeof SharedSliceContentSchema
16
+ | typeof SliceContentSchema,
17
+ >(
18
+ widgetSchema: TWidgetSchema,
19
+ ) => {
20
+ return z.object({
21
+ key: z.string(),
22
+ name: z.string(),
23
+ maybeLabel: z.optional(z.string()),
24
+ widget: widgetSchema,
25
+ })
26
+ }
27
+
28
+ export const LegacySliceItemContentSchema = getSliceItemContentSchema(LegacySliceContentSchema)
29
+
30
+ export type LegacySliceItemContent = z.infer<typeof LegacySliceItemContentSchema>
31
+
32
+ export const CompositeSliceItemContentSchema = getSliceItemContentSchema(
33
+ CompositeSliceContentSchema,
34
+ )
35
+
36
+ export type CompositeSliceItemContent = z.infer<typeof CompositeSliceItemContentSchema>
37
+
38
+ export const SharedSliceItemContentSchema = getSliceItemContentSchema(SharedSliceContentSchema)
39
+
40
+ export type SharedSliceItemContent = z.infer<typeof SharedSliceItemContentSchema>
41
+
42
+ // All
43
+ export const SliceItemContentSchema = getSliceItemContentSchema(SliceContentSchema)
44
+
45
+ export type SliceItemContent = z.infer<typeof SliceItemContentSchema>
46
+
47
+ // Slices
48
+
49
+ // Typo (missing `s`) is legacy...
50
+ export const SlicesContentType = "SliceContentType" as const
51
+
52
+ export const SlicesContentSchema = z.object({
53
+ __TYPE__: z.literal(SlicesContentType),
54
+ value: z.array(SliceItemContentSchema),
55
+ })
56
+
57
+ export type SlicesContent = z.infer<typeof SlicesContentSchema>
@@ -0,0 +1,14 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import { getTableRowSchema } from "./legacy/table"
4
+ import { RichTextContentSchema } from "./richText"
5
+
6
+ export const TableContentType = "TableContent" as const
7
+
8
+ // Table
9
+ export const TableContentSchema = z.object({
10
+ __TYPE__: z.literal(TableContentType),
11
+ content: z.array(getTableRowSchema(RichTextContentSchema)),
12
+ })
13
+
14
+ export type TableContent = z.infer<typeof TableContentSchema>
@@ -0,0 +1,10 @@
1
+ import { z } from "zod/mini"
2
+
3
+ export const UIDContentType = "UIDContent" as const
4
+
5
+ export const UIDContentSchema = z.object({
6
+ __TYPE__: z.literal(UIDContentType),
7
+ value: z.string(),
8
+ })
9
+
10
+ export type UIDContent = z.infer<typeof UIDContentSchema>
@@ -0,0 +1,21 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import type { GroupContent } from "./group"
4
+ import { GroupContentSchema } from "./group"
5
+ import type { NestableContent } from "./nestable"
6
+ import { NestableContentSchema } from "./nestable"
7
+ import type { SlicesContent } from "./slices"
8
+ import { SlicesContentSchema } from "./slices"
9
+ import type { UIDContent } from "./uid"
10
+ import { UIDContentSchema } from "./uid"
11
+
12
+ export const WidgetContentSchema: z.ZodMiniType<WidgetContent> = z.union([
13
+ GroupContentSchema,
14
+ NestableContentSchema,
15
+ UIDContentSchema,
16
+ SlicesContentSchema,
17
+ ])
18
+
19
+ export type WidgetContent = GroupContent | NestableContent | UIDContent | SlicesContent
20
+
21
+ export type ContentType = WidgetContent["__TYPE__"]
@@ -1,35 +1,29 @@
1
- import {
2
- type NestableWidget,
3
- type SlicePrimaryWidget,
4
- Group,
5
- GroupFieldType,
6
- } from "../../customtypes"
7
- import {
8
- GroupContent,
9
- GroupContentDefaultValue,
10
- GroupContentType,
11
- groupContentWithDefaultValues,
12
- isGroupContent,
13
- } from "./GroupContent"
14
- import type { NestableContent } from "./nestable"
1
+ import type { GroupModel, NestedGroupModel } from "../model/group"
2
+ import type { NestableModel } from "../model/nestable"
3
+ import { GroupContentType, groupContentWithDefaultValues, GroupContentSchema } from "./group"
4
+ import type { GroupContent } from "./group"
15
5
  import { NestableContentDefaultValue } from "./nestable"
16
- import type { SlicePrimaryContent } from "./slices/Slice/SlicePrimaryContent"
6
+ import type { NestableContent } from "./nestable"
17
7
 
8
+ /**
9
+ * Applies default values to slice primary content (non-repeat zone) based on the model configuration.
10
+ * For each widget in the customType that has no corresponding content, this will add the default value.
11
+ */
18
12
  export function withDefaultSlicePrimaryContentValues(
19
- customType: Record<string, SlicePrimaryWidget>,
20
- content: Partial<Record<string, SlicePrimaryContent>>,
21
- ): Record<string, SlicePrimaryContent> {
22
- const updatedContent = content as Record<string, SlicePrimaryContent>
13
+ customType: Record<string, NestableModel | NestedGroupModel>,
14
+ content: Partial<Record<string, NestableContent | GroupContent>>,
15
+ ): Record<string, NestableContent | GroupContent> {
16
+ const updatedContent = content as Record<string, NestableContent | GroupContent>
23
17
 
24
18
  for (const [widgetKey, widgetDef] of Object.entries(customType)) {
25
19
  const widgetContent = content[widgetKey]
26
20
 
27
21
  if (widgetContent === undefined) {
28
- if (widgetDef.type === GroupFieldType) {
29
- updatedContent[widgetKey] = groupContentWithDefaultValues(
30
- widgetDef,
31
- GroupContentDefaultValue,
32
- )
22
+ if (widgetDef.type === "Group") {
23
+ updatedContent[widgetKey] = groupContentWithDefaultValues(widgetDef, {
24
+ __TYPE__: GroupContentType,
25
+ value: [],
26
+ })
33
27
  } else {
34
28
  const defaultValue = NestableContentDefaultValue(widgetDef)
35
29
 
@@ -41,19 +35,21 @@ export function withDefaultSlicePrimaryContentValues(
41
35
  continue
42
36
  }
43
37
 
44
- if (widgetDef.type === GroupFieldType && isGroupContent(widgetContent)) {
45
- updatedContent[widgetKey] = groupContentWithDefaultValues(
46
- widgetDef,
47
- widgetContent,
48
- )
38
+ const maybeGroupContent = GroupContentSchema.safeParse(widgetContent)
39
+ if (widgetDef.type === "Group" && maybeGroupContent.success) {
40
+ updatedContent[widgetKey] = groupContentWithDefaultValues(widgetDef, maybeGroupContent.data)
49
41
  }
50
42
  }
51
43
 
52
44
  return updatedContent
53
45
  }
54
46
 
47
+ /**
48
+ * Applies default values to nestable content based on the model configuration.
49
+ * For each widget in the customType that has no corresponding content, this will add the default value.
50
+ */
55
51
  export function withDefaultNestableContentValues(
56
- customType: Record<string, NestableWidget>,
52
+ customType: Record<string, NestableModel>,
57
53
  content: Record<string, NestableContent>,
58
54
  ): Record<string, NestableContent> {
59
55
  return Object.entries(customType).reduce<Record<string, NestableContent>>(
@@ -64,7 +60,7 @@ export function withDefaultNestableContentValues(
64
60
  ? {
65
61
  ...updatedContent,
66
62
  [widgetKey]: defaultValue,
67
- }
63
+ }
68
64
  : updatedContent
69
65
  }
70
66
 
@@ -74,17 +70,19 @@ export function withDefaultNestableContentValues(
74
70
  )
75
71
  }
76
72
 
73
+ /**
74
+ * Applies default values to repeatable content items (like group items or slice repeat zones).
75
+ * For each item, it ensures all required fields have values based on the model configuration.
76
+ */
77
77
  export function repeatableContentWithDefaultNestableContentValues<
78
78
  T extends {
79
79
  value: [string, GroupContent | NestableContent][]
80
80
  },
81
- >(fields: Record<string, Group | NestableWidget>, content: T[]): T[] {
81
+ >(fields: Record<string, GroupModel | NestableModel>, content: T[]): T[] {
82
82
  const groupKeys = Object.entries(fields)
83
83
  return content.map((contentItem) => {
84
84
  return groupKeys.reduce((updatedContentItem, [key, fieldDef]) => {
85
- const maybeContentItemValue = contentItem.value.find(
86
- ([_key]) => _key === key,
87
- )
85
+ const maybeContentItemValue = contentItem.value.find(([_key]) => _key === key)
88
86
 
89
87
  if (fieldDef.type === "Group") {
90
88
  const defaultValue = groupContentWithDefaultValues(
@@ -106,10 +104,7 @@ export function repeatableContentWithDefaultNestableContentValues<
106
104
  const defaultValue = NestableContentDefaultValue(fieldDef)
107
105
  return {
108
106
  ...updatedContentItem,
109
- value: [
110
- ...updatedContentItem.value,
111
- ...(defaultValue ? [[key, defaultValue]] : []),
112
- ],
107
+ value: [...updatedContentItem.value, ...(defaultValue ? [[key, defaultValue]] : [])],
113
108
  }
114
109
  }
115
110
 
@@ -0,0 +1,35 @@
1
+ export type Part = {
2
+ type:
3
+ | "CustomType"
4
+ | "Widget"
5
+ | "SharedSlice"
6
+ | "Slice"
7
+ | "LegacySlice"
8
+ | "GroupItem"
9
+ | "primary"
10
+ | "items"
11
+ | "RepeatableItem"
12
+ key: string
13
+ }
14
+
15
+ export type Path = ReadonlyArray<Part>
16
+
17
+ const PATH_SEPARATOR = "::"
18
+
19
+ export function serialize(path: Path): string {
20
+ return path.map((part) => part.key).join(PATH_SEPARATOR)
21
+ }
22
+
23
+ export function current(path: Path): Part | undefined {
24
+ return path[path.length - 1]
25
+ }
26
+
27
+ export function append(path: string, strElement: string): string {
28
+ return path + PATH_SEPARATOR + strElement
29
+ }
30
+
31
+ export function make(...entries: (Pick<Part, "type"> & Partial<Pick<Part, "key">>)[]): Path {
32
+ return entries.reduce<Path>((acc, { key, type }) => {
33
+ return key ? acc.concat({ key, type }) : acc
34
+ }, [])
35
+ }