@shapio/cms 0.4.1 → 0.5.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 (260) hide show
  1. package/dist/admin/assets/{AssetTile-CoNClUYS.js → AssetTile-zOf0K0nN.js} +2 -2
  2. package/dist/admin/assets/{AssetTile-CoNClUYS.js.map → AssetTile-zOf0K0nN.js.map} +1 -1
  3. package/dist/admin/assets/{AssistError-BoejyShH.js → AssistError-D_vY2CO0.js} +2 -2
  4. package/dist/admin/assets/{AssistError-BoejyShH.js.map → AssistError-D_vY2CO0.js.map} +1 -1
  5. package/dist/admin/assets/{BlockMenuItems-B2Jugisa.js → BlockMenuItems-BEnSpClj.js} +2 -2
  6. package/dist/admin/assets/{BlockMenuItems-B2Jugisa.js.map → BlockMenuItems-BEnSpClj.js.map} +1 -1
  7. package/dist/admin/assets/{Body-D3GwLGaB.js → Body-B_IVN5wp.js} +2 -2
  8. package/dist/admin/assets/{Body-D3GwLGaB.js.map → Body-B_IVN5wp.js.map} +1 -1
  9. package/dist/admin/assets/{Builder-CmT5-8hI.js → Builder-CnEtRudv.js} +2 -2
  10. package/dist/admin/assets/{Builder-CmT5-8hI.js.map → Builder-CnEtRudv.js.map} +1 -1
  11. package/dist/admin/assets/{ConfirmDialog-HS8Gc2t3.js → ConfirmDialog-BW-l3Whg.js} +2 -2
  12. package/dist/admin/assets/{ConfirmDialog-HS8Gc2t3.js.map → ConfirmDialog-BW-l3Whg.js.map} +1 -1
  13. package/dist/admin/assets/{CopyButton-DS-bAA23.js → CopyButton-CyoUMStc.js} +2 -2
  14. package/dist/admin/assets/{CopyButton-DS-bAA23.js.map → CopyButton-CyoUMStc.js.map} +1 -1
  15. package/dist/admin/assets/{CursorPager-C6PyD3wE.js → CursorPager-BW2Dl_hn.js} +2 -2
  16. package/dist/admin/assets/{CursorPager-C6PyD3wE.js.map → CursorPager-BW2Dl_hn.js.map} +1 -1
  17. package/dist/admin/assets/{ExternalLink-KdO72pTj.js → ExternalLink-BCI0q9ib.js} +2 -2
  18. package/dist/admin/assets/{ExternalLink-KdO72pTj.js.map → ExternalLink-BCI0q9ib.js.map} +1 -1
  19. package/dist/admin/assets/{FocalPoint-C62fRhmM.js → FocalPoint-CxicvlJO.js} +2 -2
  20. package/dist/admin/assets/{FocalPoint-C62fRhmM.js.map → FocalPoint-CxicvlJO.js.map} +1 -1
  21. package/dist/admin/assets/{Form-CLEr5Csd.js → Form-DB03drS9.js} +2 -2
  22. package/dist/admin/assets/{Form-CLEr5Csd.js.map → Form-DB03drS9.js.map} +1 -1
  23. package/dist/admin/assets/{FormCheckboxGroup-BrXY6qBg.js → FormCheckboxGroup-JP1xzReQ.js} +2 -2
  24. package/dist/admin/assets/{FormCheckboxGroup-BrXY6qBg.js.map → FormCheckboxGroup-JP1xzReQ.js.map} +1 -1
  25. package/dist/admin/assets/{FormRadioGroup-BjE1Jhar.js → FormRadioGroup-BvSC8SRm.js} +2 -2
  26. package/dist/admin/assets/{FormRadioGroup-BjE1Jhar.js.map → FormRadioGroup-BvSC8SRm.js.map} +1 -1
  27. package/dist/admin/assets/{FormSelectField-g4zrUlhv.js → FormSelectField-BDIVhZh6.js} +2 -2
  28. package/dist/admin/assets/{FormSelectField-g4zrUlhv.js.map → FormSelectField-BDIVhZh6.js.map} +1 -1
  29. package/dist/admin/assets/{FormSwitchField-gciThNGV.js → FormSwitchField-OM4F8ln4.js} +2 -2
  30. package/dist/admin/assets/{FormSwitchField-gciThNGV.js.map → FormSwitchField-OM4F8ln4.js.map} +1 -1
  31. package/dist/admin/assets/{FormTextareaField-tsS-UXym.js → FormTextareaField-Bw7EkC4H.js} +2 -2
  32. package/dist/admin/assets/{FormTextareaField-tsS-UXym.js.map → FormTextareaField-Bw7EkC4H.js.map} +1 -1
  33. package/dist/admin/assets/{HintedLabel-CVe-PIyv.js → HintedLabel-BGidukgy.js} +2 -2
  34. package/dist/admin/assets/{HintedLabel-CVe-PIyv.js.map → HintedLabel-BGidukgy.js.map} +1 -1
  35. package/dist/admin/assets/{InfoHint-DtaHU1Cg.js → InfoHint-D3uwei-E.js} +2 -2
  36. package/dist/admin/assets/{InfoHint-DtaHU1Cg.js.map → InfoHint-D3uwei-E.js.map} +1 -1
  37. package/dist/admin/assets/{InsertMenuItem-DlzaD9zr.js → InsertMenuItem-DAihGvbw.js} +2 -2
  38. package/dist/admin/assets/{InsertMenuItem-DlzaD9zr.js.map → InsertMenuItem-DAihGvbw.js.map} +1 -1
  39. package/dist/admin/assets/{LinkTabs-stM3j4aH.js → LinkTabs-DBXbfzME.js} +2 -2
  40. package/dist/admin/assets/{LinkTabs-stM3j4aH.js.map → LinkTabs-DBXbfzME.js.map} +1 -1
  41. package/dist/admin/assets/{Match-ErAxnNAY.js → Match-CgfZTzqs.js} +2 -2
  42. package/dist/admin/assets/{Match-ErAxnNAY.js.map → Match-CgfZTzqs.js.map} +1 -1
  43. package/dist/admin/assets/{Panel-ClY9b33D.js → Panel-DDky5_x9.js} +2 -2
  44. package/dist/admin/assets/{Panel-ClY9b33D.js.map → Panel-DDky5_x9.js.map} +1 -1
  45. package/dist/admin/assets/{QueryView-C630REML.js → QueryView-C2d392ly.js} +2 -2
  46. package/dist/admin/assets/{QueryView-C630REML.js.map → QueryView-C2d392ly.js.map} +1 -1
  47. package/dist/admin/assets/{RadioTile-CD4mel7U.js → RadioTile-CcP78eb_.js} +2 -2
  48. package/dist/admin/assets/{RadioTile-CD4mel7U.js.map → RadioTile-CcP78eb_.js.map} +1 -1
  49. package/dist/admin/assets/{RichTextField-CxeVX6C-.js → RichTextField-CeztaFET.js} +2 -2
  50. package/dist/admin/assets/{RichTextField-CxeVX6C-.js.map → RichTextField-CeztaFET.js.map} +1 -1
  51. package/dist/admin/assets/{RowTitle-B-7RptyN.js → RowTitle-mkKp4yfl.js} +2 -2
  52. package/dist/admin/assets/{RowTitle-B-7RptyN.js.map → RowTitle-mkKp4yfl.js.map} +1 -1
  53. package/dist/admin/assets/{SecretReveal-Dhw_dYxe.js → SecretReveal-mYCzxF96.js} +2 -2
  54. package/dist/admin/assets/{SecretReveal-Dhw_dYxe.js.map → SecretReveal-mYCzxF96.js.map} +1 -1
  55. package/dist/admin/assets/{SharedGlyph-97RaO6Bh.js → SharedGlyph-CuDT7OUU.js} +2 -2
  56. package/dist/admin/assets/{SharedGlyph-97RaO6Bh.js.map → SharedGlyph-CuDT7OUU.js.map} +1 -1
  57. package/dist/admin/assets/{StepList--0Fiqsq-.js → StepList-BDO0Q3Wc.js} +2 -2
  58. package/dist/admin/assets/{StepList--0Fiqsq-.js.map → StepList-BDO0Q3Wc.js.map} +1 -1
  59. package/dist/admin/assets/Structure-CL_0hVci.js +2 -0
  60. package/dist/admin/assets/{Structure-CoO3iah3.js.map → Structure-CL_0hVci.js.map} +1 -1
  61. package/dist/admin/assets/{SubNavLink-YjjaDN40.js → SubNavLink-C4eSybWd.js} +2 -2
  62. package/dist/admin/assets/{SubNavLink-YjjaDN40.js.map → SubNavLink-C4eSybWd.js.map} +1 -1
  63. package/dist/admin/assets/{SuggestAltButton-Dlyxoypu.js → SuggestAltButton-CxYlhwyd.js} +2 -2
  64. package/dist/admin/assets/{SuggestAltButton-Dlyxoypu.js.map → SuggestAltButton-CxYlhwyd.js.map} +1 -1
  65. package/dist/admin/assets/{TextLink-DIqr5zkJ.js → TextLink-DzNaAft6.js} +2 -2
  66. package/dist/admin/assets/{TextLink-DIqr5zkJ.js.map → TextLink-DzNaAft6.js.map} +1 -1
  67. package/dist/admin/assets/{Thumbnail-BUYOr4XJ.js → Thumbnail-DSPArZ9h.js} +2 -2
  68. package/dist/admin/assets/{Thumbnail-BUYOr4XJ.js.map → Thumbnail-DSPArZ9h.js.map} +1 -1
  69. package/dist/admin/assets/{UnsavedChangesGuard-BfzHgUkF.js → UnsavedChangesGuard-BPOCBD5T.js} +2 -2
  70. package/dist/admin/assets/{UnsavedChangesGuard-BfzHgUkF.js.map → UnsavedChangesGuard-BPOCBD5T.js.map} +1 -1
  71. package/dist/admin/assets/{UserAvatar-DNOWhSWS.js → UserAvatar-BHNWHDVb.js} +2 -2
  72. package/dist/admin/assets/{UserAvatar-DNOWhSWS.js.map → UserAvatar-BHNWHDVb.js.map} +1 -1
  73. package/dist/admin/assets/{auth-YVfK3SxF.js → auth-BzCgJtgr.js} +2 -2
  74. package/dist/admin/assets/{auth-YVfK3SxF.js.map → auth-BzCgJtgr.js.map} +1 -1
  75. package/dist/admin/assets/{badge-lJ4Ih_Zn.js → badge-DBoaS0nQ.js} +2 -2
  76. package/dist/admin/assets/{badge-lJ4Ih_Zn.js.map → badge-DBoaS0nQ.js.map} +1 -1
  77. package/dist/admin/assets/{boxes-DRvd25_u.js → boxes-DhN0ctLo.js} +2 -2
  78. package/dist/admin/assets/{boxes-DRvd25_u.js.map → boxes-DhN0ctLo.js.map} +1 -1
  79. package/dist/admin/assets/{calendar-clock-VENf4s1R.js → calendar-clock-BEA3tG17.js} +2 -2
  80. package/dist/admin/assets/{calendar-clock-VENf4s1R.js.map → calendar-clock-BEA3tG17.js.map} +1 -1
  81. package/dist/admin/assets/{changeSets-JmSyu3tu.js → changeSets-C54Ku-X9.js} +2 -2
  82. package/dist/admin/assets/{changeSets-JmSyu3tu.js.map → changeSets-C54Ku-X9.js.map} +1 -1
  83. package/dist/admin/assets/chevron-left-BeJdUVAX.js +2 -0
  84. package/dist/admin/assets/{chevron-left-D2DnQyeV.js.map → chevron-left-BeJdUVAX.js.map} +1 -1
  85. package/dist/admin/assets/{circle-check-jmRQz1Jq.js → circle-check-ktACw37r.js} +2 -2
  86. package/dist/admin/assets/{circle-check-jmRQz1Jq.js.map → circle-check-ktACw37r.js.map} +1 -1
  87. package/dist/admin/assets/{clock-DrSTMGjp.js → clock-BKNNASKp.js} +2 -2
  88. package/dist/admin/assets/{clock-DrSTMGjp.js.map → clock-BKNNASKp.js.map} +1 -1
  89. package/dist/admin/assets/cn-h5ORT3LK.js +2 -0
  90. package/dist/admin/assets/cn-h5ORT3LK.js.map +1 -0
  91. package/dist/admin/assets/coerce-DDQ1vGLx.js +2 -0
  92. package/dist/admin/assets/{coerce-B4MJTGg1.js.map → coerce-DDQ1vGLx.js.map} +1 -1
  93. package/dist/admin/assets/{constants-ahk0YSYl.js → constants-DH7oqfO_.js} +2 -2
  94. package/dist/admin/assets/{constants-ahk0YSYl.js.map → constants-DH7oqfO_.js.map} +1 -1
  95. package/dist/admin/assets/{content-DcvNzKGe.js → content-BptqQO8c.js} +3 -3
  96. package/dist/admin/assets/{content-DcvNzKGe.js.map → content-BptqQO8c.js.map} +1 -1
  97. package/dist/admin/assets/{contentCounts-DzIvdeXR.js → contentCounts-BpGlmyeZ.js} +2 -2
  98. package/dist/admin/assets/{contentCounts-DzIvdeXR.js.map → contentCounts-BpGlmyeZ.js.map} +1 -1
  99. package/dist/admin/assets/{contentTypes-YAd-AzOF.js → contentTypes-B_mAlIcH.js} +2 -2
  100. package/dist/admin/assets/{contentTypes-YAd-AzOF.js.map → contentTypes-B_mAlIcH.js.map} +1 -1
  101. package/dist/admin/assets/{context-4Jl20mYc.js → context-DyyMW7Md.js} +2 -2
  102. package/dist/admin/assets/{context-4Jl20mYc.js.map → context-DyyMW7Md.js.map} +1 -1
  103. package/dist/admin/assets/{copy-t6kAFw-O.js → copy-DjzlFY9u.js} +2 -2
  104. package/dist/admin/assets/{copy-t6kAFw-O.js.map → copy-DjzlFY9u.js.map} +1 -1
  105. package/dist/admin/assets/{dateTimeLocal-IDUOKulz.js → dateTimeLocal-DFXY779D.js} +2 -2
  106. package/dist/admin/assets/{dateTimeLocal-IDUOKulz.js.map → dateTimeLocal-DFXY779D.js.map} +1 -1
  107. package/dist/admin/assets/{develop-DYwiTd6R.js → develop-DJap_z-1.js} +2 -2
  108. package/dist/admin/assets/{develop-DYwiTd6R.js.map → develop-DJap_z-1.js.map} +1 -1
  109. package/dist/admin/assets/{dropdown-menu-DiYSm-g3.js → dropdown-menu-DGSMTf23.js} +2 -2
  110. package/dist/admin/assets/{dropdown-menu-DiYSm-g3.js.map → dropdown-menu-DGSMTf23.js.map} +1 -1
  111. package/dist/admin/assets/{ellipsis-DEHUaCkn.js → ellipsis-BMP-j3yO.js} +2 -2
  112. package/dist/admin/assets/{ellipsis-DEHUaCkn.js.map → ellipsis-BMP-j3yO.js.map} +1 -1
  113. package/dist/admin/assets/{external-link-B8UFREQ_.js → external-link-DzOkt97S.js} +2 -2
  114. package/dist/admin/assets/{external-link-B8UFREQ_.js.map → external-link-DzOkt97S.js.map} +1 -1
  115. package/dist/admin/assets/{fileRoute-CVQpW8cj.js → fileRoute-CG0Dufvt.js} +2 -2
  116. package/dist/admin/assets/{fileRoute-CVQpW8cj.js.map → fileRoute-CG0Dufvt.js.map} +1 -1
  117. package/dist/admin/assets/{folder-plus-iDg1hhew.js → folder-plus-C-LhI4a2.js} +2 -2
  118. package/dist/admin/assets/{folder-plus-iDg1hhew.js.map → folder-plus-C-LhI4a2.js.map} +1 -1
  119. package/dist/admin/assets/{followPlural-BdqfEe48.js → followPlural-D-8kzFOe.js} +2 -2
  120. package/dist/admin/assets/{followPlural-BdqfEe48.js.map → followPlural-D-8kzFOe.js.map} +1 -1
  121. package/dist/admin/assets/{globe-TooNSp9V.js → globe-DOoGBy23.js} +2 -2
  122. package/dist/admin/assets/{globe-TooNSp9V.js.map → globe-DOoGBy23.js.map} +1 -1
  123. package/dist/admin/assets/{image-CXZXXH58.js → image-D9p_gGE2.js} +2 -2
  124. package/dist/admin/assets/{image-CXZXXH58.js.map → image-D9p_gGE2.js.map} +1 -1
  125. package/dist/admin/assets/{image-off-cxva5G-Y.js → image-off-G0M2Nh1I.js} +2 -2
  126. package/dist/admin/assets/{image-off-cxva5G-Y.js.map → image-off-G0M2Nh1I.js.map} +1 -1
  127. package/dist/admin/assets/{inbox-B8c9Kj_z.js → inbox-CMzYVMZo.js} +2 -2
  128. package/dist/admin/assets/{inbox-B8c9Kj_z.js.map → inbox-CMzYVMZo.js.map} +1 -1
  129. package/dist/admin/assets/{inbox-CnzNfqt9.js → inbox-XaM-nvsM.js} +2 -2
  130. package/dist/admin/assets/{inbox-CnzNfqt9.js.map → inbox-XaM-nvsM.js.map} +1 -1
  131. package/dist/admin/assets/{index-D9KL7arJ.js → index-DHmfMpqz.js} +4 -4
  132. package/dist/admin/assets/{index-D9KL7arJ.js.map → index-DHmfMpqz.js.map} +1 -1
  133. package/dist/admin/assets/{key-round-CFJ61iCd.js → key-round-HBvMrmMo.js} +2 -2
  134. package/dist/admin/assets/{key-round-CFJ61iCd.js.map → key-round-HBvMrmMo.js.map} +1 -1
  135. package/dist/admin/assets/{languages-eh7U4anI.js → languages-BOv0jYhe.js} +2 -2
  136. package/dist/admin/assets/{languages-eh7U4anI.js.map → languages-BOv0jYhe.js.map} +1 -1
  137. package/dist/admin/assets/{layers-mGfmMsKE.js → layers-CkZyCaeb.js} +2 -2
  138. package/dist/admin/assets/{layers-mGfmMsKE.js.map → layers-CkZyCaeb.js.map} +1 -1
  139. package/dist/admin/assets/{link-2-off-DbZzRN_w.js → link-2-off-UUkSmPIL.js} +2 -2
  140. package/dist/admin/assets/{link-2-off-DbZzRN_w.js.map → link-2-off-UUkSmPIL.js.map} +1 -1
  141. package/dist/admin/assets/{link-b2pFaN-A.js → link-Bvqcg7db.js} +2 -2
  142. package/dist/admin/assets/{link-b2pFaN-A.js.map → link-Bvqcg7db.js.map} +1 -1
  143. package/dist/admin/assets/{locales-oBD0q1pN.js → locales-DbrcdhZi.js} +2 -2
  144. package/dist/admin/assets/{locales-oBD0q1pN.js.map → locales-DbrcdhZi.js.map} +1 -1
  145. package/dist/admin/assets/{media-Cs9LCQcz.js → media-CO0HSS3b.js} +2 -2
  146. package/dist/admin/assets/{media-Cs9LCQcz.js.map → media-CO0HSS3b.js.map} +1 -1
  147. package/dist/admin/assets/{media-5ks_0Rre.js → media-ugEyLgwN.js} +2 -2
  148. package/dist/admin/assets/{media-5ks_0Rre.js.map → media-ugEyLgwN.js.map} +1 -1
  149. package/dist/admin/assets/{network-DS8MW3AZ.js → network-BfDaUb7D.js} +2 -2
  150. package/dist/admin/assets/{network-DS8MW3AZ.js.map → network-BfDaUb7D.js.map} +1 -1
  151. package/dist/admin/assets/{pencil-C7eD5mlZ.js → pencil-BLNGNJmL.js} +2 -2
  152. package/dist/admin/assets/{pencil-C7eD5mlZ.js.map → pencil-BLNGNJmL.js.map} +1 -1
  153. package/dist/admin/assets/{plus-BDZHQBlU.js → plus-BXMBYPoB.js} +2 -2
  154. package/dist/admin/assets/{plus-BDZHQBlU.js.map → plus-BXMBYPoB.js.map} +1 -1
  155. package/dist/admin/assets/{preload-helper-CJNJ4S3k.js → preload-helper-DEbJbZwX.js} +2 -2
  156. package/dist/admin/assets/{preload-helper-CJNJ4S3k.js.map → preload-helper-DEbJbZwX.js.map} +1 -1
  157. package/dist/admin/assets/{publishing-C4YQ4XKt.js → publishing-DKrATBaj.js} +2 -2
  158. package/dist/admin/assets/{publishing-C4YQ4XKt.js.map → publishing-DKrATBaj.js.map} +1 -1
  159. package/dist/admin/assets/{radio-group-zOsGAYRP.js → radio-group-BIhT_uEK.js} +2 -2
  160. package/dist/admin/assets/{radio-group-zOsGAYRP.js.map → radio-group-BIhT_uEK.js.map} +1 -1
  161. package/dist/admin/assets/{rotate-ccw-DCWwb4Ga.js → rotate-ccw-DqbffhiC.js} +2 -2
  162. package/dist/admin/assets/{rotate-ccw-DCWwb4Ga.js.map → rotate-ccw-DqbffhiC.js.map} +1 -1
  163. package/dist/admin/assets/{schedules-DXrBSypK.js → schedules-CETl2eLe.js} +2 -2
  164. package/dist/admin/assets/{schedules-DXrBSypK.js.map → schedules-CETl2eLe.js.map} +1 -1
  165. package/dist/admin/assets/{schema-B7L9OJrX.js → schema-CWHuez0q.js} +2 -2
  166. package/dist/admin/assets/{schema-B7L9OJrX.js.map → schema-CWHuez0q.js.map} +1 -1
  167. package/dist/admin/assets/{scroll-text-BLThe4Ki.js → scroll-text-DlcDEi2k.js} +2 -2
  168. package/dist/admin/assets/{scroll-text-BLThe4Ki.js.map → scroll-text-DlcDEi2k.js.map} +1 -1
  169. package/dist/admin/assets/{search-CcJQqtRw.js → search-Dy2dtwyR.js} +2 -2
  170. package/dist/admin/assets/{search-CcJQqtRw.js.map → search-Dy2dtwyR.js.map} +1 -1
  171. package/dist/admin/assets/{searchSchemas-BCRZ1jyL.js → searchSchemas-Cz4P1iku.js} +2 -2
  172. package/dist/admin/assets/{searchSchemas-BCRZ1jyL.js.map → searchSchemas-Cz4P1iku.js.map} +1 -1
  173. package/dist/admin/assets/{sections-v5Flaor9.js → sections-BfG6DTFr.js} +2 -2
  174. package/dist/admin/assets/{sections-v5Flaor9.js.map → sections-BfG6DTFr.js.map} +1 -1
  175. package/dist/admin/assets/{sections-TIN_Nl1b.js → sections-EgXyXN3-.js} +2 -2
  176. package/dist/admin/assets/{sections-TIN_Nl1b.js.map → sections-EgXyXN3-.js.map} +1 -1
  177. package/dist/admin/assets/{select-CpHp3YOH.js → select--mePTdz8.js} +2 -2
  178. package/dist/admin/assets/{select-CpHp3YOH.js.map → select--mePTdz8.js.map} +1 -1
  179. package/dist/admin/assets/{send-CbP0Rc9_.js → send-DVgq5Iwg.js} +2 -2
  180. package/dist/admin/assets/{send-CbP0Rc9_.js.map → send-DVgq5Iwg.js.map} +1 -1
  181. package/dist/admin/assets/{seo-1n9s7YuX.js → seo-Zhb62Ojz.js} +2 -2
  182. package/dist/admin/assets/{seo-1n9s7YuX.js.map → seo-Zhb62Ojz.js.map} +1 -1
  183. package/dist/admin/assets/{settings-CuEO5l07.js → settings-Mscp6tN5.js} +2 -2
  184. package/dist/admin/assets/{settings-CuEO5l07.js.map → settings-Mscp6tN5.js.map} +1 -1
  185. package/dist/admin/assets/{skeleton-DElTumgk.js → skeleton-DJVukcn6.js} +2 -2
  186. package/dist/admin/assets/{skeleton-DElTumgk.js.map → skeleton-DJVukcn6.js.map} +1 -1
  187. package/dist/admin/assets/{snapshots-DkyyrWX3.js → snapshots-BpLhILlt.js} +2 -2
  188. package/dist/admin/assets/{snapshots-DkyyrWX3.js.map → snapshots-BpLhILlt.js.map} +1 -1
  189. package/dist/admin/assets/{sparkles-D88gf3vX.js → sparkles-Dd6S_roX.js} +2 -2
  190. package/dist/admin/assets/{sparkles-D88gf3vX.js.map → sparkles-Dd6S_roX.js.map} +1 -1
  191. package/dist/admin/assets/{stableId-DlNKh3HM.js → stableId-DFVM13gJ.js} +2 -2
  192. package/dist/admin/assets/{stableId-DlNKh3HM.js.map → stableId-DFVM13gJ.js.map} +1 -1
  193. package/dist/admin/assets/{store-jUWyOXDG.js → store-BP-xStwU.js} +2 -2
  194. package/dist/admin/assets/{store-jUWyOXDG.js.map → store-BP-xStwU.js.map} +1 -1
  195. package/dist/admin/assets/{switch-CijNGYkG.js → switch-skVypg5O.js} +2 -2
  196. package/dist/admin/assets/{switch-CijNGYkG.js.map → switch-skVypg5O.js.map} +1 -1
  197. package/dist/admin/assets/{table-DQ5ILlSh.js → table-BMbbRUK9.js} +2 -2
  198. package/dist/admin/assets/{table-DQ5ILlSh.js.map → table-BMbbRUK9.js.map} +1 -1
  199. package/dist/admin/assets/{tabs-CSqGW9Du.js → tabs-C1lgOg1B.js} +3 -3
  200. package/dist/admin/assets/{tabs-CSqGW9Du.js.map → tabs-C1lgOg1B.js.map} +1 -1
  201. package/dist/admin/assets/{textarea-FwSvwmyT.js → textarea-CffBBxoQ.js} +2 -2
  202. package/dist/admin/assets/{textarea-FwSvwmyT.js.map → textarea-CffBBxoQ.js.map} +1 -1
  203. package/dist/admin/assets/{theme-CHHVK8Ps.js → theme-RHTVnR9j.js} +2 -2
  204. package/dist/admin/assets/{theme-CHHVK8Ps.js.map → theme-RHTVnR9j.js.map} +1 -1
  205. package/dist/admin/assets/{titles-CQYc9nDQ.js → titles-DWiPmNvn.js} +2 -2
  206. package/dist/admin/assets/{titles-CQYc9nDQ.js.map → titles-DWiPmNvn.js.map} +1 -1
  207. package/dist/admin/assets/{tokens-C-20gLAT.js → tokens-BqyeN1D-.js} +2 -2
  208. package/dist/admin/assets/{tokens-C-20gLAT.js.map → tokens-BqyeN1D-.js.map} +1 -1
  209. package/dist/admin/assets/{tooltip-BXqFQv9N.js → tooltip-BfSF6EyR.js} +2 -2
  210. package/dist/admin/assets/{tooltip-BXqFQv9N.js.map → tooltip-BfSF6EyR.js.map} +1 -1
  211. package/dist/admin/assets/{undo-2-CLy2zklL.js → undo-2-p4YlNhBp.js} +2 -2
  212. package/dist/admin/assets/{undo-2-CLy2zklL.js.map → undo-2-p4YlNhBp.js.map} +1 -1
  213. package/dist/admin/assets/{useAuditLabels-BJF7M5RY.js → useAuditLabels-DV5gcaaG.js} +2 -2
  214. package/dist/admin/assets/{useAuditLabels-BJF7M5RY.js.map → useAuditLabels-DV5gcaaG.js.map} +1 -1
  215. package/dist/admin/assets/{useConfirmTarget-BUvlrGSW.js → useConfirmTarget-DCvnxNVg.js} +2 -2
  216. package/dist/admin/assets/{useConfirmTarget-BUvlrGSW.js.map → useConfirmTarget-DCvnxNVg.js.map} +1 -1
  217. package/dist/admin/assets/{useContentSchema-Cvtes34f.js → useContentSchema-z6tNif86.js} +2 -2
  218. package/dist/admin/assets/{useContentSchema-Cvtes34f.js.map → useContentSchema-z6tNif86.js.map} +1 -1
  219. package/dist/admin/assets/{useCursorPager-CzB6NDOB.js → useCursorPager-CQGX41_L.js} +2 -2
  220. package/dist/admin/assets/{useCursorPager-CzB6NDOB.js.map → useCursorPager-CQGX41_L.js.map} +1 -1
  221. package/dist/admin/assets/{useDiscardGuard-BAEGkGK9.js → useDiscardGuard-Dhbif7VL.js} +2 -2
  222. package/dist/admin/assets/{useDiscardGuard-BAEGkGK9.js.map → useDiscardGuard-Dhbif7VL.js.map} +1 -1
  223. package/dist/admin/assets/{useMediaPickerDialog-CiN_pias.js → useMediaPickerDialog-D-5uKsMG.js} +2 -2
  224. package/dist/admin/assets/{useMediaPickerDialog-CiN_pias.js.map → useMediaPickerDialog-D-5uKsMG.js.map} +1 -1
  225. package/dist/admin/assets/{useMediaUploader-CapEHBIt.js → useMediaUploader-BtLoimmQ.js} +2 -2
  226. package/dist/admin/assets/{useMediaUploader-CapEHBIt.js.map → useMediaUploader-BtLoimmQ.js.map} +1 -1
  227. package/dist/admin/assets/{usePaletteItems-wpn3ms6o.js → usePaletteItems-D3PZsW0Q.js} +2 -2
  228. package/dist/admin/assets/{usePaletteItems-wpn3ms6o.js.map → usePaletteItems-D3PZsW0Q.js.map} +1 -1
  229. package/dist/admin/assets/{usePlaces-6iTN15Xy.js → usePlaces-Cj5PljTy.js} +2 -2
  230. package/dist/admin/assets/{usePlaces-6iTN15Xy.js.map → usePlaces-Cj5PljTy.js.map} +1 -1
  231. package/dist/admin/assets/{useQueries-CYfcxI0Q.js → useQueries-CeDzli4Z.js} +2 -2
  232. package/dist/admin/assets/{useQueries-CYfcxI0Q.js.map → useQueries-CeDzli4Z.js.map} +1 -1
  233. package/dist/admin/assets/{useResolvedScheme-i1EwGHuF.js → useResolvedScheme-DHD-zisP.js} +2 -2
  234. package/dist/admin/assets/{useResolvedScheme-i1EwGHuF.js.map → useResolvedScheme-DHD-zisP.js.map} +1 -1
  235. package/dist/admin/assets/{useSchemaScopeAccess-WQKmj8_3.js → useSchemaScopeAccess-BNeVslcv.js} +2 -2
  236. package/dist/admin/assets/{useSchemaScopeAccess-WQKmj8_3.js.map → useSchemaScopeAccess-BNeVslcv.js.map} +1 -1
  237. package/dist/admin/assets/{users-BgTNDPXx.js → users-BRefbzuS.js} +2 -2
  238. package/dist/admin/assets/{users-BgTNDPXx.js.map → users-BRefbzuS.js.map} +1 -1
  239. package/dist/admin/assets/{users-B01EH47o.js → users-CppI8ctO.js} +2 -2
  240. package/dist/admin/assets/{users-B01EH47o.js.map → users-CppI8ctO.js.map} +1 -1
  241. package/dist/admin/assets/{zod-79xzBIrW.js → zod-Dcwk-m8X.js} +2 -2
  242. package/dist/admin/assets/{zod-79xzBIrW.js.map → zod-Dcwk-m8X.js.map} +1 -1
  243. package/dist/admin/index.html +55 -55
  244. package/dist/cli.js +110 -18
  245. package/dist/cli.js.map +1 -1
  246. package/dist/config.d.ts +1 -1
  247. package/dist/index.d.ts +1 -1
  248. package/dist/index.js +1 -1
  249. package/dist/{public-CTK82y3t.d.ts → public-DYR4mtVQ.d.ts} +2 -1
  250. package/dist/s3Adapter-C8AgFVYw.js +125 -0
  251. package/dist/s3Adapter-C8AgFVYw.js.map +1 -0
  252. package/dist/{worker-BDYDbaea.js → worker-jz_0yAmS.js} +388 -358
  253. package/dist/worker-jz_0yAmS.js.map +1 -0
  254. package/package.json +8 -5
  255. package/dist/admin/assets/Structure-CoO3iah3.js +0 -2
  256. package/dist/admin/assets/chevron-left-D2DnQyeV.js +0 -2
  257. package/dist/admin/assets/cn-CL1YHRrS.js +0 -2
  258. package/dist/admin/assets/cn-CL1YHRrS.js.map +0 -1
  259. package/dist/admin/assets/coerce-B4MJTGg1.js +0 -2
  260. package/dist/worker-BDYDbaea.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{H as n,P as r,l as i}from"./cn-CL1YHRrS.js";var a=e(t(),1),o=6e4,s=()=>{let e=n({queryKey:r.contentCounts,queryFn:()=>i.contentCounts.list(),staleTime:o,meta:{silent:!0}});return(0,a.useMemo)(()=>e.data?new Map(e.data.counts.map(e=>[e.modelId,e.total])):void 0,[e.data])};export{s as t};
