@shapio/cms 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (323) hide show
  1. package/dist/admin/apple-touch-icon.png +0 -0
  2. package/dist/admin/assets/AssetTile-C-Mu0BRF.js +2 -0
  3. package/dist/admin/assets/AssetTile-C-Mu0BRF.js.map +1 -0
  4. package/dist/admin/assets/{AssistError-BITJ_tpg.js → AssistError-B-bnaHhJ.js} +2 -2
  5. package/dist/admin/assets/{AssistError-BITJ_tpg.js.map → AssistError-B-bnaHhJ.js.map} +1 -1
  6. package/dist/admin/assets/{BlockMenuItems-CcluK965.js → BlockMenuItems-Dn9WULjL.js} +3 -3
  7. package/dist/admin/assets/{BlockMenuItems-CcluK965.js.map → BlockMenuItems-Dn9WULjL.js.map} +1 -1
  8. package/dist/admin/assets/Body-C0SwduLi.js +2 -0
  9. package/dist/admin/assets/{Body-BXa9DhtH.js.map → Body-C0SwduLi.js.map} +1 -1
  10. package/dist/admin/assets/Builder-C11yUgu9.js +2 -0
  11. package/dist/admin/assets/Builder-C11yUgu9.js.map +1 -0
  12. package/dist/admin/assets/{ConfirmDialog-B9nWhIIz.js → ConfirmDialog-BfpN2MQx.js} +2 -2
  13. package/dist/admin/assets/{ConfirmDialog-B9nWhIIz.js.map → ConfirmDialog-BfpN2MQx.js.map} +1 -1
  14. package/dist/admin/assets/{CopyButton-BoWb-xi1.js → CopyButton-Dxbzp7hC.js} +2 -2
  15. package/dist/admin/assets/{CopyButton-BoWb-xi1.js.map → CopyButton-Dxbzp7hC.js.map} +1 -1
  16. package/dist/admin/assets/{CursorPager-BnxmTk47.js → CursorPager-DkZs6rPg.js} +2 -2
  17. package/dist/admin/assets/{CursorPager-BnxmTk47.js.map → CursorPager-DkZs6rPg.js.map} +1 -1
  18. package/dist/admin/assets/{ExternalLink-Eeb9mONJ.js → ExternalLink-KdO72pTj.js} +2 -2
  19. package/dist/admin/assets/{ExternalLink-Eeb9mONJ.js.map → ExternalLink-KdO72pTj.js.map} +1 -1
  20. package/dist/admin/assets/FocalPoint-r1MG_y-r.js +2 -0
  21. package/dist/admin/assets/FocalPoint-r1MG_y-r.js.map +1 -0
  22. package/dist/admin/assets/Form-D8vp4Kd_.js +2 -0
  23. package/dist/admin/assets/{Form-DZRLD3vH.js.map → Form-D8vp4Kd_.js.map} +1 -1
  24. package/dist/admin/assets/{FormCheckboxGroup-uIC2XQIL.js → FormCheckboxGroup-8ObPh9cH.js} +2 -2
  25. package/dist/admin/assets/{FormCheckboxGroup-uIC2XQIL.js.map → FormCheckboxGroup-8ObPh9cH.js.map} +1 -1
  26. package/dist/admin/assets/{FormRadioGroup-hd95vPOu.js → FormRadioGroup-CAB3qzVS.js} +2 -2
  27. package/dist/admin/assets/{FormRadioGroup-hd95vPOu.js.map → FormRadioGroup-CAB3qzVS.js.map} +1 -1
  28. package/dist/admin/assets/{FormSelectField-D7VHmnx5.js → FormSelectField-C7hE05Wq.js} +2 -2
  29. package/dist/admin/assets/{FormSelectField-D7VHmnx5.js.map → FormSelectField-C7hE05Wq.js.map} +1 -1
  30. package/dist/admin/assets/{FormSwitchField-ft8Jbe6E.js → FormSwitchField-7EEYkGOH.js} +2 -2
  31. package/dist/admin/assets/{FormSwitchField-ft8Jbe6E.js.map → FormSwitchField-7EEYkGOH.js.map} +1 -1
  32. package/dist/admin/assets/{FormTextareaField-DzyOzfZb.js → FormTextareaField-BasuRoXW.js} +2 -2
  33. package/dist/admin/assets/{FormTextareaField-DzyOzfZb.js.map → FormTextareaField-BasuRoXW.js.map} +1 -1
  34. package/dist/admin/assets/{HintedLabel-CvC46uy_.js → HintedLabel-BDV81kIT.js} +2 -2
  35. package/dist/admin/assets/{HintedLabel-CvC46uy_.js.map → HintedLabel-BDV81kIT.js.map} +1 -1
  36. package/dist/admin/assets/{InfoHint-GJLRVumb.js → InfoHint-DWn9kLf1.js} +2 -2
  37. package/dist/admin/assets/{InfoHint-GJLRVumb.js.map → InfoHint-DWn9kLf1.js.map} +1 -1
  38. package/dist/admin/assets/InsertMenuItem-DhJk5BeH.js +2 -0
  39. package/dist/admin/assets/InsertMenuItem-DhJk5BeH.js.map +1 -0
  40. package/dist/admin/assets/{LinkTabs-BZSlA57U.js → LinkTabs-stM3j4aH.js} +2 -2
  41. package/dist/admin/assets/{LinkTabs-BZSlA57U.js.map → LinkTabs-stM3j4aH.js.map} +1 -1
  42. package/dist/admin/assets/{Match-DdxTHHM4.js → Match-Zu4pwfCC.js} +2 -2
  43. package/dist/admin/assets/{Match-DdxTHHM4.js.map → Match-Zu4pwfCC.js.map} +1 -1
  44. package/dist/admin/assets/{Panel-iIKjEURi.js → Panel-ClY9b33D.js} +2 -2
  45. package/dist/admin/assets/{Panel-iIKjEURi.js.map → Panel-ClY9b33D.js.map} +1 -1
  46. package/dist/admin/assets/{QueryView-D6aZQJRN.js → QueryView-Cu-KPtQI.js} +2 -2
  47. package/dist/admin/assets/{QueryView-D6aZQJRN.js.map → QueryView-Cu-KPtQI.js.map} +1 -1
  48. package/dist/admin/assets/{RadioTile-BpB79rIK.js → RadioTile-Ci0LucKI.js} +2 -2
  49. package/dist/admin/assets/RadioTile-Ci0LucKI.js.map +1 -0
  50. package/dist/admin/assets/RichTextField-BcYOFkeW.js +144 -0
  51. package/dist/admin/assets/{RichTextField-BuHCONPu.js.map → RichTextField-BcYOFkeW.js.map} +1 -1
  52. package/dist/admin/assets/{RowTitle--uFCpx8n.js → RowTitle-BdDgA5Lb.js} +2 -2
  53. package/dist/admin/assets/{RowTitle--uFCpx8n.js.map → RowTitle-BdDgA5Lb.js.map} +1 -1
  54. package/dist/admin/assets/{SecretReveal-DFpzeNE0.js → SecretReveal-ai1uMW_b.js} +2 -2
  55. package/dist/admin/assets/{SecretReveal-DFpzeNE0.js.map → SecretReveal-ai1uMW_b.js.map} +1 -1
  56. package/dist/admin/assets/{SharedGlyph-Cqkx30tn.js → SharedGlyph-y6ZsA_gz.js} +2 -2
  57. package/dist/admin/assets/{SharedGlyph-Cqkx30tn.js.map → SharedGlyph-y6ZsA_gz.js.map} +1 -1
  58. package/dist/admin/assets/{StepList-BY5MuJPJ.js → StepList-xmD9CPZl.js} +2 -2
  59. package/dist/admin/assets/{StepList-BY5MuJPJ.js.map → StepList-xmD9CPZl.js.map} +1 -1
  60. package/dist/admin/assets/Structure-DGt-TDk5.js +2 -0
  61. package/dist/admin/assets/{Structure-CqRa2t7z.js.map → Structure-DGt-TDk5.js.map} +1 -1
  62. package/dist/admin/assets/{SubNavLink-B2o4kSZ9.js → SubNavLink-YjjaDN40.js} +2 -2
  63. package/dist/admin/assets/{SubNavLink-B2o4kSZ9.js.map → SubNavLink-YjjaDN40.js.map} +1 -1
  64. package/dist/admin/assets/{SuggestAltButton-4rf2xhEJ.js → SuggestAltButton-D1-v_0wB.js} +2 -2
  65. package/dist/admin/assets/{SuggestAltButton-4rf2xhEJ.js.map → SuggestAltButton-D1-v_0wB.js.map} +1 -1
  66. package/dist/admin/assets/{TextLink-D15oyXlc.js → TextLink-DIqr5zkJ.js} +2 -2
  67. package/dist/admin/assets/{TextLink-D15oyXlc.js.map → TextLink-DIqr5zkJ.js.map} +1 -1
  68. package/dist/admin/assets/Thumbnail-cjA7fSWh.js +2 -0
  69. package/dist/admin/assets/Thumbnail-cjA7fSWh.js.map +1 -0
  70. package/dist/admin/assets/{UnsavedChangesGuard-DgOASh0p.js → UnsavedChangesGuard-B57D0278.js} +2 -2
  71. package/dist/admin/assets/{UnsavedChangesGuard-DgOASh0p.js.map → UnsavedChangesGuard-B57D0278.js.map} +1 -1
  72. package/dist/admin/assets/{UserAvatar-BocvNVL-.js → UserAvatar--pMv2i3c.js} +2 -2
  73. package/dist/admin/assets/{UserAvatar-BocvNVL-.js.map → UserAvatar--pMv2i3c.js.map} +1 -1
  74. package/dist/admin/assets/{auth-pcS9CCXu.js → auth-YVfK3SxF.js} +2 -2
  75. package/dist/admin/assets/{auth-pcS9CCXu.js.map → auth-YVfK3SxF.js.map} +1 -1
  76. package/dist/admin/assets/{badge-DD0mE96i.js → badge-C5oMRtwJ.js} +2 -2
  77. package/dist/admin/assets/{badge-DD0mE96i.js.map → badge-C5oMRtwJ.js.map} +1 -1
  78. package/dist/admin/assets/{boxes-DcK-kaSa.js → boxes-DRvd25_u.js} +2 -2
  79. package/dist/admin/assets/{boxes-DcK-kaSa.js.map → boxes-DRvd25_u.js.map} +1 -1
  80. package/dist/admin/assets/{calendar-clock-DEwACe0M.js → calendar-clock-VENf4s1R.js} +2 -2
  81. package/dist/admin/assets/{calendar-clock-DEwACe0M.js.map → calendar-clock-VENf4s1R.js.map} +1 -1
  82. package/dist/admin/assets/{changeSets-BjUEfYbj.js → changeSets-CObZV8H2.js} +2 -2
  83. package/dist/admin/assets/{changeSets-BjUEfYbj.js.map → changeSets-CObZV8H2.js.map} +1 -1
  84. package/dist/admin/assets/chevron-left-D2DnQyeV.js +2 -0
  85. package/dist/admin/assets/{chevron-left-BsQYDUEC.js.map → chevron-left-D2DnQyeV.js.map} +1 -1
  86. package/dist/admin/assets/{circle-check-Dq1owihe.js → circle-check-jmRQz1Jq.js} +2 -2
  87. package/dist/admin/assets/{circle-check-Dq1owihe.js.map → circle-check-jmRQz1Jq.js.map} +1 -1
  88. package/dist/admin/assets/{clock-DQvkffqQ.js → clock-DrSTMGjp.js} +2 -2
  89. package/dist/admin/assets/{clock-DQvkffqQ.js.map → clock-DrSTMGjp.js.map} +1 -1
  90. package/dist/admin/assets/cn-CL1YHRrS.js +2 -0
  91. package/dist/admin/assets/cn-CL1YHRrS.js.map +1 -0
  92. package/dist/admin/assets/coerce-B4MJTGg1.js +2 -0
  93. package/dist/admin/assets/{coerce-OsqQRj19.js.map → coerce-B4MJTGg1.js.map} +1 -1
  94. package/dist/admin/assets/constants-DT4WPUvz.js +2 -0
  95. package/dist/admin/assets/{constants-SrImR6C3.js.map → constants-DT4WPUvz.js.map} +1 -1
  96. package/dist/admin/assets/content-HvisCB5m.js +3 -0
  97. package/dist/admin/assets/content-HvisCB5m.js.map +1 -0
  98. package/dist/admin/assets/{contentCounts-Ch3uMXVU.js → contentCounts-DzIvdeXR.js} +2 -2
  99. package/dist/admin/assets/{contentCounts-Ch3uMXVU.js.map → contentCounts-DzIvdeXR.js.map} +1 -1
  100. package/dist/admin/assets/{contentTypes-BCOdUK_Z.js → contentTypes-ArLEfM29.js} +2 -2
  101. package/dist/admin/assets/{contentTypes-BCOdUK_Z.js.map → contentTypes-ArLEfM29.js.map} +1 -1
  102. package/dist/admin/assets/context-4Jl20mYc.js +2 -0
  103. package/dist/admin/assets/context-4Jl20mYc.js.map +1 -0
  104. package/dist/admin/assets/{copy-BDc3r0fO.js → copy-t6kAFw-O.js} +2 -2
  105. package/dist/admin/assets/{copy-BDc3r0fO.js.map → copy-t6kAFw-O.js.map} +1 -1
  106. package/dist/admin/assets/{dateTimeLocal-C92tyKwz.js → dateTimeLocal-IDUOKulz.js} +2 -2
  107. package/dist/admin/assets/{dateTimeLocal-C92tyKwz.js.map → dateTimeLocal-IDUOKulz.js.map} +1 -1
  108. package/dist/admin/assets/develop-DvKYqVeK.js +11 -0
  109. package/dist/admin/assets/develop-DvKYqVeK.js.map +1 -0
  110. package/dist/admin/assets/dropdown-menu-DPzDthV7.js +2 -0
  111. package/dist/admin/assets/dropdown-menu-DPzDthV7.js.map +1 -0
  112. package/dist/admin/assets/{ellipsis-NK0pWgqU.js → ellipsis-DEHUaCkn.js} +2 -2
  113. package/dist/admin/assets/{ellipsis-NK0pWgqU.js.map → ellipsis-DEHUaCkn.js.map} +1 -1
  114. package/dist/admin/assets/external-link-B8UFREQ_.js +2 -0
  115. package/dist/admin/assets/external-link-B8UFREQ_.js.map +1 -0
  116. package/dist/admin/assets/{fileRoute-C2tOrKhO.js → fileRoute-sJvv4Ipn.js} +2 -2
  117. package/dist/admin/assets/{fileRoute-C2tOrKhO.js.map → fileRoute-sJvv4Ipn.js.map} +1 -1
  118. package/dist/admin/assets/folder-plus-iDg1hhew.js +2 -0
  119. package/dist/admin/assets/folder-plus-iDg1hhew.js.map +1 -0
  120. package/dist/admin/assets/followPlural-tOh6gDgT.js +2 -0
  121. package/dist/admin/assets/{followPlural-CN6cQfNk.js.map → followPlural-tOh6gDgT.js.map} +1 -1
  122. package/dist/admin/assets/{globe-CuElSilX.js → globe-TooNSp9V.js} +2 -2
  123. package/dist/admin/assets/{globe-CuElSilX.js.map → globe-TooNSp9V.js.map} +1 -1
  124. package/dist/admin/assets/{image-CsH8dZve.js → image-CXZXXH58.js} +2 -2
  125. package/dist/admin/assets/{image-CsH8dZve.js.map → image-CXZXXH58.js.map} +1 -1
  126. package/dist/admin/assets/{image-off-B_uBCsYu.js → image-off-cxva5G-Y.js} +2 -2
  127. package/dist/admin/assets/{image-off-B_uBCsYu.js.map → image-off-cxva5G-Y.js.map} +1 -1
  128. package/dist/admin/assets/{inbox-3iAHL3pC.js → inbox-B8c9Kj_z.js} +2 -2
  129. package/dist/admin/assets/{inbox-3iAHL3pC.js.map → inbox-B8c9Kj_z.js.map} +1 -1
  130. package/dist/admin/assets/{inbox-DsuXNaKE.js → inbox-nfR2K7f6.js} +2 -2
  131. package/dist/admin/assets/{inbox-DsuXNaKE.js.map → inbox-nfR2K7f6.js.map} +1 -1
  132. package/dist/admin/assets/index-Bbb2ER3l.css +2 -0
  133. package/dist/admin/assets/index-C6FrF34G.js +4 -0
  134. package/dist/admin/assets/index-C6FrF34G.js.map +1 -0
  135. package/dist/admin/assets/{key-round-B17HiT3K.js → key-round-CFJ61iCd.js} +2 -2
  136. package/dist/admin/assets/{key-round-B17HiT3K.js.map → key-round-CFJ61iCd.js.map} +1 -1
  137. package/dist/admin/assets/languages-eh7U4anI.js +2 -0
  138. package/dist/admin/assets/languages-eh7U4anI.js.map +1 -0
  139. package/dist/admin/assets/layers-mGfmMsKE.js +2 -0
  140. package/dist/admin/assets/layers-mGfmMsKE.js.map +1 -0
  141. package/dist/admin/assets/link-2-off-DbZzRN_w.js +2 -0
  142. package/dist/admin/assets/link-2-off-DbZzRN_w.js.map +1 -0
  143. package/dist/admin/assets/{link-bhHmG4Tc.js → link-b2pFaN-A.js} +2 -2
  144. package/dist/admin/assets/{link-bhHmG4Tc.js.map → link-b2pFaN-A.js.map} +1 -1
  145. package/dist/admin/assets/{locales-BzPbz8FF.js → locales-oBD0q1pN.js} +2 -2
  146. package/dist/admin/assets/{locales-BzPbz8FF.js.map → locales-oBD0q1pN.js.map} +1 -1
  147. package/dist/admin/assets/{media-Xzot1ueY.js → media-5ks_0Rre.js} +2 -2
  148. package/dist/admin/assets/{media-Xzot1ueY.js.map → media-5ks_0Rre.js.map} +1 -1
  149. package/dist/admin/assets/media-BzivlEh2.js +2 -0
  150. package/dist/admin/assets/{media-WLnWaL7U.js.map → media-BzivlEh2.js.map} +1 -1
  151. package/dist/admin/assets/network-Cj04CpFi.js +2 -0
  152. package/dist/admin/assets/network-Cj04CpFi.js.map +1 -0
  153. package/dist/admin/assets/{pencil-Bdp2z9D_.js → pencil-C7eD5mlZ.js} +2 -2
  154. package/dist/admin/assets/{pencil-Bdp2z9D_.js.map → pencil-C7eD5mlZ.js.map} +1 -1
  155. package/dist/admin/assets/{plus-BN_iSsnp.js → plus-BDZHQBlU.js} +2 -2
  156. package/dist/admin/assets/{plus-BN_iSsnp.js.map → plus-BDZHQBlU.js.map} +1 -1
  157. package/dist/admin/assets/{preload-helper-DAbCfXID.js → preload-helper-CJNJ4S3k.js} +2 -2
  158. package/dist/admin/assets/{preload-helper-DAbCfXID.js.map → preload-helper-CJNJ4S3k.js.map} +1 -1
  159. package/dist/admin/assets/publishing-ChHkrwvr.js +2 -0
  160. package/dist/admin/assets/{publishing-d9yhMwgA.js.map → publishing-ChHkrwvr.js.map} +1 -1
  161. package/dist/admin/assets/{radio-group-DHIxK-IU.js → radio-group-DSK5LPaM.js} +2 -2
  162. package/dist/admin/assets/{radio-group-DHIxK-IU.js.map → radio-group-DSK5LPaM.js.map} +1 -1
  163. package/dist/admin/assets/{rotate-ccw-CBoZle-b.js → rotate-ccw-DCWwb4Ga.js} +2 -2
  164. package/dist/admin/assets/{rotate-ccw-CBoZle-b.js.map → rotate-ccw-DCWwb4Ga.js.map} +1 -1
  165. package/dist/admin/assets/{schedules-Dy89Nm6P.js → schedules-DXrBSypK.js} +2 -2
  166. package/dist/admin/assets/{schedules-Dy89Nm6P.js.map → schedules-DXrBSypK.js.map} +1 -1
  167. package/dist/admin/assets/{schema-B4smPFcR.js → schema-B7L9OJrX.js} +2 -2
  168. package/dist/admin/assets/{schema-B4smPFcR.js.map → schema-B7L9OJrX.js.map} +1 -1
  169. package/dist/admin/assets/{scroll-text-UbyzpWh-.js → scroll-text-BLThe4Ki.js} +2 -2
  170. package/dist/admin/assets/{scroll-text-UbyzpWh-.js.map → scroll-text-BLThe4Ki.js.map} +1 -1
  171. package/dist/admin/assets/{file-text-DxXAmmxL.js → search-CcJQqtRw.js} +2 -2
  172. package/dist/admin/assets/search-CcJQqtRw.js.map +1 -0
  173. package/dist/admin/assets/{searchSchemas-BxRnxenn.js → searchSchemas-BdwAFaVO.js} +2 -2
  174. package/dist/admin/assets/{searchSchemas-BxRnxenn.js.map → searchSchemas-BdwAFaVO.js.map} +1 -1
  175. package/dist/admin/assets/{sections-Bb3Q4bcY.js → sections-TIN_Nl1b.js} +2 -2
  176. package/dist/admin/assets/{sections-Bb3Q4bcY.js.map → sections-TIN_Nl1b.js.map} +1 -1
  177. package/dist/admin/assets/sections-iNOzo7pL.js +2 -0
  178. package/dist/admin/assets/sections-iNOzo7pL.js.map +1 -0
  179. package/dist/admin/assets/{select-tHVWX85X.js → select-DyD7qIkJ.js} +2 -2
  180. package/dist/admin/assets/{select-tHVWX85X.js.map → select-DyD7qIkJ.js.map} +1 -1
  181. package/dist/admin/assets/{send-BqECHYi6.js → send-CbP0Rc9_.js} +2 -2
  182. package/dist/admin/assets/{send-BqECHYi6.js.map → send-CbP0Rc9_.js.map} +1 -1
  183. package/dist/admin/assets/seo-uMm2fGPB.js +2 -0
  184. package/dist/admin/assets/seo-uMm2fGPB.js.map +1 -0
  185. package/dist/admin/assets/settings-CJVORrIV.js +2 -0
  186. package/dist/admin/assets/settings-CJVORrIV.js.map +1 -0
  187. package/dist/admin/assets/skeleton-B5GJgv7y.js +42 -0
  188. package/dist/admin/assets/skeleton-B5GJgv7y.js.map +1 -0
  189. package/dist/admin/assets/snapshots-DkyyrWX3.js +2 -0
  190. package/dist/admin/assets/{snapshots-BQrhsCmC.js.map → snapshots-DkyyrWX3.js.map} +1 -1
  191. package/dist/admin/assets/{sparkles-BW4CbD6W.js → sparkles-D88gf3vX.js} +2 -2
  192. package/dist/admin/assets/{sparkles-BW4CbD6W.js.map → sparkles-D88gf3vX.js.map} +1 -1
  193. package/dist/admin/assets/src-B2qcqjNM.js +4 -0
  194. package/dist/admin/assets/src-B2qcqjNM.js.map +1 -0
  195. package/dist/admin/assets/{stableId-C9Yq5iUw.js → stableId-DlNKh3HM.js} +2 -2
  196. package/dist/admin/assets/{stableId-C9Yq5iUw.js.map → stableId-DlNKh3HM.js.map} +1 -1
  197. package/dist/admin/assets/{store-BphwUzV5.js → store-jUWyOXDG.js} +2 -2
  198. package/dist/admin/assets/{store-BphwUzV5.js.map → store-jUWyOXDG.js.map} +1 -1
  199. package/dist/admin/assets/{switch-BVy02Vc8.js → switch-DbIrjP3h.js} +2 -2
  200. package/dist/admin/assets/{switch-BVy02Vc8.js.map → switch-DbIrjP3h.js.map} +1 -1
  201. package/dist/admin/assets/table-DQ5ILlSh.js +56 -0
  202. package/dist/admin/assets/table-DQ5ILlSh.js.map +1 -0
  203. package/dist/admin/assets/tabs-BJhfL-lw.js +5 -0
  204. package/dist/admin/assets/tabs-BJhfL-lw.js.map +1 -0
  205. package/dist/admin/assets/{textarea-B8Vl5gJ1.js → textarea-FwSvwmyT.js} +2 -2
  206. package/dist/admin/assets/{textarea-B8Vl5gJ1.js.map → textarea-FwSvwmyT.js.map} +1 -1
  207. package/dist/admin/assets/theme-C0Tv6M38.js +2 -0
  208. package/dist/admin/assets/theme-C0Tv6M38.js.map +1 -0
  209. package/dist/admin/assets/{titles-B2z5ckxG.js → titles-uL13bpi8.js} +2 -2
  210. package/dist/admin/assets/{titles-B2z5ckxG.js.map → titles-uL13bpi8.js.map} +1 -1
  211. package/dist/admin/assets/{tokens-Fh_OeIlf.js → tokens-C-20gLAT.js} +2 -2
  212. package/dist/admin/assets/{tokens-Fh_OeIlf.js.map → tokens-C-20gLAT.js.map} +1 -1
  213. package/dist/admin/assets/{tooltip-DwqM3opE.js → tooltip-BK5FqmJ0.js} +2 -2
  214. package/dist/admin/assets/{tooltip-DwqM3opE.js.map → tooltip-BK5FqmJ0.js.map} +1 -1
  215. package/dist/admin/assets/{undo-2-D4Fz4JMZ.js → undo-2-CLy2zklL.js} +2 -2
  216. package/dist/admin/assets/{undo-2-D4Fz4JMZ.js.map → undo-2-CLy2zklL.js.map} +1 -1
  217. package/dist/admin/assets/{useAuditLabels-DKrsrciQ.js → useAuditLabels-BJF7M5RY.js} +2 -2
  218. package/dist/admin/assets/{useAuditLabels-DKrsrciQ.js.map → useAuditLabels-BJF7M5RY.js.map} +1 -1
  219. package/dist/admin/assets/{useConfirmTarget-Dp8mCulm.js → useConfirmTarget-BUvlrGSW.js} +2 -2
  220. package/dist/admin/assets/{useConfirmTarget-Dp8mCulm.js.map → useConfirmTarget-BUvlrGSW.js.map} +1 -1
  221. package/dist/admin/assets/useContentSchema-BCdLYsKa.js +2 -0
  222. package/dist/admin/assets/{useContentSchema-Bv4_6VJR.js.map → useContentSchema-BCdLYsKa.js.map} +1 -1
  223. package/dist/admin/assets/{useCursorPager-B1upg5EU.js → useCursorPager-CzB6NDOB.js} +2 -2
  224. package/dist/admin/assets/{useCursorPager-B1upg5EU.js.map → useCursorPager-CzB6NDOB.js.map} +1 -1
  225. package/dist/admin/assets/{useDiscardGuard-34ynGJIk.js → useDiscardGuard-CGFgC3xY.js} +2 -2
  226. package/dist/admin/assets/{useDiscardGuard-34ynGJIk.js.map → useDiscardGuard-CGFgC3xY.js.map} +1 -1
  227. package/dist/admin/assets/useMediaPickerDialog-BOkGEyG7.js +2 -0
  228. package/dist/admin/assets/useMediaPickerDialog-BOkGEyG7.js.map +1 -0
  229. package/dist/admin/assets/useMediaUploader-D1ouV8jc.js +2 -0
  230. package/dist/admin/assets/useMediaUploader-D1ouV8jc.js.map +1 -0
  231. package/dist/admin/assets/{usePaletteItems-62-TZhy7.js → usePaletteItems-neKzBlys.js} +2 -2
  232. package/dist/admin/assets/{usePaletteItems-62-TZhy7.js.map → usePaletteItems-neKzBlys.js.map} +1 -1
  233. package/dist/admin/assets/{usePlaces-CY6f2DmI.js → usePlaces-6iTN15Xy.js} +2 -2
  234. package/dist/admin/assets/{usePlaces-CY6f2DmI.js.map → usePlaces-6iTN15Xy.js.map} +1 -1
  235. package/dist/admin/assets/{useQueries-BuKJBA0M.js → useQueries-CYfcxI0Q.js} +2 -2
  236. package/dist/admin/assets/{useQueries-BuKJBA0M.js.map → useQueries-CYfcxI0Q.js.map} +1 -1
  237. package/dist/admin/assets/useResolvedScheme-D0moXjaP.js +2 -0
  238. package/dist/admin/assets/{searchSchema-CvOhn4FV.js.map → useResolvedScheme-D0moXjaP.js.map} +1 -1
  239. package/dist/admin/assets/useSchemaScopeAccess-WQKmj8_3.js +2 -0
  240. package/dist/admin/assets/useSchemaScopeAccess-WQKmj8_3.js.map +1 -0
  241. package/dist/admin/assets/{users-BOn2ohJQ.js → users-B01EH47o.js} +2 -2
  242. package/dist/admin/assets/{users-BOn2ohJQ.js.map → users-B01EH47o.js.map} +1 -1
  243. package/dist/admin/assets/{users-BkKc4MNB.js → users-BgTNDPXx.js} +2 -2
  244. package/dist/admin/assets/{users-BkKc4MNB.js.map → users-BgTNDPXx.js.map} +1 -1
  245. package/dist/admin/assets/{zod-BHAd1wTC.js → zod-CS0EvbwG.js} +2 -2
  246. package/dist/admin/assets/{zod-BHAd1wTC.js.map → zod-CS0EvbwG.js.map} +1 -1
  247. package/dist/admin/favicon-32.png +0 -0
  248. package/dist/admin/favicon.svg +2 -2
  249. package/dist/admin/index.html +60 -56
  250. package/dist/admin/theme-init.js +44 -10
  251. package/dist/cli.js +48 -14
  252. package/dist/cli.js.map +1 -1
  253. package/dist/config.d.ts +2 -2
  254. package/dist/config.js.map +1 -1
  255. package/dist/index.d.ts +11 -224
  256. package/dist/index.js +1 -1
  257. package/dist/{public-CGO8RBn3.d.ts → public-BSbOGbK-.d.ts} +268 -6
  258. package/dist/{worker-BLXy8aRW.js → worker-i1rY2TIZ.js} +2416 -668
  259. package/dist/worker-i1rY2TIZ.js.map +1 -0
  260. package/package.json +5 -5
  261. package/dist/admin/assets/Body-BXa9DhtH.js +0 -2
  262. package/dist/admin/assets/Builder-DcpRfXuc.js +0 -2
  263. package/dist/admin/assets/Builder-DcpRfXuc.js.map +0 -1
  264. package/dist/admin/assets/Form-DZRLD3vH.js +0 -2
  265. package/dist/admin/assets/InsertMenuItem-D976G0Rj.js +0 -2
  266. package/dist/admin/assets/InsertMenuItem-D976G0Rj.js.map +0 -1
  267. package/dist/admin/assets/RadioTile-BpB79rIK.js.map +0 -1
  268. package/dist/admin/assets/RichTextField-BuHCONPu.js +0 -144
  269. package/dist/admin/assets/Structure-CqRa2t7z.js +0 -2
  270. package/dist/admin/assets/Thumbnail-CP5mfgNY.js +0 -2
  271. package/dist/admin/assets/Thumbnail-CP5mfgNY.js.map +0 -1
  272. package/dist/admin/assets/arrow-up-gf_j6SVQ.js +0 -2
  273. package/dist/admin/assets/arrow-up-gf_j6SVQ.js.map +0 -1
  274. package/dist/admin/assets/chevron-left-BsQYDUEC.js +0 -2
  275. package/dist/admin/assets/circle-x-Dx6zIZko.js +0 -2
  276. package/dist/admin/assets/circle-x-Dx6zIZko.js.map +0 -1
  277. package/dist/admin/assets/cn-BQ3voEft.js +0 -2
  278. package/dist/admin/assets/cn-BQ3voEft.js.map +0 -1
  279. package/dist/admin/assets/coerce-OsqQRj19.js +0 -2
  280. package/dist/admin/assets/constants-SrImR6C3.js +0 -2
  281. package/dist/admin/assets/content-_SLbbnfX.js +0 -3
  282. package/dist/admin/assets/content-_SLbbnfX.js.map +0 -1
  283. package/dist/admin/assets/develop-DS9TlDmv.js +0 -11
  284. package/dist/admin/assets/develop-DS9TlDmv.js.map +0 -1
  285. package/dist/admin/assets/dropdown-menu-gmP2Rp3n.js +0 -2
  286. package/dist/admin/assets/dropdown-menu-gmP2Rp3n.js.map +0 -1
  287. package/dist/admin/assets/external-link-D3Aoi2yX.js +0 -2
  288. package/dist/admin/assets/external-link-D3Aoi2yX.js.map +0 -1
  289. package/dist/admin/assets/file-text-DxXAmmxL.js.map +0 -1
  290. package/dist/admin/assets/followPlural-CN6cQfNk.js +0 -2
  291. package/dist/admin/assets/index-BLYOgCKc.css +0 -2
  292. package/dist/admin/assets/index-BSzXA60W.js +0 -4
  293. package/dist/admin/assets/index-BSzXA60W.js.map +0 -1
  294. package/dist/admin/assets/link-2-off-hWGS8LW6.js +0 -2
  295. package/dist/admin/assets/link-2-off-hWGS8LW6.js.map +0 -1
  296. package/dist/admin/assets/list-DRtRdjBC.js +0 -2
  297. package/dist/admin/assets/list-DRtRdjBC.js.map +0 -1
  298. package/dist/admin/assets/media-WLnWaL7U.js +0 -2
  299. package/dist/admin/assets/network-DHGqLwji.js +0 -2
  300. package/dist/admin/assets/network-DHGqLwji.js.map +0 -1
  301. package/dist/admin/assets/publishing-d9yhMwgA.js +0 -2
  302. package/dist/admin/assets/search-_YlNpPvU.js +0 -2
  303. package/dist/admin/assets/search-_YlNpPvU.js.map +0 -1
  304. package/dist/admin/assets/searchSchema-CvOhn4FV.js +0 -2
  305. package/dist/admin/assets/sections-DiySZZHb.js +0 -2
  306. package/dist/admin/assets/sections-DiySZZHb.js.map +0 -1
  307. package/dist/admin/assets/settings-D-v8gL8F.js +0 -2
  308. package/dist/admin/assets/settings-D-v8gL8F.js.map +0 -1
  309. package/dist/admin/assets/skeleton-C3QLIh7W.js +0 -42
  310. package/dist/admin/assets/skeleton-C3QLIh7W.js.map +0 -1
  311. package/dist/admin/assets/snapshots-BQrhsCmC.js +0 -2
  312. package/dist/admin/assets/src-XaU0N8C-.js +0 -4
  313. package/dist/admin/assets/src-XaU0N8C-.js.map +0 -1
  314. package/dist/admin/assets/table-CZYtdoHn.js +0 -56
  315. package/dist/admin/assets/table-CZYtdoHn.js.map +0 -1
  316. package/dist/admin/assets/tabs-quHbeVxA.js +0 -5
  317. package/dist/admin/assets/tabs-quHbeVxA.js.map +0 -1
  318. package/dist/admin/assets/useContentSchema-Bv4_6VJR.js +0 -2
  319. package/dist/admin/assets/useMediaUploader-QXSjZStv.js +0 -2
  320. package/dist/admin/assets/useMediaUploader-QXSjZStv.js.map +0 -1
  321. package/dist/admin/assets/useSchemaScopeAccess-DUBeS9kU.js +0 -2
  322. package/dist/admin/assets/useSchemaScopeAccess-DUBeS9kU.js.map +0 -1
  323. package/dist/worker-BLXy8aRW.js.map +0 -1
