@shapio/cms 0.2.1 → 0.3.1

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 (312) hide show
  1. package/dist/admin/apple-touch-icon.png +0 -0
  2. package/dist/admin/assets/{AssistError-hVUWpP3F.js → AssistError-BYR085vj.js} +2 -2
  3. package/dist/admin/assets/{AssistError-hVUWpP3F.js.map → AssistError-BYR085vj.js.map} +1 -1
  4. package/dist/admin/assets/{BlockMenuItems-B0g93m6M.js → BlockMenuItems-BnLF3Efc.js} +2 -2
  5. package/dist/admin/assets/{BlockMenuItems-B0g93m6M.js.map → BlockMenuItems-BnLF3Efc.js.map} +1 -1
  6. package/dist/admin/assets/Body-CCOZq2q9.js +2 -0
  7. package/dist/admin/assets/{Body-CFQKONK4.js.map → Body-CCOZq2q9.js.map} +1 -1
  8. package/dist/admin/assets/Builder-BZy9mphs.js +2 -0
  9. package/dist/admin/assets/Builder-BZy9mphs.js.map +1 -0
  10. package/dist/admin/assets/{ConfirmDialog-D6rs75TP.js → ConfirmDialog-Tu-gjEwm.js} +2 -2
  11. package/dist/admin/assets/{ConfirmDialog-D6rs75TP.js.map → ConfirmDialog-Tu-gjEwm.js.map} +1 -1
  12. package/dist/admin/assets/{CopyButton-Bc7crFDE.js → CopyButton-BuBaIlCk.js} +2 -2
  13. package/dist/admin/assets/{CopyButton-Bc7crFDE.js.map → CopyButton-BuBaIlCk.js.map} +1 -1
  14. package/dist/admin/assets/{CursorPager-BFPD_adV.js → CursorPager-Bvu3CXpD.js} +2 -2
  15. package/dist/admin/assets/{CursorPager-BFPD_adV.js.map → CursorPager-Bvu3CXpD.js.map} +1 -1
  16. package/dist/admin/assets/{ExternalLink-Cdfcyyed.js → ExternalLink-CCr5oRXI.js} +2 -2
  17. package/dist/admin/assets/{ExternalLink-Cdfcyyed.js.map → ExternalLink-CCr5oRXI.js.map} +1 -1
  18. package/dist/admin/assets/Form-Doc0JEzF.js +2 -0
  19. package/dist/admin/assets/Form-Doc0JEzF.js.map +1 -0
  20. package/dist/admin/assets/{FormCheckboxGroup-Bicl1CBP.js → FormCheckboxGroup-eg39IJvf.js} +2 -2
  21. package/dist/admin/assets/{FormCheckboxGroup-Bicl1CBP.js.map → FormCheckboxGroup-eg39IJvf.js.map} +1 -1
  22. package/dist/admin/assets/{FormRadioGroup-34iVSV4L.js → FormRadioGroup-ZppSTZK6.js} +2 -2
  23. package/dist/admin/assets/{FormRadioGroup-34iVSV4L.js.map → FormRadioGroup-ZppSTZK6.js.map} +1 -1
  24. package/dist/admin/assets/{FormSelectField-Ba4fIu-8.js → FormSelectField-Cosnxiz-.js} +2 -2
  25. package/dist/admin/assets/{FormSelectField-Ba4fIu-8.js.map → FormSelectField-Cosnxiz-.js.map} +1 -1
  26. package/dist/admin/assets/{FormSwitchField-DN6bfPC0.js → FormSwitchField-DsKQEZw6.js} +2 -2
  27. package/dist/admin/assets/{FormSwitchField-DN6bfPC0.js.map → FormSwitchField-DsKQEZw6.js.map} +1 -1
  28. package/dist/admin/assets/{FormTextareaField-WsNjLm32.js → FormTextareaField-BXidSgIE.js} +2 -2
  29. package/dist/admin/assets/{FormTextareaField-WsNjLm32.js.map → FormTextareaField-BXidSgIE.js.map} +1 -1
  30. package/dist/admin/assets/{HintedLabel-jKLM0ETt.js → HintedLabel-USQku9Yt.js} +2 -2
  31. package/dist/admin/assets/{HintedLabel-jKLM0ETt.js.map → HintedLabel-USQku9Yt.js.map} +1 -1
  32. package/dist/admin/assets/{InfoHint-DBqcrmZ3.js → InfoHint-Bz_yvehr.js} +2 -2
  33. package/dist/admin/assets/{InfoHint-DBqcrmZ3.js.map → InfoHint-Bz_yvehr.js.map} +1 -1
  34. package/dist/admin/assets/{InsertMenuItem-CRKXblK5.js → InsertMenuItem-DJXglsEd.js} +2 -2
  35. package/dist/admin/assets/{InsertMenuItem-CRKXblK5.js.map → InsertMenuItem-DJXglsEd.js.map} +1 -1
  36. package/dist/admin/assets/LinkTabs-D4U-rJyK.js +2 -0
  37. package/dist/admin/assets/{LinkTabs-Bn2JVqOL.js.map → LinkTabs-D4U-rJyK.js.map} +1 -1
  38. package/dist/admin/assets/Match-UAw1Ss8a.js +2 -0
  39. package/dist/admin/assets/{Match-DaYgKrk7.js.map → Match-UAw1Ss8a.js.map} +1 -1
  40. package/dist/admin/assets/{Panel-6wFe96Gr.js → Panel-BdjqCkKs.js} +2 -2
  41. package/dist/admin/assets/{Panel-6wFe96Gr.js.map → Panel-BdjqCkKs.js.map} +1 -1
  42. package/dist/admin/assets/{QueryView-DFZtm0fn.js → QueryView-Bkyizh1P.js} +2 -2
  43. package/dist/admin/assets/{QueryView-DFZtm0fn.js.map → QueryView-Bkyizh1P.js.map} +1 -1
  44. package/dist/admin/assets/{RadioTile-DsTyz7ml.js → RadioTile-VHTPl88w.js} +2 -2
  45. package/dist/admin/assets/RadioTile-VHTPl88w.js.map +1 -0
  46. package/dist/admin/assets/{RichTextField-BGkH403g.js → RichTextField-B21FqrT5.js} +4 -4
  47. package/dist/admin/assets/{RichTextField-BGkH403g.js.map → RichTextField-B21FqrT5.js.map} +1 -1
  48. package/dist/admin/assets/{RowTitle-sFt6NjO4.js → RowTitle-BD8QPs_v.js} +2 -2
  49. package/dist/admin/assets/{RowTitle-sFt6NjO4.js.map → RowTitle-BD8QPs_v.js.map} +1 -1
  50. package/dist/admin/assets/{SecretReveal-Z6MOFdcL.js → SecretReveal-BfJKUxXW.js} +2 -2
  51. package/dist/admin/assets/{SecretReveal-Z6MOFdcL.js.map → SecretReveal-BfJKUxXW.js.map} +1 -1
  52. package/dist/admin/assets/SharedGlyph-DDPdvsm_.js +2 -0
  53. package/dist/admin/assets/SharedGlyph-DDPdvsm_.js.map +1 -0
  54. package/dist/admin/assets/{StepList-BTP_EMzx.js → StepList-DKhkw1hN.js} +2 -2
  55. package/dist/admin/assets/{StepList-BTP_EMzx.js.map → StepList-DKhkw1hN.js.map} +1 -1
  56. package/dist/admin/assets/Structure-C7dr00Bp.js +2 -0
  57. package/dist/admin/assets/{Structure-D5-hCUuF.js.map → Structure-C7dr00Bp.js.map} +1 -1
  58. package/dist/admin/assets/SubNavLink-BAF2-wuF.js +2 -0
  59. package/dist/admin/assets/{SubNavLink-C5oN5mzB.js.map → SubNavLink-BAF2-wuF.js.map} +1 -1
  60. package/dist/admin/assets/{SuggestAltButton-BuN35BBL.js → SuggestAltButton-DEsbHvs4.js} +2 -2
  61. package/dist/admin/assets/{SuggestAltButton-BuN35BBL.js.map → SuggestAltButton-DEsbHvs4.js.map} +1 -1
  62. package/dist/admin/assets/TextLink-CegO3jom.js +2 -0
  63. package/dist/admin/assets/{TextLink-B4a6j3r6.js.map → TextLink-CegO3jom.js.map} +1 -1
  64. package/dist/admin/assets/{Thumbnail-u8NE5NhQ.js → Thumbnail-CTpKlrxR.js} +2 -2
  65. package/dist/admin/assets/{Thumbnail-u8NE5NhQ.js.map → Thumbnail-CTpKlrxR.js.map} +1 -1
  66. package/dist/admin/assets/UnsavedChangesGuard-Cbfg-Bgj.js +2 -0
  67. package/dist/admin/assets/{UnsavedChangesGuard-BYwMTDsE.js.map → UnsavedChangesGuard-Cbfg-Bgj.js.map} +1 -1
  68. package/dist/admin/assets/{UserAvatar-D-yX0ozh.js → UserAvatar-CiZ00-cr.js} +2 -2
  69. package/dist/admin/assets/{UserAvatar-D-yX0ozh.js.map → UserAvatar-CiZ00-cr.js.map} +1 -1
  70. package/dist/admin/assets/{arrow-up-Ws7W9KsZ.js → arrow-up-DwMJqZVV.js} +2 -2
  71. package/dist/admin/assets/{arrow-up-Ws7W9KsZ.js.map → arrow-up-DwMJqZVV.js.map} +1 -1
  72. package/dist/admin/assets/auth-BaVAo0u_.js +2 -0
  73. package/dist/admin/assets/auth-BaVAo0u_.js.map +1 -0
  74. package/dist/admin/assets/badge-IBeVOhKd.js +2 -0
  75. package/dist/admin/assets/{badge-CMox6-v3.js.map → badge-IBeVOhKd.js.map} +1 -1
  76. package/dist/admin/assets/boxes-BH0MDegO.js +2 -0
  77. package/dist/admin/assets/boxes-BH0MDegO.js.map +1 -0
  78. package/dist/admin/assets/{calendar-clock-9W0Lkt89.js → calendar-clock-DKUk-w81.js} +2 -2
  79. package/dist/admin/assets/{calendar-clock-9W0Lkt89.js.map → calendar-clock-DKUk-w81.js.map} +1 -1
  80. package/dist/admin/assets/{changeSets-CO7JdILW.js → changeSets-o_G67qPk.js} +2 -2
  81. package/dist/admin/assets/{changeSets-CO7JdILW.js.map → changeSets-o_G67qPk.js.map} +1 -1
  82. package/dist/admin/assets/chevron-left-D259hWJn.js +2 -0
  83. package/dist/admin/assets/{chevron-left-DyqYjcMB.js.map → chevron-left-D259hWJn.js.map} +1 -1
  84. package/dist/admin/assets/{circle-check-aJ2DW5t4.js → circle-check-Cidzt1Ww.js} +2 -2
  85. package/dist/admin/assets/{circle-check-aJ2DW5t4.js.map → circle-check-Cidzt1Ww.js.map} +1 -1
  86. package/dist/admin/assets/{circle-x-BnRBht9z.js → circle-x-c1RwmC6j.js} +2 -2
  87. package/dist/admin/assets/{circle-x-BnRBht9z.js.map → circle-x-c1RwmC6j.js.map} +1 -1
  88. package/dist/admin/assets/{clock-DRtFQbTs.js → clock-BOtPNp9-.js} +2 -2
  89. package/dist/admin/assets/{clock-DRtFQbTs.js.map → clock-BOtPNp9-.js.map} +1 -1
  90. package/dist/admin/assets/cn-M4_WHiur.js +2 -0
  91. package/dist/admin/assets/cn-M4_WHiur.js.map +1 -0
  92. package/dist/admin/assets/coerce-DWI5sgLW.js +2 -0
  93. package/dist/admin/assets/{coerce-COM3rk1i.js.map → coerce-DWI5sgLW.js.map} +1 -1
  94. package/dist/admin/assets/constants-CgUdkWmf.js +2 -0
  95. package/dist/admin/assets/constants-CgUdkWmf.js.map +1 -0
  96. package/dist/admin/assets/content-D25ainqV.js +3 -0
  97. package/dist/admin/assets/content-D25ainqV.js.map +1 -0
  98. package/dist/admin/assets/{contentCounts-Ct0tYgHD.js → contentCounts-T-LmvUf5.js} +2 -2
  99. package/dist/admin/assets/{contentCounts-Ct0tYgHD.js.map → contentCounts-T-LmvUf5.js.map} +1 -1
  100. package/dist/admin/assets/contentTypes-BSlp81l1.js +2 -0
  101. package/dist/admin/assets/contentTypes-BSlp81l1.js.map +1 -0
  102. package/dist/admin/assets/{copy-B5B8RjV0.js → copy-DT7dAzVm.js} +2 -2
  103. package/dist/admin/assets/{copy-B5B8RjV0.js.map → copy-DT7dAzVm.js.map} +1 -1
  104. package/dist/admin/assets/{dateTimeLocal-BuBv3it2.js → dateTimeLocal-DRq7DuYO.js} +2 -2
  105. package/dist/admin/assets/{dateTimeLocal-BuBv3it2.js.map → dateTimeLocal-DRq7DuYO.js.map} +1 -1
  106. package/dist/admin/assets/develop-qF10t9tM.js +11 -0
  107. package/dist/admin/assets/develop-qF10t9tM.js.map +1 -0
  108. package/dist/admin/assets/{dropdown-menu-CW3fabv5.js → dropdown-menu-Cl20LCvY.js} +2 -2
  109. package/dist/admin/assets/{dropdown-menu-CW3fabv5.js.map → dropdown-menu-Cl20LCvY.js.map} +1 -1
  110. package/dist/admin/assets/{ellipsis-DNdmromA.js → ellipsis-xDmHl1SK.js} +2 -2
  111. package/dist/admin/assets/{ellipsis-DNdmromA.js.map → ellipsis-xDmHl1SK.js.map} +1 -1
  112. package/dist/admin/assets/{external-link-YnuWXDBk.js → external-link-DtJAaOWk.js} +2 -2
  113. package/dist/admin/assets/{external-link-YnuWXDBk.js.map → external-link-DtJAaOWk.js.map} +1 -1
  114. package/dist/admin/assets/{file-text-CB7Bc0GA.js → file-text-BJkQMeQO.js} +2 -2
  115. package/dist/admin/assets/{file-text-CB7Bc0GA.js.map → file-text-BJkQMeQO.js.map} +1 -1
  116. package/dist/admin/assets/fileRoute-Buucm0CU.js +2 -0
  117. package/dist/admin/assets/{fileRoute-BYwireXG.js.map → fileRoute-Buucm0CU.js.map} +1 -1
  118. package/dist/admin/assets/followPlural-Cuocm4Sv.js +2 -0
  119. package/dist/admin/assets/followPlural-Cuocm4Sv.js.map +1 -0
  120. package/dist/admin/assets/{globe-Bvs3UC3V.js → globe-CAhrwBgv.js} +2 -2
  121. package/dist/admin/assets/{globe-Bvs3UC3V.js.map → globe-CAhrwBgv.js.map} +1 -1
  122. package/dist/admin/assets/{image-CeoxwJeM.js → image-CGN6ffEu.js} +2 -2
  123. package/dist/admin/assets/{image-CeoxwJeM.js.map → image-CGN6ffEu.js.map} +1 -1
  124. package/dist/admin/assets/{image-off-iVqYw2Zc.js → image-off-0zX_kODH.js} +2 -2
  125. package/dist/admin/assets/{image-off-iVqYw2Zc.js.map → image-off-0zX_kODH.js.map} +1 -1
  126. package/dist/admin/assets/inbox-CWq1hHqK.js +2 -0
  127. package/dist/admin/assets/{inbox-wDoqym--.js.map → inbox-CWq1hHqK.js.map} +1 -1
  128. package/dist/admin/assets/{inbox-DYbEOpaQ.js → inbox-CukkApHK.js} +2 -2
  129. package/dist/admin/assets/{inbox-DYbEOpaQ.js.map → inbox-CukkApHK.js.map} +1 -1
  130. package/dist/admin/assets/index-C9uJxg4J.js +4 -0
  131. package/dist/admin/assets/index-C9uJxg4J.js.map +1 -0
  132. package/dist/admin/assets/index-Cz3C-LxB.css +2 -0
  133. package/dist/admin/assets/{key-round-Bcw6qqcb.js → key-round-DnE-2gr0.js} +2 -2
  134. package/dist/admin/assets/{key-round-Bcw6qqcb.js.map → key-round-DnE-2gr0.js.map} +1 -1
  135. package/dist/admin/assets/link-2-off-Cbpvb3w4.js +2 -0
  136. package/dist/admin/assets/link-2-off-Cbpvb3w4.js.map +1 -0
  137. package/dist/admin/assets/{link-CKr_uUfb.js → link-DPniuk00.js} +2 -2
  138. package/dist/admin/assets/{link-CKr_uUfb.js.map → link-DPniuk00.js.map} +1 -1
  139. package/dist/admin/assets/{list-BElvKZw_.js → list-CkHF_4xh.js} +2 -2
  140. package/dist/admin/assets/{list-BElvKZw_.js.map → list-CkHF_4xh.js.map} +1 -1
  141. package/dist/admin/assets/{locales-Bnv3qcdZ.js → locales-DFLQ17ow.js} +2 -2
  142. package/dist/admin/assets/{locales-Bnv3qcdZ.js.map → locales-DFLQ17ow.js.map} +1 -1
  143. package/dist/admin/assets/{media-BfDqe_2P.js → media-CKTs3j83.js} +2 -2
  144. package/dist/admin/assets/{media-BfDqe_2P.js.map → media-CKTs3j83.js.map} +1 -1
  145. package/dist/admin/assets/media-CUfV74JZ.js +2 -0
  146. package/dist/admin/assets/{media-DjK3xGFN.js.map → media-CUfV74JZ.js.map} +1 -1
  147. package/dist/admin/assets/network-Fri1cjMt.js +2 -0
  148. package/dist/admin/assets/network-Fri1cjMt.js.map +1 -0
  149. package/dist/admin/assets/{pencil-Zd05MDs2.js → pencil-BqAgKC9v.js} +2 -2
  150. package/dist/admin/assets/{pencil-Zd05MDs2.js.map → pencil-BqAgKC9v.js.map} +1 -1
  151. package/dist/admin/assets/{plus-B0gd63Da.js → plus-DLRcpVhJ.js} +2 -2
  152. package/dist/admin/assets/{plus-B0gd63Da.js.map → plus-DLRcpVhJ.js.map} +1 -1
  153. package/dist/admin/assets/{preload-helper-CJKHb_rG.js → preload-helper-BHNBIF88.js} +2 -2
  154. package/dist/admin/assets/{preload-helper-CJKHb_rG.js.map → preload-helper-BHNBIF88.js.map} +1 -1
  155. package/dist/admin/assets/publishing-DaaE8PaU.js +2 -0
  156. package/dist/admin/assets/{publishing-vCVjaSGF.js.map → publishing-DaaE8PaU.js.map} +1 -1
  157. package/dist/admin/assets/{radio-group-DVR0mTpo.js → radio-group-CA3XlQcc.js} +2 -2
  158. package/dist/admin/assets/{radio-group-DVR0mTpo.js.map → radio-group-CA3XlQcc.js.map} +1 -1
  159. package/dist/admin/assets/{rotate-ccw-BOTDOdHf.js → rotate-ccw-CfrkcgYa.js} +2 -2
  160. package/dist/admin/assets/{rotate-ccw-BOTDOdHf.js.map → rotate-ccw-CfrkcgYa.js.map} +1 -1
  161. package/dist/admin/assets/{schedules-CG-ZphRK.js → schedules-hJQkjEhN.js} +2 -2
  162. package/dist/admin/assets/{schedules-CG-ZphRK.js.map → schedules-hJQkjEhN.js.map} +1 -1
  163. package/dist/admin/assets/schema--xSR7cf9.js +2 -0
  164. package/dist/admin/assets/schema--xSR7cf9.js.map +1 -0
  165. package/dist/admin/assets/{scroll-text-D-gHqYwR.js → scroll-text-BA9yh7Za.js} +2 -2
  166. package/dist/admin/assets/{scroll-text-D-gHqYwR.js.map → scroll-text-BA9yh7Za.js.map} +1 -1
  167. package/dist/admin/assets/{search-BcPL1qyc.js → search--71HzPvh.js} +2 -2
  168. package/dist/admin/assets/{search-BcPL1qyc.js.map → search--71HzPvh.js.map} +1 -1
  169. package/dist/admin/assets/searchSchema-Ypl6gq9g.js +2 -0
  170. package/dist/admin/assets/{searchSchema-BGrRDBL_.js.map → searchSchema-Ypl6gq9g.js.map} +1 -1
  171. package/dist/admin/assets/searchSchemas-C-nQbyhd.js +2 -0
  172. package/dist/admin/assets/searchSchemas-C-nQbyhd.js.map +1 -0
  173. package/dist/admin/assets/sections-BBN2JErq.js +2 -0
  174. package/dist/admin/assets/sections-BBN2JErq.js.map +1 -0
  175. package/dist/admin/assets/{sections-i9TeeK-h.js → sections-D0OZozD2.js} +2 -2
  176. package/dist/admin/assets/{sections-i9TeeK-h.js.map → sections-D0OZozD2.js.map} +1 -1
  177. package/dist/admin/assets/{select--nGB4WjU.js → select-De48SQdZ.js} +2 -2
  178. package/dist/admin/assets/{select--nGB4WjU.js.map → select-De48SQdZ.js.map} +1 -1
  179. package/dist/admin/assets/{send-Bu3RRfdI.js → send-NuSmLVSD.js} +2 -2
  180. package/dist/admin/assets/{send-Bu3RRfdI.js.map → send-NuSmLVSD.js.map} +1 -1
  181. package/dist/admin/assets/settings-CYXU73dP.js +2 -0
  182. package/dist/admin/assets/settings-CYXU73dP.js.map +1 -0
  183. package/dist/admin/assets/skeleton-CCwdO9oq.js +42 -0
  184. package/dist/admin/assets/skeleton-CCwdO9oq.js.map +1 -0
  185. package/dist/admin/assets/snapshots-BQeFK5cj.js +2 -0
  186. package/dist/admin/assets/{snapshots-CKjK-vkL.js.map → snapshots-BQeFK5cj.js.map} +1 -1
  187. package/dist/admin/assets/{sparkles-B_NX7PAY.js → sparkles-B-0I44es.js} +2 -2
  188. package/dist/admin/assets/{sparkles-B_NX7PAY.js.map → sparkles-B-0I44es.js.map} +1 -1
  189. package/dist/admin/assets/src-CQu-YxUM.js +4 -0
  190. package/dist/admin/assets/src-CQu-YxUM.js.map +1 -0
  191. package/dist/admin/assets/{stableId-Dmr2Afn_.js → stableId-rPnYVF-A.js} +2 -2
  192. package/dist/admin/assets/{stableId-Dmr2Afn_.js.map → stableId-rPnYVF-A.js.map} +1 -1
  193. package/dist/admin/assets/{store-B5xrQ1Ex.js → store-Bqd9L9DK.js} +2 -2
  194. package/dist/admin/assets/{store-B5xrQ1Ex.js.map → store-Bqd9L9DK.js.map} +1 -1
  195. package/dist/admin/assets/{switch-B-FbT-l8.js → switch-JmfyFAQG.js} +2 -2
  196. package/dist/admin/assets/{switch-B-FbT-l8.js.map → switch-JmfyFAQG.js.map} +1 -1
  197. package/dist/admin/assets/{table-DQzCPm7J.js → table-BEDv9IRM.js} +2 -2
  198. package/dist/admin/assets/{table-DQzCPm7J.js.map → table-BEDv9IRM.js.map} +1 -1
  199. package/dist/admin/assets/tabs-DSS1c-Kf.js +5 -0
  200. package/dist/admin/assets/{tabs-YThoOiE3.js.map → tabs-DSS1c-Kf.js.map} +1 -1
  201. package/dist/admin/assets/{textarea-_wcx8Mn1.js → textarea-eatLAWE_.js} +2 -2
  202. package/dist/admin/assets/{textarea-_wcx8Mn1.js.map → textarea-eatLAWE_.js.map} +1 -1
  203. package/dist/admin/assets/titles-Bi2fWNN4.js +2 -0
  204. package/dist/admin/assets/{titles-DyCBLXue.js.map → titles-Bi2fWNN4.js.map} +1 -1
  205. package/dist/admin/assets/{tokens-CqsxrApC.js → tokens-C2E7swse.js} +2 -2
  206. package/dist/admin/assets/{tokens-CqsxrApC.js.map → tokens-C2E7swse.js.map} +1 -1
  207. package/dist/admin/assets/{tooltip-BMe4HylJ.js → tooltip-Bji9fmSr.js} +2 -2
  208. package/dist/admin/assets/{tooltip-BMe4HylJ.js.map → tooltip-Bji9fmSr.js.map} +1 -1
  209. package/dist/admin/assets/{undo-2-DMOHOH6w.js → undo-2-BU-uqm7e.js} +2 -2
  210. package/dist/admin/assets/{undo-2-DMOHOH6w.js.map → undo-2-BU-uqm7e.js.map} +1 -1
  211. package/dist/admin/assets/{useAuditLabels-CSw_kwLs.js → useAuditLabels-D5nmbXqN.js} +2 -2
  212. package/dist/admin/assets/{useAuditLabels-CSw_kwLs.js.map → useAuditLabels-D5nmbXqN.js.map} +1 -1
  213. package/dist/admin/assets/useConfirmTarget-Y7_8kVX5.js +2 -0
  214. package/dist/admin/assets/useConfirmTarget-Y7_8kVX5.js.map +1 -0
  215. package/dist/admin/assets/useContentSchema-DJTqjlUk.js +2 -0
  216. package/dist/admin/assets/{useContentSchema-CS5QQcRk.js.map → useContentSchema-DJTqjlUk.js.map} +1 -1
  217. package/dist/admin/assets/{useCursorPager-Dt_axwd1.js → useCursorPager-CiJroOo7.js} +2 -2
  218. package/dist/admin/assets/{useCursorPager-Dt_axwd1.js.map → useCursorPager-CiJroOo7.js.map} +1 -1
  219. package/dist/admin/assets/{useDiscardGuard-7rRGpd4q.js → useDiscardGuard-t_N3l9TQ.js} +2 -2
  220. package/dist/admin/assets/{useDiscardGuard-7rRGpd4q.js.map → useDiscardGuard-t_N3l9TQ.js.map} +1 -1
  221. package/dist/admin/assets/{useMediaUploader-CBUcNW6d.js → useMediaUploader-CLHmKCwq.js} +2 -2
  222. package/dist/admin/assets/{useMediaUploader-CBUcNW6d.js.map → useMediaUploader-CLHmKCwq.js.map} +1 -1
  223. package/dist/admin/assets/{usePaletteItems-bbTIqpPu.js → usePaletteItems-BVjWCdow.js} +2 -2
  224. package/dist/admin/assets/{usePaletteItems-bbTIqpPu.js.map → usePaletteItems-BVjWCdow.js.map} +1 -1
  225. package/dist/admin/assets/usePlaces-CnSOZwtO.js +2 -0
  226. package/dist/admin/assets/usePlaces-CnSOZwtO.js.map +1 -0
  227. package/dist/admin/assets/{useQueries-DKGIdq6A.js → useQueries-BRolGUiw.js} +2 -2
  228. package/dist/admin/assets/{useQueries-DKGIdq6A.js.map → useQueries-BRolGUiw.js.map} +1 -1
  229. package/dist/admin/assets/useSchemaScopeAccess-bd8RQxuu.js +2 -0
  230. package/dist/admin/assets/useSchemaScopeAccess-bd8RQxuu.js.map +1 -0
  231. package/dist/admin/assets/{users-C1ZSee3N.js → users-CbErtM7w.js} +2 -2
  232. package/dist/admin/assets/{users-C1ZSee3N.js.map → users-CbErtM7w.js.map} +1 -1
  233. package/dist/admin/assets/{users-DMfQL0s4.js → users-bDGYpSXg.js} +2 -2
  234. package/dist/admin/assets/{users-DMfQL0s4.js.map → users-bDGYpSXg.js.map} +1 -1
  235. package/dist/admin/assets/{zod-Pf5A-ax4.js → zod-Gtw4e0qi.js} +2 -2
  236. package/dist/admin/assets/{zod-Pf5A-ax4.js.map → zod-Gtw4e0qi.js.map} +1 -1
  237. package/dist/admin/favicon-32.png +0 -0
  238. package/dist/admin/favicon.svg +2 -2
  239. package/dist/admin/index.html +61 -56
  240. package/dist/admin/theme-init.js +41 -9
  241. package/dist/cli.js +412 -168
  242. package/dist/cli.js.map +1 -1
  243. package/dist/config.d.ts +2 -2
  244. package/dist/config.js.map +1 -1
  245. package/dist/index.d.ts +15 -223
  246. package/dist/index.js +1 -1
  247. package/dist/{public-CKU0Gkfq.d.ts → public-B7fFHMNr.d.ts} +259 -5
  248. package/dist/{worker-C-MSYr4l.js → worker-BAmQPoTJ.js} +2867 -1314
  249. package/dist/worker-BAmQPoTJ.js.map +1 -0
  250. package/package.json +5 -6
  251. package/dist/admin/assets/Body-CFQKONK4.js +0 -2
  252. package/dist/admin/assets/Builder-Do5KVHV9.js +0 -2
  253. package/dist/admin/assets/Builder-Do5KVHV9.js.map +0 -1
  254. package/dist/admin/assets/LinkTabs-Bn2JVqOL.js +0 -2
  255. package/dist/admin/assets/Match-DaYgKrk7.js +0 -2
  256. package/dist/admin/assets/RadioTile-DsTyz7ml.js.map +0 -1
  257. package/dist/admin/assets/Structure-D5-hCUuF.js +0 -2
  258. package/dist/admin/assets/SubNavLink-C5oN5mzB.js +0 -2
  259. package/dist/admin/assets/TextLink-B4a6j3r6.js +0 -2
  260. package/dist/admin/assets/UnsavedChangesGuard-BYwMTDsE.js +0 -2
  261. package/dist/admin/assets/auth-b3_9QbtL.js +0 -2
  262. package/dist/admin/assets/auth-b3_9QbtL.js.map +0 -1
  263. package/dist/admin/assets/badge-CMox6-v3.js +0 -2
  264. package/dist/admin/assets/chevron-left-DyqYjcMB.js +0 -2
  265. package/dist/admin/assets/cn-DnXL75B0.js +0 -2
  266. package/dist/admin/assets/cn-DnXL75B0.js.map +0 -1
  267. package/dist/admin/assets/coerce-COM3rk1i.js +0 -2
  268. package/dist/admin/assets/constants-CS1ziZO0.js +0 -2
  269. package/dist/admin/assets/constants-CS1ziZO0.js.map +0 -1
  270. package/dist/admin/assets/content-Dic2fof_.js +0 -3
  271. package/dist/admin/assets/content-Dic2fof_.js.map +0 -1
  272. package/dist/admin/assets/contentTypes-D4_Ax9rb.js +0 -2
  273. package/dist/admin/assets/contentTypes-D4_Ax9rb.js.map +0 -1
  274. package/dist/admin/assets/develop-Brnb5YPC.js +0 -11
  275. package/dist/admin/assets/develop-Brnb5YPC.js.map +0 -1
  276. package/dist/admin/assets/errors-DfoXUVDI.js +0 -2
  277. package/dist/admin/assets/errors-DfoXUVDI.js.map +0 -1
  278. package/dist/admin/assets/fileRoute-BYwireXG.js +0 -2
  279. package/dist/admin/assets/inbox-wDoqym--.js +0 -2
  280. package/dist/admin/assets/index-57Mn6XLO.js +0 -4
  281. package/dist/admin/assets/index-57Mn6XLO.js.map +0 -1
  282. package/dist/admin/assets/index-BLYOgCKc.css +0 -2
  283. package/dist/admin/assets/link-2-DhM2vi4v.js +0 -2
  284. package/dist/admin/assets/link-2-DhM2vi4v.js.map +0 -1
  285. package/dist/admin/assets/link-2-off-DpDOMsa-.js +0 -2
  286. package/dist/admin/assets/link-2-off-DpDOMsa-.js.map +0 -1
  287. package/dist/admin/assets/media-DjK3xGFN.js +0 -2
  288. package/dist/admin/assets/network-CAJ76ILr.js +0 -2
  289. package/dist/admin/assets/network-CAJ76ILr.js.map +0 -1
  290. package/dist/admin/assets/publishing-vCVjaSGF.js +0 -2
  291. package/dist/admin/assets/schema-KXXSPVJn.js +0 -2
  292. package/dist/admin/assets/schema-KXXSPVJn.js.map +0 -1
  293. package/dist/admin/assets/searchSchema-BGrRDBL_.js +0 -2
  294. package/dist/admin/assets/searchSchemas-ChN9hhuQ.js +0 -2
  295. package/dist/admin/assets/searchSchemas-ChN9hhuQ.js.map +0 -1
  296. package/dist/admin/assets/sections-BrGcWOnw.js +0 -2
  297. package/dist/admin/assets/sections-BrGcWOnw.js.map +0 -1
  298. package/dist/admin/assets/settings-68BAxrPM.js +0 -2
  299. package/dist/admin/assets/settings-68BAxrPM.js.map +0 -1
  300. package/dist/admin/assets/skeleton-DUvclBAr.js +0 -42
  301. package/dist/admin/assets/skeleton-DUvclBAr.js.map +0 -1
  302. package/dist/admin/assets/snapshots-CKjK-vkL.js +0 -2
  303. package/dist/admin/assets/src-D6DABe5J.js +0 -4
  304. package/dist/admin/assets/src-D6DABe5J.js.map +0 -1
  305. package/dist/admin/assets/tabs-YThoOiE3.js +0 -5
  306. package/dist/admin/assets/titles-DyCBLXue.js +0 -2
  307. package/dist/admin/assets/useConfirmTarget-9JmfiY2X.js +0 -2
  308. package/dist/admin/assets/useConfirmTarget-9JmfiY2X.js.map +0 -1
  309. package/dist/admin/assets/useContentSchema-CS5QQcRk.js +0 -2
  310. package/dist/admin/assets/usePlaces-D1raoQ2s.js +0 -2
  311. package/dist/admin/assets/usePlaces-D1raoQ2s.js.map +0 -1
  312. package/dist/worker-C-MSYr4l.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