2
- //# sourceMappingURL=contentCounts-DzIvdeXR.js.map
1
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{H as n,P as r,l as i}from"./cn-h5ORT3LK.js";var a=e(t(),1),o=6e4,s=()=>{let e=n({queryKey:r.contentCounts,queryFn:()=>i.contentCounts.list(),staleTime:o,meta:{silent:!0}});return(0,a.useMemo)(()=>e.data?new Map(e.data.counts.map(e=>[e.modelId,e.total])):void 0,[e.data])};export{s as t};
2
+ //# sourceMappingURL=contentCounts-BpGlmyeZ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contentCounts-DzIvdeXR.js","names":["useMemo","__toESM","useQuery","queryKeys","adminApi","import_react","require_react","COUNTS_STALE_MS","useContentCounts","query","count"],"sources":["../../src/api/contentCounts.ts"],"sourcesContent":["import { useQuery } from '@tanstack/react-query';\nimport { useMemo } from 'react';\nimport { adminApi } from './client';\nimport { queryKeys } from './queryKeys';\n\n/** The server caches counts for 60s; asking more often would only return the same numbers. */\nconst COUNTS_STALE_MS = 60_000;\n\n/** Entries per model (readable models only), keyed by model ID; undefined while loading or on failure. */\nexport const useContentCounts = () => {\n const query = useQuery({\n queryKey: queryKeys.contentCounts,\n queryFn: () => adminApi.contentCounts.list(),\n staleTime: COUNTS_STALE_MS,\n meta: { silent: true },\n });\n return useMemo(\n () =>\n query.data\n ? new Map(query.data.counts.map((count) => [count.modelId, count.total] as const))\n : undefined,\n [query.data],\n );\n};\n"],"mappings":"wJAMMO,EAAkB,IAGXC,MAAyB,CACpC,IAAMC,EAAQP,EAAS,CACrB,SAAUC,EAAU,cACpB,YAAeC,EAAS,cAAc,KAAK,EAC3C,UAAWG,EACX,KAAM,CAAE,OAAQ,EAAK,CACvB,CAAC,EACD,OAAA,EAAOP,EAAAA,QAAAA,KAEHS,EAAM,KACF,IAAI,IAAIA,EAAM,KAAK,OAAO,IAAK,GAAU,CAACC,EAAM,QAASA,EAAM,KAAK,CAAU,CAAC,EAC/E,IAAA,GACN,CAACD,EAAM,IAAI,CACb,CACF"}
1
+ {"version":3,"file":"contentCounts-BpGlmyeZ.js","names":["useMemo","__toESM","useQuery","queryKeys","adminApi","import_react","require_react","COUNTS_STALE_MS","useContentCounts","query","count"],"sources":["../../src/api/contentCounts.ts"],"sourcesContent":["import { useQuery } from '@tanstack/react-query';\nimport { useMemo } from 'react';\nimport { adminApi } from './client';\nimport { queryKeys } from './queryKeys';\n\n/** The server caches counts for 60s; asking more often would only return the same numbers. */\nconst COUNTS_STALE_MS = 60_000;\n\n/** Entries per model (readable models only), keyed by model ID; undefined while loading or on failure. */\nexport const useContentCounts = () => {\n const query = useQuery({\n queryKey: queryKeys.contentCounts,\n queryFn: () => adminApi.contentCounts.list(),\n staleTime: COUNTS_STALE_MS,\n meta: { silent: true },\n });\n return useMemo(\n () =>\n query.data\n ? new Map(query.data.counts.map((count) => [count.modelId, count.total] as const))\n : undefined,\n [query.data],\n );\n};\n"],"mappings":"wJAMMO,EAAkB,IAGXC,MAAyB,CACpC,IAAMC,EAAQP,EAAS,CACrB,SAAUC,EAAU,cACpB,YAAeC,EAAS,cAAc,KAAK,EAC3C,UAAWG,EACX,KAAM,CAAE,OAAQ,EAAK,CACvB,CAAC,EACD,OAAA,EAAOP,EAAAA,QAAAA,KAEHS,EAAM,KACF,IAAI,IAAIA,EAAM,KAAK,OAAO,IAAK,GAAU,CAACC,EAAM,QAASA,EAAM,KAAK,CAAU,CAAC,EAC/E,IAAA,GACN,CAACD,EAAM,IAAI,CACb,CACF"}
@@ -1,2 +1,2 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{t as n}from"./jsx-runtime-DREnUpxT.js";import{j as r}from"./cn-CL1YHRrS.js";import{C as i,T as a,o,x as s}from"./auth-YVfK3SxF.js";import{_ as c,a as l,i as u,j as d,o as f,t as p}from"./badge-lJ4Ih_Zn.js";import{t as m}from"./fileRoute-CVQpW8cj.js";import{i as h}from"./skeleton-DElTumgk.js";import{n as g,t as _}from"./Form-CLEr5Csd.js";import{a as v,d as y}from"./constants-ahk0YSYl.js";import{t as b}from"./Builder-CmT5-8hI.js";import{t as x}from"./plus-BDZHQBlU.js";import{u as S}from"./changeSets-JmSyu3tu.js";import{t as C}from"./HintedLabel-CVe-PIyv.js";import{s as w}from"./schema-B7L9OJrX.js";import{t as T}from"./QueryView-C630REML.js";import{t as E}from"./textarea-FwSvwmyT.js";import{c as D,g as O,i as k,r as A,t as j}from"./AssistError-BoejyShH.js";import{t as M}from"./Panel-ClY9b33D.js";import{a as N,i as P}from"./followPlural-BdqfEe48.js";var F=e(n(),1),I=()=>{let{t:e}=r(),t=w(`component`),n=o(`schema.create`),{locked:i,reason:a}=N(),c=n&&!i?(0,F.jsx)(h,{asChild:!0,children:(0,F.jsxs)(s,{to:`/develop/components/new`,children:[(0,F.jsx)(x,{"aria-hidden":`true`}),e(`contentTypes.newComponentTitle`)]})}):null;return(0,F.jsxs)(l,{children:[(0,F.jsx)(u,{title:e(`shell.nav.components`),actions:c}),i?(0,F.jsx)(P,{reason:a}):null,(0,F.jsx)(T,{query:t,isEmpty:e=>e.length===0,empty:(0,F.jsx)(f,{icon:y,title:e(`contentTypes.noComponents`),description:e(`models.emptyDescription`),action:c}),children:e=>(0,F.jsx)(g,{items:e})})]})},L=()=>{let{componentId:e}=d({from:`/app/develop/components/$componentId`});return(0,F.jsx)(b,{category:`component`,id:e})},R=[`component`],z=()=>{let{t:e}=r();return(0,F.jsx)(_,{title:e(`contentTypes.newComponentTitle`),kinds:R,back:i({to:`/develop/components`}),backLabel:e(`shell.nav.components`)})},B=e(t(),1),V=()=>{let{t:e}=r(),t=a(),[n,i]=(0,B.useState)(``),[o,s]=(0,B.useState)(null),c=D(),l=S();return{description:n,setDescription:i,proposal:o,run:()=>{n.trim()!==``&&(s(null),l.reset(),c.mutate({description:n.trim()},{onSuccess:s}))},discard:()=>{s(null),c.reset(),l.reset()},addToChangeSet:()=>{o&&l.mutate({definitions:o.definitions,newSetTitle:e(`assist.describe.setTitle`,{model:o.model})},{onSuccess:e=>void t({to:`/changes/$changeSetId`,params:{changeSetId:e}})})},proposing:c.isPending,proposeError:c.error,adding:l.isPending,addError:l.error}},H=({proposal:e})=>{let{t}=r();return(0,F.jsxs)(`div`,{className:`space-y-3`,children:[(0,F.jsx)(`p`,{className:`text-meta text-muted-foreground`,children:t(`assist.describe.proposedBy`,{model:e.model})}),(0,F.jsx)(`ul`,{"aria-label":t(`assist.describe.proposalLabel`),className:`space-y-3`,children:e.definitions.map(e=>(0,F.jsxs)(`li`,{className:`rounded-lg border p-3`,children:[(0,F.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,F.jsx)(`span`,{className:`text-sm font-semibold`,children:e.label}),(0,F.jsx)(p,{variant:`secondary`,children:t(v[e.kind])}),(0,F.jsx)(`span`,{className:`font-mono text-meta text-muted-foreground`,children:e.apiKey})]}),(0,F.jsx)(`ul`,{className:`mt-2 space-y-0.5 text-meta text-muted-foreground`,children:e.fields.map(e=>(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`span`,{className:`text-foreground`,children:e.label}),` `,t(`assist.describe.fieldType`,{type:t(`models.dataTypes.${e.type}.name`)})]},e.id))})]},e.id))})]})},U=()=>{let{t:e}=r(),t=(0,B.useId)(),n=k(),{locked:i}=N(),a=V();return n?(0,F.jsx)(M,{title:e(`assist.describe.title`),titleAs:`h2`,children:(0,F.jsx)(`div`,{className:`space-y-3`,children:a.proposal?(0,F.jsxs)(`form`,{className:`space-y-3`,onSubmit:e=>{e.preventDefault(),a.addToChangeSet()},children:[(0,F.jsx)(H,{proposal:a.proposal}),(0,F.jsx)(j,{error:a.addError}),(0,F.jsxs)(`div`,{className:`flex flex-wrap justify-end gap-2`,children:[(0,F.jsx)(h,{type:`button`,variant:`outline`,onClick:a.discard,children:e(`assist.discard`)}),(0,F.jsx)(c,{pending:a.adding,pendingLabel:e(`common.saving`),disabled:i,children:e(`assist.describe.add`)})]})]}):(0,F.jsxs)(F.Fragment,{children:[(0,F.jsxs)(`div`,{className:`space-y-2`,children:[(0,F.jsx)(C,{htmlFor:`${t}-description`,label:e(`assist.describe.label`),hint:e(`assist.describe.hint`)}),(0,F.jsx)(E,{id:`${t}-description`,value:a.description,rows:4,maxLength:O,placeholder:e(`assist.describe.placeholder`),disabled:a.proposing,onChange:e=>a.setDescription(e.target.value)})]}),(0,F.jsx)(j,{error:a.proposeError}),(0,F.jsx)(`div`,{className:`flex justify-end`,children:(0,F.jsx)(A,{variant:`outline`,size:`default`,pending:a.proposing,pendingLabel:e(`assist.working`),disabled:a.description.trim()===``||i,onClick:a.run,children:e(`assist.describe.run`)})})]})})}):null},W=[`collection`,`singleton`],G={newContentType:m(`/app/content/new`)({component:()=>{let{t:e}=r();return(0,F.jsx)(_,{title:e(`contentTypes.newTitle`),kinds:W,back:i({to:`/content`}),backLabel:e(`content.title`),intro:(0,F.jsx)(U,{})})}}),components:m(`/app/develop/components`)({component:I}),newComponent:m(`/app/develop/components/new`)({component:z}),component:m(`/app/develop/components/$componentId`)({component:L})};export{G as contentTypesLazyRoutes};
2
- //# sourceMappingURL=contentTypes-YAd-AzOF.js.map
1
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{t as n}from"./jsx-runtime-DREnUpxT.js";import{j as r}from"./cn-h5ORT3LK.js";import{C as i,T as a,o,x as s}from"./auth-BzCgJtgr.js";import{_ as c,a as l,i as u,j as d,o as f,t as p}from"./badge-DBoaS0nQ.js";import{t as m}from"./fileRoute-CG0Dufvt.js";import{i as h}from"./skeleton-DJVukcn6.js";import{n as g,t as _}from"./Form-DB03drS9.js";import{a as v,d as y}from"./constants-DH7oqfO_.js";import{t as b}from"./Builder-CnEtRudv.js";import{t as x}from"./plus-BXMBYPoB.js";import{u as S}from"./changeSets-C54Ku-X9.js";import{t as C}from"./HintedLabel-BGidukgy.js";import{s as w}from"./schema-CWHuez0q.js";import{t as T}from"./QueryView-C2d392ly.js";import{t as E}from"./textarea-CffBBxoQ.js";import{c as D,g as O,i as k,r as A,t as j}from"./AssistError-D_vY2CO0.js";import{t as M}from"./Panel-DDky5_x9.js";import{a as N,i as P}from"./followPlural-D-8kzFOe.js";var F=e(n(),1),I=()=>{let{t:e}=r(),t=w(`component`),n=o(`schema.create`),{locked:i,reason:a}=N(),c=n&&!i?(0,F.jsx)(h,{asChild:!0,children:(0,F.jsxs)(s,{to:`/develop/components/new`,children:[(0,F.jsx)(x,{"aria-hidden":`true`}),e(`contentTypes.newComponentTitle`)]})}):null;return(0,F.jsxs)(l,{children:[(0,F.jsx)(u,{title:e(`shell.nav.components`),actions:c}),i?(0,F.jsx)(P,{reason:a}):null,(0,F.jsx)(T,{query:t,isEmpty:e=>e.length===0,empty:(0,F.jsx)(f,{icon:y,title:e(`contentTypes.noComponents`),description:e(`models.emptyDescription`),action:c}),children:e=>(0,F.jsx)(g,{items:e})})]})},L=()=>{let{componentId:e}=d({from:`/app/develop/components/$componentId`});return(0,F.jsx)(b,{category:`component`,id:e})},R=[`component`],z=()=>{let{t:e}=r();return(0,F.jsx)(_,{title:e(`contentTypes.newComponentTitle`),kinds:R,back:i({to:`/develop/components`}),backLabel:e(`shell.nav.components`)})},B=e(t(),1),V=()=>{let{t:e}=r(),t=a(),[n,i]=(0,B.useState)(``),[o,s]=(0,B.useState)(null),c=D(),l=S();return{description:n,setDescription:i,proposal:o,run:()=>{n.trim()!==``&&(s(null),l.reset(),c.mutate({description:n.trim()},{onSuccess:s}))},discard:()=>{s(null),c.reset(),l.reset()},addToChangeSet:()=>{o&&l.mutate({definitions:o.definitions,newSetTitle:e(`assist.describe.setTitle`,{model:o.model})},{onSuccess:e=>void t({to:`/changes/$changeSetId`,params:{changeSetId:e}})})},proposing:c.isPending,proposeError:c.error,adding:l.isPending,addError:l.error}},H=({proposal:e})=>{let{t}=r();return(0,F.jsxs)(`div`,{className:`space-y-3`,children:[(0,F.jsx)(`p`,{className:`text-meta text-muted-foreground`,children:t(`assist.describe.proposedBy`,{model:e.model})}),(0,F.jsx)(`ul`,{"aria-label":t(`assist.describe.proposalLabel`),className:`space-y-3`,children:e.definitions.map(e=>(0,F.jsxs)(`li`,{className:`rounded-lg border p-3`,children:[(0,F.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,F.jsx)(`span`,{className:`text-sm font-semibold`,children:e.label}),(0,F.jsx)(p,{variant:`secondary`,children:t(v[e.kind])}),(0,F.jsx)(`span`,{className:`font-mono text-meta text-muted-foreground`,children:e.apiKey})]}),(0,F.jsx)(`ul`,{className:`mt-2 space-y-0.5 text-meta text-muted-foreground`,children:e.fields.map(e=>(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`span`,{className:`text-foreground`,children:e.label}),` `,t(`assist.describe.fieldType`,{type:t(`models.dataTypes.${e.type}.name`)})]},e.id))})]},e.id))})]})},U=()=>{let{t:e}=r(),t=(0,B.useId)(),n=k(),{locked:i}=N(),a=V();return n?(0,F.jsx)(M,{title:e(`assist.describe.title`),titleAs:`h2`,children:(0,F.jsx)(`div`,{className:`space-y-3`,children:a.proposal?(0,F.jsxs)(`form`,{className:`space-y-3`,onSubmit:e=>{e.preventDefault(),a.addToChangeSet()},children:[(0,F.jsx)(H,{proposal:a.proposal}),(0,F.jsx)(j,{error:a.addError}),(0,F.jsxs)(`div`,{className:`flex flex-wrap justify-end gap-2`,children:[(0,F.jsx)(h,{type:`button`,variant:`outline`,onClick:a.discard,children:e(`assist.discard`)}),(0,F.jsx)(c,{pending:a.adding,pendingLabel:e(`common.saving`),disabled:i,children:e(`assist.describe.add`)})]})]}):(0,F.jsxs)(F.Fragment,{children:[(0,F.jsxs)(`div`,{className:`space-y-2`,children:[(0,F.jsx)(C,{htmlFor:`${t}-description`,label:e(`assist.describe.label`),hint:e(`assist.describe.hint`)}),(0,F.jsx)(E,{id:`${t}-description`,value:a.description,rows:4,maxLength:O,placeholder:e(`assist.describe.placeholder`),disabled:a.proposing,onChange:e=>a.setDescription(e.target.value)})]}),(0,F.jsx)(j,{error:a.proposeError}),(0,F.jsx)(`div`,{className:`flex justify-end`,children:(0,F.jsx)(A,{variant:`outline`,size:`default`,pending:a.proposing,pendingLabel:e(`assist.working`),disabled:a.description.trim()===``||i,onClick:a.run,children:e(`assist.describe.run`)})})]})})}):null},W=[`collection`,`singleton`],G={newContentType:m(`/app/content/new`)({component:()=>{let{t:e}=r();return(0,F.jsx)(_,{title:e(`contentTypes.newTitle`),kinds:W,back:i({to:`/content`}),backLabel:e(`content.title`),intro:(0,F.jsx)(U,{})})}}),components:m(`/app/develop/components`)({component:I}),newComponent:m(`/app/develop/components/new`)({component:z}),component:m(`/app/develop/components/$componentId`)({component:L})};export{G as contentTypesLazyRoutes};
2
+ //# sourceMappingURL=contentTypes-B_mAlIcH.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contentTypes-YAd-AzOF.js","names":["DefinitionBuilder","KINDS","New","useState","useId","_Fragment","NewContentType","NewComponent","ComponentBuilder","__toESM","require_jsx_runtime","useTranslation","linkOptions","useNavigate","Link","SubmitButton","Page","PageHeader","useParams","EmptyState","Badge","createLazyRoute","Button","List","Form","KIND_LABEL_KEYS","Blocks","Builder$1","Plus","useSaveNewDefinitionsToChangeSet","HintedLabel","useDefinitions","QueryView","Textarea","useProposeSchema","SCHEMA_DESCRIPTION_MAX","useAssistEnabled","AssistButton","AssistError","Panel","useSchemaLock","LockNotice","import_jsx_runtime","Components","components","canCreate","useHasGlobalPermission","createAction","locked","t","data","Builder","componentId","KINDS$1","New$1","import_react","require_react","useDescribeSchema","navigate","description","setDescription","proposal","setProposal","propose","save","Proposal","definition","field","Describe","id","enabled","describe","event","KINDS","contentTypesLazyRoutes"],"sources":["../../src/features/Components/index.tsx","../../src/features/Components/Builder/index.tsx","../../src/features/Components/New/index.tsx","../../src/features/Content/New/hooks/useDescribeSchema.ts","../../src/features/Content/New/Describe/Proposal/index.tsx","../../src/features/Content/New/Describe/index.tsx","../../src/features/Content/New/index.tsx","../../src/app/lazyRoutes/contentTypes.tsx"],"sourcesContent":["import { Link } from '@tanstack/react-router';\nimport { Blocks, Plus } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport { useHasGlobalPermission } from '@/api/auth';\nimport { useDefinitions } from '@/api/schema';\nimport { EmptyState } from '@/components/EmptyState';\nimport { Page } from '@/components/Page';\nimport { PageHeader } from '@/components/PageHeader';\nimport { QueryView } from '@/components/QueryView';\nimport { Button } from '@/components/ui/button';\nimport { useSchemaLock } from '@/features/Models/hooks/useSchemaLock';\nimport { List } from '@/features/Models/List';\nimport { LockNotice } from '@/features/Models/LockNotice';\n\n/** `/develop/components`: reusable field groups that content types embed (Develop → Components). */\nexport const Components = () => {\n const { t } = useTranslation();\n const components = useDefinitions('component');\n const canCreate = useHasGlobalPermission('schema.create');\n const { locked, reason } = useSchemaLock();\n const createAction =\n canCreate && !locked ? (\n <Button asChild>\n <Link to=\"/develop/components/new\">\n <Plus aria-hidden=\"true\" />\n {t('contentTypes.newComponentTitle')}\n </Link>\n </Button>\n ) : null;\n return (\n <Page>\n <PageHeader title={t('shell.nav.components')} actions={createAction} />\n {locked ? <LockNotice reason={reason} /> : null}\n <QueryView\n query={components}\n isEmpty={(data) => data.length === 0}\n empty={\n <EmptyState\n icon={Blocks}\n title={t('contentTypes.noComponents')}\n description={t('models.emptyDescription')}\n action={createAction}\n />\n }\n >\n {(data) => <List items={data} />}\n </QueryView>\n </Page>\n );\n};\n","import { useParams } from '@tanstack/react-router';\nimport { Builder as DefinitionBuilder } from '@/features/Models/Builder';\n\n/** `/develop/components/:componentId`: a component in the shared definition builder. */\nexport const Builder = () => {\n const { componentId } = useParams({ from: '/app/develop/components/$componentId' });\n return <DefinitionBuilder category=\"component\" id={componentId} />;\n};\n","import { linkOptions } from '@tanstack/react-router';\nimport { useTranslation } from 'react-i18next';\nimport { Form } from '@/features/Content/New/Form';\n\nconst KINDS = ['component'] as const;\n\n/** `/develop/components/new`: a reusable component (Develop → Components). */\nexport const New = () => {\n const { t } = useTranslation();\n return (\n <Form\n title={t('contentTypes.newComponentTitle')}\n kinds={KINDS}\n back={linkOptions({ to: '/develop/components' })}\n backLabel={t('shell.nav.components')}\n />\n );\n};\n","import type { SchemaDraftResult } from '@shapio/client';\nimport { useNavigate } from '@tanstack/react-router';\nimport { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useProposeSchema } from '@/api/assist';\nimport { useSaveNewDefinitionsToChangeSet } from '@/api/changeSets';\n\n/**\n * \"Describe it\": a description → proposed definitions (nothing written) → saved as schema drafts into a\n * change set, whose review opens next. Shipping them stays a person's decision there.\n */\nexport const useDescribeSchema = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const [description, setDescription] = useState('');\n const [proposal, setProposal] = useState<SchemaDraftResult | null>(null);\n const propose = useProposeSchema();\n const save = useSaveNewDefinitionsToChangeSet();\n const run = () => {\n if (description.trim() === '') {\n return;\n }\n setProposal(null);\n save.reset();\n propose.mutate({ description: description.trim() }, { onSuccess: setProposal });\n };\n const discard = () => {\n setProposal(null);\n propose.reset();\n save.reset();\n };\n const addToChangeSet = () => {\n if (!proposal) {\n return;\n }\n save.mutate(\n {\n definitions: proposal.definitions,\n newSetTitle: t('assist.describe.setTitle', { model: proposal.model }),\n },\n {\n onSuccess: (changeSetId) => void navigate({ to: '/changes/$changeSetId', params: { changeSetId } }),\n },\n );\n };\n return {\n description,\n setDescription,\n proposal,\n run,\n discard,\n addToChangeSet,\n proposing: propose.isPending,\n proposeError: propose.error,\n adding: save.isPending,\n addError: save.error,\n };\n};\n","import type { SchemaDraftResult } from '@shapio/client';\nimport { useTranslation } from 'react-i18next';\nimport { Badge } from '@/components/ui/badge';\nimport { KIND_LABEL_KEYS } from '@/features/Models/constants';\n\ntype ProposalProps = { proposal: SchemaDraftResult };\n\n/** The proposed definitions at a glance: name, kind, API ID and fields, before they go into a change set. */\nexport const Proposal = ({ proposal }: ProposalProps) => {\n const { t } = useTranslation();\n return (\n <div className=\"space-y-3\">\n <p className=\"text-meta text-muted-foreground\">\n {t('assist.describe.proposedBy', { model: proposal.model })}\n </p>\n <ul aria-label={t('assist.describe.proposalLabel')} className=\"space-y-3\">\n {proposal.definitions.map((definition) => (\n <li key={definition.id} className=\"rounded-lg border p-3\">\n <div className=\"flex flex-wrap items-center gap-2\">\n <span className=\"text-sm font-semibold\">{definition.label}</span>\n <Badge variant=\"secondary\">{t(KIND_LABEL_KEYS[definition.kind])}</Badge>\n <span className=\"font-mono text-meta text-muted-foreground\">{definition.apiKey}</span>\n </div>\n <ul className=\"mt-2 space-y-0.5 text-meta text-muted-foreground\">\n {definition.fields.map((field) => (\n <li key={field.id}>\n <span className=\"text-foreground\">{field.label}</span>{' '}\n {t('assist.describe.fieldType', { type: t(`models.dataTypes.${field.type}.name`) })}\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n </div>\n );\n};\n","import { useId } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useAssistEnabled } from '@/api/assist';\nimport { AssistButton } from '@/components/AssistButton';\nimport { AssistError } from '@/components/AssistError';\nimport { HintedLabel } from '@/components/HintedLabel';\nimport { Panel } from '@/components/Panel';\nimport { SubmitButton } from '@/components/SubmitButton';\nimport { Button } from '@/components/ui/button';\nimport { Textarea } from '@/components/ui/textarea';\nimport { SCHEMA_DESCRIPTION_MAX } from '@/constants/assist';\nimport { useSchemaLock } from '@/features/Models/hooks/useSchemaLock';\nimport { useDescribeSchema } from '../hooks/useDescribeSchema';\nimport { Proposal } from './Proposal';\n\n/** \"Describe it\" above the new content type form: a model proposes the types, a change set holds them. */\nexport const Describe = () => {\n const { t } = useTranslation();\n const id = useId();\n const enabled = useAssistEnabled();\n const { locked } = useSchemaLock();\n const describe = useDescribeSchema();\n if (!enabled) {\n return null;\n }\n return (\n <Panel title={t('assist.describe.title')} titleAs=\"h2\">\n <div className=\"space-y-3\">\n {describe.proposal ? (\n <form\n className=\"space-y-3\"\n onSubmit={(event) => {\n event.preventDefault();\n describe.addToChangeSet();\n }}\n >\n <Proposal proposal={describe.proposal} />\n <AssistError error={describe.addError} />\n <div className=\"flex flex-wrap justify-end gap-2\">\n <Button type=\"button\" variant=\"outline\" onClick={describe.discard}>\n {t('assist.discard')}\n </Button>\n <SubmitButton pending={describe.adding} pendingLabel={t('common.saving')} disabled={locked}>\n {t('assist.describe.add')}\n </SubmitButton>\n </div>\n </form>\n ) : (\n <>\n <div className=\"space-y-2\">\n <HintedLabel\n htmlFor={`${id}-description`}\n label={t('assist.describe.label')}\n hint={t('assist.describe.hint')}\n />\n <Textarea\n id={`${id}-description`}\n value={describe.description}\n rows={4}\n maxLength={SCHEMA_DESCRIPTION_MAX}\n placeholder={t('assist.describe.placeholder')}\n disabled={describe.proposing}\n onChange={(event) => describe.setDescription(event.target.value)}\n />\n </div>\n <AssistError error={describe.proposeError} />\n <div className=\"flex justify-end\">\n <AssistButton\n variant=\"outline\"\n size=\"default\"\n pending={describe.proposing}\n pendingLabel={t('assist.working')}\n disabled={describe.description.trim() === '' || locked}\n onClick={describe.run}\n >\n {t('assist.describe.run')}\n </AssistButton>\n </div>\n </>\n )}\n </div>\n </Panel>\n );\n};\n","import { linkOptions } from '@tanstack/react-router';\nimport { useTranslation } from 'react-i18next';\nimport { Describe } from './Describe';\nimport { Form } from './Form';\n\nconst KINDS = ['collection', 'singleton'] as const;\n\n/** `/content/new`: a new content type (a place for editors), live as soon as it is created. */\nexport const New = () => {\n const { t } = useTranslation();\n return (\n <Form\n title={t('contentTypes.newTitle')}\n kinds={KINDS}\n back={linkOptions({ to: '/content' })}\n backLabel={t('content.title')}\n intro={<Describe />}\n />\n );\n};\n","import { createLazyRoute } from '@tanstack/react-router';\nimport { Components } from '@/features/Components';\nimport { Builder as ComponentBuilder } from '@/features/Components/Builder';\nimport { New as NewComponent } from '@/features/Components/New';\nimport { New as NewContentType } from '@/features/Content/New';\n\n/** Creating content types and components, and Develop → Components (with @shapio/schema's validators). */\nexport const contentTypesLazyRoutes = {\n newContentType: createLazyRoute('/app/content/new')({ component: NewContentType }),\n components: createLazyRoute('/app/develop/components')({ component: Components }),\n newComponent: createLazyRoute('/app/develop/components/new')({ component: NewComponent }),\n component: createLazyRoute('/app/develop/components/$componentId')({ component: ComponentBuilder }),\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"contentTypes-B_mAlIcH.js","names":["DefinitionBuilder","KINDS","New","useState","useId","_Fragment","NewContentType","NewComponent","ComponentBuilder","__toESM","require_jsx_runtime","useTranslation","linkOptions","useNavigate","Link","SubmitButton","Page","PageHeader","useParams","EmptyState","Badge","createLazyRoute","Button","List","Form","KIND_LABEL_KEYS","Blocks","Builder$1","Plus","useSaveNewDefinitionsToChangeSet","HintedLabel","useDefinitions","QueryView","Textarea","useProposeSchema","SCHEMA_DESCRIPTION_MAX","useAssistEnabled","AssistButton","AssistError","Panel","useSchemaLock","LockNotice","import_jsx_runtime","Components","components","canCreate","useHasGlobalPermission","createAction","locked","t","data","Builder","componentId","KINDS$1","New$1","import_react","require_react","useDescribeSchema","navigate","description","setDescription","proposal","setProposal","propose","save","Proposal","definition","field","Describe","id","enabled","describe","event","KINDS","contentTypesLazyRoutes"],"sources":["../../src/features/Components/index.tsx","../../src/features/Components/Builder/index.tsx","../../src/features/Components/New/index.tsx","../../src/features/Content/New/hooks/useDescribeSchema.ts","../../src/features/Content/New/Describe/Proposal/index.tsx","../../src/features/Content/New/Describe/index.tsx","../../src/features/Content/New/index.tsx","../../src/app/lazyRoutes/contentTypes.tsx"],"sourcesContent":["import { Link } from '@tanstack/react-router';\nimport { Blocks, Plus } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport { useHasGlobalPermission } from '@/api/auth';\nimport { useDefinitions } from '@/api/schema';\nimport { EmptyState } from '@/components/EmptyState';\nimport { Page } from '@/components/Page';\nimport { PageHeader } from '@/components/PageHeader';\nimport { QueryView } from '@/components/QueryView';\nimport { Button } from '@/components/ui/button';\nimport { useSchemaLock } from '@/features/Models/hooks/useSchemaLock';\nimport { List } from '@/features/Models/List';\nimport { LockNotice } from '@/features/Models/LockNotice';\n\n/** `/develop/components`: reusable field groups that content types embed (Develop → Components). */\nexport const Components = () => {\n const { t } = useTranslation();\n const components = useDefinitions('component');\n const canCreate = useHasGlobalPermission('schema.create');\n const { locked, reason } = useSchemaLock();\n const createAction =\n canCreate && !locked ? (\n <Button asChild>\n <Link to=\"/develop/components/new\">\n <Plus aria-hidden=\"true\" />\n {t('contentTypes.newComponentTitle')}\n </Link>\n </Button>\n ) : null;\n return (\n <Page>\n <PageHeader title={t('shell.nav.components')} actions={createAction} />\n {locked ? <LockNotice reason={reason} /> : null}\n <QueryView\n query={components}\n isEmpty={(data) => data.length === 0}\n empty={\n <EmptyState\n icon={Blocks}\n title={t('contentTypes.noComponents')}\n description={t('models.emptyDescription')}\n action={createAction}\n />\n }\n >\n {(data) => <List items={data} />}\n </QueryView>\n </Page>\n );\n};\n","import { useParams } from '@tanstack/react-router';\nimport { Builder as DefinitionBuilder } from '@/features/Models/Builder';\n\n/** `/develop/components/:componentId`: a component in the shared definition builder. */\nexport const Builder = () => {\n const { componentId } = useParams({ from: '/app/develop/components/$componentId' });\n return <DefinitionBuilder category=\"component\" id={componentId} />;\n};\n","import { linkOptions } from '@tanstack/react-router';\nimport { useTranslation } from 'react-i18next';\nimport { Form } from '@/features/Content/New/Form';\n\nconst KINDS = ['component'] as const;\n\n/** `/develop/components/new`: a reusable component (Develop → Components). */\nexport const New = () => {\n const { t } = useTranslation();\n return (\n <Form\n title={t('contentTypes.newComponentTitle')}\n kinds={KINDS}\n back={linkOptions({ to: '/develop/components' })}\n backLabel={t('shell.nav.components')}\n />\n );\n};\n","import type { SchemaDraftResult } from '@shapio/client';\nimport { useNavigate } from '@tanstack/react-router';\nimport { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useProposeSchema } from '@/api/assist';\nimport { useSaveNewDefinitionsToChangeSet } from '@/api/changeSets';\n\n/**\n * \"Describe it\": a description → proposed definitions (nothing written) → saved as schema drafts into a\n * change set, whose review opens next. Shipping them stays a person's decision there.\n */\nexport const useDescribeSchema = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const [description, setDescription] = useState('');\n const [proposal, setProposal] = useState<SchemaDraftResult | null>(null);\n const propose = useProposeSchema();\n const save = useSaveNewDefinitionsToChangeSet();\n const run = () => {\n if (description.trim() === '') {\n return;\n }\n setProposal(null);\n save.reset();\n propose.mutate({ description: description.trim() }, { onSuccess: setProposal });\n };\n const discard = () => {\n setProposal(null);\n propose.reset();\n save.reset();\n };\n const addToChangeSet = () => {\n if (!proposal) {\n return;\n }\n save.mutate(\n {\n definitions: proposal.definitions,\n newSetTitle: t('assist.describe.setTitle', { model: proposal.model }),\n },\n {\n onSuccess: (changeSetId) => void navigate({ to: '/changes/$changeSetId', params: { changeSetId } }),\n },\n );\n };\n return {\n description,\n setDescription,\n proposal,\n run,\n discard,\n addToChangeSet,\n proposing: propose.isPending,\n proposeError: propose.error,\n adding: save.isPending,\n addError: save.error,\n };\n};\n","import type { SchemaDraftResult } from '@shapio/client';\nimport { useTranslation } from 'react-i18next';\nimport { Badge } from '@/components/ui/badge';\nimport { KIND_LABEL_KEYS } from '@/features/Models/constants';\n\ntype ProposalProps = { proposal: SchemaDraftResult };\n\n/** The proposed definitions at a glance: name, kind, API ID and fields, before they go into a change set. */\nexport const Proposal = ({ proposal }: ProposalProps) => {\n const { t } = useTranslation();\n return (\n <div className=\"space-y-3\">\n <p className=\"text-meta text-muted-foreground\">\n {t('assist.describe.proposedBy', { model: proposal.model })}\n </p>\n <ul aria-label={t('assist.describe.proposalLabel')} className=\"space-y-3\">\n {proposal.definitions.map((definition) => (\n <li key={definition.id} className=\"rounded-lg border p-3\">\n <div className=\"flex flex-wrap items-center gap-2\">\n <span className=\"text-sm font-semibold\">{definition.label}</span>\n <Badge variant=\"secondary\">{t(KIND_LABEL_KEYS[definition.kind])}</Badge>\n <span className=\"font-mono text-meta text-muted-foreground\">{definition.apiKey}</span>\n </div>\n <ul className=\"mt-2 space-y-0.5 text-meta text-muted-foreground\">\n {definition.fields.map((field) => (\n <li key={field.id}>\n <span className=\"text-foreground\">{field.label}</span>{' '}\n {t('assist.describe.fieldType', { type: t(`models.dataTypes.${field.type}.name`) })}\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n </div>\n );\n};\n","import { useId } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useAssistEnabled } from '@/api/assist';\nimport { AssistButton } from '@/components/AssistButton';\nimport { AssistError } from '@/components/AssistError';\nimport { HintedLabel } from '@/components/HintedLabel';\nimport { Panel } from '@/components/Panel';\nimport { SubmitButton } from '@/components/SubmitButton';\nimport { Button } from '@/components/ui/button';\nimport { Textarea } from '@/components/ui/textarea';\nimport { SCHEMA_DESCRIPTION_MAX } from '@/constants/assist';\nimport { useSchemaLock } from '@/features/Models/hooks/useSchemaLock';\nimport { useDescribeSchema } from '../hooks/useDescribeSchema';\nimport { Proposal } from './Proposal';\n\n/** \"Describe it\" above the new content type form: a model proposes the types, a change set holds them. */\nexport const Describe = () => {\n const { t } = useTranslation();\n const id = useId();\n const enabled = useAssistEnabled();\n const { locked } = useSchemaLock();\n const describe = useDescribeSchema();\n if (!enabled) {\n return null;\n }\n return (\n <Panel title={t('assist.describe.title')} titleAs=\"h2\">\n <div className=\"space-y-3\">\n {describe.proposal ? (\n <form\n className=\"space-y-3\"\n onSubmit={(event) => {\n event.preventDefault();\n describe.addToChangeSet();\n }}\n >\n <Proposal proposal={describe.proposal} />\n <AssistError error={describe.addError} />\n <div className=\"flex flex-wrap justify-end gap-2\">\n <Button type=\"button\" variant=\"outline\" onClick={describe.discard}>\n {t('assist.discard')}\n </Button>\n <SubmitButton pending={describe.adding} pendingLabel={t('common.saving')} disabled={locked}>\n {t('assist.describe.add')}\n </SubmitButton>\n </div>\n </form>\n ) : (\n <>\n <div className=\"space-y-2\">\n <HintedLabel\n htmlFor={`${id}-description`}\n label={t('assist.describe.label')}\n hint={t('assist.describe.hint')}\n />\n <Textarea\n id={`${id}-description`}\n value={describe.description}\n rows={4}\n maxLength={SCHEMA_DESCRIPTION_MAX}\n placeholder={t('assist.describe.placeholder')}\n disabled={describe.proposing}\n onChange={(event) => describe.setDescription(event.target.value)}\n />\n </div>\n <AssistError error={describe.proposeError} />\n <div className=\"flex justify-end\">\n <AssistButton\n variant=\"outline\"\n size=\"default\"\n pending={describe.proposing}\n pendingLabel={t('assist.working')}\n disabled={describe.description.trim() === '' || locked}\n onClick={describe.run}\n >\n {t('assist.describe.run')}\n </AssistButton>\n </div>\n </>\n )}\n </div>\n </Panel>\n );\n};\n","import { linkOptions } from '@tanstack/react-router';\nimport { useTranslation } from 'react-i18next';\nimport { Describe } from './Describe';\nimport { Form } from './Form';\n\nconst KINDS = ['collection', 'singleton'] as const;\n\n/** `/content/new`: a new content type (a place for editors), live as soon as it is created. */\nexport const New = () => {\n const { t } = useTranslation();\n return (\n <Form\n title={t('contentTypes.newTitle')}\n kinds={KINDS}\n back={linkOptions({ to: '/content' })}\n backLabel={t('content.title')}\n intro={<Describe />}\n />\n );\n};\n","import { createLazyRoute } from '@tanstack/react-router';\nimport { Components } from '@/features/Components';\nimport { Builder as ComponentBuilder } from '@/features/Components/Builder';\nimport { New as NewComponent } from '@/features/Components/New';\nimport { New as NewContentType } from '@/features/Content/New';\n\n/** Creating content types and components, and Develop → Components (with @shapio/schema's validators). */\nexport const contentTypesLazyRoutes = {\n newContentType: createLazyRoute('/app/content/new')({ component: NewContentType }),\n components: createLazyRoute('/app/develop/components')({ component: Components }),\n newComponent: createLazyRoute('/app/develop/components/new')({ component: NewComponent }),\n component: createLazyRoute('/app/develop/components/$componentId')({ component: ComponentBuilder }),\n};\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{m as n}from"./cn-CL1YHRrS.js";var r=e(t(),1),i=(0,r.createContext)(null),a=(0,r.createContext)(null),o=()=>{let e=(0,r.useContext)(i);if(!e)throw Error(`useFieldsEnvironment must be used inside <FieldsProvider>`);return e},s=()=>{let e=(0,r.useContext)(a);if(!e)throw Error(`useEntryFormStore must be used inside <FieldsProvider>`);return e},c=e=>n(s(),e),l=(0,r.createContext)(null),u=()=>(0,r.useContext)(l);export{s as a,c as i,i as n,o,l as r,u as s,a as t};
2
- //# sourceMappingURL=context-4Jl20mYc.js.map
1
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{m as n}from"./cn-h5ORT3LK.js";var r=e(t(),1),i=(0,r.createContext)(null),a=(0,r.createContext)(null),o=()=>{let e=(0,r.useContext)(i);if(!e)throw Error(`useFieldsEnvironment must be used inside <FieldsProvider>`);return e},s=()=>{let e=(0,r.useContext)(a);if(!e)throw Error(`useEntryFormStore must be used inside <FieldsProvider>`);return e},c=e=>n(s(),e),l=(0,r.createContext)(null),u=()=>(0,r.useContext)(l);export{s as a,c as i,i as n,o,l as r,u as s,a as t};
2
+ //# sourceMappingURL=context-DyyMW7Md.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-4Jl20mYc.js","names":["createContext","useContext","__toESM","useStore","import_react","require_react","FieldsEnvironmentContext","EntryFormStoreContext","useFieldsEnvironment","environment","useEntryFormStore","store","useEntryForm","selector","SiblingValuesContext","useSiblingValues"],"sources":["../../src/fields/form/context.ts"],"sourcesContent":["import type { EditorDefinition, PickedMedia, MediaPickOptions } from '@shapio/editor-sdk';\nimport type { ComponentDefinition, ModelDefinition, SchemaDefinition } from '@shapio/schema';\nimport { createContext, useContext } from 'react';\nimport { useStore } from 'zustand';\nimport type { UploadedMedia } from '@/hooks/useMediaUploader';\nimport type { EntryFormState, EntryFormStore } from './store';\n\n/** What every field editor in a form shares: the schema, the entry, and capabilities. */\nexport type FieldsEnvironment = {\n /** Prefix for DOM ids, unique per form on the page (the page's form and an inline-create drawer). */\n idPrefix: string;\n /** The model the entry belongs to. */\n model: ModelDefinition;\n /** Components by stable ID (for component and dynamic-zone fields). */\n components: ReadonlyMap<string, ComponentDefinition>;\n /** Every model by stable ID (relation targets). */\n models: ReadonlyMap<string, ModelDefinition>;\n /** The locale being edited, or null when the model is not localized. */\n locale: string | null;\n entryId: string | null;\n /** Nothing can be changed (no update permission, viewing history). */\n readOnly: boolean;\n /** Temporarily unavailable (saving a conflict resolution, reloading). */\n disabled: boolean;\n runtimeEditors: ReadonlyMap<string, EditorDefinition>;\n pickMedia: (options?: MediaPickOptions) => Promise<PickedMedia[] | null>;\n /**\n * Uploads one file into the library (public, root folder) and resolves with the new asset, for files\n * dropped or pasted into rich text. Absent without `media.write`: editors then don't accept files.\n */\n uploadMedia?: (file: File) => Promise<UploadedMedia>;\n};\n\nexport const FieldsEnvironmentContext = createContext<FieldsEnvironment | null>(null);\nexport const EntryFormStoreContext = createContext<EntryFormStore | null>(null);\n\nexport const useFieldsEnvironment = (): FieldsEnvironment => {\n const environment = useContext(FieldsEnvironmentContext);\n if (!environment) {\n throw new Error('useFieldsEnvironment must be used inside <FieldsProvider>');\n }\n return environment;\n};\n\nexport const useEntryFormStore = (): EntryFormStore => {\n const store = useContext(EntryFormStoreContext);\n if (!store) {\n throw new Error('useEntryFormStore must be used inside <FieldsProvider>');\n }\n return store;\n};\n\nexport const useEntryForm = <T>(selector: (state: EntryFormState) => T): T =>\n useStore(useEntryFormStore(), selector);\n\n/** The definition and values of the level a field sits in (the entry, or one component item). */\nexport type SiblingValues = { definition: SchemaDefinition; values: Readonly<Record<string, unknown>> };\n\nexport const SiblingValuesContext = createContext<SiblingValues | null>(null);\n\nexport const useSiblingValues = () => useContext(SiblingValuesContext);\n"],"mappings":"0IAiCaM,GAAA,EAA2BN,EAAAA,cAAAA,CAAwC,IAAI,EACvEO,GAAA,EAAwBP,EAAAA,cAAAA,CAAqC,IAAI,EAEjEQ,MAAgD,CAC3D,IAAMC,GAAA,EAAcR,EAAAA,WAAAA,CAAWK,CAAwB,EACvD,GAAI,CAACG,EACH,MAAU,MAAM,2DAA2D,EAE7E,OAAOA,CACT,EAEaC,MAA0C,CACrD,IAAMC,GAAA,EAAQV,EAAAA,WAAAA,CAAWM,CAAqB,EAC9C,GAAI,CAACI,EACH,MAAU,MAAM,wDAAwD,EAE1E,OAAOA,CACT,EAEaC,EAAmB,GAC9BT,EAASO,EAAkB,EAAGG,CAAQ,EAK3BC,GAAA,EAAuBd,EAAAA,cAAAA,CAAoC,IAAI,EAE/De,OAAA,EAAyBd,EAAAA,WAAAA,CAAWa,CAAoB"}
1
+ {"version":3,"file":"context-DyyMW7Md.js","names":["createContext","useContext","__toESM","useStore","import_react","require_react","FieldsEnvironmentContext","EntryFormStoreContext","useFieldsEnvironment","environment","useEntryFormStore","store","useEntryForm","selector","SiblingValuesContext","useSiblingValues"],"sources":["../../src/fields/form/context.ts"],"sourcesContent":["import type { EditorDefinition, PickedMedia, MediaPickOptions } from '@shapio/editor-sdk';\nimport type { ComponentDefinition, ModelDefinition, SchemaDefinition } from '@shapio/schema';\nimport { createContext, useContext } from 'react';\nimport { useStore } from 'zustand';\nimport type { UploadedMedia } from '@/hooks/useMediaUploader';\nimport type { EntryFormState, EntryFormStore } from './store';\n\n/** What every field editor in a form shares: the schema, the entry, and capabilities. */\nexport type FieldsEnvironment = {\n /** Prefix for DOM ids, unique per form on the page (the page's form and an inline-create drawer). */\n idPrefix: string;\n /** The model the entry belongs to. */\n model: ModelDefinition;\n /** Components by stable ID (for component and dynamic-zone fields). */\n components: ReadonlyMap<string, ComponentDefinition>;\n /** Every model by stable ID (relation targets). */\n models: ReadonlyMap<string, ModelDefinition>;\n /** The locale being edited, or null when the model is not localized. */\n locale: string | null;\n entryId: string | null;\n /** Nothing can be changed (no update permission, viewing history). */\n readOnly: boolean;\n /** Temporarily unavailable (saving a conflict resolution, reloading). */\n disabled: boolean;\n runtimeEditors: ReadonlyMap<string, EditorDefinition>;\n pickMedia: (options?: MediaPickOptions) => Promise<PickedMedia[] | null>;\n /**\n * Uploads one file into the library (public, root folder) and resolves with the new asset, for files\n * dropped or pasted into rich text. Absent without `media.write`: editors then don't accept files.\n */\n uploadMedia?: (file: File) => Promise<UploadedMedia>;\n};\n\nexport const FieldsEnvironmentContext = createContext<FieldsEnvironment | null>(null);\nexport const EntryFormStoreContext = createContext<EntryFormStore | null>(null);\n\nexport const useFieldsEnvironment = (): FieldsEnvironment => {\n const environment = useContext(FieldsEnvironmentContext);\n if (!environment) {\n throw new Error('useFieldsEnvironment must be used inside <FieldsProvider>');\n }\n return environment;\n};\n\nexport const useEntryFormStore = (): EntryFormStore => {\n const store = useContext(EntryFormStoreContext);\n if (!store) {\n throw new Error('useEntryFormStore must be used inside <FieldsProvider>');\n }\n return store;\n};\n\nexport const useEntryForm = <T>(selector: (state: EntryFormState) => T): T =>\n useStore(useEntryFormStore(), selector);\n\n/** The definition and values of the level a field sits in (the entry, or one component item). */\nexport type SiblingValues = { definition: SchemaDefinition; values: Readonly<Record<string, unknown>> };\n\nexport const SiblingValuesContext = createContext<SiblingValues | null>(null);\n\nexport const useSiblingValues = () => useContext(SiblingValuesContext);\n"],"mappings":"0IAiCaM,GAAA,EAA2BN,EAAAA,cAAAA,CAAwC,IAAI,EACvEO,GAAA,EAAwBP,EAAAA,cAAAA,CAAqC,IAAI,EAEjEQ,MAAgD,CAC3D,IAAMC,GAAA,EAAcR,EAAAA,WAAAA,CAAWK,CAAwB,EACvD,GAAI,CAACG,EACH,MAAU,MAAM,2DAA2D,EAE7E,OAAOA,CACT,EAEaC,MAA0C,CACrD,IAAMC,GAAA,EAAQV,EAAAA,WAAAA,CAAWM,CAAqB,EAC9C,GAAI,CAACI,EACH,MAAU,MAAM,wDAAwD,EAE1E,OAAOA,CACT,EAEaC,EAAmB,GAC9BT,EAASO,EAAkB,EAAGG,CAAQ,EAK3BC,GAAA,EAAuBd,EAAAA,cAAAA,CAAoC,IAAI,EAE/De,OAAA,EAAyBd,EAAAA,WAAAA,CAAWa,CAAoB"}
@@ -1,2 +1,2 @@
1
- import{i as e}from"./cn-CL1YHRrS.js";var t={name:`copy`,size:24,node:[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]};t.node;var n=e(t);export{n as t};
2
- //# sourceMappingURL=copy-t6kAFw-O.js.map
1
+ import{i as e}from"./cn-h5ORT3LK.js";var t={name:`copy`,size:24,node:[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]};t.node;var n=e(t);export{n as t};
2
+ //# sourceMappingURL=copy-DjzlFY9u.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"copy-t6kAFw-O.js","names":["createLucideIcon","__iconData","Copy"],"sources":["../../../../node_modules/.pnpm/lucide-react@1.49.0_@types+react@19.3.0_react@19.3.0/node_modules/lucide-react/dist/esm/icons/copy.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.49.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"copy\",\n size: 24,\n node: [\n [\"rect\", { width: \"14\", height: \"14\", x: \"8\", y: \"8\", rx: \"2\", ry: \"2\", key: \"17jyea\" }],\n [\"path\", { d: \"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\", key: \"zix9uf\" }]\n ]\n};\n__iconData.node;\nconst Copy = createLucideIcon(__iconData);\n\nexport { __iconData, Copy as default };\n//# sourceMappingURL=copy.mjs.map\n"],"ignoreList":[0],"mappings":"qCASA,IAAMC,EAAa,CACjB,KAAM,OACN,KAAM,GACN,KAAM,CACJ,CAAC,OAAQ,CAAE,MAAO,KAAM,OAAQ,KAAM,EAAG,IAAK,EAAG,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,QAAS,CAAC,EACvF,CAAC,OAAQ,CAAE,EAAG,0DAA2D,IAAK,QAAS,CAAC,CAC1F,CACF,EACAA,EAAW,KACX,IAAMC,EAAOF,EAAiBC,CAAU"}
1
+ {"version":3,"file":"copy-DjzlFY9u.js","names":["createLucideIcon","__iconData","Copy"],"sources":["../../../../node_modules/.pnpm/lucide-react@1.49.0_@types+react@19.3.0_react@19.3.0/node_modules/lucide-react/dist/esm/icons/copy.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.49.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"copy\",\n size: 24,\n node: [\n [\"rect\", { width: \"14\", height: \"14\", x: \"8\", y: \"8\", rx: \"2\", ry: \"2\", key: \"17jyea\" }],\n [\"path\", { d: \"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\", key: \"zix9uf\" }]\n ]\n};\n__iconData.node;\nconst Copy = createLucideIcon(__iconData);\n\nexport { __iconData, Copy as default };\n//# sourceMappingURL=copy.mjs.map\n"],"ignoreList":[0],"mappings":"qCASA,IAAMC,EAAa,CACjB,KAAM,OACN,KAAM,GACN,KAAM,CACJ,CAAC,OAAQ,CAAE,MAAO,KAAM,OAAQ,KAAM,EAAG,IAAK,EAAG,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,QAAS,CAAC,EACvF,CAAC,OAAQ,CAAE,EAAG,0DAA2D,IAAK,QAAS,CAAC,CAC1F,CACF,EACAA,EAAW,KACX,IAAMC,EAAOF,EAAiBC,CAAU"}
@@ -1,2 +1,2 @@
1
- import{v as e}from"./table-DQ5ILlSh.js";var t=e=>String(e).padStart(2,`0`),n=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(?::(\d{2}))?$/,r=36e5,i=e=>`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}T${t(e.getHours())}:${t(e.getMinutes())}`,a=e=>{let t=n.exec(e);if(!t)return;let[r=0,i=0,a=0,o=0,s=0,c=0]=t.slice(1).map(e=>e===void 0?0:Number(e)),l=new Date(r,i-1,a,o,s,c);return l.getFullYear()===r&&l.getMonth()===i-1&&l.getDate()===a&&l.getHours()===o&&l.getMinutes()===s?l.toISOString():void 0},o=(e=new Date)=>{let t=new Date(e.getTime()+r/2);return t.setMinutes(0,0,0),i(new Date(t.getTime()+r))},s=()=>e().refine(e=>a(e)!==void 0,`validation.dateTime`);export{a as n,o as r,s as t};
2
- //# sourceMappingURL=dateTimeLocal-IDUOKulz.js.map
1
+ import{v as e}from"./table-BMbbRUK9.js";var t=e=>String(e).padStart(2,`0`),n=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(?::(\d{2}))?$/,r=36e5,i=e=>`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}T${t(e.getHours())}:${t(e.getMinutes())}`,a=e=>{let t=n.exec(e);if(!t)return;let[r=0,i=0,a=0,o=0,s=0,c=0]=t.slice(1).map(e=>e===void 0?0:Number(e)),l=new Date(r,i-1,a,o,s,c);return l.getFullYear()===r&&l.getMonth()===i-1&&l.getDate()===a&&l.getHours()===o&&l.getMinutes()===s?l.toISOString():void 0},o=(e=new Date)=>{let t=new Date(e.getTime()+r/2);return t.setMinutes(0,0,0),i(new Date(t.getTime()+r))},s=()=>e().refine(e=>a(e)!==void 0,`validation.dateTime`);export{a as n,o as r,s as t};
2
+ //# sourceMappingURL=dateTimeLocal-DFXY779D.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dateTimeLocal-IDUOKulz.js","names":["z.string","string","pad","value","DATE_TIME_LOCAL","HOUR_MS","toDateTimeLocalValue","date","dateTimeLocalToIso","match","year","month","day","hours","minutes","seconds","part","defaultScheduleValue","next","now","dateTimeLocalField"],"sources":["../../src/features/Publishing/helpers/dateTimeLocal.ts"],"sourcesContent":["import { z } from 'zod';\n\nconst pad = (value: number) => String(value).padStart(2, '0');\n\nconst DATE_TIME_LOCAL = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2})(?::(\\d{2}))?$/;\n\nconst HOUR_MS = 60 * 60 * 1000;\n\n/** `YYYY-MM-DDTHH:mm` in the browser's time zone: the value format of `<input type=\"datetime-local\">`. */\nexport const toDateTimeLocalValue = (date: Date): string =>\n `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}T${pad(date.getHours())}:${pad(date.getMinutes())}`;\n\n/**\n * The instant a `datetime-local` value means (read in the browser's time zone) as an ISO string for the\n * API, or `undefined` when the value is not a real date and time (e.g. 31 February).\n */\nexport const dateTimeLocalToIso = (value: string): string | undefined => {\n const match = DATE_TIME_LOCAL.exec(value);\n if (!match) {\n return undefined;\n }\n // Seconds are optional in the value; a missing group reads as 0.\n const [year = 0, month = 0, day = 0, hours = 0, minutes = 0, seconds = 0] = match\n .slice(1)\n .map((part) => (part === undefined ? 0 : Number(part)));\n const date = new Date(year, month - 1, day, hours, minutes, seconds);\n const roundTrips =\n date.getFullYear() === year &&\n date.getMonth() === month - 1 &&\n date.getDate() === day &&\n date.getHours() === hours &&\n date.getMinutes() === minutes;\n return roundTrips ? date.toISOString() : undefined;\n};\n\n/** The default time offered for a new schedule: the start of the next hour, at least 30 minutes away. */\nexport const defaultScheduleValue = (now: Date = new Date()): string => {\n const next = new Date(now.getTime() + HOUR_MS / 2);\n next.setMinutes(0, 0, 0);\n return toDateTimeLocalValue(new Date(next.getTime() + HOUR_MS));\n};\n\n/** A form field holding a `datetime-local` value that must be a real date and time. */\nexport const dateTimeLocalField = () =>\n z.string().refine((value) => dateTimeLocalToIso(value) !== undefined, 'validation.dateTime');\n"],"mappings":"wCAEA,IAAME,EAAO,GAAkB,OAAOC,CAAK,CAAC,CAAC,SAAS,EAAG,GAAG,EAEtDC,EAAkB,yDAElBC,EAAU,KAGHC,EAAwB,GACnC,GAAGC,EAAK,YAAY,EAAE,GAAGL,EAAIK,EAAK,SAAS,EAAI,CAAC,EAAE,GAAGL,EAAIK,EAAK,QAAQ,CAAC,EAAE,GAAGL,EAAIK,EAAK,SAAS,CAAC,EAAE,GAAGL,EAAIK,EAAK,WAAW,CAAC,IAM9GC,EAAsB,GAAsC,CACvE,IAAMC,EAAQL,EAAgB,KAAKD,CAAK,EACxC,GAAI,CAACM,EACH,OAGF,GAAM,CAACC,EAAO,EAAGC,EAAQ,EAAGC,EAAM,EAAGC,EAAQ,EAAGC,EAAU,EAAGC,EAAU,GAAKN,EACzE,MAAM,CAAC,CAAC,CACR,IAAK,GAAUO,IAAS,IAAA,GAAY,EAAI,OAAOA,CAAI,CAAE,EAClDT,EAAO,IAAI,KAAKG,EAAMC,EAAQ,EAAGC,EAAKC,EAAOC,EAASC,CAAO,EAOnE,OALER,EAAK,YAAY,IAAMG,GACvBH,EAAK,SAAS,IAAMI,EAAQ,GAC5BJ,EAAK,QAAQ,IAAMK,GACnBL,EAAK,SAAS,IAAMM,GACpBN,EAAK,WAAW,IAAMO,EACJP,EAAK,YAAY,EAAI,IAAA,EAC3C,EAGaU,GAAwB,EAAY,IAAI,OAAmB,CACtE,IAAMC,EAAO,IAAI,KAAKC,EAAI,QAAQ,EAAId,EAAU,CAAC,EAEjD,OADAa,EAAK,WAAW,EAAG,EAAG,CAAC,EAChBZ,EAAqB,IAAI,KAAKY,EAAK,QAAQ,EAAIb,CAAO,CAAC,CAChE,EAGae,MACXpB,EAAS,CAAC,CAAC,OAAQ,GAAUQ,EAAmBL,CAAK,IAAM,IAAA,GAAW,qBAAqB"}
1
+ {"version":3,"file":"dateTimeLocal-DFXY779D.js","names":["z.string","string","pad","value","DATE_TIME_LOCAL","HOUR_MS","toDateTimeLocalValue","date","dateTimeLocalToIso","match","year","month","day","hours","minutes","seconds","part","defaultScheduleValue","next","now","dateTimeLocalField"],"sources":["../../src/features/Publishing/helpers/dateTimeLocal.ts"],"sourcesContent":["import { z } from 'zod';\n\nconst pad = (value: number) => String(value).padStart(2, '0');\n\nconst DATE_TIME_LOCAL = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2})(?::(\\d{2}))?$/;\n\nconst HOUR_MS = 60 * 60 * 1000;\n\n/** `YYYY-MM-DDTHH:mm` in the browser's time zone: the value format of `<input type=\"datetime-local\">`. */\nexport const toDateTimeLocalValue = (date: Date): string =>\n `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}T${pad(date.getHours())}:${pad(date.getMinutes())}`;\n\n/**\n * The instant a `datetime-local` value means (read in the browser's time zone) as an ISO string for the\n * API, or `undefined` when the value is not a real date and time (e.g. 31 February).\n */\nexport const dateTimeLocalToIso = (value: string): string | undefined => {\n const match = DATE_TIME_LOCAL.exec(value);\n if (!match) {\n return undefined;\n }\n // Seconds are optional in the value; a missing group reads as 0.\n const [year = 0, month = 0, day = 0, hours = 0, minutes = 0, seconds = 0] = match\n .slice(1)\n .map((part) => (part === undefined ? 0 : Number(part)));\n const date = new Date(year, month - 1, day, hours, minutes, seconds);\n const roundTrips =\n date.getFullYear() === year &&\n date.getMonth() === month - 1 &&\n date.getDate() === day &&\n date.getHours() === hours &&\n date.getMinutes() === minutes;\n return roundTrips ? date.toISOString() : undefined;\n};\n\n/** The default time offered for a new schedule: the start of the next hour, at least 30 minutes away. */\nexport const defaultScheduleValue = (now: Date = new Date()): string => {\n const next = new Date(now.getTime() + HOUR_MS / 2);\n next.setMinutes(0, 0, 0);\n return toDateTimeLocalValue(new Date(next.getTime() + HOUR_MS));\n};\n\n/** A form field holding a `datetime-local` value that must be a real date and time. */\nexport const dateTimeLocalField = () =>\n z.string().refine((value) => dateTimeLocalToIso(value) !== undefined, 'validation.dateTime');\n"],"mappings":"wCAEA,IAAME,EAAO,GAAkB,OAAOC,CAAK,CAAC,CAAC,SAAS,EAAG,GAAG,EAEtDC,EAAkB,yDAElBC,EAAU,KAGHC,EAAwB,GACnC,GAAGC,EAAK,YAAY,EAAE,GAAGL,EAAIK,EAAK,SAAS,EAAI,CAAC,EAAE,GAAGL,EAAIK,EAAK,QAAQ,CAAC,EAAE,GAAGL,EAAIK,EAAK,SAAS,CAAC,EAAE,GAAGL,EAAIK,EAAK,WAAW,CAAC,IAM9GC,EAAsB,GAAsC,CACvE,IAAMC,EAAQL,EAAgB,KAAKD,CAAK,EACxC,GAAI,CAACM,EACH,OAGF,GAAM,CAACC,EAAO,EAAGC,EAAQ,EAAGC,EAAM,EAAGC,EAAQ,EAAGC,EAAU,EAAGC,EAAU,GAAKN,EACzE,MAAM,CAAC,CAAC,CACR,IAAK,GAAUO,IAAS,IAAA,GAAY,EAAI,OAAOA,CAAI,CAAE,EAClDT,EAAO,IAAI,KAAKG,EAAMC,EAAQ,EAAGC,EAAKC,EAAOC,EAASC,CAAO,EAOnE,OALER,EAAK,YAAY,IAAMG,GACvBH,EAAK,SAAS,IAAMI,EAAQ,GAC5BJ,EAAK,QAAQ,IAAMK,GACnBL,EAAK,SAAS,IAAMM,GACpBN,EAAK,WAAW,IAAMO,EACJP,EAAK,YAAY,EAAI,IAAA,EAC3C,EAGaU,GAAwB,EAAY,IAAI,OAAmB,CACtE,IAAMC,EAAO,IAAI,KAAKC,EAAI,QAAQ,EAAId,EAAU,CAAC,EAEjD,OADAa,EAAK,WAAW,EAAG,EAAG,CAAC,EAChBZ,EAAqB,IAAI,KAAKY,EAAK,QAAQ,EAAIb,CAAO,CAAC,CAChE,EAGae,MACXpB,EAAS,CAAC,CAAC,OAAQ,GAAUQ,EAAmBL,CAAK,IAAM,IAAA,GAAW,qBAAqB"}
@@ -1,5 +1,5 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./View-BLsQYPow.js","./rolldown-runtime-Dd_uD5pT.js","./react-CQOZoUwg.js","./jsx-runtime-DREnUpxT.js","./w3c-keyname-BOAvb0qz.js"])))=>i.map(i=>d[i]);
2
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{t as n}from"./jsx-runtime-DREnUpxT.js";import{H as r,P as i,V as a,bt as o,d as s,f as c,i as l,j as u,l as d,p as f,r as p,s as m,t as h,u as g,ut as ee}from"./cn-CL1YHRrS.js";import{t as _}from"./useQueries-CYfcxI0Q.js";import{C as v,T as y,et as te,h as ne,u as re,x as b}from"./auth-YVfK3SxF.js";import{A as ie,O as ae,_ as x,a as S,i as C,j as oe,k as se,n as w,o as T,r as ce,t as E,v as D}from"./badge-lJ4Ih_Zn.js";import{a as le,l as ue,n as de,p as fe,s as pe,t as me,u as he}from"./useResolvedScheme-i1EwGHuF.js";import{i as O,n as k,o as ge,t as _e}from"./RowTitle-B-7RptyN.js";import{t as A}from"./fileRoute-CVQpW8cj.js";import{t as ve}from"./UnsavedChangesGuard-BfzHgUkF.js";import{D as ye,K as be,N as xe,U as Se,W as Ce,a as we,c as Te,g as Ee,h as De,i as Oe,l as ke,m as Ae,o as je,q as j,u as Me,x as Ne}from"./src-Be3Ds5Dc.js";import{E as Pe,V as Fe,_ as Ie,a as Le,c as Re,h as ze,i as M,n as N,o as Be,r as Ve,s as He,t as Ue,z as We}from"./tabs-CSqGW9Du.js";import{B as Ge,G as P,H as Ke,R as qe,U as Je,a as Ye,d as Xe,i as Ze,n as Qe,o as $e,t as et}from"./InfoHint-DtaHU1Cg.js";import{i as F,k as tt,n as nt}from"./skeleton-DElTumgk.js";import{u as rt}from"./constants-ahk0YSYl.js";import{r as it,t as at}from"./useSchemaScopeAccess-WQKmj8_3.js";import{t as ot}from"./calendar-clock-VENf4s1R.js";import{a as st,i as ct,n as lt,r as ut,t as dt}from"./select-CpHp3YOH.js";import{t as ft}from"./CursorPager-C6PyD3wE.js";import{n as pt,t as mt}from"./preload-helper-CJNJ4S3k.js";import{a as I,i as ht,n as gt,o as L,r as R,s as _t}from"./ConfirmDialog-HS8Gc2t3.js";import{t as vt}from"./circle-check-jmRQz1Jq.js";import{a as yt,d as bt,f as xt,n as St,r as Ct,t as wt,u as Tt}from"./StepList--0Fiqsq-.js";import{t as Et}from"./clock-DrSTMGjp.js";import{a as Dt,c as Ot,d as kt,i as At,m as jt,n as Mt,o as Nt,p as Pt,r as Ft,t as It}from"./snapshots-DkyyrWX3.js";import{t as Lt}from"./folder-plus-iDg1hhew.js";import{t as Rt}from"./stableId-DlNKh3HM.js";import{t as zt}from"./image-off-cxva5G-Y.js";import{t as Bt}from"./inbox-B8c9Kj_z.js";import{t as Vt}from"./pencil-C7eD5mlZ.js";import{t as Ht}from"./plus-BDZHQBlU.js";import{_ as Ut,a as Wt,c as Gt,d as Kt,f as qt,g as Jt,h as Yt,i as Xt,l as Zt,n as Qt,o as $t,p as en,r as tn,s as nn,t as rn,v as an}from"./changeSets-JmSyu3tu.js";import{D as on,O as sn,b as cn,d as ln,p as un,t as dn}from"./useCursorPager-CzB6NDOB.js";import{t as fn}from"./rotate-ccw-DCWwb4Ga.js";import{t as pn}from"./send-CbP0Rc9_.js";import{t as mn}from"./users-B01EH47o.js";import{n as hn,o as gn,t as _n,u as vn}from"./zod-79xzBIrW.js";import{t as yn}from"./settle-LRKtTN_e.js";import{a as z,g as bn,i as B,n as V,o as H,r as U,s as xn,t as W,v as Sn}from"./table-DQ5ILlSh.js";import{t as Cn}from"./HintedLabel-CVe-PIyv.js";import{r as wn}from"./sites-C6_THCVK.js";import{p as Tn,r as En,s as Dn,t as On}from"./schema-B7L9OJrX.js";import{t as G}from"./QueryView-C630REML.js";import{t as kn}from"./useDebouncedValue-Dqs3wwhn.js";import{r as An}from"./locales-oBD0q1pN.js";import{t as K}from"./Panel-ClY9b33D.js";import{r as jn}from"./schedules-DXrBSypK.js";import{n as Mn,r as Nn,t as Pn}from"./dateTimeLocal-IDUOKulz.js";import{t as Fn}from"./CopyButton-DS-bAA23.js";import{t as In}from"./FormTextareaField-tsS-UXym.js";import{n as Ln,r as Rn,t as zn}from"./SubNavLink-YjjaDN40.js";import{n as Bn,t as Vn}from"./FormSelectField-g4zrUlhv.js";import{t as Hn}from"./tokens-C-20gLAT.js";import{c as Un}from"./users-BgTNDPXx.js";var Wn={name:`calendar-x`,size:24,node:[[`path`,{d:`M8 2v3`,key:`1ioesn`}],[`path`,{d:`M16 2v3`,key:`otl347`}],[`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`,key:`h1oib`}],[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`m14 13-4 4`,key:`1gib57`}],[`path`,{d:`m10 13 4 4`,key:`153uiq`}]]};Wn.node;var Gn=l(Wn),Kn={name:`file-type`,size:24,node:[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M11 18h2`,key:`12mj7e`}],[`path`,{d:`M12 12v6`,key:`3ahymv`}],[`path`,{d:`M9 13v-.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 .5.5v.5`,key:`qbrxap`}]]};Kn.node;var qn=l(Kn),Jn={name:`git-compare`,size:24,node:[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M13 6h3a2 2 0 0 1 2 2v7`,key:`1yeb86`}],[`path`,{d:`M11 18H8a2 2 0 0 1-2-2V9`,key:`19pyzm`}]]};Jn.node;var Yn=l(Jn),Xn={name:`git-merge`,size:24,node:[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M6 21V9a9 9 0 0 0 9 9`,key:`7kw0sc`}]]};Xn.node;var Zn=l(Xn),Qn={name:`package`,size:24,node:[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]};Qn.node;var $n=l(Qn),er={name:`pin`,size:24,node:[[`path`,{d:`M12 17v5`,key:`bb1du9`}],[`path`,{d:`M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z`,key:`1nkz8b`}]]};er.node;var tr=l(er),nr={name:`puzzle`,size:24,node:[[`path`,{d:`M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z`,key:`w46dr5`}]]};nr.node;var rr=l(nr),ir={name:`radio`,size:24,node:[[`path`,{d:`M16.247 7.761a6 6 0 0 1 0 8.478`,key:`1fwjs5`}],[`path`,{d:`M19.075 4.933a10 10 0 0 1 0 14.134`,key:`ehdyv1`}],[`path`,{d:`M4.925 19.067a10 10 0 0 1 0-14.134`,key:`1q22gi`}],[`path`,{d:`M7.753 16.239a6 6 0 0 1 0-8.478`,key:`r2q7qm`}],[`circle`,{cx:`12`,cy:`12`,r:`2`,key:`1c9p78`}]]};ir.node;var ar=l(ir),or={name:`workflow`,size:24,node:[[`rect`,{width:`8`,height:`8`,x:`3`,y:`3`,rx:`2`,key:`by2w9f`}],[`path`,{d:`M7 11v4a2 2 0 0 0 2 2h4`,key:`xkn7yn`}],[`rect`,{width:`8`,height:`8`,x:`13`,y:`13`,rx:`2`,key:`1cgmvn`}]]};or.node;var sr=l(or),cr=(e,t)=>e.version===t.version||e.hash===t.hash,lr=(e,t,n)=>t&&e.hash===t.hash?{action:`skip`,reason:`unchangedLocally`}:n?n.hash===e.hash?{action:`skip`,reason:`alreadyApplied`}:t?cr(n,t)?{action:`update`,expectedVersion:n.version}:{action:`conflict`,reason:`changedOnBoth`}:{action:`conflict`,reason:`existsOnTarget`}:t?{action:`conflict`,reason:`deletedOnTarget`}:{action:`create`},ur=({local:e,base:t,remote:n,prune:r})=>e?lr(e,t,n):t?n?r?cr(n,t)?{action:`delete`,expectedVersion:n.version}:{action:`conflict`,reason:`changedOnTargetBeforeDelete`}:{action:`skip`,reason:`deletedLocallyWithoutPrune`}:{action:`skip`,reason:`alreadyDeleted`}:{action:`skip`,reason:`remoteOnly`},q=e(t(),1),dr={silent:!0},fr={openApi:`/api/docs/openapi.json`,typescript:`/api/docs/typescript`,playground:`api/graphql/playground`},pr={openApi:[...i.schema.all,`docs`,`openapi`],typescript:[...i.schema.all,`docs`,`typescript`],playground:[`develop`,`graphqlPlayground`]},mr=()=>r({queryKey:pr.openApi,queryFn:()=>s.request(fr.openApi),meta:dr}),hr=()=>r({queryKey:pr.typescript,queryFn:()=>s.request(fr.typescript),meta:dr}),gr=()=>new URL(fr.playground,g()).href,_r=()=>r({queryKey:pr.playground,queryFn:async()=>(await fetch(gr(),{method:`HEAD`,credentials:`same-origin`})).ok,staleTime:1/0,meta:dr}),J=e(n(),1),Y=({code:e,label:t,copyable:n=!0,className:r})=>(0,J.jsxs)(`div`,{className:h(`min-w-0 space-y-2`,r),children:[(0,J.jsxs)(`div`,{className:`flex min-h-9 items-center justify-between gap-2`,children:[(0,J.jsx)(`span`,{className:`text-xs font-semibold tracking-wide text-muted-foreground uppercase`,children:t}),n?(0,J.jsx)(Fn,{value:e}):null]}),(0,J.jsx)(`pre`,{role:`region`,"aria-label":t,tabIndex:0,className:`max-h-[28rem] overflow-auto rounded-lg border bg-muted p-3 font-mono text-xs leading-5 text-foreground outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50`,children:(0,J.jsx)(`code`,{children:e})})]}),vr={id:``,locale:``,snapshot:``,fields:``,populate:``,sort:``,page:``,pageSize:``,q:``,filters:[]},yr=[`locale`,`snapshot`,`fields`,`populate`,`sort`,`page`,`pageSize`,`q`],br=e=>`filters${e.replace(/^filters/,``).split(/[[\].]+/).filter(e=>e!==``).map(e=>`[${e}]`).join(``)}`,xr=(e,t)=>{let n=e.path.replace(`{id}`,t.id.trim()?encodeURIComponent(t.id.trim()):`{id}`),r=new URLSearchParams;for(let n of yr){let i=t[n].trim();i&&e.parameters.some(e=>e.name===n)&&r.append(n,i)}if(e.list)for(let e of t.filters)e.key.trim()&&e.value!==``&&r.append(br(e.key.trim()),e.value);let i=r.toString();return i?`${n}?${i}`:n},Sr=(e,t)=>!e.byId||t.id.trim()!==``,Cr=`$SHAPIO_TOKEN`,wr=(e,t)=>[`curl '${e.replace(/'/g,`'\\''`)}'`,` -H 'accept: application/json'`].concat(t?[` -H "authorization: Bearer ${Cr}"`]:[]).join(` \\
2
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{t as n}from"./jsx-runtime-DREnUpxT.js";import{H as r,P as i,V as a,bt as o,d as s,f as c,i as l,j as u,l as d,p as f,r as p,s as m,t as h,u as g,ut as ee}from"./cn-h5ORT3LK.js";import{t as _}from"./useQueries-CeDzli4Z.js";import{C as v,T as y,et as te,h as ne,u as re,x as b}from"./auth-BzCgJtgr.js";import{A as ie,O as ae,_ as x,a as S,i as C,j as oe,k as se,n as w,o as T,r as ce,t as E,v as D}from"./badge-DBoaS0nQ.js";import{a as le,l as ue,n as de,p as fe,s as pe,t as me,u as he}from"./useResolvedScheme-DHD-zisP.js";import{i as O,n as k,o as ge,t as _e}from"./RowTitle-mkKp4yfl.js";import{t as A}from"./fileRoute-CG0Dufvt.js";import{t as ve}from"./UnsavedChangesGuard-BPOCBD5T.js";import{D as ye,K as be,N as xe,U as Se,W as Ce,a as we,c as Te,g as Ee,h as De,i as Oe,l as ke,m as Ae,o as je,q as j,u as Me,x as Ne}from"./src-Be3Ds5Dc.js";import{E as Pe,V as Fe,_ as Ie,a as Le,c as Re,h as ze,i as M,n as N,o as Be,r as Ve,s as He,t as Ue,z as We}from"./tabs-C1lgOg1B.js";import{B as Ge,G as P,H as Ke,R as qe,U as Je,a as Ye,d as Xe,i as Ze,n as Qe,o as $e,t as et}from"./InfoHint-D3uwei-E.js";import{i as F,k as tt,n as nt}from"./skeleton-DJVukcn6.js";import{u as rt}from"./constants-DH7oqfO_.js";import{r as it,t as at}from"./useSchemaScopeAccess-BNeVslcv.js";import{t as ot}from"./calendar-clock-BEA3tG17.js";import{a as st,i as ct,n as lt,r as ut,t as dt}from"./select--mePTdz8.js";import{t as ft}from"./CursorPager-BW2Dl_hn.js";import{n as pt,t as mt}from"./preload-helper-DEbJbZwX.js";import{a as I,i as ht,n as gt,o as L,r as R,s as _t}from"./ConfirmDialog-BW-l3Whg.js";import{t as vt}from"./circle-check-ktACw37r.js";import{a as yt,d as bt,f as xt,n as St,r as Ct,t as wt,u as Tt}from"./StepList-BDO0Q3Wc.js";import{t as Et}from"./clock-BKNNASKp.js";import{a as Dt,c as Ot,d as kt,i as At,m as jt,n as Mt,o as Nt,p as Pt,r as Ft,t as It}from"./snapshots-BpLhILlt.js";import{t as Lt}from"./folder-plus-C-LhI4a2.js";import{t as Rt}from"./stableId-DFVM13gJ.js";import{t as zt}from"./image-off-G0M2Nh1I.js";import{t as Bt}from"./inbox-CMzYVMZo.js";import{t as Vt}from"./pencil-BLNGNJmL.js";import{t as Ht}from"./plus-BXMBYPoB.js";import{_ as Ut,a as Wt,c as Gt,d as Kt,f as qt,g as Jt,h as Yt,i as Xt,l as Zt,n as Qt,o as $t,p as en,r as tn,s as nn,t as rn,v as an}from"./changeSets-C54Ku-X9.js";import{D as on,O as sn,b as cn,d as ln,p as un,t as dn}from"./useCursorPager-CQGX41_L.js";import{t as fn}from"./rotate-ccw-DqbffhiC.js";import{t as pn}from"./send-DVgq5Iwg.js";import{t as mn}from"./users-CppI8ctO.js";import{n as hn,o as gn,t as _n,u as vn}from"./zod-Dcwk-m8X.js";import{t as yn}from"./settle-LRKtTN_e.js";import{a as z,g as bn,i as B,n as V,o as H,r as U,s as xn,t as W,v as Sn}from"./table-BMbbRUK9.js";import{t as Cn}from"./HintedLabel-BGidukgy.js";import{r as wn}from"./sites-C6_THCVK.js";import{p as Tn,r as En,s as Dn,t as On}from"./schema-CWHuez0q.js";import{t as G}from"./QueryView-C2d392ly.js";import{t as kn}from"./useDebouncedValue-Dqs3wwhn.js";import{r as An}from"./locales-DbrcdhZi.js";import{t as K}from"./Panel-DDky5_x9.js";import{r as jn}from"./schedules-CETl2eLe.js";import{n as Mn,r as Nn,t as Pn}from"./dateTimeLocal-DFXY779D.js";import{t as Fn}from"./CopyButton-CyoUMStc.js";import{t as In}from"./FormTextareaField-Bw7EkC4H.js";import{n as Ln,r as Rn,t as zn}from"./SubNavLink-C4eSybWd.js";import{n as Bn,t as Vn}from"./FormSelectField-BDIVhZh6.js";import{t as Hn}from"./tokens-BqyeN1D-.js";import{c as Un}from"./users-BRefbzuS.js";var Wn={name:`calendar-x`,size:24,node:[[`path`,{d:`M8 2v3`,key:`1ioesn`}],[`path`,{d:`M16 2v3`,key:`otl347`}],[`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`,key:`h1oib`}],[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`m14 13-4 4`,key:`1gib57`}],[`path`,{d:`m10 13 4 4`,key:`153uiq`}]]};Wn.node;var Gn=l(Wn),Kn={name:`file-type`,size:24,node:[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M11 18h2`,key:`12mj7e`}],[`path`,{d:`M12 12v6`,key:`3ahymv`}],[`path`,{d:`M9 13v-.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 .5.5v.5`,key:`qbrxap`}]]};Kn.node;var qn=l(Kn),Jn={name:`git-compare`,size:24,node:[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M13 6h3a2 2 0 0 1 2 2v7`,key:`1yeb86`}],[`path`,{d:`M11 18H8a2 2 0 0 1-2-2V9`,key:`19pyzm`}]]};Jn.node;var Yn=l(Jn),Xn={name:`git-merge`,size:24,node:[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M6 21V9a9 9 0 0 0 9 9`,key:`7kw0sc`}]]};Xn.node;var Zn=l(Xn),Qn={name:`package`,size:24,node:[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]};Qn.node;var $n=l(Qn),er={name:`pin`,size:24,node:[[`path`,{d:`M12 17v5`,key:`bb1du9`}],[`path`,{d:`M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z`,key:`1nkz8b`}]]};er.node;var tr=l(er),nr={name:`puzzle`,size:24,node:[[`path`,{d:`M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z`,key:`w46dr5`}]]};nr.node;var rr=l(nr),ir={name:`radio`,size:24,node:[[`path`,{d:`M16.247 7.761a6 6 0 0 1 0 8.478`,key:`1fwjs5`}],[`path`,{d:`M19.075 4.933a10 10 0 0 1 0 14.134`,key:`ehdyv1`}],[`path`,{d:`M4.925 19.067a10 10 0 0 1 0-14.134`,key:`1q22gi`}],[`path`,{d:`M7.753 16.239a6 6 0 0 1 0-8.478`,key:`r2q7qm`}],[`circle`,{cx:`12`,cy:`12`,r:`2`,key:`1c9p78`}]]};ir.node;var ar=l(ir),or={name:`workflow`,size:24,node:[[`rect`,{width:`8`,height:`8`,x:`3`,y:`3`,rx:`2`,key:`by2w9f`}],[`path`,{d:`M7 11v4a2 2 0 0 0 2 2h4`,key:`xkn7yn`}],[`rect`,{width:`8`,height:`8`,x:`13`,y:`13`,rx:`2`,key:`1cgmvn`}]]};or.node;var sr=l(or),cr=(e,t)=>e.version===t.version||e.hash===t.hash,lr=(e,t,n)=>t&&e.hash===t.hash?{action:`skip`,reason:`unchangedLocally`}:n?n.hash===e.hash?{action:`skip`,reason:`alreadyApplied`}:t?cr(n,t)?{action:`update`,expectedVersion:n.version}:{action:`conflict`,reason:`changedOnBoth`}:{action:`conflict`,reason:`existsOnTarget`}:t?{action:`conflict`,reason:`deletedOnTarget`}:{action:`create`},ur=({local:e,base:t,remote:n,prune:r})=>e?lr(e,t,n):t?n?r?cr(n,t)?{action:`delete`,expectedVersion:n.version}:{action:`conflict`,reason:`changedOnTargetBeforeDelete`}:{action:`skip`,reason:`deletedLocallyWithoutPrune`}:{action:`skip`,reason:`alreadyDeleted`}:{action:`skip`,reason:`remoteOnly`},q=e(t(),1),dr={silent:!0},fr={openApi:`/api/docs/openapi.json`,typescript:`/api/docs/typescript`,playground:`api/graphql/playground`},pr={openApi:[...i.schema.all,`docs`,`openapi`],typescript:[...i.schema.all,`docs`,`typescript`],playground:[`develop`,`graphqlPlayground`]},mr=()=>r({queryKey:pr.openApi,queryFn:()=>s.request(fr.openApi),meta:dr}),hr=()=>r({queryKey:pr.typescript,queryFn:()=>s.request(fr.typescript),meta:dr}),gr=()=>new URL(fr.playground,g()).href,_r=()=>r({queryKey:pr.playground,queryFn:async()=>(await fetch(gr(),{method:`HEAD`,credentials:`same-origin`})).ok,staleTime:1/0,meta:dr}),J=e(n(),1),Y=({code:e,label:t,copyable:n=!0,className:r})=>(0,J.jsxs)(`div`,{className:h(`min-w-0 space-y-2`,r),children:[(0,J.jsxs)(`div`,{className:`flex min-h-9 items-center justify-between gap-2`,children:[(0,J.jsx)(`span`,{className:`text-xs font-semibold tracking-wide text-muted-foreground uppercase`,children:t}),n?(0,J.jsx)(Fn,{value:e}):null]}),(0,J.jsx)(`pre`,{role:`region`,"aria-label":t,tabIndex:0,className:`max-h-[28rem] overflow-auto rounded-lg border bg-muted p-3 font-mono text-xs leading-5 text-foreground outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50`,children:(0,J.jsx)(`code`,{children:e})})]}),vr={id:``,locale:``,snapshot:``,fields:``,populate:``,sort:``,page:``,pageSize:``,q:``,filters:[]},yr=[`locale`,`snapshot`,`fields`,`populate`,`sort`,`page`,`pageSize`,`q`],br=e=>`filters${e.replace(/^filters/,``).split(/[[\].]+/).filter(e=>e!==``).map(e=>`[${e}]`).join(``)}`,xr=(e,t)=>{let n=e.path.replace(`{id}`,t.id.trim()?encodeURIComponent(t.id.trim()):`{id}`),r=new URLSearchParams;for(let n of yr){let i=t[n].trim();i&&e.parameters.some(e=>e.name===n)&&r.append(n,i)}if(e.list)for(let e of t.filters)e.key.trim()&&e.value!==``&&r.append(br(e.key.trim()),e.value);let i=r.toString();return i?`${n}?${i}`:n},Sr=(e,t)=>!e.byId||t.id.trim()!==``,Cr=`$SHAPIO_TOKEN`,wr=(e,t)=>[`curl '${e.replace(/'/g,`'\\''`)}'`,` -H 'accept: application/json'`].concat(t?[` -H "authorization: Bearer ${Cr}"`]:[]).join(` \\
3
3
  `),Tr=(e,t)=>{let n=t?`{
4
4
  accept: 'application/json',
5
5
  authorization: \`Bearer \${process.env.SHAPIO_TOKEN}\`,
@@ -8,4 +8,4 @@ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUw
8
8
  };
9
9
  `,n);return o<0?void 0:e.slice(a,o+4)},ss=(e,t)=>{let n=Ee(t);return[os(e,n),os(e,`${n}Input`)].filter(e=>e!==void 0).join(`
10
10
  `)},cs=({apiKey:e,edited:t})=>{let{t:n}=u(),r=hr();return(0,J.jsx)(G,{query:r,children:({source:r,schemaVersion:i})=>{let a=ss(r,e);return(0,J.jsxs)(`div`,{className:`space-y-4`,children:[t?(0,J.jsx)(I,{variant:`info`,children:(0,J.jsx)(L,{children:n(`develop.schema.preview.typesActive`,{version:i})})}):null,a?(0,J.jsx)(Y,{label:n(`develop.schema.preview.typescript`),code:a}):(0,J.jsx)(T,{size:`panel`,icon:qn,title:n(`develop.schema.preview.noTypes`)})]})}})},ls=[`form`,`rest`,`graphql`,`types`,`plan`],us={form:`develop.schema.preview.tabs.form`,rest:`develop.schema.preview.tabs.rest`,graphql:`develop.schema.preview.tabs.graphql`,types:`develop.schema.preview.tabs.types`,plan:`develop.schema.preview.tabs.plan`},ds=({file:e,analysis:t,edited:n,definitions:r})=>{let{t:i}=u(),[a,o]=(0,q.useState)(`form`),s=t?.status===`valid`?t.definition:void 0,c=(0,q.useMemo)(()=>new Map([...r.filter(t=>t.id!==e.definitionId),...s?[s]:[]].map(e=>[e.id,e])),[r,s,e.definitionId]),l=(0,J.jsx)(T,{size:`panel`,icon:jt,title:i(`develop.schema.preview.invalidTitle`),description:i(`develop.schema.preview.invalidDescription`)});return(0,J.jsx)(K,{title:i(`develop.schema.preview.title`),titleAs:`h2`,children:(0,J.jsxs)(Ue,{value:a,onValueChange:e=>o(e),children:[(0,J.jsx)(Ve,{variant:`underline`,className:`w-full justify-start overflow-x-auto`,children:ls.map(e=>(0,J.jsx)(M,{value:e,children:i(us[e])},e))}),(0,J.jsx)(N,{value:`form`,className:`pt-4`,children:s?(0,J.jsx)(ns,{definition:s,definitions:r}):l}),(0,J.jsx)(N,{value:`rest`,className:`pt-4`,children:s?(0,J.jsx)(as,{definition:s,lookup:c}):l}),(0,J.jsx)(N,{value:`graphql`,className:`pt-4`,children:s?(0,J.jsx)(rs,{definition:s,lookup:c}):l}),(0,J.jsx)(N,{value:`types`,className:`pt-4`,children:(0,J.jsx)(cs,{apiKey:e.apiKey,edited:n})}),(0,J.jsx)(N,{value:`plan`,className:`pt-4`,children:s?(0,J.jsx)(is,{before:e.base.definition,after:s}):l})]})})},fs=({file:e,workspace:t})=>{let{t:n}=u(),r=(0,q.useId)(),{setText:i,textOf:a,isDirty:o,definitions:s}=t,c=a(e),l=o(e),{analysis:d,lint:f}=Zo(e,c,s),p=(0,q.useCallback)(t=>i(e,t),[i,e]),m=d?Fo(d):[];return(0,J.jsxs)(`div`,{className:`grid gap-6 xl:grid-cols-2`,children:[(0,J.jsxs)(K,{title:e.path.slice(e.path.lastIndexOf(`/`)+1),description:e.path,flush:!0,actions:l?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(w,{tone:`warning`,label:n(`develop.schema.modified`),size:`sm`}),(0,J.jsx)(R,{tone:`danger`,title:n(`develop.schema.revertTitle`),description:n(`develop.schema.revertDescription`),confirmLabel:n(`develop.schema.revert`),onConfirm:()=>i(e,e.base.text),trigger:(0,J.jsx)(F,{type:`button`,size:`sm`,variant:`ghost`,children:n(`develop.schema.revert`)})})]}):null,children:[(0,J.jsx)(Uo,{className:`h-[28rem] rounded-none border-0 xl:h-[40rem]`,value:c,onChange:p,label:n(`develop.schema.editorLabel`,{path:e.path}),describedBy:r,readOnly:!1,schema:Yo(e.category),lint:f}),d?.status===`invalidJson`?(0,J.jsx)(`p`,{role:`status`,className:`border-t px-5 py-3 text-meta text-destructive`,children:n(`develop.schema.invalidJson`,{message:d.message})}):null,m.length>0?(0,J.jsx)(`div`,{className:`border-t p-4`,children:(0,J.jsx)(Qo,{id:r,issues:m})}):null]}),(0,J.jsx)(ds,{file:e,analysis:d,edited:l,definitions:s})]})},ps=fe(`/app/schema`),ms=({currentPath:e,nextPath:t})=>e!==t,hs=()=>{let{t:e}=u(),{query:t,workspace:n}=Vo();return(0,J.jsx)(S,{width:`full`,children:(0,J.jsx)(G,{query:t,children:()=>n?(0,J.jsx)(gs,{workspace:n}):(0,J.jsx)(T,{icon:ue,title:e(`develop.schemaTitle`)})})})},gs=({workspace:e})=>{let{t}=u(),n=y(),{file:r}=ps.useSearch(),i=Tn().data,[a,o]=(0,q.useState)([]),[s,c]=(0,q.useState)(),{files:l,dirtyFiles:d}=e,f=d.length>0&&s===void 0,p=zo({onInvalid:e=>void n({to:`/schema`,search:{file:e.path}}),onConflict:o,onApplied:c});(0,q.useEffect)(()=>{s&&n({to:`/changes/$changeSetId`,params:{changeSetId:s}})},[s,n]);let m=l.find(e=>e.path===r)??(r===$?void 0:l[0]),h=r===$||l.length===0,g=i!==void 0&&i!==e.schemaVersion,ee=t=>e.textOf(t.file),_=e=>o(t=>t.filter(t=>t.file.definitionId!==e)),v=(0,J.jsxs)(F,{type:`button`,variant:`outline`,disabled:p.pending,children:[(0,J.jsx)(an,{"aria-hidden":`true`}),t(`develop.schema.reload`)]});return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(C,{title:t(`develop.schemaTitle`),meta:t(`develop.schema.meta`,{version:e.schemaVersion,count:l.length}),actions:(0,J.jsxs)(J.Fragment,{children:[f?(0,J.jsx)(R,{tone:`danger`,title:t(`develop.schema.reloadTitle`),description:t(`develop.schema.reloadDescription`),confirmLabel:t(`develop.schema.reload`),onConfirm:()=>(o([]),e.reload()),trigger:v}):(0,J.jsxs)(F,{type:`button`,variant:`outline`,disabled:p.pending,onClick:()=>{o([]),e.reload()},children:[(0,J.jsx)(an,{"aria-hidden":`true`}),t(`develop.schema.reload`)]}),(0,J.jsx)(F,{type:`button`,disabled:!f||p.pending,onClick:()=>{o([]),p.apply(e)},children:p.pending?t(`develop.schema.applying`):t(`develop.schema.apply.label`,{count:d.length})})]})}),g?(0,J.jsx)(I,{variant:`info`,role:`status`,children:(0,J.jsx)(L,{children:t(`develop.schema.moved`,{loaded:e.schemaVersion,live:i})})}):null,a.length>0?(0,J.jsx)(vo,{conflicts:a,textOf:ee,onTakeRemote:t=>{e.takeRemote(t),_(t.definition.id)},onKeepLocal:t=>{e.keepLocal(t),_(t.definition.id)}}):null,(0,J.jsxs)(`div`,{className:`flex flex-col gap-6 lg:flex-row`,children:[(0,J.jsx)(Do,{files:l,openPath:h||!m?$:m.path,isDirty:e.isDirty}),(0,J.jsx)(`div`,{className:`min-w-0 flex-1`,children:h||!m?(0,J.jsx)(Go,{text:e.lockText}):(0,J.jsx)(fs,{file:m,workspace:e},m.definitionId)})]}),(0,J.jsx)(ve,{when:f,shouldBlock:ms})]})},_s=()=>{let{canReadUsage:e}=Z(),t=Ia(),n=Dn(`model`),{principals:r}=Ci((0,q.useMemo)(()=>(n.data??[]).map(({definition:e})=>e.id),[n.data]),e),i=new Map;for(let e of r)if(e.lastSnapshot!==null){let n=i.get(e.lastSnapshot)??[];n.push(t(e.principalKey,e.tokenName)),i.set(e.lastSnapshot,n)}return{canReadUsage:e,pinnedBy:e=>i.get(e)??[]}},vs=({seq:e,label:t,variant:n=`ghost`})=>{let{t:r}=u(),i=(0,q.useId)(),a=(0,q.useId)(),[o,s]=(0,q.useState)(!1),[c,l]=(0,q.useState)(void 0),d=Hn(),f=ii(),p=(d.data??[]).filter(e=>e.revokedAt===null),m=p.find(e=>e.id===c)??p[0],h=wn(`api/content/<model>?snapshot=${e}`,f),ee=`curl -H "Authorization: Bearer ${m?`${m.tokenPrefix}…`:`<token>`}" "${g()}${h}"`;return(0,J.jsxs)(Qe,{open:o,onOpenChange:s,modal:!0,children:[(0,J.jsx)(Ye,{asChild:!0,children:(0,J.jsxs)(F,{variant:n,size:`sm`,"aria-label":t?void 0:r(`snapshots.pinLabel`,{seq:e}),children:[(0,J.jsx)(tr,{"aria-hidden":`true`}),t??r(`snapshots.pin`)]})}),(0,J.jsxs)(Ze,{align:`end`,"aria-labelledby":i,className:`w-96 max-w-[calc(100vw-2rem)] space-y-3`,children:[(0,J.jsx)(`p`,{id:i,className:`text-sm font-semibold`,children:r(`snapshots.pinTitle`,{seq:e})}),(0,J.jsx)(`p`,{className:`text-meta text-muted-foreground`,children:r(`snapshots.pinDescription`)}),p.length>0?(0,J.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,J.jsx)(`label`,{htmlFor:a,className:`text-sm font-semibold`,children:r(`snapshots.pinToken`)}),(0,J.jsxs)(dt,{value:m?.id,onValueChange:l,children:[(0,J.jsx)(ct,{id:a,size:`sm`,className:`w-full`,children:(0,J.jsx)(st,{})}),(0,J.jsx)(lt,{children:p.map(e=>(0,J.jsx)(ut,{value:e.id,children:e.name},e.id))})]})]}):null,(0,J.jsx)(`pre`,{className:`overflow-x-auto rounded-lg bg-muted p-3 font-mono text-xs break-all whitespace-pre-wrap`,children:ee}),(0,J.jsx)(`div`,{className:`flex justify-end`,children:(0,J.jsx)(Fn,{value:ee})})]})]})},ys=({seq:e,size:t=`sm`,label:n})=>{let{t:r}=u(),i=y(),a=Mt();return(0,J.jsx)(R,{tone:`default`,title:r(`snapshots.restoreTitle`,{seq:e}),description:r(`snapshots.restoreDescription`,{seq:e}),confirmLabel:r(`snapshots.restore`),pendingLabel:r(`common.saving`),onConfirm:()=>a.mutateAsync(e,{onSuccess:e=>void i({to:`/changes/$changeSetId`,params:{changeSetId:e.id}})}),trigger:(0,J.jsxs)(F,{variant:`outline`,size:t,"aria-label":n?void 0:r(`snapshots.restoreLabel`,{seq:e}),children:[(0,J.jsx)(fn,{"aria-hidden":`true`}),n??r(`snapshots.restore`)]})})},bs=({snapshots:e,current:t,pinnedBy:n,showPins:r})=>{let{t:i}=u(),a=Q(),o=i(`common.none`);return(0,J.jsxs)(W,{children:[(0,J.jsx)(z,{children:(0,J.jsxs)(H,{children:[(0,J.jsx)(B,{children:i(`snapshots.fields.version`)}),(0,J.jsx)(B,{children:i(`snapshots.fields.when`)}),(0,J.jsx)(B,{children:i(`snapshots.fields.source`)}),(0,J.jsx)(B,{className:`text-right`,children:i(`snapshots.fields.entries`)}),(0,J.jsx)(B,{children:i(`snapshots.fields.schema`)}),r?(0,J.jsx)(B,{children:i(`snapshots.fields.pinnedBy`)}):null,(0,J.jsx)(B,{children:i(`snapshots.fields.deploy`)}),(0,J.jsx)(B,{children:(0,J.jsx)(`span`,{className:`sr-only`,children:i(`common.actions`)})})]})}),(0,J.jsx)(V,{children:e.map(e=>{let s=n(e.seq),c=e.deploymentRuns.at(-1),l=c?po[c.status]:void 0;return(0,J.jsxs)(H,{children:[(0,J.jsx)(U,{className:`whitespace-nowrap`,children:(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(_e,{asChild:!0,children:(0,J.jsx)(b,{to:`/snapshots/$seq`,params:{seq:String(e.seq)},children:i(`snapshots.version`,{seq:e.seq})})}),e.seq===t?(0,J.jsx)(w,{tone:`success`,label:i(`snapshots.live`),size:`sm`}):null]})}),(0,J.jsxs)(U,{className:`whitespace-nowrap`,title:k(e.createdAt),children:[O(e.createdAt),(0,J.jsx)(`span`,{className:`block text-meta text-muted-foreground`,children:a({type:e.actor.type})})]}),(0,J.jsxs)(U,{className:`max-w-64`,children:[(0,J.jsx)(E,{variant:`secondary`,children:i(fo[e.source])}),e.changeSetId&&e.changeSetTitle?(0,J.jsx)(b,{to:`/changes/$changeSetId`,params:{changeSetId:e.changeSetId},className:`block truncate text-meta text-link underline-offset-4 hover:underline`,children:e.changeSetTitle}):null]}),(0,J.jsx)(U,{className:`text-right tabular-nums`,children:e.changedEntries}),(0,J.jsx)(U,{className:`whitespace-nowrap tabular-nums`,children:e.schemaVersion===null?o:i(`snapshots.schemaVersion`,{version:e.schemaVersion})}),r?(0,J.jsx)(U,{className:`max-w-48`,children:s.length>0?(0,J.jsx)(`span`,{className:`block truncate`,children:s.join(`, `)}):o}):null,(0,J.jsx)(U,{children:c&&l?(0,J.jsx)(b,{to:`/publishing/deployments/runs/$runId`,params:{runId:c.id},className:`rounded-full`,children:(0,J.jsx)(w,{tone:l.tone,label:i(l.labelKey),size:`sm`})}):o}),(0,J.jsx)(U,{className:`text-right`,children:(0,J.jsxs)(`div`,{className:`flex justify-end gap-1`,children:[e.seq===t?null:(0,J.jsx)(F,{variant:`ghost`,size:`sm`,asChild:!0,children:(0,J.jsxs)(b,{to:`/snapshots/$seq`,params:{seq:String(t)},search:{from:e.seq},"aria-label":i(`snapshots.compareLabel`,{seq:e.seq,current:t}),children:[(0,J.jsx)(Yn,{"aria-hidden":`true`}),i(`snapshots.compare`)]})}),(0,J.jsx)(vs,{seq:e.seq}),e.seq===t?null:(0,J.jsx)(ys,{seq:e.seq})]})})]},e.seq)})})]})},xs=()=>{let{t:e}=u(),{canManageChanges:t}=Z(),{cursor:n}=ge({from:`/app/snapshots`}),r=y({from:`/snapshots`}),{pagerProps:i}=dn(n,e=>void r({search:{cursor:e}})),a=Nt(n),{canReadUsage:o,pinnedBy:s}=_s();return t?(0,J.jsxs)(S,{width:`full`,children:[(0,J.jsx)(C,{title:e(`snapshots.title`),meta:a.data?e(`snapshots.current`,{seq:a.data.current}):void 0}),(0,J.jsx)(G,{query:a,loadingRows:6,isEmpty:e=>e.items.length===0&&n===void 0,empty:(0,J.jsx)(T,{icon:he,title:e(`snapshots.empty`)}),children:e=>(0,J.jsx)(xn,{footer:(0,J.jsx)(ft,{...i(e.nextCursor)}),children:(0,J.jsx)(bs,{snapshots:e.items,current:e.current,pinnedBy:s,showPins:o})})})]}):(0,J.jsxs)(S,{width:`full`,children:[(0,J.jsx)(C,{title:e(`snapshots.title`)}),(0,J.jsx)(Wi,{})]})},Ss=({seq:e,row:t,previous:n,changedCount:r})=>{let{t:i}=u(),a=Q(),o=Un(),s=t?.actor.type===`admin`?o.data?.find(e=>e.id===t.actor.id)?.name:void 0,c=[i(`snapshots.version`,{seq:e}),t?k(t.createdAt):``,t?i(`snapshots.timeline.shippedBy`,{name:s??a({type:t.actor.type})}):``,t?.schemaVersion==null?``:i(`snapshots.schemaVersion`,{version:t.schemaVersion}),n!==void 0&&r!==void 0?i(`snapshots.timeline.changedSince`,{count:r,seq:n}):``].filter(Boolean);return(0,J.jsx)(`p`,{"aria-live":`polite`,className:`text-sm font-semibold tabular-nums`,children:c.join(` · `)})},Cs=(e,t)=>{let n=ye(e),r=Ne(e).cover;return{modelId:e.id,modelKey:e.apiKey,routeKey:De(e),label:e.label,singleton:e.kind===`singleton`,titleKey:n?.apiKey??null,coverKey:r?.apiKey??null,locales:t}},ws=()=>{let e=Dn(`model`),t=An();return{places:(0,q.useMemo)(()=>{if(!e.data||!t.data)return;let n=t.data.map(e=>e.code),r=t.data.find(e=>e.isDefault)?.code??n[0]??`en`;return e.data.flatMap(({definition:e})=>e.kind===`component`?[]:[Cs(e,e.localized?n:[r])])},[e.data,t.data]),error:e.error??t.error}},Ts=(e,t)=>t?e.length>0&&e.every(e=>e===`published`)?`added`:e.length>0?`changed`:`unchanged`:`removed`,Es=(e,t)=>{let n=new Map;for(let t of e){let e=n.get(t.id);if(e){e.locales.includes(t.locale)||e.locales.push(t.locale),e.title??=t.title,e.coverUrl??=t.coverUrl;continue}n.set(t.id,{id:t.id,title:t.title,coverUrl:t.coverUrl,locales:[t.locale],mark:`unchanged`,revisionIds:{}})}let r=[];for(let e of t){let t=n.get(e.id),i=Object.fromEntries(e.locales.flatMap(({locale:e,revisionId:t})=>t?[[e,t]]:[])),a=Ts(e.locales.map(({change:e})=>e),t!==void 0);t?(t.mark=a,t.revisionIds=i,t.title??=e.title):a===`removed`&&r.push({id:e.id,title:e.title,coverUrl:null,locales:e.locales.map(({locale:e})=>e),mark:a,revisionIds:i})}return[...n.values(),...r]},Ds=(e,t=60)=>e<=t?1:Math.ceil(e/t),Os=10,ks=({seqs:e,value:t,onChange:n})=>{let{t:r}=u(),i=(0,q.useId)(),a=Math.max(e.indexOf(t),0),o=Math.max(e.length-1,1),s=Ds(e.length),c=r=>{let i=e[Math.min(Math.max(r,0),e.length-1)];i!==void 0&&i!==t&&n(i)};return(0,J.jsxs)(`div`,{className:`space-y-2`,children:[(0,J.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,J.jsx)(`label`,{htmlFor:i,className:`text-sm font-semibold`,children:r(`snapshots.scrubber.label`)}),(0,J.jsx)(`span`,{className:`text-meta text-muted-foreground tabular-nums`,children:r(`snapshots.scrubber.range`,{min:e[0]??t,max:e.at(-1)??t})})]}),(0,J.jsx)(`input`,{id:i,type:`range`,min:0,max:e.length-1,step:1,value:a,"aria-valuetext":r(`snapshots.version`,{seq:t}),onKeyDown:e=>{if(!e.shiftKey)return;let t={ArrowLeft:-1,ArrowDown:-1,ArrowRight:1,ArrowUp:1}[e.key];t!==void 0&&(e.preventDefault(),c(a+t*Os))},onChange:e=>c(Number(e.target.value)),className:`h-2 w-full cursor-pointer accent-primary focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none`}),(0,J.jsx)(`div`,{"aria-hidden":`true`,className:`relative mx-2 h-5`,children:e.map((i,a)=>a%s===0||a===e.length-1?(0,J.jsx)(`button`,{type:`button`,tabIndex:-1,title:r(`snapshots.version`,{seq:i}),onClick:()=>n(i),style:{"--tick":`${a/o*100}%`},className:h(`absolute top-0 left-(--tick) h-3 w-px -translate-x-1/2 cursor-pointer bg-border hover:bg-foreground`,i===t&&`h-4 w-0.5 bg-primary`)},i):null)})]})},As=e=>{if(typeof e!=`object`||!e)return null;let t=e,n=t.variants?.find(e=>e.name===`thumbnail`)?.url;return typeof n==`string`?n:typeof t.url==`string`?t.url:null},js=(e,t)=>{let n=e.titleKey?t[e.titleKey]:void 0;return{id:String(t.id),locale:String(t.locale),title:typeof n==`string`&&n.trim()!==``?n:typeof n==`number`?String(n):null,coverUrl:e.coverKey?As(t[e.coverKey]):null}},Ms=(e,t)=>t.flatMap(t=>t.locales.map(n=>({place:t,locale:n,seq:e}))),Ns=(e,t,n,r)=>{let i=o(),a=Ms(e,r),s=At(t??0,e,t!==void 0),c=_({queries:a.map(({place:t,locale:n})=>It(e,t,n)),combine:e=>({data:e.map(e=>e.data),isPending:e.some(e=>e.isPending),error:e.find(e=>e.error)?.error??null,refetch:()=>Promise.all(e.map(e=>e.refetch()))})});(0,q.useEffect)(()=>{for(let e of n)for(let t of Ms(e,r))i.prefetchQuery(It(e,t.place,t.locale))},[n,r,i]);let l=s.data?.items??[];return{states:r.map(e=>({place:e,cards:Es(a.flatMap((t,n)=>t.place===e?(c.data[n]??[]).map(t=>js(e,t)):[]),l.filter(t=>t.modelId===e.modelId))})).filter(e=>e.cards.length>0),isPending:c.isPending||t!==void 0&&s.isPending,error:c.error??s.error,refetch:()=>Promise.all([c.refetch(),s.refetch()])}},Ps={unchanged:{labelKey:`snapshots.timeline.marks.unchanged`,tone:`success`},added:{labelKey:`snapshots.timeline.marks.added`,tone:`success`},changed:{labelKey:`snapshots.timeline.marks.changed`,tone:`warning`},removed:{labelKey:`snapshots.timeline.marks.removed`,tone:`muted`}},Fs={unchanged:``,added:`animate-in fade-in zoom-in-95 duration-500`,changed:`ring-2 ring-warning animate-in zoom-in-95 duration-500`,removed:`border-dashed bg-muted/40 animate-in fade-in duration-500`},Is=({card:e,onOpen:t})=>{let{t:n}=u(),r=Ps[e.mark],i=e.title??n(`snapshots.timeline.untitled`);return(0,J.jsxs)(`li`,{"data-mark":e.mark,"aria-label":n(`snapshots.timeline.cardLabel`,{title:i,state:n(r.labelKey)}),className:h(`flex min-w-0 flex-col overflow-hidden rounded-xl border bg-card motion-reduce:animate-none`,Fs[e.mark]),children:[(0,J.jsx)(`div`,{className:h(`flex aspect-video items-center justify-center bg-muted transition-opacity duration-500 motion-reduce:transition-none`,e.mark===`removed`&&`opacity-40 grayscale`),children:e.coverUrl?(0,J.jsx)(`img`,{src:e.coverUrl,alt:``,loading:`lazy`,className:`size-full object-cover`}):(0,J.jsx)(zt,{"aria-hidden":`true`,className:`size-5 text-muted-foreground`})}),(0,J.jsxs)(`div`,{className:`flex flex-1 flex-col gap-2 p-3`,children:[(0,J.jsx)(`p`,{className:h(`line-clamp-2 text-sm font-semibold`,e.mark===`removed`&&`line-through`),children:i}),(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,J.jsx)(w,{tone:r.tone,label:n(r.labelKey),size:`sm`,live:!1}),e.locales.map(e=>(0,J.jsx)(E,{variant:`outline`,className:`font-mono`,children:e},e))]}),(0,J.jsxs)(F,{variant:`ghost`,size:`sm`,className:`mt-auto self-start`,"aria-label":n(`snapshots.timeline.openVersionOf`,{title:i}),onClick:()=>t(e),children:[(0,J.jsx)(Fe,{"aria-hidden":`true`}),n(`snapshots.timeline.openVersion`)]})]})]})},Ls=new Set([`publish`,`restore`]),Rs=(e,t)=>{let n=y(),r=o(),a=async(n,a)=>{let o=(await r.fetchQuery({queryKey:i.content.revisions(e,n,a),queryFn:()=>d.content.revisions(e,n,{locale:a})})).filter(e=>t===void 0||e.createdAt<=t),s=e=>[...e].sort((e,t)=>t.createdAt.localeCompare(e.createdAt))[0]?.id;return s(o.filter(e=>Ls.has(e.reason)))??s(o)};return async t=>{let r=t.locales[0];try{let i=(r?t.revisionIds[r]:void 0)??(r?await a(t.id,r):void 0);await n({to:`/content/$modelKey/$entryId`,params:{modelKey:e,entryId:t.id},search:{...r?{locale:r}:{},...i?{revision:i}:{}}})}catch(e){Ke(e,`opening an entry version from the timeline`),P.error(tt(e))}}},zs=({state:e,seq:t,snapshotCreatedAt:n})=>{let{t:r}=u(),i=Rs(e.place.modelKey,n),a=e.cards.filter(e=>e.mark!==`removed`).length;return(0,J.jsxs)(`section`,{"aria-label":e.place.label,className:`space-y-3`,children:[(0,J.jsxs)(`h3`,{className:`flex items-baseline gap-2 text-base font-semibold`,children:[e.place.label,(0,J.jsx)(`span`,{className:`text-meta font-normal text-muted-foreground`,children:r(`snapshots.timeline.liveCount`,{count:a})})]}),(0,J.jsx)(`ul`,{className:`grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-4`,children:e.cards.map(e=>(0,J.jsx)(Is,{card:e,onOpen:e=>void i(e)},e.mark===`unchanged`?e.id:`${e.id}:${t}`))})]})},Bs=({seq:e,seqs:t,previous:n,places:r,createdAt:i})=>{let{t:a}=u(),o=t.indexOf(e),s=t[o-1],c=t[o+1],l=Ns(e,n,(0,q.useMemo)(()=>[s,c].filter(e=>e!==void 0),[s,c]),r);return l.error?(0,J.jsx)(ce,{error:l.error,onRetry:()=>void l.refetch()}):l.isPending&&l.states.length===0?(0,J.jsx)(D,{rows:4}):l.states.length===0?(0,J.jsx)(T,{icon:Et,title:a(`snapshots.timeline.nothingLive`,{seq:e})}):(0,J.jsx)(`div`,{"aria-busy":l.isPending||void 0,className:`space-y-8`,children:l.states.map(t=>(0,J.jsx)(zs,{state:t,seq:e,snapshotCreatedAt:i},t.place.modelId))})},Vs=150,Hs=({at:e,onAtChange:t})=>{let{t:n}=u(),r=Dt(),{places:i,error:a}=ws(),[o,s]=(0,q.useState)(e),c=kn(o,Vs),l=(0,q.useMemo)(()=>r.data?r.data.items.map(e=>e.seq).sort((e,t)=>e-t):[],[r.data]);(0,q.useEffect)(()=>{c!==e&&t(c)},[c,e,t]);let d=e=>l[l.indexOf(e)-1]??(e>0?e-1:void 0),f=d(c),p=At(f??0,c,f!==void 0);if(r.isError||a)return(0,J.jsx)(ce,{error:r.error??a,onRetry:()=>void r.refetch()});if(!r.data||!i)return(0,J.jsx)(D,{rows:4});let m=r.data.items.find(e=>e.seq===o),h=r.data.items.find(e=>e.seq===c),g=r.data.current;return(0,J.jsxs)(`div`,{className:`space-y-6`,children:[(0,J.jsx)(K,{"aria-label":n(`snapshots.timeline.label`),children:(0,J.jsxs)(`div`,{className:`space-y-4`,children:[(0,J.jsx)(Ss,{seq:o,row:m,previous:d(o),changedCount:o===c?p.data?.items.length:void 0}),(0,J.jsx)(ks,{seqs:l,value:o,onChange:s}),(0,J.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[o===g?null:(0,J.jsx)(ys,{seq:o,size:`default`,label:n(`snapshots.timeline.restoreHere`)}),(0,J.jsx)(vs,{seq:o,variant:`outline`,label:n(`snapshots.timeline.pinHere`)})]})]})}),(0,J.jsx)(Bs,{seq:c,seqs:l,previous:f,places:i,createdAt:h?.createdAt})]})},Us={published:{labelKey:`snapshots.changes.published`,tone:`success`},updated:{labelKey:`snapshots.changes.updated`,tone:`warning`},unpublished:{labelKey:`snapshots.changes.unpublished`,tone:`muted`}},Ws=({page:e})=>{let{t}=u(),{schemaVersions:n}=e,r=n.from!==n.to;return(0,J.jsx)(xn,{toolbar:(0,J.jsxs)(`p`,{className:`text-meta text-muted-foreground`,children:[t(e.nextCursor?`snapshots.diffSummaryMore`:`snapshots.diffSummary`,{from:e.from,to:e.to,count:e.items.length}),r?` · ${t(`snapshots.schemaMoved`,{from:n.from??`?`,to:n.to??`?`})}`:``]}),children:e.items.length===0?(0,J.jsx)(T,{icon:pt,size:`panel`,title:t(`snapshots.noChanges`)}):(0,J.jsxs)(W,{children:[(0,J.jsx)(z,{children:(0,J.jsxs)(H,{children:[(0,J.jsx)(B,{children:t(`changes.fields.entry`)}),(0,J.jsx)(B,{children:t(`changes.fields.model`)}),(0,J.jsx)(B,{children:t(`snapshots.fields.locales`)})]})}),(0,J.jsx)(V,{children:e.items.map(e=>(0,J.jsxs)(H,{children:[(0,J.jsx)(U,{className:`max-w-72`,children:(0,J.jsx)(_e,{asChild:!0,className:`block truncate font-mono text-xs`,children:(0,J.jsx)(b,{to:`/content/$modelKey/$entryId`,params:{modelKey:e.modelKey,entryId:e.id},children:e.id})})}),(0,J.jsx)(U,{className:`font-mono text-xs`,children:e.modelKey}),(0,J.jsx)(U,{children:(0,J.jsx)(`ul`,{className:`flex flex-wrap gap-1.5`,children:e.locales.map(e=>{let n=Us[e.change];return(0,J.jsx)(`li`,{children:(0,J.jsx)(w,{tone:n.tone,size:`sm`,label:t(`snapshots.localeChange`,{locale:e.locale,change:t(n.labelKey)})})},e.locale)})})})]},e.id))})]})})},Gs={diff:`snapshots.tabs.diff`,timeline:`snapshots.tabs.timeline`},Ks=({snapshot:e})=>{let{t}=u(),n=Q(),r=ge({from:`/app/snapshots/$seq`}),i=y({from:`/snapshots/$seq`}),a=r.tab??`diff`,o=(0,q.useCallback)(e=>void i({search:t=>({...t,at:e}),replace:!0}),[i]),s=r.from!==void 0&&r.from<e.seq?r.from:e.seq-1,c=Nt(void 0).data?.current,l=At(s,e.seq,a===`diff`),d=[k(e.createdAt),n({type:e.actor.type}),e.schemaVersion===null?``:t(`snapshots.schemaVersion`,{version:e.schemaVersion})].filter(Boolean).join(` · `);return(0,J.jsx)(S,{children:(0,J.jsxs)(Ue,{value:a,onValueChange:e=>void i({search:t=>({...t,tab:e}),replace:!0}),className:`gap-6`,children:[(0,J.jsx)(C,{breadcrumb:[{label:t(`snapshots.title`),link:v({to:`/snapshots`})}],title:t(`snapshots.version`,{seq:e.seq}),badge:(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(E,{variant:`secondary`,children:t(fo[e.source])}),e.seq===c?(0,J.jsx)(w,{tone:`success`,label:t(`snapshots.live`)}):null]}),meta:d,actions:(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(vs,{seq:e.seq}),c!==void 0&&e.seq!==c?(0,J.jsx)(ys,{seq:e.seq,size:`default`}):null]}),tabs:(0,J.jsx)(Ve,{variant:`underline`,"aria-label":t(`snapshots.tabs.label`),children:de.map(e=>(0,J.jsx)(M,{value:e,children:t(Gs[e])},e))})}),(0,J.jsx)(N,{value:`diff`,children:(0,J.jsx)(G,{query:l,loadingRows:4,children:e=>(0,J.jsx)(Ws,{page:e})})}),(0,J.jsx)(N,{value:`timeline`,children:(0,J.jsx)(Hs,{at:r.at??e.seq,onAtChange:o})})]})})},qs={changes:A(`/app/changes`)({component:ea}),changeSet:A(`/app/changes/$changeSetId`)({component:qa}),snapshots:A(`/app/snapshots`)({component:xs}),snapshot:A(`/app/snapshots/$seq`)({component:()=>{let{seq:e}=oe({from:`/app/snapshots/$seq`}),{canManageChanges:t}=Z(),n=Ft(Number(e));return t?(0,J.jsx)(G,{query:n,loadingRows:6,children:e=>(0,J.jsx)(Ks,{snapshot:e})}):(0,J.jsx)(S,{children:(0,J.jsx)(Wi,{})})}}),live:A(`/app/live`)({component:ho}),schema:A(`/app/schema`)({component:hs}),apiExplorer:A(`/app/api-explorer`)({component:Pi}),graphql:A(`/app/develop/graphql`)({component:Za})};export{qs as developLazyRoutes};
11
- //# sourceMappingURL=develop-DYwiTd6R.js.map
11
+ //# sourceMappingURL=develop-DJap_z-1.js.map