@prismicio/types-internal 3.17.0 → 4.0.0-canary.4689e2d

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 (769) 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 +54 -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 +28 -0
  125. package/dist/content/legacy/image.d.ts.map +1 -0
  126. package/dist/content/legacy/image.js +33 -0
  127. package/dist/content/legacy/image.js.map +1 -0
  128. package/dist/content/legacy/integrationField.d.ts +1 -0
  129. package/dist/content/legacy/integrationField.js +7 -0
  130. package/dist/content/legacy/integrationField.js.map +1 -0
  131. package/dist/content/legacy/link.d.ts +41 -0
  132. package/dist/content/legacy/link.d.ts.map +1 -0
  133. package/dist/content/legacy/link.js +88 -0
  134. package/dist/content/legacy/link.js.map +1 -0
  135. package/dist/content/legacy/nestable.d.ts +1 -0
  136. package/dist/content/legacy/nestable.js +32 -0
  137. package/dist/content/legacy/nestable.js.map +1 -0
  138. package/dist/content/legacy/repeatable.d.ts +1 -0
  139. package/dist/content/legacy/repeatable.js +7 -0
  140. package/dist/content/legacy/repeatable.js.map +1 -0
  141. package/dist/content/legacy/richText.d.ts +110 -0
  142. package/dist/content/legacy/richText.d.ts.map +1 -0
  143. package/dist/content/legacy/richText.js +100 -0
  144. package/dist/content/legacy/richText.js.map +1 -0
  145. package/dist/content/legacy/separator.d.ts +1 -0
  146. package/dist/content/legacy/separator.js +7 -0
  147. package/dist/content/legacy/separator.js.map +1 -0
  148. package/dist/content/legacy/slice.js +22 -0
  149. package/dist/content/legacy/slice.js.map +1 -0
  150. package/dist/content/legacy/slices.js +13 -0
  151. package/dist/content/legacy/slices.js.map +1 -0
  152. package/dist/content/legacy/table.d.ts +1 -0
  153. package/dist/content/legacy/table.js +19 -0
  154. package/dist/content/legacy/table.js.map +1 -0
  155. package/dist/content/legacy/uid.js +7 -0
  156. package/dist/content/legacy/uid.js.map +1 -0
  157. package/dist/content/link.d.ts +140 -0
  158. package/dist/content/link.d.ts.map +1 -0
  159. package/dist/content/link.js +53 -0
  160. package/dist/content/link.js.map +1 -0
  161. package/dist/content/nestable.d.ts +19 -0
  162. package/dist/content/nestable.d.ts.map +1 -0
  163. package/dist/content/nestable.js +56 -0
  164. package/dist/content/nestable.js.map +1 -0
  165. package/dist/content/repeatable.d.ts +32 -0
  166. package/dist/content/repeatable.d.ts.map +1 -0
  167. package/dist/content/repeatable.js +17 -0
  168. package/dist/content/repeatable.js.map +1 -0
  169. package/dist/content/richText.d.ts +91 -0
  170. package/dist/content/richText.d.ts.map +1 -0
  171. package/dist/content/richText.js +24 -0
  172. package/dist/content/richText.js.map +1 -0
  173. package/dist/content/separator.d.ts +10 -0
  174. package/dist/content/separator.d.ts.map +1 -0
  175. package/dist/content/separator.js +8 -0
  176. package/dist/content/separator.js.map +1 -0
  177. package/dist/content/slice.d.ts +24 -0
  178. package/dist/content/slice.d.ts.map +1 -0
  179. package/dist/content/slice.js +27 -0
  180. package/dist/content/slice.js.map +1 -0
  181. package/dist/content/slices.d.ts +56 -0
  182. package/dist/content/slices.d.ts.map +1 -0
  183. package/dist/content/slices.js +24 -0
  184. package/dist/content/slices.js.map +1 -0
  185. package/dist/content/table.d.ts +21 -0
  186. package/dist/content/table.d.ts.map +1 -0
  187. package/dist/content/table.js +13 -0
  188. package/dist/content/table.js.map +1 -0
  189. package/dist/content/uid.d.ts +11 -0
  190. package/dist/content/uid.d.ts.map +1 -0
  191. package/dist/content/uid.js +11 -0
  192. package/dist/content/uid.js.map +1 -0
  193. package/dist/content/widget.d.ts +11 -0
  194. package/dist/content/widget.d.ts.map +1 -0
  195. package/dist/content/widget.js +16 -0
  196. package/dist/content/widget.js.map +1 -0
  197. package/dist/helpers/contentPath.d.ts +15 -0
  198. package/dist/helpers/contentPath.d.ts.map +1 -0
  199. package/dist/helpers/contentPath.js +30 -0
  200. package/dist/helpers/contentPath.js.map +1 -0
  201. package/dist/helpers/customTypeModel.d.ts +15 -0
  202. package/dist/helpers/customTypeModel.d.ts.map +1 -0
  203. package/dist/helpers/customTypeModel.js +85 -0
  204. package/dist/helpers/customTypeModel.js.map +1 -0
  205. package/dist/helpers/documentContent.d.ts +20 -0
  206. package/dist/helpers/documentContent.d.ts.map +1 -0
  207. package/dist/helpers/documentContent.js +64 -0
  208. package/dist/helpers/documentContent.js.map +1 -0
  209. package/dist/helpers/imageContent.d.ts +33 -0
  210. package/dist/helpers/imageContent.d.ts.map +1 -0
  211. package/dist/helpers/imageContent.js +55 -0
  212. package/dist/helpers/imageContent.js.map +1 -0
  213. package/dist/helpers/sliceContent.d.ts +12 -0
  214. package/dist/helpers/sliceContent.d.ts.map +1 -0
  215. package/dist/helpers/sliceContent.js +60 -0
  216. package/dist/helpers/sliceContent.js.map +1 -0
  217. package/dist/helpers/traverseContent.d.ts +84 -0
  218. package/dist/helpers/traverseContent.d.ts.map +1 -0
  219. package/dist/helpers/traverseContent.js +376 -0
  220. package/dist/helpers/traverseContent.js.map +1 -0
  221. package/dist/helpers/traverseContentWithModel.d.ts +84 -0
  222. package/dist/helpers/traverseContentWithModel.d.ts.map +1 -0
  223. package/dist/helpers/traverseContentWithModel.js +388 -0
  224. package/dist/helpers/traverseContentWithModel.js.map +1 -0
  225. package/dist/helpers/withDefaultContent.d.ts +21 -0
  226. package/dist/helpers/withDefaultContent.d.ts.map +1 -0
  227. package/dist/helpers/withDefaultContent.js +120 -0
  228. package/dist/helpers/withDefaultContent.js.map +1 -0
  229. package/dist/index.d.ts +59 -0
  230. package/dist/index.js +14 -0
  231. package/dist/io-ts.d.ts +4792 -0
  232. package/dist/io-ts.d.ts.map +1 -0
  233. package/dist/io-ts.js +224 -0
  234. package/dist/io-ts.js.map +1 -0
  235. package/dist/model/boolean.d.ts +16 -0
  236. package/dist/model/boolean.d.ts.map +1 -0
  237. package/dist/model/boolean.js +16 -0
  238. package/dist/model/boolean.js.map +1 -0
  239. package/dist/model/color.d.ts +15 -0
  240. package/dist/model/color.d.ts.map +1 -0
  241. package/dist/model/color.js +15 -0
  242. package/dist/model/color.js.map +1 -0
  243. package/dist/model/customType.d.ts +31 -0
  244. package/dist/model/customType.d.ts.map +1 -0
  245. package/dist/model/customType.js +18 -0
  246. package/dist/model/customType.js.map +1 -0
  247. package/dist/model/date.d.ts +16 -0
  248. package/dist/model/date.d.ts.map +1 -0
  249. package/dist/model/date.js +16 -0
  250. package/dist/model/date.js.map +1 -0
  251. package/dist/model/embed.d.ts +16 -0
  252. package/dist/model/embed.d.ts.map +1 -0
  253. package/dist/model/embed.js +16 -0
  254. package/dist/model/embed.js.map +1 -0
  255. package/dist/model/geopoint.d.ts +14 -0
  256. package/dist/model/geopoint.d.ts.map +1 -0
  257. package/dist/model/geopoint.js +12 -0
  258. package/dist/model/geopoint.js.map +1 -0
  259. package/dist/model/group.d.ts +567 -0
  260. package/dist/model/group.d.ts.map +1 -0
  261. package/dist/model/group.js +23 -0
  262. package/dist/model/group.js.map +1 -0
  263. package/dist/model/image.d.ts +24 -0
  264. package/dist/model/image.d.ts.map +1 -0
  265. package/dist/model/image.js +41 -0
  266. package/dist/model/image.js.map +1 -0
  267. package/dist/model/integrationField.d.ts +16 -0
  268. package/dist/model/integrationField.d.ts.map +1 -0
  269. package/dist/model/integrationField.js +16 -0
  270. package/dist/model/integrationField.js.map +1 -0
  271. package/dist/model/link.d.ts +48 -0
  272. package/dist/model/link.d.ts.map +1 -0
  273. package/dist/model/link.js +94 -0
  274. package/dist/model/link.js.map +1 -0
  275. package/dist/model/nestable.d.ts +23 -0
  276. package/dist/model/nestable.d.ts.map +1 -0
  277. package/dist/model/nestable.js +40 -0
  278. package/dist/model/nestable.js.map +1 -0
  279. package/dist/model/number.d.ts +18 -0
  280. package/dist/model/number.d.ts.map +1 -0
  281. package/dist/model/number.js +19 -0
  282. package/dist/model/number.js.map +1 -0
  283. package/dist/model/range.d.ts +18 -0
  284. package/dist/model/range.d.ts.map +1 -0
  285. package/dist/model/range.js +19 -0
  286. package/dist/model/range.js.map +1 -0
  287. package/dist/model/richText.d.ts +43 -0
  288. package/dist/model/richText.d.ts.map +1 -0
  289. package/dist/model/richText.js +73 -0
  290. package/dist/model/richText.js.map +1 -0
  291. package/dist/model/section.d.ts +11 -0
  292. package/dist/model/section.d.ts.map +1 -0
  293. package/dist/model/section.js +10 -0
  294. package/dist/model/section.js.map +1 -0
  295. package/dist/model/select.d.ts +17 -0
  296. package/dist/model/select.d.ts.map +1 -0
  297. package/dist/model/select.js +22 -0
  298. package/dist/model/select.js.map +1 -0
  299. package/dist/model/separator.d.ts +13 -0
  300. package/dist/model/separator.d.ts.map +1 -0
  301. package/dist/model/separator.js +11 -0
  302. package/dist/model/separator.js.map +1 -0
  303. package/dist/model/slice.d.ts +2084 -0
  304. package/dist/model/slice.d.ts.map +1 -0
  305. package/dist/model/slice.js +68 -0
  306. package/dist/model/slice.js.map +1 -0
  307. package/dist/model/slices.d.ts +33 -0
  308. package/dist/model/slices.d.ts.map +1 -0
  309. package/dist/model/slices.js +29 -0
  310. package/dist/model/slices.js.map +1 -0
  311. package/dist/model/table.d.ts +14 -0
  312. package/dist/model/table.d.ts.map +1 -0
  313. package/dist/model/table.js +22 -0
  314. package/dist/model/table.js.map +1 -0
  315. package/dist/model/text.d.ts +16 -0
  316. package/dist/model/text.d.ts.map +1 -0
  317. package/dist/model/text.js +16 -0
  318. package/dist/model/text.js.map +1 -0
  319. package/dist/model/timestamp.d.ts +16 -0
  320. package/dist/model/timestamp.d.ts.map +1 -0
  321. package/dist/model/timestamp.js +16 -0
  322. package/dist/model/timestamp.js.map +1 -0
  323. package/dist/model/uid.d.ts +16 -0
  324. package/dist/model/uid.d.ts.map +1 -0
  325. package/dist/model/uid.js +16 -0
  326. package/dist/model/uid.js.map +1 -0
  327. package/dist/model/widget.d.ts +58 -0
  328. package/dist/model/widget.d.ts.map +1 -0
  329. package/dist/model/widget.js +50 -0
  330. package/dist/model/widget.js.map +1 -0
  331. package/dist/zod4.d.ts +2840 -0
  332. package/dist/zod4.d.ts.map +1 -0
  333. package/dist/zod4.js +136 -0
  334. package/dist/zod4.js.map +1 -0
  335. package/package.json +62 -58
  336. package/src/common/asset.ts +29 -0
  337. package/src/common/embed.ts +27 -0
  338. package/src/common/hexaColorCode.ts +11 -0
  339. package/src/common/nonEmptyString.ts +9 -0
  340. package/src/common/widgetKey.ts +11 -0
  341. package/src/content/boolean.ts +10 -0
  342. package/src/content/codec/boolean.ts +38 -0
  343. package/src/content/codec/document.ts +60 -0
  344. package/src/content/codec/embed.ts +55 -0
  345. package/src/content/codec/empty.ts +49 -0
  346. package/src/content/codec/field.ts +96 -0
  347. package/src/content/codec/geopoint.ts +40 -0
  348. package/src/content/codec/group.ts +163 -0
  349. package/src/content/codec/image.ts +50 -0
  350. package/src/content/codec/integrationField.ts +38 -0
  351. package/src/content/{LegacyContentCtx.ts → codec/legacyContentCtx.ts} +17 -17
  352. package/src/content/codec/link.ts +103 -0
  353. package/src/content/codec/nestable.ts +146 -0
  354. package/src/content/codec/repeatable.ts +68 -0
  355. package/src/content/codec/richText.ts +117 -0
  356. package/src/content/codec/separator.ts +33 -0
  357. package/src/content/codec/slice.ts +276 -0
  358. package/src/content/codec/slices.ts +130 -0
  359. package/src/content/codec/table.ts +65 -0
  360. package/src/content/codec/uid.ts +36 -0
  361. package/src/content/codec/widget.ts +58 -0
  362. package/src/content/document.ts +8 -0
  363. package/src/content/embed.ts +12 -0
  364. package/src/content/empty.ts +10 -0
  365. package/src/content/field.ts +80 -0
  366. package/src/content/geopoint.ts +11 -0
  367. package/src/content/group.ts +46 -0
  368. package/src/content/image.ts +15 -0
  369. package/src/content/integrationField.ts +10 -0
  370. package/src/content/legacy/boolean.ts +5 -0
  371. package/src/content/legacy/document.ts +25 -0
  372. package/src/content/legacy/embed.ts +23 -0
  373. package/src/content/legacy/empty.ts +10 -0
  374. package/src/content/legacy/field.ts +8 -0
  375. package/src/content/legacy/geopoint.ts +10 -0
  376. package/src/content/legacy/group.ts +23 -0
  377. package/src/content/legacy/image.ts +43 -0
  378. package/src/content/legacy/integrationField.ts +5 -0
  379. package/src/content/legacy/link.ts +194 -0
  380. package/src/content/legacy/nestable.ts +55 -0
  381. package/src/content/legacy/repeatable.ts +7 -0
  382. package/src/content/legacy/richText.ts +200 -0
  383. package/src/content/legacy/separator.ts +6 -0
  384. package/src/content/legacy/slice.ts +38 -0
  385. package/src/content/legacy/slices.ts +17 -0
  386. package/src/content/legacy/table.ts +39 -0
  387. package/src/content/legacy/uid.ts +6 -0
  388. package/src/content/legacy/widget.ts +19 -0
  389. package/src/content/link.ts +165 -0
  390. package/src/content/nestable.ts +107 -0
  391. package/src/content/repeatable.ts +21 -0
  392. package/src/content/richText.ts +60 -0
  393. package/src/content/separator.ts +9 -0
  394. package/src/content/slice.ts +41 -0
  395. package/src/content/slices.ts +57 -0
  396. package/src/content/table.ts +14 -0
  397. package/src/content/uid.ts +10 -0
  398. package/src/content/widget.ts +21 -0
  399. package/src/helpers/contentPath.ts +35 -0
  400. package/src/helpers/customTypeModel.ts +113 -0
  401. package/src/helpers/documentContent.ts +108 -0
  402. package/src/helpers/imageContent.ts +84 -0
  403. package/src/helpers/sliceContent.ts +86 -0
  404. package/src/helpers/traverseContent.ts +597 -0
  405. package/src/helpers/traverseContentWithModel.ts +616 -0
  406. package/src/helpers/withDefaultContent.ts +180 -0
  407. package/src/index.ts +136 -0
  408. package/src/io-ts.ts +363 -0
  409. package/src/model/boolean.ts +15 -0
  410. package/src/model/color.ts +14 -0
  411. package/src/model/customType.ts +26 -0
  412. package/src/model/date.ts +15 -0
  413. package/src/model/diff/index.ts +4 -0
  414. package/src/{customtypes/diff/SharedSlice.ts → model/diff/sharedSlice.ts} +16 -18
  415. package/src/model/diff/utils.ts +45 -0
  416. package/src/model/diff/variation.ts +155 -0
  417. package/src/model/diff/widgets.ts +15 -0
  418. package/src/model/embed.ts +15 -0
  419. package/src/model/geopoint.ts +13 -0
  420. package/src/model/group.ts +39 -0
  421. package/src/model/image.ts +54 -0
  422. package/src/model/integrationField.ts +15 -0
  423. package/src/model/link.ts +141 -0
  424. package/src/model/nestable.ts +71 -0
  425. package/src/model/number.ts +26 -0
  426. package/src/model/range.ts +26 -0
  427. package/src/model/richText.ts +109 -0
  428. package/src/model/section.ts +12 -0
  429. package/src/model/select.ts +30 -0
  430. package/src/model/separator.ts +12 -0
  431. package/src/model/slice.ts +131 -0
  432. package/src/model/slices.ts +54 -0
  433. package/src/model/table.ts +29 -0
  434. package/src/model/text.ts +15 -0
  435. package/src/model/timestamp.ts +15 -0
  436. package/src/model/uid.ts +15 -0
  437. package/src/model/widget.ts +67 -0
  438. package/src/zod4.ts +199 -0
  439. package/lib/common/Asset.d.ts +0 -16
  440. package/lib/common/Asset.js +0 -11
  441. package/lib/common/Embed.d.ts +0 -15
  442. package/lib/common/Embed.js +0 -10
  443. package/lib/common/HexaColorCode.d.ts +0 -4
  444. package/lib/common/HexaColorCode.js +0 -7
  445. package/lib/common/UUID.d.ts +0 -6
  446. package/lib/common/UUID.js +0 -8
  447. package/lib/common/WidgetKey.d.ts +0 -3
  448. package/lib/common/WidgetKey.js +0 -8
  449. package/lib/common/index.d.ts +0 -3
  450. package/lib/common/index.js +0 -6
  451. package/lib/content/Document.d.ts +0 -11813
  452. package/lib/content/Document.js +0 -364
  453. package/lib/content/LegacyContentCtx.d.ts +0 -64
  454. package/lib/content/LegacyContentCtx.js +0 -130
  455. package/lib/content/fields/EmptyContent.d.ts +0 -16
  456. package/lib/content/fields/EmptyContent.js +0 -30
  457. package/lib/content/fields/GroupContent.d.ts +0 -53
  458. package/lib/content/fields/GroupContent.js +0 -307
  459. package/lib/content/fields/UIDContent.d.ts +0 -16
  460. package/lib/content/fields/UIDContent.js +0 -25
  461. package/lib/content/fields/WidgetContent.d.ts +0 -11749
  462. package/lib/content/fields/WidgetContent.js +0 -57
  463. package/lib/content/fields/index.d.ts +0 -6
  464. package/lib/content/fields/index.js +0 -9
  465. package/lib/content/fields/nestable/BooleanContent.d.ts +0 -18
  466. package/lib/content/fields/nestable/BooleanContent.js +0 -35
  467. package/lib/content/fields/nestable/EmbedContent.d.ts +0 -78
  468. package/lib/content/fields/nestable/EmbedContent.js +0 -56
  469. package/lib/content/fields/nestable/FieldContent/ColorContent.d.ts +0 -18
  470. package/lib/content/fields/nestable/FieldContent/ColorContent.js +0 -35
  471. package/lib/content/fields/nestable/FieldContent/DateContent.d.ts +0 -18
  472. package/lib/content/fields/nestable/FieldContent/DateContent.js +0 -35
  473. package/lib/content/fields/nestable/FieldContent/NumberContent.d.ts +0 -18
  474. package/lib/content/fields/nestable/FieldContent/NumberContent.js +0 -35
  475. package/lib/content/fields/nestable/FieldContent/RangeContent.d.ts +0 -18
  476. package/lib/content/fields/nestable/FieldContent/RangeContent.js +0 -35
  477. package/lib/content/fields/nestable/FieldContent/SelectContent.d.ts +0 -20
  478. package/lib/content/fields/nestable/FieldContent/SelectContent.js +0 -46
  479. package/lib/content/fields/nestable/FieldContent/TextContent.d.ts +0 -18
  480. package/lib/content/fields/nestable/FieldContent/TextContent.js +0 -35
  481. package/lib/content/fields/nestable/FieldContent/TimestampContent.d.ts +0 -18
  482. package/lib/content/fields/nestable/FieldContent/TimestampContent.js +0 -35
  483. package/lib/content/fields/nestable/FieldContent/common.d.ts +0 -1
  484. package/lib/content/fields/nestable/FieldContent/common.js +0 -4
  485. package/lib/content/fields/nestable/FieldContent/index.d.ts +0 -49
  486. package/lib/content/fields/nestable/FieldContent/index.js +0 -38
  487. package/lib/content/fields/nestable/GeoPointContent.d.ts +0 -33
  488. package/lib/content/fields/nestable/GeoPointContent.js +0 -31
  489. package/lib/content/fields/nestable/ImageContent.d.ts +0 -252
  490. package/lib/content/fields/nestable/ImageContent.js +0 -122
  491. package/lib/content/fields/nestable/IntegrationFieldContent.d.ts +0 -16
  492. package/lib/content/fields/nestable/IntegrationFieldContent.js +0 -28
  493. package/lib/content/fields/nestable/LinkContent.d.ts +0 -919
  494. package/lib/content/fields/nestable/LinkContent.js +0 -399
  495. package/lib/content/fields/nestable/NestableContent.d.ts +0 -1953
  496. package/lib/content/fields/nestable/NestableContent.js +0 -167
  497. package/lib/content/fields/nestable/RepeatableContent.d.ts +0 -182
  498. package/lib/content/fields/nestable/RepeatableContent.js +0 -146
  499. package/lib/content/fields/nestable/RichTextContent/Blocks.d.ts +0 -1261
  500. package/lib/content/fields/nestable/RichTextContent/Blocks.js +0 -170
  501. package/lib/content/fields/nestable/RichTextContent/index.d.ts +0 -1004
  502. package/lib/content/fields/nestable/RichTextContent/index.js +0 -28
  503. package/lib/content/fields/nestable/SeparatorContent.d.ts +0 -13
  504. package/lib/content/fields/nestable/SeparatorContent.js +0 -22
  505. package/lib/content/fields/nestable/TableContent.d.ts +0 -776
  506. package/lib/content/fields/nestable/TableContent.js +0 -167
  507. package/lib/content/fields/nestable/index.d.ts +0 -12
  508. package/lib/content/fields/nestable/index.js +0 -15
  509. package/lib/content/fields/slices/Slice/CompositeSliceContent.d.ts +0 -3934
  510. package/lib/content/fields/slices/Slice/CompositeSliceContent.js +0 -195
  511. package/lib/content/fields/slices/Slice/RepeatableContent.d.ts +0 -774
  512. package/lib/content/fields/slices/Slice/RepeatableContent.js +0 -21
  513. package/lib/content/fields/slices/Slice/SharedSliceContent.d.ts +0 -3937
  514. package/lib/content/fields/slices/Slice/SharedSliceContent.js +0 -215
  515. package/lib/content/fields/slices/Slice/SimpleSliceContent.d.ts +0 -1962
  516. package/lib/content/fields/slices/Slice/SimpleSliceContent.js +0 -130
  517. package/lib/content/fields/slices/Slice/SlicePrimaryContent.d.ts +0 -1952
  518. package/lib/content/fields/slices/Slice/SlicePrimaryContent.js +0 -30
  519. package/lib/content/fields/slices/Slice/index.d.ts +0 -6810
  520. package/lib/content/fields/slices/Slice/index.js +0 -45
  521. package/lib/content/fields/slices/SliceItem.d.ts +0 -6846
  522. package/lib/content/fields/slices/SliceItem.js +0 -116
  523. package/lib/content/fields/slices/SlicesContent.d.ts +0 -9827
  524. package/lib/content/fields/slices/SlicesContent.js +0 -465
  525. package/lib/content/fields/slices/index.d.ts +0 -3
  526. package/lib/content/fields/slices/index.js +0 -6
  527. package/lib/content/fields/withDefaultValues.d.ts +0 -9
  528. package/lib/content/fields/withDefaultValues.js +0 -79
  529. package/lib/content/helpers.d.ts +0 -9
  530. package/lib/content/helpers.js +0 -22
  531. package/lib/content/index.d.ts +0 -4
  532. package/lib/content/index.js +0 -7
  533. package/lib/content/utils.d.ts +0 -50
  534. package/lib/content/utils.js +0 -35
  535. package/lib/customtypes/CustomType.d.ts +0 -3680
  536. package/lib/customtypes/CustomType.js +0 -184
  537. package/lib/customtypes/Section.d.ts +0 -3635
  538. package/lib/customtypes/Section.js +0 -66
  539. package/lib/customtypes/diff/Changes.d.ts +0 -17
  540. package/lib/customtypes/diff/Changes.js +0 -9
  541. package/lib/customtypes/diff/SharedSlice.d.ts +0 -1624
  542. package/lib/customtypes/diff/SharedSlice.js +0 -55
  543. package/lib/customtypes/diff/Variation.d.ts +0 -1605
  544. package/lib/customtypes/diff/Variation.js +0 -113
  545. package/lib/customtypes/diff/Widgets.d.ts +0 -11
  546. package/lib/customtypes/diff/Widgets.js +0 -2
  547. package/lib/customtypes/diff/index.d.ts +0 -4
  548. package/lib/customtypes/diff/index.js +0 -7
  549. package/lib/customtypes/index.d.ts +0 -4
  550. package/lib/customtypes/index.js +0 -7
  551. package/lib/customtypes/widgets/Group.d.ts +0 -1352
  552. package/lib/customtypes/widgets/Group.js +0 -92
  553. package/lib/customtypes/widgets/UID.d.ts +0 -19
  554. package/lib/customtypes/widgets/UID.js +0 -21
  555. package/lib/customtypes/widgets/Widget.d.ts +0 -4457
  556. package/lib/customtypes/widgets/Widget.js +0 -49
  557. package/lib/customtypes/widgets/index.d.ts +0 -6
  558. package/lib/customtypes/widgets/index.js +0 -9
  559. package/lib/customtypes/widgets/nestable/BooleanField.d.ts +0 -20
  560. package/lib/customtypes/widgets/nestable/BooleanField.js +0 -21
  561. package/lib/customtypes/widgets/nestable/Color.d.ts +0 -17
  562. package/lib/customtypes/widgets/nestable/Color.js +0 -20
  563. package/lib/customtypes/widgets/nestable/Date.d.ts +0 -19
  564. package/lib/customtypes/widgets/nestable/Date.js +0 -21
  565. package/lib/customtypes/widgets/nestable/Embed.d.ts +0 -19
  566. package/lib/customtypes/widgets/nestable/Embed.js +0 -21
  567. package/lib/customtypes/widgets/nestable/GeoPoint.d.ts +0 -15
  568. package/lib/customtypes/widgets/nestable/GeoPoint.js +0 -19
  569. package/lib/customtypes/widgets/nestable/Image.d.ts +0 -44
  570. package/lib/customtypes/widgets/nestable/Image.js +0 -29
  571. package/lib/customtypes/widgets/nestable/IntegrationField.d.ts +0 -19
  572. package/lib/customtypes/widgets/nestable/IntegrationField.js +0 -21
  573. package/lib/customtypes/widgets/nestable/Link.d.ts +0 -196
  574. package/lib/customtypes/widgets/nestable/Link.js +0 -167
  575. package/lib/customtypes/widgets/nestable/NestableWidget.d.ts +0 -217
  576. package/lib/customtypes/widgets/nestable/NestableWidget.js +0 -39
  577. package/lib/customtypes/widgets/nestable/Number.d.ts +0 -23
  578. package/lib/customtypes/widgets/nestable/Number.js +0 -24
  579. package/lib/customtypes/widgets/nestable/Range.d.ts +0 -23
  580. package/lib/customtypes/widgets/nestable/Range.js +0 -24
  581. package/lib/customtypes/widgets/nestable/RichText.d.ts +0 -73
  582. package/lib/customtypes/widgets/nestable/RichText.js +0 -131
  583. package/lib/customtypes/widgets/nestable/Select.d.ts +0 -21
  584. package/lib/customtypes/widgets/nestable/Select.js +0 -22
  585. package/lib/customtypes/widgets/nestable/Separator.d.ts +0 -14
  586. package/lib/customtypes/widgets/nestable/Separator.js +0 -18
  587. package/lib/customtypes/widgets/nestable/Table.d.ts +0 -21
  588. package/lib/customtypes/widgets/nestable/Table.js +0 -30
  589. package/lib/customtypes/widgets/nestable/Text.d.ts +0 -19
  590. package/lib/customtypes/widgets/nestable/Text.js +0 -21
  591. package/lib/customtypes/widgets/nestable/Timestamp.d.ts +0 -19
  592. package/lib/customtypes/widgets/nestable/Timestamp.js +0 -21
  593. package/lib/customtypes/widgets/nestable/index.d.ts +0 -17
  594. package/lib/customtypes/widgets/nestable/index.js +0 -20
  595. package/lib/customtypes/widgets/shared/ImageConstraint.d.ts +0 -7
  596. package/lib/customtypes/widgets/shared/ImageConstraint.js +0 -31
  597. package/lib/customtypes/widgets/shared/index.d.ts +0 -1
  598. package/lib/customtypes/widgets/shared/index.js +0 -8
  599. package/lib/customtypes/widgets/slices/CompositeSlice.d.ts +0 -455
  600. package/lib/customtypes/widgets/slices/CompositeSlice.js +0 -63
  601. package/lib/customtypes/widgets/slices/LegacySlice.d.ts +0 -442
  602. package/lib/customtypes/widgets/slices/LegacySlice.js +0 -12
  603. package/lib/customtypes/widgets/slices/SharedSlice.d.ts +0 -1807
  604. package/lib/customtypes/widgets/slices/SharedSlice.js +0 -118
  605. package/lib/customtypes/widgets/slices/SharedSliceRef.d.ts +0 -5
  606. package/lib/customtypes/widgets/slices/SharedSliceRef.js +0 -9
  607. package/lib/customtypes/widgets/slices/Slice.d.ts +0 -6
  608. package/lib/customtypes/widgets/slices/Slice.js +0 -2
  609. package/lib/customtypes/widgets/slices/SlicePrimaryWidget.d.ts +0 -1259
  610. package/lib/customtypes/widgets/slices/SlicePrimaryWidget.js +0 -10
  611. package/lib/customtypes/widgets/slices/Slices.d.ts +0 -5917
  612. package/lib/customtypes/widgets/slices/Slices.js +0 -146
  613. package/lib/customtypes/widgets/slices/SlicesTypes.d.ts +0 -6
  614. package/lib/customtypes/widgets/slices/SlicesTypes.js +0 -11
  615. package/lib/customtypes/widgets/slices/index.d.ts +0 -8
  616. package/lib/customtypes/widgets/slices/index.js +0 -11
  617. package/lib/utils/Arrays.d.ts +0 -1
  618. package/lib/utils/Arrays.js +0 -13
  619. package/lib/utils/DocumentId.d.ts +0 -2
  620. package/lib/utils/DocumentId.js +0 -7
  621. package/lib/utils/Fields.d.ts +0 -6
  622. package/lib/utils/Fields.js +0 -2
  623. package/lib/utils/Objects.d.ts +0 -8
  624. package/lib/utils/Objects.js +0 -42
  625. package/lib/utils/index.d.ts +0 -4
  626. package/lib/utils/index.js +0 -8
  627. package/lib/validators/BasicTypes.d.ts +0 -10
  628. package/lib/validators/BasicTypes.js +0 -25
  629. package/lib/validators/DateFromString.d.ts +0 -3
  630. package/lib/validators/DateFromString.js +0 -11
  631. package/lib/validators/DateFromStringOrNumber.d.ts +0 -3
  632. package/lib/validators/DateFromStringOrNumber.js +0 -10
  633. package/lib/validators/DateFromTsMs.d.ts +0 -3
  634. package/lib/validators/DateFromTsMs.js +0 -10
  635. package/lib/validators/DefaultOrElse.d.ts +0 -5
  636. package/lib/validators/DefaultOrElse.js +0 -21
  637. package/lib/validators/IntFromNumber.d.ts +0 -5
  638. package/lib/validators/IntFromNumber.js +0 -14
  639. package/lib/validators/IntFromPixels.d.ts +0 -8
  640. package/lib/validators/IntFromPixels.js +0 -24
  641. package/lib/validators/NonEmptyString.d.ts +0 -3
  642. package/lib/validators/NonEmptyString.js +0 -6
  643. package/lib/validators/NonEmptyStringOrNull.d.ts +0 -3
  644. package/lib/validators/NonEmptyStringOrNull.js +0 -15
  645. package/lib/validators/NumberOrNull.d.ts +0 -3
  646. package/lib/validators/NumberOrNull.js +0 -6
  647. package/lib/validators/NumberRange.d.ts +0 -32
  648. package/lib/validators/NumberRange.js +0 -40
  649. package/lib/validators/StringFromBoolean.d.ts +0 -5
  650. package/lib/validators/StringFromBoolean.js +0 -10
  651. package/lib/validators/StringFromNumber.d.ts +0 -5
  652. package/lib/validators/StringFromNumber.js +0 -10
  653. package/lib/validators/StringOrNull.d.ts +0 -3
  654. package/lib/validators/StringOrNull.js +0 -6
  655. package/lib/validators/TrimmedString.d.ts +0 -5
  656. package/lib/validators/TrimmedString.js +0 -23
  657. package/lib/validators/function.d.ts +0 -34
  658. package/lib/validators/function.js +0 -100
  659. package/lib/validators/index.d.ts +0 -15
  660. package/lib/validators/index.js +0 -31
  661. package/src/common/Asset.ts +0 -25
  662. package/src/common/Embed.ts +0 -22
  663. package/src/common/HexaColorCode.ts +0 -11
  664. package/src/common/UUID.ts +0 -19
  665. package/src/common/WidgetKey.ts +0 -13
  666. package/src/common/index.ts +0 -3
  667. package/src/content/Document.ts +0 -539
  668. package/src/content/fields/EmptyContent.ts +0 -45
  669. package/src/content/fields/GroupContent.ts +0 -466
  670. package/src/content/fields/UIDContent.ts +0 -42
  671. package/src/content/fields/WidgetContent.ts +0 -76
  672. package/src/content/fields/index.ts +0 -6
  673. package/src/content/fields/nestable/BooleanContent.ts +0 -52
  674. package/src/content/fields/nestable/EmbedContent.ts +0 -74
  675. package/src/content/fields/nestable/FieldContent/ColorContent.ts +0 -49
  676. package/src/content/fields/nestable/FieldContent/DateContent.ts +0 -49
  677. package/src/content/fields/nestable/FieldContent/NumberContent.ts +0 -49
  678. package/src/content/fields/nestable/FieldContent/RangeContent.ts +0 -49
  679. package/src/content/fields/nestable/FieldContent/SelectContent.ts +0 -60
  680. package/src/content/fields/nestable/FieldContent/TextContent.ts +0 -49
  681. package/src/content/fields/nestable/FieldContent/TimestampContent.ts +0 -49
  682. package/src/content/fields/nestable/FieldContent/common.ts +0 -1
  683. package/src/content/fields/nestable/FieldContent/index.ts +0 -40
  684. package/src/content/fields/nestable/GeoPointContent.ts +0 -48
  685. package/src/content/fields/nestable/ImageContent.ts +0 -196
  686. package/src/content/fields/nestable/IntegrationFieldContent.ts +0 -51
  687. package/src/content/fields/nestable/LinkContent.ts +0 -651
  688. package/src/content/fields/nestable/NestableContent.ts +0 -241
  689. package/src/content/fields/nestable/RepeatableContent.ts +0 -224
  690. package/src/content/fields/nestable/RichTextContent/Blocks.ts +0 -238
  691. package/src/content/fields/nestable/RichTextContent/index.ts +0 -42
  692. package/src/content/fields/nestable/SeparatorContent.ts +0 -34
  693. package/src/content/fields/nestable/TableContent.ts +0 -234
  694. package/src/content/fields/nestable/index.ts +0 -12
  695. package/src/content/fields/slices/Slice/CompositeSliceContent.ts +0 -293
  696. package/src/content/fields/slices/Slice/RepeatableContent.ts +0 -29
  697. package/src/content/fields/slices/Slice/SharedSliceContent.ts +0 -305
  698. package/src/content/fields/slices/Slice/SimpleSliceContent.ts +0 -180
  699. package/src/content/fields/slices/Slice/SlicePrimaryContent.ts +0 -40
  700. package/src/content/fields/slices/Slice/index.ts +0 -52
  701. package/src/content/fields/slices/SliceItem.ts +0 -184
  702. package/src/content/fields/slices/SlicesContent.ts +0 -677
  703. package/src/content/fields/slices/index.ts +0 -3
  704. package/src/content/fields/withDefaultValues.ts +0 -119
  705. package/src/content/helpers.ts +0 -25
  706. package/src/content/index.ts +0 -4
  707. package/src/content/utils.ts +0 -145
  708. package/src/customtypes/CustomType.ts +0 -280
  709. package/src/customtypes/Section.ts +0 -98
  710. package/src/customtypes/diff/Variation.ts +0 -167
  711. package/src/customtypes/diff/Widgets.ts +0 -17
  712. package/src/customtypes/diff/index.ts +0 -4
  713. package/src/customtypes/index.ts +0 -4
  714. package/src/customtypes/widgets/Group.ts +0 -120
  715. package/src/customtypes/widgets/UID.ts +0 -27
  716. package/src/customtypes/widgets/Widget.ts +0 -83
  717. package/src/customtypes/widgets/index.ts +0 -6
  718. package/src/customtypes/widgets/nestable/BooleanField.ts +0 -29
  719. package/src/customtypes/widgets/nestable/Color.ts +0 -25
  720. package/src/customtypes/widgets/nestable/Date.ts +0 -27
  721. package/src/customtypes/widgets/nestable/Embed.ts +0 -27
  722. package/src/customtypes/widgets/nestable/GeoPoint.ts +0 -25
  723. package/src/customtypes/widgets/nestable/Image.ts +0 -39
  724. package/src/customtypes/widgets/nestable/IntegrationField.ts +0 -26
  725. package/src/customtypes/widgets/nestable/Link.ts +0 -313
  726. package/src/customtypes/widgets/nestable/NestableWidget.ts +0 -40
  727. package/src/customtypes/widgets/nestable/Number.ts +0 -30
  728. package/src/customtypes/widgets/nestable/Range.ts +0 -30
  729. package/src/customtypes/widgets/nestable/RichText.ts +0 -215
  730. package/src/customtypes/widgets/nestable/Select.ts +0 -34
  731. package/src/customtypes/widgets/nestable/Separator.ts +0 -24
  732. package/src/customtypes/widgets/nestable/Table.ts +0 -38
  733. package/src/customtypes/widgets/nestable/Text.ts +0 -27
  734. package/src/customtypes/widgets/nestable/Timestamp.ts +0 -27
  735. package/src/customtypes/widgets/nestable/index.ts +0 -17
  736. package/src/customtypes/widgets/shared/ImageConstraint.ts +0 -41
  737. package/src/customtypes/widgets/shared/index.ts +0 -1
  738. package/src/customtypes/widgets/slices/CompositeSlice.ts +0 -79
  739. package/src/customtypes/widgets/slices/LegacySlice.ts +0 -15
  740. package/src/customtypes/widgets/slices/SharedSlice.ts +0 -152
  741. package/src/customtypes/widgets/slices/SharedSliceRef.ts +0 -10
  742. package/src/customtypes/widgets/slices/Slice.ts +0 -7
  743. package/src/customtypes/widgets/slices/SlicePrimaryWidget.ts +0 -12
  744. package/src/customtypes/widgets/slices/Slices.ts +0 -184
  745. package/src/customtypes/widgets/slices/SlicesTypes.ts +0 -11
  746. package/src/customtypes/widgets/slices/index.ts +0 -8
  747. package/src/utils/Arrays.ts +0 -12
  748. package/src/utils/DocumentId.ts +0 -8
  749. package/src/utils/Fields.ts +0 -4
  750. package/src/utils/Objects.ts +0 -53
  751. package/src/utils/index.ts +0 -4
  752. package/src/validators/BasicTypes.ts +0 -55
  753. package/src/validators/DateFromString.ts +0 -19
  754. package/src/validators/DateFromStringOrNumber.ts +0 -17
  755. package/src/validators/DateFromTsMs.ts +0 -17
  756. package/src/validators/DefaultOrElse.ts +0 -24
  757. package/src/validators/IntFromNumber.ts +0 -22
  758. package/src/validators/IntFromPixels.ts +0 -32
  759. package/src/validators/NonEmptyString.ts +0 -8
  760. package/src/validators/NonEmptyStringOrNull.ts +0 -22
  761. package/src/validators/NumberOrNull.ts +0 -5
  762. package/src/validators/NumberRange.ts +0 -51
  763. package/src/validators/StringFromBoolean.ts +0 -19
  764. package/src/validators/StringFromNumber.ts +0 -19
  765. package/src/validators/StringOrNull.ts +0 -5
  766. package/src/validators/TrimmedString.ts +0 -33
  767. package/src/validators/function.ts +0 -115
  768. package/src/validators/index.ts +0 -15
  769. /package/src/{customtypes/diff/Changes.ts → model/diff/changes.ts} +0 -0
