@plumix/core 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (418) hide show
  1. package/dist/cache/embedded-tags.d.ts +5 -0
  2. package/dist/cache/embedded-tags.d.ts.map +1 -0
  3. package/dist/cache/embedded-tags.js +30 -0
  4. package/dist/cache/embedded-tags.js.map +1 -0
  5. package/dist/entries/read-service.d.ts.map +1 -1
  6. package/dist/entries/read-service.js +5 -3
  7. package/dist/entries/read-service.js.map +1 -1
  8. package/dist/index.d.ts +3 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +1 -0
  11. package/dist/index.js.map +1 -1
  12. package/dist/plugin/errors.d.ts +7 -1
  13. package/dist/plugin/errors.d.ts.map +1 -1
  14. package/dist/plugin/errors.js +5 -0
  15. package/dist/plugin/errors.js.map +1 -1
  16. package/dist/plugin/fields/builder.d.ts +106 -0
  17. package/dist/plugin/fields/builder.d.ts.map +1 -0
  18. package/dist/plugin/fields/builder.js +162 -0
  19. package/dist/plugin/fields/builder.js.map +1 -0
  20. package/dist/plugin/fields/color.d.ts +78 -18
  21. package/dist/plugin/fields/color.d.ts.map +1 -1
  22. package/dist/plugin/fields/color.js +116 -25
  23. package/dist/plugin/fields/color.js.map +1 -1
  24. package/dist/plugin/fields/condition.d.ts +40 -0
  25. package/dist/plugin/fields/condition.d.ts.map +1 -0
  26. package/dist/plugin/fields/condition.js +115 -0
  27. package/dist/plugin/fields/condition.js.map +1 -0
  28. package/dist/plugin/fields/contributions.d.ts +233 -0
  29. package/dist/plugin/fields/contributions.d.ts.map +1 -0
  30. package/dist/plugin/fields/contributions.js +1 -0
  31. package/dist/plugin/fields/contributions.js.map +1 -0
  32. package/dist/plugin/fields/entry.d.ts +18 -22
  33. package/dist/plugin/fields/entry.d.ts.map +1 -1
  34. package/dist/plugin/fields/entry.js +13 -21
  35. package/dist/plugin/fields/entry.js.map +1 -1
  36. package/dist/plugin/fields/errors.d.ts +23 -11
  37. package/dist/plugin/fields/errors.d.ts.map +1 -1
  38. package/dist/plugin/fields/errors.js +20 -13
  39. package/dist/plugin/fields/errors.js.map +1 -1
  40. package/dist/plugin/fields/group.d.ts +90 -0
  41. package/dist/plugin/fields/group.d.ts.map +1 -0
  42. package/dist/plugin/fields/group.js +124 -0
  43. package/dist/plugin/fields/group.js.map +1 -0
  44. package/dist/plugin/fields/index.d.ts +22 -45
  45. package/dist/plugin/fields/index.d.ts.map +1 -1
  46. package/dist/plugin/fields/index.js +25 -30
  47. package/dist/plugin/fields/index.js.map +1 -1
  48. package/dist/plugin/fields/json.d.ts +71 -9
  49. package/dist/plugin/fields/json.d.ts.map +1 -1
  50. package/dist/plugin/fields/json.js +110 -16
  51. package/dist/plugin/fields/json.js.map +1 -1
  52. package/dist/plugin/fields/link.d.ts +96 -0
  53. package/dist/plugin/fields/link.d.ts.map +1 -0
  54. package/dist/plugin/fields/link.js +160 -0
  55. package/dist/plugin/fields/link.js.map +1 -0
  56. package/dist/plugin/fields/number.d.ts +86 -13
  57. package/dist/plugin/fields/number.d.ts.map +1 -1
  58. package/dist/plugin/fields/number.js +133 -20
  59. package/dist/plugin/fields/number.js.map +1 -1
  60. package/dist/plugin/fields/range.d.ts +101 -17
  61. package/dist/plugin/fields/range.d.ts.map +1 -1
  62. package/dist/plugin/fields/range.js +153 -38
  63. package/dist/plugin/fields/range.js.map +1 -1
  64. package/dist/plugin/fields/reference.d.ts +171 -0
  65. package/dist/plugin/fields/reference.d.ts.map +1 -0
  66. package/dist/plugin/fields/reference.js +193 -0
  67. package/dist/plugin/fields/reference.js.map +1 -0
  68. package/dist/plugin/fields/repeater.d.ts +111 -8
  69. package/dist/plugin/fields/repeater.d.ts.map +1 -1
  70. package/dist/plugin/fields/repeater.js +157 -66
  71. package/dist/plugin/fields/repeater.js.map +1 -1
  72. package/dist/plugin/fields/richtext-validate.d.ts +7 -0
  73. package/dist/plugin/fields/richtext-validate.d.ts.map +1 -1
  74. package/dist/plugin/fields/richtext-validate.js +11 -5
  75. package/dist/plugin/fields/richtext-validate.js.map +1 -1
  76. package/dist/plugin/fields/richtext.d.ts +78 -12
  77. package/dist/plugin/fields/richtext.d.ts.map +1 -1
  78. package/dist/plugin/fields/richtext.js +121 -26
  79. package/dist/plugin/fields/richtext.js.map +1 -1
  80. package/dist/plugin/fields/select.d.ts +150 -10
  81. package/dist/plugin/fields/select.d.ts.map +1 -1
  82. package/dist/plugin/fields/select.js +205 -17
  83. package/dist/plugin/fields/select.js.map +1 -1
  84. package/dist/plugin/fields/sub-fields.d.ts +12 -0
  85. package/dist/plugin/fields/sub-fields.d.ts.map +1 -0
  86. package/dist/plugin/fields/sub-fields.js +62 -0
  87. package/dist/plugin/fields/sub-fields.js.map +1 -0
  88. package/dist/plugin/fields/temporal.d.ts +124 -0
  89. package/dist/plugin/fields/temporal.d.ts.map +1 -0
  90. package/dist/plugin/fields/temporal.js +180 -0
  91. package/dist/plugin/fields/temporal.js.map +1 -0
  92. package/dist/plugin/fields/term.d.ts +11 -16
  93. package/dist/plugin/fields/term.d.ts.map +1 -1
  94. package/dist/plugin/fields/term.js +11 -19
  95. package/dist/plugin/fields/term.js.map +1 -1
  96. package/dist/plugin/fields/toggle.d.ts +97 -0
  97. package/dist/plugin/fields/toggle.d.ts.map +1 -0
  98. package/dist/plugin/fields/toggle.js +135 -0
  99. package/dist/plugin/fields/toggle.js.map +1 -0
  100. package/dist/plugin/fields/user.d.ts +14 -26
  101. package/dist/plugin/fields/user.d.ts.map +1 -1
  102. package/dist/plugin/fields/user.js +11 -25
  103. package/dist/plugin/fields/user.js.map +1 -1
  104. package/dist/plugin/lookup.d.ts +70 -1
  105. package/dist/plugin/lookup.d.ts.map +1 -1
  106. package/dist/plugin/manifest.d.ts +308 -128
  107. package/dist/plugin/manifest.d.ts.map +1 -1
  108. package/dist/plugin/manifest.js +94 -4
  109. package/dist/plugin/manifest.js.map +1 -1
  110. package/dist/plugin/setup-context.d.ts +5 -4
  111. package/dist/plugin/setup-context.d.ts.map +1 -1
  112. package/dist/plugin/setup-context.js +10 -3
  113. package/dist/plugin/setup-context.js.map +1 -1
  114. package/dist/plugin/validation/meta-box-fields.d.ts.map +1 -1
  115. package/dist/plugin/validation/meta-box-fields.js +16 -0
  116. package/dist/plugin/validation/meta-box-fields.js.map +1 -1
  117. package/dist/route/render/build-resolved-entries.d.ts.map +1 -1
  118. package/dist/route/render/build-resolved-entries.js +7 -2
  119. package/dist/route/render/build-resolved-entries.js.map +1 -1
  120. package/dist/route/render/render-template.d.ts.map +1 -1
  121. package/dist/route/render/render-template.js +12 -2
  122. package/dist/route/render/render-template.js.map +1 -1
  123. package/dist/route/render/template-builders.d.ts +15 -10
  124. package/dist/route/render/template-builders.d.ts.map +1 -1
  125. package/dist/route/render/template-builders.js.map +1 -1
  126. package/dist/rpc/base.d.ts +7 -0
  127. package/dist/rpc/base.d.ts.map +1 -1
  128. package/dist/rpc/errors.d.ts +7 -0
  129. package/dist/rpc/errors.d.ts.map +1 -1
  130. package/dist/rpc/errors.js +16 -0
  131. package/dist/rpc/errors.js.map +1 -1
  132. package/dist/rpc/meta/core.d.ts +89 -10
  133. package/dist/rpc/meta/core.d.ts.map +1 -1
  134. package/dist/rpc/meta/core.js +465 -282
  135. package/dist/rpc/meta/core.js.map +1 -1
  136. package/dist/rpc/meta/field-messages.d.ts +67 -0
  137. package/dist/rpc/meta/field-messages.d.ts.map +1 -0
  138. package/dist/rpc/meta/field-messages.js +67 -0
  139. package/dist/rpc/meta/field-messages.js.map +1 -0
  140. package/dist/rpc/meta/field-pipeline.d.ts +52 -0
  141. package/dist/rpc/meta/field-pipeline.d.ts.map +1 -0
  142. package/dist/rpc/meta/field-pipeline.js +501 -0
  143. package/dist/rpc/meta/field-pipeline.js.map +1 -0
  144. package/dist/rpc/procedures/auth/allowed-domains/create.d.ts +7 -0
  145. package/dist/rpc/procedures/auth/allowed-domains/create.d.ts.map +1 -1
  146. package/dist/rpc/procedures/auth/allowed-domains/delete.d.ts +7 -0
  147. package/dist/rpc/procedures/auth/allowed-domains/delete.d.ts.map +1 -1
  148. package/dist/rpc/procedures/auth/allowed-domains/index.d.ts +28 -0
  149. package/dist/rpc/procedures/auth/allowed-domains/index.d.ts.map +1 -1
  150. package/dist/rpc/procedures/auth/allowed-domains/list.d.ts +7 -0
  151. package/dist/rpc/procedures/auth/allowed-domains/list.d.ts.map +1 -1
  152. package/dist/rpc/procedures/auth/allowed-domains/update.d.ts +7 -0
  153. package/dist/rpc/procedures/auth/allowed-domains/update.d.ts.map +1 -1
  154. package/dist/rpc/procedures/auth/api-tokens/admin-list.d.ts +7 -0
  155. package/dist/rpc/procedures/auth/api-tokens/admin-list.d.ts.map +1 -1
  156. package/dist/rpc/procedures/auth/api-tokens/admin-revoke.d.ts +7 -0
  157. package/dist/rpc/procedures/auth/api-tokens/admin-revoke.d.ts.map +1 -1
  158. package/dist/rpc/procedures/auth/api-tokens/create.d.ts +7 -0
  159. package/dist/rpc/procedures/auth/api-tokens/create.d.ts.map +1 -1
  160. package/dist/rpc/procedures/auth/api-tokens/index.d.ts +35 -0
  161. package/dist/rpc/procedures/auth/api-tokens/index.d.ts.map +1 -1
  162. package/dist/rpc/procedures/auth/api-tokens/list.d.ts +7 -0
  163. package/dist/rpc/procedures/auth/api-tokens/list.d.ts.map +1 -1
  164. package/dist/rpc/procedures/auth/api-tokens/revoke.d.ts +7 -0
  165. package/dist/rpc/procedures/auth/api-tokens/revoke.d.ts.map +1 -1
  166. package/dist/rpc/procedures/auth/credentials/delete.d.ts +7 -0
  167. package/dist/rpc/procedures/auth/credentials/delete.d.ts.map +1 -1
  168. package/dist/rpc/procedures/auth/credentials/index.d.ts +21 -0
  169. package/dist/rpc/procedures/auth/credentials/index.d.ts.map +1 -1
  170. package/dist/rpc/procedures/auth/credentials/list.d.ts +7 -0
  171. package/dist/rpc/procedures/auth/credentials/list.d.ts.map +1 -1
  172. package/dist/rpc/procedures/auth/credentials/rename.d.ts +7 -0
  173. package/dist/rpc/procedures/auth/credentials/rename.d.ts.map +1 -1
  174. package/dist/rpc/procedures/auth/device-flow/approve.d.ts +7 -0
  175. package/dist/rpc/procedures/auth/device-flow/approve.d.ts.map +1 -1
  176. package/dist/rpc/procedures/auth/device-flow/deny.d.ts +7 -0
  177. package/dist/rpc/procedures/auth/device-flow/deny.d.ts.map +1 -1
  178. package/dist/rpc/procedures/auth/device-flow/index.d.ts +21 -0
  179. package/dist/rpc/procedures/auth/device-flow/index.d.ts.map +1 -1
  180. package/dist/rpc/procedures/auth/device-flow/lookup.d.ts +7 -0
  181. package/dist/rpc/procedures/auth/device-flow/lookup.d.ts.map +1 -1
  182. package/dist/rpc/procedures/auth/index.d.ts +154 -0
  183. package/dist/rpc/procedures/auth/index.d.ts.map +1 -1
  184. package/dist/rpc/procedures/auth/login-links.d.ts +7 -0
  185. package/dist/rpc/procedures/auth/login-links.d.ts.map +1 -1
  186. package/dist/rpc/procedures/auth/mailer/index.d.ts +7 -0
  187. package/dist/rpc/procedures/auth/mailer/index.d.ts.map +1 -1
  188. package/dist/rpc/procedures/auth/mailer/test-send.d.ts +7 -0
  189. package/dist/rpc/procedures/auth/mailer/test-send.d.ts.map +1 -1
  190. package/dist/rpc/procedures/auth/oauth-providers.d.ts +7 -0
  191. package/dist/rpc/procedures/auth/oauth-providers.d.ts.map +1 -1
  192. package/dist/rpc/procedures/auth/session.d.ts +7 -0
  193. package/dist/rpc/procedures/auth/session.d.ts.map +1 -1
  194. package/dist/rpc/procedures/auth/sessions/index.d.ts +21 -0
  195. package/dist/rpc/procedures/auth/sessions/index.d.ts.map +1 -1
  196. package/dist/rpc/procedures/auth/sessions/list.d.ts +7 -0
  197. package/dist/rpc/procedures/auth/sessions/list.d.ts.map +1 -1
  198. package/dist/rpc/procedures/auth/sessions/revoke-others.d.ts +7 -0
  199. package/dist/rpc/procedures/auth/sessions/revoke-others.d.ts.map +1 -1
  200. package/dist/rpc/procedures/auth/sessions/revoke.d.ts +7 -0
  201. package/dist/rpc/procedures/auth/sessions/revoke.d.ts.map +1 -1
  202. package/dist/rpc/procedures/entry/activity.d.ts +7 -0
  203. package/dist/rpc/procedures/entry/activity.d.ts.map +1 -1
  204. package/dist/rpc/procedures/entry/bulk.d.ts +21 -0
  205. package/dist/rpc/procedures/entry/bulk.d.ts.map +1 -1
  206. package/dist/rpc/procedures/entry/create-preview-link.d.ts +7 -0
  207. package/dist/rpc/procedures/entry/create-preview-link.d.ts.map +1 -1
  208. package/dist/rpc/procedures/entry/create.d.ts +8 -1
  209. package/dist/rpc/procedures/entry/create.d.ts.map +1 -1
  210. package/dist/rpc/procedures/entry/create.js +8 -8
  211. package/dist/rpc/procedures/entry/create.js.map +1 -1
  212. package/dist/rpc/procedures/entry/dashboard.d.ts +14 -0
  213. package/dist/rpc/procedures/entry/dashboard.d.ts.map +1 -1
  214. package/dist/rpc/procedures/entry/delete-permanent.d.ts +7 -0
  215. package/dist/rpc/procedures/entry/delete-permanent.d.ts.map +1 -1
  216. package/dist/rpc/procedures/entry/discard-draft.d.ts +7 -0
  217. package/dist/rpc/procedures/entry/discard-draft.d.ts.map +1 -1
  218. package/dist/rpc/procedures/entry/duplicate.d.ts +7 -0
  219. package/dist/rpc/procedures/entry/duplicate.d.ts.map +1 -1
  220. package/dist/rpc/procedures/entry/duplicate.js +2 -2
  221. package/dist/rpc/procedures/entry/duplicate.js.map +1 -1
  222. package/dist/rpc/procedures/entry/get.d.ts +7 -0
  223. package/dist/rpc/procedures/entry/get.d.ts.map +1 -1
  224. package/dist/rpc/procedures/entry/get.js +2 -2
  225. package/dist/rpc/procedures/entry/get.js.map +1 -1
  226. package/dist/rpc/procedures/entry/index.d.ts +156 -2
  227. package/dist/rpc/procedures/entry/index.d.ts.map +1 -1
  228. package/dist/rpc/procedures/entry/list.d.ts +7 -0
  229. package/dist/rpc/procedures/entry/list.d.ts.map +1 -1
  230. package/dist/rpc/procedures/entry/lookup.d.ts +8 -2
  231. package/dist/rpc/procedures/entry/lookup.d.ts.map +1 -1
  232. package/dist/rpc/procedures/entry/lookup.js +60 -1
  233. package/dist/rpc/procedures/entry/lookup.js.map +1 -1
  234. package/dist/rpc/procedures/entry/meta.d.ts +37 -3
  235. package/dist/rpc/procedures/entry/meta.d.ts.map +1 -1
  236. package/dist/rpc/procedures/entry/meta.js +63 -7
  237. package/dist/rpc/procedures/entry/meta.js.map +1 -1
  238. package/dist/rpc/procedures/entry/publish.d.ts +7 -0
  239. package/dist/rpc/procedures/entry/publish.d.ts.map +1 -1
  240. package/dist/rpc/procedures/entry/publish.js +6 -4
  241. package/dist/rpc/procedures/entry/publish.js.map +1 -1
  242. package/dist/rpc/procedures/entry/refresh-block-loader.d.ts +7 -0
  243. package/dist/rpc/procedures/entry/refresh-block-loader.d.ts.map +1 -1
  244. package/dist/rpc/procedures/entry/restore.d.ts +7 -0
  245. package/dist/rpc/procedures/entry/restore.d.ts.map +1 -1
  246. package/dist/rpc/procedures/entry/revisions.d.ts +56 -0
  247. package/dist/rpc/procedures/entry/revisions.d.ts.map +1 -1
  248. package/dist/rpc/procedures/entry/schemas.d.ts +2 -2
  249. package/dist/rpc/procedures/entry/schemas.d.ts.map +1 -1
  250. package/dist/rpc/procedures/entry/schemas.js +9 -2
  251. package/dist/rpc/procedures/entry/schemas.js.map +1 -1
  252. package/dist/rpc/procedures/entry/trash.d.ts +7 -0
  253. package/dist/rpc/procedures/entry/trash.d.ts.map +1 -1
  254. package/dist/rpc/procedures/entry/update.d.ts +8 -1
  255. package/dist/rpc/procedures/entry/update.d.ts.map +1 -1
  256. package/dist/rpc/procedures/entry/update.js +77 -18
  257. package/dist/rpc/procedures/entry/update.js.map +1 -1
  258. package/dist/rpc/procedures/lookup/index.d.ts +14 -0
  259. package/dist/rpc/procedures/lookup/index.d.ts.map +1 -1
  260. package/dist/rpc/procedures/lookup/list.d.ts +7 -0
  261. package/dist/rpc/procedures/lookup/list.d.ts.map +1 -1
  262. package/dist/rpc/procedures/lookup/resolve.d.ts +7 -0
  263. package/dist/rpc/procedures/lookup/resolve.d.ts.map +1 -1
  264. package/dist/rpc/procedures/lookup/resolve.js +1 -1
  265. package/dist/rpc/procedures/lookup/resolve.js.map +1 -1
  266. package/dist/rpc/procedures/search/index.d.ts +7 -0
  267. package/dist/rpc/procedures/search/index.d.ts.map +1 -1
  268. package/dist/rpc/procedures/settings/get.d.ts +7 -0
  269. package/dist/rpc/procedures/settings/get.d.ts.map +1 -1
  270. package/dist/rpc/procedures/settings/index.d.ts +14 -0
  271. package/dist/rpc/procedures/settings/index.d.ts.map +1 -1
  272. package/dist/rpc/procedures/settings/upsert.d.ts +7 -0
  273. package/dist/rpc/procedures/settings/upsert.d.ts.map +1 -1
  274. package/dist/rpc/procedures/settings/upsert.js +9 -0
  275. package/dist/rpc/procedures/settings/upsert.js.map +1 -1
  276. package/dist/rpc/procedures/term/create.d.ts +7 -0
  277. package/dist/rpc/procedures/term/create.d.ts.map +1 -1
  278. package/dist/rpc/procedures/term/create.js +3 -3
  279. package/dist/rpc/procedures/term/create.js.map +1 -1
  280. package/dist/rpc/procedures/term/delete.d.ts +7 -0
  281. package/dist/rpc/procedures/term/delete.d.ts.map +1 -1
  282. package/dist/rpc/procedures/term/get.d.ts +7 -0
  283. package/dist/rpc/procedures/term/get.d.ts.map +1 -1
  284. package/dist/rpc/procedures/term/index.d.ts +35 -0
  285. package/dist/rpc/procedures/term/index.d.ts.map +1 -1
  286. package/dist/rpc/procedures/term/list.d.ts +7 -0
  287. package/dist/rpc/procedures/term/list.d.ts.map +1 -1
  288. package/dist/rpc/procedures/term/lookup.d.ts +7 -2
  289. package/dist/rpc/procedures/term/lookup.d.ts.map +1 -1
  290. package/dist/rpc/procedures/term/lookup.js +26 -0
  291. package/dist/rpc/procedures/term/lookup.js.map +1 -1
  292. package/dist/rpc/procedures/term/meta.d.ts +3 -2
  293. package/dist/rpc/procedures/term/meta.d.ts.map +1 -1
  294. package/dist/rpc/procedures/term/meta.js +7 -5
  295. package/dist/rpc/procedures/term/meta.js.map +1 -1
  296. package/dist/rpc/procedures/term/update.d.ts +7 -0
  297. package/dist/rpc/procedures/term/update.d.ts.map +1 -1
  298. package/dist/rpc/procedures/term/update.js +4 -4
  299. package/dist/rpc/procedures/term/update.js.map +1 -1
  300. package/dist/rpc/procedures/user/cancel-email-change.d.ts +7 -0
  301. package/dist/rpc/procedures/user/cancel-email-change.d.ts.map +1 -1
  302. package/dist/rpc/procedures/user/delete.d.ts +7 -0
  303. package/dist/rpc/procedures/user/delete.d.ts.map +1 -1
  304. package/dist/rpc/procedures/user/disable.d.ts +7 -0
  305. package/dist/rpc/procedures/user/disable.d.ts.map +1 -1
  306. package/dist/rpc/procedures/user/enable.d.ts +7 -0
  307. package/dist/rpc/procedures/user/enable.d.ts.map +1 -1
  308. package/dist/rpc/procedures/user/get.d.ts +7 -0
  309. package/dist/rpc/procedures/user/get.d.ts.map +1 -1
  310. package/dist/rpc/procedures/user/get.js +2 -2
  311. package/dist/rpc/procedures/user/get.js.map +1 -1
  312. package/dist/rpc/procedures/user/index.d.ts +77 -0
  313. package/dist/rpc/procedures/user/index.d.ts.map +1 -1
  314. package/dist/rpc/procedures/user/invite.d.ts +7 -0
  315. package/dist/rpc/procedures/user/invite.d.ts.map +1 -1
  316. package/dist/rpc/procedures/user/list.d.ts +7 -0
  317. package/dist/rpc/procedures/user/list.d.ts.map +1 -1
  318. package/dist/rpc/procedures/user/lookup.d.ts +6 -2
  319. package/dist/rpc/procedures/user/lookup.d.ts.map +1 -1
  320. package/dist/rpc/procedures/user/lookup.js +29 -0
  321. package/dist/rpc/procedures/user/lookup.js.map +1 -1
  322. package/dist/rpc/procedures/user/meta.d.ts +3 -2
  323. package/dist/rpc/procedures/user/meta.d.ts.map +1 -1
  324. package/dist/rpc/procedures/user/meta.js +7 -5
  325. package/dist/rpc/procedures/user/meta.js.map +1 -1
  326. package/dist/rpc/procedures/user/pending-email-change.d.ts +7 -0
  327. package/dist/rpc/procedures/user/pending-email-change.d.ts.map +1 -1
  328. package/dist/rpc/procedures/user/request-email-change.d.ts +7 -0
  329. package/dist/rpc/procedures/user/request-email-change.d.ts.map +1 -1
  330. package/dist/rpc/procedures/user/set-locale.d.ts +7 -0
  331. package/dist/rpc/procedures/user/set-locale.d.ts.map +1 -1
  332. package/dist/rpc/procedures/user/update.d.ts +7 -0
  333. package/dist/rpc/procedures/user/update.d.ts.map +1 -1
  334. package/dist/rpc/procedures/user/update.js +4 -4
  335. package/dist/rpc/procedures/user/update.js.map +1 -1
  336. package/dist/rpc/router.d.ts +457 -2
  337. package/dist/rpc/router.d.ts.map +1 -1
  338. package/dist/rpc/validation.d.ts +1 -0
  339. package/dist/rpc/validation.d.ts.map +1 -1
  340. package/dist/rpc/validation.js +1 -0
  341. package/dist/rpc/validation.js.map +1 -1
  342. package/dist/runtime/dispatcher.d.ts.map +1 -1
  343. package/dist/runtime/dispatcher.js +20 -10
  344. package/dist/runtime/dispatcher.js.map +1 -1
  345. package/dist/seo/feed.d.ts.map +1 -1
  346. package/dist/seo/feed.js +7 -1
  347. package/dist/seo/feed.js.map +1 -1
  348. package/dist/settings-core.js +1 -1
  349. package/dist/settings-core.js.map +1 -1
  350. package/dist/template-registry.d.ts +0 -16
  351. package/dist/template-registry.d.ts.map +1 -1
  352. package/dist/terms/read-service.js +2 -2
  353. package/dist/terms/read-service.js.map +1 -1
  354. package/dist/test/traced-context.d.ts +1 -1
  355. package/dist/test/traced-context.d.ts.map +1 -1
  356. package/dist/test/traced-context.js +2 -2
  357. package/dist/test/traced-context.js.map +1 -1
  358. package/package.json +2 -2
  359. package/dist/plugin/fields/checkbox.d.ts +0 -19
  360. package/dist/plugin/fields/checkbox.d.ts.map +0 -1
  361. package/dist/plugin/fields/checkbox.js +0 -20
  362. package/dist/plugin/fields/checkbox.js.map +0 -1
  363. package/dist/plugin/fields/date.d.ts +0 -24
  364. package/dist/plugin/fields/date.d.ts.map +0 -1
  365. package/dist/plugin/fields/date.js +0 -23
  366. package/dist/plugin/fields/date.js.map +0 -1
  367. package/dist/plugin/fields/datetime.d.ts +0 -26
  368. package/dist/plugin/fields/datetime.d.ts.map +0 -1
  369. package/dist/plugin/fields/datetime.js +0 -25
  370. package/dist/plugin/fields/datetime.js.map +0 -1
  371. package/dist/plugin/fields/email.d.ts +0 -17
  372. package/dist/plugin/fields/email.d.ts.map +0 -1
  373. package/dist/plugin/fields/email.js +0 -18
  374. package/dist/plugin/fields/email.js.map +0 -1
  375. package/dist/plugin/fields/entry-list.d.ts +0 -28
  376. package/dist/plugin/fields/entry-list.d.ts.map +0 -1
  377. package/dist/plugin/fields/entry-list.js +0 -31
  378. package/dist/plugin/fields/entry-list.js.map +0 -1
  379. package/dist/plugin/fields/multiselect.d.ts +0 -21
  380. package/dist/plugin/fields/multiselect.d.ts.map +0 -1
  381. package/dist/plugin/fields/multiselect.js +0 -43
  382. package/dist/plugin/fields/multiselect.js.map +0 -1
  383. package/dist/plugin/fields/password.d.ts +0 -24
  384. package/dist/plugin/fields/password.d.ts.map +0 -1
  385. package/dist/plugin/fields/password.js +0 -25
  386. package/dist/plugin/fields/password.js.map +0 -1
  387. package/dist/plugin/fields/radio.d.ts +0 -16
  388. package/dist/plugin/fields/radio.d.ts.map +0 -1
  389. package/dist/plugin/fields/radio.js +0 -17
  390. package/dist/plugin/fields/radio.js.map +0 -1
  391. package/dist/plugin/fields/repeater-validate.d.ts +0 -34
  392. package/dist/plugin/fields/repeater-validate.d.ts.map +0 -1
  393. package/dist/plugin/fields/repeater-validate.js +0 -104
  394. package/dist/plugin/fields/repeater-validate.js.map +0 -1
  395. package/dist/plugin/fields/term-list.d.ts +0 -27
  396. package/dist/plugin/fields/term-list.d.ts.map +0 -1
  397. package/dist/plugin/fields/term-list.js +0 -30
  398. package/dist/plugin/fields/term-list.js.map +0 -1
  399. package/dist/plugin/fields/text.d.ts +0 -37
  400. package/dist/plugin/fields/text.d.ts.map +0 -1
  401. package/dist/plugin/fields/text.js +0 -31
  402. package/dist/plugin/fields/text.js.map +0 -1
  403. package/dist/plugin/fields/textarea.d.ts +0 -20
  404. package/dist/plugin/fields/textarea.d.ts.map +0 -1
  405. package/dist/plugin/fields/textarea.js +0 -21
  406. package/dist/plugin/fields/textarea.js.map +0 -1
  407. package/dist/plugin/fields/time.d.ts +0 -24
  408. package/dist/plugin/fields/time.d.ts.map +0 -1
  409. package/dist/plugin/fields/time.js +0 -23
  410. package/dist/plugin/fields/time.js.map +0 -1
  411. package/dist/plugin/fields/url.d.ts +0 -17
  412. package/dist/plugin/fields/url.d.ts.map +0 -1
  413. package/dist/plugin/fields/url.js +0 -18
  414. package/dist/plugin/fields/url.js.map +0 -1
  415. package/dist/plugin/fields/user-list.d.ts +0 -29
  416. package/dist/plugin/fields/user-list.d.ts.map +0 -1
  417. package/dist/plugin/fields/user-list.js +0 -31
  418. package/dist/plugin/fields/user-list.js.map +0 -1