@@ -1,5 +1,224 @@
1
1
  import { FastifyBaseLogger, FastifyInstance, FastifyPluginAsync, preHandlerAsyncHookHandler } from "fastify";
2
2
  import { ColumnType, Kysely, Transaction } from "kysely";
3
+ import { Static, Type } from "typebox";
4
+ //#region ../../packages/schema/dist/index.d.ts
5
+ //#endregion
6
+ //#region src/types/dataTypes.d.ts
7
+ /** Every stored data type. A field's data type is separate from the editor that renders it (brief §2.5). */
8
+ declare const DATA_TYPES: readonly ["string", "text", "richtext", "number", "integer", "decimal", "biginteger", "boolean", "date", "datetime", "time", "enum", "json", "slug", "email", "url", "uid", "media", "relation", "component", "dynamiczone"];
9
+ type DataType = (typeof DATA_TYPES)[number];
10
+ //#endregion
11
+ //#region src/types/json.d.ts
12
+ type JsonPrimitive$1 = string | number | boolean | null;
13
+ type JsonValue$1 = JsonPrimitive$1 | JsonValue$1[] | {
14
+ [key: string]: JsonValue$1;
15
+ };
16
+ declare const SETTINGS_SCHEMAS: {
17
+ string: Type.TObject<{
18
+ pattern: Type.TOptional<Type.TString>;
19
+ minLength: Type.TOptional<Type.TInteger>;
20
+ maxLength: Type.TOptional<Type.TInteger>;
21
+ }>;
22
+ text: Type.TObject<{
23
+ minLength: Type.TOptional<Type.TInteger>;
24
+ maxLength: Type.TOptional<Type.TInteger>;
25
+ }>;
26
+ richtext: Type.TObject<{
27
+ formatVersion: Type.TOptional<Type.TInteger>;
28
+ maxLength: Type.TOptional<Type.TInteger>;
29
+ }>;
30
+ number: Type.TObject<{
31
+ min: Type.TOptional<Type.TNumber>;
32
+ max: Type.TOptional<Type.TNumber>;
33
+ }>;
34
+ integer: Type.TObject<{
35
+ min: Type.TOptional<Type.TInteger>;
36
+ max: Type.TOptional<Type.TInteger>;
37
+ }>;
38
+ decimal: Type.TObject<{
39
+ precision: Type.TOptional<Type.TInteger>;
40
+ scale: Type.TOptional<Type.TInteger>;
41
+ min: Type.TOptional<Type.TString>;
42
+ max: Type.TOptional<Type.TString>;
43
+ }>;
44
+ biginteger: Type.TObject<{
45
+ min: Type.TOptional<Type.TString>;
46
+ max: Type.TOptional<Type.TString>;
47
+ }>;
48
+ boolean: Type.TObject<{}>;
49
+ date: Type.TObject<{
50
+ min: Type.TOptional<Type.TString>;
51
+ max: Type.TOptional<Type.TString>;
52
+ }>;
53
+ datetime: Type.TObject<{
54
+ min: Type.TOptional<Type.TString>;
55
+ max: Type.TOptional<Type.TString>;
56
+ }>;
57
+ time: Type.TObject<{
58
+ min: Type.TOptional<Type.TString>;
59
+ max: Type.TOptional<Type.TString>;
60
+ }>;
61
+ enum: Type.TObject<{
62
+ values: Type.TArray<Type.TObject<{
63
+ value: Type.TString;
64
+ label: Type.TString;
65
+ }>>;
66
+ multiple: Type.TOptional<Type.TBoolean>;
67
+ }>;
68
+ json: Type.TObject<{}>;
69
+ slug: Type.TObject<{
70
+ sourceFieldId: Type.TOptional<Type.TString>;
71
+ minLength: Type.TOptional<Type.TInteger>;
72
+ maxLength: Type.TOptional<Type.TInteger>;
73
+ }>;
74
+ email: Type.TObject<{}>;
75
+ url: Type.TObject<{
76
+ protocols: Type.TOptional<Type.TArray<Type.TEnum<["http", "https", "mailto", "tel"]>>>;
77
+ }>;
78
+ uid: Type.TObject<{
79
+ minLength: Type.TOptional<Type.TInteger>;
80
+ maxLength: Type.TOptional<Type.TInteger>;
81
+ }>;
82
+ media: Type.TObject<{
83
+ min: Type.TOptional<Type.TInteger>;
84
+ max: Type.TOptional<Type.TInteger>;
85
+ multiple: Type.TOptional<Type.TBoolean>;
86
+ allowedKinds: Type.TOptional<Type.TArray<Type.TEnum<["image", "video", "audio", "document", "other"]>>>;
87
+ }>;
88
+ relation: Type.TObject<{
89
+ min: Type.TOptional<Type.TInteger>;
90
+ max: Type.TOptional<Type.TInteger>;
91
+ target: Type.TString;
92
+ cardinality: Type.TEnum<["one", "many"]>;
93
+ }>;
94
+ component: Type.TObject<{
95
+ min: Type.TOptional<Type.TInteger>;
96
+ max: Type.TOptional<Type.TInteger>;
97
+ component: Type.TString;
98
+ repeatable: Type.TOptional<Type.TBoolean>;
99
+ }>;
100
+ dynamiczone: Type.TObject<{
101
+ min: Type.TOptional<Type.TInteger>;
102
+ max: Type.TOptional<Type.TInteger>;
103
+ components: Type.TArray<Type.TString>;
104
+ }>;
105
+ };
106
+ type SettingsSchemas = typeof SETTINGS_SCHEMAS;
107
+ /** Settings as authored (defaults may be missing). */
108
+ type DataTypeSettingsInput = { [T in DataType]: Static<SettingsSchemas[T]>; };
109
+ /** Settings after normalization: the defaulted keys are always present. */
110
+ type DataTypeSettings = Omit<DataTypeSettingsInput, 'richtext' | 'enum' | 'media' | 'component'> & {
111
+ richtext: DataTypeSettingsInput['richtext'] & {
112
+ formatVersion: number;
113
+ };
114
+ enum: DataTypeSettingsInput['enum'] & {
115
+ multiple: boolean;
116
+ };
117
+ media: DataTypeSettingsInput['media'] & {
118
+ multiple: boolean;
119
+ };
120
+ component: DataTypeSettingsInput['component'] & {
121
+ repeatable: boolean;
122
+ };
123
+ };
124
+ //#endregion
125
+ //#region src/types/definitions.d.ts
126
+ declare const MODEL_KINDS: readonly ["collection", "singleton"];
127
+ type ModelKind = (typeof MODEL_KINDS)[number];
128
+ declare const SORT_DIRECTIONS: readonly ["asc", "desc"];
129
+ type SortDirection = (typeof SORT_DIRECTIONS)[number];
130
+ type EditorChoice = {
131
+ id: string;
132
+ options: Record<string, JsonValue$1>;
133
+ };
134
+ type FieldBase = {
135
+ id: string;
136
+ apiKey: string;
137
+ label: string;
138
+ description?: string;
139
+ required: boolean;
140
+ localized: boolean;
141
+ public: boolean;
142
+ unique: boolean;
143
+ filterable: boolean;
144
+ sortable: boolean;
145
+ deprecated: boolean;
146
+ defaultValue?: JsonValue$1;
147
+ editor: EditorChoice;
148
+ };
149
+ /** A normalized field. Narrow on `type` to get typed `settings`. */
150
+ type FieldDefinition<T extends DataType = DataType> = { [K in T]: FieldBase & {
151
+ type: K;
152
+ settings: DataTypeSettings[K];
153
+ }; }[T];
154
+ type FieldGroup = {
155
+ id: string;
156
+ label: string;
157
+ fieldIds: string[];
158
+ };
159
+ type ModelDisplay = {
160
+ titleFieldId?: string;
161
+ listFieldIds?: string[];
162
+ defaultSort?: {
163
+ fieldId: string;
164
+ direction: SortDirection;
165
+ };
166
+ groups?: FieldGroup[];
167
+ canvasFieldIds?: string[];
168
+ coverFieldId?: string;
169
+ stripFieldIds?: string[];
170
+ };
171
+ type ComponentDisplay = {
172
+ titleFieldId?: string;
173
+ groups?: FieldGroup[];
174
+ };
175
+ type ModelDefinition = {
176
+ id: string;
177
+ kind: ModelKind;
178
+ apiKey: string;
179
+ /**
180
+ * Present on collections (filled by normalizing), absent on singletons. Read it through `routeKeyOf`,
181
+ * which also covers a stored definition that predates plural API IDs.
182
+ */
183
+ pluralApiKey?: string;
184
+ label: string;
185
+ description?: string;
186
+ localized: boolean;
187
+ draftAndPublish: boolean;
188
+ fields: FieldDefinition[];
189
+ display: ModelDisplay;
190
+ };
191
+ type ComponentDefinition = {
192
+ id: string;
193
+ kind: 'component';
194
+ apiKey: string;
195
+ label: string;
196
+ description?: string;
197
+ category?: string;
198
+ icon?: string;
199
+ fields: FieldDefinition[];
200
+ display: ComponentDisplay;
201
+ };
202
+ //#endregion
203
+ //#region src/diff/types.d.ts
204
+ declare const CHANGE_KINDS: readonly ["definition.added", "definition.removed", "definition.apiKey", "definition.pluralApiKey", "definition.metadata", "model.kind", "model.localized", "model.draftAndPublish", "field.added", "field.removed", "field.order", "field.apiKey", "field.metadata", "field.editor", "field.type", "field.required", "field.localized", "field.public", "field.deprecated", "field.unique", "field.filterable", "field.sortable", "field.settings"];
205
+ type ChangeKind = (typeof CHANGE_KINDS)[number];
206
+ /**
207
+ * One difference between two versions of a definition. `property` names the changed property for
208
+ * `*.metadata` (`label`, `description`, ...) and `field.settings` (the settings key); `from`/`to` hold the
209
+ * old and new values (absent when the side does not exist).
210
+ */
211
+ type SchemaChange = {
212
+ kind: ChangeKind;
213
+ definitionId: string;
214
+ fieldId?: string;
215
+ property?: string;
216
+ from?: JsonValue$1;
217
+ to?: JsonValue$1;
218
+ };
219
+ declare const THEME_TOKENS: readonly ["background", "foreground", "card", "card-foreground", "popover", "popover-foreground", "primary", "primary-foreground", "primary-hover", "secondary", "secondary-foreground", "muted", "muted-foreground", "accent", "accent-foreground", "destructive", "destructive-foreground", "destructive-muted", "success", "success-muted", "warning", "warning-muted", "info", "info-muted", "border", "input", "ring", "link", "overlay", "sidebar", "sidebar-foreground", "sidebar-primary", "sidebar-primary-foreground", "sidebar-accent", "sidebar-accent-foreground", "sidebar-border", "sidebar-ring", "brand-logo", "brand-logo-foreground", "brand-letters", "brand-panel-from", "brand-panel-to", "brand-panel-foreground", "brand-panel-mark"];
220
+ type ThemeToken = (typeof THEME_TOKENS)[number];
221
+ //#endregion
3
222
  //#region src/db/contentData.d.ts
