@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
Binary file
@@ -1,5 +1,5 @@
1
1
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="165.9 188.4 391.6 391.6" role="img" aria-label="Shapio">
2
2
  <title>Shapio</title>
3
- <path fill="#FFFFFF" d="M361.016 396.004C344.007 374.629 323.798 388.326 309.62 366.449C306.112 360.947 304.63 354.395 305.429 347.919C306.543 338.369 310.925 329.619 318.66 323.737C322.66 320.723 327.306 318.681 332.232 317.774C338.75 316.565 350.624 316.95 357.764 316.96L398.742 317.076C422.053 317.195 445.631 318.93 451.21 289.426C454.701 270.967 440.574 253.502 421.891 252.373C406.687 251.454 391.54 252.176 376.322 251.952C364.092 252.278 342.083 251.104 330.854 252.306C303.812 254.678 281.014 266.245 263.532 287.037C246.701 306.912 238.504 332.685 240.762 358.631C243.078 384.002 255.319 407.432 274.823 423.824C291.974 438.061 316.838 447.658 339.126 445.811C364.013 443.748 374.55 416.102 361.016 396.004ZM311.813 515.265L361.548 515.197C379.473 515.171 395.747 516.164 413.183 510.829C453.083 498.622 481.57 460.024 481.361 418.224C481.125 392.379 470.731 367.665 452.424 349.422C435.591 332.882 411.43 321.322 387.6 321.573C385.34 321.614 383.08 321.718 380.825 321.882C371.729 324.102 366.201 326.695 360.946 334.903C351.804 349.18 356.006 371.938 371.353 380.182C383.495 386.704 396.898 384.323 406.977 395.549C416.688 406.365 417.888 422.67 411.166 435.388C399.427 455.241 374.932 449.929 355.639 450.364C344.805 450.608 333.431 450.646 322.579 450.381C305.399 449.96 287.213 447.995 276.941 465.474C272.297 473.33 271.006 482.723 273.359 491.54C278.548 510.619 294.163 515.555 311.813 515.265Z"/>
4
- <path fill="#2F5BFF" d="M448.796 188.638C449.42 188.611 450.045 188.592 450.669 188.582C501.868 187.651 540.677 225.719 540.624 276.894C540.573 326.288 540.603 375.735 540.626 425.131L540.658 470.482C540.658 483.828 541.256 499.153 538.461 512.06C534.944 527.675 527.115 541.989 515.866 553.376C483.521 586.36 441.966 579.367 399.496 579.353L274.688 579.398C260.178 579.335 249.077 578.339 235.594 572.498C202.135 558.003 183.093 528.095 182.812 492.132L182.84 340.893L182.764 294.415C182.748 282.346 182.082 268.448 184.458 256.699C190.703 226.338 217.027 197.513 247.917 191.277C268.652 187.091 297.062 188.828 318.736 188.767L448.796 188.638ZM361.016 396.004C344.007 374.629 323.798 388.326 309.62 366.449C306.112 360.947 304.63 354.395 305.429 347.919C306.543 338.369 310.925 329.619 318.66 323.737C322.66 320.723 327.306 318.681 332.232 317.774C338.75 316.565 350.624 316.95 357.764 316.96L398.742 317.076C422.053 317.195 445.631 318.93 451.21 289.426C454.701 270.967 440.574 253.502 421.891 252.373C406.687 251.454 391.54 252.176 376.322 251.952C364.092 252.278 342.083 251.104 330.854 252.306C303.812 254.678 281.014 266.245 263.532 287.037C246.701 306.912 238.504 332.685 240.762 358.631C243.078 384.002 255.319 407.432 274.823 423.824C291.974 438.061 316.838 447.658 339.126 445.811C364.013 443.748 374.55 416.102 361.016 396.004ZM311.813 515.265L361.548 515.197C379.473 515.171 395.747 516.164 413.183 510.829C453.083 498.622 481.57 460.024 481.361 418.224C481.125 392.379 470.731 367.665 452.424 349.422C435.591 332.882 411.43 321.322 387.6 321.573C385.34 321.614 383.08 321.718 380.825 321.882C371.729 324.102 366.201 326.695 360.946 334.903C351.804 349.18 356.006 371.938 371.353 380.182C383.495 386.704 396.898 384.323 406.977 395.549C416.688 406.365 417.888 422.67 411.166 435.388C399.427 455.241 374.932 449.929 355.639 450.364C344.805 450.608 333.431 450.646 322.579 450.381C305.399 449.96 287.213 447.995 276.941 465.474C272.297 473.33 271.006 482.723 273.359 491.54C278.548 510.619 294.163 515.555 311.813 515.265Z"/>
3
+ <path fill="#231527" d="M361.016 396.004C344.007 374.629 323.798 388.326 309.62 366.449C306.112 360.947 304.63 354.395 305.429 347.919C306.543 338.369 310.925 329.619 318.66 323.737C322.66 320.723 327.306 318.681 332.232 317.774C338.75 316.565 350.624 316.95 357.764 316.96L398.742 317.076C422.053 317.195 445.631 318.93 451.21 289.426C454.701 270.967 440.574 253.502 421.891 252.373C406.687 251.454 391.54 252.176 376.322 251.952C364.092 252.278 342.083 251.104 330.854 252.306C303.812 254.678 281.014 266.245 263.532 287.037C246.701 306.912 238.504 332.685 240.762 358.631C243.078 384.002 255.319 407.432 274.823 423.824C291.974 438.061 316.838 447.658 339.126 445.811C364.013 443.748 374.55 416.102 361.016 396.004ZM311.813 515.265L361.548 515.197C379.473 515.171 395.747 516.164 413.183 510.829C453.083 498.622 481.57 460.024 481.361 418.224C481.125 392.379 470.731 367.665 452.424 349.422C435.591 332.882 411.43 321.322 387.6 321.573C385.34 321.614 383.08 321.718 380.825 321.882C371.729 324.102 366.201 326.695 360.946 334.903C351.804 349.18 356.006 371.938 371.353 380.182C383.495 386.704 396.898 384.323 406.977 395.549C416.688 406.365 417.888 422.67 411.166 435.388C399.427 455.241 374.932 449.929 355.639 450.364C344.805 450.608 333.431 450.646 322.579 450.381C305.399 449.96 287.213 447.995 276.941 465.474C272.297 473.33 271.006 482.723 273.359 491.54C278.548 510.619 294.163 515.555 311.813 515.265Z"/>
4
+ <path fill="#E9F26E" d="M448.796 188.638C449.42 188.611 450.045 188.592 450.669 188.582C501.868 187.651 540.677 225.719 540.624 276.894C540.573 326.288 540.603 375.735 540.626 425.131L540.658 470.482C540.658 483.828 541.256 499.153 538.461 512.06C534.944 527.675 527.115 541.989 515.866 553.376C483.521 586.36 441.966 579.367 399.496 579.353L274.688 579.398C260.178 579.335 249.077 578.339 235.594 572.498C202.135 558.003 183.093 528.095 182.812 492.132L182.84 340.893L182.764 294.415C182.748 282.346 182.082 268.448 184.458 256.699C190.703 226.338 217.027 197.513 247.917 191.277C268.652 187.091 297.062 188.828 318.736 188.767L448.796 188.638ZM361.016 396.004C344.007 374.629 323.798 388.326 309.62 366.449C306.112 360.947 304.63 354.395 305.429 347.919C306.543 338.369 310.925 329.619 318.66 323.737C322.66 320.723 327.306 318.681 332.232 317.774C338.75 316.565 350.624 316.95 357.764 316.96L398.742 317.076C422.053 317.195 445.631 318.93 451.21 289.426C454.701 270.967 440.574 253.502 421.891 252.373C406.687 251.454 391.54 252.176 376.322 251.952C364.092 252.278 342.083 251.104 330.854 252.306C303.812 254.678 281.014 266.245 263.532 287.037C246.701 306.912 238.504 332.685 240.762 358.631C243.078 384.002 255.319 407.432 274.823 423.824C291.974 438.061 316.838 447.658 339.126 445.811C364.013 443.748 374.55 416.102 361.016 396.004ZM311.813 515.265L361.548 515.197C379.473 515.171 395.747 516.164 413.183 510.829C453.083 498.622 481.57 460.024 481.361 418.224C481.125 392.379 470.731 367.665 452.424 349.422C435.591 332.882 411.43 321.322 387.6 321.573C385.34 321.614 383.08 321.718 380.825 321.882C371.729 324.102 366.201 326.695 360.946 334.903C351.804 349.18 356.006 371.938 371.353 380.182C383.495 386.704 396.898 384.323 406.977 395.549C416.688 406.365 417.888 422.67 411.166 435.388C399.427 455.241 374.932 449.929 355.639 450.364C344.805 450.608 333.431 450.646 322.579 450.381C305.399 449.96 287.213 447.995 276.941 465.474C272.297 473.33 271.006 482.723 273.359 491.54C278.548 510.619 294.163 515.555 311.813 515.265Z"/>
5
5
  </svg>