@@ -510,6 +729,7 @@ interface Models {
510
729
  deleted_at: Timestamp | null;
511
730
  id: string;
512
731
  kind: string;
732
+ site_id: string | null;
513
733
  updated_at: Generated<Timestamp>;
514
734
  }
515
735
  interface OutboxEvents {
@@ -628,6 +848,7 @@ interface SchemaDrafts {
628
848
  definition_id: string;
629
849
  id: Generated<string>;
630
850
  kind: string;
851
+ shared: Generated<boolean>;
631
852
  updated_at: Generated<Timestamp>;
632
853
  updated_by_id: string | null;
633
854
  updated_by_type: string;
@@ -797,6 +1018,9 @@ interface DB {
797
1018
  webhooks: Webhooks;
798
1019
  }
799
1020
  //#endregion
1021
+ //#region src/db/index.d.ts
1022
+ type Database = Kysely<DB>;
1023
+ //#endregion
800
1024
  //#region src/permissions/types.d.ts
801
1025
  /**
802
1026
  * Principals and policies (ADR 0005). One evaluator serves admin users, app users, tokens and anonymous
@@ -896,9 +1120,21 @@ type PolicyRequest = {
896
1120
  action: ContentAction;
897
1121
  modelId: string;
898
1122
  };
1123
+ /**
1124
+ * Where a permission lookup reads its durable version checks (and any reload): the open transaction when
1125
+ * the caller is inside one, so the lookup never waits for a second pooled connection while it holds one
1126
+ * (an exhausted pool would then wait forever). Omitted: the pool.
1127
+ */
1128
+ type PermissionExecutor = Database;
899
1129
  type PermissionEvaluator = {
900
- evaluate: (principal: Principal, request: PolicyRequest) => Promise<Policy>;
901
- canPerform: (principal: Principal, action: GlobalAction) => Promise<boolean>;
1130
+ evaluate: (principal: Principal, request: PolicyRequest, executor?: PermissionExecutor) => Promise<Policy>;
1131
+ canPerform: (principal: Principal, action: GlobalAction, executor?: PermissionExecutor) => Promise<boolean>;
1132
+ /**
1133
+ * `canPerform` for the request's site: an action in `SITE_GRANTABLE_ACTIONS` also counts the roles that
1134
+ * apply on `siteId` when the principal acts on that site (an admin narrowed to it, a site token of it, a
1135
+ * network token). Any other action is `canPerform`.
1136
+ */
1137
+ canPerformOnSite: (principal: Principal, action: GlobalAction, siteId: string, executor?: PermissionExecutor) => Promise<boolean>;
902
1138
  };
903
1139
  //#endregion
904
1140
  //#region src/plugins/auditDeclaration.d.ts
@@ -1002,7 +1238,7 @@ type ContentReadService = {
1002
1238
  }>;
1003
1239
  /** Number of (non-deleted) entries of a model. */
1004
1240
  count: (modelKey: string) => Promise<number>;
1005
- /** The active content models (collections and singletons). */
1241
+ /** The active content models (collections and singletons) of this site: shared ones and its own. */
1006
1242
  models: () => Promise<HookModel[]>;
1007
1243
  };
1008
1244
  type MediaUsage = {
@@ -1147,6 +1383,22 @@ type JobHandlerContext = {
1147
1383
  };
1148
1384
  /** Throw to retry with backoff; the return value (JSON) is stored as the job result. */
1149
1385
  type ExtensionJobHandler = (context: JobHandlerContext) => Promise<unknown>;
1386
+ /**
1387
+ * A colour theme for the admin: token values for a light variant, a dark variant, or both. Every UI token is
1388
+ * required in a variant; the `brand-*` tokens may be left out (Shapio's are used). Values are `#rrggbb`
1389
+ * (contrast is checked by `shapio extensions check`), `#rgb`, `#rrggbbaa`, or `rgb()`, `hsl()`, `oklch()`,
1390
+ * `oklab()` with plain arguments.
1391
+ */
1392
+ type ThemeTokens = Partial<Record<ThemeToken, string>>;
1393
+ type ThemeDefinition = {
1394
+ /** Lower-case letters, digits and dashes; not a built-in theme's key. Saved in each browser's setting. */
1395
+ key: string;
1396
+ /** Shown in the theme menu (not translated). */
1397
+ name: string;
1398
+ description?: string;
1399
+ light?: ThemeTokens;
1400
+ dark?: ThemeTokens;
1401
+ };
1150
1402
  type ShapioConfig = {
1151
1403
  /** Lifecycle hooks by model API ID (or stable model UUID); `*` runs for every model. */
1152
1404
  hooks?: Record<string, ModelHooks>;
@@ -1157,6 +1409,8 @@ type ShapioConfig = {
1157
1409
  editors?: string[];
1158
1410
  /** Job handlers by name; registered as `ext.<name>`. */
1159
1411
  jobs?: Record<string, ExtensionJobHandler>;
1412
+ /** Admin colour themes, listed after the built-in ones in the theme menu. */
1413
+ themes?: ThemeDefinition[];
1160
1414
  };
1161
1415
  /** Identity helper for completion and type checking in `shapio.config.ts`. */
1162
1416
  declare const defineConfig: (config: ShapioConfig) => ShapioConfig;
@@ -1173,5 +1427,5 @@ declare class HookError extends Error {
1173
1427
  }
1174
1428
  declare const isHookError: (error: unknown) => error is HookError;
1175
1429
  //#endregion
1176
- 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 };
1177
- //# sourceMappingURL=public-CKU0Gkfq.d.ts.map
1430
+ export { ServiceFactoryContext as A, Database as B, HookEvent as C, MediaUsage as D, MediaReferenceService as E, defineConfig as F, DataType as G, OutboxEvents as H, isHookError as I, SchemaChange as J, JsonValue$1 as K, PermissionEvaluator as L, ShapioServices as M, ThemeDefinition as N, ModelHooks as O, ThemeTokens as P, PermissionExecutor as R, HookError as S, JobHandlerContext as T, ContentData as U, DB as V, ComponentDefinition as W, 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, ModelDefinition 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, Principal as z };
1431
+ //# sourceMappingURL=public-B7fFHMNr.d.ts.map