4
223
  /**
5
224
  * User content values: JSONB keyed by stable field IDs. The shape is only known at runtime from the active
@@ -674,6 +893,7 @@ interface Sites {
674
893
  is_primary: Generated<boolean>;
675
894
  key: string;
676
895
  name: string;
896
+ seo_defaults: Json | null;
677
897
  updated_at: Generated<Timestamp>;
678
898
  version: Generated<number>;
679
899
  }
@@ -799,6 +1019,9 @@ interface DB {
799
1019
  webhooks: Webhooks;
800
1020
  }
801
1021
  //#endregion
1022
+ //#region src/db/index.d.ts
1023
+ type Database = Kysely<DB>;
1024
+ //#endregion
802
1025
  //#region src/permissions/types.d.ts
803
1026
  /**
804
1027
  * Principals and policies (ADR 0005). One evaluator serves admin users, app users, tokens and anonymous
@@ -867,7 +1090,7 @@ type SystemPrincipal = {
867
1090
  type Principal = AdminPrincipal | AppUserPrincipal | TokenPrincipal | AnonymousPrincipal | SystemPrincipal;
868
1091
  declare const CONTENT_ACTIONS: readonly ["read", "create", "update", "delete", "publish", "schemaManage"];
869
1092
  type ContentAction = (typeof CONTENT_ACTIONS)[number];
870
- declare const GLOBAL_ACTIONS: readonly ["schema.create", "users.manage", "roles.manage", "audit.read", "sites.manage", "tokens.manage", "media.read", "media.write", "media.manage", "publishing.manage", "webhooks.manage", "deployments.manage", "deployments.trigger", "changes.manage", "changes.ship"];
1093
+ declare const GLOBAL_ACTIONS: readonly ["schema.create", "users.manage", "roles.manage", "audit.read", "sites.manage", "tokens.manage", "media.read", "media.write", "media.manage", "publishing.manage", "webhooks.manage", "deployments.manage", "deployments.trigger", "changes.manage", "changes.ship", "site.settings"];
871
1094
  type GlobalAction = (typeof GLOBAL_ACTIONS)[number];
872
1095
  /** Field visibility by stable field ID. `all` means every field the schema exposes to this principal kind. */