@@ -13,76 +13,80 @@
13
13
  <link rel="apple-touch-icon" href="./apple-touch-icon.png" />
14
14
  <!-- Applies the saved or OS theme before first paint (no flash). External: the CSP forbids inline scripts. -->
15
15
  <script src="./theme-init.js"></script>
16
+ <!-- Themes declared by extensions (shapio.config): render-blocking, so they apply on first paint too. The
17
+ API serves it (empty without extension themes); `vite-ignore` keeps Vite from bundling it. -->
18
+ <link rel="stylesheet" href="../api/admin/extensions/themes.css" />
16
19
  <script type="importmap">{"imports":{"react":"./assets/shared-react-KADNSNpb.js","react/jsx-runtime":"./assets/shared-react-jsx-runtime-CU_Fm1m8.js","react-dom":"./assets/shared-react-dom-BpneAejY.js","react-dom/client":"./assets/shared-react-dom-client-CnpZTXxo.js","@shapio/editor-sdk":"./assets/shared-shapio-editor-sdk-9ANIbEN0.js"}}</script>
17
- <script type="module" crossorigin src="./assets/index-BSzXA60W.js"></script>
20
+ <script type="module" crossorigin src="./assets/index-C6FrF34G.js"></script>
18
21
  <link rel="modulepreload" crossorigin href="./assets/rolldown-runtime-Dd_uD5pT.js">