@@ -1,28 +1,88 @@
1
1
  import type { Label } from "../../i18n/label.js";
2
- import type { ColorMetaBoxField, MetaBoxFieldSpan } from "../manifest.js";
3
- export interface ColorFieldOptions {
4
- readonly key: string;
5
- readonly label: Label;
6
- readonly required?: boolean;
2
+ import type { ColorMetaBoxField, FieldBuilder, MetaBoxFieldSpan, MetaBoxFieldValidate } from "../manifest.js";
3
+ import type { MetaFieldCondition, MetaFieldConditionRule } from "./condition.js";
4
+ interface ColorFieldState {
5
+ readonly visibleWhen?: MetaFieldCondition;
6
+ readonly label?: Label;
7
7
  readonly description?: Label;
8
- /** Hex string `#xxxxxx` (or `#xxx` shorthand). Must match `HEX_COLOR`. */
9
8
  readonly default?: string;
9
+ readonly required?: true;
10
10
  readonly span?: MetaBoxFieldSpan;
11
11
  readonly capability?: string;
12
- /**
13
- * Optional override. The builder ships a default sanitizer that
14
- * rejects non-hex values; passing a custom one replaces it
15
- * entirely, so authors taking over validation should re-check the
16
- * hex shape themselves.
17
- */
12
+ readonly showInApi?: true;
18
13
  readonly sanitize?: (value: unknown) => unknown;
14
+ readonly validate?: MetaBoxFieldValidate;
19
15
  }
16
+ export declare const HEX_COLOR: RegExp;
20
17
  /**
21
- * Build a typed `color` meta-box field. Storage is the hex string
22
- * the native `<input type="color">` produces (`#rrggbb`). The
23
- * builder injects a default sanitizer that rejects any value that
24
- * doesn't match `#xxx` / `#xxxxxx` on write pass `sanitize` to
25
- * override.
18
+ * Fluent chain for the `color` field. Storage is the hex string the
19
+ * native `<input type="color">` produces (`#rrggbb`). The constraint
20
+ * walker enforces the hex shape (and lowercases) server-side a
21
+ * custom `.sanitize()` transforms but can never bypass that gate.
26
22
  */
27
- export declare function color(options: ColorFieldOptions): ColorMetaBoxField;
23
+ export declare class ColorFieldBuilder<K extends string = string, V extends string | undefined = string | undefined, S extends string | undefined = string | undefined> implements FieldBuilder<ColorMetaBoxField> {
24
+ #private;
25
+ /** Phantom literal key of the field — type-level only, never assigned. */
26
+ readonly _key: K;
27
+ /** Phantom read type of the field — type-level only, never assigned. */
28
+ readonly _value: V;
29
+ /** Phantom stored shape of the field — type-level only, never assigned. */
30
+ readonly _stored: S;
31
+ constructor(key: string, state?: ColorFieldState);
32
+ /** Override the derived (humanized-key) label. */
33
+ label(label: Label): ColorFieldBuilder<K, V, S>;
34
+ /** Help text rendered under the label. */
35
+ description(description: Label): ColorFieldBuilder<K, V, S>;
36
+ /**
37
+ * Default for absent keys — a hex string `#xxxxxx` (or `#xxx`
38
+ * shorthand), applied at read decode (and seeded into the admin
39
+ * form). Narrows the read type to `string`; the stored shape stays
40
+ * optional.
41
+ */
42
+ default(value: string): ColorFieldBuilder<K, string, S>;
43
+ /** Mark the field required — narrows the read and stored types to `string`. */
44
+ required(): ColorFieldBuilder<K, string, string>;
45
+ /**
46
+ * Column span within the box's 12-column grid — a universal layout
47
+ * hint; surfaces that can't honor it (the entry editor rail) ignore it.
48
+ */
49
+ span(span: MetaBoxFieldSpan): ColorFieldBuilder<K, V, S>;
50
+ /** Capability gate for this field — see `MetaBoxFieldBase.capability`. */
51
+ capability(capability: string): ColorFieldBuilder<K, V, S>;
52
+ /** Opt this field's value into public REST responses (default-deny). */
53
+ showInApi(): ColorFieldBuilder<K, V, S>;
54
+ /** Rule factory: this field's value equals `value` — pass the rule
55
+ * to a dependent field's `.visibleWhen()`. */
56
+ is(value: string): MetaFieldConditionRule;
57
+ /** Rule factory: this field's value differs from `value`. */
58
+ isNot(value: string): MetaFieldConditionRule;
59
+ /** Rule factory: this field has no value (unset or cleared). */
60
+ isEmpty(): MetaFieldConditionRule;
61
+ /** Rule factory: this field has a value. */
62
+ isNotEmpty(): MetaFieldConditionRule;
63
+ /**
64
+ * Show this field only when every rule passes (one AND group) —
65
+ * rules come from sibling fields' condition factories. Replaces any
66
+ * previously declared condition; `.orVisibleWhen()` adds
67
+ * alternatives.
68
+ */
69
+ visibleWhen(...rules: MetaFieldConditionRule[]): ColorFieldBuilder<K, V, S>;
70
+ /** Add an OR alternative — one more AND group of rules. */
71
+ orVisibleWhen(...rules: MetaFieldConditionRule[]): ColorFieldBuilder<K, V, S>;
72
+ /** Normalising transform, applied after coercion and before persistence. */
73
+ sanitize(sanitize: (value: NonNullable<V>) => NonNullable<V>): ColorFieldBuilder<K, V, S>;
74
+ /**
75
+ * Custom validation — `true` for valid, or an i18n-able failure
76
+ * message (sync or async). Runs after `.sanitize()` and the
77
+ * declarative constraints.
78
+ */
79
+ validate(validate: (value: NonNullable<V>) => true | Label | Promise<true | Label>): ColorFieldBuilder<K, V, S>;
80
+ /** Compile the chain into the wire/manifest field definition. */
81
+ build(): ColorMetaBoxField;
82
+ }
83
+ /** Hex color picker storing the `#rrggbb` string the native input
84
+ * produces. The hex format is enforced (and the value lowercased)
85
+ * server-side by the constraint walker. */
86
+ export declare function color<K extends string>(key: K): ColorFieldBuilder<K>;
87
+ export {};
28
88
  //# sourceMappingURL=color.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/color.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE1E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;IAC7B,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CACjD;AAID;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,iBAAiB,GAAG,iBAAiB,CAanE"}
1
+ {"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/color.ts"],"names":[],"mappings":"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"}
@@ -1,30 +1,121 @@
1
- const HEX_COLOR = /^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i;
1
+ var _a;
2
+ import { humanizeFieldKey } from "./builder.js";
3
+ export const HEX_COLOR = /^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i;
2
4
  /**
3
- * Build a typed `color` meta-box field. Storage is the hex string
4
- * the native `<input type="color">` produces (`#rrggbb`). The
5
- * builder injects a default sanitizer that rejects any value that
6
- * doesn't match `#xxx` / `#xxxxxx` on write pass `sanitize` to
7
- * override.
5
+ * Fluent chain for the `color` field. Storage is the hex string the
6
+ * native `<input type="color">` produces (`#rrggbb`). The constraint
7
+ * walker enforces the hex shape (and lowercases) server-side a
8
+ * custom `.sanitize()` transforms but can never bypass that gate.
8
9
  */