873
1096
  type FieldMask = {
@@ -898,15 +1121,36 @@ type PolicyRequest = {
898
1121
  action: ContentAction;
899
1122
  modelId: string;
900
1123
  };
1124
+ /**
1125
+ * Where a permission lookup reads its durable version checks (and any reload): the open transaction when
1126
+ * the caller is inside one, so the lookup never waits for a second pooled connection while it holds one
1127
+ * (an exhausted pool would then wait forever). Omitted: the pool.
1128
+ */
1129
+ type PermissionExecutor = Database;
1130
+ /**
1131
+ * Durable versions a request already read (`repositories/requestState.ts`, once per request, before any
1132
+ * transaction). A lookup given one compares its cache against it instead of reading it again, and still
1133
+ * reloads when its cache is older; a change made after the read applies from the next request. Omitted: the
1134
+ * lookup reads the version itself (jobs, the worker, the CLI).
1135
+ */
1136
+ type KnownVersions = {
1137
+ schemaVersion?: number;
1138
+ permissionsVersion?: number;
1139
+ };
901
1140
  type PermissionEvaluator = {
902
- evaluate: (principal: Principal, request: PolicyRequest) => Promise<Policy>;
903
- canPerform: (principal: Principal, action: GlobalAction) => Promise<boolean>;
1141
+ evaluate: (principal: Principal, request: PolicyRequest, executor?: PermissionExecutor) => Promise<Policy>;
1142
+ canPerform: (principal: Principal, action: GlobalAction, executor?: PermissionExecutor) => Promise<boolean>;
904
1143
  /**
905
1144
  * `canPerform` for the request's site: an action in `SITE_GRANTABLE_ACTIONS` also counts the roles that
906
1145
  * apply on `siteId` when the principal acts on that site (an admin narrowed to it, a site token of it, a
907
1146
  * network token). Any other action is `canPerform`.
908
1147
  */
909
- canPerformOnSite: (principal: Principal, action: GlobalAction, siteId: string) => Promise<boolean>;
1148
+ canPerformOnSite: (principal: Principal, action: GlobalAction, siteId: string, executor?: PermissionExecutor) => Promise<boolean>;
1149
+ /**
1150
+ * The same evaluator, checking its caches against versions the request already read instead of reading
1151
+ * them on every call. Absent on evaluators without durable caches (fixed test evaluators, wrappers).
1152
+ */
1153
+ atVersions?: (versions: KnownVersions) => PermissionEvaluator;
910
1154
  };
911
1155
  //#endregion
912
1156
  //#region src/plugins/auditDeclaration.d.ts
@@ -1155,6 +1399,22 @@ type JobHandlerContext = {
1155
1399
  };
1156
1400
  /** Throw to retry with backoff; the return value (JSON) is stored as the job result. */
1157
1401
  type ExtensionJobHandler = (context: JobHandlerContext) => Promise<unknown>;
1402
+ /**
1403
+ * A colour theme for the admin: token values for a light variant, a dark variant, or both. Every UI token is
1404
+ * required in a variant; the `brand-*` tokens may be left out (Shapio's are used). Values are `#rrggbb`
1405
+ * (contrast is checked by `shapio extensions check`), `#rgb`, `#rrggbbaa`, or `rgb()`, `hsl()`, `oklch()`,
1406
+ * `oklab()` with plain arguments.
1407
+ */
1408
+ type ThemeTokens = Partial<Record<ThemeToken, string>>;
1409
+ type ThemeDefinition = {
1410
+ /** Lower-case letters, digits and dashes; not a built-in theme's key. Saved in each browser's setting. */
1411
+ key: string;
1412
+ /** Shown in the theme menu (not translated). */
1413
+ name: string;
1414
+ description?: string;
1415
+ light?: ThemeTokens;
1416
+ dark?: ThemeTokens;
1417
+ };
1158
1418
  type ShapioConfig = {
1159
1419
  /** Lifecycle hooks by model API ID (or stable model UUID); `*` runs for every model. */
1160
1420
  hooks?: Record<string, ModelHooks>;
@@ -1165,6 +1425,8 @@ type ShapioConfig = {
1165
1425
  editors?: string[];
1166
1426
  /** Job handlers by name; registered as `ext.<name>`. */
1167
1427
  jobs?: Record<string, ExtensionJobHandler>;
1428
+ /** Admin colour themes, listed after the built-in ones in the theme menu. */
1429
+ themes?: ThemeDefinition[];
1168
1430
  };
1169
1431
  /** Identity helper for completion and type checking in `shapio.config.ts`. */
1170
1432
  declare const defineConfig: (config: ShapioConfig) => ShapioConfig;
@@ -1181,5 +1443,5 @@ declare class HookError extends Error {
1181
1443
  }
1182
1444
  declare const isHookError: (error: unknown) => error is HookError;
1183
1445
  //#endregion
1184
- export { ServiceFactoryContext as A, HookEvent as C, MediaUsage as D, MediaReferenceService as E, PermissionEvaluator as F, Principal as I, DB as L, ShapioServices as M, defineConfig as N, ModelHooks as O, isHookError as P, OutboxEvents as R, HookError as S, JobHandlerContext as T, ExtensionRoute as _, BeforeHookContext as a, ExtensionSite as b, ContentReadOptions as c, EXTENSION_CONTRACT_VERSION as d, EnqueueOptions as f, ExtensionJobService as g, ExtensionJobHandler as h, BeforeHook as i, ShapioConfig as j, ServiceFactory as k, ContentReadService as l, ExtensionHostConfig as m, AfterHookContext as n, BeforeHookEvent as o, EntryData as p, AfterHookEvent as r, ContentReadEntry as s, AfterHook as t, CustomServices as u, ExtensionRouteOptions as v, HookModel as w, HookEntry as x, ExtensionServices as y, ContentData as z };
1185
- //# sourceMappingURL=public-CGO8RBn3.d.ts.map
1446
+ export { ServiceFactoryContext as A, Principal as B, HookEvent as C, MediaUsage as D, MediaReferenceService as E, defineConfig as F, ComponentDefinition as G, DB as H, isHookError as I, ModelDefinition as J, DataType as K, KnownVersions as L, ShapioServices as M, ThemeDefinition as N, ModelHooks as O, ThemeTokens as P, PermissionEvaluator as R, HookError as S, JobHandlerContext as T, OutboxEvents as U, Database as V, ContentData as W, SchemaChange as Y, ExtensionRoute as _, BeforeHookContext as a, ExtensionSite as b, ContentReadOptions as c, EXTENSION_CONTRACT_VERSION as d, EnqueueOptions as f, ExtensionJobService as g, ExtensionJobHandler as h, BeforeHook as i, ShapioConfig as j, ServiceFactory as k, ContentReadService as l, ExtensionHostConfig as m, AfterHookContext as n, BeforeHookEvent as o, EntryData as p, JsonValue$1 as q, AfterHookEvent as r, ContentReadEntry as s, AfterHook as t, CustomServices as u, ExtensionRouteOptions as v, HookModel as w, HookEntry as x, ExtensionServices as y, PermissionExecutor as z };
1447
+ //# sourceMappingURL=public-BSbOGbK-.d.ts.map