19
22
  <link rel="modulepreload" crossorigin href="./assets/react-CQOZoUwg.js">
20
23
  <link rel="modulepreload" crossorigin href="./assets/react-dom-pEVw9mjF.js">
21
24
  <link rel="modulepreload" crossorigin href="./assets/client-C8vMCv-p.js">
22
25
  <link rel="modulepreload" crossorigin href="./assets/jsx-runtime-DREnUpxT.js">
23
- <link rel="modulepreload" crossorigin href="./assets/cn-BQ3voEft.js">
24
- <link rel="modulepreload" crossorigin href="./assets/auth-pcS9CCXu.js">
25
- <link rel="modulepreload" crossorigin href="./assets/skeleton-C3QLIh7W.js">
26
- <link rel="modulepreload" crossorigin href="./assets/badge-DD0mE96i.js">
26
+ <link rel="modulepreload" crossorigin href="./assets/cn-CL1YHRrS.js">
27
+ <link rel="modulepreload" crossorigin href="./assets/auth-YVfK3SxF.js">
28
+ <link rel="modulepreload" crossorigin href="./assets/skeleton-B5GJgv7y.js">
29
+ <link rel="modulepreload" crossorigin href="./assets/badge-C5oMRtwJ.js">
27
30
  <link rel="modulepreload" crossorigin href="./assets/root-CDpNo7ef.js">
28
- <link rel="modulepreload" crossorigin href="./assets/Match-DdxTHHM4.js">
29
- <link rel="modulepreload" crossorigin href="./assets/RowTitle--uFCpx8n.js">
30
- <link rel="modulepreload" crossorigin href="./assets/table-CZYtdoHn.js">
31
- <link rel="modulepreload" crossorigin href="./assets/coerce-OsqQRj19.js">
32
- <link rel="modulepreload" crossorigin href="./assets/searchSchema-CvOhn4FV.js">
33
- <link rel="modulepreload" crossorigin href="./assets/InfoHint-GJLRVumb.js">
34
- <link rel="modulepreload" crossorigin href="./assets/ConfirmDialog-B9nWhIIz.js">
31
+ <link rel="modulepreload" crossorigin href="./assets/Match-Zu4pwfCC.js">
32
+ <link rel="modulepreload" crossorigin href="./assets/RowTitle-BdDgA5Lb.js">
33
+ <link rel="modulepreload" crossorigin href="./assets/src-B2qcqjNM.js">
34
+ <link rel="modulepreload" crossorigin href="./assets/theme-C0Tv6M38.js">
35
+ <link rel="modulepreload" crossorigin href="./assets/table-DQ5ILlSh.js">
36
+ <link rel="modulepreload" crossorigin href="./assets/coerce-B4MJTGg1.js">
37
+ <link rel="modulepreload" crossorigin href="./assets/useResolvedScheme-D0moXjaP.js">
38
+ <link rel="modulepreload" crossorigin href="./assets/InfoHint-DWn9kLf1.js">
39
+ <link rel="modulepreload" crossorigin href="./assets/ConfirmDialog-BfpN2MQx.js">
35
40
  <link rel="modulepreload" crossorigin href="./assets/settle-LRKtTN_e.js">