9
- export function color(options) {
10
- return {
11
- key: options.key,
12
- label: options.label,
13
- type: "string",
14
- inputType: "color",
15
- required: options.required,
16
- description: options.description,
17
- default: options.default,
18
- span: options.span,
19
- capability: options.capability,
20
- sanitize: options.sanitize ?? defaultColorSanitize,
21
- };
22
- }
23
- function defaultColorSanitize(value) {
24
- if (typeof value !== "string" || !HEX_COLOR.test(value)) {
25
- // eslint-disable-next-line no-restricted-syntax -- sanitizer flow-control sentinel; migrated in the field-sanitizer-error slice
26
- throw new Error("invalid_value");
10
+ export class ColorFieldBuilder {
11
+ #key;
12
+ #state;
13
+ constructor(key, state = {}) {
14
+ this.#key = key;
15
+ this.#state = state;
16
+ }
17
+ #fork(patch) {
18
+ return new _a(this.#key, {
19
+ ...this.#state,
20
+ ...patch,
21
+ });
22
+ }
23
+ /** Override the derived (humanized-key) label. */
24
+ label(label) {
25
+ return this.#fork({ label });
26
+ }
27
+ /** Help text rendered under the label. */
28
+ description(description) {
29
+ return this.#fork({ description });
30
+ }
31
+ /**
32
+ * Default for absent keys — a hex string `#xxxxxx` (or `#xxx`
33
+ * shorthand), applied at read decode (and seeded into the admin
34
+ * form). Narrows the read type to `string`; the stored shape stays
35
+ * optional.
36
+ */
37
+ default(value) {
38
+ return this.#fork({ default: value });
39
+ }
40
+ /** Mark the field required — narrows the read and stored types to `string`. */
41
+ required() {
42
+ return this.#fork({ required: true });
43
+ }
44
+ /**
45
+ * Column span within the box's 12-column grid — a universal layout
46
+ * hint; surfaces that can't honor it (the entry editor rail) ignore it.
47
+ */
48
+ span(span) {
49
+ return this.#fork({ span });
50
+ }
51
+ /** Capability gate for this field — see `MetaBoxFieldBase.capability`. */
52
+ capability(capability) {
53
+ return this.#fork({ capability });
54
+ }
55
+ /** Opt this field's value into public REST responses (default-deny). */
56
+ showInApi() {
57
+ return this.#fork({ showInApi: true });
58
+ }
59
+ /** Rule factory: this field's value equals `value` — pass the rule
60
+ * to a dependent field's `.visibleWhen()`. */
61
+ is(value) {
62
+ return { key: this.#key, op: "eq", value };
27
63
  }
28
- return value.toLowerCase();
64
+ /** Rule factory: this field's value differs from `value`. */
65
+ isNot(value) {
66
+ return { key: this.#key, op: "neq", value };
67
+ }
68
+ /** Rule factory: this field has no value (unset or cleared). */
69
+ isEmpty() {
70
+ return { key: this.#key, op: "empty" };
71
+ }
72
+ /** Rule factory: this field has a value. */
73
+ isNotEmpty() {
74
+ return { key: this.#key, op: "not_empty" };
75
+ }
76
+ /**
77
+ * Show this field only when every rule passes (one AND group) —
78
+ * rules come from sibling fields' condition factories. Replaces any
79
+ * previously declared condition; `.orVisibleWhen()` adds
80
+ * alternatives.
81
+ */
82
+ visibleWhen(...rules) {
83
+ return this.#fork({ visibleWhen: [rules] });
84
+ }
85
+ /** Add an OR alternative — one more AND group of rules. */
86
+ orVisibleWhen(...rules) {
87
+ return this.#fork({
88
+ visibleWhen: [...(this.#state.visibleWhen ?? []), rules],
89
+ });
90
+ }
91
+ /** Normalising transform, applied after coercion and before persistence. */
92
+ sanitize(sanitize) {
93
+ return this.#fork({ sanitize: sanitize });
94
+ }
95
+ /**
96
+ * Custom validation — `true` for valid, or an i18n-able failure
97
+ * message (sync or async). Runs after `.sanitize()` and the
98
+ * declarative constraints.
99
+ */
100
+ validate(validate) {
101
+ return this.#fork({ validate: validate });
102
+ }
103
+ /** Compile the chain into the wire/manifest field definition. */
104
+ build() {
105
+ return {
106
+ ...this.#state,
107
+ key: this.#key,
108
+ label: this.#state.label ?? humanizeFieldKey(this.#key),
109
+ type: "string",
110
+ inputType: "color",
111
+ };
112
+ }
113
+ }
114
+ _a = ColorFieldBuilder;
115
+ /** Hex color picker storing the `#rrggbb` string the native input
116
+ * produces. The hex format is enforced (and the value lowercased)
117
+ * server-side by the constraint walker. */
118
+ export function color(key) {
119
+ return new ColorFieldBuilder(key);
29
120
  }
30
121
  //# sourceMappingURL=color.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"color.js","sourceRoot":"","sources":["../../../src/plugin/fields/color.ts"],"names":[],"mappings":"AAqBA,MAAM,SAAS,GAAG,iCAAiC,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,UAAU,KAAK,CAAC,OAA0B;IAC9C,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,OAAO;QAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,oBAAoB;KACnD,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,gIAAgI;QAChI,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"color.js","sourceRoot":"","sources":["../../../src/plugin/fields/color.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /** Comparison applied between a driver field's value and the rule. */
2
+ export type MetaFieldConditionOperator = "eq" | "neq" | "empty" | "not_empty" | "gt" | "lt" | "contains" | "not_contains" | "count_gt" | "count_lt";
3
+ /**
4
+ * One comparison against a driver field, addressed by its meta key.
5
+ * `value` is the JSON-serializable comparand; operators that don't
6
+ * compare against a value omit it.
7
+ */
8
+ export interface MetaFieldConditionRule {
9
+ readonly key: string;
10
+ readonly op: MetaFieldConditionOperator;
11
+ readonly value?: unknown;
12
+ }
13
+ /**
14
+ * OR-of-AND groups: the field is visible when any group passes, and a
15
+ * group passes when all of its rules do. `.visibleWhen(...rules)`
16
+ * authors the first group; each `.orVisibleWhen(...rules)` appends one.
17
+ */
18
+ export type MetaFieldCondition = readonly (readonly MetaFieldConditionRule[])[];
19
+ /**
20
+ * Evaluate a field's visibility against the sibling values of its box
21
+ * (form values in the admin, the incoming meta bag on the server). A
22
+ * field without a condition is always visible.
23
+ */
24
+ export declare function isFieldVisible(field: {
25
+ readonly visibleWhen?: MetaFieldCondition;
26
+ }, values: Readonly<Record<string, unknown>>): boolean;
27
+ /**
28
+ * Write-side companion to `isFieldVisible`: whether a field's key
29
+ * should be dropped from an incoming write. Condition-hidden fields
30
+ * skip validation entirely, because an editor can never fix a value
31
+ * behind an input they cannot see. Visibility is judged from the
32
+ * incoming bag (the admin submits the full form state), and only when
33
+ * the bag carries every referenced driver: a partial patch that omits
34
+ * a driver is validated as if visible rather than silently dropped on
35
+ * unknown driver state.
36
+ */
37
+ export declare function isConditionHidden(field: {
38
+ readonly visibleWhen?: MetaFieldCondition;
39
+ }, input: Readonly<Record<string, unknown>>): boolean;
40
+ //# sourceMappingURL=condition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/condition.ts"],"names":[],"mappings":"AAQA,sEAAsE;AACtE,MAAM,MAAM,0BAA0B,GAClC,IAAI,GACJ,KAAK,GACL,OAAO,GACP,WAAW,GACX,IAAI,GACJ,IAAI,GACJ,UAAU,GACV,cAAc,GACd,UAAU,GACV,UAAU,CAAC;AAEf;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,EAAE,0BAA0B,CAAC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,CAAC,SAAS,sBAAsB,EAAE,CAAC,EAAE,CAAC;AAEhF;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE;IAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAA;CAAE,EACpD,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACxC,OAAO,CAMT;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE;IAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAA;CAAE,EACpD,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACvC,OAAO,CAMT"}
@@ -0,0 +1,115 @@
1
+ // Conditional-visibility rule model for meta-box fields. Rules are
2
+ // plain wire objects addressing driver fields by key — authored via
3
+ // the typed condition factories on each fluent builder, serialized
4
+ // into the manifest untouched, and evaluated by the same
5
+ // `isFieldVisible` on both sides: the admin form (live show/hide as
6
+ // driver values change) and the server write pipeline (hidden fields
7
+ // skip validation).
8
+ /**
9
+ * Evaluate a field's visibility against the sibling values of its box
10
+ * (form values in the admin, the incoming meta bag on the server). A
11
+ * field without a condition is always visible.
12
+ */
13
+ export function isFieldVisible(field, values) {
14
+ const groups = field.visibleWhen;
15
+ if (groups === undefined || groups.length === 0)
16
+ return true;
17
+ return groups.some((group) => group.every((rule) => evaluateRule(rule, values[rule.key])));
18
+ }
19
+ /**
20
+ * Write-side companion to `isFieldVisible`: whether a field's key
21
+ * should be dropped from an incoming write. Condition-hidden fields
22
+ * skip validation entirely, because an editor can never fix a value
23
+ * behind an input they cannot see. Visibility is judged from the
24
+ * incoming bag (the admin submits the full form state), and only when
25
+ * the bag carries every referenced driver: a partial patch that omits
26
+ * a driver is validated as if visible rather than silently dropped on
27
+ * unknown driver state.
28
+ */
29
+ export function isConditionHidden(field, input) {
30
+ const groups = field.visibleWhen ?? [];
31
+ const driversPresent = groups.every((group) => group.every((rule) => rule.key in input));
32
+ return driversPresent && !isFieldVisible(field, input);
33
+ }
34
+ function evaluateRule(rule, value) {
35
+ switch (rule.op) {
36
+ case "eq":
37
+ return structurallyEqual(value, rule.value);
38
+ case "neq":
39
+ return !structurallyEqual(value, rule.value);
40
+ case "empty":
41
+ return isEmptyValue(value);
42
+ case "not_empty":
43
+ return !isEmptyValue(value);
44
+ case "gt":
45
+ return compareNumeric(value, rule.value, (a, b) => a > b);
46
+ case "lt":
47
+ return compareNumeric(value, rule.value, (a, b) => a < b);
48
+ case "contains":
49
+ return containsItem(value, rule.value);
50
+ case "not_contains":
51
+ return !containsItem(value, rule.value);
52
+ case "count_gt":
53
+ return compareNumeric(countOf(value), rule.value, (a, b) => a > b);
54
+ case "count_lt":
55
+ return compareNumeric(countOf(value), rule.value, (a, b) => a < b);
56
+ }
57
+ }
58
+ function containsItem(value, comparand) {
59
+ return (Array.isArray(value) &&
60
+ value.some((item) => structurallyEqual(item, comparand)));
61
+ }
62
+ // Multi-value drivers count their selections; anything else (including
63
+ // an absent value) counts as zero.
64
+ function countOf(value) {
65
+ return Array.isArray(value) ? value.length : 0;
66
+ }
67
+ // JSON-structural equality — rule comparands are JSON-serializable by
68
+ // construction (typed factories produce them from field value types),
69
+ // so array order and own enumerable keys are the identity. Objects
70
+ // compare key-order-insensitively.
71
+ function structurallyEqual(a, b) {
72
+ if (a === b)
73
+ return true;
74
+ if (Array.isArray(a) && Array.isArray(b)) {
75
+ return (a.length === b.length &&
76
+ a.every((item, i) => structurallyEqual(item, b[i])));
77
+ }
78
+ if (typeof a === "object" &&
79
+ typeof b === "object" &&
80
+ a !== null &&
81
+ b !== null &&
82
+ !Array.isArray(a) &&
83
+ !Array.isArray(b)) {
84
+ const aEntries = Object.entries(a);
85
+ if (aEntries.length !== Object.keys(b).length)
86
+ return false;
87
+ return aEntries.every(([key, item]) => key in b &&
88
+ structurallyEqual(item, b[key]));
89
+ }
90
+ return false;
91
+ }
92
+ // "No value yet" as an editor perceives it: unset, cleared input, or
93
+ // an empty multi-value selection. `false` / `0` are values.
94
+ function isEmptyValue(value) {
95
+ if (value === undefined || value === null || value === "")
96
+ return true;
97
+ return Array.isArray(value) && value.length === 0;
98
+ }
99
+ function compareNumeric(value, bound, cmp) {
100
+ const parsed = numericValueOf(value);
101
+ return (parsed !== undefined && typeof bound === "number" && cmp(parsed, bound));
102
+ }
103
+ // Numeric driver values may arrive as strings (an HTML number input's
104
+ // raw form value) — accept them, but never coerce blank to 0.
105
+ function numericValueOf(value) {
106
+ if (typeof value === "number" && Number.isFinite(value))
107
+ return value;
108
+ if (typeof value === "string" && value.trim() !== "") {
109
+ const parsed = Number(value);
110
+ if (Number.isFinite(parsed))
111
+ return parsed;
112
+ }
113
+ return undefined;
114
+ }
115
+ //# sourceMappingURL=condition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"condition.js","sourceRoot":"","sources":["../../../src/plugin/fields/condition.ts"],"names":[],"mappings":"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"}