@shapio/cms 0.5.8 → 0.5.10

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 (343) hide show
  1. package/dist/admin/assets/{AssetTile-BrMzsUZD.js → AssetTile-DecaDqjj.js} +2 -2
  2. package/dist/admin/assets/{AssetTile-BrMzsUZD.js.map → AssetTile-DecaDqjj.js.map} +1 -1
  3. package/dist/admin/assets/AssistError-rslPtgWB.js +2 -0
  4. package/dist/admin/assets/{AssistError-Cs-r9Ssc.js.map → AssistError-rslPtgWB.js.map} +1 -1
  5. package/dist/admin/assets/{BlockMenuItems-DsccXMc_.js → BlockMenuItems-JHFue7Qt.js} +2 -2
  6. package/dist/admin/assets/{BlockMenuItems-DsccXMc_.js.map → BlockMenuItems-JHFue7Qt.js.map} +1 -1
  7. package/dist/admin/assets/Body-7NgJl9Pi.js +2 -0
  8. package/dist/admin/assets/Body-7NgJl9Pi.js.map +1 -0
  9. package/dist/admin/assets/Builder-DmlYcgiP.js +2 -0
  10. package/dist/admin/assets/Builder-DmlYcgiP.js.map +1 -0
  11. package/dist/admin/assets/{CodeEditor-CBCR73Wd.js → CodeEditor-Dv1FtkvI.js} +2 -2
  12. package/dist/admin/assets/{CodeEditor-CBCR73Wd.js.map → CodeEditor-Dv1FtkvI.js.map} +1 -1
  13. package/dist/admin/assets/{CopyButton-CxFsBHfF.js → CopyButton-Brnpfqe0.js} +2 -2
  14. package/dist/admin/assets/{CopyButton-CxFsBHfF.js.map → CopyButton-Brnpfqe0.js.map} +1 -1
  15. package/dist/admin/assets/{CursorPager-BW2U3v6l.js → CursorPager-C7cAK5Qe.js} +2 -2
  16. package/dist/admin/assets/{CursorPager-BW2U3v6l.js.map → CursorPager-C7cAK5Qe.js.map} +1 -1
  17. package/dist/admin/assets/{ExternalLink-BITMgS1K.js → ExternalLink-D80sb5Jj.js} +2 -2
  18. package/dist/admin/assets/{ExternalLink-BITMgS1K.js.map → ExternalLink-D80sb5Jj.js.map} +1 -1
  19. package/dist/admin/assets/{FocalPoint-CpZTve1E.js → FocalPoint-Bhtb1gUa.js} +2 -2
  20. package/dist/admin/assets/{FocalPoint-CpZTve1E.js.map → FocalPoint-Bhtb1gUa.js.map} +1 -1
  21. package/dist/admin/assets/Form-Cf1ephPH.js +2 -0
  22. package/dist/admin/assets/Form-Cf1ephPH.js.map +1 -0
  23. package/dist/admin/assets/FormCheckboxGroup-BzVZFR3W.js +2 -0
  24. package/dist/admin/assets/FormCheckboxGroup-BzVZFR3W.js.map +1 -0
  25. package/dist/admin/assets/{FormRadioGroup-Cfx5pvzU.js → FormRadioGroup-BzmLzRnI.js} +2 -2
  26. package/dist/admin/assets/{FormRadioGroup-Cfx5pvzU.js.map → FormRadioGroup-BzmLzRnI.js.map} +1 -1
  27. package/dist/admin/assets/FormSelectField-Cl7EjXc3.js +2 -0
  28. package/dist/admin/assets/FormSelectField-Cl7EjXc3.js.map +1 -0
  29. package/dist/admin/assets/FormSheet-CLZpd_7B.js +2 -0
  30. package/dist/admin/assets/FormSheet-CLZpd_7B.js.map +1 -0
  31. package/dist/admin/assets/{FormSwitchField-BLOh7qei.js → FormSwitchField-BbqQ3tx_.js} +2 -2
  32. package/dist/admin/assets/{FormSwitchField-BLOh7qei.js.map → FormSwitchField-BbqQ3tx_.js.map} +1 -1
  33. package/dist/admin/assets/{FormTextareaField-CO115n_u.js → FormTextareaField-9RN5Pt3B.js} +2 -2
  34. package/dist/admin/assets/{FormTextareaField-CO115n_u.js.map → FormTextareaField-9RN5Pt3B.js.map} +1 -1
  35. package/dist/admin/assets/{HintedLabel-DzHnEdIK.js → HintedLabel-D9IVF0EE.js} +2 -2
  36. package/dist/admin/assets/{HintedLabel-DzHnEdIK.js.map → HintedLabel-D9IVF0EE.js.map} +1 -1
  37. package/dist/admin/assets/{InfoHint-CSEtcHjL.js → InfoHint-tlSeZB9U.js} +2 -2
  38. package/dist/admin/assets/{InfoHint-CSEtcHjL.js.map → InfoHint-tlSeZB9U.js.map} +1 -1
  39. package/dist/admin/assets/{InlineConfirm-yW-iUKFC.js → InlineConfirm-Kj9AOIFO.js} +2 -2
  40. package/dist/admin/assets/{InlineConfirm-yW-iUKFC.js.map → InlineConfirm-Kj9AOIFO.js.map} +1 -1
  41. package/dist/admin/assets/{InsertMenuItem-CCr9e0qY.js → InsertMenuItem-CHAp2tH7.js} +2 -2
  42. package/dist/admin/assets/{InsertMenuItem-CCr9e0qY.js.map → InsertMenuItem-CHAp2tH7.js.map} +1 -1
  43. package/dist/admin/assets/{LinkTabs-8SmS1vCd.js → LinkTabs-oQXsy1I3.js} +2 -2
  44. package/dist/admin/assets/{LinkTabs-8SmS1vCd.js.map → LinkTabs-oQXsy1I3.js.map} +1 -1
  45. package/dist/admin/assets/{Match-CcD9KxHH.js → Match-BfNRwPfR.js} +2 -2
  46. package/dist/admin/assets/{Match-CcD9KxHH.js.map → Match-BfNRwPfR.js.map} +1 -1
  47. package/dist/admin/assets/{NoAccess-C8RLPN0I.js → NoAccess-DnEpYj9l.js} +2 -2
  48. package/dist/admin/assets/{NoAccess-C8RLPN0I.js.map → NoAccess-DnEpYj9l.js.map} +1 -1
  49. package/dist/admin/assets/Panel-Bcl09TtM.js.map +1 -1
  50. package/dist/admin/assets/{QueryView-xMP_uJ_t.js → QueryView-B86NcRt5.js} +2 -2
  51. package/dist/admin/assets/{QueryView-xMP_uJ_t.js.map → QueryView-B86NcRt5.js.map} +1 -1
  52. package/dist/admin/assets/{RadioTile-DQFmni5A.js → RadioTile-Bwd2Pmlk.js} +2 -2
  53. package/dist/admin/assets/RadioTile-Bwd2Pmlk.js.map +1 -0
  54. package/dist/admin/assets/{RichTextField-CVHRIbnu.js → RichTextField-Dou79MHF.js} +4 -4
  55. package/dist/admin/assets/RichTextField-Dou79MHF.js.map +1 -0
  56. package/dist/admin/assets/{RowTitle-Bqt6evG9.js → RowTitle-DH9OZs3g.js} +2 -2
  57. package/dist/admin/assets/{RowTitle-Bqt6evG9.js.map → RowTitle-DH9OZs3g.js.map} +1 -1
  58. package/dist/admin/assets/{SecretReveal-Bm6nYg5J.js → SecretReveal-D95oACLj.js} +2 -2
  59. package/dist/admin/assets/{SecretReveal-Bm6nYg5J.js.map → SecretReveal-D95oACLj.js.map} +1 -1
  60. package/dist/admin/assets/{SharedGlyph-cUmTh0_C.js → SharedGlyph-Chwb1EIS.js} +2 -2
  61. package/dist/admin/assets/{SharedGlyph-cUmTh0_C.js.map → SharedGlyph-Chwb1EIS.js.map} +1 -1
  62. package/dist/admin/assets/StepList-D9iHsUZJ.js +2 -0
  63. package/dist/admin/assets/StepList-D9iHsUZJ.js.map +1 -0
  64. package/dist/admin/assets/Structure-CewJL1b3.js +2 -0
  65. package/dist/admin/assets/{Structure-D8csgrIt.js.map → Structure-CewJL1b3.js.map} +1 -1
  66. package/dist/admin/assets/{SubNavLink-CiCaVV8U.js → SubNavLink-7Cs1LqMv.js} +2 -2
  67. package/dist/admin/assets/SubNavLink-7Cs1LqMv.js.map +1 -0
  68. package/dist/admin/assets/{SuggestAltButton-CvIoirnz.js → SuggestAltButton-BK1uo4yC.js} +2 -2
  69. package/dist/admin/assets/{SuggestAltButton-CvIoirnz.js.map → SuggestAltButton-BK1uo4yC.js.map} +1 -1
  70. package/dist/admin/assets/{TextLink-HRn66VL1.js → TextLink-Dfs5wsc5.js} +2 -2
  71. package/dist/admin/assets/{TextLink-HRn66VL1.js.map → TextLink-Dfs5wsc5.js.map} +1 -1
  72. package/dist/admin/assets/{Thumbnail-DNj5TRBI.js → Thumbnail-C2A_Ub77.js} +2 -2
  73. package/dist/admin/assets/{Thumbnail-DNj5TRBI.js.map → Thumbnail-C2A_Ub77.js.map} +1 -1
  74. package/dist/admin/assets/Trans-CPoNNUK1.js +2 -0
  75. package/dist/admin/assets/Trans-CPoNNUK1.js.map +1 -0
  76. package/dist/admin/assets/{UnsavedChangesGuard-CUiuMklN.js → UnsavedChangesGuard-BsEyn9oH.js} +2 -2
  77. package/dist/admin/assets/{UnsavedChangesGuard-CUiuMklN.js.map → UnsavedChangesGuard-BsEyn9oH.js.map} +1 -1
  78. package/dist/admin/assets/{UserAvatar-p-jV-LoD.js → UserAvatar-CgGKOFfP.js} +2 -2
  79. package/dist/admin/assets/{UserAvatar-p-jV-LoD.js.map → UserAvatar-CgGKOFfP.js.map} +1 -1
  80. package/dist/admin/assets/auth-BFSvtV59.js +2 -0
  81. package/dist/admin/assets/{auth-CQO4MBUj.js.map → auth-BFSvtV59.js.map} +1 -1
  82. package/dist/admin/assets/{badge-CqKF1pwz.js → badge-DGqA_yr_.js} +2 -2
  83. package/dist/admin/assets/{badge-CqKF1pwz.js.map → badge-DGqA_yr_.js.map} +1 -1
  84. package/dist/admin/assets/baseExtensions-TVKN1UwW.js.map +1 -1
  85. package/dist/admin/assets/{boxes-CAygw8zF.js → boxes-_5klpWNM.js} +2 -2
  86. package/dist/admin/assets/{boxes-CAygw8zF.js.map → boxes-_5klpWNM.js.map} +1 -1
  87. package/dist/admin/assets/{calendar-clock-BZGtAvWR.js → calendar-clock-VXok22Xj.js} +2 -2
  88. package/dist/admin/assets/{calendar-clock-BZGtAvWR.js.map → calendar-clock-VXok22Xj.js.map} +1 -1
  89. package/dist/admin/assets/changeSets-B6HxCJ4A.js +2 -0
  90. package/dist/admin/assets/{changeSets-8EburmT0.js.map → changeSets-B6HxCJ4A.js.map} +1 -1
  91. package/dist/admin/assets/chevron-left-CkRxDtvO.js +2 -0
  92. package/dist/admin/assets/{chevron-left-DGU3HGYG.js.map → chevron-left-CkRxDtvO.js.map} +1 -1
  93. package/dist/admin/assets/{circle-check-C37MSJqX.js → circle-check-DtDq7QMo.js} +2 -2
  94. package/dist/admin/assets/{circle-check-C37MSJqX.js.map → circle-check-DtDq7QMo.js.map} +1 -1
  95. package/dist/admin/assets/{clock-2arjsgZ4.js → clock-BtvZR9KD.js} +2 -2
  96. package/dist/admin/assets/{clock-2arjsgZ4.js.map → clock-BtvZR9KD.js.map} +1 -1
  97. package/dist/admin/assets/cn-DVhJ55Mo.js.map +1 -1
  98. package/dist/admin/assets/{constants-a_15vqOh.js → constants-DY3YJAKH.js} +2 -2
  99. package/dist/admin/assets/{constants-a_15vqOh.js.map → constants-DY3YJAKH.js.map} +1 -1
  100. package/dist/admin/assets/content-BNZF26Ve.js +3 -0
  101. package/dist/admin/assets/content-BNZF26Ve.js.map +1 -0
  102. package/dist/admin/assets/{contentCounts-DP7YYeZZ.js → contentCounts-BzC7IQqP.js} +2 -2
  103. package/dist/admin/assets/{contentCounts-DP7YYeZZ.js.map → contentCounts-BzC7IQqP.js.map} +1 -1
  104. package/dist/admin/assets/{contentTypes-84uc0bjR.js → contentTypes-Bz2xpqGf.js} +2 -2
  105. package/dist/admin/assets/{contentTypes-84uc0bjR.js.map → contentTypes-Bz2xpqGf.js.map} +1 -1
  106. package/dist/admin/assets/{context-IKYdzQJ-.js → context-CEVKblBl.js} +2 -2
  107. package/dist/admin/assets/{context-IKYdzQJ-.js.map → context-CEVKblBl.js.map} +1 -1
  108. package/dist/admin/assets/{copy-CsSRHgKZ.js → copy-B7vIq8DS.js} +2 -2
  109. package/dist/admin/assets/{copy-CsSRHgKZ.js.map → copy-B7vIq8DS.js.map} +1 -1
  110. package/dist/admin/assets/createLucideIcon-BOsNKleB.js +2 -0
  111. package/dist/admin/assets/createLucideIcon-BOsNKleB.js.map +1 -0
  112. package/dist/admin/assets/develop-D6CtwuYj.js +11 -0
  113. package/dist/admin/assets/develop-D6CtwuYj.js.map +1 -0
  114. package/dist/admin/assets/{dropdown-menu-_xfaEp5C.js → dropdown-menu-Bz7CLcRK.js} +2 -2
  115. package/dist/admin/assets/{dropdown-menu-_xfaEp5C.js.map → dropdown-menu-Bz7CLcRK.js.map} +1 -1
  116. package/dist/admin/assets/{ellipsis-F91991on.js → ellipsis-Ci0rsbCJ.js} +2 -2
  117. package/dist/admin/assets/{ellipsis-F91991on.js.map → ellipsis-Ci0rsbCJ.js.map} +1 -1
  118. package/dist/admin/assets/{entryLink-CVB-TdIn.js → entryLink-B0hSb_dN.js} +2 -2
  119. package/dist/admin/assets/{entryLink-CVB-TdIn.js.map → entryLink-B0hSb_dN.js.map} +1 -1
  120. package/dist/admin/assets/es2015-Cv57ynE1.js +42 -0
  121. package/dist/admin/assets/es2015-Cv57ynE1.js.map +1 -0
  122. package/dist/admin/assets/{external-link-CdG6kHfA.js → external-link-Bs9YRzvY.js} +2 -2
  123. package/dist/admin/assets/{external-link-CdG6kHfA.js.map → external-link-Bs9YRzvY.js.map} +1 -1
  124. package/dist/admin/assets/{field-COOzRptX.js → field-D-xWW2E7.js} +2 -2
  125. package/dist/admin/assets/{field-COOzRptX.js.map → field-D-xWW2E7.js.map} +1 -1
  126. package/dist/admin/assets/{file-stack-28ZtO1xW.js → file-stack-X4OGmkLA.js} +2 -2
  127. package/dist/admin/assets/{file-stack-28ZtO1xW.js.map → file-stack-X4OGmkLA.js.map} +1 -1
  128. package/dist/admin/assets/{fileRoute-s7mCMYUJ.js → fileRoute-DMal-zYL.js} +2 -2
  129. package/dist/admin/assets/{fileRoute-s7mCMYUJ.js.map → fileRoute-DMal-zYL.js.map} +1 -1
  130. package/dist/admin/assets/{folder-plus-DIk0pWkP.js → folder-plus-De2GNvry.js} +2 -2
  131. package/dist/admin/assets/{folder-plus-DIk0pWkP.js.map → folder-plus-De2GNvry.js.map} +1 -1
  132. package/dist/admin/assets/followPlural-CsgeALTW.js +2 -0
  133. package/dist/admin/assets/followPlural-CsgeALTW.js.map +1 -0
  134. package/dist/admin/assets/{globe-DFr3Gd2w.js → globe-DBw84s8Z.js} +2 -2
  135. package/dist/admin/assets/{globe-DFr3Gd2w.js.map → globe-DBw84s8Z.js.map} +1 -1
  136. package/dist/admin/assets/{image-DT79QFa_.js → image-CX4mT-_R.js} +2 -2
  137. package/dist/admin/assets/{image-DT79QFa_.js.map → image-CX4mT-_R.js.map} +1 -1
  138. package/dist/admin/assets/{image-off-DFs5upyX.js → image-off-CVaH_qKf.js} +2 -2
  139. package/dist/admin/assets/{image-off-DFs5upyX.js.map → image-off-CVaH_qKf.js.map} +1 -1
  140. package/dist/admin/assets/inbox-C0PVc6UI.js +2 -0
  141. package/dist/admin/assets/inbox-C0PVc6UI.js.map +1 -0
  142. package/dist/admin/assets/{inbox-CySnQydm.js → inbox-D9SmWt5L.js} +2 -2
  143. package/dist/admin/assets/{inbox-CySnQydm.js.map → inbox-D9SmWt5L.js.map} +1 -1
  144. package/dist/admin/assets/index-BqtCXB0u.js +4 -0
  145. package/dist/admin/assets/index-BqtCXB0u.js.map +1 -0
  146. package/dist/admin/assets/index-DZsQq6fY.css +2 -0
  147. package/dist/admin/assets/{key-round-D36CePnN.js → key-round-C8sd9CLN.js} +2 -2
  148. package/dist/admin/assets/{key-round-D36CePnN.js.map → key-round-C8sd9CLN.js.map} +1 -1
  149. package/dist/admin/assets/{labels-DQckbLGW.js → labels-BtktCNGw.js} +2 -2
  150. package/dist/admin/assets/{labels-DQckbLGW.js.map → labels-BtktCNGw.js.map} +1 -1
  151. package/dist/admin/assets/{languages-CzbTaQv9.js → languages-DLjdz6gb.js} +2 -2
  152. package/dist/admin/assets/{languages-CzbTaQv9.js.map → languages-DLjdz6gb.js.map} +1 -1
  153. package/dist/admin/assets/{layers-BmcodiaH.js → layers-swLuw-3a.js} +2 -2
  154. package/dist/admin/assets/{layers-BmcodiaH.js.map → layers-swLuw-3a.js.map} +1 -1
  155. package/dist/admin/assets/{link-2-off-CoJNwrxm.js → link-2-off-CEsI5T8h.js} +2 -2
  156. package/dist/admin/assets/{link-2-off-CoJNwrxm.js.map → link-2-off-CEsI5T8h.js.map} +1 -1
  157. package/dist/admin/assets/{link-Pyr2Y35S.js → link-C98FG_p5.js} +2 -2
  158. package/dist/admin/assets/{link-Pyr2Y35S.js.map → link-C98FG_p5.js.map} +1 -1
  159. package/dist/admin/assets/locales-CkuC7TJ1.js +2 -0
  160. package/dist/admin/assets/{locales-Bg3htKo8.js.map → locales-CkuC7TJ1.js.map} +1 -1
  161. package/dist/admin/assets/media-CbGSd_Mw.js +2 -0
  162. package/dist/admin/assets/{media-BCnVhaDH.js.map → media-CbGSd_Mw.js.map} +1 -1
  163. package/dist/admin/assets/{media-CURizGns.js → media-CeZGDGh7.js} +2 -2
  164. package/dist/admin/assets/{media-CURizGns.js.map → media-CeZGDGh7.js.map} +1 -1
  165. package/dist/admin/assets/network-BflLSKFO.js +2 -0
  166. package/dist/admin/assets/network-BflLSKFO.js.map +1 -0
  167. package/dist/admin/assets/{plus-BoDtdLCo.js → plus-cr9ZfO6j.js} +2 -2
  168. package/dist/admin/assets/{plus-BoDtdLCo.js.map → plus-cr9ZfO6j.js.map} +1 -1
  169. package/dist/admin/assets/publishing-BkxBplUZ.js +2 -0
  170. package/dist/admin/assets/publishing-BkxBplUZ.js.map +1 -0
  171. package/dist/admin/assets/{radio-group-4ok5evXq.js → radio-group-CRuWQnuV.js} +2 -2
  172. package/dist/admin/assets/{radio-group-4ok5evXq.js.map → radio-group-CRuWQnuV.js.map} +1 -1
  173. package/dist/admin/assets/{rotate-ccw-DL6TzcZh.js → rotate-ccw-BP8Ba-mY.js} +2 -2
  174. package/dist/admin/assets/{rotate-ccw-DL6TzcZh.js.map → rotate-ccw-BP8Ba-mY.js.map} +1 -1
  175. package/dist/admin/assets/schedules-BIyBlsYZ.js +2 -0
  176. package/dist/admin/assets/{schedules-BmB9Y73z.js.map → schedules-BIyBlsYZ.js.map} +1 -1
  177. package/dist/admin/assets/schema-6eUoC8fJ.js +2 -0
  178. package/dist/admin/assets/schema-6eUoC8fJ.js.map +1 -0
  179. package/dist/admin/assets/{scroll-text-PqeZm472.js → scroll-text-B5vfi9fD.js} +2 -2
  180. package/dist/admin/assets/{scroll-text-PqeZm472.js.map → scroll-text-B5vfi9fD.js.map} +1 -1
  181. package/dist/admin/assets/{search-BdwIwOzC.js → search-wj7zbkx1.js} +2 -2
  182. package/dist/admin/assets/{search-BdwIwOzC.js.map → search-wj7zbkx1.js.map} +1 -1
  183. package/dist/admin/assets/{searchSchemas-CSScloG8.js → searchSchemas-DAnwh3I3.js} +2 -2
  184. package/dist/admin/assets/{searchSchemas-CSScloG8.js.map → searchSchemas-DAnwh3I3.js.map} +1 -1
  185. package/dist/admin/assets/{sections-DqBzSKMP.js → sections-CWL-XD6m.js} +2 -2
  186. package/dist/admin/assets/sections-CWL-XD6m.js.map +1 -0
  187. package/dist/admin/assets/{sections-BTS683ur.js → sections-DBQpB0uv.js} +2 -2
  188. package/dist/admin/assets/{sections-BTS683ur.js.map → sections-DBQpB0uv.js.map} +1 -1
  189. package/dist/admin/assets/{select-C0USI-Ox.js → select-DVrPV1b3.js} +2 -2
  190. package/dist/admin/assets/{select-C0USI-Ox.js.map → select-DVrPV1b3.js.map} +1 -1
  191. package/dist/admin/assets/{send-XPWo3m4u.js → send-CzFdgUc_.js} +2 -2
  192. package/dist/admin/assets/{send-XPWo3m4u.js.map → send-CzFdgUc_.js.map} +1 -1
  193. package/dist/admin/assets/seo-Bd0sWQMo.js +2 -0
  194. package/dist/admin/assets/{seo-CceGYTIX.js.map → seo-Bd0sWQMo.js.map} +1 -1
  195. package/dist/admin/assets/settings-CqnrPmzR.js +2 -0
  196. package/dist/admin/assets/{settings-B60vHpZd.js.map → settings-CqnrPmzR.js.map} +1 -1
  197. package/dist/admin/assets/shapes-ZAkMBB-Z.js +6 -0
  198. package/dist/admin/assets/shapes-ZAkMBB-Z.js.map +1 -0
  199. package/dist/admin/assets/{skeleton-B5MP72Kw.js → skeleton-CiX26LnL.js} +2 -2
  200. package/dist/admin/assets/{skeleton-B5MP72Kw.js.map → skeleton-CiX26LnL.js.map} +1 -1
  201. package/dist/admin/assets/{snapshots-DUI2t-qF.js → snapshots-DbFQNJgN.js} +2 -2
  202. package/dist/admin/assets/{snapshots-DUI2t-qF.js.map → snapshots-DbFQNJgN.js.map} +1 -1
  203. package/dist/admin/assets/{sparkles-CvT-jxrW.js → sparkles-D_kmZJVd.js} +2 -2
  204. package/dist/admin/assets/{sparkles-CvT-jxrW.js.map → sparkles-D_kmZJVd.js.map} +1 -1
  205. package/dist/admin/assets/src-CMor9izq.js +7 -0
  206. package/dist/admin/assets/src-CMor9izq.js.map +1 -0
  207. package/dist/admin/assets/{stableId-BrtQedPy.js → stableId-g1uxJGSz.js} +2 -2
  208. package/dist/admin/assets/{stableId-BrtQedPy.js.map → stableId-g1uxJGSz.js.map} +1 -1
  209. package/dist/admin/assets/{store-CdIFG90N.js → store-CznhNKEi.js} +2 -2
  210. package/dist/admin/assets/{store-CdIFG90N.js.map → store-CznhNKEi.js.map} +1 -1
  211. package/dist/admin/assets/{switch-Dp6WYNam.js → switch-CiVf05NF.js} +2 -2
  212. package/dist/admin/assets/{switch-Dp6WYNam.js.map → switch-CiVf05NF.js.map} +1 -1
  213. package/dist/admin/assets/{theme-65PB8uAu.js → theme-Cv-MfOv8.js} +2 -2
  214. package/dist/admin/assets/theme-Cv-MfOv8.js.map +1 -0
  215. package/dist/admin/assets/titles-DrQhW8z3.js +2 -0
  216. package/dist/admin/assets/titles-DrQhW8z3.js.map +1 -0
  217. package/dist/admin/assets/tokens-B1S81Epe.js +2 -0
  218. package/dist/admin/assets/{tokens-ixHjAkDK.js.map → tokens-B1S81Epe.js.map} +1 -1
  219. package/dist/admin/assets/{tooltip-BGP1DVBt.js → tooltip-Bqf3oyqC.js} +2 -2
  220. package/dist/admin/assets/{tooltip-BGP1DVBt.js.map → tooltip-Bqf3oyqC.js.map} +1 -1
  221. package/dist/admin/assets/{undo-2-BiTANHFz.js → undo-2-DpwwRQTf.js} +2 -2
  222. package/dist/admin/assets/{undo-2-BiTANHFz.js.map → undo-2-DpwwRQTf.js.map} +1 -1
  223. package/dist/admin/assets/useContentSchema-B_q1rMrG.js +2 -0
  224. package/dist/admin/assets/useContentSchema-B_q1rMrG.js.map +1 -0
  225. package/dist/admin/assets/useCursorPager-BHYqHb3M.js +2 -0
  226. package/dist/admin/assets/{useCursorPager-0zHjlm-7.js.map → useCursorPager-BHYqHb3M.js.map} +1 -1
  227. package/dist/admin/assets/{useDiscardGuard-BskWSlbT.js → useDiscardGuard-C4QTfiU4.js} +2 -2
  228. package/dist/admin/assets/{useDiscardGuard-BskWSlbT.js.map → useDiscardGuard-C4QTfiU4.js.map} +1 -1
  229. package/dist/admin/assets/{useMediaPickerDialog-CU-ekPqX.js → useMediaPickerDialog-BLrVV1Kn.js} +2 -2
  230. package/dist/admin/assets/{useMediaPickerDialog-CU-ekPqX.js.map → useMediaPickerDialog-BLrVV1Kn.js.map} +1 -1
  231. package/dist/admin/assets/{useMediaUploader-CBcq1ICg.js → useMediaUploader-CFy6lasO.js} +2 -2
  232. package/dist/admin/assets/useMediaUploader-CFy6lasO.js.map +1 -0
  233. package/dist/admin/assets/useModelIndex-NU-WlHQY.js +2 -0
  234. package/dist/admin/assets/useModelIndex-NU-WlHQY.js.map +1 -0
  235. package/dist/admin/assets/useNetworkPermission-DehDln-U.js +2 -0
  236. package/dist/admin/assets/{useNetworkPermission-Cts98h9d.js.map → useNetworkPermission-DehDln-U.js.map} +1 -1
  237. package/dist/admin/assets/{usePaletteItems-DtReWmkd.js → usePaletteItems-CFpNlSOs.js} +2 -2
  238. package/dist/admin/assets/{usePaletteItems-DtReWmkd.js.map → usePaletteItems-CFpNlSOs.js.map} +1 -1
  239. package/dist/admin/assets/usePlaces-BA4x6503.js +2 -0
  240. package/dist/admin/assets/usePlaces-BA4x6503.js.map +1 -0
  241. package/dist/admin/assets/useResolvedDefinitions-30lnwFQ1.js +2 -0
  242. package/dist/admin/assets/useResolvedDefinitions-30lnwFQ1.js.map +1 -0
  243. package/dist/admin/assets/{useResolvedScheme-C8vcQVko.js → useResolvedScheme-BVM4qLct.js} +2 -2
  244. package/dist/admin/assets/{useResolvedScheme-C8vcQVko.js.map → useResolvedScheme-BVM4qLct.js.map} +1 -1
  245. package/dist/admin/assets/useSaveShortcut-DQuNL1uJ.js +2 -0
  246. package/dist/admin/assets/useSaveShortcut-DQuNL1uJ.js.map +1 -0
  247. package/dist/admin/assets/{useSchemaScopeAccess-ByrxIdKM.js → useSchemaScopeAccess-JXOMx51q.js} +2 -2
  248. package/dist/admin/assets/{useSchemaScopeAccess-ByrxIdKM.js.map → useSchemaScopeAccess-JXOMx51q.js.map} +1 -1
  249. package/dist/admin/assets/users-38jLQ7zr.js +2 -0
  250. package/dist/admin/assets/users-38jLQ7zr.js.map +1 -0
  251. package/dist/admin/assets/{users-DM7CXUBJ.js → users-DYwcVDqp.js} +2 -2
  252. package/dist/admin/assets/{users-DM7CXUBJ.js.map → users-DYwcVDqp.js.map} +1 -1
  253. package/dist/admin/assets/{zod-Cry7YvLY.js → zod-ZaQjjiAq.js} +2 -2
  254. package/dist/admin/assets/{zod-Cry7YvLY.js.map → zod-ZaQjjiAq.js.map} +1 -1
  255. package/dist/admin/index.html +60 -58
  256. package/dist/cli.js +1 -1
  257. package/dist/{cliMain-papyXJDd.js → cliMain-CTntiVc2.js} +107 -30
  258. package/dist/cliMain-CTntiVc2.js.map +1 -0
  259. package/dist/config.d.ts +2 -2
  260. package/dist/config.js +1 -1
  261. package/dist/{contentDisposition-DOL2Xt0l.js → contentDisposition-DzhPhncr.js} +2 -2
  262. package/dist/{contentDisposition-DOL2Xt0l.js.map → contentDisposition-DzhPhncr.js.map} +1 -1
  263. package/dist/index.d.ts +43 -6
  264. package/dist/index.js +2 -2
  265. package/dist/{public-COKbHR-N.d.ts → public-CMFaGDyf.d.ts} +50 -8
  266. package/dist/{public-B57h4F7Y.js → public-sJCQaNaP.js} +2 -2
  267. package/dist/public-sJCQaNaP.js.map +1 -0
  268. package/dist/{s3Adapter-U01iEAcK.js → s3Adapter-CZcCl0sy.js} +2 -2
  269. package/dist/{s3Adapter-U01iEAcK.js.map → s3Adapter-CZcCl0sy.js.map} +1 -1
  270. package/dist/{worker-B-sC-eY2.js → worker-DHm2JwMZ.js} +3140 -1292
  271. package/dist/worker-DHm2JwMZ.js.map +1 -0
  272. package/package.json +5 -5
  273. package/dist/admin/assets/AssistError-Cs-r9Ssc.js +0 -2
  274. package/dist/admin/assets/Body-BzZD-TZT.js +0 -2
  275. package/dist/admin/assets/Body-BzZD-TZT.js.map +0 -1
  276. package/dist/admin/assets/Builder-DW-GJA_q.js +0 -2
  277. package/dist/admin/assets/Builder-DW-GJA_q.js.map +0 -1
  278. package/dist/admin/assets/Form-lNrRHc0I.js +0 -2
  279. package/dist/admin/assets/Form-lNrRHc0I.js.map +0 -1
  280. package/dist/admin/assets/FormCheckboxGroup-DeeaYnzB.js +0 -2
  281. package/dist/admin/assets/FormCheckboxGroup-DeeaYnzB.js.map +0 -1
  282. package/dist/admin/assets/FormSelectField-BzE9Lq9i.js +0 -2
  283. package/dist/admin/assets/FormSelectField-BzE9Lq9i.js.map +0 -1
  284. package/dist/admin/assets/RadioTile-DQFmni5A.js.map +0 -1
  285. package/dist/admin/assets/RichTextField-CVHRIbnu.js.map +0 -1
  286. package/dist/admin/assets/StepList-BXGYD9eJ.js +0 -2
  287. package/dist/admin/assets/StepList-BXGYD9eJ.js.map +0 -1
  288. package/dist/admin/assets/Structure-D8csgrIt.js +0 -2
  289. package/dist/admin/assets/SubNavLink-CiCaVV8U.js.map +0 -1
  290. package/dist/admin/assets/auth-CQO4MBUj.js +0 -2
  291. package/dist/admin/assets/changeSets-8EburmT0.js +0 -2
  292. package/dist/admin/assets/chevron-left-DGU3HGYG.js +0 -2
  293. package/dist/admin/assets/content-CAjkbZEY.js +0 -3
  294. package/dist/admin/assets/content-CAjkbZEY.js.map +0 -1
  295. package/dist/admin/assets/createLucideIcon-CLmh7Go-.js +0 -2
  296. package/dist/admin/assets/createLucideIcon-CLmh7Go-.js.map +0 -1
  297. package/dist/admin/assets/develop-BOqvnlgt.js +0 -11
  298. package/dist/admin/assets/develop-BOqvnlgt.js.map +0 -1
  299. package/dist/admin/assets/es2015-BHmI7wjK.js +0 -42
  300. package/dist/admin/assets/es2015-BHmI7wjK.js.map +0 -1
  301. package/dist/admin/assets/followPlural-Cm7v_Udv.js +0 -2
  302. package/dist/admin/assets/followPlural-Cm7v_Udv.js.map +0 -1
  303. package/dist/admin/assets/inbox-DGO2D8fa.js +0 -2
  304. package/dist/admin/assets/inbox-DGO2D8fa.js.map +0 -1
  305. package/dist/admin/assets/index-BIIU9ZI6.js +0 -4
  306. package/dist/admin/assets/index-BIIU9ZI6.js.map +0 -1
  307. package/dist/admin/assets/index-lxe7WimO.css +0 -2
  308. package/dist/admin/assets/locales-Bg3htKo8.js +0 -2
  309. package/dist/admin/assets/media-BCnVhaDH.js +0 -2
  310. package/dist/admin/assets/network-BixABr0o.js +0 -2
  311. package/dist/admin/assets/network-BixABr0o.js.map +0 -1
  312. package/dist/admin/assets/publishing-Dke9bSKp.js +0 -2
  313. package/dist/admin/assets/publishing-Dke9bSKp.js.map +0 -1
  314. package/dist/admin/assets/schedules-BmB9Y73z.js +0 -2
  315. package/dist/admin/assets/schema-D-qo7XSF.js +0 -2
  316. package/dist/admin/assets/schema-D-qo7XSF.js.map +0 -1
  317. package/dist/admin/assets/sections-DqBzSKMP.js.map +0 -1
  318. package/dist/admin/assets/seo-CceGYTIX.js +0 -2
  319. package/dist/admin/assets/settings-B60vHpZd.js +0 -2
  320. package/dist/admin/assets/shapes-B5twqZcp.js +0 -6
  321. package/dist/admin/assets/shapes-B5twqZcp.js.map +0 -1
  322. package/dist/admin/assets/src-ndgTSYLX.js +0 -7
  323. package/dist/admin/assets/src-ndgTSYLX.js.map +0 -1
  324. package/dist/admin/assets/theme-65PB8uAu.js.map +0 -1
  325. package/dist/admin/assets/titles-CQiqqDw-.js +0 -2
  326. package/dist/admin/assets/titles-CQiqqDw-.js.map +0 -1
  327. package/dist/admin/assets/tokens-ixHjAkDK.js +0 -2
  328. package/dist/admin/assets/useContentSchema-DtYfhsd2.js +0 -2
  329. package/dist/admin/assets/useContentSchema-DtYfhsd2.js.map +0 -1
  330. package/dist/admin/assets/useCursorPager-0zHjlm-7.js +0 -2
  331. package/dist/admin/assets/useMediaUploader-CBcq1ICg.js.map +0 -1
  332. package/dist/admin/assets/useNetworkPermission-Cts98h9d.js +0 -2
  333. package/dist/admin/assets/usePlaces-DC47wVeU.js +0 -2
  334. package/dist/admin/assets/usePlaces-DC47wVeU.js.map +0 -1
  335. package/dist/admin/assets/useQueries-CirW3Mvp.js +0 -2
  336. package/dist/admin/assets/useQueries-CirW3Mvp.js.map +0 -1
  337. package/dist/admin/assets/useSaveShortcut-rKtp1qK7.js +0 -2
  338. package/dist/admin/assets/useSaveShortcut-rKtp1qK7.js.map +0 -1
  339. package/dist/admin/assets/users-2iJYwlJb.js +0 -2
  340. package/dist/admin/assets/users-2iJYwlJb.js.map +0 -1
  341. package/dist/cliMain-papyXJDd.js.map +0 -1
  342. package/dist/public-B57h4F7Y.js.map +0 -1
  343. package/dist/worker-B-sC-eY2.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema-D-qo7XSF.js","names":["useMemo","__toESM","isModelDefinition","useQuery","queryKeys","useMutation","useQueryClient","withCsrf","siteAdminApi","adminApi","queryOptions","import_react","require_react","SCHEMA_POLL_INTERVAL_MS","SCHEMA_VERSION_STALE_MS","SCHEMA_CHANGE_POLL_INTERVAL_MS","FINAL_CHANGE_STATUSES","silent","definitionApi","category","definitionsQueryOptions","useDefinitions","KIND_ORDER","useSharedDefinitions","models","components","a","b","useEverySiteModels","sites","lists","site","byId","item","items","useAllDefinitions","definitionQueryOptions","id","fetchLatestDefinitionChange","definitionRevisionQueryOptions","revisionId","useDefinition","useSchemaSummary","useSchemaVersion","summary","useSchemaSettings","useSchemaChange","changeId","query","useCreateDefinition","queryClient","input","usePlanChange","useDeleteDefinition","expectedVersion","useChangeScope"],"sources":["../../src/constants/schema.ts","../../src/api/schema.ts"],"sourcesContent":["/** How often the admin checks whether another session changed the schema (no SSE endpoint exists). */\nexport const SCHEMA_POLL_INTERVAL_MS = 5_000;\n\n/** The status bar's schema version is refreshed at most this often (plus on focus); it never polls. */\nexport const SCHEMA_VERSION_STALE_MS = 60_000;\n\n/** How often a running schema change (prerequisite jobs) is polled for its outcome. */\nexport const SCHEMA_CHANGE_POLL_INTERVAL_MS = 1_000;\n\n/** Final states of a planned schema change. */\nexport const FINAL_CHANGE_STATUSES: ReadonlySet<string> = new Set(['activated', 'failed', 'cancelled']);\n","import type {\n ChangeScopeInput,\n CreateDefinitionInput,\n DefinitionCategory,\n DefinitionListItem,\n DefinitionPayload,\n SiteSummary,\n} from '@shapio/client';\nimport { isModelDefinition, type ModelDefinition } from '@shapio/schema';\nimport { queryOptions, useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\nimport { useMemo } from 'react';\nimport {\n FINAL_CHANGE_STATUSES,\n SCHEMA_CHANGE_POLL_INTERVAL_MS,\n SCHEMA_POLL_INTERVAL_MS,\n SCHEMA_VERSION_STALE_MS,\n} from '@/constants/schema';\nimport { adminApi, siteAdminApi } from './client';\nimport { withCsrf } from './csrf';\nimport { queryKeys } from './queryKeys';\n\nconst silent = { silent: true } as const;\n\nconst definitionApi = (category: DefinitionCategory) =>\n category === 'model' ? adminApi.models : adminApi.components;\n\n/** Every active model or component (the registry), also read by route guards. */\nexport const definitionsQueryOptions = (category: DefinitionCategory) =>\n queryOptions({\n queryKey: queryKeys.schema.definitions(category),\n queryFn: () => definitionApi(category).list(),\n meta: silent,\n });\n\nexport const useDefinitions = (category: DefinitionCategory) => useQuery(definitionsQueryOptions(category));\n\nconst KIND_ORDER = { collection: 0, singleton: 1, component: 2 } as const;\n\n/**\n * The models and components shared with all sites (`?scope=network`), for the network view: collections,\n * single types, then components, each by label.\n */\nexport const useSharedDefinitions = () =>\n useQuery({\n queryKey: queryKeys.schema.sharedDefinitions,\n queryFn: async () => {\n const [models, components] = await Promise.all([\n adminApi.models.list({ scope: 'network' }),\n adminApi.components.list({ scope: 'network' }),\n ]);\n return [...models, ...components].sort(\n (a, b) =>\n KIND_ORDER[a.definition.kind] - KIND_ORDER[b.definition.kind] ||\n a.definition.label.localeCompare(b.definition.label),\n );\n },\n meta: silent,\n });\n\n/** A model on the network roles pages: shared with all sites (`site` null), or one site's own. */\nexport type SiteModel = { definition: ModelDefinition; site: SiteSummary | null };\n\n/**\n * Every site's models, each once: one list per site (shared models and the site's own), shared models\n * first, then each site's by site name, each by label. `siteCount` says whether naming the site helps.\n */\nexport const useEverySiteModels = () =>\n useQuery({\n queryKey: queryKeys.schema.everySiteModels,\n queryFn: async () => {\n const sites = await adminApi.sites.list();\n const lists = await Promise.all(\n sites.map(async (site) => ({ site, items: await siteAdminApi(site.key).models.list() })),\n );\n const byId = new Map<string, SiteModel>();\n for (const { site, items } of lists) {\n for (const item of items) {\n if (isModelDefinition(item.definition) && !byId.has(item.definition.id)) {\n byId.set(item.definition.id, {\n definition: item.definition,\n site: item.siteId === null ? null : site,\n });\n }\n }\n }\n const models = [...byId.values()].sort(\n (a, b) =>\n (a.site?.name ?? '').localeCompare(b.site?.name ?? '') ||\n a.definition.label.localeCompare(b.definition.label),\n );\n return { models, siteCount: sites.length };\n },\n meta: silent,\n });\n\n/** Models and components together (relation targets, component pickers, cross-definition validation). */\nexport const useAllDefinitions = () => {\n const models = useDefinitions('model');\n const components = useDefinitions('component');\n const definitions = useMemo<DefinitionListItem[] | undefined>(\n () => (models.data && components.data ? [...models.data, ...components.data] : undefined),\n [models.data, components.data],\n );\n return { definitions, error: models.error ?? components.error };\n};\n\n/** One definition with its active version and any change still running for it. */\nexport const definitionQueryOptions = (category: DefinitionCategory, id: string) =>\n queryOptions({\n queryKey: queryKeys.schema.definition(category, id),\n queryFn: () => definitionApi(category).get(id),\n meta: silent,\n });\n\n/**\n * The definition's newest schema change, in whatever state it is now (running, activated or failed). Right\n * after a ship that runs in the background it is that ship's change: the version guard lets no other change\n * of the definition start until it ends.\n */\nexport const fetchLatestDefinitionChange = async (category: DefinitionCategory, id: string) =>\n (await definitionApi(category).changes(id))[0];\n\n/** One revision of a definition with its body (immutable, so cached for good). */\nexport const definitionRevisionQueryOptions = (\n category: DefinitionCategory,\n id: string,\n revisionId: string,\n) =>\n queryOptions({\n queryKey: queryKeys.schema.revision(category, id, revisionId),\n queryFn: () => definitionApi(category).revision(id, revisionId),\n staleTime: Infinity,\n meta: silent,\n });\n\nexport const useDefinition = (category: DefinitionCategory, id: string) =>\n useQuery(definitionQueryOptions(category, id));\n\n/** The global schema version and each definition's version, polled so other sessions' changes show up. */\nexport const useSchemaSummary = () =>\n useQuery({\n queryKey: queryKeys.schema.summary,\n queryFn: () => adminApi.schema.summary(),\n refetchInterval: SCHEMA_POLL_INTERVAL_MS,\n refetchOnWindowFocus: true,\n staleTime: 0,\n meta: silent,\n });\n\n/**\n * The global schema version for the status bar: the same cache entry as `useSchemaSummary`, but without\n * its poll. It loads once, refreshes on window focus and after our own schema changes (they invalidate\n * `schema.all`), and follows the builder's 5s poll while a builder is open.\n */\nexport const useSchemaVersion = () =>\n useQuery({\n queryKey: queryKeys.schema.summary,\n queryFn: () => adminApi.schema.summary(),\n staleTime: SCHEMA_VERSION_STALE_MS,\n refetchOnWindowFocus: true,\n select: (summary) => summary.schemaVersion,\n meta: silent,\n });\n\nexport const useSchemaSettings = () =>\n useQuery({\n queryKey: queryKeys.schema.settings,\n queryFn: () => adminApi.schema.settings(),\n meta: silent,\n });\n\n/** A planned change's status, polled until it activates, fails or is cancelled. */\nexport const useSchemaChange = (changeId: string | undefined) =>\n useQuery({\n queryKey: queryKeys.schema.change(changeId ?? ''),\n queryFn: () => adminApi.schema.change(changeId ?? ''),\n enabled: changeId !== undefined,\n refetchInterval: (query) =>\n query.state.data && FINAL_CHANGE_STATUSES.has(query.state.data.status)\n ? false\n : SCHEMA_CHANGE_POLL_INTERVAL_MS,\n staleTime: 0,\n meta: silent,\n });\n\nexport const useCreateDefinition = () => {\n const queryClient = useQueryClient();\n return useMutation({\n mutationKey: ['schema', 'create'],\n meta: silent,\n mutationFn: ({ category, input }: { category: DefinitionCategory; input: CreateDefinitionInput }) =>\n withCsrf(() => definitionApi(category).create(input)),\n onSuccess: () => queryClient.invalidateQueries({ queryKey: queryKeys.schema.all }),\n });\n};\n\ntype PlanVariables = {\n category: DefinitionCategory;\n id: string;\n definition: DefinitionPayload;\n expectedVersion: number;\n};\n\n/** Plan preview: classification, impact and prerequisites of the draft. Writes nothing. */\nexport const usePlanChange = () =>\n useMutation({\n mutationKey: ['schema', 'plan'],\n meta: silent,\n mutationFn: ({ category, id, definition, expectedVersion }: PlanVariables) =>\n withCsrf(() => definitionApi(category).planUpdate(id, { definition, expectedVersion })),\n });\n\nexport const useDeleteDefinition = () => {\n const queryClient = useQueryClient();\n return useMutation({\n mutationKey: ['schema', 'delete'],\n mutationFn: ({\n category,\n id,\n expectedVersion,\n }: {\n category: DefinitionCategory;\n id: string;\n expectedVersion: number;\n }) =>\n // Only called after the builder's confirm dialog, which is the acknowledgement.\n withCsrf(() => definitionApi(category).remove(id, expectedVersion, { acknowledgeBreaking: true })),\n onSuccess: () => queryClient.invalidateQueries({ queryKey: queryKeys.schema.all }),\n });\n};\n\n/**\n * Shares a definition with all sites or keeps it on one (409 SCOPE_IN_USE while another site has entries,\n * 409 SCHEMA_VERSION_CONFLICT when it moved). `me` is read again: who may manage the definition changed.\n */\nexport const useChangeScope = () => {\n const queryClient = useQueryClient();\n return useMutation({\n mutationKey: ['schema', 'scope'],\n meta: silent,\n mutationFn: ({\n category,\n id,\n input,\n }: {\n category: DefinitionCategory;\n id: string;\n input: ChangeScopeInput;\n }) => withCsrf(() => definitionApi(category).changeScope(id, input)),\n onSuccess: () =>\n Promise.all([\n queryClient.invalidateQueries({ queryKey: queryKeys.schema.all }),\n queryClient.invalidateQueries({ queryKey: queryKeys.me }),\n ]),\n });\n};\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sections-DqBzSKMP.js","names":["__iconData","__iconData","_Fragment","useMemo","useMemo","useCallback","__toESM","require_jsx_runtime","useQuery","queryKeys","adminApi","useTranslation","createLucideIcon","cva","Search","Globe","KeyRound","Sparkles","cn","lookValue","BUILT_IN_THEMES","resolveScheme","useThemeStore","__iconData$2","MonitorSmartphone","__iconData$1","Palette","__iconData","UserRound","MARK_VIEWBOX","MARK_PATH","MARK_S_PATH","import_jsx_runtime","Logo","className","variant","swatchVariants","ThemeSwatches","themeKey","size","import_react","require_react","useExtensionThemes","useThemeOptions","extensionThemes","t","key","useLookOptions","themes","theme","useLookSelection","state","appearance","variants","setLook","look","looks","candidate","value","SETTINGS_GROUPS"],"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/monitor-smartphone.mjs","../../../../node_modules/.pnpm/lucide-react@1.49.0_@types+react@19.3.0_react@19.3.0/node_modules/lucide-react/dist/esm/icons/palette.mjs","../../../../node_modules/.pnpm/lucide-react@1.49.0_@types+react@19.3.0_react@19.3.0/node_modules/lucide-react/dist/esm/icons/user-round.mjs","../../src/components/Logo/paths.ts","../../src/components/Logo/index.tsx","../../src/components/ThemeSwatches/index.tsx","../../src/api/extensionThemes.ts","../../src/hooks/useThemeOptions.ts","../../src/hooks/useLookOptions.ts","../../src/components/ThemeMenu/hooks/useLookSelection.ts","../../src/features/Settings/sections.ts"],"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: \"monitor-smartphone\",\n size: 24,\n node: [\n [\"path\", { d: \"M18 8V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h8\", key: \"10dyio\" }],\n [\"path\", { d: \"M10 19v-3.96 3.15\", key: \"1irgej\" }],\n [\"path\", { d: \"M7 19h5\", key: \"qswx4l\" }],\n [\"rect\", { width: \"6\", height: \"10\", x: \"16\", y: \"12\", rx: \"2\", key: \"1egngj\" }]\n ]\n};\n__iconData.node;\nconst MonitorSmartphone = createLucideIcon(__iconData);\n\nexport { __iconData, MonitorSmartphone as default };\n//# sourceMappingURL=monitor-smartphone.mjs.map\n","/**\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: \"palette\",\n size: 24,\n node: [\n [\n \"path\",\n {\n d: \"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z\",\n key: \"e79jfc\"\n }\n ],\n [\"circle\", { cx: \"13.5\", cy: \"6.5\", r: \".5\", fill: \"currentColor\", key: \"1okk4w\" }],\n [\"circle\", { cx: \"17.5\", cy: \"10.5\", r: \".5\", fill: \"currentColor\", key: \"f64h9f\" }],\n [\"circle\", { cx: \"6.5\", cy: \"12.5\", r: \".5\", fill: \"currentColor\", key: \"qy21gx\" }],\n [\"circle\", { cx: \"8.5\", cy: \"7.5\", r: \".5\", fill: \"currentColor\", key: \"fotxhn\" }]\n ]\n};\n__iconData.node;\nconst Palette = createLucideIcon(__iconData);\n\nexport { __iconData, Palette as default };\n//# sourceMappingURL=palette.mjs.map\n","/**\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: \"user-round\",\n size: 24,\n node: [\n [\"circle\", { cx: \"12\", cy: \"8\", r: \"5\", key: \"1hypcn\" }],\n [\"path\", { d: \"M20 21a8 8 0 0 0-16 0\", key: \"rfgkzh\" }]\n ],\n aliases: [\"user-2\"]\n};\n__iconData.node;\nconst UserRound = createLucideIcon(__iconData);\n\nexport { __iconData, UserRound as default };\n//# sourceMappingURL=user-round.mjs.map\n","/**\n * Geometry of the Shapio mark, copied from src/assets/brand/mark.svg (brandAssets.test.ts keeps them equal).\n * MARK_PATH is the logo-blue rounded square with the S cut out; MARK_S_PATH is the same S, drawn white\n * underneath so the S stays white on any background.\n */\nexport const MARK_VIEWBOX = '165.9 188.4 391.6 391.6';\nexport const MARK_PATH =\n 'M448.796 188.638C449.42 188.611 450.045 188.592 450.669 188.582C501.868 187.651 540.677 225.719 540.624 276.894C540.573 326.288 540.603 375.735 540.626 425.131L540.658 470.482C540.658 483.828 541.256 499.153 538.461 512.06C534.944 527.675 527.115 541.989 515.866 553.376C483.521 586.36 441.966 579.367 399.496 579.353L274.688 579.398C260.178 579.335 249.077 578.339 235.594 572.498C202.135 558.003 183.093 528.095 182.812 492.132L182.84 340.893L182.764 294.415C182.748 282.346 182.082 268.448 184.458 256.699C190.703 226.338 217.027 197.513 247.917 191.277C268.652 187.091 297.062 188.828 318.736 188.767L448.796 188.638ZM361.016 396.004C344.007 374.629 323.798 388.326 309.62 366.449C306.112 360.947 304.63 354.395 305.429 347.919C306.543 338.369 310.925 329.619 318.66 323.737C322.66 320.723 327.306 318.681 332.232 317.774C338.75 316.565 350.624 316.95 357.764 316.96L398.742 317.076C422.053 317.195 445.631 318.93 451.21 289.426C454.701 270.967 440.574 253.502 421.891 252.373C406.687 251.454 391.54 252.176 376.322 251.952C364.092 252.278 342.083 251.104 330.854 252.306C303.812 254.678 281.014 266.245 263.532 287.037C246.701 306.912 238.504 332.685 240.762 358.631C243.078 384.002 255.319 407.432 274.823 423.824C291.974 438.061 316.838 447.658 339.126 445.811C364.013 443.748 374.55 416.102 361.016 396.004ZM311.813 515.265L361.548 515.197C379.473 515.171 395.747 516.164 413.183 510.829C453.083 498.622 481.57 460.024 481.361 418.224C481.125 392.379 470.731 367.665 452.424 349.422C435.591 332.882 411.43 321.322 387.6 321.573C385.34 321.614 383.08 321.718 380.825 321.882C371.729 324.102 366.201 326.695 360.946 334.903C351.804 349.18 356.006 371.938 371.353 380.182C383.495 386.704 396.898 384.323 406.977 395.549C416.688 406.365 417.888 422.67 411.166 435.388C399.427 455.241 374.932 449.929 355.639 450.364C344.805 450.608 333.431 450.646 322.579 450.381C305.399 449.96 287.213 447.995 276.941 465.474C272.297 473.33 271.006 482.723 273.359 491.54C278.548 510.619 294.163 515.555 311.813 515.265Z';\nexport const MARK_S_PATH =\n 'M361.016 396.004C344.007 374.629 323.798 388.326 309.62 366.449C306.112 360.947 304.63 354.395 305.429 347.919C306.543 338.369 310.925 329.619 318.66 323.737C322.66 320.723 327.306 318.681 332.232 317.774C338.75 316.565 350.624 316.95 357.764 316.96L398.742 317.076C422.053 317.195 445.631 318.93 451.21 289.426C454.701 270.967 440.574 253.502 421.891 252.373C406.687 251.454 391.54 252.176 376.322 251.952C364.092 252.278 342.083 251.104 330.854 252.306C303.812 254.678 281.014 266.245 263.532 287.037C246.701 306.912 238.504 332.685 240.762 358.631C243.078 384.002 255.319 407.432 274.823 423.824C291.974 438.061 316.838 447.658 339.126 445.811C364.013 443.748 374.55 416.102 361.016 396.004ZM311.813 515.265L361.548 515.197C379.473 515.171 395.747 516.164 413.183 510.829C453.083 498.622 481.57 460.024 481.361 418.224C481.125 392.379 470.731 367.665 452.424 349.422C435.591 332.882 411.43 321.322 387.6 321.573C385.34 321.614 383.08 321.718 380.825 321.882C371.729 324.102 366.201 326.695 360.946 334.903C351.804 349.18 356.006 371.938 371.353 380.182C383.495 386.704 396.898 384.323 406.977 395.549C416.688 406.365 417.888 422.67 411.166 435.388C399.427 455.241 374.932 449.929 355.639 450.364C344.805 450.608 333.431 450.646 322.579 450.381C305.399 449.96 287.213 447.995 276.941 465.474C272.297 473.33 271.006 482.723 273.359 491.54C278.548 510.619 294.163 515.555 311.813 515.265Z';\n","import { cn } from '@/helpers/cn';\nimport { MARK_PATH, MARK_S_PATH, MARK_VIEWBOX } from './paths';\n\ntype LogoVariant = 'default' | 'reverse';\n\ntype LogoProps = {\n /**\n * `default`: the brand tile with its S, on any ground. `reverse`: for the auth brand panel, the tile in the\n * theme's brand-panel-mark colour (the S stays the brand's, so the mark reads the same in every theme).\n */\n variant?: LogoVariant;\n className?: string;\n};\n\n/** The Shapio mark (src/assets/brand/mark.svg), 32px by default. Decorative; pair it with the wordmark or a visible label. */\nexport const Logo = ({ variant = 'default', className }: LogoProps) => (\n <svg\n viewBox={MARK_VIEWBOX}\n aria-hidden=\"true\"\n focusable=\"false\"\n data-slot=\"logo\"\n className={cn('size-8 shrink-0', className)}\n >\n <path className=\"fill-brand-logo-foreground\" d={MARK_S_PATH} />\n <path className={variant === 'reverse' ? 'fill-brand-panel-mark' : 'fill-brand-logo'} d={MARK_PATH} />\n </svg>\n);\n","import type { ThemeVariant } from '@shapio/schema';\nimport { cva } from 'class-variance-authority';\nimport { cn } from '@/helpers/cn';\nimport { Logo } from '../Logo';\n\nconst swatchVariants = cva('shrink-0 border border-border bg-background', {\n variants: {\n size: {\n /** Menus: ground, surface and primary as three dots on the ground. */\n sm: 'inline-flex items-center gap-0.5 rounded-full p-0.5',\n /** Theme cards: the logo, a surface and a primary pill on the ground. */\n lg: 'flex h-14 w-full items-center gap-2 rounded-lg px-2.5',\n },\n },\n defaultVariants: { size: 'sm' },\n});\n\ntype ThemeSwatchesProps = {\n themeKey: string;\n variant: ThemeVariant;\n size?: 'sm' | 'lg';\n className?: string;\n};\n\n/**\n * A look's colours, drawn from its own tokens: the subtree carries `data-theme` (and `dark` for a dark\n * look). Swatches only, never live components: `dark:` variants\n * match ancestors, so a component inside a light preview on a dark page would mix both. Decorative.\n */\nexport const ThemeSwatches = ({ themeKey, variant, size, className }: ThemeSwatchesProps) => (\n <span\n aria-hidden=\"true\"\n data-theme={themeKey}\n data-slot=\"theme-swatches\"\n className={cn(swatchVariants({ size }), variant === 'dark' && 'dark', className)}\n >\n {size === 'lg' ? (\n <>\n <Logo className=\"size-6\" />\n <span className=\"h-7 flex-1 rounded-md border border-border bg-card\" />\n <span className=\"h-4 w-8 rounded-full bg-primary\" />\n </>\n ) : (\n <>\n <span className=\"size-2.5 rounded-full bg-card ring-1 ring-border\" />\n <span className=\"size-2.5 rounded-full bg-primary\" />\n </>\n )}\n </span>\n);\n","import { useQuery } from '@tanstack/react-query';\nimport { adminApi } from './client';\nimport { queryKeys } from './queryKeys';\n\n/**\n * Colour themes the project declares (`shapio.config`). Public (the sign-in screen lists them too) and fixed\n * until a server restart, so read once. Their CSS arrives separately, linked from index.html.\n */\nexport const useExtensionThemes = () =>\n useQuery({\n queryKey: queryKeys.extensionThemes,\n queryFn: () => adminApi.extensions.themes(),\n staleTime: Infinity,\n meta: { silent: true },\n });\n","import type { ThemeVariant } from '@shapio/schema';\nimport { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useExtensionThemes } from '@/api/extensionThemes';\nimport { BUILT_IN_THEMES } from '@/constants/themes';\n\nexport type ThemeOption = {\n key: string;\n name: string;\n description: string | undefined;\n variants: readonly ThemeVariant[];\n};\n\n/**\n * Every theme the person can pick, in menu order: the built-in ones (translated), then the project's.\n * `isComplete` is false until the project's list has loaded (or while it fails): nothing may be judged\n * missing from the list before then.\n */\nexport const useThemeOptions = (): { themes: readonly ThemeOption[]; isComplete: boolean } => {\n const { t } = useTranslation();\n const extensionThemes = useExtensionThemes();\n const themes = useMemo(\n () => [\n ...BUILT_IN_THEMES.map(({ key, variants }): ThemeOption => ({\n key,\n name: t(`appearance.themes.${key}.name`),\n description: t(`appearance.themes.${key}.description`),\n variants,\n })),\n ...(extensionThemes.data?.items ?? []).map(({ key, name, description, variants }): ThemeOption => ({\n key,\n name,\n description,\n variants,\n })),\n ],\n [t, extensionThemes.data],\n );\n return { themes, isComplete: extensionThemes.isSuccess };\n};\n","import type { ThemeVariant } from '@shapio/schema';\nimport { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { lookValue } from '@/helpers/theme';\nimport { useThemeOptions } from '@/hooks/useThemeOptions';\n\nexport type LookOption = {\n /** `<theme key>:<variant>`, the radio value. */\n value: string;\n themeKey: string;\n variant: ThemeVariant;\n /** The theme's variants, cached in the theme store for the pre-paint script. */\n variants: readonly ThemeVariant[];\n name: string;\n description: string | undefined;\n};\n\n/**\n * Every look the person can pick, in menu order: one per theme variant. A one-variant theme (every built-in\n * one) is listed by its name; an extension theme with both variants twice, as \"Name Light\" and \"Name Dark\".\n */\nexport const useLookOptions = (): { looks: readonly LookOption[] } => {\n const { t } = useTranslation();\n const { themes } = useThemeOptions();\n const looks = useMemo(\n () =>\n themes.flatMap((theme) =>\n theme.variants.map((variant): LookOption => ({\n value: lookValue(theme.key, variant),\n themeKey: theme.key,\n variant,\n variants: theme.variants,\n name:\n theme.variants.length > 1\n ? t('appearance.lookName', { theme: theme.name, variant: t(`appearance.variants.${variant}`) })\n : theme.name,\n description: theme.description,\n })),\n ),\n [t, themes],\n );\n return { looks };\n};\n","import { useCallback } from 'react';\nimport { lookValue, resolveScheme } from '@/helpers/theme';\nimport { useLookOptions } from '@/hooks/useLookOptions';\nimport { useThemeStore } from '@/stores/theme';\n\n/** The looks, the chosen one's radio value, and a picker that saves the look (and its theme's variants). */\nexport const useLookSelection = () => {\n const { looks } = useLookOptions();\n const theme = useThemeStore((state) => state.theme);\n const appearance = useThemeStore((state) => state.appearance);\n const variants = useThemeStore((state) => state.variants);\n const setLook = useThemeStore((state) => state.setLook);\n const selectedLook = lookValue(theme, resolveScheme(appearance, variants));\n const selectLook = useCallback(\n (value: string) => {\n const look = looks.find((candidate) => candidate.value === value);\n if (look) {\n setLook(look.themeKey, look.variant, look.variants);\n }\n },\n [looks, setLook],\n );\n return { looks, selectedLook, selectLook };\n};\n","import type { GlobalAction } from '@shapio/client';\nimport {\n Globe,\n KeyRound,\n MonitorSmartphone,\n Palette,\n Search,\n Sparkles,\n UserRound,\n type LucideIcon,\n} from 'lucide-react';\n\ntype SettingsPath =\n | '/settings/profile'\n | '/settings/sessions'\n | '/settings/theme'\n | '/settings/locales'\n | '/settings/seo'\n | '/settings/assist'\n | '/settings/api-tokens';\n\ntype SettingsSection = {\n key: 'profile' | 'sessions' | 'appearance' | 'locales' | 'seo' | 'assist' | 'apiTokens';\n to: SettingsPath;\n icon: LucideIcon;\n /** Hidden unless the admin holds this permission (the server enforces it either way). */\n permission?: GlobalAction;\n};\n\nexport const SETTINGS_GROUPS: readonly {\n key: 'account' | 'workspace' | 'developer';\n sections: readonly SettingsSection[];\n}[] = [\n {\n key: 'account',\n sections: [\n { key: 'profile', to: '/settings/profile', icon: UserRound },\n { key: 'sessions', to: '/settings/sessions', icon: MonitorSmartphone },\n { key: 'appearance', to: '/settings/theme', icon: Palette },\n ],\n },\n {\n key: 'workspace',\n sections: [\n { key: 'locales', to: '/settings/locales', icon: Globe },\n { key: 'seo', to: '/settings/seo', icon: Search, permission: 'site.settings' },\n { key: 'assist', to: '/settings/assist', icon: Sparkles },\n ],\n },\n {\n key: 'developer',\n sections: [{ key: 'apiTokens', to: '/settings/api-tokens', icon: KeyRound, permission: 'tokens.manage' }],\n },\n];\n"],"ignoreList":[0,1,2],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{Ht as e,Pt as t,Rt as n,Vt as r,bn as i,ct as a,ft as o}from"./src-ndgTSYLX.js";import{g as s,tt as c}from"./auth-CQO4MBUj.js";var l={locales:{},imageId:null,twitterHandle:null},u=e=>n.test(e),d=(e,t)=>{let n=n=>t.map(t=>e.locales[t]?.[n]).find(e=>e!==void 0),r=n(`siteName`),i=n(`titleTemplate`),a=n(`description`);return{...r===void 0?{}:{siteName:r},...i===void 0?{}:{titleTemplate:i},...a===void 0?{}:{description:a}}},f=(e,t)=>t!==void 0&&u(t)?t.replace(`%s`,()=>e):e,p={silent:!0},m={ensure:`/api/admin/components/builtin/seo/ensure`,siteSeo:`/api/admin/site/seo`},h=e=>{if(s(e,`SEO_COMPONENT_CONFLICT`))return e.details?.definition},g=()=>{let e=i();return r({mutationKey:[`seo`,`ensure`],meta:p,mutationFn:()=>a(()=>o.request(m.ensure,{method:`POST`})),onSuccess:()=>e.invalidateQueries({queryKey:t.schema.all})})},_=c({queryKey:t.siteSeo,queryFn:()=>o.request(m.siteSeo),meta:p}),v=()=>e(_),y=()=>{let{data:t}=e({..._,select:e=>e.seo});return t??l},b=()=>{let e=i();return r({mutationKey:[`seo`,`update`],meta:p,mutationFn:e=>a(()=>o.request(m.siteSeo,{method:`PUT`,body:e})),onSuccess:n=>e.setQueryData(t.siteSeo,n)})};export{y as a,u as c,v as i,d as l,_ as n,b as o,g as r,f as s,h as t};
2
- //# sourceMappingURL=seo-CceGYTIX.js.map
@@ -1,2 +0,0 @@
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{Ht as r,K as i,Pt as a,Vt as o,bn as s,ct as c,ut as l,zt as u}from"./src-ndgTSYLX.js";import{i as d}from"./media-BCnVhaDH.js";import{_ as ee,g as f,h as p,i as m,o as h,u as g}from"./auth-CQO4MBUj.js";import{O as te,_,a as v,i as y,n as b,o as ne,t as re}from"./badge-CqKF1pwz.js";import{n as ie}from"./Match-CcD9KxHH.js";import{n as x,t as ae}from"./createLucideIcon-CLmh7Go-.js";import{i as S,n as C,r as oe,t as w}from"./RowTitle-Bqt6evG9.js";import{t as T}from"./fileRoute-s7mCMYUJ.js";import{t as se}from"./UnsavedChangesGuard-CUiuMklN.js";import{c as ce,i as le,n as ue,o as de}from"./seo-CceGYTIX.js";import{E,t as fe,w as pe}from"./InfoHint-CSEtcHjL.js";import{T as D,x as me}from"./es2015-BHmI7wjK.js";import{i as he,n as ge,r as _e,t as ve}from"./AssetTile-BrMzsUZD.js";import{i as O,n as ye,r as be}from"./skeleton-B5MP72Kw.js";import{a as xe,i as Se,n as Ce,r as we,t as Te}from"./select-C0USI-Ox.js";import{a as k,r as Ee,t as A}from"./InlineConfirm-yW-iUKFC.js";import{_ as De,a as j,c as Oe,s as ke,t as Ae}from"./field-COOzRptX.js";import{t as je}from"./ellipsis-F91991on.js";import{c as Me,l as Ne}from"./Thumbnail-DNj5TRBI.js";import{t as Pe}from"./globe-DFr3Gd2w.js";import{t as Fe}from"./key-round-D36CePnN.js";import{a as M,p as Ie,r as Le,t as Re}from"./dropdown-menu-_xfaEp5C.js";import{c as ze,i as Be,n as Ve,t as He}from"./sections-DqBzSKMP.js";import{t as Ue}from"./plus-BoDtdLCo.js";import{t as We}from"./radio-group-4ok5evXq.js";import{a as Ge,c as Ke,f as qe,n as N,o as P,r as Je,s as Ye,t as F,u as I}from"./zod-Cry7YvLY.js";import{n as Xe,t as L}from"./settle-CFU6YpQ0.js";import{_ as Ze,a as R,g as z,i as B,l as Qe,n as V,o as H,r as U,s as W,t as G,u as $e,v as K}from"./table-zG68ipQc.js";import{t as et}from"./HintedLabel-DzHnEdIK.js";import{t as q}from"./QueryView-xMP_uJ_t.js";import{t as tt}from"./FormRadioGroup-Cfx5pvzU.js";import{t as nt}from"./useNetworkPermission-Cts98h9d.js";import{a as rt,i as it,n as at,r as ot,t as st}from"./locales-Bg3htKo8.js";import{n as ct,t as lt}from"./useMediaPickerDialog-CU-ekPqX.js";import{a as ut,l as dt,m as ft,p as pt,r as mt,t as ht}from"./AssistError-Cs-r9Ssc.js";import{t as gt}from"./textarea-BBjqMF-Y.js";import{t as J}from"./Panel-Bcl09TtM.js";import{t as _t}from"./ExternalLink-BITMgS1K.js";import{t as vt}from"./NoAccess-C8RLPN0I.js";import{t as yt}from"./RadioTile-DQFmni5A.js";import{t as bt}from"./FormTextareaField-CO115n_u.js";import{n as xt,r as St,t as Ct}from"./SubNavLink-CiCaVV8U.js";import{n as wt,t as Tt}from"./FormSelectField-BzE9Lq9i.js";import{n as Et,r as Dt,t as Ot}from"./tokens-ixHjAkDK.js";import{i as kt,o as At,s as jt,t as Mt}from"./SecretReveal-Bm6nYg5J.js";import{t as Nt}from"./useConfirmTarget-9JmfiY2X.js";var Pt={name:`star`,size:24,node:[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,key:`r04s7s`}]]};Pt.node;var Ft=ae(Pt),Y=e(n(),1),It=()=>{let{t:e}=x(),t=g().data?.globalPermissions??[];return(0,Y.jsx)(xt,{label:e(`settings.sections`),children:He.map(n=>{let r=n.sections.filter(e=>!e.permission||t.includes(e.permission));return r.length===0?null:(0,Y.jsx)(St,{label:e(`settings.${n.key}`),children:r.map(t=>{let n=t.icon;return(0,Y.jsxs)(Ct,{to:t.to,children:[(0,Y.jsx)(n,{"aria-hidden":`true`}),e(`settings.${t.key}`)]},t.key)})},n.key)})})},Lt=()=>(0,Y.jsx)(v,{children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6 lg:flex-row lg:items-start lg:gap-8`,children:[(0,Y.jsx)(It,{}),(0,Y.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,Y.jsx)(ie,{})})]})}),X=e(t(),1),Rt=[`never`,`30`,`90`,`365`],zt=864e5,Bt=(e,t=new Date)=>e===`never`?null:new Date(t.getTime()+Number(e)*zt).toISOString(),Vt=z({name:P(),roleId:K().min(1,`validation.selectRole`),expiry:Qe(Rt),scope:Qe([`site`,`network`])}),Z={name:``,roleId:``,expiry:`90`,scope:`site`},Ht=(e,t,n)=>{let r=Et(),i=I({resolver:F(Vt),defaultValues:Z}),{reset:a}=i;return(0,X.useEffect)(()=>{e&&a(Z)},[e,a]),{form:i,onSubmit:i.handleSubmit(async({name:e,roleId:i,expiry:o,scope:s})=>{let c=s===`network`&&n(i),l=await L(r.mutateAsync({name:e,roleId:i,expiresAt:Bt(o),network:c}));l.ok&&(a(Z),t(l.value))}),createToken:r}},Ut=({open:e,onOpenChange:t,onCreated:n,onCloseAutoFocus:r})=>{let{t:i}=x(),a=jt(),{data:o}=g(),s=o?.networkPermissions.includes(`users.manage`)??!1,c=e=>s&&a.data?.find(t=>t.id===e)?.kind===`admin`,{form:l,onSubmit:u,createToken:d}=Ht(e,n,c),ee=qe({control:l.control,name:`roleId`}),f=[{value:`site`,label:i(`apiTokens.scopeSite`,{name:o?.site.name??``}),description:i(`apiTokens.scopeSiteDescription`)},{value:`network`,label:i(`apiTokens.scopeNetwork`),description:i(`apiTokens.scopeNetworkDescription`)}],p=(a.data??[]).map(e=>({value:e.id,label:e.name})),m=Rt.map(e=>({value:e,label:e===`never`?i(`apiTokens.expiryNever`):i(`apiTokens.expiryDays`,{count:Number(e)})}));return(0,Y.jsxs)(wt,{open:e,onOpenChange:t,size:`md`,...r?{onCloseAutoFocus:r}:{},title:i(`apiTokens.createTitle`),dirty:l.formState.isDirty,pending:d.isPending,submitLabel:i(`common.create`),pendingLabel:i(`common.saving`),onSubmit:e=>void u(e),children:[(0,Y.jsx)(N,{control:l.control,name:`name`,label:i(`apiTokens.name`),autoComplete:`off`}),(0,Y.jsx)(Tt,{control:l.control,name:`roleId`,label:i(`apiTokens.role`),options:p}),c(ee)?(0,Y.jsx)(tt,{control:l.control,name:`scope`,legend:i(`apiTokens.scope`),options:f}):null,(0,Y.jsx)(Tt,{control:l.control,name:`expiry`,label:i(`apiTokens.expiry`),options:m}),(0,Y.jsx)(k,{error:d.error??a.error})]})},Wt=({token:e})=>{let{t}=x();return e.revokedAt?(0,Y.jsx)(b,{tone:`muted`,label:t(`apiTokens.revokedBadge`)}):e.creatorDisabled?(0,Y.jsx)(b,{tone:`warning`,label:t(`apiTokens.pausedBadge`)}):(0,Y.jsx)(b,{tone:`success`,label:t(`apiTokens.active`)})},Gt=({tokens:e,roleNames:t,draftRoleIds:n,siteName:r,onRevoke:i})=>{let{t:a}=x();return(0,Y.jsx)(W,{children:(0,Y.jsxs)(G,{children:[(0,Y.jsx)(R,{children:(0,Y.jsxs)(H,{children:[(0,Y.jsx)(B,{children:a(`apiTokens.name`)}),(0,Y.jsx)(B,{children:a(`apiTokens.prefix`)}),(0,Y.jsx)(B,{children:a(`apiTokens.role`)}),(0,Y.jsx)(B,{children:a(`apiTokens.appliesTo`)}),(0,Y.jsx)(B,{children:a(`apiTokens.status`)}),(0,Y.jsx)(B,{children:a(`apiTokens.lastUsed`)}),(0,Y.jsx)(B,{children:a(`apiTokens.expires`)}),(0,Y.jsx)(B,{children:(0,Y.jsx)(`span`,{className:`sr-only`,children:a(`common.actions`)})})]})}),(0,Y.jsx)(V,{children:e.map(e=>(0,Y.jsxs)(H,{children:[(0,Y.jsx)(U,{children:(0,Y.jsx)(w,{children:e.name})}),(0,Y.jsx)(U,{className:`font-mono text-xs`,children:`${e.tokenPrefix}…`}),(0,Y.jsx)(U,{children:(0,Y.jsxs)(`span`,{className:`flex items-center gap-2`,children:[t.get(e.roleId)??a(`common.unknown`),n.has(e.roleId)?(0,Y.jsx)(b,{tone:`warning`,size:`sm`,label:a(`apiTokens.draftsChip`)}):null]})}),(0,Y.jsx)(U,{children:e.siteId===null?a(`sites.everySite`):r}),(0,Y.jsx)(U,{children:(0,Y.jsx)(Wt,{token:e})}),(0,Y.jsx)(U,{title:C(e.lastUsedAt)||void 0,children:e.lastUsedAt?S(e.lastUsedAt):a(`common.never`)}),(0,Y.jsx)(U,{children:e.expiresAt?C(e.expiresAt):a(`common.never`)}),(0,Y.jsx)(U,{className:`text-right`,children:e.revokedAt?null:(0,Y.jsx)(A,{tone:`danger`,title:a(`apiTokens.revokeTitle`,{name:e.name}),description:a(`apiTokens.revokeDescription`),confirmLabel:a(`common.revoke`),onConfirm:()=>i(e),trigger:(0,Y.jsx)(O,{variant:`outline`,size:`sm`,"aria-label":`${a(`common.revoke`)}: ${e.name}`,children:a(`common.revoke`)})})})]},e.id))})]})})},Kt=()=>{let{t:e}=x(),t=Ot(),{names:n}=At(),{draftRoleIds:r}=kt(),i=g().data?.site.name??``,a=Dt(),[o,s]=(0,X.useState)(!1),[c,l]=(0,X.useState)(void 0),u=async t=>{await a.mutateAsync(t.id),E.success(e(`apiTokens.revoked`))},d=(0,Y.jsxs)(O,{onClick:()=>s(!0),children:[(0,Y.jsx)(Ue,{"aria-hidden":`true`}),e(`apiTokens.create`)]});return(0,Y.jsxs)(v,{width:`full`,children:[(0,Y.jsx)(y,{title:e(`apiTokens.title`),actions:d}),c?(0,Y.jsx)(Mt,{title:e(`apiTokens.secretTitle`),description:e(`apiTokens.secretDescription`),label:e(`apiTokens.secretLabel`),secret:c,dismissLabel:e(`apiTokens.secretDone`),onDismiss:()=>l(void 0)}):null,(0,Y.jsx)(q,{query:t,isEmpty:e=>e.length===0,empty:(0,Y.jsx)(ne,{icon:Fe,title:e(`apiTokens.empty`),description:e(`apiTokens.emptyDescription`),action:d}),children:e=>(0,Y.jsx)(Gt,{tokens:e,roleNames:n,draftRoleIds:r,siteName:i,onRevoke:u})}),(0,Y.jsx)(Ut,{open:o,onOpenChange:s,onCreated:e=>{l(e.token),s(!1)},onCloseAutoFocus:e=>c!==void 0&&e.preventDefault()})]})},qt=()=>{let{t:e}=x();return h(`tokens.manage`)?(0,Y.jsx)(Kt,{}):(0,Y.jsxs)(v,{width:`full`,children:[(0,Y.jsx)(y,{title:e(`apiTokens.title`)}),(0,Y.jsx)(vt,{})]})},Jt=()=>{let{t:e}=x(),{looks:t,selectedLook:n,selectLook:r}=Ve();return(0,Y.jsxs)(v,{width:`full`,children:[(0,Y.jsx)(y,{title:e(`appearance.title`)}),(0,Y.jsx)(J,{title:e(`appearance.theme`),description:e(`appearance.storedHere`),children:(0,Y.jsx)(We,{"aria-label":e(`appearance.theme`),value:n,onValueChange:r,className:`sm:grid-cols-2 xl:grid-cols-3`,children:t.map(e=>(0,Y.jsx)(yt,{value:e.value,label:e.name,description:e.description,media:(0,Y.jsx)(Be,{themeKey:e.themeKey,variant:e.variant,size:`lg`})},e.value))})})]})},Yt=()=>{let{t:e}=x(),t=(0,X.useId)(),[n,r]=(0,X.useState)(``),[i,a]=(0,X.useState)(``),o=dt(),s=n.trim()!==``&&i.trim()!==``;return(0,Y.jsx)(J,{title:e(`assist.settings.tryIt`),titleAs:`h2`,children:(0,Y.jsxs)(`form`,{className:`space-y-4`,onSubmit:e=>{e.preventDefault(),s&&o.mutate({text:n.trim(),instruction:i.trim()})},children:[(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)(be,{htmlFor:`${t}-text`,children:e(`assist.settings.tryText`)}),(0,Y.jsx)(gt,{id:`${t}-text`,value:n,rows:3,maxLength:ft,onChange:e=>r(e.target.value)})]}),(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)(be,{htmlFor:`${t}-instruction`,children:e(`assist.rewrite.instruction`)}),(0,Y.jsx)(ye,{id:`${t}-instruction`,value:i,maxLength:500,placeholder:e(`assist.rewrite.instructionPlaceholder`),onChange:e=>a(e.target.value)})]}),(0,Y.jsx)(ht,{error:o.error}),(0,Y.jsx)(`div`,{className:`flex justify-end`,children:(0,Y.jsx)(mt,{type:`submit`,variant:`default`,size:`default`,pending:o.isPending,pendingLabel:e(`assist.working`),disabled:!s,children:e(`assist.rewrite.run`)})}),(0,Y.jsx)(`div`,{"aria-live":`polite`,children:o.data?(0,Y.jsxs)(`figure`,{className:`space-y-1 rounded-lg border bg-muted/40 p-3`,children:[(0,Y.jsx)(`figcaption`,{className:`text-meta text-muted-foreground`,children:e(`assist.rewrite.proposal`,{model:o.data.model})}),(0,Y.jsx)(`p`,{className:`text-sm whitespace-pre-wrap`,children:o.data.text})]}):null})]})})},Xt=({usage:e})=>{let{t}=x(),n=[{key:`runs`,label:t(`assist.settings.runs`),value:e.runs},{key:`input`,label:t(`assist.settings.inputTokens`),value:e.inputTokens},{key:`output`,label:t(`assist.settings.outputTokens`),value:e.outputTokens}];return(0,Y.jsx)(J,{title:t(`assist.settings.usage`,{month:oe(e.month)}),titleAs:`h2`,children:(0,Y.jsx)(`dl`,{className:`grid gap-4 sm:grid-cols-3`,children:n.map(e=>(0,Y.jsxs)(`div`,{className:`space-y-1`,children:[(0,Y.jsx)(`dt`,{className:`text-meta text-muted-foreground`,children:e.label}),(0,Y.jsx)(`dd`,{className:`text-2xl font-semibold tabular-nums`,children:e.value.toLocaleString()})]},e.key))})})},Zt=()=>{let{t:e}=x(),t=ut();return(0,Y.jsxs)(v,{width:`narrow`,children:[(0,Y.jsx)(y,{title:e(`settings.assist`)}),(0,Y.jsx)(q,{query:t,loadingRows:3,children:t=>(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(J,{title:e(`assist.settings.status`),titleAs:`h2`,actions:(0,Y.jsx)(b,{tone:t.enabled?`success`:`muted`,label:t.enabled?e(`assist.settings.on`):e(`assist.settings.off`)}),children:[t.enabled?(0,Y.jsxs)(`dl`,{className:`space-y-2 text-sm`,children:[(0,Y.jsxs)(`div`,{className:`flex justify-between gap-3`,children:[(0,Y.jsx)(`dt`,{className:`text-muted-foreground`,children:e(`assist.settings.provider`)}),(0,Y.jsx)(`dd`,{className:`font-mono`,children:t.provider})]}),(0,Y.jsxs)(`div`,{className:`flex justify-between gap-3`,children:[(0,Y.jsx)(`dt`,{className:`text-muted-foreground`,children:e(`assist.settings.model`)}),(0,Y.jsx)(`dd`,{className:`min-w-0 font-mono break-all`,children:t.model})]})]}):(0,Y.jsx)(`p`,{className:`text-sm`,children:e(`assist.settings.offDescription`)}),(0,Y.jsx)(`p`,{className:`mt-4 text-meta`,children:(0,Y.jsx)(_t,{href:pt,children:e(`assist.settings.guide`)})})]}),t.enabled&&t.usage?(0,Y.jsx)(Xt,{usage:t.usage}):null,t.enabled?(0,Y.jsx)(Yt,{}):null]})})]})},Qt=e=>{let t=e.details?.plan?.impact,n=e=>typeof e==`number`?e:0;return{affectedHeads:n(t?.affectedHeads),deletedEntries:n(t?.deletedEntries)}},$t=e=>E.success(D.t(`locales.deleted`,{label:e.label})),en=()=>{let e=at(),[t,n]=(0,X.useState)(void 0),[r,i]=(0,X.useState)(!1);return{attempt:async t=>{try{await e.mutateAsync({code:t.code,acknowledged:!1})}catch(r){if(!f(r,`SCHEMA_CHANGE_NOT_ACKNOWLEDGED`))throw r;e.reset(),n({locale:t,...Qt(r)}),i(!0);return}$t(t)},withContent:t,open:r,onOpenChange:i,confirm:()=>{t&&e.mutate({code:t.locale.code,acknowledged:!0},{onSuccess:()=>{$t(t.locale),i(!1)}})},pending:e.isPending,error:e.error}},tn=`locale-fallbacks-legend`,nn=({control:e,locales:t,code:n})=>{let{t:r}=x(),{field:i,fieldState:a}=Ke({control:e,name:`fallbacks`}),[o,s]=(0,X.useState)(``),c=i.value,l=e=>t.find(t=>t.code===e)?.label??e,u=t.filter(e=>e.code!==n&&!c.includes(e.code)),d=(e,t)=>{let n=[...c],[r]=n.splice(e,1);n.splice(t,0,r),i.onChange(n)};return(0,Y.jsxs)(Oe,{className:`gap-3`,"aria-labelledby":tn,children:[(0,Y.jsxs)(ke,{variant:`label`,className:`mb-0 flex items-center gap-1`,children:[(0,Y.jsx)(`span`,{id:tn,children:r(`locales.fallbacks`)}),(0,Y.jsx)(fe,{about:r(`locales.fallbacks`),children:r(`locales.fallbacksHint`)})]}),c.length>0?(0,Y.jsx)(`ol`,{className:`space-y-1`,children:c.map((e,t)=>(0,Y.jsxs)(`li`,{className:`flex items-center gap-2 rounded-lg border py-1 pr-1 pl-3 text-sm`,children:[(0,Y.jsxs)(`span`,{className:`w-5 text-muted-foreground`,children:[t+1,`.`]}),(0,Y.jsxs)(`span`,{className:`flex-1`,children:[l(e),` `,(0,Y.jsx)(`span`,{className:`font-mono text-xs text-muted-foreground`,children:e})]}),(0,Y.jsx)(O,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":r(`locales.moveUp`,{locale:l(e)}),disabled:t===0,onClick:()=>d(t,t-1),children:(0,Y.jsx)(_e,{"aria-hidden":`true`})}),(0,Y.jsx)(O,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":r(`locales.moveDown`,{locale:l(e)}),disabled:t===c.length-1,onClick:()=>d(t,t+1),children:(0,Y.jsx)(he,{"aria-hidden":`true`})}),(0,Y.jsx)(O,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":r(`locales.removeFallback`,{locale:l(e)}),onClick:()=>i.onChange(c.filter(t=>t!==e)),children:(0,Y.jsx)(te,{"aria-hidden":`true`})})]},e))}):(0,Y.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:r(`locales.noFallbacks`)}),u.length>0&&c.length<10?(0,Y.jsxs)(Te,{value:o,onValueChange:e=>{i.onChange([...c,e]),s(``)},children:[(0,Y.jsx)(Se,{className:`w-full sm:w-64`,"aria-label":r(`locales.addFallback`),children:(0,Y.jsx)(xe,{placeholder:r(`locales.addFallback`)})}),(0,Y.jsx)(Ce,{children:u.map(e=>(0,Y.jsxs)(we,{value:e.code,children:[e.label,` (`,e.code,`)`]},e.code))})]}):null,(0,Y.jsx)(Je,{message:a.error?.message})]})},rn=35,an=e=>z({code:K().trim().min(1,`validation.required`).superRefine((t,n)=>{e.includes(t.toLowerCase())?n.addIssue({code:`custom`,message:`validation.localeExists`}):(t.length>rn||!i.test(t))&&n.addIssue({code:`custom`,message:`validation.localeCode`})}),label:P(),fallbacks:$e(K())}),on=e=>({code:e?.code??``,label:e?.label??``,fallbacks:e?.fallbacks??[]}),sn=(e,t,n,r)=>{let i=st(),a=rt(),o=(0,X.useMemo)(()=>t?[]:n.map(e=>e.code.toLowerCase()),[t,n]),s=I({resolver:F(an(o)),defaultValues:on(t)}),{reset:c}=s;(0,X.useEffect)(()=>{e&&(c(on(t)),i.reset(),a.reset())},[e,t,c]);let l=s.handleSubmit(async({code:e,label:n,fallbacks:o})=>{(await L(t?a.mutateAsync({code:t.code,input:{label:n,fallbacks:o}}):i.mutateAsync({code:e,label:n,fallbacks:o}))).ok&&(E.success(D.t(t?`locales.saved`:`locales.created`,{label:n})),r())}),u=t?a:i;return{form:s,onSubmit:l,pending:u.isPending,error:u.error}},cn=({open:e,onOpenChange:t,locale:n,locales:r})=>{let{t:i}=x(),{form:a,onSubmit:o,pending:s,error:c}=sn(e,n,r,()=>t(!1)),l=a.watch(`code`);return(0,Y.jsxs)(wt,{open:e,onOpenChange:t,size:`md`,title:n?i(`locales.editTitle`,{label:n.label}):i(`locales.addTitle`),dirty:a.formState.isDirty,pending:s,submitLabel:i(n?`common.saveChanges`:`locales.add`),pendingLabel:i(`common.saving`),onSubmit:e=>void o(e),children:[(0,Y.jsx)(N,{control:a.control,name:`code`,label:i(`locales.code`),hint:i(`locales.codeHint`),autoComplete:`off`,spellCheck:!1,className:`font-mono`,disabled:n!==void 0}),(0,Y.jsx)(N,{control:a.control,name:`label`,label:i(`locales.label`),autoComplete:`off`}),(0,Y.jsx)(nn,{control:a.control,locales:r,code:l}),(0,Y.jsx)(k,{error:c})]})},ln=({locale:e,chain:t,canManage:n,onEdit:r,onMakeDefault:i,onDelete:a})=>{let{t:o}=x(),[s,c]=(0,X.useState)(!1);return(0,Y.jsxs)(H,{children:[(0,Y.jsx)(U,{children:(0,Y.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(w,{children:e.label}),e.isDefault?(0,Y.jsx)(re,{variant:`secondary`,children:o(`locales.default`)}):null]})}),(0,Y.jsx)(U,{className:`font-mono text-xs`,children:e.code}),(0,Y.jsx)(U,{className:`font-mono text-xs`,children:t.length>0?t.join(` → `):o(`common.none`)}),(0,Y.jsx)(U,{className:`text-right`,children:n?(0,Y.jsxs)(Re,{children:[(0,Y.jsx)(A,{tone:`danger`,open:s,onOpenChange:c,title:o(`locales.deleteTitle`,{label:e.label}),description:o(`locales.deleteDescription`),confirmLabel:o(`common.delete`),pendingLabel:o(`locales.deleting`),onConfirm:()=>a(e),children:(0,Y.jsx)(Ie,{asChild:!0,children:(0,Y.jsx)(O,{variant:`ghost`,size:`icon-sm`,"aria-label":`${o(`common.actions`)}: ${e.label}`,children:(0,Y.jsx)(je,{"aria-hidden":`true`})})})}),(0,Y.jsxs)(Le,{align:`end`,onCloseAutoFocus:e=>s&&e.preventDefault(),children:[(0,Y.jsxs)(M,{onSelect:()=>r(e),children:[(0,Y.jsx)(Ne,{"aria-hidden":`true`}),o(`common.edit`)]}),e.isDefault?null:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(M,{onSelect:()=>i(e),children:[(0,Y.jsx)(Ft,{"aria-hidden":`true`}),o(`locales.makeDefault`)]}),(0,Y.jsxs)(M,{variant:`destructive`,onSelect:()=>c(!0),children:[(0,Y.jsx)(De,{"aria-hidden":`true`}),o(`common.delete`)]})]})]})]}):null})]})},un=({locales:e,canManage:t,onEdit:n,onMakeDefault:r,onDelete:i})=>{let{t:a}=x(),o=e.find(e=>e.isDefault);return(0,Y.jsx)(W,{children:(0,Y.jsxs)(G,{children:[(0,Y.jsx)(R,{children:(0,Y.jsxs)(H,{children:[(0,Y.jsx)(B,{children:a(`locales.label`)}),(0,Y.jsx)(B,{children:a(`locales.code`)}),(0,Y.jsx)(B,{children:a(`locales.fallbacks`)}),(0,Y.jsx)(B,{children:(0,Y.jsx)(`span`,{className:`sr-only`,children:a(`common.actions`)})})]})}),(0,Y.jsx)(V,{children:e.map(e=>(0,Y.jsx)(ln,{locale:e,chain:[...e.fallbacks,...o&&!e.isDefault&&!e.fallbacks.includes(o.code)?[o.code]:[]],canManage:t,onEdit:n,onMakeDefault:r,onDelete:i},e.code))})]})})},dn=()=>{let{t:e}=x(),t=ot(),n=nt(`schema.create`),r=it(),i=Nt(),a=en(),[o,s]=(0,X.useState)({open:!1,locale:void 0}),c=t.data?.find(e=>e.isDefault),l=a.withContent;return(0,Y.jsxs)(v,{width:`full`,children:[(0,Y.jsx)(y,{title:e(`locales.title`),actions:n?(0,Y.jsxs)(O,{onClick:()=>s({open:!0,locale:void 0}),children:[(0,Y.jsx)(Ue,{"aria-hidden":`true`}),e(`locales.add`)]}):null}),(0,Y.jsx)(q,{query:t,isEmpty:e=>e.length===0,empty:(0,Y.jsx)(ne,{icon:Pe,title:e(`locales.empty`)}),children:e=>(0,Y.jsx)(un,{locales:e,canManage:n,onEdit:e=>s({open:!0,locale:e}),onMakeDefault:e=>{r.reset(),i.ask(e)},onDelete:a.attempt})}),(0,Y.jsx)(cn,{open:o.open,onOpenChange:e=>s(t=>({...t,open:e})),locale:o.locale,locales:t.data??[]}),(0,Y.jsx)(Ee,{open:i.open,onOpenChange:i.onOpenChange,title:e(`locales.defaultTitle`,{label:i.target?.label??``}),description:e(`locales.defaultDescription`,{label:i.target?.label??``,current:c?.label??``}),acknowledgement:e(`locales.defaultAcknowledge`),confirmLabel:e(`locales.makeDefault`),destructive:!0,pending:r.isPending,pendingLabel:e(`common.saving`),error:r.error,onConfirm:()=>{let t=i.target;t&&r.mutate(t.code,{onSuccess:()=>{E.success(e(`locales.defaultChanged`,{label:t.label})),i.close()}})}}),(0,Y.jsx)(Ee,{open:a.open,onOpenChange:a.onOpenChange,title:e(`locales.deleteTitle`,{label:l?.locale.label??``}),description:[e(`locales.deleteContent`,{count:l?.affectedHeads??0,label:l?.locale.label??``}),l?.deletedEntries?e(`locales.deleteEntries`,{count:l.deletedEntries,label:l.locale.label}):``].filter(Boolean).join(` `),acknowledgement:e(`locales.deleteAcknowledge`,{count:l?.affectedHeads??0}),confirmLabel:e(`common.delete`),destructive:!0,pending:a.pending,pendingLabel:e(`locales.deleting`),error:a.error,onConfirm:a.confirm})]})},fn=z({name:P()}),pn=()=>{let{data:e}=g(),t=p(),n=I({resolver:F(fn),defaultValues:{name:e?.user.name??``}}),{reset:r,formState:i}=n,a=e?.user.name;return(0,X.useEffect)(()=>{!i.isDirty&&a!==void 0&&r({name:a})},[a,r,i.isDirty]),{form:n,onSubmit:n.handleSubmit(async e=>{let n=await L(t.mutateAsync(e));n.ok&&(r({name:n.value.name}),E.success(D.t(`profile.detailsSaved`)))}),updateProfile:t,email:e?.user.email??``}},mn=`profile-email`,hn=`profile-email-hint`,gn=({onDirtyChange:e})=>{let{t}=x(),{form:n,onSubmit:r,updateProfile:i,email:a}=pn(),{isDirty:o}=n.formState;return(0,X.useEffect)(()=>e(o),[o,e]),(0,Y.jsx)(J,{title:t(`profile.detailsTitle`),children:(0,Y.jsx)(`form`,{noValidate:!0,onSubmit:e=>void r(e),className:`max-w-md`,children:(0,Y.jsxs)(j,{children:[(0,Y.jsx)(N,{control:n.control,name:`name`,label:t(`auth.name`),autoComplete:`name`}),(0,Y.jsxs)(Ae,{children:[(0,Y.jsx)(et,{htmlFor:mn,label:t(`auth.email`),hint:t(`profile.emailHint`),hintId:hn}),(0,Y.jsx)(ye,{id:mn,value:a,readOnly:!0,"aria-describedby":hn})]}),(0,Y.jsx)(k,{error:i.error}),(0,Y.jsx)(`div`,{children:(0,Y.jsx)(_,{pending:i.isPending,pendingLabel:t(`common.saving`),disabled:!o,children:t(`common.saveChanges`)})})]})})})},_n=Ye({currentPassword:K().min(1,`validation.required`),password:Ge()}),vn={currentPassword:``,password:``,confirmPassword:``},yn=()=>{let e=m(),t=I({resolver:F(_n),defaultValues:vn});return{form:t,onSubmit:t.handleSubmit(async({currentPassword:n,password:r})=>{(await L(e.mutateAsync({currentPassword:n,newPassword:r}))).ok&&(t.reset(vn),E.success(D.t(`profile.passwordChanged`)))}),changePassword:e}},bn=({onDirtyChange:e})=>{let{t}=x(),{form:n,onSubmit:r,changePassword:i}=yn(),{isDirty:a}=n.formState;return(0,X.useEffect)(()=>e(a),[a,e]),(0,Y.jsx)(J,{title:t(`profile.passwordTitle`),description:t(`profile.passwordDescription`),children:(0,Y.jsx)(`form`,{noValidate:!0,onSubmit:e=>void r(e),className:`max-w-md`,children:(0,Y.jsxs)(j,{children:[(0,Y.jsx)(N,{control:n.control,name:`currentPassword`,label:t(`profile.currentPassword`),type:`password`,autoComplete:`current-password`}),(0,Y.jsx)(N,{control:n.control,name:`password`,label:t(`auth.newPassword`),description:t(`auth.passwordHint`),type:`password`,autoComplete:`new-password`}),(0,Y.jsx)(N,{control:n.control,name:`confirmPassword`,label:t(`auth.confirmPassword`),type:`password`,autoComplete:`new-password`}),(0,Y.jsx)(k,{error:i.error}),(0,Y.jsx)(`div`,{children:(0,Y.jsx)(_,{pending:i.isPending,pendingLabel:t(`common.saving`),children:t(`profile.changePassword`)})})]})})})},xn=()=>{let{t:e}=x(),[t,n]=(0,X.useState)(!1),[r,i]=(0,X.useState)(!1),a=(0,X.useCallback)(e=>n(e),[]),o=(0,X.useCallback)(e=>i(e),[]);return(0,Y.jsxs)(v,{width:`full`,children:[(0,Y.jsx)(y,{title:e(`profile.title`)}),(0,Y.jsx)(gn,{onDirtyChange:a}),(0,Y.jsx)(bn,{onDirtyChange:o}),(0,Y.jsx)(se,{when:t||r})]})},Q=`seo-default-image`,Sn=`${Q}-hint`,Cn=`${Q}-error`,wn=({control:e,imagePrivate:t})=>{let{t:n}=x(),{field:r,fieldState:i}=Ke({control:e,name:`imageId`}),a=t?n(`seo.settings.imagePrivate`):i.error?.message,{canWrite:o}=Me(),s=lt(),c=async()=>{let e=(await s.pickMedia({multiple:!1,allowedKinds:[`image`]}))?.[0];e&&r.onChange(e.id)};return(0,Y.jsxs)(Ae,{"data-invalid":a?!0:void 0,children:[(0,Y.jsx)(et,{htmlFor:Q,label:n(`seo.settings.image`),hint:n(`seo.settings.imageHint`),hintId:Sn}),r.value?(0,Y.jsx)(`ul`,{children:(0,Y.jsx)(ve,{assetId:r.value,inputId:Q,index:0,count:1,editable:!0,canEditAlt:o,onRemove:()=>r.onChange(null)})}):null,(0,Y.jsx)(`div`,{children:(0,Y.jsxs)(O,{id:Q,type:`button`,variant:`outline`,size:`sm`,"aria-describedby":Xe(Sn,a?Cn:void 0),onClick:()=>void c(),children:[(0,Y.jsx)(ge,{"aria-hidden":`true`}),r.value?n(`seo.settings.changeImage`):n(`seo.settings.chooseImage`)]})}),(0,Y.jsx)(Je,{id:a?Cn:void 0,message:a}),s.dialog]})},Tn=200,En=1e3,$=e=>K().trim().max(e,`validation.tooLong`),Dn=z({siteName:$(Tn),titleTemplate:$(Tn).refine(e=>e===``||ce(e),`validation.titleTemplate`),description:$(En)}),On=z({locales:Ze(K(),Dn),imageId:K().nullable(),twitterHandle:K().trim().refine(e=>e===``||u.test(e),`validation.twitterHandle`)}),kn={siteName:``,titleTemplate:``,description:``},An=(e,t)=>{let n=[...new Set([...t.map(e=>e.code),...Object.keys(e.locales)])];return{locales:Object.fromEntries(n.map(t=>[t,{...kn,...e.locales[t]}])),imageId:e.imageId,twitterHandle:e.twitterHandle??``}},jn=e=>{let t={};for(let[n,r]of Object.entries(e.locales)){let e=Object.fromEntries(Object.entries(r).map(([e,t])=>[e,t.trim()]).filter(([,e])=>e!==``));Object.keys(e).length>0&&(t[n]=e)}let n=e.twitterHandle.trim();return{locales:t,imageId:e.imageId,twitterHandle:n===``?null:n}},Mn=e=>Object.keys(e.locales??{})[0],Nn=`SEO_IMAGE_INVALID`,Pn=(e,t)=>{let n=s(),r=de(),i=t.find(e=>e.isDefault)?.code??t[0]?.code??``,[a,o]=(0,X.useState)(i),[c,l]=(0,X.useState)(e.version),u=I({resolver:F(On),defaultValues:An(e.seo,t)}),p=qe({control:u.control,name:`imageId`}),m=d(p??void 0),h=p!==null&&m.data?.visibility===`private`,{clearErrors:g}=u;(0,X.useEffect)(()=>g(`imageId`),[p,g]);let te=async()=>{try{let e=await n.fetchQuery({...ue,staleTime:0});u.reset(An(e.seo,t)),l(e.version)}catch(e){pe(e,`reloading the SEO settings`)}};return{form:u,locale:a,setLocale:o,imagePrivate:h,pending:r.isPending,onSubmit:u.handleSubmit(async e=>{if(!h)try{let n=await r.mutateAsync({expectedVersion:c,seo:jn(e)});u.reset(An(n.seo,t)),l(n.version),E.success(D.t(`seo.settings.saved`))}catch(e){if(ee(e)){E.error(D.t(`seo.settings.conflict`),{action:{label:D.t(`seo.settings.reload`),onClick:()=>void te()}});return}if(f(e,Nn)){u.setError(`imageId`,{message:me(e)},{shouldFocus:!1});return}E.error(me(e))}},e=>{let t=Mn(e);t!==void 0&&o(t)})}},Fn=({control:e,locales:t,locale:n,onLocaleChange:r})=>{let{t:i}=x();return(0,Y.jsx)(J,{title:i(`seo.settings.textsTitle`),titleAs:`h2`,actions:t.length>1?(0,Y.jsx)(ct,{locales:t,value:n,onChange:r,size:`sm`}):null,children:(0,Y.jsxs)(j,{className:`max-w-xl`,children:[(0,Y.jsx)(N,{control:e,name:`locales.${n}.siteName`,label:i(`seo.settings.siteName`),hint:i(`seo.settings.siteNameHint`)}),(0,Y.jsx)(N,{control:e,name:`locales.${n}.titleTemplate`,label:i(`seo.settings.titleTemplate`),hint:i(`seo.settings.titleTemplateHint`),placeholder:i(`seo.settings.titleTemplatePlaceholder`)}),(0,Y.jsx)(bt,{control:e,name:`locales.${n}.description`,label:i(`seo.settings.description`),hint:i(`seo.settings.descriptionHint`),rows:3})]},n)})},In=({siteSeo:e,locales:t})=>{let{t:n}=x(),{form:r,locale:i,setLocale:a,imagePrivate:o,pending:s,onSubmit:c}=Pn(e,t),{isDirty:l}=r.formState;return(0,Y.jsxs)(`form`,{noValidate:!0,onSubmit:e=>void c(e),className:`space-y-6`,children:[(0,Y.jsx)(se,{when:l}),(0,Y.jsx)(Fn,{control:r.control,locales:t,locale:i,onLocaleChange:a}),(0,Y.jsx)(J,{title:n(`seo.settings.socialTitle`),titleAs:`h2`,children:(0,Y.jsxs)(j,{className:`max-w-xl`,children:[(0,Y.jsx)(wn,{control:r.control,imagePrivate:o}),(0,Y.jsx)(N,{control:r.control,name:`twitterHandle`,label:n(`seo.settings.twitterHandle`),hint:n(`seo.settings.twitterHandleHint`),placeholder:n(`seo.settings.twitterHandlePlaceholder`),autoComplete:`off`})]})}),(0,Y.jsx)(`div`,{children:(0,Y.jsx)(_,{pending:s,pendingLabel:n(`common.saving`),disabled:!l||o,children:n(`common.saveChanges`)})})]})},Ln=()=>{let{t:e}=x(),t=le(),n=ot();return(0,Y.jsxs)(v,{width:`full`,children:[(0,Y.jsx)(y,{title:e(`seo.settings.title`)}),(0,Y.jsx)(q,{query:t,loadingRows:4,children:e=>(0,Y.jsx)(q,{query:n,loadingRows:4,children:t=>(0,Y.jsx)(In,{siteSeo:e,locales:t})})})]})},Rn=()=>r({queryKey:a.sessions,queryFn:()=>l.sessions.list(),meta:{silent:!0}}),zn=()=>{let e=s();return o({mutationKey:[`sessions`,`revoke`],mutationFn:e=>c(()=>l.sessions.revoke(e)),onSettled:()=>e.invalidateQueries({queryKey:a.sessions})})},Bn=[[/Edg\//,`Edge`],[/OPR\//,`Opera`],[/Firefox\//,`Firefox`],[/Chrome\//,`Chrome`],[/Safari\//,`Safari`]],Vn=[[/iPhone|iPad/,`iOS`],[/Android/,`Android`],[/Mac OS X|Macintosh/,`macOS`],[/Windows/,`Windows`],[/Linux/,`Linux`]],Hn=(e,t)=>t.find(([t])=>t.test(e))?.[1],Un=e=>{if(!e)return;let t=Hn(e,Bn),n=Hn(e,Vn);return t&&n?`${t} · ${n}`:t??n},Wn=({sessions:e,onRevoke:t})=>{let{t:n}=x();return(0,Y.jsx)(W,{children:(0,Y.jsxs)(G,{children:[(0,Y.jsx)(R,{children:(0,Y.jsxs)(H,{children:[(0,Y.jsx)(B,{children:n(`sessions.device`)}),(0,Y.jsx)(B,{children:n(`sessions.ipAddress`)}),(0,Y.jsx)(B,{children:n(`sessions.signedIn`)}),(0,Y.jsx)(B,{children:n(`sessions.lastActive`)}),(0,Y.jsx)(B,{children:(0,Y.jsx)(`span`,{className:`sr-only`,children:n(`common.actions`)})})]})}),(0,Y.jsx)(V,{children:e.map(e=>(0,Y.jsxs)(H,{children:[(0,Y.jsx)(U,{children:(0,Y.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(w,{children:Un(e.userAgent)??n(`sessions.unknownDevice`)}),e.current?(0,Y.jsx)(re,{variant:`secondary`,children:n(`sessions.current`)}):null]})}),(0,Y.jsx)(U,{className:`font-mono text-xs`,children:e.ip??n(`common.unknown`)}),(0,Y.jsx)(U,{title:C(e.createdAt),children:S(e.createdAt)}),(0,Y.jsx)(U,{title:C(e.lastSeenAt),children:S(e.lastSeenAt)}),(0,Y.jsx)(U,{className:`text-right`,children:e.current?null:(0,Y.jsx)(A,{tone:`danger`,title:n(`sessions.revokeTitle`),description:n(`sessions.revokeDescription`),confirmLabel:n(`common.revoke`),onConfirm:()=>t(e),trigger:(0,Y.jsx)(O,{variant:`outline`,size:`sm`,children:n(`common.revoke`)})})})]},e.id))})]})})},Gn={settings:T(`/app/settings`)({component:Lt}),profile:T(`/app/settings/profile`)({component:xn}),sessions:T(`/app/settings/sessions`)({component:()=>{let{t:e}=x(),t=Rn(),n=zn(),r=async t=>{await n.mutateAsync(t.id),E.success(e(`sessions.revoked`))};return(0,Y.jsxs)(v,{width:`full`,children:[(0,Y.jsx)(y,{title:e(`sessions.title`)}),(0,Y.jsx)(q,{query:t,isEmpty:e=>e.length===0,empty:(0,Y.jsx)(ne,{icon:ze,title:e(`sessions.empty`)}),children:e=>(0,Y.jsx)(Wn,{sessions:e,onRevoke:r})})]})}}),theme:T(`/app/settings/theme`)({component:Jt}),locales:T(`/app/settings/locales`)({component:dn}),seo:T(`/app/settings/seo`)({component:Ln}),assist:T(`/app/settings/assist`)({component:Zt}),apiTokens:T(`/app/settings/api-tokens`)({component:qt})};export{Gn as settingsLazyRoutes};
2
- //# sourceMappingURL=settings-B60vHpZd.js.map
@@ -1,6 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./RichTextField-CVHRIbnu.js","./rolldown-runtime-Dd_uD5pT.js","./react-CQOZoUwg.js","./react-dom-pEVw9mjF.js","./jsx-runtime-DREnUpxT.js","./src-ndgTSYLX.js","./createLucideIcon-CLmh7Go-.js","./media-BCnVhaDH.js","./InfoHint-CSEtcHjL.js","./es2015-BHmI7wjK.js","./cn-DVhJ55Mo.js","./skeleton-B5MP72Kw.js","./select-C0USI-Ox.js","./field-COOzRptX.js","./BlockMenuItems-DsccXMc_.js","./image-DT79QFa_.js","./dropdown-menu-_xfaEp5C.js","./InsertMenuItem-CCr9e0qY.js","./stableId-BrtQedPy.js","./link-Pyr2Y35S.js","./image-off-DFs5upyX.js","./plus-BoDtdLCo.js","./sparkles-CvT-jxrW.js","./undo-2-BiTANHFz.js","./tooltip-BGP1DVBt.js","./HintedLabel-DzHnEdIK.js","./context-IKYdzQJ-.js","./AssistError-Cs-r9Ssc.js","./SuggestAltButton-CvIoirnz.js","./textarea-BBjqMF-Y.js","./w3c-keyname-BOAvb0qz.js","./CodeEditor-CBCR73Wd.js","./useShortcutLabel-BJMslX8p.js","./preload-helper-BaNbYf_w.js","./props-SeFhTMCi.js","./labels-DQckbLGW.js","./baseExtensions-TVKN1UwW.js","./dist-Cfu6KUZc.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{$ as r,B as i,G as a,Ht as o,I as s,It as c,Lt as l,M as u,Mt as d,N as f,Nt as p,P as m,Pt as h,R as g,U as _,V as v,W as y,_ as b,dt as x,g as S,h as C,i as w,j as ee,p as te,t as ne,ut as re,w as ie,z as ae}from"./src-ndgTSYLX.js";import{i as oe}from"./media-BCnVhaDH.js";import{u as se}from"./auth-CQO4MBUj.js";import{O as ce,_ as le,c as ue,f as de,h as fe,l as pe,m as me,n as he,o as ge,p as _e,r as ve,s as ye,u as be,v as xe}from"./badge-CqKF1pwz.js";import{m as Se,n as T,t as Ce}from"./createLucideIcon-CLmh7Go-.js";import{n as we}from"./RowTitle-Bqt6evG9.js";import{a as Te,l as Ee,s as De}from"./seo-CceGYTIX.js";import{C as Oe,E as ke,a as Ae,i as je,n as Me,w as Ne}from"./InfoHint-CSEtcHjL.js";import{T as E,d as Pe,h as D,l as Fe,m as Ie,p as Le,u as Re}from"./es2015-BHmI7wjK.js";import{i as ze,n as Be,r as Ve,t as He}from"./AssetTile-BrMzsUZD.js";import{n as Ue,t as We}from"./link-2-off-CoJNwrxm.js";import{n as Ge,r as Ke}from"./useSchemaScopeAccess-ByrxIdKM.js";import{t as qe}from"./boxes-CAygw8zF.js";import{c as Je,i as O,n as k,o as Ye,r as Xe,s as Ze,t as Qe}from"./skeleton-B5MP72Kw.js";import{a as $e,i as et,n as tt,r as nt,s as rt,t as it}from"./select-C0USI-Ox.js";import{n as at}from"./file-stack-28ZtO1xW.js";import{a as ot,i as st}from"./InlineConfirm-yW-iUKFC.js";import{_ as ct,d as lt,f as ut,p as dt,u as ft}from"./field-COOzRptX.js";import{t as pt}from"./copy-CsSRHgKZ.js";import{c as mt,t as ht}from"./Thumbnail-DNj5TRBI.js";import{t as gt}from"./search-BdwIwOzC.js";import{t as _t}from"./globe-DFr3Gd2w.js";import{n as vt}from"./stableId-BrtQedPy.js";import{t as yt}from"./image-off-DFs5upyX.js";import{t as bt}from"./languages-CzbTaQv9.js";import{t as xt}from"./layers-BmcodiaH.js";import{a as St,i as Ct,n as wt,o as Tt,p as Et,r as Dt,t as Ot}from"./dropdown-menu-_xfaEp5C.js";import{t as kt}from"./plus-BoDtdLCo.js";import{t as A}from"./cn-DVhJ55Mo.js";import{n as At,t as jt}from"./radio-group-4ok5evXq.js";import{t as Mt}from"./switch-Dp6WYNam.js";import{i as Nt,n as Pt,t as Ft}from"./tooltip-BGP1DVBt.js";import{t as It}from"./useDiscardGuard-BskWSlbT.js";import{t as Lt}from"./preload-helper-BaNbYf_w.js";import{t as Rt}from"./useDebouncedValue-Dqs3wwhn.js";import{n as zt}from"./defineEditor-CiJc766Y.js";import{a as Bt,c as Vt,i as Ht,n as Ut,p as Wt,r as Gt,t as Kt}from"./titles-CQiqqDw-.js";import{i as j,n as qt,o as M,r as Jt,s as Yt,t as Xt}from"./context-IKYdzQJ-.js";import{r as Zt}from"./locales-Bg3htKo8.js";import{_ as Qt,a as $t,c as en,d as N,f as tn,g as nn,h as P,i as rn,l as F,m as an,n as on,o as sn,p as cn,r as I,s as L,t as ln,u as un}from"./InsertMenuItem-CCr9e0qY.js";import{i as R,n as dn,r as z,t as B}from"./props-SeFhTMCi.js";import{r as fn}from"./labels-DQckbLGW.js";import{t as pn}from"./textarea-BBjqMF-Y.js";import{t as V}from"./slugify-rYFum3Sc.js";var mn={title:`title`,description:`description`,image:`image`,canonical:`canonical`,noindex:`noindex`},hn=e=>typeof e==`object`&&!!e&&!Array.isArray(e),gn=e=>typeof e==`string`&&e.trim()!==``?e:null,_n=(e,t)=>{let n=t.keys??mn,r=hn(e)?{...e}:{},i=e=>n[e]===void 0?void 0:r[n[e]],a=(e,t)=>{n[e]!==void 0&&(r[n[e]]=t)},o=gn(i(`title`))??gn(t.fallbackTitle);return a(`title`,o===null?t.defaults.siteName??null:De(o,t.defaults.titleTemplate)),a(`description`,gn(i(`description`))??t.defaults.description??null),a(`image`,i(`image`)??t.image??null),a(`canonical`,gn(i(`canonical`))),a(`noindex`,i(`noindex`)===!0),r},vn={name:`arrow-left`,size:24,node:[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]};vn.node;var yn=Ce(vn),bn={name:`chevrons-down-up`,size:24,node:[[`path`,{d:`m7 20 5-5 5 5`,key:`13a0gw`}],[`path`,{d:`m7 4 5 5 5-5`,key:`1kwcof`}]]};bn.node;var xn=Ce(bn),Sn={name:`rotate-ccw-clock`,size:24,node:[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}],[`path`,{d:`M12 7v5l4 2`,key:`1fdv2h`}]],aliases:[`history`]};Sn.node;var Cn=Ce(Sn),H=e(t(),1),U=e(n(),1),wn=Object.defineProperty,W=(e,t)=>wn(e,`name`,{value:t,configurable:!0}),Tn=`Tabs`,[En,Dn]=Ie(Tn,[ut]),On=ut(),[kn,An]=En(Tn),jn=H.forwardRef(W(function(e,t){let{__scopeTabs:n,value:r,onValueChange:i,defaultValue:a,orientation:o=`horizontal`,dir:s,activationMode:c=`automatic`,...l}=e,u=dt(s),[d,f]=Pe({prop:r,onChange:i,defaultProp:a??``,caller:Tn});return(0,U.jsx)(kn,{scope:n,baseId:Fe(),value:d,onValueChange:f,orientation:o,dir:u,activationMode:c,children:(0,U.jsx)(D.div,{dir:u,"data-orientation":o,...l,ref:t})})},`Tabs`)),Mn=`TabsList`,Nn=H.forwardRef(W(function(e,t){let{__scopeTabs:n,loop:r=!0,...i}=e,a=An(Mn,n),o=On(n);return(0,U.jsx)(lt,{asChild:!0,...o,orientation:a.orientation,dir:a.dir,loop:r,children:(0,U.jsx)(D.div,{role:`tablist`,"aria-orientation":a.orientation,...i,ref:t})})},`TabsList`)),Pn=`TabsTrigger`,Fn=H.forwardRef(W(function(e,t){let{__scopeTabs:n,value:r,disabled:i=!1,...a}=e,o=An(Pn,n),s=On(n),c=Rn(o.baseId,r),l=zn(o.baseId,r),u=r===o.value;return(0,U.jsx)(ft,{asChild:!0,...s,focusable:!i,active:u,children:(0,U.jsx)(D.button,{type:`button`,role:`tab`,"aria-selected":u,"aria-controls":l,"data-state":u?`active`:`inactive`,"data-disabled":i?``:void 0,disabled:i,id:c,...a,ref:t,onMouseDown:Le(e.onMouseDown,e=>{!i&&e.button===0&&e.ctrlKey===!1?o.onValueChange(r):e.preventDefault()}),onKeyDown:Le(e.onKeyDown,e=>{i||e.target!==e.currentTarget||[` `,`Enter`].includes(e.key)&&o.onValueChange(r)}),onFocus:Le(e.onFocus,()=>{let e=o.activationMode!==`manual`;!u&&!i&&e&&o.onValueChange(r)})})})},`TabsTrigger`)),In=`TabsContent`,Ln=H.forwardRef(W(function(e,t){let{__scopeTabs:n,value:r,forceMount:i,children:a,...o}=e,s=An(In,n),c=Rn(s.baseId,r),l=zn(s.baseId,r),u=r===s.value,d=H.useRef(u);return H.useEffect(()=>{let e=requestAnimationFrame(()=>d.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,U.jsx)(Re,{present:i||u,children:({present:n})=>(0,U.jsx)(D.div,{"data-state":u?`active`:`inactive`,"data-orientation":s.orientation,role:`tabpanel`,"aria-labelledby":c,hidden:!n,id:l,tabIndex:0,...o,ref:t,style:{...e.style,animationDuration:d.current?`0s`:void 0},children:n&&a})})},`TabsContent`));function Rn(e,t){return`${e}-trigger-${t}`}W(Rn,`makeTriggerId`);function zn(e,t){return`${e}-content-${t}`}W(zn,`makeContentId`);var Bn=jn,Vn=Nn,Hn=Fn,Un=Ln,Wn=Object.defineProperty,Gn=(e,t)=>Wn(e,`name`,{value:t,configurable:!0}),Kn=`Toggle`,qn=H.forwardRef(Gn(function(e,t){let{pressed:n,defaultPressed:r,onPressedChange:i,...a}=e,[o,s]=Pe({prop:n,onChange:i,defaultProp:r??!1,caller:Kn});return(0,U.jsx)(D.button,{type:`button`,"aria-pressed":o,"data-state":o?`on`:`off`,"data-disabled":e.disabled?``:void 0,...a,ref:t,onClick:Le(e.onClick,()=>{e.disabled||s(!o)})})},`Toggle`)),Jn=Object.defineProperty,G=(e,t)=>Jn(e,`name`,{value:t,configurable:!0}),K=`ToggleGroup`,[Yn,Xn]=Ie(K,[ut]),Zn=ut(),Qn=H.forwardRef(G(function(e,t){let{type:n,...r}=e;if(n===`single`)return(0,U.jsx)(tr,{role:`radiogroup`,...r,ref:t});if(n===`multiple`)return(0,U.jsx)(nr,{role:`toolbar`,...r,ref:t});throw Error(`Missing prop \`type\` expected on \`${K}\``)},`ToggleGroup`)),[$n,er]=Yn(K),tr=H.forwardRef(G(function(e,t){let{value:n,defaultValue:r,onValueChange:i=G(()=>{},`onValueChange`),...a}=e,[o,s]=Pe({prop:n,defaultProp:r??``,onChange:i,caller:K});return(0,U.jsx)($n,{scope:e.__scopeToggleGroup,type:`single`,value:H.useMemo(()=>o?[o]:[],[o]),onItemActivate:s,onItemDeactivate:H.useCallback(()=>s(``),[s]),children:(0,U.jsx)(ar,{...a,ref:t})})},`ToggleGroupImplSingle`)),nr=H.forwardRef(G(function(e,t){let{value:n,defaultValue:r,onValueChange:i=G(()=>{},`onValueChange`),...a}=e,[o,s]=Pe({prop:n,defaultProp:r??[],onChange:i,caller:K}),c=H.useCallback(e=>s((t=[])=>[...t,e]),[s]),l=H.useCallback(e=>s((t=[])=>t.filter(t=>t!==e)),[s]);return(0,U.jsx)($n,{scope:e.__scopeToggleGroup,type:`multiple`,value:o,onItemActivate:c,onItemDeactivate:l,children:(0,U.jsx)(ar,{...a,ref:t})})},`ToggleGroupImplMultiple`)),[rr,ir]=Yn(K),ar=H.forwardRef(G(function(e,t){let{__scopeToggleGroup:n,disabled:r=!1,rovingFocus:i=!0,orientation:a,dir:o,loop:s=!0,...c}=e,l=Zn(n),u=dt(o),d={dir:u,...c};return(0,U.jsx)(rr,{scope:n,rovingFocus:i,disabled:r,children:i?(0,U.jsx)(lt,{asChild:!0,...l,orientation:a,dir:u,loop:s,children:(0,U.jsx)(D.div,{...d,ref:t})}):(0,U.jsx)(D.div,{...d,ref:t})})},`ToggleGroupImpl`)),or=`ToggleGroupItem`,sr=H.forwardRef(G(function(e,t){let n=er(or,e.__scopeToggleGroup),r=ir(or,e.__scopeToggleGroup),i=Zn(e.__scopeToggleGroup),a=n.value.includes(e.value),o=r.disabled||e.disabled,s={...e,pressed:a,disabled:o},c=H.useRef(null);return r.rovingFocus?(0,U.jsx)(ft,{asChild:!0,...i,focusable:!o,active:a,ref:c,children:(0,U.jsx)(cr,{...s,ref:t})}):(0,U.jsx)(cr,{...s,ref:t})},`ToggleGroupItem`)),cr=H.forwardRef(G(function(e,t){let{__scopeToggleGroup:n,value:r,...i}=e,a=er(or,n),o={role:`radio`,"aria-checked":e.pressed,"aria-pressed":void 0},s=a.type===`single`?o:void 0;return(0,U.jsx)(qn,{...s,...i,ref:t,onPressedChange:e=>{e?a.onItemActivate(r):a.onItemDeactivate(r)}})},`ToggleGroupItemImpl`));function lr({className:e,...t}){return(0,U.jsx)(Bn,{"data-slot":`tabs`,className:A(`flex flex-col gap-2`,e),...t})}function ur({className:e,variant:t=`default`,...n}){return(0,U.jsx)(Vn,{"data-slot":`tabs-list`,"data-variant":t,className:A(`group/tabs-list inline-flex w-fit items-center text-muted-foreground`,t==="default"&&`h-9 justify-center rounded-lg bg-muted p-[3px]`,t===`underline`&&`h-10 w-full justify-start gap-5 border-b`,e),...n})}function dr({className:e,...t}){return(0,U.jsx)(Hn,{"data-slot":`tabs-trigger`,className:A(`inline-flex items-center justify-center gap-1.5 text-sm whitespace-nowrap transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,`group-data-[variant=default]/tabs-list:h-[calc(100%-1px)] group-data-[variant=default]/tabs-list:flex-1 group-data-[variant=default]/tabs-list:rounded-md group-data-[variant=default]/tabs-list:border group-data-[variant=default]/tabs-list:border-transparent group-data-[variant=default]/tabs-list:px-2 group-data-[variant=default]/tabs-list:py-1 group-data-[variant=default]/tabs-list:font-medium group-data-[variant=default]/tabs-list:text-foreground group-data-[variant=default]/tabs-list:data-[state=active]:bg-background group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm dark:group-data-[variant=default]/tabs-list:text-muted-foreground dark:group-data-[variant=default]/tabs-list:data-[state=active]:border-input dark:group-data-[variant=default]/tabs-list:data-[state=active]:bg-input/30 dark:group-data-[variant=default]/tabs-list:data-[state=active]:text-foreground`,`group-data-[variant=underline]/tabs-list:relative group-data-[variant=underline]/tabs-list:h-full group-data-[variant=underline]/tabs-list:rounded-sm group-data-[variant=underline]/tabs-list:px-0.5 group-data-[variant=underline]/tabs-list:font-semibold group-data-[variant=underline]/tabs-list:after:absolute group-data-[variant=underline]/tabs-list:after:inset-x-0 group-data-[variant=underline]/tabs-list:after:-bottom-px group-data-[variant=underline]/tabs-list:after:h-0.5 group-data-[variant=underline]/tabs-list:after:rounded-full group-data-[variant=underline]/tabs-list:hover:text-foreground group-data-[variant=underline]/tabs-list:data-[state=active]:text-foreground group-data-[variant=underline]/tabs-list:data-[state=active]:after:bg-primary`,e),...t})}function fr({className:e,...t}){return(0,U.jsx)(Un,{"data-slot":`tabs-content`,className:A(`flex-1 rounded-md outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50`,e),...t})}var pr=({children:e})=>{let{model:t}=M(),n=j(e=>e.values),r=(0,H.useMemo)(()=>({definition:t,values:n}),[t,n]);return(0,U.jsx)(Jt.Provider,{value:r,children:e})},mr=({environment:e,store:t,children:n})=>(0,U.jsx)(qt.Provider,{value:e,children:(0,U.jsx)(Xt.Provider,{value:t,children:n})}),hr=e=>{let t=j(t=>t.values[e.apiKey]),n=j(e=>e.setValue);return{value:t,onChange:(0,H.useCallback)(t=>n(e.apiKey,t),[n,e.apiKey])}},gr=class extends H.Component{state={failed:!1};static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(e,t){Oe(e,`custom editor ${this.props.editorId} crashed${t.componentStack??``}`)}render(){return this.state.failed?this.props.fallback:this.props.children}},_r=({control:e})=>{let{t}=T(),{resolved:n,builtIn:r,builtInProps:i,contractProps:a}=e,o=r.component;return(0,U.jsxs)(U.Fragment,{children:[n.kind===`runtime`?(0,U.jsx)(gr,{editorId:n.definition.id,fallback:(0,U.jsx)(o,{...i}),children:(0,U.jsx)(n.definition.component,{...a})}):(0,U.jsx)(H.Suspense,{fallback:(0,U.jsx)(Qe,{className:`h-24 w-full`}),children:(0,U.jsx)(o,{...i})}),n.kind===`builtIn`&&n.missingCustomId?(0,U.jsx)(`p`,{className:`text-meta text-muted-foreground`,children:t(`content.fields.customEditorMissing`,{id:n.missingCustomId})}):null]})},vr=({field:e,control:t})=>(0,U.jsxs)(U.Fragment,{children:[e.description?(0,U.jsx)(`p`,{id:t.descriptionId,className:`text-meta text-muted-foreground`,children:e.description}):null,t.messages.length>0?(0,U.jsx)(`ul`,{id:t.errorsId,className:`space-y-0.5 text-meta font-medium text-destructive`,children:t.messages.map(e=>(0,U.jsx)(`li`,{children:e},e))}):null]}),yr={email:/^[^\s@]+@[^\s@]+\.[^\s@]+$/,url:/^(https?:\/\/[^\s]+|mailto:[^\s]+|tel:[^\s]+)$/i,slug:_,uid:a,date:i,datetime:ae,time:y,decimal:v,biginteger:g},q=e=>({code:e,message:e}),br=(e,t)=>[...t.minLength!==void 0&&e.length<t.minLength?[q(`TOO_SHORT`)]:[],...t.maxLength!==void 0&&e.length>t.maxLength?[q(`TOO_LONG`)]:[]],xr=(e,t)=>[...t.min!==void 0&&e<Number(t.min)?[q(`TOO_SMALL`)]:[],...t.max!==void 0&&e>Number(t.max)?[q(`TOO_LARGE`)]:[]],Sr=(e,t)=>[...t.min!==void 0&&e>0&&e<t.min?[q(`TOO_FEW`)]:[],...t.max!==void 0&&e>t.max?[q(`TOO_MANY`)]:[]],Cr=e=>{try{return JSON.parse(e),!0}catch{return!1}},wr=(e,t)=>t.validate===!0&&t.language===`json`&&!Cr(e)?[q(`INVALID_FORMAT`)]:[],Tr=(e,t)=>{let n=yr[e.type];if(n&&!n.test(t))return[q(`INVALID_FORMAT`)];switch(e.type){case`string`:case`text`:case`slug`:case`uid`:return br(t,e.settings);case`code`:return[...wr(t,e.settings),...br(t,e.settings)];case`decimal`:case`biginteger`:return xr(Number(t),e.settings);case`enum`:return e.settings.values.some(e=>e.value===t)?[]:[q(`NOT_ALLOWED`)];default:return[]}},Er=(e,t)=>{if(sn(t)||P(t))return[];switch(e.type){case`number`:case`integer`:return typeof t!=`number`||Number.isNaN(t)||e.type===`integer`&&!Number.isInteger(t)?[q(`INVALID_TYPE`)]:xr(t,e.settings);case`media`:case`relation`:case`component`:case`dynamiczone`:return Sr(N(t).length,e.settings);default:return typeof t==`string`?Tr(e,t):[]}},Dr=(e,t)=>`${e}field${t.replace(/[^A-Za-z0-9_-]/g,`-`)}`,Or=e=>({id:e.id,apiKey:e.apiKey,label:e.label,description:e.description,type:e.type,required:e.required,localized:e.localized,settings:e.settings,options:e.editor.options}),kr=e=>({id:e.id,apiKey:e.apiKey,label:e.label,kind:e.kind,localized:e.kind!==`component`&&e.localized}),Ar=(e,t)=>t?e.replace(/\{\{\s*(\w+)\s*\}\}/g,(e,n)=>String(t[n]??e)):e,jr=E.t.bind(E),Mr=e=>({locale:e.locale,entryId:e.entryId,uiLanguage:E.language,pickMedia:e.pickMedia,translate:(e,t,n)=>E.exists(e)?jr(e,n):Ar(t,n)}),Nr=(e,t)=>`${e}/${String(t).replace(/~/g,`~0`).replace(/\//g,`~1`)}`,Pr=e=>{let t=new Map;for(let n of e)t.set(n.path,[...t.get(n.path)??[],n]);return t},Fr=(e,t)=>{let n=0;for(let[r,i]of e)(r===t||r.startsWith(`${t}/`))&&(n+=i.length);return n},Ir={email:`content.issues.format.email`,url:`content.issues.format.url`,slug:`content.issues.format.slug`,uid:`content.issues.format.uid`,date:`content.issues.format.date`,datetime:`content.issues.format.datetime`,time:`content.issues.format.time`,decimal:`content.issues.format.decimal`,biginteger:`content.issues.format.biginteger`,code:`content.issues.format.code`},Lr=e=>Object.hasOwn(Ir,e),Rr=(e,t)=>{let n=e?.settings?.[t];return typeof n==`number`||typeof n==`string`?n:void 0},zr=(e,t)=>{let n=E.t.bind(E),r=(r,i)=>{let a=Rr(t,i);return a===void 0?e.message:n(r,{count:Number(a),value:String(a)})};switch(e.code){case`REQUIRED`:return n(`content.issues.required`);case`INVALID_TYPE`:return n(`content.issues.invalidType`);case`INVALID_FORMAT`:return t&&Lr(t.type)?n(Ir[t.type]):n(`content.issues.invalidFormat`);case`TOO_SHORT`:return r(`content.issues.tooShort`,`minLength`);case`TOO_LONG`:return r(`content.issues.tooLong`,`maxLength`);case`TOO_SMALL`:return r(`content.issues.tooSmall`,`min`);case`TOO_LARGE`:return r(`content.issues.tooLarge`,`max`);case`TOO_FEW`:return r(`content.issues.tooFew`,`min`);case`TOO_MANY`:return r(`content.issues.tooMany`,`max`);case`NOT_ALLOWED`:return n(`content.issues.notAllowed`);case`PATTERN_MISMATCH`:return n(`content.issues.patternMismatch`);case`DUPLICATE`:return n(`content.issues.duplicate`);case`UNKNOWN_FIELD`:return n(`content.issues.unknownField`);case`UNKNOWN_COMPONENT`:return n(`content.issues.unknownComponent`);case`INVALID_RICHTEXT`:return n(`content.issues.invalidRichText`);case`NOT_UNIQUE`:return n(`content.issues.notUnique`);case`RELATION_TARGET_MISSING`:return n(`content.issues.relationMissing`);case`MEDIA_MISSING`:return n(`content.issues.mediaMissing`);case`INVALID_JSON`:return n(`content.issues.invalidJson`);default:return e.message}},J=e=>{let{definition:t}=e;return t.type===`enum`?t.settings.values.map(({value:e,label:t})=>({value:e,label:t})):[{value:`true`,label:z(e,`trueLabel`)??E.t(`content.fields.yes`)},{value:`false`,label:z(e,`falseLabel`)??E.t(`content.fields.no`)}]},Br=(e,t)=>t===``?null:e.definition.type===`boolean`?t===`true`:t,Vr=e=>typeof e==`boolean`?String(e):typeof e==`string`?e:``,Hr=e=>e.definition.type===`enum`&&e.definition.settings.multiple,Ur=e=>{let{inputId:t,labelId:n,describedBy:r,value:i,onChange:a,onBlur:o,readOnly:s,disabled:c,validation:l}=e,u=N(i),d=J(e),f=z(e,`layout`)===`horizontal`;return(0,U.jsx)(`div`,{role:`group`,"aria-labelledby":n,"aria-describedby":r,"aria-invalid":l.invalid||void 0,className:A(`grid gap-2`,f&&`flex flex-wrap gap-x-6`),onBlur:o,children:d.map(e=>(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(st,{id:`${t}-${e.value}`,checked:u.includes(e.value),disabled:c||s,onCheckedChange:t=>{let n=d.map(e=>e.value).filter(n=>n===e.value?t===!0:u.includes(n));a(n.length>0?n:null)}}),(0,U.jsx)(Xe,{htmlFor:`${t}-${e.value}`,className:`font-normal`,children:e.label})]},e.value))})},Wr=e=>{let{value:t,onChange:n,onBlur:r,readOnly:i,disabled:a}=e;return(0,U.jsx)(st,{...B(e),checked:t===!0,disabled:a||i,onCheckedChange:e=>n(e===!0),onBlur:r})},Gr=/^#[0-9a-f]{6}$/i,Kr=`#${`0`.repeat(6)}`,qr=e=>{let t=e.field.options.presets;return Array.isArray(t)?t.filter(e=>typeof e==`string`):[]},Jr=e=>({"--swatch":e}),Yr=e=>{let{t}=T(),{value:n,onChange:r,onBlur:i,readOnly:a,disabled:o,field:s}=e,c=R(n),l=qr(e);return(0,U.jsxs)(`div`,{className:`space-y-2`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`input`,{type:`color`,"aria-label":t(`content.fields.color.picker`,{field:s.label}),value:Gr.test(c)?c.toLowerCase():Kr,disabled:o||a,className:`size-10 shrink-0 cursor-pointer rounded-lg border border-input bg-transparent p-1 disabled:cursor-not-allowed`,onChange:e=>r(e.target.value)}),(0,U.jsx)(k,{...B(e),value:c,spellCheck:!1,readOnly:a,disabled:o,className:`max-w-48 font-mono text-sm`,onChange:e=>r(e.target.value===``?null:e.target.value),onBlur:i})]}),l.length>0?(0,U.jsx)(`div`,{role:`group`,"aria-label":t(`content.fields.color.presets`),className:`flex flex-wrap gap-1.5`,children:l.map(e=>(0,U.jsx)(`button`,{type:`button`,"aria-label":e,"aria-pressed":e.toLowerCase()===c.toLowerCase(),disabled:o||a,style:Jr(e),className:A(`size-7 rounded-md border border-input bg-(--swatch) outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50`,e.toLowerCase()===c.toLowerCase()&&`ring-2 ring-ring ring-offset-2 ring-offset-background`),onClick:()=>r(e)},e))}):null]})},Xr=({label:e,variant:t=`outline`,className:n,...r})=>(0,U.jsxs)(O,{type:`button`,variant:t,size:`sm`,className:A(t===`ghost`&&`-ml-2 text-muted-foreground`,n),...r,children:[(0,U.jsx)(kt,{"aria-hidden":`true`}),e]}),Zr=`inline-flex h-5 items-center gap-1 rounded-full px-2 text-2xs font-semibold [&_svg]:size-3 [&_svg]:shrink-0`,Qr=({localized:e})=>{let{t}=T();return e?(0,U.jsxs)(`span`,{className:A(Zr,`bg-accent text-accent-foreground`),children:[(0,U.jsx)(bt,{"aria-hidden":`true`}),t(`content.scope.localized`)]}):(0,U.jsxs)(Me,{children:[(0,U.jsxs)(Ae,{type:`button`,className:A(Zr,`border text-muted-foreground outline-none hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50`),children:[(0,U.jsx)(_t,{"aria-hidden":`true`}),t(`content.scope.shared`)]}),(0,U.jsx)(je,{align:`start`,className:`w-64 p-3 text-meta`,children:t(`content.scope.sharedHint`)})]})},$r=({localized:e,className:t})=>{let{t:n}=T(),r=e?bt:_t,i=n(e?`content.scope.localized`:`content.scope.sharedHint`);return(0,U.jsxs)(Ft,{children:[(0,U.jsx)(Nt,{asChild:!0,children:(0,U.jsxs)(`span`,{className:A(`inline-flex shrink-0 text-muted-foreground [&_svg]:size-3.5`,t),"data-scope":e?`localized`:`shared`,children:[(0,U.jsx)(r,{"aria-hidden":`true`}),(0,U.jsx)(`span`,{className:`sr-only`,children:i})]})}),(0,U.jsx)(Pt,{children:i})]})},ei=(0,H.memo)(({field:e,owner:t,value:n,onChange:r,path:i,topLevel:a,layout:o=`stacked`,className:s})=>{let{t:c}=T(),l=M(),u=Oo({field:e,owner:t,value:n,onChange:r,path:i}),d=u.labelling===`input`?Xe:`span`,f=o===`inline`;return(0,U.jsxs)(`div`,{className:A(`min-w-0 scroll-mt-24`,f?`grid gap-x-4 gap-y-1 sm:grid-cols-[9rem_minmax(0,1fr)]`:`space-y-2`,s),id:`${u.inputId}-section`,"data-field-path":i,children:[(0,U.jsxs)(`div`,{className:A(`flex min-h-5 flex-wrap items-center gap-2`,f&&`sm:min-h-10 sm:pt-0.5`,o===`bare`&&`sr-only`),children:[(0,U.jsxs)(d,{id:u.labelId,...u.labelling===`input`?{htmlFor:u.inputId}:{},className:A(`leading-5`,f?`text-meta font-medium text-muted-foreground`:`text-sm font-semibold`),children:[e.label,e.required?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`span`,{"aria-hidden":`true`,className:`ml-0.5 text-destructive`,children:`*`}),(0,U.jsx)(`span`,{className:`sr-only`,children:c(`content.fields.required`)})]}):null]}),a&&l.model.localized?f?(0,U.jsx)($r,{localized:e.localized}):(0,U.jsx)(Qr,{localized:e.localized}):null]}),(0,U.jsxs)(`div`,{className:`min-w-0 space-y-2`,children:[(0,U.jsx)(_r,{control:u}),(0,U.jsx)(vr,{field:e,control:u})]})]})});ei.displayName=`FieldControl`;var ti=`grid gap-5 @lg:grid-cols-6`,ni={full:`@lg:col-span-6`,"two-thirds":`@lg:col-span-4`,half:`@lg:col-span-3`,third:`@lg:col-span-2`},ri=e=>ni[e??`full`],ii=e=>ie(e)===`form`?`widths`:`compact`,ai=new Set([`string`,`slug`,`email`,`url`,`uid`,`number`,`integer`,`decimal`,`biginteger`,`boolean`,`date`,`datetime`,`time`]),oi=e=>ai.has(e.type)||e.type===`enum`&&e.editor.id===`select`,si=({fields:e,renderField:t,mode:n=`compact`})=>(0,U.jsx)(`div`,{className:`@container`,children:n===`widths`?(0,U.jsx)(`div`,{className:ti,children:e.map(e=>t(e,ri(e.width)))}):(0,U.jsx)(`div`,{className:`grid gap-5 @2xl:grid-cols-2`,children:e.map(e=>t(e,oi(e)?`@2xl:col-span-1`:`@2xl:col-span-2`))})}),ci=e=>L(e)&&typeof e.id==`string`&&typeof e.url==`string`,li=(e,t)=>typeof e==`string`?e:ci(e)?(t?.(e),e.id):null,Y=e=>e.filter(e=>!e.deprecated),ui=(e,t,n)=>e.settings.components.map(e=>n.get(e)).find(e=>e?.apiKey===t[I]),di=(e,t,n,r)=>{if(t==null)return null;switch(e.type){case`media`:return Array.isArray(t)?t.map(e=>li(e,r)).filter(e=>e!==null):li(t,r);case`component`:{let i=n.get(e.settings.component),a=e=>tn(i&&L(e)?fi(i.fields,e,n,r):{});return e.settings.repeatable?Array.isArray(t)?t.map(a):[]:a(t)}case`dynamiczone`:return(Array.isArray(t)?t:[]).filter(L).map(t=>{let i=ui(e,t,n);return tn({[I]:t[I],...i?fi(i.fields,t,n,r):{}})});default:return t}};function fi(e,t,n,r){let i={};for(let a of Y(e))i[a.apiKey]=di(a,t[a.apiKey],n,r);return i}var pi=e=>Object.fromEntries(Y(e).map(e=>[e.apiKey,structuredClone(e.defaultValue??null)])),X=(e,t)=>tn({...t?{[I]:e.apiKey}:{},...pi(e.fields)}),mi=(e,t)=>{if(an(t))throw Error(`The value of "${e}" holds text that does not parse; it must not be sent.`)},hi=(e,t=`value`)=>(mi(t,e),sn(e)?null:un(e)),gi=(e,t)=>Object.keys(e).filter(n=>!en(e[n],t[n])),_i=(e,t)=>Object.fromEntries(t.map(t=>[t,hi(e[t],t)])),vi=e=>Object.fromEntries(Object.entries(e).filter(([,e])=>!sn(e)).map(([e,t])=>(mi(e,t),[e,un(t)]))),yi=(e,t,n)=>{let r={...e},i={...n};for(let a of Object.keys(n))Object.is(e[a],t[a])&&(en(e[a],n[a])?i[a]=e[a]:r[a]=n[a]);return{values:r,baseline:i}},Z=({component:e,item:t,onItemChange:n,path:r,layout:i=`form`,renderFieldFooter:a})=>{let o=(0,H.useMemo)(()=>({definition:e,values:t}),[e,t]),s=Y(e.fields),c=(o,s)=>{let c=a!==void 0,l=(0,U.jsx)(ei,{field:o,owner:e,value:t[o.apiKey],onChange:e=>n({...t,[o.apiKey]:e}),path:Nr(r,o.apiKey),topLevel:!1,layout:i===`document`?`inline`:`stacked`,className:c?void 0:s},o.id);return c?(0,U.jsxs)(`div`,{className:A(`min-w-0 space-y-1.5`,s),children:[l,a(o,t[o.apiKey])]},o.id):l};return(0,U.jsx)(Jt.Provider,{value:o,children:i===`document`?(0,U.jsx)(`div`,{className:`space-y-3`,children:s.map(e=>c(e))}):(0,U.jsx)(si,{fields:s,renderField:c})})},Q=(e,t=2)=>String(e).padStart(t,`0`),bi=(e,t)=>{if(typeof e!=`string`)return``;let n=new Date(e);if(Number.isNaN(n.getTime()))return``;let[r=0,i=1,a=1,o=0,s=0,c=0]=t?[n.getUTCFullYear(),n.getUTCMonth()+1,n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes(),n.getUTCSeconds()]:[n.getFullYear(),n.getMonth()+1,n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds()];return`${Q(r,4)}-${Q(i)}-${Q(a)}T${Q(o)}:${Q(s)}:${Q(c)}`},xi=(e,t)=>{if(e===``)return null;let n=/T\d{2}:\d{2}$/.test(e)?`${e}:00`:e,r=new Date(t?`${n}Z`:n);return Number.isNaN(r.getTime())?null:r.toISOString()},Si=()=>Intl.DateTimeFormat().resolvedOptions().timeZone,Ci=/^(\d{2}:\d{2})(?::(\d{2})(?:\.(\d+))?)?$/,wi=e=>{let t=Ci.exec(e);if(!t)return e;let[,n=``,r=`00`,i=``]=t,a=i.replace(/0+$/,``);return a===``?r===`00`?n:`${n}:${r}`:`${n}:${r}.${a}`},Ti=80,Ei=e=>e.length>Ti?`${e.slice(0,79)}…`:e,Di=(e,t)=>{if(sn(t))return``;if(P(t))return Ei(t.text);switch(e.type){case`richtext`:return Ei(w(t));case`boolean`:return t===!0?`✓`:`✗`;case`enum`:return N(t).map(t=>e.settings.values.find(e=>e.value===t)?.label??t).join(`, `);case`datetime`:return typeof t==`string`?we(t)||t:String(t);case`json`:return Ei(JSON.stringify(t));case`time`:return wi(String(t));case`code`:return E.t(`content.fields.code.summary`,{language:fn(e.settings.language),count:String(t).split(`
3
- `).length});case`media`:case`relation`:case`component`:case`dynamiczone`:return String(N(t).length);default:return Ei(String(t))}},Oi=new Set([`string`,`text`,`slug`,`email`,`url`,`uid`,`enum`]),ki=(e,t)=>{if(!L(t))return``;let n=e.fields.find(t=>t.id===e.display.titleFieldId),r=n?[n,...e.fields]:e.fields;for(let e of r)if(Oi.has(e.type)||e.type===`richtext`){let n=Di(e,t[e.apiKey]);if(n)return n}return``},Ai=(e,t)=>{let[n,r]=(0,H.useState)(()=>new Set(t?e:[]));return{collapsed:n,toggle:(0,H.useCallback)(e=>r(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n}),[]),setAll:(0,H.useCallback)((e,t)=>r(new Set(t?e:[])),[])}},ji=(e,t)=>{let n=(0,H.useRef)(e);(0,H.useEffect)(()=>{let r=e.find(e=>!n.current.includes(e));n.current=e,r&&e.length>0&&document.getElementById(t(r))?.querySelector(`button[aria-expanded]`)?.focus()},[e,t])},Mi=`application/x-shapio-item`,Ni=e=>{let[t,n]=(0,H.useState)(null),[r,i]=(0,H.useState)(null),a=()=>{n(null),i(null)};return{handleProps:e=>({draggable:!0,onDragStart:t=>{n(e),t.dataTransfer.effectAllowed=`move`,t.dataTransfer.setData(Mi,String(e));let r=t.currentTarget.closest(`li`);r&&t.dataTransfer.setDragImage(r,16,16)},onDragEnd:a}),targetProps:n=>({onDragOver:e=>{t!==null&&e.dataTransfer.types.includes(Mi)&&(e.preventDefault(),e.dataTransfer.dropEffect=`move`,i(n))},onDrop:r=>{t!==null&&(r.preventDefault(),t!==n&&e(t,n),a())}}),dropSide:e=>t===null||r!==e||t===e?void 0:t>e?`before`:`after`}},Pi=e=>{let t=j(e=>e.issues);return(0,H.useMemo)(()=>Fr(Pr(t),e),[t,e])},Fi=({id:e,title:t,summary:n,index:r,count:i,collapsed:a,issueCount:o,editable:s,onToggle:c,onMove:l,onDuplicate:u,onRemove:d,appearance:f=`form`,drag:p,children:m})=>{let{t:h}=T(),g=`${e}-body`,_=e=>{e.altKey&&l&&(e.key===`ArrowUp`&&r>0?(e.preventDefault(),l(r-1)):e.key===`ArrowDown`&&r<i-1&&(e.preventDefault(),l(r+1)))},v=f===`canvas`,y=v?`opacity-0 transition-opacity group-focus-within/item:opacity-100 group-hover/item:opacity-100`:void 0;return(0,U.jsxs)(`li`,{id:e,className:A(`group/item scroll-mt-32 rounded-xl border bg-card data-invalid:border-destructive/60`,v&&`border-transparent bg-muted/40 focus-within:border-border hover:border-border`,p?.dropSide===`before`&&`shadow-[0_-3px_0_0_var(--color-ring)]`,p?.dropSide===`after`&&`shadow-[0_3px_0_0_var(--color-ring)]`),"data-invalid":o>0||void 0,...v?p?.target:{},children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-1 py-1.5 pr-2 pl-1.5`,children:[v&&s&&p?(0,U.jsx)(O,{type:`button`,variant:`ghost`,size:`icon-xs`,className:A(`cursor-grab text-muted-foreground active:cursor-grabbing`,y),"aria-label":h(`entry.blocks.dragItem`,{item:t,position:r+1}),...p.handle,children:(0,U.jsx)(vt,{"aria-hidden":`true`})}):null,(0,U.jsxs)(`button`,{type:`button`,"aria-expanded":!a,"aria-controls":g,onClick:c,onKeyDown:_,className:`flex h-8 min-w-0 flex-1 items-center gap-2 rounded-lg px-2 text-left outline-none hover:bg-muted focus-visible:ring-[3px] focus-visible:ring-ring/50`,children:[(0,U.jsx)(Ze,{"aria-hidden":`true`,className:A(`size-4 shrink-0 text-muted-foreground transition-transform`,!a&&`rotate-90`)}),(0,U.jsx)(`span`,{className:`shrink-0 text-sm font-semibold`,children:t}),n?(0,U.jsx)(`span`,{className:`min-w-0 truncate text-meta text-muted-foreground`,children:n}):null,(0,U.jsx)(`span`,{className:`sr-only`,children:h(`content.items.position`,{index:r+1,count:i})})]}),o>0?(0,U.jsx)(he,{tone:`danger`,size:`sm`,label:h(`content.items.problems`,{count:o})}):null,(0,U.jsxs)(`span`,{className:A(`flex items-center gap-1`,y),children:[s&&l?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(O,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":h(`content.items.moveUp`,{item:t,position:r+1}),disabled:r===0,onClick:()=>l(r-1),children:(0,U.jsx)(Ve,{"aria-hidden":`true`})}),(0,U.jsx)(O,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":h(`content.items.moveDown`,{item:t,position:r+1}),disabled:r===i-1,onClick:()=>l(r+1),children:(0,U.jsx)(ze,{"aria-hidden":`true`})})]}):null,s&&u?(0,U.jsx)(O,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":h(`content.items.duplicate`,{item:t,position:r+1}),onClick:u,children:(0,U.jsx)(pt,{"aria-hidden":`true`})}):null,s&&d?(0,U.jsx)(O,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":h(`content.items.remove`,{item:t,position:r+1}),onClick:d,children:(0,U.jsx)(ct,{"aria-hidden":`true`})}):null]})]}),(0,U.jsx)(`div`,{id:g,hidden:a,className:A(v?`px-4 pt-1 pb-4`:`border-t p-5`),children:a?null:m})]})},Ii=({components:e,position:t,onInsert:n})=>{let{t:r}=T(),i=on();return(0,U.jsxs)(`li`,{className:`group/inserter relative flex h-4 items-center`,"data-item-inserter":!0,children:[(0,U.jsx)(`span`,{"aria-hidden":`true`,className:`h-px flex-1 bg-border opacity-0 transition-opacity group-focus-within/inserter:opacity-100 group-hover/inserter:opacity-100`}),(0,U.jsxs)(Ot,{children:[(0,U.jsx)(Et,{asChild:!0,children:(0,U.jsx)(O,{type:`button`,variant:`outline`,size:`icon-xs`,className:`absolute left-1/2 -translate-x-1/2 rounded-full bg-background opacity-0 transition-opacity group-hover/inserter:opacity-100 focus-visible:opacity-100 data-[state=open]:opacity-100`,"aria-label":r(`entry.blocks.insertAt`,{position:t}),children:(0,U.jsx)(kt,{"aria-hidden":`true`})})}),(0,U.jsx)(Dt,{align:`center`,className:`w-72`,onCloseAutoFocus:i.onCloseAutoFocus,children:(0,U.jsxs)(Ct,{children:[(0,U.jsx)(Tt,{className:`text-xs font-semibold tracking-wide text-muted-foreground uppercase`,children:r(`entry.blocks.groupComponents`)}),e.map(e=>(0,U.jsx)(ln,{icon:qe,label:e.label,onSelect:()=>i.defer(()=>n(e))},e.id))]})})]})]})},Li=({list:e,item:t,itemKey:n,index:r,path:i,domId:a,editable:o,component:s,collapsed:c,onToggle:l,drag:u})=>{let{t:d}=T(),f=Nr(i,r),p=Pi(f),m=(0,H.useCallback)(t=>e.update(r,t),[e,r]);return(0,U.jsx)(Fi,{id:a,appearance:`canvas`,title:s?.label??d(`content.items.unknownComponent`,{key:String(t.__component)}),summary:s?ki(s,t):``,index:r,count:e.items.length,collapsed:c,issueCount:p,editable:o,onToggle:()=>l(n),onMove:t=>e.move(r,t),onDuplicate:s?()=>e.duplicate(r):void 0,onRemove:()=>e.remove(r),drag:{handle:u.handleProps(r),target:u.targetProps(r),dropSide:u.dropSide(r)},children:s?(0,U.jsx)(Z,{component:s,item:t,onItemChange:m,path:f,layout:`document`}):(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:d(`content.items.unknownComponentHint`)})})},Ri=({list:e,labelId:t,inputId:n,path:r,editable:i,insertable:a,componentOf:o,newItem:s,startCollapsed:c})=>{let{collapsed:l,toggle:u}=Ai(e.keys,c),d=(0,H.useCallback)(e=>`${n}-item-${e}`,[n]);ji(e.keys,d);let f=Ni(e.move);return e.items.length===0?null:(0,U.jsx)(`ol`,{"aria-labelledby":t,className:`space-y-1 font-sans`,children:e.items.map((t,n)=>{let c=e.keys[n]??String(n);return(0,U.jsxs)(H.Fragment,{children:[n>0&&i&&a.length>0?(0,U.jsx)(Ii,{components:a,position:n+1,onInsert:t=>e.insertAt(n,s(t))}):null,(0,U.jsx)(Li,{list:e,item:t,itemKey:c,index:n,path:r,domId:d(c),editable:i,component:o(t),collapsed:l.has(c),onToggle:u,drag:f})]},c)})})},zi=(e,t)=>t===void 0||e<t,Bi=e=>e!==void 0&&e>1?e:void 0,Vi=({min:e,action:t})=>{let{t:n}=T(),r=Bi(e);return(0,U.jsx)(ge,{compact:!0,icon:qe,title:n(`content.items.empty`),description:r===void 0?void 0:n(`content.issues.tooFew`,{count:r}),action:t,className:`rounded-xl border border-dashed px-4`})},Hi=(e,t)=>{let n=N(e),r=(0,H.useCallback)(e=>t(e.length>0?e:null),[t]);return{items:n,keys:n.map((e,t)=>rn(e,t)),add:e=>r([...n,e]),insertAt:(e,t)=>{let i=Math.min(Math.max(e,0),n.length);r([...n.slice(0,i),t,...n.slice(i)])},update:(e,t)=>r(n.map((n,r)=>r===e?t:n)),move:(e,t)=>r(F(n,e,t)),duplicate:e=>{let t=tn(cn(n[e]??{}));r([...n.slice(0,e+1),t,...n.slice(e+1)])},remove:e=>r(n.filter((t,n)=>n!==e))}},Ui=({component:e,item:t,itemKey:n,index:r,count:i,path:a,domId:o,collapsed:s,editable:c,list:l,onToggle:u})=>{let d=Nr(a,r),f=Pi(d),p=(0,H.useCallback)(e=>l.update(r,e),[l,r]);return(0,U.jsx)(Fi,{id:o,title:e.label,summary:ki(e,t),index:r,count:i,collapsed:s,issueCount:f,editable:c,onToggle:()=>u(n),onMove:e=>l.move(r,e),onDuplicate:()=>l.duplicate(r),onRemove:()=>l.remove(r),children:(0,U.jsx)(Z,{component:e,item:t,onItemChange:p,path:d})})},Wi=e=>{let{t}=T(),{component:n,value:r,onChange:i,path:a,labelId:o,inputId:s,readOnly:c,disabled:l,definition:u,field:d}=e,f=Hi(r,i),p=u.type===`component`?u.settings:void 0,m=!c&&!l,h=zi(f.items.length,p?.max),g=e=>m&&h?(0,U.jsx)(Xr,{label:t(`content.items.add`,{item:n.label}),variant:e,onClick:()=>f.add(X(n,!1))}):null,_=f.items.length===0;return(0,U.jsxs)(`div`,{className:`space-y-1`,children:[_?(0,U.jsx)(Vi,{min:p?.min,action:g(`outline`)}):null,(0,U.jsx)(Ri,{list:f,labelId:o,inputId:s,path:a,editable:m,insertable:h?[n]:[],componentOf:()=>n,newItem:e=>X(e,!1),startCollapsed:d.options.collapsed===!0}),_?null:g(`ghost`)]})},Gi=e=>{let{t}=T(),{component:n,value:r,onChange:i,path:a,labelId:o,inputId:s,readOnly:c,disabled:l,definition:u}=e,d=Hi(r,i),{collapsed:f,toggle:p}=Ai(d.keys,e.field.options.collapsed===!0),m=(0,H.useCallback)(e=>`${s}-item-${e}`,[s]);ji(d.keys,m);let h=u.type===`component`?u.settings.max:void 0,g=!c&&!l;return(0,U.jsxs)(`div`,{className:`space-y-3`,children:[d.items.length>0?(0,U.jsx)(`ol`,{"aria-labelledby":o,className:`space-y-2`,children:d.items.map((e,t)=>{let r=d.keys[t]??String(t);return(0,U.jsx)(Ui,{component:n,item:e,itemKey:r,index:t,count:d.items.length,path:a,domId:m(r),collapsed:f.has(r),editable:g,list:d,onToggle:p},r)})}):(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`content.items.empty`)}),g&&zi(d.items.length,h)?(0,U.jsx)(Xr,{label:t(`content.items.add`,{item:n.label}),onClick:()=>d.add(X(n,!1))}):null]})},Ki=e=>{let{t}=T(),{component:n,value:r,onChange:i,path:a,readOnly:o,disabled:s,field:c}=e,l=!o&&!s,u=(0,H.useCallback)(e=>i(e),[i]);return L(r)?(0,U.jsxs)(`div`,{className:`space-y-4 rounded-xl border bg-card p-5`,children:[(0,U.jsx)(Z,{component:n,item:r,onItemChange:u,path:a}),l&&!c.required?(0,U.jsxs)(O,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>i(null),children:[(0,U.jsx)(ct,{"aria-hidden":`true`}),t(`content.items.removeSingle`,{item:n.label})]}):null]}):l?(0,U.jsx)(Xr,{label:t(`content.items.add`,{item:n.label}),onClick:()=>i(X(n,!1))}):(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`content.items.empty`)})},qi=e=>{let{t}=T(),{components:n}=M(),{definition:r}=e,i=r.type===`component`?n.get(r.settings.component):void 0;return!i||r.type!==`component`?(0,U.jsx)(`p`,{className:`text-sm text-destructive`,children:t(`content.items.componentMissing`)}):r.settings.repeatable&&e.appearance===`canvas`?(0,U.jsx)(Wi,{...e,component:i}):r.settings.repeatable?(0,U.jsx)(Gi,{...e,component:i}):(0,U.jsx)(Ki,{...e,component:i})},Ji=({label:e,onClear:t,disabled:n})=>{let{t:r}=T();return(0,U.jsx)(O,{type:`button`,variant:`ghost`,size:`icon-sm`,disabled:n,"aria-label":r(`content.fields.clearValue`,{field:e}),onClick:t,children:(0,U.jsx)(ce,{"aria-hidden":`true`})})},Yi=({inputRef:e,value:t,onChange:n,onBlur:r,parse:i})=>{let a=P(t);(0,H.useEffect)(()=>{let t=e.current;!a&&t?.validity.badInput&&(t.value=``)},[e,t,a]);let o=e=>{let r=e.validity.badInput?Qt(``):e.value===``?null:i(e.value);$t(r,t??null)||n(r)},s=e=>o(e.currentTarget);return{incomplete:a,onChange:s,onKeyUp:s,onBlur:e=>{o(e.currentTarget),r()},clear:()=>{e.current&&(e.current.value=``),n(null)}}},$=({id:e,message:t})=>t?(0,U.jsx)(`p`,{id:e,role:`alert`,className:`text-sm text-destructive`,children:t}):null,Xi=e=>e,Zi=e=>{let{t}=T(),{inputId:n,value:r,onChange:i,onBlur:a,readOnly:o,disabled:s,definition:c,field:l}=e,u=c.type===`date`?c.settings:{},d=(0,H.useRef)(null),f=Yi({inputRef:d,value:r,onChange:i,onBlur:a,parse:Xi}),p=R(r),m=`${n}-parse`;return(0,U.jsxs)(`div`,{className:`space-y-1`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,U.jsx)(k,{...B(e,f.incomplete?m:void 0),"aria-invalid":e.validation.invalid||f.incomplete||void 0,ref:d,type:`date`,value:p,min:u.min,max:u.max,readOnly:o,disabled:s,className:`min-w-0 flex-1`,onChange:f.onChange,onKeyUp:f.onKeyUp,onBlur:f.onBlur}),(p||f.incomplete)&&!o?(0,U.jsx)(Ji,{label:l.label,disabled:s,onClear:f.clear}):null]}),(0,U.jsx)($,{id:m,message:f.incomplete?t(`content.fields.incomplete.date`):void 0})]})},Qi=e=>{let{t}=T(),{inputId:n,value:r,onChange:i,onBlur:a,readOnly:o,disabled:s,field:c}=e,l=z(e,`display`)===`utc`,u=(0,H.useRef)(null),d=Yi({inputRef:u,value:r,onChange:i,onBlur:a,parse:e=>xi(e,l)}),f=`${n}-zone`,p=`${n}-parse`;return(0,U.jsxs)(`div`,{className:`space-y-1`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,U.jsx)(k,{...B(e,d.incomplete?`${p} ${f}`:f),"aria-invalid":e.validation.invalid||d.incomplete||void 0,ref:u,type:`datetime-local`,step:1,value:bi(r,l),readOnly:o,disabled:s,className:`min-w-0 flex-1`,onChange:d.onChange,onKeyUp:d.onKeyUp,onBlur:d.onBlur}),(r||d.incomplete)&&!o?(0,U.jsx)(Ji,{label:c.label,disabled:s,onClear:d.clear}):null]}),(0,U.jsx)($,{id:p,message:d.incomplete?t(`content.fields.incomplete.dateTime`):void 0}),(0,U.jsx)(`p`,{id:f,className:`text-meta text-muted-foreground`,children:l?t(`content.fields.dateTime.utc`):t(`content.fields.dateTime.local`,{zone:Si()})})]})},$i=(e,t)=>(e.type===`dynamiczone`?e.settings.components:e.type===`component`?[e.settings.component]:[]).map(e=>t.get(e)).filter(e=>e!==void 0),ea=e=>$i(e,M().components),ta=({allowed:e,onAdd:t})=>{let{t:n}=T(),r=on();return(0,U.jsxs)(Ot,{children:[(0,U.jsx)(Et,{asChild:!0,children:(0,U.jsx)(Xr,{label:n(`content.items.addSection`)})}),(0,U.jsx)(Dt,{align:`start`,onCloseAutoFocus:r.onCloseAutoFocus,children:e.map(e=>(0,U.jsx)(St,{onSelect:()=>r.defer(()=>t(e)),children:e.label},e.id))})]})},na=({allowed:e,item:t,itemKey:n,index:r,count:i,path:a,domId:o,collapsed:s,editable:c,list:l,onToggle:u})=>{let{t:d}=T(),f=e.find(e=>e.apiKey===t[I]),p=Nr(a,r),m=Pi(p),h=(0,H.useCallback)(e=>l.update(r,e),[l,r]);return(0,U.jsx)(Fi,{id:o,title:f?.label??d(`content.items.unknownComponent`,{key:String(t.__component)}),summary:f?ki(f,t):``,index:r,count:i,collapsed:s,issueCount:m,editable:c,onToggle:()=>u(n),onMove:e=>l.move(r,e),onDuplicate:f?()=>l.duplicate(r):void 0,onRemove:()=>l.remove(r),children:f?(0,U.jsx)(Z,{component:f,item:t,onItemChange:h,path:p}):(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:d(`content.items.unknownComponentHint`)})})},ra=e=>{let{value:t,onChange:n,path:r,labelId:i,inputId:a,readOnly:o,disabled:s,definition:c,field:l}=e,u=Hi(t,n),d=ea(c),f=c.type===`dynamiczone`?c.settings:void 0,p=!o&&!s,m=zi(u.items.length,f?.max);return(0,U.jsxs)(`div`,{children:[u.items.length===0?(0,U.jsx)(Vi,{min:f?.min,action:p&&m&&d.length>0?(0,U.jsx)(ta,{allowed:d,onAdd:e=>u.add(X(e,!0))}):null}):null,(0,U.jsx)(Ri,{list:u,labelId:i,inputId:a,path:r,editable:p,insertable:m?d:[],componentOf:e=>d.find(t=>t.apiKey===e[I]),newItem:e=>X(e,!0),startCollapsed:l.options.collapsed===!0})]})},ia=e=>e.appearance===`canvas`?(0,U.jsx)(ra,{...e}):(0,U.jsx)(aa,{...e}),aa=e=>{let{t}=T(),{value:n,onChange:r,path:i,labelId:a,inputId:o,readOnly:s,disabled:c,definition:l,field:u}=e,d=Hi(n,r),{collapsed:f,toggle:p,setAll:m}=Ai(d.keys,u.options.collapsed===!0),h=(0,H.useCallback)(e=>`${o}-item-${e}`,[o]);ji(d.keys,h);let g=ea(l),_=l.type===`dynamiczone`?l.settings.max:void 0,v=!s&&!c,y=d.keys.length>0&&d.keys.every(e=>f.has(e));return(0,U.jsxs)(`div`,{className:`space-y-3`,children:[d.items.length>1?(0,U.jsx)(`div`,{className:`flex justify-end`,children:(0,U.jsxs)(O,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>m(d.keys,!y),children:[y?(0,U.jsx)(at,{"aria-hidden":`true`}):(0,U.jsx)(xn,{"aria-hidden":`true`}),t(y?`content.items.expandAll`:`content.items.collapseAll`)]})}):null,d.items.length>0?(0,U.jsx)(`ol`,{"aria-labelledby":a,className:`space-y-2`,children:d.items.map((e,t)=>{let n=d.keys[t]??String(t);return(0,U.jsx)(na,{allowed:g,item:e,itemKey:n,index:t,count:d.items.length,path:i,domId:h(n),collapsed:f.has(n),editable:v,list:d,onToggle:p},n)})}):(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`content.items.emptyZone`)}),v&&zi(d.items.length,_)?(0,U.jsx)(ta,{allowed:g,onAdd:e=>d.add(X(e,!0))}):null]})},oa=8,sa=2,ca=e=>e==null?``:JSON.stringify(e,null,sa),la=e=>P(e)?e.text:ca(e),ua=e=>{if(e.trim()===``)return{ok:!0,value:null};try{return{ok:!0,value:JSON.parse(e)}}catch(e){return{ok:!1,message:e instanceof Error?e.message:String(e)}}},da=e=>{let t=ua(e);return t.ok?t.value:Qt(e)},fa=e=>{let{t}=T(),{inputId:n,value:r,onChange:i,onBlur:a,readOnly:o,disabled:s}=e,[c,l]=(0,H.useState)(()=>la(r)),[u,d]=(0,H.useState)(r);Object.is(u,r)||(d(r),$t(da(c),r??null)||l(la(r)));let f=P(r)?ua(r.text):void 0,p=f&&!f.ok?f.message:void 0,m=`${n}-parse`;return(0,U.jsxs)(`div`,{className:`space-y-1`,children:[(0,U.jsx)(pn,{...B(e,p?m:void 0),"aria-invalid":e.validation.invalid||p!==void 0||void 0,rows:dn(e,`rows`)??oa,value:c,spellCheck:!1,readOnly:o,disabled:s,className:`font-mono text-sm`,onChange:e=>{l(e.target.value),i(da(e.target.value))},onBlur:a}),(0,U.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,U.jsx)($,{id:m,message:p?t(`content.fields.json.invalid`,{reason:p}):void 0}),o?null:(0,U.jsxs)(O,{type:`button`,variant:`ghost`,size:`sm`,className:`ml-auto`,disabled:s||p!==void 0||c.trim()===``,onClick:()=>l(ca(r)),children:[(0,U.jsx)(Ke,{"aria-hidden":`true`}),t(`content.fields.json.format`)]})]})]})},pa=({assetId:e,index:t,count:n,editable:r,onMove:i,onRemove:a})=>{let{t:o}=T(),s=oe(e),c=s.data?.filename??e;return(0,U.jsxs)(`li`,{className:`group/tile relative space-y-1.5`,children:[s.data?(0,U.jsx)(ht,{asset:s.data,className:`aspect-square w-full rounded-xl`}):s.isPending?(0,U.jsx)(Qe,{className:`aspect-square w-full rounded-xl`}):(0,U.jsx)(`div`,{className:`flex aspect-square w-full items-center justify-center rounded-xl bg-muted text-muted-foreground`,children:(0,U.jsx)(yt,{"aria-hidden":`true`,className:`size-5`})}),(0,U.jsx)(`p`,{className:`truncate text-meta text-muted-foreground`,children:s.isError?o(`content.media.missing`):c}),r?(0,U.jsxs)(`div`,{className:`absolute top-2 right-2 flex gap-1 rounded-lg bg-popover p-0.5 opacity-0 shadow-sm transition-opacity group-focus-within/tile:opacity-100 group-hover/tile:opacity-100`,children:[(0,U.jsx)(O,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":o(`content.items.moveUp`,{item:c,position:t+1}),disabled:t===0,onClick:()=>i(t-1),children:(0,U.jsx)(yn,{"aria-hidden":`true`})}),(0,U.jsx)(O,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":o(`content.items.moveDown`,{item:c,position:t+1}),disabled:t===n-1,onClick:()=>i(t+1),children:(0,U.jsx)(Ue,{"aria-hidden":`true`})}),(0,U.jsx)(O,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":o(`content.media.remove`,{name:c}),onClick:a,children:(0,U.jsx)(ct,{"aria-hidden":`true`})})]}):null]})},ma=({ids:e,labelId:t,inputId:n,editable:r,canAdd:i,onPick:a,commit:o})=>{let{t:s}=T(),{uploadMedia:c}=M(),[l,u]=(0,H.useState)(!1),[d,f]=(0,H.useState)(0),p=r&&i&&c!==void 0,m=async t=>{u(!1);let n=[...t.dataTransfer.files];if(!p||n.length===0||!c)return;t.preventDefault(),f(e=>e+n.length);let r=[];for(let e of n)try{r.push((await c(e)).id)}catch(t){Oe(t,`uploading ${e.name} into a gallery`),ke.error(s(`entry.upload.failed`,{name:e.name}))}finally{f(e=>e-1)}r.length>0&&o([...e,...r])};return(0,U.jsxs)(`div`,{className:A(`rounded-xl font-sans`,l&&`ring-[3px] ring-ring/50`),onDragOver:e=>{p&&e.dataTransfer.types.includes(`Files`)&&(e.preventDefault(),u(!0))},onDragLeave:()=>u(!1),onDrop:e=>void m(e),children:[(0,U.jsx)(`ul`,{"aria-labelledby":t,className:`grid grid-cols-2 gap-3 sm:grid-cols-3`,children:e.map((t,n)=>(0,U.jsx)(pa,{assetId:t,index:n,count:e.length,editable:r,onMove:t=>o(F(e,n,t)),onRemove:()=>o(e.filter(e=>e!==t))},t))}),r&&i?(0,U.jsxs)(`button`,{id:n,type:`button`,onClick:a,className:A(`mt-3 flex h-20 w-full items-center justify-center gap-2 rounded-xl border border-dashed text-sm text-muted-foreground outline-none hover:bg-muted/50 hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50`),children:[(0,U.jsx)(Be,{"aria-hidden":`true`,className:`size-4`}),d>0?s(`entry.upload.uploadingCount`,{count:d}):s(c?`entry.gallery.addOrDrop`:`content.media.add`)]}):null]})},ha=e=>{let{t}=T(),{canWrite:n}=mt(),{value:r,onChange:i,onBlur:a,readOnly:o,disabled:s,definition:c,context:l,inputId:u,labelId:d,describedBy:f}=e,p=c.type===`media`?c.settings:{multiple:!1},m=p.multiple,h=N(r).filter(e=>typeof e==`string`),g=!o&&!s,_=e=>{i(m?e.length>0?e:null:e[0]??null),a()},v=async()=>{try{let e=await l.pickMedia({multiple:m,...`allowedKinds`in p&&p.allowedKinds?{allowedKinds:p.allowedKinds}:{}});if(e&&e.length>0){let t=e.map(e=>e.id);_(m?[...h,...t.filter(e=>!h.includes(e))]:t.slice(0,1))}}catch(e){Ne(e,`picking media`)}},y=`max`in p?p.max:void 0;return m&&e.appearance===`canvas`?(0,U.jsx)(ma,{ids:h,labelId:d,inputId:u,editable:g,canAdd:y===void 0||h.length<y,onPick:()=>void v(),commit:_}):(0,U.jsxs)(`div`,{role:`group`,"aria-labelledby":d,"aria-describedby":f,className:`space-y-2`,children:[h.length>0?(0,U.jsx)(`ul`,{className:`space-y-2`,children:h.map((e,t)=>(0,U.jsx)(He,{assetId:e,inputId:u,index:t,count:h.length,editable:g,canEditAlt:n&&!o,onMove:m?e=>_(F(h,t,e)):void 0,onRemove:()=>_(h.filter(t=>t!==e))},e))}):(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`content.media.empty`)}),g&&(!m||y===void 0||h.length<y)?(0,U.jsxs)(O,{id:u,type:`button`,variant:`outline`,size:`sm`,onClick:()=>void v(),children:[(0,U.jsx)(Be,{"aria-hidden":`true`}),m?t(`content.media.add`):h.length>0?t(`content.media.replace`):t(`content.media.chooseOne`)]}):null]})},ga=/^-?\d+$/,_a=/^-?(\d+\.?\d*|\.\d+)([eE][-+]?\d+)?$/,va=(e,t)=>{let n=t.trim();if(n===``)return{ok:!0,value:null};if(e===`decimal`||e===`biginteger`)return{ok:!0,value:n};if(!(e===`integer`?ga:_a).test(n))return{ok:!1};let r=Number(n);return Number.isFinite(r)&&(e!==`integer`||Number.isSafeInteger(r))?{ok:!0,value:r}:{ok:!1}},ya=e=>P(e)?e.text:R(e),ba=(e,t)=>{let n=va(e,t);return n.ok?n.value:Qt(t)},xa=e=>{let{t}=T(),{inputId:n,value:r,onChange:i,onBlur:a,readOnly:o,disabled:s,definition:c}=e,[l,u]=(0,H.useState)(()=>ya(r)),[d,f]=(0,H.useState)(r);Object.is(d,r)||(f(r),$t(ba(c.type,l),r??null)||u(ya(r)));let p=P(r),m=`${n}-parse`,h=c.type===`integer`||c.type===`biginteger`;return(0,U.jsxs)(`div`,{className:`space-y-1`,children:[(0,U.jsx)(k,{...B(e,p?m:void 0),"aria-invalid":e.validation.invalid||p||void 0,inputMode:h?`numeric`:`decimal`,value:l,placeholder:z(e,`placeholder`),step:dn(e,`step`),readOnly:o,disabled:s,className:`tabular-nums`,onChange:e=>{u(e.target.value),i(ba(c.type,e.target.value))},onBlur:a}),(0,U.jsx)($,{id:m,message:p?t(h?`content.fields.number.notInteger`:`content.fields.number.notNumber`):void 0})]})},Sa=e=>{let{inputId:t,labelId:n,describedBy:r,value:i,onChange:a,onBlur:o,readOnly:s,disabled:c,field:l,validation:u}=e,d=Vr(i),f=z(e,`layout`)===`horizontal`;return(0,U.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,U.jsx)(jt,{"aria-labelledby":n,"aria-describedby":r,"aria-invalid":u.invalid||void 0,value:d,disabled:c||s,onValueChange:t=>a(Br(e,t)),onBlur:o,className:A(f&&`flex flex-wrap gap-x-6`),children:J(e).map(e=>(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(At,{id:`${t}-${e.value}`,value:e.value}),(0,U.jsx)(Xe,{htmlFor:`${t}-${e.value}`,className:`font-normal`,children:e.label})]},e.value))}),d&&!l.required&&!s?(0,U.jsx)(Ji,{label:l.label,disabled:c,onClear:()=>a(null)}):null]})},Ca=100,wa=(e,t,n)=>{let r=e?Bt(e):void 0,i=t.slice(0,Ca),a={filters:{id:{$in:[...i].sort()}},pageSize:Math.max(i.length,1),...r?{fields:[r.apiKey]}:{},...n&&e?.localized?{locale:n}:{}},o=Wt(e?.apiKey??``,a,e!==void 0&&i.length>0),s=o.data?.items;return{byId:(0,H.useMemo)(()=>new Map((s??[]).map(e=>[e.id,e])),[s]),isLoading:o.isPending&&i.length>0,error:o.error}},Ta=(0,H.memo)(({field:e,layout:t,className:n})=>{let{model:r}=M(),{value:i,onChange:a}=hr(e);return(0,U.jsx)(ei,{field:e,owner:r,value:i,onChange:a,path:`/${e.apiKey}`,topLevel:!0,layout:t,className:n})});Ta.displayName=`TopLevelField`;var Ea=({fields:e,mode:t})=>(0,U.jsx)(pr,{children:(0,U.jsx)(si,{fields:e,mode:t,renderField:(e,t)=>(0,U.jsx)(Ta,{field:e,layout:`stacked`,className:t},e.id)})}),Da=e=>{let t=nn(e.getState().values).length;return t!==0&&(e.getState().reveal(),ke.error(E.t(`content.form.fixProblems`,{count:t})),!0)},Oa=(e,t)=>{let n=`/${t}`;return e.filter(e=>e.path!==n&&!e.path.startsWith(`${n}/`))},ka=e=>p()(t=>({values:e,baseline:e,issues:[],touched:new Set,revealAll:!1,setValue:(e,n)=>t(t=>({values:{...t.values,[e]:n},issues:Oa(t.issues,e)})),patchValues:e=>t(t=>({values:{...t.values,...e},issues:Object.keys(e).reduce(Oa,t.issues)})),touch:e=>t(t=>t.touched.has(e)?t:{touched:new Set([...t.touched,e])}),reveal:()=>t({revealAll:!0}),setIssues:e=>t({issues:e}),load:e=>t({values:e,baseline:e,issues:[],touched:new Set,revealAll:!1}),rebase:(e,n)=>t({values:{...e,...n},baseline:e,issues:[]}),acceptSaved:(e,n)=>t(t=>yi(t.values,e,n))})),Aa=e=>gi(e.values,e.baseline),ja=e=>{if(!(e instanceof Se)||e.code!==`CONTENT_INVALID`||!L(e.details))return[];let t=e.details.issues;return Array.isArray(t)?t.filter(e=>L(e)&&typeof e.path==`string`&&typeof e.code==`string`):[]},Ma=e=>{if(!(e instanceof Se)||e.code!==`ENTRY_REFERENCED`||!L(e.details))return[];let t=e.details.referrers;return Array.isArray(t)?t.filter(e=>L(e)):[]},Na=e=>e instanceof Se&&e.status===409&&(e.code===`CONTENT_VERSION_CONFLICT`||e.code===`SCHEMA_CHANGED`),Pa=({target:e,onClose:t,onCreated:n})=>{let{t:r}=T(),i=M(),[a]=(0,H.useState)(()=>ka(pi(e.fields))),o=d(a,e=>Aa(e).length>0),s=Vt(e.apiKey),{requestOpenChange:c,discardPrompt:l}=It({dirty:o,pending:s.isPending,onOpenChange:e=>e?void 0:t()}),u=e.localized?i.locale:null,f=(0,H.useMemo)(()=>({...i,idPrefix:`${i.idPrefix}inline-`,model:e,locale:u,entryId:null,readOnly:!1,disabled:s.isPending}),[i,e,u,s.isPending]),p=async()=>{if(!Da(a)){a.getState().reveal();try{n((await s.mutateAsync({...u?{locale:u}:{},data:vi(a.getState().values)})).id)}catch(e){a.getState().setIssues(ja(e))}}},m=ja(s.error);return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(ue,{open:!0,onOpenChange:c,children:(0,U.jsxs)(be,{size:`md`,"aria-describedby":void 0,children:[(0,U.jsx)(_e,{children:(0,U.jsx)(me,{children:r(`content.relation.createTitle`,{model:e.label})})}),(0,U.jsxs)(`form`,{noValidate:!0,className:`flex min-h-0 flex-1 flex-col`,onSubmit:e=>{e.preventDefault(),p()},children:[(0,U.jsxs)(pe,{className:`space-y-5`,children:[(0,U.jsx)(mr,{environment:f,store:a,children:(0,U.jsx)(Ea,{fields:Y(e.fields),mode:ii(e)})}),s.isError&&m.length===0?(0,U.jsx)(ot,{error:s.error}):null,m.length>0?(0,U.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive`,children:r(`content.form.fixProblems`,{count:m.length})}):null]}),(0,U.jsxs)(de,{children:[(0,U.jsx)(O,{type:`button`,variant:`outline`,onClick:()=>c(!1),children:r(`common.cancel`)}),(0,U.jsx)(le,{pending:s.isPending,pendingLabel:r(`content.form.creating`),children:r(`content.relation.createAndLink`)})]})]})]})}),l]})},Fa=`(min-width: 48rem)`,Ia=e=>{let t=window.matchMedia(Fa);return t.addEventListener(`change`,e),()=>t.removeEventListener(`change`,e)},La=()=>window.matchMedia(Fa).matches,Ra=()=>(0,H.useSyncExternalStore)(Ia,La,()=>!0),za=e=>{let[t,n]=(0,H.useState)(),r=t!==void 0&&e.includes(t)?t:void 0;return{activeId:r,setActiveId:n,move:t=>{if(e.length===0)return;let i=r===void 0?-1:e.indexOf(r),a=i===-1?t===1?0:e.length-1:i+t;n(e[Math.min(Math.max(a,0),e.length-1)])},first:()=>n(e[0]),last:()=>n(e.at(-1))}},Ba=20,Va=300,Ha=({target:e,locale:t,multiple:n,selected:r,exclude:i,full:a,onPick:o,onUnpick:s,className:c,listClassName:l})=>{let{t:u}=T(),d=(0,H.useId)(),[f,p]=(0,H.useState)(``),m=Rt(f.trim(),Va),h=Ut(e),g=Wt(e.apiKey,{pageSize:Ba,...m&&h?{q:m}:{},...t&&e.localized?{locale:t}:{}}),_=(g.data?.items??[]).filter(e=>!i.includes(e.id)),v=za(_.map(e=>e.id)),y=e=>`${d}-${e}`,b=v.activeId?y(v.activeId):void 0;(0,H.useEffect)(()=>{b&&document.getElementById(b)?.scrollIntoView({block:`nearest`})},[b]);let x=e=>{let t=r.includes(e);n&&t?s(e):n&&a||o(e)},S=e=>{e.altKey||e.ctrlKey||e.metaKey||(e.key===`ArrowDown`||e.key===`ArrowUp`?(e.preventDefault(),v.move(e.key===`ArrowDown`?1:-1)):(e.key===`Home`||e.key===`End`)&&!h?(e.preventDefault(),e.key===`Home`?v.first():v.last()):e.key===`Enter`&&v.activeId&&(e.preventDefault(),x(v.activeId)))};return(0,U.jsxs)(`div`,{className:A(`flex min-h-0 flex-col gap-3`,c),children:[h?(0,U.jsxs)(`div`,{className:`relative`,children:[(0,U.jsx)(gt,{"aria-hidden":`true`,className:`absolute top-1/2 left-3 size-4 -translate-y-1/2 text-muted-foreground`}),(0,U.jsx)(k,{type:`search`,role:`combobox`,"aria-expanded":`true`,"aria-controls":d,"aria-autocomplete":`list`,"aria-activedescendant":b,value:f,"aria-label":u(`content.relation.search`,{model:e.label}),placeholder:u(`content.relation.searchPlaceholder`),className:`pl-9`,onChange:e=>p(e.target.value),onKeyDown:S})]}):null,(0,U.jsx)(`ul`,{id:d,role:`listbox`,"aria-label":u(`content.relation.results`),"aria-multiselectable":n||void 0,"aria-busy":g.isPending||void 0,"aria-activedescendant":h?void 0:b,tabIndex:h?void 0:0,onKeyDown:h?void 0:S,className:A(`min-h-0 space-y-0.5 overflow-y-auto rounded-lg outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50`,l),children:_.map(t=>{let i=r.includes(t.id),o=n&&a&&!i;return(0,U.jsxs)(`li`,{id:y(t.id),role:`option`,"aria-selected":i,"aria-disabled":o||void 0,"data-active":t.id===v.activeId||void 0,className:A(`flex cursor-pointer items-center gap-2 rounded-md px-2 py-2 text-sm select-none data-[active]:bg-accent data-[active]:text-accent-foreground`,o&&`cursor-not-allowed opacity-50`),onMouseDown:e=>e.preventDefault(),onPointerMove:()=>t.id===v.activeId?void 0:v.setActiveId(t.id),onClick:()=>x(t.id),children:[(0,U.jsx)(Je,{"aria-hidden":`true`,className:A(`size-4 shrink-0`,!i&&`invisible`)}),(0,U.jsx)(`span`,{className:`min-w-0 truncate`,children:Gt(e,t,u(`content.untitled`))})]},t.id)})}),g.isPending?(0,U.jsx)(xe,{rows:3}):g.isError?(0,U.jsx)(ve,{error:g.error,onRetry:()=>void g.refetch()}):_.length===0?(0,U.jsx)(`p`,{role:`status`,className:`py-4 text-center text-sm text-muted-foreground`,children:u(`content.relation.noResults`)}):null]})},Ua=({open:e,onOpenChange:t,trigger:n,target:r,multiple:i,selected:a,exclude:o,locale:s,full:c,canCreate:l,onPick:u,onUnpick:d,onCreate:f,onFocusFallback:p})=>{let{t:m}=T(),h=Ra(),g=(0,H.useId)(),_=(0,H.useRef)(null),v=(0,H.useRef)(!1),y=m(`content.relation.chooseTitle`,{model:r.label}),b=e=>{u(e),i||t(!1)},x=()=>{v.current=!0,t(!1)},S=e=>{let t=v.current;v.current=!1;let n=_.current;(t||!n?.isConnected)&&(e.preventDefault(),n?.isConnected?n.focus({preventScroll:!0}):p(),t&&f())},C=e=>(0,U.jsx)(Ha,{target:r,locale:s,multiple:i,selected:a,exclude:o,full:c,onPick:b,onUnpick:d,className:`flex-1`,listClassName:e}),w=l||i?(0,U.jsxs)(U.Fragment,{children:[l?(0,U.jsxs)(O,{type:`button`,variant:`ghost`,size:`sm`,className:`mr-auto`,onClick:x,children:[(0,U.jsx)(kt,{"aria-hidden":`true`}),m(`content.relation.createNew`,{model:r.label})]}):null,i?(0,U.jsx)(O,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>t(!1),children:m(`content.relation.done`)}):null]}):null;return h?(0,U.jsxs)(Me,{open:e,onOpenChange:t,modal:!0,children:[n?(0,U.jsx)(Ae,{asChild:!0,ref:_,children:n}):null,(0,U.jsxs)(je,{"aria-labelledby":g,align:`start`,collisionPadding:16,className:`flex max-h-(--radix-popover-content-available-height) w-96 flex-col gap-3 p-3`,onCloseAutoFocus:S,children:[(0,U.jsx)(`p`,{id:g,className:`text-sm font-semibold`,children:y}),C(`max-h-72`),w?(0,U.jsx)(`div`,{className:`flex items-center justify-end gap-2 border-t pt-3`,children:w}):null]})]}):(0,U.jsxs)(ue,{open:e,onOpenChange:t,children:[n?(0,U.jsx)(fe,{asChild:!0,ref:_,children:n}):null,(0,U.jsxs)(be,{side:`bottom`,"aria-describedby":void 0,onCloseAutoFocus:S,children:[(0,U.jsx)(_e,{children:(0,U.jsx)(me,{children:y})}),(0,U.jsx)(pe,{className:`flex flex-col`,children:C()}),w?(0,U.jsx)(de,{children:w}):null]})]})},Wa=e=>{let{t}=T(),n=M(),{value:r,onChange:i,onBlur:a,readOnly:o,disabled:s,definition:c,field:l,inputId:u,labelId:d,describedBy:f}=e,[p,m]=(0,H.useState)(!1),[h,g]=(0,H.useState)(!1),_=(0,H.useRef)(null),v=c.type===`relation`?c.settings:void 0,y=v?n.models.get(v.target):void 0,b=v?.cardinality===`many`,x=N(r).filter(e=>typeof e==`string`),S=wa(y,x,n.locale);if(!v||!y)return(0,U.jsx)(`p`,{role:`note`,"aria-labelledby":d,className:`text-meta text-muted-foreground`,children:t(`content.relation.targetUnreadable`)});let C=!o&&!s,w=e=>{i(b?e.length>0?e:null:e[0]??null),a()},ee=e=>w(b?x.includes(e)?x:[...x,e]:[e]),te=!b||v.max===void 0||x.length<v.max,ne=e=>{let n=S.byId.get(e);return n?Kt(y,n.data)??`${t(`content.untitled`)} · ${Ht(e)}`:void 0};return(0,U.jsxs)(`div`,{role:`group`,"aria-labelledby":d,"aria-describedby":f,className:`space-y-2`,children:[x.length>0?(0,U.jsx)(`ul`,{ref:_,className:`space-y-2`,children:x.map((e,n)=>{let r=ne(e);return(0,U.jsxs)(`li`,{className:`flex items-center gap-3 rounded-lg border bg-card p-2 pl-3`,children:[(0,U.jsx)(ye,{icon:xt}),(0,U.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[r===void 0?S.isLoading?(0,U.jsx)(Qe,{className:`h-4 w-40`}):(0,U.jsx)(`span`,{className:`block truncate text-sm text-destructive`,children:t(`content.relation.missingEntry`,{id:Ht(e)})}):(0,U.jsx)(`span`,{className:`block truncate text-sm font-semibold`,children:r}),(0,U.jsx)(`span`,{className:`block text-meta text-muted-foreground`,children:y.label})]}),C&&b?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(O,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":t(`content.items.moveUp`,{item:r??e,position:n+1}),disabled:n===0,onClick:()=>w(F(x,n,n-1)),children:(0,U.jsx)(Ve,{"aria-hidden":`true`})}),(0,U.jsx)(O,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":t(`content.items.moveDown`,{item:r??e,position:n+1}),disabled:n===x.length-1,onClick:()=>w(F(x,n,n+1)),children:(0,U.jsx)(ze,{"aria-hidden":`true`})})]}):null,C?(0,U.jsx)(O,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":t(`content.relation.remove`,{item:r??e}),onClick:()=>w(x.filter(t=>t!==e)),children:(0,U.jsx)(ce,{"aria-hidden":`true`})}):null]},e)})}):(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`content.relation.empty`)}),C?(0,U.jsx)(Ua,{open:p,onOpenChange:m,trigger:te||p?(0,U.jsxs)(O,{id:u,type:`button`,variant:`outline`,size:`sm`,children:[(0,U.jsx)(kt,{"aria-hidden":`true`}),b?t(`content.relation.add`,{model:y.label}):x.length>0?t(`content.relation.change`):t(`content.relation.choose`,{model:y.label})]}):null,target:y,multiple:b,selected:x,exclude:n.entryId&&y.id===n.model.id?[n.entryId]:[],locale:n.locale,full:!te,canCreate:l.options.allowInlineCreate===!0,onPick:ee,onUnpick:e=>w(x.filter(t=>t!==e)),onCreate:()=>g(!0),onFocusFallback:()=>_.current?.querySelector(`li:last-child button:last-child`)?.focus()}):null,h?(0,U.jsx)(Pa,{target:y,onClose:()=>g(!1),onCreated:e=>{g(!1),ee(e)}}):null]})},Ga=Ye(`inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none hover:bg-muted hover:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,{variants:{variant:{default:`bg-transparent`,outline:`border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground`},size:{default:`h-9 min-w-9 px-2`,sm:`h-8 min-w-8 px-1.5`,lg:`h-10 min-w-10 px-2.5`}},defaultVariants:{variant:`default`,size:`default`}}),Ka=H.createContext({size:`default`,variant:`default`});function qa({className:e,variant:t,size:n,children:r,...i}){return(0,U.jsx)(Qn,{"data-slot":`toggle-group`,"data-variant":t,"data-size":n,className:A(`group/toggle-group flex w-fit items-center rounded-md data-[variant=outline]:shadow-xs`,e),...i,children:(0,U.jsx)(Ka.Provider,{value:{variant:t,size:n},children:r})})}function Ja({className:e,children:t,variant:n,size:r,...i}){let a=H.useContext(Ka);return(0,U.jsx)(sr,{"data-slot":`toggle-group-item`,"data-variant":a.variant||n,"data-size":a.size||r,className:A(Ga({variant:a.variant||n,size:a.size||r}),`min-w-0 flex-1 shrink-0 rounded-none shadow-none first:rounded-l-md last:rounded-r-md focus:z-10 focus-visible:z-10 data-[variant=outline]:border-l-0 data-[variant=outline]:first:border-l`,e),...i,children:t})}var Ya=e=>{let{labelId:t,describedBy:n,value:r,onChange:i,onBlur:a,readOnly:o,disabled:s,validation:c}=e;return(0,U.jsx)(qa,{type:`single`,variant:`outline`,"aria-labelledby":t,"aria-describedby":n,"aria-invalid":c.invalid||void 0,value:Vr(r),disabled:s||o,onValueChange:t=>i(Br(e,t)),onBlur:a,className:`flex-wrap`,children:J(e).map(e=>(0,U.jsx)(Ja,{value:e.value,className:`px-3`,children:e.label},e.value))})},Xa=e=>{let{t}=T(),{value:n,onChange:r,readOnly:i,disabled:a,field:o}=e,s=N(n),c=J(e),l=c.filter(e=>s.includes(e.value)).map(e=>e.label).join(`, `);return(0,U.jsxs)(Ot,{children:[(0,U.jsx)(Et,{asChild:!0,disabled:a||i,children:(0,U.jsxs)(O,{variant:`outline`,...B(e),className:`w-full justify-between font-normal`,children:[(0,U.jsx)(`span`,{className:`truncate`,children:l||z(e,`placeholder`)||t(`content.fields.choose`)}),(0,U.jsx)(rt,{"aria-hidden":`true`,className:`opacity-50`})]})}),(0,U.jsx)(Dt,{align:`start`,className:`w-(--radix-dropdown-menu-trigger-width)`,"aria-label":o.label,children:c.map(e=>(0,U.jsx)(wt,{checked:s.includes(e.value),onSelect:e=>e.preventDefault(),onCheckedChange:t=>r(t?c.map(e=>e.value).filter(t=>t===e.value||s.includes(t)):s.filter(t=>t!==e.value)),children:e.label},e.value))})]})},Za=e=>{let{t}=T(),{value:n,onChange:r,onBlur:i,readOnly:a,disabled:o,field:s}=e;if(Hr(e))return(0,U.jsx)(Xa,{...e});let c=Vr(n);return(0,U.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,U.jsxs)(it,{value:c,disabled:o||a,onValueChange:t=>r(Br(e,t)),children:[(0,U.jsx)(et,{...B(e),className:`w-full`,onBlur:i,children:(0,U.jsx)($e,{placeholder:z(e,`placeholder`)??t(`content.fields.choose`)})}),(0,U.jsx)(tt,{children:J(e).map(e=>(0,U.jsx)(nt,{value:e.value,children:e.label},e.value))})]}),c&&!s.required&&!a?(0,U.jsx)(Ji,{label:s.label,disabled:o,onClear:()=>r(null)}):null]})},Qa=({counter:e})=>{let{t}=T();return(0,U.jsx)(`p`,{className:A(`text-meta tabular-nums`,e.over?`text-warning`:`text-muted-foreground`),children:t(e.over?`seo.field.counterOver`:`seo.field.counter`,{count:e.count,max:e.max})})},$a={[l.title]:70,[l.description]:160},eo=(e,t)=>{let n=$a[e];if(n===void 0)return null;let r=typeof t==`string`?[...t].length:0;return r>=n-10?{count:r,max:n,over:r>n}:null},to=new Map(ne().fields.map(e=>[e.id,e.type])),no=e=>{let t={};for(let[n,r]of Object.entries(l)){let i=e.fields.find(e=>e.id===r&&!e.deprecated);i&&i.type===to.get(r)&&(t[n]=i.apiKey)}return t},ro=(e,t)=>{let n=e.find(e=>e.isDefault)?.code,r=t??n,i=[r,...e.find(e=>e.code===r)?.fallbacks??[],n].filter(t=>t!==void 0&&e.some(e=>e.code===t));return i.filter((e,t)=>i.indexOf(e)===t)},io=({value:e,component:t,defaults:n,localeChain:r,fallbackTitle:i})=>{let a=no(t),o=Ee(n,r),s=_n(e,{defaults:o,image:null,fallbackTitle:typeof i==`string`?i:null,keys:a}),c=e=>{let t=a[e]===void 0?void 0:s[a[e]];return typeof t==`string`&&t.trim()!==``?t:null};return{title:a.title===void 0?null:c(`title`),description:c(`description`),siteName:o.siteName??null}},ao=(e,t)=>{let{model:n,locale:r}=M(),i=Te(),a=Zt().data,o=se().data?.site.name??``,s=ee(n)?.apiKey,c=n.fields.find(e=>e.type===`slug`&&!e.deprecated)?.apiKey,l=j(e=>s?e.values[s]:void 0),u=j(e=>c?e.values[c]:void 0);return(0,H.useMemo)(()=>{let n=io({value:t,component:e,defaults:i,localeChain:ro(a??[],r),fallbackTitle:l}),s=n.siteName??o,c=typeof u==`string`&&u!==``?`${s} › ${u}`:s;return{...n,urlLine:c}},[t,e,i,a,r,l,o,u])},oo=({preview:e,noindex:t})=>{let{t:n}=T(),r=(0,H.useId)();return(0,U.jsxs)(`section`,{"aria-labelledby":r,className:`space-y-2 rounded-lg border bg-muted/40 p-4`,children:[(0,U.jsx)(`h4`,{id:r,className:`text-xs font-semibold tracking-wide text-muted-foreground uppercase`,children:n(`seo.field.preview`)}),(0,U.jsxs)(`div`,{className:`min-w-0 space-y-0.5`,children:[(0,U.jsx)(`p`,{className:`truncate text-meta text-muted-foreground`,children:e.urlLine}),(0,U.jsx)(`p`,{className:`line-clamp-2 text-base font-semibold break-words text-link`,children:e.title??n(`seo.field.noTitle`)}),e.description?(0,U.jsx)(`p`,{className:`line-clamp-3 text-sm break-words text-muted-foreground`,children:e.description}):null]}),t?(0,U.jsx)(`p`,{className:`text-meta text-warning`,children:n(`seo.field.noindex`)}):null]})},so=(e,t)=>{let n=eo(e.id,t);return n?(0,U.jsx)(Qa,{counter:n}):null},co=({component:e,value:t,onChange:n,path:r})=>{let i=(0,H.useMemo)(()=>L(t)?t:X(e,!1),[t,e]),a=(0,H.useCallback)(e=>n(e),[n]),o=ao(e,t),s=no(e).noindex;return(0,U.jsxs)(`div`,{className:`space-y-4 rounded-xl border bg-card p-5`,children:[(0,U.jsx)(Z,{component:e,item:i,onItemChange:a,path:r,renderFieldFooter:so}),(0,U.jsx)(oo,{preview:o,noindex:s!==void 0&&i[s]===!0})]})},lo=e=>{let{components:t}=M(),{definition:n}=e,r=n.type===`component`&&s(n)?t.get(n.settings.component):void 0;return r?(0,U.jsx)(co,{...e,component:r}):(0,U.jsx)(qi,{...e})},uo=e=>{let t=Yt(),n=e.definition.type===`slug`?e.definition.settings.sourceFieldId:void 0,r=t?.definition.fields.find(e=>e.id===n);if(!r)return;let i=t?.values[r.apiKey];return typeof i==`string`?i:``},fo=e=>{let{t}=T(),{value:n,onChange:r,onBlur:i,readOnly:a,disabled:o}=e,s=uo(e),c=R(n),[l,u]=(0,H.useState)(()=>s!==void 0&&(c===``||c===V(s))),d=(0,H.useRef)(s);return(0,H.useEffect)(()=>{if(s!==void 0&&s!==d.current&&(d.current=s,l&&!a)){let e=V(s);r(e===``?null:e)}},[s,l,a,r]),(0,U.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,U.jsx)(k,{...B(e),value:c,placeholder:z(e,`placeholder`),readOnly:a,disabled:o,spellCheck:!1,className:`font-mono text-sm`,onChange:e=>{u(!1),r(e.target.value===``?null:e.target.value)},onBlur:()=>{c&&V(c)!==c&&r(V(c)||null),i()}}),s!==void 0&&!a?(0,U.jsx)(O,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-pressed":l,"aria-label":t(l?`content.fields.slug.unlink`:`content.fields.slug.link`),title:t(l?`content.fields.slug.unlink`:`content.fields.slug.link`),disabled:o,onClick:()=>{if(!l){let e=V(s);r(e===``?null:e)}u(!l)},children:l?(0,U.jsx)(Ge,{"aria-hidden":`true`}):(0,U.jsx)(We,{"aria-hidden":`true`})}):null]})},po=4,mo=e=>{let{t}=T(),{inputId:n,value:r,onChange:i,onBlur:a,readOnly:o,disabled:s,definition:c}=e,l=R(r),u=`maxLength`in c.settings?c.settings.maxLength:void 0,d=`${n}-count`;return(0,U.jsxs)(`div`,{className:`space-y-1`,children:[(0,U.jsx)(pn,{...B(e,u?d:void 0),rows:dn(e,`rows`)??po,value:l,placeholder:z(e,`placeholder`),readOnly:o,disabled:s,onChange:e=>i(e.target.value===``?null:e.target.value),onBlur:a}),u?(0,U.jsx)(`p`,{id:d,className:`text-right text-meta text-muted-foreground tabular-nums`,children:t(`content.fields.characterCount`,{count:l.length,max:u})}):null]})},ho={email:`email`,url:`url`},go=e=>{let{value:t,onChange:n,onBlur:r,readOnly:i,disabled:a,definition:o}=e,s=`maxLength`in o.settings?o.settings.maxLength:void 0;return(0,U.jsx)(k,{...B(e),type:ho[o.type]??`text`,value:R(t),placeholder:z(e,`placeholder`),maxLength:s,readOnly:i,disabled:a,spellCheck:o.type===`string`,onChange:e=>n(e.target.value===``?null:e.target.value),onBlur:r})},_o=60,vo=e=>e,yo=e=>{let{t}=T(),{inputId:n,value:r,onChange:i,onBlur:a,readOnly:o,disabled:s,field:c}=e,l=(0,H.useRef)(null),u=Yi({inputRef:l,value:r,onChange:i,onBlur:a,parse:vo}),d=R(r),f=`${n}-parse`;return(0,U.jsxs)(`div`,{className:`space-y-1`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,U.jsx)(k,{...B(e,u.incomplete?f:void 0),"aria-invalid":e.validation.invalid||u.incomplete||void 0,ref:l,type:`time`,value:d,step:(dn(e,`stepMinutes`)??1)*_o,readOnly:o,disabled:s,className:`min-w-0 flex-1`,onChange:u.onChange,onKeyUp:u.onKeyUp,onBlur:u.onBlur}),(d||u.incomplete)&&!o?(0,U.jsx)(Ji,{label:c.label,disabled:s,onClear:u.clear}):null]}),(0,U.jsx)($,{id:f,message:u.incomplete?t(`content.fields.incomplete.time`):void 0})]})},bo=e=>{let{value:t,onChange:n,onBlur:r,readOnly:i,disabled:a}=e;return(0,U.jsx)(Mt,{...B(e),checked:t===!0,disabled:a||i,onCheckedChange:e=>n(e),onBlur:r})},xo=(0,H.lazy)(()=>Lt(()=>import(`./RichTextField-CVHRIbnu.js`).then(e=>({default:e.RichTextField})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]),import.meta.url)),So=(0,H.lazy)(()=>Lt(()=>import(`./CodeEditor-CBCR73Wd.js`).then(e=>({default:e.CodeEditor})),__vite__mapDeps([31,1,2,4,6,8,3,9,10,32,33,34,35,36,37,30]),import.meta.url)),Co={textInput:{component:go,labelling:`input`},textarea:{component:mo,labelling:`input`},color:{component:Yr,labelling:`input`},richText:{component:xo,labelling:`group`},numberInput:{component:xa,labelling:`input`},toggle:{component:bo,labelling:`input`},checkbox:{component:Wr,labelling:`input`},segmented:{component:Ya,labelling:`group`},select:{component:Za,labelling:`input`},radio:{component:Sa,labelling:`group`},checkboxGroup:{component:Ur,labelling:`group`},datePicker:{component:Zi,labelling:`input`},dateTimePicker:{component:Qi,labelling:`input`},timePicker:{component:yo,labelling:`input`},slugInput:{component:fo,labelling:`input`},jsonEditor:{component:fa,labelling:`input`},codeEditor:{component:So,labelling:`group`},mediaPicker:{component:ha,labelling:`group`},relationPicker:{component:Wa,labelling:`group`},componentEditor:{component:qi,labelling:`group`},dynamicZoneEditor:{component:ia,labelling:`group`},[c]:{component:lo,labelling:`group`}},wo=e=>{let t=Co[e.editor.id],n=f.get(e.editor.id)?.dataTypes.includes(e.type)??!1,r=Co[u[e.type]];if(!r)throw Error(`No built-in editor for data type ${e.type}`);return t&&n?t:r},To=(e,t)=>{let n=wo(e);if(!m(e.editor.id))return{kind:`builtIn`,editor:n,missingCustomId:void 0};let r=t.get(e.editor.id);return r&&r.dataTypes.includes(e.type)?{kind:`runtime`,definition:r,fallback:n}:{kind:`builtIn`,editor:n,missingCustomId:e.editor.id}},Eo=new Set([`component`,`dynamiczone`]),Do=(e,t,n)=>{let r=j(e=>e.issues),i=j(e=>e.revealAll||e.touched.has(n));return(0,H.useMemo)(()=>{let a=Eo.has(e.type),o=r.filter(e=>e.path===n||e.path.startsWith(`${n}/`)&&(!a||e.path===`${n}/__component`)),s=i?Er(e,t).filter(e=>!o.some(t=>t.code===e.code)):[];return[...new Set([...o,...s].map(t=>zr(t,e)))]},[e,t,n,r,i])},Oo=({field:e,owner:t,value:n,onChange:r,path:i,appearance:a=`form`})=>{let o=M(),s=j(e=>e.touch),c=Do(e,n,i),l=(0,H.useCallback)(()=>s(i),[s,i]),u=(0,H.useMemo)(()=>To(e,o.runtimeEditors),[e,o.runtimeEditors]),d=Dr(o.idPrefix,i),f=`${d}-label`,p=e.description?`${d}-description`:void 0,m=c.length>0?`${d}-errors`:void 0,h=[p,m].filter(Boolean).join(` `)||void 0,g=(0,H.useMemo)(()=>Or(e),[e]),_=(0,H.useMemo)(()=>kr(t),[t]),v=(0,H.useMemo)(()=>Mr(o),[o]),y={inputId:d,labelId:f,describedBy:h,value:n??null,onChange:r,onBlur:l,validation:{errors:c,invalid:c.length>0},readOnly:o.readOnly,disabled:o.disabled,field:g,model:_,context:v,definition:e,path:i,appearance:a},{definition:b,path:x,appearance:S,...C}=y,w=u.kind===`builtIn`?u.editor:u.fallback;return{resolved:u,builtIn:w,builtInProps:y,contractProps:C,labelling:u.kind===`runtime`?`input`:w.labelling,inputId:d,labelId:f,descriptionId:p,errorsId:m,messages:c}},ko=()=>o({queryKey:h.editorManifest,queryFn:()=>re.extensions.editors(),staleTime:1/0,meta:{silent:!0}}),Ao={editors:new Map,problems:[]},jo=(e,t=x())=>new URL(e.replace(/^\/+/,``),t).href,Mo=e=>Lt(()=>import(e),[],import.meta.url),No=async(e,t=Mo)=>{let n=new Map,r=[];for(let i of e.items){let e;try{e=await t(jo(i.path))}catch(e){Oe(e,`loading custom editor ${i.file}`),r.push({file:i.file,reason:`importFailed`,detail:String(e)});continue}let a=Object.values(e).filter(zt);a.length===0&&r.push({file:i.file,reason:`noEditor`});for(let e of a)e.contractVersion===1?n.has(e.id)?r.push({file:i.file,reason:`duplicateId`,detail:e.id}):n.set(e.id,e):r.push({file:i.file,reason:`contractVersion`,detail:e.id})}return{editors:n,problems:r}},Po=()=>{let e=ko(),t=o({queryKey:[`extensions`,`editors`,`modules`,e.data??null],queryFn:()=>No(e.data??{items:[]}),enabled:e.data!==void 0,staleTime:1/0,gcTime:1/0,meta:{silent:!0}});return{...t.data??Ao,isLoading:e.isPending||e.data!==void 0&&t.isPending}},Fo=e=>e.fields.filter(e=>!e.deprecated),Io=e=>{if(!r(e))return[];let t=`/api/content/${S(e)}`,n=`/api/admin/content/${e.apiKey}`,i=e.kind===`collection`;return[{method:`GET`,path:t,scope:`delivery`},...i?[{method:`GET`,path:`${t}/{id}`,scope:`delivery`}]:[],{method:`GET`,path:n,scope:`admin`},{method:`POST`,path:n,scope:`admin`},{method:`GET`,path:`${n}/{id}`,scope:`admin`},{method:`PUT`,path:`${n}/{id}`,scope:`admin`},{method:`DELETE`,path:`${n}/{id}`,scope:`admin`},{method:`POST`,path:`${n}/{id}/publish`,scope:`admin`},{method:`POST`,path:`${n}/{id}/unpublish`,scope:`admin`}]},Lo={format:`shapio-richtext`,version:1,doc:{type:`doc`,content:[]}},Ro={id:`<uuid>`,url:`<url>`,mimeType:`<mime type>`,alt:``},zo=2,Bo=(e,t,n)=>{let r=(e,t)=>e?[t]:t;switch(e.type){case`number`:case`integer`:return 0;case`boolean`:return!1;case`json`:return{};case`richtext`:return Lo;case`media`:return r(e.settings.multiple,Ro);case`enum`:return r(e.settings.multiple,e.settings.values[0]?.value??``);case`relation`:return r(e.settings.cardinality===`many`,`<entry id>`);case`component`:{let i=t.get(e.settings.component);return r(e.settings.repeatable,i?Vo(i,t,n+1):{})}case`dynamiczone`:return e.settings.components.slice(0,1).flatMap(e=>{let r=t.get(e);return r?[{__component:r.apiKey,...Vo(r,t,n+1)}]:[]});default:return`<${e.type}>`}},Vo=(e,t,n)=>n>zo?{}:Object.fromEntries(Fo(e).map(e=>[e.apiKey,Bo(e,t,n)])),Ho={id:`<uuid>`,locale:`<locale>`,createdAt:`<datetime>`,updatedAt:`<datetime>`,publishedAt:`<datetime>`},Uo=(e,t)=>{let n={...Ho,...Vo(e,t,0)};if(!r(e))return JSON.stringify(Vo(e,t,0),null,2);let i={locale:`<locale>`,snapshot:0},a=e.kind===`collection`?{data:[n],meta:{...i,pagination:{page:1,pageSize:25,pageCount:1,total:1}}}:{data:n,meta:i};return JSON.stringify(a,null,2)},Wo=(e,t)=>e?`[${t}!]`:t,Go=(e,t,n)=>{let r=e=>{let t=n.get(e);return t?b(t.apiKey):`JSON`};switch(t.type){case`number`:return`Float`;case`integer`:return`Int53`;case`boolean`:return`Boolean`;case`json`:return`JSON`;case`richtext`:return`RichText`;case`media`:return Wo(t.settings.multiple,`Media`);case`enum`:return Wo(t.settings.multiple,`${b(e.apiKey)}${b(t.apiKey)}Enum`);case`relation`:return Wo(t.settings.cardinality===`many`,r(t.settings.target));case`component`:return Wo(t.settings.repeatable,r(t.settings.component));case`dynamiczone`:return`[${b(e.apiKey)}${b(t.apiKey)}Zone!]`;default:return`String`}},Ko=`locale: String, fallback: Boolean = true, publicationState: PublicationState = PUBLISHED, snapshot: Int`,qo=(e,t)=>{let n=b(e.apiKey),i=r(e)?[`id: ID!`,`locale: String!`,`createdAt: String!`,`updatedAt: String!`,`publishedAt: String`,`localizations: [${n}!]`]:[],a=Fo(e).map(n=>`${n.apiKey}: ${Go(e,n,t)}`),o=`type ${n} {\n${[...i,...a].map(e=>` ${e}`).join(`
4
- `)}\n}`;if(!r(e))return`${o}\n`;let s=e.kind===`collection`?[`${e.apiKey}(id: ID!, ${Ko}): ${n}`,`${C(e)}(filter: ${n}Filter, sort: [${n}Sort!], search: String, page: Int, pageSize: Int, ${Ko}): ${n}Connection`]:[`${e.apiKey}(${Ko}): ${n}`],c=te.map(e=>`${e}${n}`);return`${o}\n\ntype Query {\n${s.map(e=>` ${e}`).join(`
5
- `)}\n}\n\n# Mutations: ${c.join(`, `)}\n`};export{Pr as A,dr as B,Y as C,$r as D,ii as E,mr as F,pr as I,lr as L,vr as M,_r as N,Fr as O,hr as P,fr as R,gi as S,fi as T,Cn as V,Di as _,Oo as a,_i as b,Na as c,Aa as d,Da as f,$i as g,wa as h,Po as i,Dr as j,zr as k,Ma as l,Ta as m,Io as n,Ra as o,Ea as p,Uo as r,ja as s,qo as t,ka as u,xi as v,X as w,pi as x,vi as y,ur as z};
6
- //# sourceMappingURL=shapes-B5twqZcp.js.map