36
- <link rel="modulepreload" crossorigin href="./assets/HintedLabel-CvC46uy_.js">
37
- <link rel="modulepreload" crossorigin href="./assets/zod-BHAd1wTC.js">
38
- <link rel="modulepreload" crossorigin href="./assets/FormCheckboxGroup-uIC2XQIL.js">
39
- <link rel="modulepreload" crossorigin href="./assets/useSchemaScopeAccess-DUBeS9kU.js">
40
- <link rel="modulepreload" crossorigin href="./assets/calendar-clock-DEwACe0M.js">
41
- <link rel="modulepreload" crossorigin href="./assets/clock-DQvkffqQ.js">
42
- <link rel="modulepreload" crossorigin href="./assets/file-text-DxXAmmxL.js">
43
- <link rel="modulepreload" crossorigin href="./assets/image-CsH8dZve.js">
44
- <link rel="modulepreload" crossorigin href="./assets/link-bhHmG4Tc.js">
45
- <link rel="modulepreload" crossorigin href="./assets/list-DRtRdjBC.js">
46
- <link rel="modulepreload" crossorigin href="./assets/constants-SrImR6C3.js">
47
- <link rel="modulepreload" crossorigin href="./assets/boxes-DcK-kaSa.js">
48
- <link rel="modulepreload" crossorigin href="./assets/chevron-left-BsQYDUEC.js">
49
- <link rel="modulepreload" crossorigin href="./assets/CursorPager-BnxmTk47.js">
50
- <link rel="modulepreload" crossorigin href="./assets/preload-helper-DAbCfXID.js">
51
- <link rel="modulepreload" crossorigin href="./assets/circle-check-Dq1owihe.js">
52
- <link rel="modulepreload" crossorigin href="./assets/ellipsis-NK0pWgqU.js">
53
- <link rel="modulepreload" crossorigin href="./assets/schema-B4smPFcR.js">
41
+ <link rel="modulepreload" crossorigin href="./assets/HintedLabel-BDV81kIT.js">
42
+ <link rel="modulepreload" crossorigin href="./assets/zod-CS0EvbwG.js">
43
+ <link rel="modulepreload" crossorigin href="./assets/FormCheckboxGroup-8ObPh9cH.js">
44
+ <link rel="modulepreload" crossorigin href="./assets/useSchemaScopeAccess-WQKmj8_3.js">
45
+ <link rel="modulepreload" crossorigin href="./assets/calendar-clock-VENf4s1R.js">
46
+ <link rel="modulepreload" crossorigin href="./assets/clock-DrSTMGjp.js">
47
+ <link rel="modulepreload" crossorigin href="./assets/search-CcJQqtRw.js">
48
+ <link rel="modulepreload" crossorigin href="./assets/image-CXZXXH58.js">
49
+ <link rel="modulepreload" crossorigin href="./assets/layers-mGfmMsKE.js">
50
+ <link rel="modulepreload" crossorigin href="./assets/link-b2pFaN-A.js">
51
+ <link rel="modulepreload" crossorigin href="./assets/dropdown-menu-DPzDthV7.js">
52
+ <link rel="modulepreload" crossorigin href="./assets/constants-DT4WPUvz.js">
53
+ <link rel="modulepreload" crossorigin href="./assets/boxes-DRvd25_u.js">
54
+ <link rel="modulepreload" crossorigin href="./assets/chevron-left-D2DnQyeV.js">
55
+ <link rel="modulepreload" crossorigin href="./assets/CursorPager-DkZs6rPg.js">
56
+ <link rel="modulepreload" crossorigin href="./assets/preload-helper-CJNJ4S3k.js">
57
+ <link rel="modulepreload" crossorigin href="./assets/circle-check-jmRQz1Jq.js">
58
+ <link rel="modulepreload" crossorigin href="./assets/ellipsis-DEHUaCkn.js">
59
+ <link rel="modulepreload" crossorigin href="./assets/schema-B7L9OJrX.js">
54
60
  <link rel="modulepreload" crossorigin href="./assets/modelPermissions-DZ1lWfQZ.js">
55
- <link rel="modulepreload" crossorigin href="./assets/contentCounts-Ch3uMXVU.js">
56
- <link rel="modulepreload" crossorigin href="./assets/usePlaces-CY6f2DmI.js">
57
- <link rel="modulepreload" crossorigin href="./assets/globe-CuElSilX.js">
58
- <link rel="modulepreload" crossorigin href="./assets/inbox-3iAHL3pC.js">
59
- <link rel="modulepreload" crossorigin href="./assets/key-round-B17HiT3K.js">
60
- <link rel="modulepreload" crossorigin href="./assets/sparkles-BW4CbD6W.js">
61
- <link rel="modulepreload" crossorigin href="./assets/sections-DiySZZHb.js">
62
- <link rel="modulepreload" crossorigin href="./assets/plus-BN_iSsnp.js">
63
- <link rel="modulepreload" crossorigin href="./assets/scroll-text-UbyzpWh-.js">
64
- <link rel="modulepreload" crossorigin href="./assets/search-_YlNpPvU.js">
65
- <link rel="modulepreload" crossorigin href="./assets/send-BqECHYi6.js">
66
- <link rel="modulepreload" crossorigin href="./assets/UserAvatar-BocvNVL-.js">
61
+ <link rel="modulepreload" crossorigin href="./assets/contentCounts-DzIvdeXR.js">
62
+ <link rel="modulepreload" crossorigin href="./assets/usePlaces-6iTN15Xy.js">
63
+ <link rel="modulepreload" crossorigin href="./assets/globe-TooNSp9V.js">
64
+ <link rel="modulepreload" crossorigin href="./assets/inbox-B8c9Kj_z.js">
65
+ <link rel="modulepreload" crossorigin href="./assets/key-round-CFJ61iCd.js">
66
+ <link rel="modulepreload" crossorigin href="./assets/sparkles-D88gf3vX.js">
67
+ <link rel="modulepreload" crossorigin href="./assets/sections-iNOzo7pL.js">
68
+ <link rel="modulepreload" crossorigin href="./assets/plus-BDZHQBlU.js">
69
+ <link rel="modulepreload" crossorigin href="./assets/scroll-text-BLThe4Ki.js">
70
+ <link rel="modulepreload" crossorigin href="./assets/send-CbP0Rc9_.js">
71
+ <link rel="modulepreload" crossorigin href="./assets/UserAvatar--pMv2i3c.js">
67
72
  <link rel="modulepreload" crossorigin href="./assets/constants-DUBUgzpU.js">
68
73
  <link rel="modulepreload" crossorigin href="./assets/constants-DCtq_UOe.js">