@@ -0,0 +1,71 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import type { BooleanModel } from "./boolean"
4
+ import { BooleanModelSchema } from "./boolean"
5
+ import type { ColorModel } from "./color"
6
+ import { ColorModelSchema } from "./color"
7
+ import type { DateModel } from "./date"
8
+ import { DateModelSchema } from "./date"
9
+ import type { EmbedModel } from "./embed"
10
+ import { EmbedModelSchema } from "./embed"
11
+ import type { GeoPointModel } from "./geopoint"
12
+ import { GeoPointModelSchema } from "./geopoint"
13
+ import type { ImageModel } from "./image"
14
+ import { ImageModelSchema } from "./image"
15
+ import type { IntegrationFieldModel } from "./integrationField"
16
+ import { IntegrationFieldModelSchema } from "./integrationField"
17
+ import type { LinkModel } from "./link"
18
+ import { LinkModelSchema } from "./link"
19
+ import type { NumberModel } from "./number"
20
+ import { NumberModelSchema } from "./number"
21
+ import type { RangeModel } from "./range"
22
+ import { RangeModelSchema } from "./range"
23
+ import type { RichTextModel } from "./richText"
24
+ import { RichTextModelSchema } from "./richText"
25
+ import type { SelectModel } from "./select"
26
+ import { SelectModelSchema } from "./select"
27
+ import type { SeparatorModel } from "./separator"
28
+ import { SeparatorModelSchema } from "./separator"
29
+ import type { TableModel } from "./table"
30
+ import { TableModelSchema } from "./table"
31
+ import type { TextModel } from "./text"
32
+ import { TextModelSchema } from "./text"
33
+ import type { TimestampModel } from "./timestamp"
34
+ import { TimestampModelSchema } from "./timestamp"
35
+
36
+ export const NestableModelSchema = z.union([
37
+ BooleanModelSchema,
38
+ ColorModelSchema,
39
+ DateModelSchema,
40
+ EmbedModelSchema,
41
+ GeoPointModelSchema,
42
+ ImageModelSchema,
43
+ IntegrationFieldModelSchema,
44
+ LinkModelSchema,
45
+ NumberModelSchema,
46
+ RangeModelSchema,
47
+ RichTextModelSchema,
48
+ SelectModelSchema,
49
+ SeparatorModelSchema,
50
+ TableModelSchema,
51
+ TextModelSchema,
52
+ TimestampModelSchema,
53
+ ])
54
+
55
+ export type NestableModel =
56
+ | BooleanModel
57
+ | ColorModel
58
+ | DateModel
59
+ | EmbedModel
60
+ | GeoPointModel
61
+ | ImageModel
62
+ | IntegrationFieldModel
63
+ | LinkModel
64
+ | NumberModel
65
+ | RangeModel
66
+ | RichTextModel
67
+ | SelectModel
68
+ | SeparatorModel
69
+ | TableModel
70
+ | TextModel
71
+ | TimestampModel
@@ -0,0 +1,26 @@
1
+ import { z } from "zod/mini"
2
+
3
+ // Accepts number directly or string that parses to number (like io-ts NumberFromString)
4
+ const NumberOrStringToNumber = z.union([
5
+ z.number(),
6
+ z.pipe(
7
+ z.string(),
8
+ z.transform((s) => Number(s)),
9
+ ),
10
+ ])
11
+
12
+ const NumberConfigSchema = z.object({
13
+ label: z.nullish(z.string()),
14
+ placeholder: z.optional(z.string()),
15
+ min: z.optional(NumberOrStringToNumber),
16
+ max: z.optional(NumberOrStringToNumber),
17
+ step: z.optional(NumberOrStringToNumber),
18
+ })
19
+
20
+ export const NumberModelSchema = z.object({
21
+ type: z.literal("Number"),
22
+ fieldset: z.nullish(z.string()),
23
+ config: z.optional(NumberConfigSchema),
24
+ })
25
+
26
+ export type NumberModel = z.infer<typeof NumberModelSchema>
@@ -0,0 +1,26 @@
1
+ import { z } from "zod/mini"
2
+
3
+ // Accepts number directly or string that parses to number (like io-ts NumberFromString)
4
+ const NumberOrStringToNumber = z.union([
5
+ z.number(),
6
+ z.pipe(
7
+ z.string(),
8
+ z.transform((s) => Number(s)),
9
+ ),
10
+ ])
11
+
12
+ const RangeConfigSchema = z.object({
13
+ label: z.nullish(z.string()),
14
+ placeholder: z.optional(z.string()),
15
+ min: z.optional(NumberOrStringToNumber),
16
+ max: z.optional(NumberOrStringToNumber),
17
+ step: z.optional(NumberOrStringToNumber),
18
+ })
19
+
20
+ export const RangeModelSchema = z.object({
21
+ type: z.literal("Range"),
22
+ fieldset: z.nullish(z.string()),
23
+ config: z.optional(RangeConfigSchema),
24
+ })
25
+
26
+ export type RangeModel = z.infer<typeof RangeModelSchema>
@@ -0,0 +1,109 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import { ImageConstraintSchema } from "./image"
4
+
5
+ export const RichTextFieldType = "StructuredText"
6
+
7
+ export const DEFAULT_OPTION = "paragraph"
8
+
9
+ export const RichTextModelNodeType = {
10
+ heading1: "heading1",
11
+ heading2: "heading2",
12
+ heading3: "heading3",
13
+ heading4: "heading4",
14
+ heading5: "heading5",
15
+ heading6: "heading6",
16
+ paragraph: "paragraph",
17
+ preformatted: "preformatted",
18
+ orderedList: "o-list-item",
19
+ list: "list-item",
20
+ image: "image",
21
+ embed: "embed",
22
+ hyperlink: "hyperlink",
23
+ strong: "strong",
24
+ em: "em",
25
+ rtl: "rtl",
26
+ } as const
27
+
28
+ export type RichTextModelNodeTypes =
29
+ (typeof RichTextModelNodeType)[keyof typeof RichTextModelNodeType]
30
+
31
+ const VALID_NODE_TYPES = Object.values(RichTextModelNodeType)
32
+
33
+ /**
34
+ * RichTextOptions parses comma-separated node types, filters invalid ones,
35
+ * and defaults to "paragraph" if empty or null.
36
+ */
37
+ const RichTextOptionsSchema = z.pipe(
38
+ z.union([z.string(), z.null()]),
39
+ z.transform((s: string | null) => {
40
+ if (!s) return DEFAULT_OPTION
41
+ const entries = s.split(",").map((e: string) => e.trim())
42
+ const filtered = entries.filter((e: string) =>
43
+ VALID_NODE_TYPES.includes(e as (typeof VALID_NODE_TYPES)[number]),
44
+ )
45
+ return filtered.length ? filtered.join(",") : DEFAULT_OPTION
46
+ }),
47
+ )
48
+
49
+ /**
50
+ * RichTextLabels accepts multiple formats and normalizes to string[]:
51
+ * - null → []
52
+ * - "label" → ["label"]
53
+ * - ["a", "b"] → ["a", "b"]
54
+ * - { "": [{name: "a"}], "key": [{name: "b"}] } → ["a", "b"] (legacy format)
55
+ */
56
+ const LegacyLabelsFormat = z.record(z.string(), z.array(z.object({ name: z.string() })))
57
+
58
+ const RichTextLabelsSchema: z.ZodMiniType<string[]> = z.pipe(
59
+ z.union([
60
+ z.pipe(
61
+ z.null(),
62
+ z.transform(() => [] as string[]),
63
+ ),
64
+ z.pipe(
65
+ z.string(),
66
+ z.transform((s: string) => [s]),
67
+ ),
68
+ z.array(z.string()),
69
+ z.pipe(
70
+ LegacyLabelsFormat,
71
+ z.transform((obj: Record<string, Array<{ name: string }>>) => {
72
+ const entries = Object.entries(obj)
73
+ if (!entries.length) return [] as string[]
74
+
75
+ // Handle legacy format with empty key
76
+ if (obj[""]) {
77
+ return obj[""].map((l: { name: string }) => l.name)
78
+ }
79
+
80
+ // Convert all entries to flat array of names
81
+ return entries
82
+ .reduce<string[]>((acc, [, labelsEntries]) => {
83
+ return acc.concat(labelsEntries.map((l: { name: string }) => l.name))
84
+ }, [])
85
+ .filter(Boolean)
86
+ }),
87
+ ),
88
+ ]),
89
+ z.transform((result: string[]) => result as string[]),
90
+ )
91
+
92
+ const RichTextConfigSchema = z.object({
93
+ label: z.nullish(z.string()),
94
+ placeholder: z.optional(z.string()),
95
+ useAsTitle: z.optional(z.boolean()),
96
+ single: z.optional(RichTextOptionsSchema),
97
+ multi: z.optional(RichTextOptionsSchema),
98
+ imageConstraint: z.optional(ImageConstraintSchema),
99
+ labels: z.optional(RichTextLabelsSchema),
100
+ allowTargetBlank: z.optional(z.boolean()),
101
+ })
102
+
103
+ export const RichTextModelSchema = z.object({
104
+ type: z.literal(RichTextFieldType),
105
+ fieldset: z.nullish(z.string()),
106
+ config: z.optional(RichTextConfigSchema),
107
+ })
108
+
109
+ export type RichTextModel = z.infer<typeof RichTextModelSchema>
@@ -0,0 +1,12 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import { WidgetKeySchema } from "../common/widgetKey"
4
+ import { DynamicWidgetModelSchema, StaticWidgetModelSchema } from "./widget"
5
+
6
+ // StaticSection = Record<WidgetKey, StaticWidget>
7
+ export const StaticSectionModelSchema = z.record(WidgetKeySchema, StaticWidgetModelSchema)
8
+ export type StaticSectionModel = z.infer<typeof StaticSectionModelSchema>
9
+
10
+ // DynamicSection = Record<WidgetKey, DynamicWidget>
11
+ export const DynamicSectionModelSchema = z.record(WidgetKeySchema, DynamicWidgetModelSchema)
12
+ export type DynamicSectionModel = z.infer<typeof DynamicSectionModelSchema>
@@ -0,0 +1,30 @@
1
+ import { z } from "zod/mini"
2
+
3
+ // Options can be string, number, or boolean - all coerced to string
4
+ // Matches io-ts behavior: t.union([t.string, StringFromNumber, StringFromBoolean])
5
+ const SelectOptionSchema: z.ZodMiniType<string> = z.union([
6
+ z.string(),
7
+ z.pipe(
8
+ z.number(),
9
+ z.transform((n) => n.toString()),
10
+ ),
11
+ z.pipe(
12
+ z.boolean(),
13
+ z.transform((b) => b.toString()),
14
+ ),
15
+ ])
16
+
17
+ const SelectConfigSchema = z.object({
18
+ label: z.nullish(z.string()),
19
+ placeholder: z.optional(z.string()),
20
+ default_value: z.optional(z.string()),
21
+ options: z.optional(z.array(SelectOptionSchema)),
22
+ })
23
+
24
+ export const SelectModelSchema = z.object({
25
+ type: z.literal("Select"),
26
+ fieldset: z.nullish(z.string()),
27
+ config: z.optional(SelectConfigSchema),
28
+ })
29
+
30
+ export type SelectModel = z.infer<typeof SelectModelSchema>
@@ -0,0 +1,12 @@
1
+ import { z } from "zod/mini"
2
+
3
+ const SeparatorConfigSchema = z.object({
4
+ label: z.nullish(z.string()),
5
+ })
6
+
7
+ export const SeparatorModelSchema = z.object({
8
+ type: z.literal("Separator"),
9
+ config: z.optional(SeparatorConfigSchema),
10
+ })
11
+
12
+ export type SeparatorModel = z.infer<typeof SeparatorModelSchema>
@@ -0,0 +1,131 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import { WidgetKeySchema } from "../common/widgetKey"
4
+ import type { GroupModel, NestedGroupModel } from "./group"
5
+ import { GroupModelSchema, NestedGroupModelSchema } from "./group"
6
+ import type { NestableModel } from "./nestable"
7
+ import { NestableModelSchema } from "./nestable"
8
+
9
+ // Simple (before 2020)
10
+ export const LegacySliceModelSchema: z.ZodMiniType<LegacySliceModel> = z.union([
11
+ NestableModelSchema,
12
+ NestedGroupModelSchema,
13
+ ])
14
+
15
+ export type LegacySliceModel = NestableModel | NestedGroupModel
16
+
17
+ // Composite (2020 to 2021)
18
+ export const CompositeSliceType = "Slice" as const
19
+
20
+ const CompositeSliceConfigSchema = z.object({
21
+ label: z.nullish(z.string()),
22
+ })
23
+
24
+ export const CompositeSliceModelSchema = z.object({
25
+ type: z.literal(CompositeSliceType),
26
+ fieldset: z.nullish(z.string()),
27
+ description: z.optional(z.string()),
28
+ icon: z.optional(z.string()),
29
+ display: z.optional(z.string()),
30
+ "non-repeat": z.optional(z.record(WidgetKeySchema, NestableModelSchema)),
31
+ repeat: z.optional(z.record(WidgetKeySchema, NestableModelSchema)),
32
+ config: z.optional(CompositeSliceConfigSchema),
33
+ })
34
+
35
+ export type CompositeSliceModel = z.infer<typeof CompositeSliceModelSchema>
36
+
37
+ // Shared (2021 to present)
38
+ export const SharedSliceType = "SharedSlice" as const
39
+
40
+ const IMAGE_PLACEHOLDER_URL =
41
+ "https://images.prismic.io/slice-machine/621a5ec4-0387-4bc5-9860-2dd46cbc07cd_default_ss.png?auto=compress,format"
42
+
43
+ export const SharedSliceModelVariationSchema = z.object({
44
+ id: z.string(),
45
+ name: z.string(),
46
+ description: z.string(),
47
+ imageUrl: z._default(z.string(), IMAGE_PLACEHOLDER_URL),
48
+ docURL: z.string(),
49
+ version: z.string(),
50
+ display: z.optional(z.string()),
51
+ primary: z.optional(
52
+ z.record(
53
+ z.string(),
54
+ z.union([NestableModelSchema, GroupModelSchema]) as z.ZodMiniType<NestableModel | GroupModel>,
55
+ ),
56
+ ),
57
+ items: z.optional(z.record(z.string(), NestableModelSchema)),
58
+ })
59
+
60
+ export type SharedSliceModelVariation = z.infer<typeof SharedSliceModelVariationSchema>
61
+
62
+ export const SharedSliceModelSchema = z.object({
63
+ id: z.string(),
64
+ type: z.literal(SharedSliceType),
65
+ name: z.string(),
66
+ variations: z.array(SharedSliceModelVariationSchema),
67
+ description: z.optional(z.string()),
68
+ legacyPaths: z.optional(z.record(z.string(), z.string())),
69
+ })
70
+
71
+ export type SharedSliceModel = z.infer<typeof SharedSliceModelSchema>
72
+
73
+ export const SharedSliceRefModelSchema = z.object({
74
+ type: z.literal(SharedSliceType),
75
+ })
76
+
77
+ export type SharedSliceRefModel = z.infer<typeof SharedSliceRefModelSchema>
78
+
79
+ // Used to represent a shared slice content which can only be
80
+ // of a given shared slice variation type.
81
+ export const SharedSliceVariationContentModelSchema = z.object({
82
+ type: z.literal(SharedSliceType),
83
+ sliceName: z.string(),
84
+ variationID: z.string(),
85
+ fields: z.pick(SharedSliceModelVariationSchema, { primary: true, items: true }),
86
+ })
87
+
88
+ export type SharedSliceVariationContentModel = z.infer<
89
+ typeof SharedSliceVariationContentModelSchema
90
+ >
91
+
92
+ // All
93
+
94
+ // Used when slices reference SharedSlice by ref (not full definition)
95
+ export const DynamicSliceModelSchema: z.ZodMiniType<DynamicSliceModel> = z.union([
96
+ CompositeSliceModelSchema,
97
+ LegacySliceModelSchema,
98
+ SharedSliceRefModelSchema,
99
+ ])
100
+
101
+ export type DynamicSliceModel = CompositeSliceModel | LegacySliceModel | SharedSliceRefModel
102
+
103
+ // Used when slices include full SharedSlice definition
104
+ export const StaticSliceModelSchema: z.ZodMiniType<StaticSliceModel> = z.union([
105
+ CompositeSliceModelSchema,
106
+ LegacySliceModelSchema,
107
+ SharedSliceModelSchema,
108
+ ])
109
+
110
+ export type StaticSliceModel = CompositeSliceModel | LegacySliceModel | SharedSliceModel
111
+
112
+ // Used to represent a slice content model as shared slice variations
113
+ // can only be of a given shared slice variation type.
114
+ export const SliceContentModelSchema: z.ZodMiniType<SliceContentModel> = z.union([
115
+ CompositeSliceModelSchema,
116
+ LegacySliceModelSchema,
117
+ SharedSliceVariationContentModelSchema,
118
+ ])
119
+
120
+ export type SliceContentModel =
121
+ | CompositeSliceModel
122
+ | LegacySliceModel
123
+ | SharedSliceVariationContentModel
124
+
125
+ // Model types
126
+ export const SliceModelTypeSchema = z.union([
127
+ z.literal(CompositeSliceType),
128
+ z.literal(SharedSliceType),
129
+ ])
130
+
131
+ export type SliceModelType = z.infer<typeof SliceModelTypeSchema>
@@ -0,0 +1,54 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import { WidgetKeySchema } from "../common/widgetKey"
4
+ import { StaticSliceModelSchema, DynamicSliceModelSchema } from "./slice"
5
+
6
+ export const LegacySlicesFieldType = "Choice"
7
+ export const SlicesFieldType = "Slices"
8
+
9
+ // Label configuration for slices
10
+ const SlicesLabelSchema = z.object({
11
+ name: z.string(),
12
+ display: z.optional(z.string()),
13
+ })
14
+
15
+ export const SlicesLabelsSchema = z.union([
16
+ z.record(z.string(), z.array(SlicesLabelSchema)),
17
+ z.null(),
18
+ ])
19
+
20
+ // Config
21
+ const getSlicesConfigSchema = <
22
+ TSliceSchema extends typeof StaticSliceModelSchema | typeof DynamicSliceModelSchema,
23
+ >(
24
+ sliceSchema: TSliceSchema,
25
+ ) =>
26
+ z.object({
27
+ label: z.nullish(z.string()),
28
+ labels: z.optional(SlicesLabelsSchema),
29
+ choices: z.optional(z.record(WidgetKeySchema, sliceSchema)),
30
+ })
31
+
32
+ const StaticSlicesConfigSchema = getSlicesConfigSchema(StaticSliceModelSchema)
33
+
34
+ const DynamicSlicesConfigSchema = getSlicesConfigSchema(DynamicSliceModelSchema)
35
+
36
+ // Model
37
+ const getSlicesSchema = <
38
+ TConfig extends typeof StaticSlicesConfigSchema | typeof DynamicSlicesConfigSchema,
39
+ >(
40
+ configSchema: TConfig,
41
+ ) =>
42
+ z.object({
43
+ type: z.union([z.literal(SlicesFieldType), z.literal(LegacySlicesFieldType)]),
44
+ fieldset: z.nullish(z.string()),
45
+ config: z.optional(configSchema),
46
+ })
47
+
48
+ export const StaticSlicesModelSchema = getSlicesSchema(StaticSlicesConfigSchema)
49
+
50
+ export type StaticSlicesModel = z.infer<typeof StaticSlicesModelSchema>
51
+
52
+ export const DynamicSlicesModelSchema = getSlicesSchema(DynamicSlicesConfigSchema)
53
+
54
+ export type DynamicSlicesModel = z.infer<typeof DynamicSlicesModelSchema>
@@ -0,0 +1,29 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import { RichTextModelNodeType, type RichTextModel } from "./richText"
4
+
5
+ const TableConfigSchema = z.object({
6
+ label: z.nullish(z.string()),
7
+ })
8
+
9
+ export const TableModelSchema = z.object({
10
+ type: z.literal("Table"),
11
+ config: z.optional(TableConfigSchema),
12
+ })
13
+
14
+ export type TableModel = z.infer<typeof TableModelSchema>
15
+
16
+ // TableCell configuration constant (used for cell rich text configuration)
17
+ export const TableCellModelNodeTypes = [
18
+ RichTextModelNodeType.paragraph,
19
+ RichTextModelNodeType.strong,
20
+ RichTextModelNodeType.em,
21
+ RichTextModelNodeType.hyperlink,
22
+ ]
23
+
24
+ export const TableCellModel: RichTextModel = {
25
+ type: "StructuredText" as const,
26
+ config: {
27
+ multi: TableCellModelNodeTypes.join(","),
28
+ },
29
+ }
@@ -0,0 +1,15 @@
1
+ import { z } from "zod/mini"
2
+
3
+ const TextConfigSchema = z.object({
4
+ label: z.nullish(z.string()),
5
+ useAsTitle: z.optional(z.boolean()),
6
+ placeholder: z.optional(z.string()),
7
+ })
8
+
9
+ export const TextModelSchema = z.object({
10
+ type: z.literal("Text"),
11
+ fieldset: z.nullish(z.string()),
12
+ config: z.optional(TextConfigSchema),
13
+ })
14
+
15
+ export type TextModel = z.infer<typeof TextModelSchema>
@@ -0,0 +1,15 @@
1
+ import { z } from "zod/mini"
2
+
3
+ const TimestampConfigSchema = z.object({
4
+ label: z.nullish(z.string()),
5
+ placeholder: z.optional(z.string()),
6
+ default: z.optional(z.string()),
7
+ })
8
+
9
+ export const TimestampModelSchema = z.object({
10
+ type: z.literal("Timestamp"),
11
+ fieldset: z.nullish(z.string()),
12
+ config: z.optional(TimestampConfigSchema),
13
+ })
14
+
15
+ export type TimestampModel = z.infer<typeof TimestampModelSchema>
@@ -0,0 +1,15 @@
1
+ import { z } from "zod/mini"
2
+
3
+ const UIDConfigSchema = z.object({
4
+ label: z.nullish(z.string()),
5
+ useAsTitle: z.optional(z.boolean()),
6
+ placeholder: z.optional(z.string()),
7
+ })
8
+
9
+ export const UIDModelSchema = z.object({
10
+ type: z.literal("UID"),
11
+ fieldset: z.nullish(z.string()),
12
+ config: z.optional(UIDConfigSchema),
13
+ })
14
+
15
+ export type UIDModel = z.infer<typeof UIDModelSchema>
@@ -0,0 +1,67 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import type { GroupModel } from "./group"
4
+ import { GroupModelSchema } from "./group"
5
+ import type { NestableModel } from "./nestable"
6
+ import { NestableModelSchema } from "./nestable"
7
+ import { SliceModelTypeSchema } from "./slice"
8
+ import type { DynamicSlicesModel, StaticSlicesModel } from "./slices"
9
+ import { DynamicSlicesModelSchema, StaticSlicesModelSchema } from "./slices"
10
+ import type { UIDModel } from "./uid"
11
+ import { UIDModelSchema } from "./uid"
12
+
13
+ // StaticWidget = UID | Nestable | Group | StaticSlices
14
+ export const StaticWidgetModelSchema: z.ZodMiniType<StaticWidgetModel> = z.union([
15
+ UIDModelSchema,
16
+ NestableModelSchema,
17
+ GroupModelSchema,
18
+ StaticSlicesModelSchema,
19
+ ])
20
+
21
+ export type StaticWidgetModel = UIDModel | NestableModel | GroupModel | StaticSlicesModel
22
+
23
+ // DynamicWidget = UID | Nestable | Group | DynamicSlices
24
+ export const DynamicWidgetModelSchema: z.ZodMiniType<DynamicWidgetModel> = z.union([
25
+ UIDModelSchema,
26
+ NestableModelSchema,
27
+ GroupModelSchema,
28
+ DynamicSlicesModelSchema,
29
+ ])
30
+
31
+ export type DynamicWidgetModel = UIDModel | NestableModel | GroupModel | DynamicSlicesModel
32
+
33
+ // FieldModelType - all possible field type strings
34
+ export const FieldModelTypeSchema = z.enum([
35
+ "Color",
36
+ "Boolean",
37
+ "Number",
38
+ "Embed",
39
+ "GeoPoint",
40
+ "Date",
41
+ "Range",
42
+ "StructuredText",
43
+ "Select",
44
+ "Separator",
45
+ "Table",
46
+ "Text",
47
+ "Timestamp",
48
+ "Link",
49
+ "Image",
50
+ "IntegrationFields",
51
+ "UID",
52
+ "Group",
53
+ "Slices",
54
+ "Choice",
55
+ ])
56
+
57
+ export type FieldModelType = z.infer<typeof FieldModelTypeSchema>
58
+
59
+ // Field and slice types
60
+ export const FieldOrSliceTypeSchema = z.union([
61
+ FieldModelTypeSchema,
62
+ SliceModelTypeSchema,
63
+ // Repeatable links are "meta" types like slices and shared slices
64
+ z.literal("Repeatable.Link"),
65
+ ])
66
+
67
+ export type FieldOrSliceType = z.infer<typeof FieldOrSliceTypeSchema>