69
- <link rel="modulepreload" crossorigin href="./assets/searchSchemas-BxRnxenn.js">
70
- <link rel="modulepreload" crossorigin href="./assets/users-BOn2ohJQ.js">
71
- <link rel="modulepreload" crossorigin href="./assets/sections-Bb3Q4bcY.js">
72
- <link rel="modulepreload" crossorigin href="./assets/dropdown-menu-gmP2Rp3n.js">
73
- <link rel="modulepreload" crossorigin href="./assets/tooltip-DwqM3opE.js">
74
- <link rel="modulepreload" crossorigin href="./assets/TextLink-D15oyXlc.js">
74
+ <link rel="modulepreload" crossorigin href="./assets/searchSchemas-BdwAFaVO.js">
75
+ <link rel="modulepreload" crossorigin href="./assets/users-B01EH47o.js">
76
+ <link rel="modulepreload" crossorigin href="./assets/sections-TIN_Nl1b.js">
77
+ <link rel="modulepreload" crossorigin href="./assets/tooltip-BK5FqmJ0.js">
78
+ <link rel="modulepreload" crossorigin href="./assets/TextLink-DIqr5zkJ.js">
75
79
  <link rel="modulepreload" crossorigin href="./assets/sites-C6_THCVK.js">
76
- <link rel="modulepreload" crossorigin href="./assets/store-BphwUzV5.js">
77
- <link rel="modulepreload" crossorigin href="./assets/usePaletteItems-62-TZhy7.js">
78
- <link rel="modulepreload" crossorigin href="./assets/SharedGlyph-Cqkx30tn.js">
79
- <link rel="modulepreload" crossorigin href="./assets/QueryView-D6aZQJRN.js">
80
+ <link rel="modulepreload" crossorigin href="./assets/store-jUWyOXDG.js">
81
+ <link rel="modulepreload" crossorigin href="./assets/usePaletteItems-neKzBlys.js">
82
+ <link rel="modulepreload" crossorigin href="./assets/SharedGlyph-y6ZsA_gz.js">
83
+ <link rel="modulepreload" crossorigin href="./assets/QueryView-Cu-KPtQI.js">
80
84
  <link rel="modulepreload" crossorigin href="./assets/useDebouncedValue-Dqs3wwhn.js">
81
85
  <link rel="modulepreload" crossorigin href="./assets/useSearchInput-1fDoEtXe.js">
82
- <link rel="modulepreload" crossorigin href="./assets/radio-group-DHIxK-IU.js">
83
- <link rel="modulepreload" crossorigin href="./assets/FormRadioGroup-hd95vPOu.js">
84
- <link rel="modulepreload" crossorigin href="./assets/useDiscardGuard-34ynGJIk.js">
85
- <link rel="stylesheet" crossorigin href="./assets/index-BLYOgCKc.css">
86
+ <link rel="modulepreload" crossorigin href="./assets/radio-group-DSK5LPaM.js">
87
+ <link rel="modulepreload" crossorigin href="./assets/FormRadioGroup-CAB3qzVS.js">
88
+ <link rel="modulepreload" crossorigin href="./assets/useDiscardGuard-CGFgC3xY.js">
89
+ <link rel="stylesheet" crossorigin href="./assets/index-Bbb2ER3l.css">
86
90
  </head>
87
91
  <body>
88
92
  <div id="root"></div>
@@ -1,18 +1,52 @@
1
1
  /* global window, document */
2
- // Runs before first paint: applies the theme saved by the admin's theme store (key and shape must match
3
- // src/stores/theme.ts), falling back to the OS preference. Storage can be unavailable (private mode).
2
+ // Runs before first paint: applies the look saved by the admin's theme store (key, shape and migration must
3
+ // match src/stores/theme.ts; the built-in variants repeat src/constants/themes.ts; the resolution repeats
4
+ // src/helpers/theme.ts resolveScheme; src/test/themeInit.test.ts keeps them in step). Sets `data-theme` and
5
+ // the `dark` class on <html>. Nothing follows the operating system. Storage can be unavailable (private
6
+ // mode): the default is Shapio.
4
7
  (function () {
5
- var preference = 'system';
8
+ var BUILT_IN = {
9
+ shapio: ['dark'],
10
+ classic: ['dark'],
11
+ 'murdered-out': ['dark'],
12
+ forest: ['dark'],
13
+ snowed: ['light'],
14
+ butter: ['light'],
15
+ };
16
+ var theme = 'shapio';
17
+ var appearance = 'dark';
18
+ var variants = ['dark'];
6
19
  try {
7
20
  var saved = JSON.parse(window.localStorage.getItem('shapio.theme') || 'null');
8
- if (saved && saved.state && typeof saved.state.preference === 'string') {
9
- preference = saved.state.preference;
21
+ var state = saved && saved.state;
22
+ if (state && typeof saved.version === 'number' && saved.version >= 2) {
23
+ if (typeof state.theme === 'string' && /^[a-z][a-z0-9-]{0,40}$/.test(state.theme)) {
24
+ theme = state.theme;
25
+ }
26
+ appearance = state.appearance;
27
+ if (Array.isArray(state.variants)) {
28
+ var cached = ['light', 'dark'].filter(function (variant) {
29
+ return state.variants.indexOf(variant) !== -1;
30
+ });
31
+ if (cached.length > 0) {
32
+ variants = cached;
33
+ }
34
+ }
35
+ } else if (state) {
36
+ // Version 1 (before themes): the original palette, now the Cobalt look.
37
+ theme = 'classic';
10
38
  }
11
39
  } catch {
12
- preference = 'system';
40
+ theme = 'shapio';
41
+ appearance = 'dark';
13
42
  }
14
- var dark =
15
- preference === 'dark' ||
16
- (preference === 'system' && window.matchMedia('(prefers-color-scheme: dark)').matches);
17
- document.documentElement.classList.toggle('dark', dark);
43
+ if (Object.prototype.hasOwnProperty.call(BUILT_IN, theme)) {
44
+ variants = BUILT_IN[theme];
45
+ }
46
+ if (appearance !== 'light' && appearance !== 'dark') {
47
+ appearance = variants[0];
48
+ }
49
+ var scheme = variants.indexOf(appearance) !== -1 ? appearance : variants[0];
50
+ document.documentElement.setAttribute('data-theme', theme);
51
+ document.documentElement.classList.toggle('dark', scheme === 'dark');
18
52
  })();
package/dist/cli.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { $ as validateSchema, A as update, B as hashDefinition, C as BEFORE_EVENTS, D as listForAssets, E as buildEditorManifest, F as RESERVED_FIELD_API_KEYS, G as parseLockFile, H as lockEntriesForSite, I as RESERVED_TYPE_NAMES, J as serializeDefinition, K as schemaFilePath, L as SCHEMA_KIND_DIRECTORIES, M as describeError, O as listLiveByDriver, P as RESERVED_DEFINITION_API_KEYS, Q as upgradeLockFile, R as SITES_DIRECTORY, S as AFTER_EVENTS, T as EXTENSION_ROUTE_ROOT, U as mergePulledLock, V as lockCoversSite, W as parseDefinition, X as suggestPlural, Y as serializeLockFile, Z as toTypeName, _ as createLogger, a as loadConfig, at as createDb, b as SITE_KEY_PATTERN, c as getPendingMigrations, d as createMediaStorage, et as withSiteCovered, f as createSite, g as generateToken, h as SYSTEM_CLI_ACTOR, i as assertDatabaseReachable, it as validateRichText, j as STORAGE_DRIVERS, k as lockById, l as migrateToLatest, m as createAdminDirect, n as startServer, nt as SAFE_LINK_PATTERN, o as loadEnvFileIfPresent, ot as sqliteDriverOf, p as listAllSites, q as scopeDirectory, r as copyObjectVerified, rt as createStableId, t as startDedicatedWorker, tt as RICHTEXT_FORMAT, u as SHAPIO_VERSION, v as createUrlBuilder, w as EXTENSION_JOB_PREFIX, x as loadProjectConfig, y as loopbackUrl, z as foldApiKey } from "./worker-BLXy8aRW.js";
2
+ import { $ as toTypeName, A as update, B as checkThemeContrast, C as BEFORE_EVENTS, D as listForAssets, E as buildEditorManifest, F as RESERVED_FIELD_API_KEYS, G as mergePulledLock, H as hashDefinition, I as RESERVED_TYPE_NAMES, J as schemaFilePath, K as parseDefinition, L as SCHEMA_KIND_DIRECTORIES, M as describeError, O as listLiveByDriver, P as RESERVED_DEFINITION_API_KEYS, Q as suggestPlural, R as SITES_DIRECTORY, S as AFTER_EVENTS, T as EXTENSION_ROUTE_ROOT, U as lockCoversSite, V as foldApiKey, W as lockEntriesForSite, X as serializeDefinition, Y as scopeDirectory, Z as serializeLockFile, _ as createLogger, a as loadConfig, at as createStableId, b as SITE_KEY_PATTERN, c as getPendingMigrations, ct as sqliteDriverOf, d as createMediaStorage, et as upgradeLockFile, f as createSite, g as generateToken, h as SYSTEM_CLI_ACTOR, i as assertDatabaseReachable, it as SAFE_LINK_PATTERN, j as STORAGE_DRIVERS, k as lockById, l as migrateToLatest, m as createAdminDirect, n as startServer, nt as withSiteCovered, o as loadEnvFileIfPresent, ot as validateRichText, p as listAllSites, q as parseLockFile, r as copyObjectVerified, rt as RICHTEXT_FORMAT, st as createDb, t as startDedicatedWorker, tt as validateSchema, u as SHAPIO_VERSION, v as createUrlBuilder, w as EXTENSION_JOB_PREFIX, x as loadProjectConfig, y as loopbackUrl, z as THEME_VARIANTS } from "./worker-i1rY2TIZ.js";
3
3
  import { createDecipheriv, createHash, scryptSync } from "node:crypto";
4
4
  import { createReadStream, createWriteStream, existsSync, openAsBlob } from "node:fs";
5
5
  import { basename, dirname, extname, isAbsolute, join, posix, relative, resolve } from "node:path";
@@ -17,7 +17,7 @@ import { parseFragment } from "parse5";
17
17
  import { marked } from "marked";
18
18
  import { extract } from "tar";
19
19
  import { SaxesParser } from "saxes";
20
- //#region ../../packages/client/dist/errors-BXMW0adL.js
20
+ //#region ../../packages/client/dist/errors-DAG8eK8c.js
21
21
  /** Every admin route the client calls (packages B, D, F and G, `apps/api/src/routes/admin/**`). */
22
22
  const ADMIN_PATHS = {
23
23
  setup: "/api/admin/setup",
@@ -54,6 +54,7 @@ const ADMIN_PATHS = {
54
54
  contentHealth: "/api/admin/content-health",
55
55
  presence: "/api/admin/presence",
56
56
  editorManifest: "/api/admin/extensions/editors",
57
+ extensionThemes: "/api/admin/extensions/themes",
57
58
  jobs: "/api/admin/jobs",
58
59
  schedules: "/api/admin/publishing/schedules",
59
60
  changeSets: "/api/admin/change-sets",
@@ -355,9 +356,12 @@ const createContentApi = (request) => ({
355
356
  body: { expectedVersion }
356
357
  })
357
358
  },
358
- extensions: {
359
- /** Custom field editors the project installed (`shapio.config` + `extensions/editors/*.js`). */
360
- editors: () => request(ADMIN_PATHS.editorManifest) }
359
+ extensions: {
360
+ /** Custom field editors the project installed (`shapio.config` + `extensions/editors/*.js`). */
361
+ editors: () => request(ADMIN_PATHS.editorManifest),
362
+ /** Admin colour themes the project declares (`shapio.config` `themes`). Public: no session needed. */
363
+ themes: () => request(ADMIN_PATHS.extensionThemes)
364
+ }
361
365
  });
362
366
  const entryPath = (base, modelKey, id) => withId(withId(base, modelKey), id);
363
367
  /** The entry document's endpoints: pre-flight, content health (the Inbox), presence and counts. */
@@ -776,12 +780,16 @@ const createAppAuthApi = (request, baseUrl) => ({
776
780
  });
777
781
  const DELIVERY_PATH = "/api/content";
778
782
  const routePath = (routeKey) => `${DELIVERY_PATH}/${encodeURIComponent(routeKey)}`;
779
- /** The content query string plus `snapshot`, which only delivery reads take. */
780
- const deliveryQueryString = ({ snapshot, ...query }) => {
783
+ /** The content query string plus `snapshot`, `richText` and `seo`, which only delivery reads take. */
784
+ const deliveryQueryString = ({ snapshot, richText, seo, ...query }) => {
785
+ const extra = [
786
+ ...snapshot === void 0 ? [] : [`snapshot=${encodeURIComponent(String(snapshot))}`],
787
+ ...richText === void 0 ? [] : [`richText=${encodeURIComponent(richText)}`],
788
+ ...seo === void 0 ? [] : [`seo=${encodeURIComponent(seo)}`]
789
+ ];
781
790
  const base = toContentQueryString(query);
782
- if (snapshot === void 0) return base;
783
- const pinned = `snapshot=${encodeURIComponent(String(snapshot))}`;
784
- return base ? `${base}&${pinned}` : `?${pinned}`;
791
+ if (extra.length === 0) return base;
792
+ return base ? `${base}&${extra.join("&")}` : `?${extra.join("&")}`;
785
793
  };
786
794
  /**
787
795
  * Published content, typed by the caller (`delivery.list<Article>('articles', { locale: 'fr', snapshot })`).
@@ -792,6 +800,9 @@ const createDeliveryApi = (request) => ({
792
800
  singleton: (apiKey, query = {}) => request(`${routePath(apiKey)}${deliveryQueryString(query)}`),
793
801
  get: (routeKey, id, query = {}) => request(`${routePath(routeKey)}/${encodeURIComponent(id)}${deliveryQueryString(query)}`)
794
802
  });
803
+ const DELIVERY_SITE_PATH = "/api/site";
804
+ /** The request's site as delivery sees it (key, name, SEO defaults), with the client's token and site. */
805
+ const createSiteApi = (request) => ({ get: () => request(DELIVERY_SITE_PATH) });
795
806
  const SNAPSHOT_PATHS = {
796
807
  current: "/api/snapshots/current",
797
808
  changes: "/api/snapshots/changes"
@@ -826,13 +837,14 @@ const createSnapshotsApi = (request) => {
826
837
  };
827
838
  /** Delivery reads name their site with `?site=`; everything else with the `Shapio-Site` header. */
828
839
  const SITE_QUERY_PARAMETER = "site";
829
- /** Delivery reads (content and snapshots): a GET there carries the site in its URL. */
840
+ /** Delivery reads (content, snapshots, the site): a GET there carries the site in its URL. */
830
841
  const DELIVERY_READ_PREFIXES = [
831
842
  `${DELIVERY_PATH}/`,
832
843
  `${DELIVERY_PATH}?`,
833
- "/api/snapshots/"
844
+ "/api/snapshots/",
845
+ `${DELIVERY_SITE_PATH}?`
834
846
  ];
835
- const isDeliveryRead = (method, path) => method === "GET" && (path === "/api/content" || Object.values(SNAPSHOT_PATHS).some((snapshotPath) => path === snapshotPath) || DELIVERY_READ_PREFIXES.some((prefix) => path.startsWith(prefix)));
847
+ const isDeliveryRead = (method, path) => method === "GET" && (path === "/api/content" || path === "/api/site" || Object.values(SNAPSHOT_PATHS).some((snapshotPath) => path === snapshotPath) || DELIVERY_READ_PREFIXES.some((prefix) => path.startsWith(prefix)));
836
848
  const namesSite = (path) => {
837
849
  const index = path.indexOf("?");
838
850
  return index !== -1 && new URLSearchParams(path.slice(index + 1)).has("site");
@@ -915,6 +927,8 @@ const createClient = ({ baseUrl, token, fetch = globalThis.fetch, credentials, h
915
927
  },
916
928
  /** Published content (the delivery API), typed by the caller. */
917
929
  delivery: createDeliveryApi(request),
930
+ /** The site as delivery sees it: key, name and SEO defaults (`GET /api/site`). */
931
+ site: createSiteApi(request),
918
932
  admin: createAdminApi(request),
919
933
  /** Publication snapshots and the diff between two (incremental builds). */
920
934
  snapshots: createSnapshotsApi(request),
@@ -4814,6 +4828,22 @@ const backupDatabase = async (db, target) => {
4814
4828
  return path;
4815
4829
  };
4816
4830
  //#endregion
4831
+ //#region src/extensions/themeContrast.ts
4832
+ const HEX = /^#[0-9a-fA-F]{6}$/;
4833
+ /**
4834
+ * WCAG AA warnings for extension themes (`shapio extensions check`): the pairs the built-in themes are held
4835
+ * to. Warnings, not errors: a project may knowingly ship a theme that fails. Only `#rrggbb` values can be
4836
+ * measured; a variant with other values is reported as not fully checked.
4837
+ */
4838
+ const themeContrastWarnings = (themes) => themes.flatMap((theme) => THEME_VARIANTS.flatMap((variant) => {
4839
+ const tokens = theme[variant];
4840
+ if (!tokens) return [];
4841
+ const values = Object.fromEntries(Object.entries(tokens).filter((entry) => typeof entry[1] === "string"));
4842
+ const failures = checkThemeContrast(values, variant).filter(({ ratio, required }) => ratio !== void 0 && ratio < required).map(({ foreground, background, ratio, required }) => `${theme.key} (${variant}): --${foreground} on --${background} is ${(ratio ?? 0).toFixed(2)}:1, needs ${required}:1`);
4843
+ const unmeasured = Object.values(values).some((value) => !HEX.test(value)) ? [`${theme.key} (${variant}): only #rrggbb values are checked for contrast`] : [];
4844
+ return [...failures, ...unmeasured];
4845
+ }));
4846
+ //#endregion
4817
4847
  //#region src/extensions/check.ts
4818
4848
  const AFTER = new Set(AFTER_EVENTS);
4819
4849
  /** Collects the editor manifest's complaints (missing files, bad names) instead of printing log lines. */
@@ -4839,6 +4869,8 @@ const checkExtensions = async (options) => {
4839
4869
  const editorProblems = [];
4840
4870
  const editors = buildEditorManifest(projectDir, config.editors ?? [], collectingLogger(editorProblems));
4841
4871
  const hooks = Object.entries(config.hooks ?? {}).flatMap(([key, modelHooks]) => [...BEFORE_EVENTS, ...AFTER_EVENTS].filter((event) => modelHooks[event]).map((event) => `${key}.${event} (${AFTER.has(event) ? "after commit, as a job" : "in the transaction"})`));
4872
+ const themes = config.themes ?? [];
4873
+ const contrastWarnings = themeContrastWarnings(themes);
4842
4874
  const section = (title, items) => `${title} (${items.length})\n${items.map((item) => ` ${item}\n`).join("")}`;
4843
4875
  const text = [
4844
4876
  `Config: ${relative(process.cwd(), loaded.file) || loaded.file}\n`,
@@ -4847,7 +4879,9 @@ const checkExtensions = async (options) => {
4847
4879
  section("Services", Object.keys(config.services ?? {})),
4848
4880
  section("Jobs", Object.keys(config.jobs ?? {}).map((name) => `${EXTENSION_JOB_PREFIX}${name}`)),
4849
4881
  section("Editors", editors.entries.map((entry) => entry.file)),
4850
- ...editorProblems.length > 0 ? [section("Problems", editorProblems)] : []
4882
+ section("Themes", themes.map((theme) => `${theme.key} (${theme.name})`)),
4883
+ ...editorProblems.length > 0 ? [section("Problems", editorProblems)] : [],
4884
+ ...contrastWarnings.length > 0 ? [section("Warnings", contrastWarnings)] : []
4851
4885
  ].join("");
4852
4886
  return {
4853
4887
  ok: editorProblems.length === 0,