ghost 6.62.0 → 6.63.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (439) hide show
  1. package/components/tryghost-adapter-base-jobs-0.0.0.tgz +0 -0
  2. package/components/tryghost-adapter-base-scheduling-0.2.3.tgz +0 -0
  3. package/components/tryghost-adapter-base-sso-0.1.3.tgz +0 -0
  4. package/components/tryghost-admin-api-schema-0.0.0.tgz +0 -0
  5. package/components/tryghost-checkout-0.0.0.tgz +0 -0
  6. package/components/tryghost-i18n-0.0.0.tgz +0 -0
  7. package/components/tryghost-kg-card-factory-5.2.4.tgz +0 -0
  8. package/components/tryghost-kg-clean-basic-html-4.3.4.tgz +0 -0
  9. package/components/tryghost-kg-converters-1.2.5.tgz +0 -0
  10. package/components/tryghost-kg-default-cards-10.3.5.tgz +0 -0
  11. package/components/tryghost-kg-default-nodes-2.2.1.tgz +0 -0
  12. package/components/tryghost-kg-default-transforms-1.3.4.tgz +0 -0
  13. package/components/tryghost-kg-html-to-lexical-1.4.0.tgz +0 -0
  14. package/components/tryghost-kg-lexical-html-renderer-1.5.0.tgz +0 -0
  15. package/components/tryghost-kg-markdown-html-renderer-7.2.4.tgz +0 -0
  16. package/components/tryghost-kg-utils-1.1.4.tgz +0 -0
  17. package/components/tryghost-limit-service-0.0.0.tgz +0 -0
  18. package/components/tryghost-metafield-types-0.0.0.tgz +0 -0
  19. package/content/themes/source/package.json +2 -2
  20. package/content/themes/source/partials/post-card.hbs +1 -1
  21. package/core/boot.js +7 -5
  22. package/core/built/admin/assets/{about-Dyae_UT6.js → about-C1C3s5-g.js} +1 -1
  23. package/core/built/admin/assets/accordion-CxGsDKwa.js +1 -0
  24. package/core/built/admin/assets/{account-migration-CESa0mnX.js → account-migration-CbUhW6gk.js} +1 -1
  25. package/core/built/admin/assets/activitypub/{account-migration-By69CgCp.js → account-migration-KA6Jjf9L.js} +7 -7
  26. package/core/built/admin/assets/activitypub/activitypub.js +3 -3
  27. package/core/built/admin/assets/activitypub/{avatar-DLPL3Abs.js → avatar-DVJF5bxP.js} +2 -2
  28. package/core/built/admin/assets/activitypub/{avatar-flipboard-C9iDY-QV.js → avatar-flipboard-csQaNeYK.js} +2 -2
  29. package/core/built/admin/assets/activitypub/{bluesky-sharing-BJcPMrDd.js → bluesky-sharing-C7nTDMvw.js} +9 -9
  30. package/core/built/admin/assets/activitypub/{content-formatters-3rTHg3mp.js → content-formatters-CLcjaBwV.js} +4 -4
  31. package/core/built/admin/assets/activitypub/{copy-DIAOQoCZ.js → copy-DcOh8kXw.js} +2 -2
  32. package/core/built/admin/assets/activitypub/{domain-DUR4xSkV.js → domain-fZ-X8i4-.js} +9 -9
  33. package/core/built/admin/assets/activitypub/{edit-profile-BqtfzxCp.js → edit-profile-BqMLQV88.js} +6 -6
  34. package/core/built/admin/assets/activitypub/{explore-BxuJd-J4.js → explore-B4yPoP8E.js} +10 -10
  35. package/core/built/admin/assets/activitypub/{feed-BM1TcksA.js → feed-BRC_mvAe.js} +9 -9
  36. package/core/built/admin/assets/activitypub/{field-Dn7HHx2-.js → field-COacNgOt.js} +3 -3
  37. package/core/built/admin/assets/activitypub/{hash-Bm3WxYN4.js → hash-C7u-irQQ.js} +2 -2
  38. package/core/built/admin/assets/activitypub/{inbox-CCjkuow2.js → inbox-BW-yvUoN.js} +10 -10
  39. package/core/built/admin/assets/activitypub/{inbox-d8oJRTf4.js → inbox-CbTTdDQ3.js} +2 -2
  40. package/core/built/admin/assets/activitypub/{label-1AA_s9Fa.js → label-kPMmYI7l.js} +3 -3
  41. package/core/built/admin/assets/activitypub/layout-BL4_jtuV.js +1 -0
  42. package/core/built/admin/assets/activitypub/{moderation-CnmxEB8w.js → moderation-CuidJzc0.js} +10 -10
  43. package/core/built/admin/assets/activitypub/{note-ZKc_Bnba.js → note-CAMRRSqD.js} +7 -7
  44. package/core/built/admin/assets/activitypub/{notifications-CB2tJZau.js → notifications-BmNlXGgp.js} +9 -9
  45. package/core/built/admin/assets/activitypub/{onboarding-BsJ9E5qf.js → onboarding-Bqg7fh_L.js} +2 -2
  46. package/core/built/admin/assets/activitypub/{onboarding-CSUJJIlh.js → onboarding-Dmun9jr_.js} +2 -2
  47. package/core/built/admin/assets/activitypub/{preferences-0-JZnUkI.js → preferences--oH19wf9.js} +11 -11
  48. package/core/built/admin/assets/activitypub/{profile-C35cFIhM.js → profile-DH_tQx2D.js} +14 -14
  49. package/core/built/admin/assets/activitypub/{reply-DYK5vVqb.js → reply-Cap9PxSH.js} +2 -2
  50. package/core/built/admin/assets/activitypub/{routes-BD4vscyc.js → routes-DdyY9uFF.js} +30 -30
  51. package/core/built/admin/assets/activitypub/{separator-BbQqTm-p.js → separator-CAxxu8VV.js} +3 -3
  52. package/core/built/admin/assets/activitypub/{settings-BsMROdqh.js → settings-B6EEcVkW.js} +6 -6
  53. package/core/built/admin/assets/activitypub/{site-O0RL9YCN.js → site-BYps63oh.js} +2 -2
  54. package/core/built/admin/assets/activitypub/{step-1-BMSx7c_X.js → step-1-CKjR2KAm.js} +6 -6
  55. package/core/built/admin/assets/activitypub/{step-2-DtPQzlTH.js → step-2-B6PKfOUQ.js} +6 -6
  56. package/core/built/admin/assets/activitypub/{step-3-CLlOZTyt.js → step-3-C-qBbcUo.js} +11 -11
  57. package/core/built/admin/assets/activitypub/{tabs-Dxk-b9M-.js → tabs-DLhZtVde.js} +6 -6
  58. package/core/built/admin/assets/activitypub/{topic-filter-5yZH6tId.js → topic-filter-DsUOuu0k.js} +3 -3
  59. package/core/built/admin/assets/activitypub/{use-activity-pub-queries-CV50qe03.js → use-activity-pub-queries-CX9snsLs.js} +3 -3
  60. package/core/built/admin/assets/activitypub/{use-navigate-with-base-path-Bmk5h4lW.js → use-navigate-with-base-path-DsJTGDSS.js} +988 -959
  61. package/core/built/admin/assets/activitypub/{use-reply-chain-data-Cbvzgjzd.js → use-reply-chain-data-AJi9zkzm.js} +5 -5
  62. package/core/built/admin/assets/activitypub/{users-BjcoP_HC.js → users-inweyKL5.js} +186 -160
  63. package/core/built/admin/assets/activitypub/{x-DbQZOLiI.js → x-DR8AT3-4.js} +2 -2
  64. package/core/built/admin/assets/{add-integration-modal-BlF6rs_f.js → add-integration-modal-BT_onDJy.js} +1 -1
  65. package/core/built/admin/assets/{add-newsletter-modal-CglVQqah.js → add-newsletter-modal-Cx1kQpiY.js} +1 -1
  66. package/core/built/admin/assets/{add-recommendation-modal-wz7BsuaG.js → add-recommendation-modal-B5nvAhvr.js} +1 -1
  67. package/core/built/admin/assets/{analytics-C4HE1gBg.js → analytics-DjoJWPI7.js} +1 -1
  68. package/core/built/admin/assets/{announcement-bar-modal-Ci4zz8jO.js → announcement-bar-modal-Dwd0EGFP.js} +1 -1
  69. package/core/built/admin/assets/{api-keys-3-0vJC3Y.js → api-keys-BGPzLHzA.js} +1 -1
  70. package/core/built/admin/assets/{api-keys-Ck-Yteiv.js → api-keys-BoeacM-s.js} +1 -1
  71. package/core/built/admin/assets/{audience-CtbA54Sn.js → audience-ceV3XVHq.js} +1 -1
  72. package/core/built/admin/assets/automated-emails-BLesE41L.js +1 -0
  73. package/core/built/admin/assets/{automations-sAcJ1334.js → automations-BN4u3GR8.js} +1 -1
  74. package/core/built/admin/assets/automations-C-ZTUwW3.js +1 -0
  75. package/core/built/admin/assets/{bluesky-sharing-BEtJ_gL_.js → bluesky-sharing-vzh-oPXL.js} +1 -1
  76. package/core/built/admin/assets/{breadcrumb-zUrZrBtW.js → breadcrumb-CaLk2b7D.js} +1 -1
  77. package/core/built/admin/assets/{button-eNMKQWXr.js → button-Dvcv1QSR.js} +1 -1
  78. package/core/built/admin/assets/calendar-Bl9RLcZX.js +1 -0
  79. package/core/built/admin/assets/{chart-helpers-CfBKt0vT.js → chart-helpers-FHywU0pj.js} +1 -1
  80. package/core/built/admin/assets/{checkbox-CgOn_tKW.js → checkbox-BtayFtjg.js} +1 -1
  81. package/core/built/admin/assets/chunk.254.035b85ec456ebbd7336b.js +440 -0
  82. package/core/built/admin/assets/{chunk.524.a697dee88db67fdf6021.js → chunk.524.e6975095fccdf22d90f8.js} +5 -5
  83. package/core/built/admin/assets/{chunk.582.5ed5d124cfca9c259b9c.js → chunk.582.98b485f9b2802f540897.js} +6 -6
  84. package/core/built/admin/assets/{chunk.492.f24d855d7e3f3aad261c.js → chunk.901.4ccc639821020230bcca.js} +9949 -7921
  85. package/core/built/admin/assets/{code-editor-view-K2wI-I5f.js → code-editor-view-C3ZfoF1X.js} +1 -1
  86. package/core/built/admin/assets/{code-editor-view-BYNoAoNV.js → code-editor-view-CAyRWy1s.js} +1 -1
  87. package/core/built/admin/assets/{color-picker-Ddw80xX6.js → color-picker-G4kGR7rp.js} +1 -1
  88. package/core/built/admin/assets/{color-picker-field-D9nUhvA7.js → color-picker-field-DQFVTNnT.js} +1 -1
  89. package/core/built/admin/assets/{combobox-w9j8PPQT.js → combobox-BnYzgEB4.js} +1 -1
  90. package/core/built/admin/assets/{command-BfpHORBv.js → command-C_vyTikI.js} +1 -1
  91. package/core/built/admin/assets/comments-aBrxfnZf.js +1 -0
  92. package/core/built/admin/assets/{config-DOMQDZGZ.js → config-kSHvwdTG.js} +1 -1
  93. package/core/built/admin/assets/{confirmation-context-CBM8G0Vj.js → confirmation-context-DwXX_Y5h.js} +1 -1
  94. package/core/built/admin/assets/{content-api-modal-TXRz3U7S.js → content-api-modal-D2G0nJP6.js} +1 -1
  95. package/core/built/admin/assets/{context-menu-_QMdd3kp.js → context-menu-DOVB6yaz.js} +1 -1
  96. package/core/built/admin/assets/{copy-field-6N01S07E.js → copy-field-DCJwh9qf.js} +1 -1
  97. package/core/built/admin/assets/{create-ghost-browse-value-source-qIBymvvf.js → create-ghost-browse-value-source-5C53jJaX.js} +1 -1
  98. package/core/built/admin/assets/custom-field-type-option-BAuW0F-E.js +1 -0
  99. package/core/built/admin/assets/{custom-integration-modal-DmNquxUV.js → custom-integration-modal-AbJGVyKc.js} +1 -1
  100. package/core/built/admin/assets/{date-range-select-uvz_DtPh.js → date-range-select-BY3K-ukj.js} +1 -1
  101. package/core/built/admin/assets/design-and-theme-modal-BvEy4_pC.js +2 -0
  102. package/core/built/admin/assets/{dirty-confirm-dialog-BZ1iytEd.js → dirty-confirm-dialog-DVPuGz3U.js} +1 -1
  103. package/core/built/admin/assets/{disabled-sources-indicator-DMRrxsiJ.js → disabled-sources-indicator-Cy7Zp4c8.js} +1 -1
  104. package/core/built/admin/assets/{domain-BNYrt0aD.js → domain-Dl61QGuk.js} +1 -1
  105. package/core/built/admin/assets/{dropzone-D7nFdAe5.js → dropzone-Dtz5Rmjt.js} +4 -4
  106. package/core/built/admin/assets/edit-profile-DNJSMDwm.js +1 -0
  107. package/core/built/admin/assets/editor-DbAen9zf.js +8 -0
  108. package/core/built/admin/assets/editor-screen-BFWThIai.js +26 -0
  109. package/core/built/admin/assets/email-sending-status-context-CWDOD1FN.js +1 -0
  110. package/core/built/admin/assets/email-sending-status-provider-DCPkDICt.js +1 -0
  111. package/core/built/admin/assets/emails-vFMk4yYl.js +1 -0
  112. package/core/built/admin/assets/{embed-signup-form-modal-Ds6mPEi5.js → embed-signup-form-modal-DGqsORxS.js} +1 -1
  113. package/core/built/admin/assets/{explore-UY10Egsp.js → explore-nnRr1Fja.js} +1 -1
  114. package/core/built/admin/assets/feature-flag-overrides-context-DQjdJFAk.js +1 -0
  115. package/core/built/admin/assets/{feature-image-placeholder-D1iF_8bc.js → feature-image-placeholder-BrIHmPs8.js} +1 -1
  116. package/core/built/admin/assets/{feed-81C8mJWR.js → feed-BNUcNu-W.js} +1 -1
  117. package/core/built/admin/assets/feedback-DJ4Zb9rZ.js +1 -0
  118. package/core/built/admin/assets/{field-Dihp5p18.js → field-C93_Mg6j.js} +1 -1
  119. package/core/built/admin/assets/filter-sources-CGJb4C5r.js +1 -0
  120. package/core/built/admin/assets/{filters-DirqNXjH.js → filters--kKP-EC8.js} +1 -1
  121. package/core/built/admin/assets/filters-DxA_a4FP.js +1 -0
  122. package/core/built/admin/assets/{first-promoter-modal-CT6MxYZb.js → first-promoter-modal-BYDtrz2S.js} +1 -1
  123. package/core/built/admin/assets/focus-koenig-editor-on-bottom-click-BbSnGOtK.js +1 -0
  124. package/core/built/admin/assets/{ghost-8eabfc1ece81b03cf7b90780d31487e8.css → ghost-8fd5bb799356bbefb254210ba7e1236d.css} +1 -1
  125. package/core/built/admin/assets/{ghost-c2848508292937415f20f5a830eea59e.js → ghost-b4e8a403baba61905cd7560e30b9732d.js} +43 -27
  126. package/core/built/admin/assets/{ghost-dark-a7bebe2c561f55369dcf29f4c820f7ff.css → ghost-dark-cac0cb2d5bb78e9bd14d8d1c2768ed45.css} +1 -1
  127. package/core/built/admin/assets/{gift-link-modal-CQVAye17.js → gift-link-modal-B7u5bD4e.js} +1 -1
  128. package/core/built/admin/assets/{gift-links-DLDS7ljO.js → gift-links-CfLSnst2.js} +1 -1
  129. package/core/built/admin/assets/growth-Cd1uO9d2.js +1 -0
  130. package/core/built/admin/assets/growth-aG32xfdE.js +3 -0
  131. package/core/built/admin/assets/{history-modal-CFd1Hvx6.js → history-modal-Df8lW8h-.js} +1 -1
  132. package/core/built/admin/assets/hooks-Cy_-oZ4o.js +2 -0
  133. package/core/built/admin/assets/{html-field-CJBCLTvv.js → html-field-DA4eU7eq.js} +1 -1
  134. package/core/built/admin/assets/{images-scfkWZiK.js → images-KXmyO3Ss.js} +1 -1
  135. package/core/built/admin/assets/{inbox-Mcp4DXZN.js → inbox-gJHG7_xd.js} +6 -6
  136. package/core/built/admin/assets/index-BHHXtR5C.css +2 -0
  137. package/core/built/admin/assets/index-CgMCwsxN.js +4 -0
  138. package/core/built/admin/assets/index.es-CY6-yuw9.js +1 -0
  139. package/core/built/admin/assets/{input-group-CMhe2DvY.js → input-group-BE8rM2y1.js} +1 -1
  140. package/core/built/admin/assets/{integrations-Bjbu86Z0.js → integrations-B4kuRBFY.js} +1 -1
  141. package/core/built/admin/assets/{invite-user-modal-DfheMXs0.js → invite-user-modal-B4CuNcx4.js} +1 -1
  142. package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +2 -2
  143. package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +2 -2
  144. package/core/built/admin/assets/{koenig-lexical-DBSqAuiI.js → koenig-lexical-CGXb0F8o.js} +2 -2
  145. package/core/built/admin/assets/koenig-loader-BeM5rFPX.js +2 -0
  146. package/core/built/admin/assets/{kpi-card-DBRMfGOW.js → kpi-card-B21aToe8.js} +1 -1
  147. package/core/built/admin/assets/{kpi-card-DFafD1qq.js → kpi-card-pz6Wv4Ae.js} +1 -1
  148. package/core/built/admin/assets/{kpi-helpers-Cv8i8hns.js → kpi-helpers-Dq5jelmP.js} +1 -1
  149. package/core/built/admin/assets/{kpi-tabs-BJItvLYm.js → kpi-tabs-DEZHpKUt.js} +1 -1
  150. package/core/built/admin/assets/{label-BnSCvffu.js → label-OLCzze8N.js} +1 -1
  151. package/core/built/admin/assets/label-picker-BigOvMPV.js +1 -0
  152. package/core/built/admin/assets/{labels-CH3Kn8RV.js → labels-Dr0SgUQD.js} +1 -1
  153. package/core/built/admin/assets/layout-DUTL8SH5.js +1 -0
  154. package/core/built/admin/assets/lib-7QPTI0FS.js +1 -0
  155. package/core/built/admin/assets/link-helpers-BRAg9SCj.js +1 -0
  156. package/core/built/admin/assets/links-BDHPTlyj.js +1 -0
  157. package/core/built/admin/assets/{member-custom-fields-DDQV6QeG.js → member-custom-fields-TRTHCAz9.js} +1 -1
  158. package/core/built/admin/assets/member-detail-b6dRwc3C.js +1 -0
  159. package/core/built/admin/assets/members-Czt5lJSc.js +4 -0
  160. package/core/built/admin/assets/{moderation-AgCIEso4.js → moderation-ZWefD9uH.js} +1 -1
  161. package/core/built/admin/assets/{multi-select-combobox-BcITkUVr.js → multi-select-combobox-CT13MTo-.js} +1 -1
  162. package/core/built/admin/assets/navigation-modal-C8FEhBK5.js +1 -0
  163. package/core/built/admin/assets/newsletter-5VYW4RyJ.js +1 -0
  164. package/core/built/admin/assets/newsletter-detail-modal-ChjC0ZqH.js +1 -0
  165. package/core/built/admin/assets/{newsletter-emails-DKzwafuh.js → newsletter-emails-DZH6I-PY.js} +1 -1
  166. package/core/built/admin/assets/{newsletters-BRBb_uQC.js → newsletters-DOC9KBcX.js} +1 -1
  167. package/core/built/admin/assets/newsletters-Rq1M3GD-.js +1 -0
  168. package/core/built/admin/assets/{note-DyGHtS9a.js → note-DIV-Pojr.js} +1 -1
  169. package/core/built/admin/assets/{notifications-ZgWniKna.js → notifications-s20-H49V.js} +1 -1
  170. package/core/built/admin/assets/{offers-9J1CSiLy.js → offers--e2nGvkW.js} +1 -1
  171. package/core/built/admin/assets/{offers-container-modal-B-E8TIWr.js → offers-container-modal-BmG5M5Tv.js} +1 -1
  172. package/core/built/admin/assets/onboarding-CUuy9unR.js +1 -0
  173. package/core/built/admin/assets/{onboarding-CzIsre-d.js → onboarding-pXyct0Jm.js} +1 -1
  174. package/core/built/admin/assets/{onboarding-route-CaavZulg.js → onboarding-route-CK4pcXoR.js} +1 -1
  175. package/core/built/admin/assets/overview-CaPsciMs.js +1 -0
  176. package/core/built/admin/assets/overview-a8GfcsKX.js +1 -0
  177. package/core/built/admin/assets/{page-header-De0VzKBi.js → page-header-DM_KyoFI.js} +1 -1
  178. package/core/built/admin/assets/{pagemenu-B5KKCpbA.js → pagemenu-vgZVUVKR.js} +1 -1
  179. package/core/built/admin/assets/pages-CjDY2CBI.js +1 -0
  180. package/core/built/admin/assets/pages-route-BzKZYdV5.js +1 -0
  181. package/core/built/admin/assets/{pintura-modal-BZ2J9w3n.js → pintura-modal-DExCF1ii.js} +1 -1
  182. package/core/built/admin/assets/{portal-frame-B6Hr9wHc.js → portal-frame-Cqanidq4.js} +1 -1
  183. package/core/built/admin/assets/portal-modal-oinBgA27.js +1 -0
  184. package/core/built/admin/assets/post-analytics-C5oJ1dWV.js +1 -0
  185. package/core/built/admin/assets/post-analytics-header-OATo3X_r.js +1 -0
  186. package/core/built/admin/assets/post-analytics-provider-tOpIVGT5.js +1 -0
  187. package/core/built/admin/assets/post-helpers-C88JBa4D.js +1 -0
  188. package/core/built/admin/assets/post-share-modal-DvhC1XgV.js +1 -0
  189. package/core/built/admin/assets/post-utils-DKF4mfuo.js +1 -0
  190. package/core/built/admin/assets/posts-list-screen-o4ZjbgS3.js +2 -0
  191. package/core/built/admin/assets/posts-pCPrhQeR.js +1 -0
  192. package/core/built/admin/assets/posts-route-9F--xdIb.js +1 -0
  193. package/core/built/admin/assets/{preferences-C5YJLp74.js → preferences--vNubsqD.js} +2 -2
  194. package/core/built/admin/assets/{preview-modal-BfeFqi5y.js → preview-modal-YYbzlYdO.js} +1 -1
  195. package/core/built/admin/assets/profile-BllKV3dR.js +1 -0
  196. package/core/built/admin/assets/radio-group-DL8GI8rt.js +1 -0
  197. package/core/built/admin/assets/{referrers-CnhCMWCs.js → referrers-D8oHPmDB.js} +1 -1
  198. package/core/built/admin/assets/router-provider-BSvTXgZY.js +1 -0
  199. package/core/built/admin/assets/schemas-BoYdB6YU.js +64 -0
  200. package/core/built/admin/assets/{select-cb0t_TAJ.js → select-v5YbA3Mw.js} +1 -1
  201. package/core/built/admin/assets/settings-PEsZupw1.js +4 -0
  202. package/core/built/admin/assets/{settings-breadcrumbs-DLzbRRSt.js → settings-breadcrumbs-NwPnCTC7.js} +1 -1
  203. package/core/built/admin/assets/{settings-DZqxR0Da.js → settings-u_s1CRkr.js} +1 -1
  204. package/core/built/admin/assets/{share-modal-D2-Bz1_I.js → share-modal-SskCmVGL.js} +1 -1
  205. package/core/built/admin/assets/{slack-modal-DYDTUria.js → slack-modal-XxSJiYgo.js} +1 -1
  206. package/core/built/admin/assets/{sort-button-VVeQjjbu.js → sort-button-Cx1KtINE.js} +1 -1
  207. package/core/built/admin/assets/{source-icon-Ck5_5Kgq.js → source-icon-Bdp9Im_5.js} +1 -1
  208. package/core/built/admin/assets/stats-D9PDLS3x.js +1 -0
  209. package/core/built/admin/assets/stats-view-W2g6Jsd-.js +1 -0
  210. package/core/built/admin/assets/{step-1-CsaBjeN4.js → step-1-BQYzvBzr.js} +1 -1
  211. package/core/built/admin/assets/{step-2-D2vnxOOM.js → step-2-xES32xJV.js} +1 -1
  212. package/core/built/admin/assets/{step-3-wBoLdGEb.js → step-3-DA_XK5kW.js} +2 -2
  213. package/core/built/admin/assets/{stripe-button-CDgLz0S0.js → stripe-button-CVsLHelt.js} +1 -1
  214. package/core/built/admin/assets/{stripe-connect-modal-CSjMJetP.js → stripe-connect-modal-ClmLOMGS.js} +1 -1
  215. package/core/built/admin/assets/style-Wd9nQubI.css +1 -0
  216. package/core/built/admin/assets/{table-Do6iQ83Q.js → table-BenqVupI.js} +1 -1
  217. package/core/built/admin/assets/{tabs-D2yWLMp_.js → tabs-eBBlxPp8.js} +1 -1
  218. package/core/built/admin/assets/tag-detail-Ce8Se2qd.js +2 -0
  219. package/core/built/admin/assets/tag-picker-C3UR-uJ-.js +1 -0
  220. package/core/built/admin/assets/tags-B-kJxCs7.js +1 -0
  221. package/core/built/admin/assets/{tags-zTFiKRpb.js → tags-ChfdwJyS.js} +1 -1
  222. package/core/built/admin/assets/{testimonials-modal-CtnZBJKl.js → testimonials-modal-9Q6fT06V.js} +1 -1
  223. package/core/built/admin/assets/tier-detail-modal-CDyYdqK7.js +1 -0
  224. package/core/built/admin/assets/tiers-BCpIOGQr.js +1 -0
  225. package/core/built/admin/assets/{toggle-group-ByUJsxwD.js → toggle-group-CviIkyok.js} +1 -1
  226. package/core/built/admin/assets/{topic-filter-BgC3g5_v.js → topic-filter-I2jCBGxm.js} +1 -1
  227. package/core/built/admin/assets/{transistor-modal-Drr0SNfo.js → transistor-modal-p53u3W8y.js} +1 -1
  228. package/core/built/admin/assets/{trend-badge-6ye93YAW.js → trend-badge-CideVzQd.js} +1 -1
  229. package/core/built/admin/assets/{unsplash-modal-p6AoQoWp.js → unsplash-modal-DY8UcKcE.js} +1 -1
  230. package/core/built/admin/assets/{use-analytics-data-CWCMAESo.js → use-analytics-data-DAIGcr2f.js} +1 -1
  231. package/core/built/admin/assets/{use-check-theme-limit-error-Cw3WQHy8.js → use-check-theme-limit-error-DRUjK4YM.js} +1 -1
  232. package/core/built/admin/assets/use-filter-params-JkZhIS8L.js +1 -0
  233. package/core/built/admin/assets/{use-filterable-api-CzXcpUh8.js → use-filterable-api-BVEVMrhZ.js} +1 -1
  234. package/core/built/admin/assets/{use-growth-stats-DCVG3s9w.js → use-growth-stats-937CUj6j.js} +1 -1
  235. package/core/built/admin/assets/use-host-limits-D0Dv3tKA.js +1 -0
  236. package/core/built/admin/assets/{use-limiter-D2WRRx0H.js → use-limiter-CohWfzvK.js} +1 -1
  237. package/core/built/admin/assets/{use-navigate-with-base-path-BHPA228f.js → use-navigate-with-base-path-BkxcPj5l.js} +1 -1
  238. package/core/built/admin/assets/use-pintura-config-xgytjU35.js +1 -0
  239. package/core/built/admin/assets/{use-pintura-editor-BfN1UwzH.js → use-pintura-editor-CaV1mbfO.js} +1 -1
  240. package/core/built/admin/assets/{use-post-referrers-Czg47m8s.js → use-post-referrers-BCQI7fDg.js} +1 -1
  241. package/core/built/admin/assets/{use-reply-chain-data-ns0caK8k.js → use-reply-chain-data-CYRhoaxY.js} +1 -1
  242. package/core/built/admin/assets/{use-router-history-entry-uldn7zJO.js → use-router-history-entry-NOKcd--l.js} +1 -1
  243. package/core/built/admin/assets/{use-setting-group-DpcuCUDg.js → use-setting-group-bLKMwoBT.js} +1 -1
  244. package/core/built/admin/assets/{use-settings-navigation-CZjGrhsp.js → use-settings-navigation-B-qrriKD.js} +1 -1
  245. package/core/built/admin/assets/{use-simple-pagination-DzJWobPR.js → use-simple-pagination-CNPd6Rf6.js} +1 -1
  246. package/core/built/admin/assets/use-staff-users-pRIMIyiW.js +1 -0
  247. package/core/built/admin/assets/{use-tinybird-query-CSnGXzZh.js → use-tinybird-query-CmdbCS9X.js} +1 -1
  248. package/core/built/admin/assets/{use-tinybird-token-DTOKRR7e.js → use-tinybird-token-KLne235s.js} +1 -1
  249. package/core/built/admin/assets/{use-unsaved-changes-guard-CBzs-KPi.js → use-unsaved-changes-guard-7-ug0JdH.js} +1 -1
  250. package/core/built/admin/assets/use-upgrade-route-Dm_qqKr0.js +1 -0
  251. package/core/built/admin/assets/{use-url-input-DFr8lCbS.js → use-url-input-fvp-TpPx.js} +1 -1
  252. package/core/built/admin/assets/user-detail-modal-D3KlGYv-.js +1 -0
  253. package/core/built/admin/assets/{users-Cg-OeGzC.js → users-DVNWrqg9.js} +1 -1
  254. package/core/built/admin/assets/{vendor-5753232c7d6ffb3c44e1eb0a02133953.js → vendor-2dd263291938d407802568d3357ec69e.js} +19 -17
  255. package/core/built/admin/assets/{virtual-list-BW-padMe.js → virtual-list-CZ3RK2Yf.js} +1 -1
  256. package/core/built/admin/assets/{web-C1v33ehA.js → web-ClEJsCAj.js} +2 -2
  257. package/core/built/admin/assets/web-X9rdnrtq.js +1 -0
  258. package/core/built/admin/assets/{zapier-modal-BBFfI6Ml.js → zapier-modal-DfVhV17j.js} +1 -1
  259. package/core/built/admin/index.html +19 -18
  260. package/core/server/adapters/jobs/InMemoryJobsBackend.js +74 -29
  261. package/core/server/api/endpoints/authentication.js +1 -2
  262. package/core/server/api/endpoints/authors-public.js +15 -5
  263. package/core/server/api/endpoints/emails.js +13 -0
  264. package/core/server/api/endpoints/index.js +8 -0
  265. package/core/server/api/endpoints/member-metafields-members.js +23 -0
  266. package/core/server/api/endpoints/member-metafields.js +33 -20
  267. package/core/server/api/endpoints/members-account.js +42 -0
  268. package/core/server/api/endpoints/newsletters-public.js +10 -1
  269. package/core/server/api/endpoints/pages-public.js +15 -5
  270. package/core/server/api/endpoints/posts-public.js +15 -5
  271. package/core/server/api/endpoints/tags-public.js +22 -3
  272. package/core/server/api/endpoints/tiers-checkout-config.js +2 -2
  273. package/core/server/api/endpoints/tiers-public.js +38 -1
  274. package/core/server/api/endpoints/users.js +2 -2
  275. package/core/server/api/endpoints/utils/api-filter-utils.js +170 -3
  276. package/core/server/api/endpoints/utils/public-cache-keys.js +3 -0
  277. package/core/server/api/endpoints/utils/serializers/input/authors.js +2 -0
  278. package/core/server/api/endpoints/utils/serializers/input/members.js +16 -2
  279. package/core/server/api/endpoints/utils/serializers/input/pages.js +2 -0
  280. package/core/server/api/endpoints/utils/serializers/input/posts.js +2 -0
  281. package/core/server/api/endpoints/utils/serializers/input/tags.js +2 -0
  282. package/core/server/api/endpoints/utils/serializers/output/emails.js +7 -0
  283. package/core/server/api/endpoints/utils/serializers/output/index.js +4 -0
  284. package/core/server/api/endpoints/utils/serializers/output/member-metafields.js +3 -3
  285. package/core/server/api/endpoints/utils/serializers/output/members-account.js +19 -0
  286. package/core/server/api/endpoints/utils/serializers/output/members-csv-transform.js +1 -1
  287. package/core/server/api/endpoints/utils/serializers/output/tiers.js +10 -2
  288. package/core/server/api/endpoints/utils/serializers/output/users.js +0 -10
  289. package/core/server/data/exporter/table-lists.js +3 -3
  290. package/core/server/data/migrations/versions/6.53/2026-07-15-20-22-53-add-members-custom-field-values.js +1 -1
  291. package/core/server/data/migrations/versions/6.57/2026-08-04-18-00-00-store-custom-field-values-as-leaf-rows.js +10 -1
  292. package/core/server/data/migrations/versions/6.63/2026-09-03-10-07-03-rename-custom-field-tables-to-metafields.js +169 -0
  293. package/core/server/data/migrations/versions/6.63/2026-09-03-11-03-31-remove-member-custom-field-read-permissions.js +30 -0
  294. package/core/server/data/schema/fixtures/fixtures.json +0 -11
  295. package/core/server/data/schema/lib/default-index-name.js +8 -11
  296. package/core/server/data/schema/schema.js +18 -18
  297. package/core/server/data/seeders/README.md +48 -0
  298. package/core/server/data/tinybird/pipes/mv_hits.pipe +86 -50
  299. package/core/server/lib/db-types/count.js +16 -0
  300. package/core/server/lib/validate-password.js +81 -120
  301. package/core/server/models/action.js +4 -4
  302. package/core/server/models/base/plugins/filtered-collection.js +16 -0
  303. package/core/server/models/member.js +6 -6
  304. package/core/server/models/user.js +1 -1
  305. package/core/server/services/automations/automations-api.js +1 -1
  306. package/core/server/services/automations/database-automations-repository.js +11 -4
  307. package/core/server/services/email-service/CONTEXT.md +37 -0
  308. package/core/server/services/email-service/README.md +42 -0
  309. package/core/server/services/email-service/batch-sending-service.js +2 -0
  310. package/core/server/services/email-service/email-controller.js +18 -2
  311. package/core/server/services/email-service/email-service-wrapper.js +3 -0
  312. package/core/server/services/email-service/sending-status-schema.js +21 -0
  313. package/core/server/services/email-service/sending-status-serializers.js +33 -0
  314. package/core/server/services/email-service/sending-status-service.js +47 -0
  315. package/core/server/services/email-service/sending-status.js +111 -0
  316. package/core/server/services/email-suppression-list/email-suppression-list.js +0 -33
  317. package/core/server/services/email-suppression-list/mailgun-email-suppression-list.js +6 -7
  318. package/core/server/services/gifts/README.md +2 -2
  319. package/core/server/services/gifts/constants.js +1 -1
  320. package/core/server/services/gifts/gift-service.js +19 -57
  321. package/core/server/services/gifts/index.js +0 -2
  322. package/core/server/services/jobs-service/index.js +8 -0
  323. package/core/server/services/jobs-service/jobs-service.js +52 -3
  324. package/core/server/services/jobs-service/register-job-handlers.js +13 -2
  325. package/core/server/services/members/account-service.js +98 -0
  326. package/core/server/services/members/api.js +4 -4
  327. package/core/server/services/members/import-export/export/exporter.js +20 -20
  328. package/core/server/services/members/import-export/import/completion-email.js +6 -6
  329. package/core/server/services/members/import-export/import/importer.js +13 -13
  330. package/core/server/services/members/import-export/index.js +7 -7
  331. package/core/server/services/members/members-api/members-api.js +26 -6
  332. package/core/server/services/members/members-api/repositories/member-repository.js +4 -4
  333. package/core/server/services/members/members-api/services/member-bread-service.js +45 -39
  334. package/core/server/services/members/members-ssr.js +18 -0
  335. package/core/server/services/members/middleware.js +95 -81
  336. package/core/server/services/members/service.js +70 -42
  337. package/core/server/services/members/utils.js +9 -0
  338. package/core/server/services/members-metafields/access.js +28 -0
  339. package/core/server/services/{members-custom-fields → members-metafields}/actions.js +5 -5
  340. package/core/server/services/members-metafields/bindings-service.js +147 -0
  341. package/core/server/services/{members-custom-fields → members-metafields}/codec.js +4 -4
  342. package/core/server/services/{members-custom-fields → members-metafields}/config.js +1 -1
  343. package/core/server/services/{members-custom-fields → members-metafields}/definitions-service.js +17 -23
  344. package/core/server/services/{members-custom-fields → members-metafields}/filter.js +9 -9
  345. package/core/server/services/{members-custom-fields → members-metafields}/index.js +16 -7
  346. package/core/server/services/{members-custom-fields → members-metafields}/key.js +1 -1
  347. package/core/server/services/{members-custom-fields → members-metafields}/models.js +4 -4
  348. package/core/server/services/members-metafields/namespaces.js +34 -0
  349. package/core/server/services/{members-custom-fields → members-metafields}/queries.js +1 -1
  350. package/core/server/services/{members-custom-fields → members-metafields}/schema.js +16 -12
  351. package/core/server/services/{members-custom-fields → members-metafields}/serializers.js +6 -6
  352. package/core/server/services/{members-custom-fields → members-metafields}/values-service.js +32 -22
  353. package/core/server/services/mentions/mention-sending-service.js +26 -9
  354. package/core/server/services/mentions/send-webmentions-job.js +18 -0
  355. package/core/server/services/mentions/service.js +1 -31
  356. package/core/server/services/stripe/services/webhook/checkout-session-event-service.js +2 -2
  357. package/core/server/services/stripe/stripe-service.js +4 -4
  358. package/core/server/services/tier-checkout-config/codec.js +2 -2
  359. package/core/server/services/tier-checkout-config/index.js +2 -1
  360. package/core/server/services/tier-checkout-config/models.js +2 -2
  361. package/core/server/services/tier-checkout-config/queries.js +8 -8
  362. package/core/server/services/tier-checkout-config/serializers.js +57 -0
  363. package/core/server/services/tier-checkout-config/service.js +1 -1
  364. package/core/server/services/tiers/service.js +3 -3
  365. package/core/server/services/url/router-filter.js +8 -10
  366. package/core/server/services/users.js +1 -19
  367. package/core/server/web/api/endpoints/admin/routes.js +1 -0
  368. package/core/server/web/members/account/index.js +2 -0
  369. package/core/server/web/members/account/routes.js +46 -0
  370. package/core/server/web/members/app.js +4 -18
  371. package/core/shared/config/defaults.json +1 -1
  372. package/core/shared/labs.js +4 -2
  373. package/package.json +22 -22
  374. package/pnpm-lock.yaml +513 -571
  375. package/pnpm-workspace.yaml +12 -12
  376. package/components/tryghost-custom-field-types-0.0.0.tgz +0 -0
  377. package/core/built/admin/assets/activitypub/layout-2-0bw6HN.js +0 -1
  378. package/core/built/admin/assets/automated-emails-D5VVMND9.js +0 -1
  379. package/core/built/admin/assets/automations-CzKt5fb8.js +0 -1
  380. package/core/built/admin/assets/chunk.598.7e056fabb47ce7dbd73f.js +0 -366
  381. package/core/built/admin/assets/comments-BLmCmyCs.js +0 -1
  382. package/core/built/admin/assets/custom-field-type-option-BddFlJFa.js +0 -1
  383. package/core/built/admin/assets/design-and-theme-modal-BSmo12Op.js +0 -2
  384. package/core/built/admin/assets/edit-profile-C5Asm4LA.js +0 -1
  385. package/core/built/admin/assets/editor-REokrzci.js +0 -8
  386. package/core/built/admin/assets/filter-sources-BO9xUPj7.js +0 -1
  387. package/core/built/admin/assets/filters-CRUWecfY.js +0 -1
  388. package/core/built/admin/assets/growth-BWIu-6xj.js +0 -3
  389. package/core/built/admin/assets/growth-DU29oxeA.js +0 -1
  390. package/core/built/admin/assets/hooks-CuEZV2-q.js +0 -2
  391. package/core/built/admin/assets/index-6MkPdCtr.js +0 -4
  392. package/core/built/admin/assets/index-Bn7QhcZu.css +0 -2
  393. package/core/built/admin/assets/index.es-CNnuNH0d.js +0 -1
  394. package/core/built/admin/assets/koenig-loader-aFQNlJlD.js +0 -2
  395. package/core/built/admin/assets/label-picker-KVoo91sh.js +0 -1
  396. package/core/built/admin/assets/layout-Bjv2Ll-5.js +0 -1
  397. package/core/built/admin/assets/link-helpers-MVDdnFCY.js +0 -1
  398. package/core/built/admin/assets/member-detail-CdJF6Agw.js +0 -1
  399. package/core/built/admin/assets/members-DjQbq9Z2.js +0 -4
  400. package/core/built/admin/assets/navigation-modal-BkT7b1M2.js +0 -1
  401. package/core/built/admin/assets/newsletter-BMMAuvgq.js +0 -1
  402. package/core/built/admin/assets/newsletter-detail-modal-0SCJ7Zpm.js +0 -1
  403. package/core/built/admin/assets/newsletters-DhNigJUh.js +0 -1
  404. package/core/built/admin/assets/onboarding-qg8Akovm.js +0 -1
  405. package/core/built/admin/assets/overview-BW8GLeYi.js +0 -1
  406. package/core/built/admin/assets/overview-BkXZNzaZ.js +0 -1
  407. package/core/built/admin/assets/pages-jgaFm69d.js +0 -1
  408. package/core/built/admin/assets/pages-route-CIUAQxtY.js +0 -1
  409. package/core/built/admin/assets/portal-modal-D4ceei3t.js +0 -1
  410. package/core/built/admin/assets/post-analytics-header-BYCsT0GP.js +0 -1
  411. package/core/built/admin/assets/post-analytics-ot7f6pih.js +0 -1
  412. package/core/built/admin/assets/post-analytics-provider-Bo1gmYaP.js +0 -1
  413. package/core/built/admin/assets/post-helpers-C5OQMBoi.js +0 -1
  414. package/core/built/admin/assets/post-share-modal-C-PaYZ_e.js +0 -1
  415. package/core/built/admin/assets/posts-DuGazgTb.js +0 -1
  416. package/core/built/admin/assets/posts-list-screen-CBGGgjjj.js +0 -2
  417. package/core/built/admin/assets/posts-route-D6xmS7Vf.js +0 -1
  418. package/core/built/admin/assets/profile-B8mx2yAu.js +0 -1
  419. package/core/built/admin/assets/radio-group-DczlLKOn.js +0 -1
  420. package/core/built/admin/assets/router-provider-B0gZyiGJ.js +0 -1
  421. package/core/built/admin/assets/schemas-DppqmpeJ.js +0 -64
  422. package/core/built/admin/assets/settings-DvfTNdHQ.js +0 -4
  423. package/core/built/admin/assets/stats-Rjmk5owg.js +0 -1
  424. package/core/built/admin/assets/stats-view-BGGmkmgv.js +0 -1
  425. package/core/built/admin/assets/tag-detail-BhXlOsCa.js +0 -2
  426. package/core/built/admin/assets/tags-ldukRApe.js +0 -1
  427. package/core/built/admin/assets/tier-detail-modal-BOs8e_G8.js +0 -1
  428. package/core/built/admin/assets/tiers-Nd_z4BZY.js +0 -1
  429. package/core/built/admin/assets/use-filter-params-BIni9taJ.js +0 -1
  430. package/core/built/admin/assets/use-host-limits-DZtR08oa.js +0 -1
  431. package/core/built/admin/assets/use-pintura-config-h-J0Lvta.js +0 -1
  432. package/core/built/admin/assets/use-staff-users-Csipb-O0.js +0 -1
  433. package/core/built/admin/assets/use-upgrade-route-DhRSo7at.js +0 -1
  434. package/core/built/admin/assets/user-detail-modal-B_iUClI6.js +0 -1
  435. package/core/built/admin/assets/web-C4BKzn2T.js +0 -1
  436. package/core/server/services/email-suppression-list/in-memory-email-suppression-list.js +0 -39
  437. package/core/server/services/members-custom-fields/bindings-service.js +0 -120
  438. /package/core/built/admin/assets/{chunk.492.f24d855d7e3f3aad261c.js.LICENSE.txt → chunk.901.4ccc639821020230bcca.js.LICENSE.txt} +0 -0
  439. /package/core/server/services/{members-custom-fields → members-metafields}/storage.js +0 -0
@@ -1 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{_ as r}from"./framework-provider-DqI25epG.js";import{i,n as a,t as o}from"./hooks-CuEZV2-q.js";import{t as s}from"./build-CsiH26uS.js";import{_ as c,n as l}from"./chunk-KS7C4IRE-DCsL4i4D.js";import{g as u,l as d,m as f}from"./dist-B3keLvjj.js";import{t as p}from"./box-CdfQAP_F.js";import{t as m}from"./container-BuQG1wuP.js";import{a as h,i as g,o as _,r as v}from"./shade-app-CcS3f8MZ-vwURazk8.js";import{$n as y,A as b,An as x,Ft as S,Mn as C,Pn as w,Rt as T,Xn as ee,_t as E,a as te,bn as ne,gt as D,jn as re,k as ie,kn as ae,mn as oe,ot as se,t as O,u as ce,vn as le,wn as ue,zt as de}from"./button-eNMKQWXr.js";import{i as fe,n as pe,r as me,t as he}from"./tabs-D2yWLMp_.js";import{a as ge,i as _e}from"./filters-CRUWecfY.js";import{t as ve}from"./checkbox-CgOn_tKW.js";import{t as k}from"./empty-indicator-D9QdpuNX.js";import{t as ye}from"./label-BnSCvffu.js";import{An as be,Cr as xe,Jn as A,Kn as Se,N as j,Nn as Ce,Pn as we,Qn as M,Tr as N,Un as Te,_r as P,d as Ee,gr as De,hr as F,ii as Oe,j as I,jn as ke,jr as Ae,m as je,pr as L,qn as Me,vr as R,xr as Ne,yr as z}from"./index-6MkPdCtr.js";import{t as B}from"./page-header-De0VzKBi.js";import{t as Pe}from"./filter-bar-Da1qxybu.js";import{t as Fe}from"./get-site-timezone-HgL0jI_F.js";import{t as V}from"./list-page-BucXJ0hi.js";import{A as Ie,C as H,S as Le,c as Re,d as ze,f as Be,j as Ve,k as He,l as Ue,n as We,p as Ge,s as Ke,t as qe,u as U,v as Je,x as Ye,y as Xe}from"./filters-DirqNXjH.js";import{n as Ze,r as Qe}from"./filter-sources-BO9xUPj7.js";import{i as $e,n as et,r as tt,t as nt}from"./virtual-list-BW-padMe.js";var W=e(t(),1),G=We([{key:`status`,icon:`circle`,type:`scalar`,operators:[`is`],options:[{value:`published`,label:`Published`},{value:`hidden`,label:`Hidden`}],ui:{label:`Status`,searchable:!1,hideOperatorSelect:!0}},{key:`created_at`,icon:`calendar`,type:`timestamp`,operators:Ye,ui:{label:`Date`}},{key:`body`,icon:`message-text`,type:`text`,operators:[`contains`,`does-not-contain`],addressing:H({field:`html`}),parseKeys:[`html`],ui:{label:`Text`,placeholder:`Search comment text...`,className:`w-full max-w-48`,popoverContentClassName:`w-full max-w-48`}},{key:`post`,icon:`file-text`,type:`scalar`,operators:[`is`,`is-not`],addressing:H({field:`post_id`}),parseKeys:[`post_id`],ui:{label:`Post`,searchable:!0,className:`w-full max-w-80`,popoverContentClassName:`w-full max-w-[calc(100vw-32px)] max-w-80`}},{key:`author`,icon:`person`,type:`scalar`,operators:[`is`,`is-not`],addressing:H({field:`member_id`}),parseKeys:[`member_id`],ui:{label:`Author`,searchable:!0,className:`w-80`,popoverContentClassName:`w-80`}},{key:`reported`,icon:`flag`,type:`count`,valueConfig:{threshold:0,absentForm:`equals`},addressing:H({field:`count.reports`}),parseKeys:[`count.reports`],options:[{value:`true`,label:`Yes`},{value:`false`,label:`No`}],ui:{label:`Reported`,type:`select`,searchable:!1,hideOperatorSelect:!0}}]),rt=[`author`,`post`,`body`,`status`,`reported`,`created_at`],it={...Xe,...Ie};function at({postValueSource:e,memberValueSource:t,siteTimezone:n=`UTC`}){return(0,W.useMemo)(()=>{let r=Le(n);return rt.map(n=>{let i=G[n],a=n===`created_at`?{defaultValue:r,...Ve(i)?{customRenderer:He(r)}:{}}:{};return{key:n,...i.ui,icon:qe[i.ui.icon],operators:Je(i.operators,{labels:it}),...`options`in i&&i.options?{options:i.options}:{},...a,...n===`author`?{valueSource:t}:{},...n===`post`?{valueSource:e}:{}}})},[t,e,n])}var K=n(),ot=({filters:e,siteTimezone:t,onFiltersChange:n})=>{let r=Ze(),i=at({memberValueSource:Qe(),postValueSource:r,siteTimezone:t}),a=e.length>0;return(0,K.jsx)(_e,{addButtonIcon:a?(0,K.jsx)(ne,{}):(0,K.jsx)(le,{}),addButtonText:a?`Add filter`:`Filter`,allowMultiple:!1,className:`[&>button]:order-last ${a?`[&>button]:border-none`:`w-auto`}`,clearButtonClassName:`font-normal text-muted-foreground`,clearButtonIcon:(0,K.jsx)(te,{}),clearButtonText:`Clear`,fields:i,filters:e,keyboardShortcut:`f`,popoverAlign:a?`start`:`end`,showClearButton:a,showSearchInput:!1,onChange:n})},q=`CommentsResponseType`,st=`count.dislikes`,J=e=>[`member`,`post`,`count.replies`,`count.direct_replies`,`count.likes`,...e?[st]:[],`count.reports`,`parent`,`in_reply_to`].join(`,`),ct=e=>[`member`,`post`,`count.direct_replies`,`count.likes`,...e?[st]:[],`count.reports`,`parent`,`in_reply_to`].join(`,`),lt=o({dataType:q,path:`/comments/`,defaultNextPageParams:(e,t)=>e.meta?.pagination.next?{...t,page:(e.meta?.pagination.next||1).toString()}:void 0,returnData:e=>{let{pages:t}=e,n=t.flatMap(e=>e.comments),r=t[t.length-1].meta;return{comments:n,meta:r,isEnd:r?r.pagination.pages===r.pagination.page:!0}}}),ut=e=>lt({...e,searchParams:{limit:`100`,order:`created_at desc`,include:`member,post,parent`,...e?.searchParams}}),dt=a({method:`PUT`,path:({id:e})=>`/comments/${e}/`,body:({id:e})=>({comments:[{id:e,status:`hidden`}]}),invalidateQueries:{dataType:q}}),ft=a({method:`PUT`,path:({id:e})=>`/comments/${e}/`,body:({id:e})=>({comments:[{id:e,status:`published`}]}),invalidateQueries:{dataType:q}}),pt=a({method:`PUT`,path:({id:e})=>`/comments/${e}/`,body:({id:e})=>({comments:[{id:e,pinned:!0}]}),invalidateQueries:{dataType:q}}),Y=a({method:`PUT`,path:({id:e})=>`/comments/${e}/`,body:({id:e})=>({comments:[{id:e,pinned:!1}]}),invalidateQueries:{dataType:q}}),mt=i({dataType:q,path:e=>`/comments/${e}/`,defaultSearchParams:{include:J(!1)}}),ht=(e,t)=>{let{dislikesEnabled:n=!1,searchParams:r,...i}=t||{};return mt(e,{...i,searchParams:{include:J(n),...r}})},gt=i({dataType:`CommentReportsResponseType`,path:e=>`/comments/${e}/reports/`}),_t=(e,t)=>gt(e,{...t}),vt=i({dataType:`CommentLikesResponseType`,path:e=>`/comments/${e}/likes/`,defaultSearchParams:{include:`member`,limit:`100`,order:`created_at desc`}}),yt=(e,t)=>vt(e,{...t}),bt=i({dataType:`CommentDislikesResponseType`,path:e=>`/comments/${e}/dislikes/`,defaultSearchParams:{include:`member`,limit:`100`,order:`created_at desc`}}),xt=(e,t)=>bt(e,{...t}),St=(e,t)=>{let{dislikesEnabled:n=!1,...r}=t||{};return ut({...r,searchParams:{filter:`(parent_id:${e}+in_reply_to_id:null),in_reply_to_id:${e}`,order:`created_at asc`,include:ct(n),limit:`100`}})};function Ct({onClick:e,expanded:t}){return(0,K.jsxs)(O,{className:`shrink-0 gap-0.5 self-start p-0 text-base hover:bg-transparent`,variant:`ghost`,onClick:e,children:[t?`Show less`:`Show more`,t?(0,K.jsx)(ee,{}):(0,K.jsx)(y,{})]})}function wt({item:e}){let t=(0,W.useRef)(null),[n,r]=(0,W.useState)(!1),[i,a]=(0,W.useState)(!1);return(0,W.useEffect)(()=>{if(i)return;let e=()=>{t.current&&r(t.current.scrollHeight>t.current.clientHeight)};return e(),window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[e.html,i]),(0,K.jsx)(`div`,{className:`mt-2 flex flex-col gap-2`,children:(0,K.jsxs)(`div`,{className:`flex max-w-full flex-col items-start ${e.status===`hidden`&&`opacity-50`}`,children:[(0,K.jsx)(`div`,{dangerouslySetInnerHTML:{__html:e.html||``},ref:t,className:d(`prose balance max-w-[80ch] flex-1 text-base leading-[1.5em] [&_*]:text-base [&_*]:leading-[1.5em] [&_*]:font-normal [&_a]:underline [&_blockquote]:border-l-[3px] [&_blockquote]:border-foreground [&_blockquote]:p-0 [&_blockquote]:pl-3 [&_blockquote_p]:mt-0`,i?`-mb-1 [&_p]:mb-[0.85em]`:`mb-1 line-clamp-2 [&_blockquote+p]:mt-1 [&_p]:m-0`)}),n&&(0,K.jsx)(Ct,{expanded:i,onClick:()=>a(!i)})]})})}function Tt(e){let t=new Date(e);return new Intl.DateTimeFormat(`en-US`,{month:`short`,day:`numeric`,year:`numeric`,hour:`numeric`,minute:`numeric`}).format(t).replace(/(\d+),(\s+\d{4})/,`$1$2`)}var Et=d(Me({variant:`warning`}),`gap-1 hover:bg-state-warning/30`);function Dt({memberName:e,memberId:t,createdAt:n,isHidden:r,canComment:i,isPinned:a,onAuthorClick:o,postTitle:s,onPostClick:c,onUnpinClick:l,className:f}){return(0,K.jsxs)(`div`,{className:d(`flex items-center gap-2`,f),children:[(0,K.jsxs)(`div`,{className:d(`flex min-w-0 items-center gap-x-1`,r&&`opacity-50`),children:[(0,K.jsx)(`div`,{className:`whitespace-nowrap`,children:t&&o?(0,K.jsx)(O,{className:`flex h-auto items-center gap-1.5 truncate p-0 text-md font-semibold text-primary hover:opacity-70`,variant:`link`,onClick:o,children:e||`Unknown`}):(0,K.jsx)(`span`,{className:`block truncate font-semibold`,children:e||`Unknown`})}),i===!1&&(0,K.jsxs)(v,{children:[(0,K.jsx)(_,{asChild:!0,children:(0,K.jsx)(`span`,{"data-testid":`commenting-disabled-indicator`,children:(0,K.jsx)(de,{className:`size-3.5 text-muted-foreground`})})}),(0,K.jsx)(g,{children:`Comments disabled`})]}),(0,K.jsx)(w,{className:`shrink-0 text-muted-foreground/50`,size:16}),(0,K.jsx)(`div`,{className:`shrink-0 whitespace-nowrap`,children:n&&(0,K.jsxs)(v,{children:[(0,K.jsx)(_,{asChild:!0,children:(0,K.jsx)(`span`,{className:`cursor-default text-sm text-muted-foreground`,children:u(n)})}),(0,K.jsx)(g,{children:Tt(n)})]})}),s&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{className:`shrink-0 text-muted-foreground`,children:`on`}),(0,K.jsx)(`div`,{className:`min-w-0 truncate`,children:c?(0,K.jsx)(O,{className:`block h-auto w-full cursor-pointer truncate p-0 text-left font-medium text-gray-800 hover:opacity-70 dark:text-gray-400`,variant:`link`,onClick:c,children:s}):(0,K.jsx)(`span`,{className:`font-medium text-gray-800 dark:text-gray-400`,children:s})})]})]}),r&&(0,K.jsx)(Se,{variant:`secondary`,children:`Hidden`}),a&&(l?(0,K.jsxs)(`button`,{"aria-label":`Unpin comment`,className:d(`group`,Et),type:`button`,onClick:e=>{e.stopPropagation(),l?.()},children:[(0,K.jsxs)(`span`,{className:`grid size-3 shrink-0`,children:[(0,K.jsx)(E,{className:`col-start-1 row-start-1 size-3 group-hover:opacity-0 group-focus-visible:opacity-0`}),(0,K.jsx)(D,{className:`col-start-1 row-start-1 size-3 opacity-0 group-hover:opacity-100 group-focus-visible:opacity-100`})]}),(0,K.jsxs)(`span`,{className:`grid justify-items-start text-left`,children:[(0,K.jsx)(`span`,{className:`col-start-1 row-start-1 group-hover:opacity-0 group-focus-visible:opacity-0`,children:`Pinned`}),(0,K.jsx)(`span`,{className:`col-start-1 row-start-1 opacity-0 group-hover:opacity-100 group-focus-visible:opacity-100`,children:`Unpin`})]})]}):(0,K.jsxs)(Se,{className:`gap-1`,variant:`warning`,children:[(0,K.jsx)(E,{className:`size-3`}),`Pinned`]}))]})}function Ot({open:e,memberName:t,onOpenChange:n,onConfirm:r}){let[i,a]=(0,W.useState)(!1),o=e=>{e||a(!1),n(e)};return(0,K.jsx)(L,{open:e,onOpenChange:o,children:(0,K.jsxs)(F,{className:`gap-5`,children:[(0,K.jsxs)(R,{children:[(0,K.jsx)(z,{children:`Disable comments`}),(0,K.jsxs)(De,{children:[t||`This member`,` won't be able to comment in the future. You can re-enable commenting anytime.`]})]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(ve,{checked:i,id:`hide-comments`,onCheckedChange:e=>a(e===!0)}),(0,K.jsx)(ye,{htmlFor:`hide-comments`,children:`Hide all previous comments`})]}),(0,K.jsxs)(P,{children:[(0,K.jsx)(O,{variant:`outline`,onClick:()=>o(!1),children:`Cancel`}),(0,K.jsx)(O,{onClick:()=>{r(i),a(!1)},children:`Disable comments`})]})]})})}function X({comment:e}){let{mutate:t}=Ee(),{mutate:n}=je(),{mutate:r}=pt(),{mutate:i}=Y(),[a,o]=(0,W.useState)(!1),{id:s,post:c,member:u}=e,d=c?.url,f=u?.id,p=u?.can_comment,m=!e.parent_id&&e.status!==`deleted`;return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(Ne,{children:[(0,K.jsx)(Ae,{asChild:!0,children:(0,K.jsx)(O,{className:`relative z-10 text-gray-800 hover:bg-secondary [&_svg]:size-4`,size:`sm`,variant:`ghost`,children:(0,K.jsx)(C,{})})}),(0,K.jsxs)(xe,{align:`start`,children:[d&&(0,K.jsx)(N,{asChild:!0,children:(0,K.jsxs)(`a`,{href:`${d}#ghost-comments-${s}`,rel:`noopener noreferrer`,target:`_blank`,children:[(0,K.jsx)(re,{className:`size-4`}),`View on post`]})}),f&&(0,K.jsx)(N,{asChild:!0,children:(0,K.jsxs)(l,{to:`/members/${f}`,children:[(0,K.jsx)(ce,{className:`size-4`}),`View member`]})}),m&&(e.pinned?(0,K.jsxs)(N,{onClick:()=>i({id:s}),children:[(0,K.jsx)(D,{className:`size-4`}),`Unpin comment`]}):(0,K.jsxs)(N,{onClick:()=>r({id:s}),children:[(0,K.jsx)(E,{className:`size-4`}),`Pin comment`]})),f&&(p===!1?(0,K.jsxs)(N,{onClick:()=>{f&&n({id:f})},children:[(0,K.jsx)(T,{className:`size-4`}),`Enable commenting`]}):(0,K.jsxs)(N,{onClick:()=>o(!0),children:[(0,K.jsx)(de,{className:`size-4`}),`Disable commenting`]}))]})]}),(0,K.jsx)(Ot,{memberName:u?.name,open:a,onConfirm:e=>{f&&(t({id:f,reason:`Disabled from comment ${s}`,hideComments:e}),o(!1))},onOpenChange:o})]})}function kt({comment:e,dislikesEnabled:t,open:n,defaultTab:r=`likes`,onOpenChange:i}){let{data:a,isLoading:o}=yt(e.id,{enabled:n}),{data:s,isLoading:c}=xt(e.id,{enabled:n&&t}),l=a?.comment_likes??[],d=t?s?.comment_dislikes??[]:[],p=e.count?.likes??0,m=t?e.count?.dislikes??0:0,h=Math.max(0,p-l.length),g=Math.max(0,m-d.length);return(0,K.jsx)(L,{open:n,onOpenChange:i,children:(0,K.jsxs)(F,{"aria-describedby":void 0,children:[(0,K.jsx)(R,{children:(0,K.jsx)(z,{children:t?(0,K.jsxs)(K.Fragment,{children:[f(p),` `,p===1?`like`:`likes`,` and`,` `,f(m),` `,m===1?`dislike`:`dislikes`]}):(0,K.jsxs)(K.Fragment,{children:[f(p),` `,p===1?`like`:`likes`]})})}),(0,K.jsx)(`div`,{className:`overflow-hidden rounded-md border p-3`,children:(0,K.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[(0,K.jsx)(A,{className:`shrink-0`,...j(e.member),src:e.member?.avatar_image}),(0,K.jsxs)(`div`,{className:`flex min-w-0 flex-col overflow-hidden`,children:[(0,K.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1 text-sm`,children:[(0,K.jsx)(`span`,{className:`shrink-0 font-semibold`,children:e.member?I(e.member):`Deleted member`}),(0,K.jsx)(w,{className:`shrink-0 text-muted-foreground/50`,size:16}),(0,K.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:e.created_at&&u(e.created_at)}),(0,K.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:`on`}),(0,K.jsx)(`span`,{className:`min-w-0 truncate font-medium text-gray-800 dark:text-gray-400`,children:e.post?.title||`Unknown post`})]}),(0,K.jsx)(`div`,{dangerouslySetInnerHTML:{__html:e.html||``},className:`prose mt-2 line-clamp-2 text-sm [&_*]:text-sm [&_*]:leading-[1.5em] [&_p]:m-0`})]})]})}),t?(0,K.jsxs)(he,{defaultValue:r,variant:`segmented`,children:[(0,K.jsxs)(me,{className:`grid w-full grid-cols-2`,children:[(0,K.jsx)(fe,{value:`likes`,children:`Likes`}),(0,K.jsx)(fe,{value:`dislikes`,children:`Dislikes`})]}),(0,K.jsx)(pe,{className:`mt-4`,value:`likes`,children:(0,K.jsx)(`div`,{className:`-mx-1 max-h-64 overflow-y-auto px-1`,children:o?(0,K.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,K.jsx)(M,{size:`md`})}):l.length===0?(0,K.jsx)(`div`,{className:`py-4 text-center text-sm text-muted-foreground`,children:`No likes yet`}):(0,K.jsxs)(`div`,{className:`flex flex-col gap-3 pb-1`,children:[l.map(e=>(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,K.jsx)(A,{...j(e.member),src:e.member?.avatar_image}),(0,K.jsx)(`div`,{className:`absolute -right-0.5 -bottom-0.5 flex size-4 items-center justify-center rounded-full bg-gray-500 text-white`,children:(0,K.jsx)(ie,{className:`size-2.5`,fill:`currentColor`})})]}),(0,K.jsx)(`span`,{className:`font-medium`,children:e.member?I(e.member):`Deleted member`})]}),(0,K.jsx)(`span`,{className:`shrink-0 text-sm text-muted-foreground`,children:u(e.created_at)})]},e.id)),h>0&&(0,K.jsxs)(`div`,{className:`pt-1 text-center text-sm text-muted-foreground`,children:[`and `,f(h),` more`]})]})})}),(0,K.jsx)(pe,{className:`mt-4`,value:`dislikes`,children:(0,K.jsx)(`div`,{className:`-mx-1 max-h-64 overflow-y-auto px-1`,children:c?(0,K.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,K.jsx)(M,{size:`md`})}):d.length===0?(0,K.jsx)(`div`,{className:`py-4 text-center text-sm text-muted-foreground`,children:`No dislikes yet`}):(0,K.jsxs)(`div`,{className:`flex flex-col gap-3 pb-1`,children:[d.map(e=>(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,K.jsx)(A,{...j(e.member),src:e.member?.avatar_image}),(0,K.jsx)(`div`,{className:`absolute -right-0.5 -bottom-0.5 flex size-4 items-center justify-center rounded-full bg-gray-500 text-white`,children:(0,K.jsx)(b,{className:`size-2.5`,fill:`currentColor`})})]}),(0,K.jsx)(`span`,{className:`font-medium`,children:e.member?I(e.member):`Deleted member`})]}),(0,K.jsx)(`span`,{className:`shrink-0 text-sm text-muted-foreground`,children:u(e.created_at)})]},e.id)),g>0&&(0,K.jsxs)(`div`,{className:`pt-1 text-center text-sm text-muted-foreground`,children:[`and `,f(g),` more`]})]})})})]}):(0,K.jsx)(`div`,{className:`-mx-1 max-h-64 overflow-y-auto px-1`,children:o?(0,K.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,K.jsx)(M,{size:`md`})}):(0,K.jsxs)(`div`,{className:`flex flex-col gap-3 pb-1`,children:[l.map(e=>(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,K.jsx)(A,{...j(e.member),src:e.member?.avatar_image}),(0,K.jsx)(`div`,{className:`absolute -right-0.5 -bottom-0.5 flex size-4 items-center justify-center rounded-full bg-pink-500 text-white`,children:(0,K.jsx)(oe,{className:`size-2.5`,fill:`currentColor`})})]}),(0,K.jsx)(`span`,{className:`font-medium`,children:e.member?I(e.member):`Deleted member`})]}),(0,K.jsx)(`span`,{className:`shrink-0 text-sm text-muted-foreground`,children:u(e.created_at)})]},e.id)),h>0&&(0,K.jsxs)(`div`,{className:`pt-1 text-center text-sm text-muted-foreground`,children:[`and `,f(h),` more`]})]})}),(0,K.jsx)(P,{children:(0,K.jsx)(O,{onClick:()=>i(!1),children:`OK`})})]})})}function At({comment:e,open:t,onOpenChange:n}){let{data:r,isLoading:i}=_t(e.id,{enabled:t}),a=r?.comment_reports??[],o=e.count?.reports??a.length;return(0,K.jsx)(L,{open:t,onOpenChange:n,children:(0,K.jsxs)(F,{"aria-describedby":void 0,children:[(0,K.jsx)(R,{children:(0,K.jsxs)(z,{children:[o,` `,o===1?`report`:`reports`]})}),(0,K.jsx)(`div`,{className:`overflow-hidden rounded-md border p-3`,children:(0,K.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[(0,K.jsx)(A,{className:`shrink-0`,...j(e.member),src:e.member?.avatar_image}),(0,K.jsxs)(`div`,{className:`flex min-w-0 flex-col overflow-hidden`,children:[(0,K.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1 text-sm`,children:[(0,K.jsx)(`span`,{className:`shrink-0 font-semibold`,children:e.member?I(e.member):`Deleted member`}),(0,K.jsx)(w,{className:`shrink-0 text-muted-foreground/50`,size:16}),(0,K.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:e.created_at&&u(e.created_at)}),(0,K.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:`on`}),(0,K.jsx)(`span`,{className:`min-w-0 truncate font-medium text-gray-800 dark:text-gray-400`,children:e.post?.title||`Unknown post`})]}),(0,K.jsx)(`div`,{dangerouslySetInnerHTML:{__html:e.html||``},className:`prose mt-2 line-clamp-2 text-sm [&_*]:text-sm [&_*]:leading-[1.5em] [&_p]:m-0`})]})]})}),(0,K.jsx)(`div`,{className:`-mx-1 max-h-64 overflow-y-auto px-1`,children:i?(0,K.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,K.jsx)(M,{size:`md`})}):(0,K.jsx)(`div`,{className:`flex flex-col gap-3 pb-1`,children:a.map(e=>(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,K.jsx)(A,{...j(e.member),src:e.member?.avatar_image}),(0,K.jsx)(`div`,{className:`absolute -right-0.5 -bottom-0.5 flex size-4 items-center justify-center rounded-full bg-red text-white`,children:(0,K.jsx)(ue,{className:`size-2.5`,fill:`currentColor`})})]}),(0,K.jsx)(`span`,{className:`font-medium`,children:e.member?I(e.member):`Deleted member`})]}),(0,K.jsx)(`span`,{className:`shrink-0 text-sm text-muted-foreground`,children:u(e.created_at)})]},e.id))})}),(0,K.jsx)(P,{children:(0,K.jsx)(O,{onClick:()=>n(!1),children:`OK`})})]})})}function Z(e,t){if(!t)return;let n=new URLSearchParams(e);return n.set(`thread`,`is:${t}`),`?${n.toString()}`}function Q({icon:e,count:t,label:n,to:r,onClick:i,className:a,testId:o}){let s=d(`flex items-center gap-1 text-xs text-gray-800`,a),c=(0,K.jsxs)(K.Fragment,{children:[e,(0,K.jsx)(`span`,{children:f(t)})]}),u=r||i;return(0,K.jsxs)(v,{children:[(0,K.jsx)(_,{asChild:!0,children:r?(0,K.jsx)(l,{className:d(s,`cursor-pointer hover:opacity-70`),"data-testid":o,to:r,onClick:e=>{e.stopPropagation()},children:c}):i?(0,K.jsx)(`button`,{className:d(s,`cursor-pointer hover:opacity-70`),"data-testid":o,type:`button`,onClick:e=>{e.stopPropagation(),i()},children:c}):(0,K.jsx)(`div`,{className:s,"data-testid":o,children:c})}),(0,K.jsx)(g,{children:u?`View ${n.toLowerCase()}`:n})]})}function jt({comment:e,dislikesEnabled:t,className:n}){let[r]=c(),[i,a]=(0,W.useState)(!1),[o,s]=(0,W.useState)(`likes`),[l,u]=(0,W.useState)(!1),f=Z(r,e.id),p=e.count?.direct_replies??e.replies?.length??0,m=e.count?.likes??0,h=t?e.count?.dislikes??0:0,g=e.count?.reports??0,_=p>0,v=m>0,y=h>0,x=g>0;return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:d(`flex items-center gap-6`,n),children:[(0,K.jsx)(Q,{count:p,icon:(0,K.jsx)(se,{size:16,strokeWidth:1.5}),label:`Replies`,testId:`replies-metric`,to:_?f:void 0}),t?(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(Q,{count:m,icon:(0,K.jsx)(ie,{size:16,strokeWidth:1.5}),label:`Likes`,testId:`likes-metric`,onClick:v?()=>{s(`likes`),a(!0)}:void 0}),(0,K.jsx)(Q,{count:h,icon:(0,K.jsx)(b,{size:16,strokeWidth:1.5}),label:`Dislikes`,testId:`dislikes-metric`,onClick:y?()=>{s(`dislikes`),a(!0)}:void 0})]}):(0,K.jsx)(Q,{count:m,icon:(0,K.jsx)(oe,{size:16,strokeWidth:1.5}),label:`Likes`,onClick:v?()=>a(!0):void 0}),(0,K.jsx)(Q,{className:x?`font-semibold text-red`:void 0,count:g,icon:(0,K.jsx)(ue,{size:16,strokeWidth:1.5}),label:`Reports`,onClick:x?()=>u(!0):void 0})]}),(0,K.jsx)(kt,{comment:e,defaultTab:o,dislikesEnabled:t,open:i,onOpenChange:a}),(0,K.jsx)(At,{comment:e,open:l,onOpenChange:u})]})}function Mt({hasReplies:e}){return e?(0,K.jsx)(`div`,{className:`mb-2 h-full w-px grow rounded bg-gradient-to-b from-muted-foreground/20 from-70% to-transparent`,"data-testid":`replies-line`}):null}function Nt({comment:e,dislikesEnabled:t,isReply:n=!1,isSelectedComment:r=!1,selectedCommentId:i}){let[a]=c(),{mutate:o}=dt(),{mutate:s}=ft(),{mutate:u}=Y(),f=(e.replies?.length??0)>0||(e.count?.direct_replies??e.count?.replies??0)>0;return(0,K.jsxs)(`div`,{className:`flex w-full flex-row ${!f||n?`mb-7`:`mb-0`}`,children:[(0,K.jsxs)(`div`,{className:`mr-2 flex shrink-0 flex-col items-center justify-start md:mr-3`,children:[(0,K.jsx)(A,{className:d(`mb-3 size-6 md:mb-4 md:size-8`,e.status===`hidden`&&`opacity-50`),...j(e.member),src:e.member?.avatar_image}),(0,K.jsx)(Mt,{hasReplies:f&&!n})]}),(0,K.jsx)(`div`,{className:`grow`,children:(0,K.jsxs)(`div`,{className:`w-full`,"data-testid":`comment-thread-row-${e.id}`,children:[(0,K.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[(0,K.jsx)(Dt,{canComment:e.member?.can_comment,createdAt:e.created_at,isHidden:e.status===`hidden`,isPinned:e.pinned,memberId:e.member?.id,memberName:e.member?.name,onUnpinClick:()=>u({id:e.id})}),e.in_reply_to_snippet&&r&&(0,K.jsxs)(`div`,{className:`mb-1 line-clamp-1 text-sm ${e.status===`hidden`&&`opacity-50`}`,children:[(0,K.jsx)(`span`,{className:`text-muted-foreground`,children:`Replied to:`}),`\xA0`,(0,K.jsx)(l,{className:`text-sm font-normal text-muted-foreground hover:text-foreground`,"data-testid":`replied-to-link`,to:Z(a,e.in_reply_to_id||e.parent_id)||``,onClick:e=>{e.stopPropagation()},children:e.in_reply_to_snippet})]}),(0,K.jsx)(wt,{item:e}),(0,K.jsxs)(`div`,{className:`mt-4 flex flex-row flex-wrap items-center gap-3`,children:[e.status===`published`&&(0,K.jsxs)(O,{className:`text-gray-800`,size:`sm`,variant:`outline`,onClick:()=>o({id:e.id}),children:[(0,K.jsx)(x,{}),(0,K.jsx)(`span`,{className:`max-md:hidden`,children:`Hide`})]}),e.status===`hidden`&&(0,K.jsxs)(O,{className:`text-gray-800`,size:`sm`,variant:`outline`,onClick:()=>s({id:e.id}),children:[(0,K.jsx)(ae,{}),(0,K.jsx)(`span`,{className:`max-md:hidden`,children:`Show`})]}),(0,K.jsx)(jt,{comment:e,dislikesEnabled:t}),(0,K.jsx)(X,{comment:e})]})]}),f&&e.replies&&(0,K.jsx)(`div`,{className:`mt-7 mb-4 -ml-2 pl-2 md:mt-8 md:mb-0 md:-ml-3 md:pl-3`,children:e.replies.map(e=>(0,K.jsx)(Nt,{comment:e,dislikesEnabled:t,isReply:!0,selectedCommentId:i},e.id))})]})})]})}var Pt=({selectedComment:e,dislikesEnabled:t,replies:n,selectedCommentId:r,fetchNextPage:i,hasNextPage:a,isFetchingNextPage:o})=>(0,K.jsxs)(`div`,{className:`flex flex-col`,"data-testid":`comment-thread-list`,children:[(0,K.jsx)(Nt,{comment:{...e,replies:n},dislikesEnabled:t,isSelectedComment:!0,selectedCommentId:r}),a&&(0,K.jsx)(`div`,{className:`flex justify-center pb-4`,children:(0,K.jsx)(O,{disabled:o,variant:`outline`,onClick:()=>i(),children:o?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(M,{size:`sm`}),`Loading...`]}):`Load more replies`})})]}),Ft=({commentId:e,dislikesEnabled:t,open:n,onOpenChange:r})=>{let{data:i,isLoading:a,isError:o,fetchNextPage:s,hasNextPage:c,isFetchingNextPage:l}=St(e??``,{dislikesEnabled:t,enabled:n&&!!e}),{data:u,isLoading:d,isError:f}=ht(e??``,{dislikesEnabled:t,enabled:n&&!!e}),p=a||d,m=f||o&&!u,h=u?.comments?.[0],g=i?.comments||[];return(0,K.jsx)(be,{open:n,onOpenChange:r,children:(0,K.jsxs)(ke,{className:`overflow-y-auto px-6 pt-0 sm:max-w-[420px]`,children:[(0,K.jsx)(Ce,{className:`sticky top-0 z-40 -mx-6 bg-surface-elevated/60 p-6 backdrop-blur`,children:(0,K.jsx)(we,{className:`text-md`,children:`Thread`})}),h?.post&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`h3`,{className:`line-clamp-1 text-xl font-semibold text-foreground`,children:h.post.title}),h.post.excerpt&&(0,K.jsx)(`p`,{className:`mt-1 line-clamp-2 text-sm text-muted-foreground`,children:h.post.excerpt})]}),h.post.feature_image&&(0,K.jsx)(`img`,{alt:h.post.title||`Post feature image`,className:`hidden aspect-video h-18 shrink-0 rounded object-cover lg:block`,src:h.post.feature_image})]}),(0,K.jsx)(Te,{className:`-mx-6 my-6 w-auto`})]}),(0,K.jsx)(`div`,{children:p?(0,K.jsx)(`div`,{className:`flex h-full items-center justify-center py-8`,children:(0,K.jsx)(M,{size:`lg`})}):m||!h?(0,K.jsx)(`div`,{className:`flex h-full items-center justify-center py-8`,children:(0,K.jsx)(k,{actions:(0,K.jsx)(O,{variant:`outline`,onClick:()=>r(!1),children:`Back to comments`}),description:`This thread may have been deleted or doesn't exist.`,title:`Thread not found`,children:(0,K.jsx)(S,{})})}):(0,K.jsx)(Pt,{dislikesEnabled:t,fetchNextPage:()=>void s(),hasNextPage:c,isFetchingNextPage:l,replies:g,selectedComment:h,selectedCommentId:e??``})})]})})},It=({height:e})=>(0,K.jsx)(`div`,{"aria-hidden":`true`,className:`flex`,children:(0,K.jsx)(`div`,{className:`flex`,style:{height:e}})}),Lt=(0,W.forwardRef)(function(e,t){return(0,K.jsx)(`div`,{ref:t,...e,"aria-hidden":`true`,className:`relative flex flex-col`,children:(0,K.jsx)(`div`,{className:`relative z-10 h-24 animate-pulse`,children:(0,K.jsx)(`div`,{className:`h-full rounded-md bg-muted`,"data-testid":`loading-placeholder`})})})});function Rt({items:e,totalItems:t,hasNextPage:n,isFetchingNextPage:r,fetchNextPage:i,resetKey:a,onAddFilter:o,isLoading:s,dislikesEnabled:u}){let f=(0,W.useRef)(null),{visibleItemCount:p,canLoadMore:m,loadMore:g}=tt(t,{resetKey:a}),[_,v]=c(),[y,b]=(0,W.useState)(!1),[S,C]=(0,W.useState)(null),{mutate:w}=dt(),{mutate:T}=ft(),{mutate:ee}=Y(),E=e=>{if(b(e),!e){let e=new URLSearchParams(_);e.delete(`thread`),v(e,{replace:!0})}};(0,W.useEffect)(()=>{let e=_.get(`thread`);if(e){let t=e.match(/^is:(.+)$/);if(t&&t[1]){let e=t[1];C(e),b(!0)}else b(!1),C(null)}else b(!1),C(null)},[_]),et({parentRef:f,isLoading:s});let{visibleItems:te,spaceBefore:ne,spaceAfter:D}=$e({items:e,totalItems:p,hasNextPage:n,isFetchingNextPage:r,fetchNextPage:i,parentRef:f});return(0,K.jsx)(h,{children:(0,K.jsxs)(`div`,{ref:f,className:`overflow-hidden border-t`,children:[(0,K.jsx)(`div`,{className:`flex flex-col`,"data-testid":`comments-list`,children:(0,K.jsxs)(`div`,{className:`flex flex-col`,children:[(0,K.jsx)(It,{height:ne}),te.map(({key:t,virtualItem:n,item:r,props:i})=>n.index>e.length-1?(0,K.jsx)(Lt,{...i},t):(0,K.jsxs)(`div`,{...i,className:`grid w-full grid-cols-1 items-start justify-between gap-4 border-b p-3 hover:bg-table-row-hover md:p-5 lg:grid-cols-[minmax(0,1fr)_144px]`,"data-testid":`comment-list-row`,onClick:()=>{y&&E(!1)},children:[(0,K.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,K.jsx)(A,{className:d(`mt-0.5 size-6 md:size-8`,r.status===`hidden`&&`opacity-50`),...j(r.member),src:r.member?.avatar_image}),(0,K.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-3`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(Dt,{canComment:r.member?.can_comment,createdAt:r.created_at,isHidden:r.status===`hidden`,isPinned:r.pinned,memberId:r.member?.id,memberName:r.member?.name,postTitle:r.post?.title,onAuthorClick:r.member?.id?()=>o(`author`,r.member.id):void 0,onPostClick:r.post?.id?()=>o(`post`,r.post.id):void 0,onUnpinClick:()=>ee({id:r.id})}),r.in_reply_to_snippet&&(0,K.jsxs)(`div`,{className:`mb-1 line-clamp-1 max-w-3xl ${r.status===`hidden`&&`opacity-50`}`,children:[(0,K.jsx)(`span`,{className:`text-muted-foreground`,children:`Replied to:`}),`\xA0`,(0,K.jsx)(l,{className:`text-sm font-normal text-muted-foreground hover:text-foreground`,"data-testid":`replied-to-link`,to:Z(_,r.in_reply_to_id||r.parent_id)||``,onClick:e=>{e.stopPropagation()},children:r.in_reply_to_snippet})]})]}),(0,K.jsx)(wt,{item:r}),(0,K.jsxs)(`div`,{className:`flex flex-row flex-nowrap items-center gap-3`,children:[r.status===`published`&&(0,K.jsxs)(O,{className:`text-foreground`,size:`sm`,variant:`outline`,onClick:()=>w({id:r.id}),children:[(0,K.jsx)(x,{}),`Hide`]}),r.status===`hidden`&&(0,K.jsxs)(O,{className:`text-foreground`,size:`sm`,variant:`outline`,onClick:()=>T({id:r.id}),children:[(0,K.jsx)(ae,{}),`Show`]}),(0,K.jsx)(jt,{className:`ml-2`,comment:r,dislikesEnabled:u}),(0,K.jsx)(X,{comment:r})]})]})]}),(0,K.jsx)(`div`,{children:r.post?.feature_image?(0,K.jsx)(`img`,{alt:r.post.title||`Post feature image`,className:`hidden aspect-video w-36 rounded object-cover lg:block ${r.status===`hidden`&&`opacity-50`}`,src:r.post.feature_image}):null})]},t)),(0,K.jsx)(It,{height:D})]})}),m&&(0,K.jsx)(nt,{isLoading:r,onClick:g}),(0,K.jsx)(Ft,{commentId:S,dislikesEnabled:u,open:y,onOpenChange:E})]})})}var zt=Ke(G,`date`);function Bt(e){return Ue(e,G)}function Vt(e,t){let n=U(e??``);return n?Ge(ze(n,G,t).filter(Bt)):[]}function Ht(e){let t=U(e??``);return t?Re(t,zt):!1}function $(e,t){return Be(e.filter(Bt),G,t)}var Ut=[`status`,`created_at`,`body`,`post`,`author`,`reported`],Wt={is_not:`is-not`,not_contains:`does-not-contain`,before:`is-less`,after:`is-greater`,on_or_before:`is-or-less`,on_or_after:`is-or-greater`};function Gt(e){let t=e.indexOf(`:`);if(t<=0)return null;let n=e.substring(0,t),r=e.substring(t+1);return r?{operator:Wt[n]??n,value:r}:null}function Kt(e){let t=[];for(let[n,r]of e.entries()){if(!Ut.includes(n))continue;let e=Gt(r);e&&t.push({id:`${n}:${t.length+1}`,field:n,operator:e.operator,values:[e.value]})}return t}function qt(e){Ut.forEach(t=>e.delete(t))}function Jt(e,t,n){let r=new URLSearchParams(e),i=$(t,n);return r.delete(`filter`),qt(r),i&&r.set(`filter`,i),r}function Yt(e,t,n=!t){return!!e&&n&&!t&&Ht(e)}function Xt(e){let[t,n]=c(),r=(0,W.useRef)(null),i=(0,W.useMemo)(()=>t.get(`filter`)??void 0,[t]),a=(0,W.useMemo)(()=>t.toString(),[t]),o=(0,W.useMemo)(()=>i===void 0?Kt(t):Vt(i,e),[i,t,e]),[s,l]=(0,W.useState)(o),u=(0,W.useMemo)(()=>$(s,e),[s,e]);return(0,W.useEffect)(()=>{a!==r.current&&(l(o),r.current=a)},[a,o]),(0,W.useEffect)(()=>{if(r.current!==null&&a!==r.current)return;let i=Jt(t,s,e),o=i.toString();o!==a&&(r.current=o,n(i,{replace:!0}))},[a,s,t,n,e]),{filters:s,nql:u,setFilters:(0,W.useCallback)((i,a={})=>{let o=typeof i==`function`?i(s):i,c=Jt(t,o,e),u=a.replace??!0;l(o),r.current=c.toString(),n(c,{replace:u})},[s,t,n,e]),clearFilters:(0,W.useCallback)(({replace:e=!0}={})=>{let i=new URLSearchParams(t);i.delete(`filter`),qt(i),l([]),r.current=i.toString(),n(i,{replace:e})},[t,n])}}function Zt(e){return e.get(`id`)?.match(/^is:(.+)$/)?.[1]}var Qt=({timezone:e,singleCommentId:t})=>{let[n,i]=c(),{filters:a,nql:o,setFilters:l}=Xt(e),u=(0,W.useCallback)((r,o,s=`is`)=>{let c=[...a.filter(e=>e.field!==r),ge(r,s,[o])];if(!t){l(c,{replace:!1});return}let u=new URLSearchParams(n),d=$(c,e);u.delete(`id`),u.delete(`filter`),d&&u.set(`filter`,d),i(u,{replace:!1})},[a,n,l,i,t,e]),d=(0,W.useMemo)(()=>t?`id:${s(t)}`:o,[o,t]),f=(0,W.useCallback)(()=>{i(new URLSearchParams,{replace:!1})},[i]),{data:h,isError:g,isFetching:_,isFetchingNextPage:v,isRefetching:y,fetchNextPage:b,hasNextPage:x}=ut({searchParams:{include:J(!0),...d?{filter:d}:{}},placeholderData:r}),C=_&&!v&&!y,w=d??``,T=a.length>0;return(0,K.jsx)(p,{className:`size-full`,children:(0,K.jsx)(m,{className:`relative flex h-full flex-col`,size:`page`,children:(0,K.jsxs)(V,{"data-testid":`comments-page`,children:[(0,K.jsxs)(V.Header,{children:[(0,K.jsxs)(B,{blurredBackground:!1,sticky:!1,children:[(0,K.jsx)(B.Left,{children:(0,K.jsx)(B.Title,{children:`Comments`})}),!t&&!T&&(0,K.jsx)(B.Actions,{children:(0,K.jsx)(B.ActionGroup,{children:(0,K.jsx)(ot,{filters:a,siteTimezone:e,onFiltersChange:l})})})]}),!t&&T&&(0,K.jsx)(Pe,{children:(0,K.jsx)(ot,{filters:a,siteTimezone:e,onFiltersChange:l})})]}),(0,K.jsx)(V.Body,{children:C?(0,K.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,K.jsx)(M,{size:`lg`})}):g?(0,K.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center`,children:[(0,K.jsx)(`h2`,{className:`mb-2 text-xl font-medium`,children:`Error loading comments`}),(0,K.jsx)(`p`,{className:`mb-4 text-muted-foreground`,children:`Please reload the page to try again`}),(0,K.jsx)(O,{onClick:()=>window.location.reload(),children:`Reload page`})]}):h?.comments.length?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(Rt,{dislikesEnabled:!0,fetchNextPage:()=>void b(),hasNextPage:x,isFetchingNextPage:v,isLoading:_&&!v,items:h?.comments??[],resetKey:w,totalItems:h?.meta?.pagination?.total??0,onAddFilter:u}),t&&(0,K.jsx)(`div`,{className:`flex justify-center py-8`,children:(0,K.jsx)(O,{variant:`outline`,onClick:f,children:`Show all comments`})})]}):(0,K.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:t?(0,K.jsxs)(`div`,{className:`flex flex-col items-center`,children:[(0,K.jsx)(k,{title:`Comment not found`,children:(0,K.jsx)(S,{})}),(0,K.jsx)(O,{className:`mt-4`,variant:`outline`,onClick:f,children:`Show all comments`})]}):(0,K.jsx)(k,{title:`No comments yet`,children:(0,K.jsx)(S,{})})})})]})})})},$t=()=>{let[e]=c(),{data:t,isLoading:n}=Oe({}),r=(0,W.useMemo)(()=>Zt(e),[e]),i=e.get(`filter`)??void 0;if(!r&&Yt(i,!!t,n))return(0,K.jsx)(p,{className:`size-full`,children:(0,K.jsx)(m,{className:`relative flex h-full flex-col`,size:`page`,children:(0,K.jsxs)(V,{children:[(0,K.jsx)(V.Header,{children:(0,K.jsx)(B,{blurredBackground:!1,sticky:!1,children:(0,K.jsx)(B.Left,{children:(0,K.jsx)(B.Title,{children:`Comments`})})})}),(0,K.jsx)(V.Body,{children:(0,K.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,K.jsx)(M,{size:`lg`})})})]})})});let a=Fe(t?.settings??[]);return(0,K.jsx)(Qt,{singleCommentId:r,timezone:a})};export{$t as default};
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-DX3WBWVO.js";import{Ht as t,N as n,S as r}from"./button-eNMKQWXr.js";import{h as i}from"./member-custom-fields-DDQV6QeG.js";var a=e(),o={short_text:r,long_text:n,address:t},s=({type:e,className:t})=>(0,a.jsx)(o[e]||r,{className:t});function c({type:e}){return(0,a.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,a.jsx)(`span`,{className:`flex w-5 shrink-0 items-center justify-center`,children:(0,a.jsx)(s,{className:`size-4`,type:e})}),(0,a.jsx)(`span`,{children:i(e).label})]})}export{s as n,c as t};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./dist-CZgIBXQN.js","./rolldown-runtime-DAXXjFlN.js","./dist-Z97pCNqS.js","./dist-BtaTA7Ii.js","./dist-4m6pHdc0.js","./dist-B6bJuxL3.js","./dist-CiHx7vA5.js","./dist-ECAUrdGc.js","./dist-zwwGt8Yf.js"])))=>i.map(i=>d[i]);
2
- import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{n,t as r}from"./jsx-runtime-DX3WBWVO.js";import{r as i}from"./framework-provider-DqI25epG.js";import{_ as a,c as o,d as s,l as c,m as l,p as u,y as d}from"./hooks-CuEZV2-q.js";import{n as f}from"./dist-Ndy-PuGN.js";import{t as p}from"./use-form-vRjI0Kwk.js";import{t as m}from"./posts-DuGazgTb.js";import{t as h}from"./preload-helper-DYl5dUZ5.js";import{a as g}from"./router-provider-B0gZyiGJ.js";import{l as _,m as v,w as y}from"./dist-B3keLvjj.js";import{t as b}from"./inline-BWSs_VzR.js";import{t as x}from"./text-BQDSDsKs.js";import{$n as S,C,D as w,Mn as T,On as E,Sn as D,Y as O,Zn as k,a as A,b as ee,bt as j,ft as te,in as M,j as ne,rt as re,t as N,un as ie,xn as ae}from"./button-eNMKQWXr.js";import{n as oe,r as se,t as ce}from"./esm-CXo5SEPy.js";import{i as P,n as le,r as F,t as I}from"./tabs-D2yWLMp_.js";import{t as L}from"./switch-CI4gLWqb.js";import{t as ue}from"./dropzone-D7nFdAe5.js";import{i as R,n as z,o as B,s as V,t as H}from"./select-cb0t_TAJ.js";import{o as de,t as U}from"./use-settings-navigation-CZjGrhsp.js";import{a as fe,i as pe,n as W,r as me,t as he}from"./index.es-CNnuNH0d.js";import{i as ge,n as _e,r as ve,t as ye}from"./action-list-C4v0-du8.js";import{a as be,c as xe,n as Se,o as G,r as K,s as Ce,t as q}from"./field-Dihp5p18.js";import{t as we}from"./preview-chrome-BljUBlOk.js";import{n as Te,t as Ee}from"./toggle-group-ByUJsxwD.js";import{c as De,f as J,l as Y,m as Oe,n as ke,r as Ae,t as je}from"./schemas-DppqmpeJ.js";import{$ as Me,$n as Ne,Cr as Pe,Kn as Fe,Q as Ie,Qn as Le,Tr as Re,X as ze,Y as Be,Z as Ve,at as He,dt as Ue,et as We,it as Ge,jr as Ke,ni as qe,nt as Je,oi as Ye,ot as Xe,rt as Ze,st as Qe,ti as $e,tt as et,ut as tt,xr as nt}from"./index-6MkPdCtr.js";import{t as X}from"./page-header-De0VzKBi.js";import{a as rt,c as it,i as at,n as ot,o as st,r as ct,s as lt,t as ut}from"./images-scfkWZiK.js";import{t as dt}from"./modal-page-xCivTMvI.js";import{t as ft}from"./nql-BLpCn7qX.js";import{i as pt,n as mt}from"./confirmation-context-CBM8G0Vj.js";import{n as ht}from"./global-data-context-gAMDH9u1.js";import{t as gt}from"./use-upgrade-route-DhRSo7at.js";import{i as _t}from"./zapier-modal-BBFfI6Ml.js";import{$ as vt}from"./dist-Z97pCNqS.js";import{t as yt}from"./color-picker-field-D9nUhvA7.js";import{t as bt}from"./preview-modal-BfeFqi5y.js";import{t as xt}from"./use-pintura-editor-BfN1UwzH.js";import{t as St}from"./iframe-buffering-B2OKJzbz.js";import{t as Ct}from"./settings-breadcrumbs-DLzbRRSt.js";import{t as wt}from"./use-query-params-BfzuqbcD.js";import{n as Tt,t as Et}from"./use-check-theme-limit-error-Cw3WQHy8.js";var Z=e(t(),1),Dt=Y({code:J(),details:J(),failures:ke(Y({ref:J(),message:J().optional(),rule:J().optional()})),fatal:Ae(),level:je([`error`,`warning`,`recommendation`]),rule:J()}),Ot=ke(Y({details:Oe([Y({errors:ke(Dt).optional(),warnings:ke(Dt).optional()}),J().trim().min(1)])}));function kt(e){return typeof e==`object`&&!!e}function At(e){return[...e.errors||[],...e.warnings||[]]}function jt(e=[]){let t=[],n=[],r=[];return e.forEach(e=>{kt(e.details)?At(e.details).forEach(e=>{e.fatal?t.push(e):n.push(e)}):r.push(e.details)}),{blockingProblems:t,secondaryProblems:n,stringErrors:r}}function Mt(e){let t=Ot.safeParse(e);if(!t.success)return null;let{blockingProblems:n,stringErrors:r}=jt(t.data);return n.length>0||r.length>0?t.data:null}function Nt(e){return[...e.errors||[],...e.warnings||[]]}var Pt=[`Error`,`Warning`,`Recommendation`],Ft={error:{severity:`Error`,variant:`destructive`},warning:{severity:`Warning`,variant:`warning`},recommendation:{severity:`Recommendation`,variant:`secondary`}};function It(e){return Ft[e.level]??Ft.error}function Lt(e){return It(e).severity}function Rt(e){return It(e).variant}function zt(e){return[...e].sort((e,t)=>Pt.indexOf(Lt(e))-Pt.indexOf(Lt(t)))}function Bt(e){return e.some(e=>Lt(e)===`Error`)}function Vt(e,t){return t.length?`${e}, but it has some ${Bt(t)?`issues`:`warnings`}`:`${e} successfully`}var Q=r(),Ht=`[&_code]:rounded-md [&_code]:border-0 [&_code]:bg-secondary [&_code]:px-1 [&_code]:py-0.5 [&_code]:align-baseline [&_code]:font-mono [&_code]:text-sm [&_code]:text-inherit [&_code]:leading-[inherit] [&_code]:whitespace-nowrap`,Ut=`text-base leading-[1.55] font-semibold text-foreground ${Ht}`,Wt=`text-base leading-[1.55] text-foreground [&_a]:underline ${Ht}`,Gt=`space-y-1 text-base text-muted-foreground ${Ht}`;function Kt(e){return Pt.map(t=>({severity:t,count:e.filter(e=>Lt(e)===t).length})).filter(({count:e})=>e>0)}function qt(e){return e.map(({severity:e,count:t})=>`${v(t)} ${e.toLowerCase()}${t===1?``:`s`}`).join(`, `)}function Jt(e,t){return`${e.code||`issue`}-${t}`}function Yt({children:e,variant:t}){return(0,Q.jsx)(Fe,{className:`py-1 font-mono text-sm leading-none uppercase`,variant:t,children:e})}function Xt({problem:e}){return(0,Q.jsxs)(`div`,{className:`mt-3 space-y-3`,children:[(0,Q.jsx)(`div`,{dangerouslySetInnerHTML:{__html:e.details},className:Wt}),e.failures?.length>0&&(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`h6`,{className:`mb-1 text-base font-semibold text-muted-foreground`,children:`Affected files`}),(0,Q.jsx)(`ul`,{className:Gt,children:e.failures.map(e=>(0,Q.jsxs)(`li`,{children:[(0,Q.jsx)(`code`,{children:e.ref}),e.message?(0,Q.jsxs)(`span`,{children:[`: `,e.message]}):null]},`${e.ref}-${e.message||``}`))})]})]})}function Zt({errorLabel:e,problem:t,value:n}){let r=Lt(t);return(0,Q.jsxs)(pe,{className:`border-border-default last:border-b-0`,value:n,children:[(0,Q.jsx)(fe,{className:`items-start gap-3 p-5 hover:no-underline data-[state=open]:pb-1 [&>svg]:mt-1`,children:(0,Q.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Q.jsx)(Yt,{variant:Rt(t),children:r===`Error`?e:r}),t.code&&(0,Q.jsx)(`span`,{className:`font-mono text-sm font-normal text-muted-foreground`,children:t.code})]}),(0,Q.jsx)(`div`,{dangerouslySetInnerHTML:{__html:t.rule},className:Ut})]})}),(0,Q.jsx)(me,{className:`px-5 pb-5`,children:(0,Q.jsx)(Xt,{problem:t})})]})}function Qt({errorLabel:e,message:t}){return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2 border-b border-border-default p-5 last:border-b-0`,children:[(0,Q.jsx)(`div`,{className:`flex items-center gap-3`,children:(0,Q.jsx)(Yt,{variant:`destructive`,children:e})}),(0,Q.jsx)(`p`,{className:`text-base font-semibold text-foreground`,children:t})]})}var $t=`theme-problem-list`;function en({errorLabel:e=`Error`,expandedByDefault:t=!1,messages:n=[],problems:r}){let i=(0,Z.useMemo)(()=>zt(r),[r]),a=(0,Z.useMemo)(()=>i.map(Jt),[i]);return!i.length&&!n.length?null:(0,Q.jsxs)(`div`,{className:`overflow-hidden rounded-lg border border-border-default`,"data-testid":$t,children:[n.map(t=>(0,Q.jsx)(Qt,{errorLabel:e,message:t},t)),i.length>0&&(0,Q.jsx)(W,{defaultValue:t?a:[],type:`multiple`,children:i.map((t,n)=>(0,Q.jsx)(Zt,{errorLabel:e,problem:t,value:a[n]},a[n]))})]})}function tn({problems:e}){if(!e.length)return null;let t=Kt(e),n=Bt(e);return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Q.jsxs)(`h3`,{className:`flex items-center gap-2 text-base font-semibold text-foreground`,children:[(0,Q.jsx)(C,{className:_(`size-4 shrink-0`,n?`text-destructive`:`text-state-warning`)}),qt(t)]}),n&&(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Highly recommended to fix, functionality could be restricted`})]}),(0,Q.jsx)(en,{problems:e})]})}var nn=({title:e,themeName:t,action:n=`uploaded`,cancelLabel:r=`Cancel`,okLabel:i,fatalErrors:a,onRetry:o,onClose:s})=>{let{blockingProblems:c,secondaryProblems:l,stringErrors:u}=jt(a);return(0,Q.jsx)(pt,{cancelLabel:r,contentClassName:c.length+u.length+l.length>0?`max-w-[600px]`:void 0,okLabel:i??(o?`Try again`:``),okVariant:`default`,prompt:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsxs)(`p`,{className:`text-base text-foreground`,children:[t?(0,Q.jsx)(`strong`,{children:t}):`This theme`,` couldn't be `,n,`. Fix the errors below and try again.`]}),(0,Q.jsx)(en,{errorLabel:`Blocking`,messages:u,problems:c,expandedByDefault:!0}),(0,Q.jsx)(tn,{problems:l})]}),stickyFooter:!0,title:e,onOk:o,onRemove:s})},rn=()=>{let e=et();return{supportsCustomFonts:!(e.data?.themes[0])?.warnings?.some(e=>e.code===`GS051-CUSTOM-FONTS`),refreshActiveThemeData:(0,Z.useCallback)(()=>{e.refetch()},[e])}};function an(e){let t=e.package?.name||e.name,n=t;return Ve(e)?n=`${t} (default)`:Me(e)?n=`${t} (legacy)`:e.package?.name!==e.name&&(n=(0,Q.jsxs)(`span`,{className:`md:text-base`,children:[n,` `,(0,Q.jsxs)(`span`,{className:`text-gray-600`,children:[`(`,e.name,`)`]})]})),Be(e)&&(n=(0,Q.jsxs)(`span`,{className:`font-bold md:text-base`,children:[n,` — `,(0,Q.jsx)(`span`,{className:`text-green`,children:` Active`})]})),n}function on(e){return e.package?.version||`1.0`}var sn=({theme:e})=>{let{mutateAsync:t}=We(),{mutateAsync:n}=Ze(),{refreshActiveThemeData:r}=rn(),i=u(),{route:o,updateRoute:c}=U(),l=gt(),{checkThemeLimitError:d}=Et(),{confirm:p,showLimit:m}=mt(),[h,g]=(0,Z.useState)(null),_=async()=>{try{await t(e.name),r(),f.success(`Theme activated`,{description:(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`span`,{className:`capitalize`,children:e.name}),` is now your active theme`]})})}catch(e){let t=null;e instanceof a&&e.response?.status===422&&e.data?.errors?t=e.data.errors:i(e),t&&g(t)}},v=()=>{s(`/themes/${e.name}/download`)},y=()=>{p({title:`Are you sure you want to delete this?`,prompt:(0,Q.jsxs)(Q.Fragment,{children:[`You are about to delete `,(0,Q.jsxs)(`strong`,{children:[`"`,e.name,`".`]}),` This is permanent! We warned you, k? Maybe download`,` `,(0,Q.jsx)(`span`,{className:`cursor-pointer text-green-500`,onClick:v,children:`your theme before continuing`})]}),okLabel:`Delete`,okRunningLabel:`Deleting`,okVariant:`destructive`,onOk:async t=>{try{await n(e.name),t?.remove()}catch(e){i(e)}}})},b=async()=>{let t=await d(`.`);if(t){m({prompt:t,onOk:()=>c({route:l,isExternal:!0})});return}c(`theme/edit/${encodeURIComponent(e.name)}?from=${encodeURIComponent(o??``)}`)},x=[];return Be(e)||x.push((0,Q.jsx)(N,{className:`ml-2`,size:`sm`,type:`button`,variant:`ghost`,onClick:()=>void _(),children:`Activate`},`activate`)),(0,Q.jsxs)(`div`,{className:`-mr-3 flex items-center gap-4`,children:[x,(0,Q.jsxs)(nt,{children:[(0,Q.jsx)(Ke,{asChild:!0,children:(0,Q.jsx)(N,{"aria-label":`Menu`,size:`icon`,type:`button`,variant:`ghost`,children:(0,Q.jsx)(T,{})})}),(0,Q.jsxs)(Pe,{align:`end`,className:`z-[9999]`,children:[(0,Q.jsx)(Re,{onSelect:()=>void b(),children:`Edit code`}),(0,Q.jsx)(Re,{onSelect:v,children:`Download`}),Ie(e)&&(0,Q.jsx)(Re,{onSelect:y,children:`Delete`})]})]}),h&&(0,Q.jsx)(nn,{action:`activated`,fatalErrors:h,themeName:e.package?.name||e.name,title:`Theme not activated`,onClose:()=>g(null),onRetry:()=>{g(null),_()}})]})},cn=({themes:e})=>(e.sort((e,t)=>e.active&&!t.active?-1:!e.active&&t.active?1:e.package?.name&&t.package?.name?e.package.name.localeCompare(t.package.name):e.name.localeCompare(t.name)),(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`h1`,{className:`mb-5 text-2xl font-bold`,children:`Installed themes`}),(0,Q.jsx)(ye,{className:`border-t border-border`,children:e.map(e=>{let t=an(e),n=on(e);return(0,Q.jsxs)(_e,{"data-testid":`theme-list-item`,children:[(0,Q.jsxs)(ge,{className:`py-3 pr-6`,id:`theme-${e.name}`,children:[(0,Q.jsx)(`div`,{children:t}),n&&(0,Q.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:n})]}),(0,Q.jsx)(ve,{children:(0,Q.jsx)(sn,{theme:e})})]},e.name)})})]})),ln=({themes:e})=>(0,Q.jsx)(dt,{children:(0,Q.jsx)(cn,{themes:e})}),un=``+new URL(`footer-marketplace-bg-cXGt4GLt.png`,import.meta.url).href,dn=3e3,fn=e=>e.variants&&e.variants.length>0,pn=e=>{let t=[{category:e.category,previewUrl:e.previewUrl,image:e.image}];return e.variants&&e.variants.length>0&&t.push(...e.variants),t},mn=({onSelectTheme:e})=>{let t=_t(),[n,r]=(0,Z.useState)(null),[i,a]=(0,Z.useState)(0),o=e=>{r(e),a(e!==null&&fn(e)&&pn(e).length>1?1:0)};return(0,Z.useEffect)(()=>{if(n===null)return;let e=setInterval(()=>{a((i+1)%(pn(n).length||0))},dn);return()=>clearInterval(e)},[n,i]),(0,Q.jsxs)(dt,{children:[(0,Q.jsx)(dt.Title,{children:`Themes`}),(0,Q.jsx)(`div`,{className:`mt-[6vmin] grid grid-cols-1 gap-[6vmin] sm:grid-cols-2 md:grid-cols-3 xl:grid-cols-4`,children:t.map(t=>{let r=fn(t),a=pn(t),s=n===t;return(0,Q.jsxs)(`button`,{className:`flex cursor-pointer flex-col gap-3 text-left`,type:`button`,onClick:()=>{e?.(t)},children:[(0,Q.jsx)(`div`,{className:`relative w-full bg-gray-100 shadow-md transition-all duration-500 hover:scale-[1.05]`,onMouseEnter:()=>o(t),onMouseLeave:()=>o(null),children:r?(0,Q.jsx)(Q.Fragment,{children:a.map((e,n)=>(0,Q.jsx)(`img`,{alt:`${t.name} Theme - ${e.category}`,className:y(`size-full object-contain opacity-0 transition-opacity duration-500`,{"opacity-100":n===i&&s||!s&&n===0,relative:n===i,absolute:n!==i,"left-0":n!==i,"top-0":n!==i}),src:e.image},`theme-variant-${e.category.toLowerCase()}`))}):(0,Q.jsx)(`img`,{alt:`${t.name} Theme`,className:`size-full object-contain`,src:t.image})}),(0,Q.jsxs)(`div`,{className:`relative mt-3`,children:[(0,Q.jsx)(x,{as:`h4`,className:`md:text-xl`,leading:`heading`,size:`lg`,weight:`bold`,children:t.name}),r?a.map((e,t)=>(0,Q.jsx)(`span`,{className:y(`absolute left-0 translate-y-px text-gray-700 opacity-0`,{"opacity-100":t===i&&s||!s&&t===0}),children:e.category},e.category)):(0,Q.jsx)(`span`,{className:`text-gray-700`,children:t.category})]})]},t.name)})}),(0,Q.jsxs)(`div`,{className:`mx-[-8vmin] mt-[8vmin] mb-[-8vmin] bg-black px-[8vmin] py-16 text-center text-lg text-white`,style:{background:`#15171a url(${un}) 100% 100% / 35vw no-repeat`},children:[`Find and buy third-party, premium themes from independent developers in the`,` `,(0,Q.jsx)(`a`,{className:`inline-block font-semibold text-lime`,href:`https://ghost.org/themes/`,rel:`noopener noreferrer`,target:`_blank`,children:`Ghost Marketplace →`})]})]})},hn=({title:e,action:t=`uploaded`,statusMessage:n,installedTheme:r,onActivate:i,onClose:a})=>{let{mutateAsync:o}=We(),{refreshActiveThemeData:s}=rn(),c=u(),{data:l}=Ue(),d=Nt(r),p=l?.site?tt(l.site):void 0,m=r.active?`OK`:Bt(d)?`Activate with errors`:`Activate theme`,h=r.active?(0,Q.jsx)(`span`,{className:`text-green`,children:`It's live!`}):e,g;return g=r.active?(0,Q.jsxs)(Q.Fragment,{children:[`Your theme `,(0,Q.jsx)(`strong`,{children:r.name}),` was saved successfully and is now visible to your readers.`,p?(0,Q.jsxs)(Q.Fragment,{children:[` `,(0,Q.jsx)(`a`,{className:`font-semibold text-foreground hover:underline`,href:p,rel:`noreferrer`,target:`_blank`,children:`Take a look →`})]}):null]}):n||(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`strong`,{children:r.name}),` was `,Vt(t,d),`. Do you want to activate it?`]}),(0,Q.jsx)(pt,{cancelLabel:`Close`,contentClassName:d.length>0?`max-w-[600px]`:void 0,okLabel:m,okRunningLabel:`Activating...`,okVariant:`default`,prompt:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsx)(`p`,{className:`text-base text-foreground`,children:g}),(0,Q.jsx)(tn,{problems:d})]}),stickyFooter:!0,title:h,onOk:async e=>{if(!r.active)try{let e=(await o(r.name)).themes[0];s(),f.success(`Theme activated`,{description:(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`span`,{className:`capitalize`,children:e.name}),` is now your active theme.`]})})}catch(e){c(e);return}i?.(),e?.remove()},onRemove:a})},gn=e=>e.variants&&e.variants.length>0,_n=e=>{let t=[{image:e.image,category:e.category,previewUrl:e.previewUrl}];return e.variants&&e.variants.length>0&&t.push(...e.variants),t},vn=e=>e.category.toLowerCase(),yn=({selectedTheme:e,isInstalling:t,installedTheme:n,onBack:r,onInstall:i})=>{let[a,o]=(0,Z.useState)(`desktop`),[s,c]=(0,Z.useState)(void 0);if(!e)return null;let l=e.previewUrl,u=_n(e).map(e=>({label:e.category,value:vn(e)}));gn(e)&&(s===void 0&&c(u[0].value),l=_n(e).find(e=>vn(e)===s)?.previewUrl||l);let d=`Install ${e.name}`;t?d=`Installing...`:ze(e)&&!n?.active?d=`Activate ${e.name}`:n&&(d=`Update ${e.name}`);let f=()=>{i?.()},p=(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(Ct,{current:e.name,label:`Change theme`,onBack:r}),gn(e)?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{className:`hidden md:!visible md:!block`,children:`–`}),(0,Q.jsxs)(q,{className:`w-auto`,children:[(0,Q.jsx)(G,{className:`sr-only`,children:`Theme variant`}),(0,Q.jsxs)(H,{value:s,onValueChange:c,children:[(0,Q.jsx)(B,{"aria-label":`Theme variant`,className:`w-auto border-0 bg-transparent shadow-none`,children:(0,Q.jsx)(V,{})}),(0,Q.jsx)(z,{className:`min-w-max`,children:u.map(e=>(0,Q.jsx)(R,{value:e.value,children:e.label},e.value))})]})]})]}):null]}),m=(0,Q.jsxs)(`div`,{className:`flex justify-end gap-8`,children:[(0,Q.jsxs)(b,{gap:`sm`,children:[(0,Q.jsx)(N,{"aria-label":`Desktop preview`,size:`icon`,type:`button`,variant:`ghost`,onClick:()=>o(`desktop`),children:(0,Q.jsx)(M,{className:a===`desktop`?`text-foreground`:`text-muted-foreground`})}),(0,Q.jsx)(N,{"aria-label":`Mobile preview`,size:`icon`,type:`button`,variant:`ghost`,onClick:()=>o(`mobile`),children:(0,Q.jsx)(O,{className:a===`mobile`?`text-foreground`:`text-muted-foreground`})})]}),(0,Q.jsx)(N,{disabled:t,type:`button`,onClick:f,children:t?`Installing...`:d})]});return(0,Q.jsxs)(`div`,{className:`absolute inset-0 z-[100]`,children:[(0,Q.jsxs)(X,{blurredBackground:!1,className:`z-[100] h-22 min-h-[92px] bg-background p-8`,sticky:!1,children:[(0,Q.jsx)(X.Left,{className:`flex-auto`,children:p}),(0,Q.jsx)(X.Actions,{className:`flex-auto justify-end`,children:m})]}),(0,Q.jsx)(`div`,{className:`flex h-[calc(100%-92px)] grow flex-col items-center justify-center bg-background`,children:a===`desktop`?(0,Q.jsx)(we,{device:`desktop`,children:(0,Q.jsx)(`iframe`,{className:`size-full`,src:l,title:`Theme preview`})}):(0,Q.jsx)(we,{device:`mobile`,children:(0,Q.jsx)(`iframe`,{className:`size-full`,src:l,title:`Theme preview`})})})]})},bn=({onUpload:e})=>(0,Q.jsx)(ue,{accept:{"application/zip":[`.zip`]},inputId:`theme-upload`,onDropAccepted:([t])=>{e(t)},children:`Click to select or drag & drop zip file`}),xn=({currentTab:e,setCurrentTab:t,themes:n})=>{let{updateRoute:r}=U(),i=gt(),{mutateAsync:o}=He(),{checkThemeLimitError:s,isThemeLimited:c}=Et(),l=u(),{confirm:d,showLimit:f}=mt(),[p,m]=(0,Z.useState)(),[h,g]=(0,Z.useState)(!1),[_,v]=(0,Z.useState)(null),[y,b]=(0,Z.useState)(null);(0,Z.useEffect)(()=>{(async()=>{if(c){let e=await s(`.`);m({enabled:!1,error:e||`Your current plan doesn't support uploading custom themes.`})}else m({enabled:!0})})()},[s,c]);let x=()=>{r(`/`)},S=e=>{let r=e?.name.replace(/\.zip$/,``),i=n.map(e=>e.name);ze({name:r})?d({title:`Upload failed`,cancelLabel:`Cancel`,okLabel:``,prompt:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`p`,{children:[`The default `,(0,Q.jsx)(`strong`,{children:r}),` theme cannot be overwritten.`]}),(0,Q.jsx)(`p`,{children:`Rename your zip file and try again.`})]}),onOk:e=>{e?.remove()}}):i.includes(r)?d({title:`Overwrite theme`,prompt:(0,Q.jsxs)(Q.Fragment,{children:[`The theme `,(0,Q.jsx)(`strong`,{children:r}),` already exists. Do you want to overwrite it?`]}),okLabel:`Overwrite`,cancelLabel:`Cancel`,okRunningLabel:`Overwriting...`,okVariant:`destructive`,onOk:async a=>{g(!0);let o=i.indexOf(r);n.splice(o,1),await C({file:e,onActivate:x}),g(!1),t(`installed`),a?.remove()}}):(t(`installed`),C({file:e,onActivate:x}))},C=async({file:e,onActivate:t})=>{let n,r=null;try{g(!0),n=await o({file:e}),g(!1)}catch(e){g(!1),e instanceof a&&e.response?.status===422&&e.data?.errors?r=e.data.errors:l(e)}r&&!n&&v({themeName:e.name.replace(/\.zip$/,``),fatalErrors:r}),n&&b({title:`Upload successful`,action:`uploaded`,installedTheme:n.themes[0],onActivate:t})},w=(0,Q.jsx)(`div`,{className:`hidden md:!visible md:!block`,children:(0,Q.jsx)(I,{value:e,variant:`button`,onValueChange:t,children:(0,Q.jsxs)(F,{children:[(0,Q.jsx)(P,{value:`official`,children:`Official themes`}),(0,Q.jsx)(P,{value:`installed`,children:`Installed`})]})})}),T=()=>{if(p)if(p.enabled){let e={current:null};e.current=d({title:`Upload theme`,prompt:(0,Q.jsx)(bn,{onUpload:t=>{e.current?.remove(),S(t)}}),okLabel:``,formSheet:!1})}else f({title:`Upgrade to enable custom themes`,prompt:p.error||(0,Q.jsxs)(Q.Fragment,{children:[`Your current plan only supports official themes. You can install them from the`,` `,(0,Q.jsx)(`a`,{href:`https://ghost.org/marketplace/`,children:`Ghost theme marketplace`}),`.`]}),onOk:()=>r({route:i,isExternal:!0})})},E=(0,Q.jsx)(`div`,{className:`flex items-center gap-14`,children:(0,Q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Q.jsx)(N,{type:`button`,variant:`outline`,onClick:x,children:`Close`}),(0,Q.jsxs)(N,{disabled:h,type:`button`,onClick:T,children:[h&&(0,Q.jsx)(Le,{size:`sm`}),`Upload theme`]})]})});return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(X,{blurredBackground:!1,className:`sticky -top-px z-50 h-22 min-h-[92px] bg-background p-8`,sticky:!1,children:[(0,Q.jsx)(X.Left,{className:`flex-auto`,children:w}),(0,Q.jsx)(X.Actions,{className:`flex-auto justify-end`,children:E})]}),(0,Q.jsx)(`div`,{className:`px-[8vmin] md:hidden`,children:(0,Q.jsx)(I,{value:e,variant:`button`,onValueChange:t,children:(0,Q.jsxs)(F,{children:[(0,Q.jsx)(P,{value:`official`,children:`Official themes`}),(0,Q.jsx)(P,{value:`installed`,children:`Installed`})]})})}),_&&(0,Q.jsx)(nn,{action:`uploaded`,fatalErrors:_.fatalErrors,okLabel:`Re-upload`,themeName:_.themeName,title:`Theme not uploaded`,onClose:()=>v(null),onRetry:()=>{v(null),T()}}),y&&(0,Q.jsx)(hn,{...y,onClose:()=>b(null)})]})},Sn=({currentTab:e,onSelectTheme:t,themes:n})=>{switch(e){case`official`:return(0,Q.jsx)(mn,{onSelectTheme:t});case`installed`:return(0,Q.jsx)(ln,{themes:n})}return null},Cn=({source:e,themeRef:t})=>{let[n,r]=(0,Z.useState)(`official`),[i,a]=(0,Z.useState)(null),[o,s]=(0,Z.useState)(`desktop`),[c,l]=(0,Z.useState)(!1),[d,p]=(0,Z.useState)(!1),[m,h]=(0,Z.useState)(!1),[g,_]=(0,Z.useState)(null),{updateRoute:v}=U(),y=gt(),{data:{themes:b}={}}=Je(),{mutateAsync:x}=Ge(),{mutateAsync:S}=We(),{checkThemeLimitError:C}=Et(),w=u(),{confirm:T,showLimit:E}=mt(),D=e=>{a(e)};if((0,Z.useEffect)(()=>{h(!0)},[]),(0,Z.useEffect)(()=>{(async()=>{if(e&&t&&!d&&m){let e=t.split(`/`)[1];if(await C(e)){v(`theme`);return}let n=b?.map(e=>e.name)||[],r=n.includes(e.toLowerCase()),i=n.indexOf(e.toLowerCase()),a=b?.[i],o=(0,Q.jsxs)(Q.Fragment,{children:[`By clicking below, `,(0,Q.jsx)(`strong`,{children:e}),` will automatically be activated as the theme for your site.`,r&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`br`,{}),(0,Q.jsx)(`br`,{}),`This will overwrite your existing version of `,(0,Q.jsx)(`strong`,{children:e}),a?.active?` which is your active theme`:``,`. All custom changes will be lost.`]})]});T({title:`Install Theme`,prompt:o,okLabel:`Install`,cancelLabel:`Cancel`,okRunningLabel:`Installing...`,okVariant:`default`,onOk:async e=>{let n;p(!0);try{r&&b&&b.splice(i,1),n=await x(t),n?.themes[0]&&(await S(n.themes[0].name),f.success(`Theme activated`,{description:(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`span`,{className:`capitalize`,children:n.themes[0].name}),` is now your active theme`]})})),e?.remove(),v(``)}catch(e){w(e)}}})}})()},[t,e,x,w,S,v,b,d,C,T,m]),!b)return;let O,k;if(i){O=b.find(e=>e.name.toLowerCase()===i.name.toLowerCase()),k=async()=>{let t=await C(i.name);if(t){E({prompt:t,onOk:()=>v({route:y,isExternal:!0})});return}return O&&!ze(i)?new Promise(t=>{T({title:`Overwrite theme`,prompt:(0,Q.jsxs)(Q.Fragment,{children:[`This will overwrite your existing version of `,i.name,O?.active?`, which is your active theme`:``,`. All custom changes will be lost.`]}),okLabel:`Overwrite`,okRunningLabel:`Installing...`,cancelLabel:`Cancel`,okVariant:`destructive`,onOk:async n=>{n?.remove(),await e(),t()}})}):e()};let e=async()=>{let e=`Installed successfully`,t;if(ze(i))e=`Activate theme`,t=(0,Q.jsxs)(Q.Fragment,{children:[`Do you want to activate `,(0,Q.jsx)(`strong`,{children:i.name}),` as the theme for your site?`]});else{l(!0);let e;try{e=await x(i.ref)}catch(e){w(e)}finally{l(!1)}if(!e)return;O=e.themes[0]}_({title:e,action:`installed`,statusMessage:t,installedTheme:O,onActivate:()=>{v(``)}})}}return(0,Q.jsxs)(de,{animate:!1,cancelLabel:``,footer:!1,padding:!1,size:`full`,testId:`theme-modal`,title:``,scrolling:!0,onCancel:()=>{v(``)},onClose:()=>{v(``)},children:[(0,Q.jsx)(`div`,{className:`flex h-full justify-between`,children:(0,Q.jsxs)(`div`,{className:`grow`,children:[i&&(0,Q.jsx)(yn,{installedTheme:O,isInstalling:c,selectedTheme:i,onBack:()=>{a(null)},onClose:()=>{v(``)},onInstall:k}),(0,Q.jsx)(xn,{currentTab:n,previewMode:o,selectedTheme:i,setCurrentTab:r,setPreviewMode:s,setSelectedTheme:a,themes:b}),!i&&(0,Q.jsx)(Sn,{currentTab:n,themes:b,onSelectTheme:D})]})}),g&&(0,Q.jsx)(hn,{...g,onClose:()=>_(null)})]})},wn=e(n(),1),Tn=({children:e,to:t,classNames:n})=>{let r=t||document.body;return r?(0,wn.createPortal)((0,Q.jsx)(`div`,{className:n,onMouseDown:e=>{e.stopPropagation()},children:(0,Q.jsx)(`div`,{children:e})}),r):(0,Q.jsx)(Q.Fragment,{children:e})},En=({unsplashProviderConfig:e,onClose:t,onImageInsert:n})=>(0,Q.jsx)(Tn,{classNames:`settings-app`,children:(0,Q.jsx)(he,{unsplashProviderConfig:e,onClose:t,onImageInsert:n})}),Dn={heading:[{name:`Cardo`,creator:`David Perry`},{name:`Chakra Petch`,creator:`Cadson Demak`},{name:`Fira Mono`,creator:`Carrois Apostrophe`},{name:`Fira Sans`,creator:`Carrois Apostrophe`},{name:`IBM Plex Serif`,creator:`Mike Abbink`},{name:`Inter`,creator:`Rasmus Andersson`},{name:`JetBrains Mono`,creator:`JetBrains`},{name:`Libre Baskerville`,creator:`Impallari Type`},{name:`Lora`,creator:`Cyreal`},{name:`Manrope`,creator:`Mikhail Sharanda`},{name:`Merriweather`,creator:`Sorkin Type`},{name:`Noto Sans`,creator:`Google`},{name:`Noto Serif`,creator:`Google`},{name:`Nunito`,creator:`Vernon Adams`},{name:`Old Standard TT`,creator:`Alexey Kryukov`},{name:`Poppins`,creator:`Indian Type Foundry`},{name:`Roboto`,creator:`Christian Robertson`},{name:`Rufina`,creator:`Martin Sommaruga`},{name:`Space Grotesk`,creator:`Florian Karsten`},{name:`Space Mono`,creator:`Colophon Foundry`},{name:`Tenor Sans`,creator:`Denis Masharov`}],body:[{name:`Fira Mono`,creator:`Carrois Apostrophe`},{name:`Fira Sans`,creator:`Carrois Apostrophe`},{name:`IBM Plex Serif`,creator:`Mike Abbink`},{name:`Inter`,creator:`Rasmus Andersson`},{name:`JetBrains Mono`,creator:`JetBrains`},{name:`Lora`,creator:`Cyreal`},{name:`Manrope`,creator:`Mikhail Sharanda`},{name:`Merriweather`,creator:`Sorkin Type`},{name:`Noto Sans`,creator:`Google`},{name:`Noto Serif`,creator:`Google`},{name:`Nunito`,creator:`Vernon Adams`},{name:`Poppins`,creator:`Indian Type Foundry`},{name:`Roboto`,creator:`Christian Robertson`},{name:`Space Mono`,creator:`Colophon Foundry`}]},$=`Theme default`,On=({option:e,selected:t})=>(0,Q.jsxs)(`span`,{className:`flex w-full items-center gap-4 ${e.className??``}`,"data-testid":t?`select-current-option`:`select-option`,"data-value":e.value,children:[(0,Q.jsx)(`span`,{className:`flex size-12 shrink-0 items-center justify-center rounded-md border border-border-default bg-surface-elevated text-2xl font-bold shadow-xs`,children:`Aa`}),(0,Q.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,Q.jsx)(`span`,{className:`text-md`,children:e.label}),(0,Q.jsx)(`span`,{className:`truncate font-sans text-sm font-normal text-muted-foreground`,children:e.hint})]})]}),kn=e=>e.split(` `).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `),An=({values:e,updateSetting:t})=>{let{mutateAsync:n}=ot(),{settings:r}=ht(),[a]=$e(r,[`unsplash`]),[o,s]=(0,Z.useState)(!1),{unsplashConfig:c}=i(),l=u(),d=async(e,r)=>{try{t(e,ut(await n({file:r})))}catch(e){let t=e;t.response.status===415&&(t.message=`Unsupported file type`),l(t)}},f=xt(),{data:p}=Je(),m=p?.themes.find(e=>e.active),h=m?`${kn(m.name)} (v${m.package?.version||`1.0`})`:`Loading...`,[g,_]=(0,Z.useState)(Dn.heading.find(t=>t.name===e.headingFont)||{name:$,creator:h}),[b,x]=(0,Z.useState)(Dn.heading.find(t=>t.name===e.bodyFont)||{name:$,creator:h}),S=(e,t=!0)=>{let n=``;return e===`Cardo`?n=y(`font-cardo`,t&&`font-bold`):e===`Manrope`?n=y(`font-manrope`,t&&`font-bold`):e===`Merriweather`?n=y(`font-merriweather`,t&&`font-bold`):e===`Nunito`?n=y(`font-nunito`,t&&`font-semibold`):e===`Old Standard TT`?n=y(`font-old-standard-tt`,t&&`font-bold`):e===`Prata`?n=y(`font-prata`,t&&`font-normal`):e===`Roboto`?n=y(`font-roboto`,t&&`font-bold`):e===`Rufina`?n=y(`font-rufina`,t&&`font-bold`):e===`Tenor Sans`?n=y(`font-tenor-sans`,t&&`font-normal`):e===`Chakra Petch`?n=y(`font-chakra-petch`,t&&`font-normal`):e===`Fira Mono`?n=y(`font-fira-mono`,t&&`font-bold`):e===`Fira Sans`?n=y(`font-fira-sans`,t&&`font-bold`):e===`IBM Plex Serif`?n=y(`font-ibm-plex-serif`,t&&`font-bold`):e===`Inter`?n=y(`font-inter`,t&&`font-bold`):e===`JetBrains Mono`?n=y(`font-jetbrains-mono`,t&&`font-bold`):e===`Lora`?n=y(`font-lora`,t&&`font-bold`):e===`Noto Sans`?n=y(`font-noto-sans`,t&&`font-bold`):e===`Noto Serif`?n=y(`font-noto-serif`,t&&`font-bold`):e===`Poppins`?n=y(`font-poppins`,t&&`font-bold`):e===`Space Grotesk`?n=y(`font-space-grotesk`,t&&`font-bold`):e===`Space Mono`&&(n=y(`font-space-mono`,t&&`font-bold`)),n},C=Dn.heading.map(e=>{let t=S(e.name,!0);return{label:e.name,value:e.name,hint:e.creator,className:t}});C.unshift({label:$,value:$,hint:h,className:`font-sans font-normal`});let T=Dn.body.map(e=>{let t=S(e.name,!1);return{label:e.name,value:e.name,hint:e.creator,className:t}});T.unshift({label:$,value:$,hint:h,className:`font-sans font-normal`});let E=(e,t)=>e===$?``:S(e,t),D=C.find(e=>e.value===g.name)||C[0],O=T.find(e=>e.value===b.name)||T[0];return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(be,{className:`mt-6 mb-12 gap-6`,children:[(0,Q.jsx)(yt,{debounceMs:200,direction:`rtl`,testId:`accent-color-picker`,title:(0,Q.jsx)(`div`,{children:`Accent color`}),value:e.accentColor,onChange:e=>t(`accent_color`,e)}),(0,Q.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`div`,{children:`Publication icon`}),(0,Q.jsxs)(K,{className:`mr-5 max-w-[160px]`,children:[`A square, social icon, at least `,v(60),`×`,v(60),`px`]})]}),(0,Q.jsx)(`div`,{className:`flex gap-3`,children:(0,Q.jsx)(ct,{className:e.icon?`size-16.5`:`h-9 w-40`,children:e.icon?(0,Q.jsxs)(it,{background:`checkerboard`,children:[(0,Q.jsx)(lt,{id:`logo`,src:e.icon}),(0,Q.jsx)(rt,{className:`top-1 right-1`,children:(0,Q.jsx)(at,{"aria-label":`Remove publication icon`,"data-testid":`image-delete-button`,onClick:()=>t(`icon`,null),children:(0,Q.jsx)(w,{})})})]}):(0,Q.jsx)(st,{inputId:`logo`,onDropAccepted:([e])=>void d(`icon`,e),children:`Upload icon`})})})]}),(0,Q.jsxs)(`div`,{className:`flex items-start justify-between ${e.icon&&`mt-2`}`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`div`,{children:`Publication logo`}),(0,Q.jsx)(K,{className:`mr-5 max-w-[160px]`,children:`Appears usually in the main header of your theme`})]}),(0,Q.jsx)(`div`,{children:(0,Q.jsx)(ct,{className:`h-15 w-40`,children:e.logo?(0,Q.jsxs)(it,{background:`checkerboard`,children:[(0,Q.jsx)(lt,{className:`object-contain`,id:`site-logo`,src:e.logo}),(0,Q.jsx)(rt,{className:`top-1 right-1`,children:(0,Q.jsx)(at,{"aria-label":`Remove publication logo`,"data-testid":`image-delete-button`,onClick:()=>t(`logo`,null),children:(0,Q.jsx)(w,{})})})]}):(0,Q.jsx)(st,{inputId:`site-logo`,onDropAccepted:([e])=>void d(`logo`,e),children:`Upload logo`})})})]}),(0,Q.jsxs)(`div`,{className:`mt-2 flex items-start justify-between`,"data-testid":`publication-cover`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`div`,{children:`Publication cover`}),(0,Q.jsx)(K,{className:`mr-5 max-w-[160px]`,children:`Usually as a large banner image on your index pages`})]}),(0,Q.jsx)(ct,{className:`h-23.75 w-40`,children:e.coverImage?(0,Q.jsxs)(it,{children:[(0,Q.jsx)(lt,{id:`cover`,src:e.coverImage}),(0,Q.jsxs)(rt,{className:`top-1 right-1`,children:[f.isEnabled&&(0,Q.jsx)(at,{"aria-label":`Edit publication cover`,onClick:()=>f.openEditor({image:e.coverImage||``,handleSave:async e=>{try{t(`cover_image`,ut(await n({file:e})))}catch(e){l(e)}}}),children:(0,Q.jsx)(j,{})}),(0,Q.jsx)(at,{"aria-label":`Remove publication cover`,"data-testid":`image-delete-button`,onClick:()=>t(`cover_image`,null),children:(0,Q.jsx)(w,{})})]})]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(st,{inputId:`cover`,onDropAccepted:([e])=>void d(`cover_image`,e),children:`Upload cover`}),a&&(0,Q.jsx)(rt,{className:`top-1 right-1 opacity-100`,children:(0,Q.jsx)(at,{"aria-label":`Select publication cover from Unsplash`,"data-testid":`toggle-unsplash-button`,onClick:()=>s(!0),children:(0,Q.jsx)(ie,{})})})]})}),o&&c&&a&&(0,Q.jsx)(En,{unsplashProviderConfig:c,onClose:()=>{s(!1)},onImageInsert:e=>{e.src&&t(`cover_image`,e.src),s(!1)}})]})]}),(0,Q.jsxs)(xe,{className:`-mt-4 gap-0`,children:[(0,Q.jsx)(Ce,{className:`mb-4 text-md! leading-supertight font-bold md:text-lg!`,children:`Typography`}),(0,Q.jsxs)(be,{className:`mb-12 gap-6`,children:[(0,Q.jsxs)(q,{children:[(0,Q.jsx)(G,{children:`Heading font`}),(0,Q.jsxs)(H,{value:D.value,onValueChange:e=>{e===$?(_({name:$,creator:h}),t(`heading_font`,``)):(_({name:e,creator:Dn.heading.find(t=>t.name===e)?.creator||``}),t(`heading_font`,e))},children:[(0,Q.jsx)(B,{"aria-label":`Heading font`,className:`h-16 pl-2 text-left ${E(D.label,!0)}`,"data-testid":`heading-font-select`,children:(0,Q.jsx)(V,{children:(0,Q.jsx)(On,{option:D,selected:!0})})}),(0,Q.jsx)(z,{children:C.map(e=>(0,Q.jsx)(R,{value:e.value,children:(0,Q.jsx)(On,{option:e})},e.value))})]})]}),(0,Q.jsxs)(q,{children:[(0,Q.jsx)(G,{children:`Body font`}),(0,Q.jsxs)(H,{value:O.value,onValueChange:e=>{e===$?(x({name:$,creator:h}),t(`body_font`,``)):(x({name:e,creator:Dn.body.find(t=>t.name===e)?.creator||``}),t(`body_font`,e))},children:[(0,Q.jsx)(B,{"aria-label":`Body font`,className:`h-16 pl-2 text-left ${E(O.label,!1)}`,"data-testid":`body-font-select`,children:(0,Q.jsx)(V,{children:(0,Q.jsx)(On,{option:O,selected:!0})})}),(0,Q.jsx)(z,{className:`max-h-52`,children:T.map(e=>(0,Q.jsx)(R,{value:e.value,children:(0,Q.jsx)(On,{option:e})},e.value))})]})]})]})]})]})},jn=e(ft(),1);function Mn(e,t){return e.visibility?(0,jn.default)(e.visibility).queryJSON(t):!0}function Nn({description:e,accentColor:t,icon:n,logo:r,coverImage:i,themeSettings:a,bodyFont:o,headingFont:s}){if(!a)return;let c=a.reduce((e,{key:t,value:n})=>({...e,[t]:n}),{}),l=new URLSearchParams;l.append(`c`,t),l.append(`d`,e),l.append(`icon`,n),l.append(`logo`,r),l.append(`cover`,i),l.append(`bf`,o),l.append(`hf`,s);let u={};return a.forEach(e=>{u[e.key]=Mn(e,c)?e.value:null}),l.append(`custom`,JSON.stringify(u)),l.toString()}var Pn=({settings:e,url:t,isVisible:n=!0})=>{let r=Nn({...e});return(0,Q.jsx)(St,{addDelay:!1,className:`absolute -top-px -left-px size-[calc(110%_+_3px)] origin-top-left scale-[.90909] bg-white max-[1600px]:size-[calc(130%_+_3px)] max-[1600px]:scale-[.76923]`,generateContent:(0,Z.useCallback)(e=>{if(!t||!r)return;let n=new URL(t);n.searchParams.set(`admin_toolbar`,`0`),fetch(n.toString(),{method:`POST`,headers:{"Content-Type":`text/html;charset=utf-8`,"x-ghost-preview":r,Accept:`text/html`},mode:`cors`,credentials:`include`}).then(e=>e.text()).then(t=>{let n=`html { pointer-events: none; }`,r=new DOMParser().parseFromString(t,`text/html`),i=r.querySelector(`style`),a=i?.innerHTML;a?i.innerHTML=`${a}\n\n${n}`:r.head.innerHTML+=`<style>${n}</style>`;let o=(r.doctype?new XMLSerializer().serializeToString(r.doctype):``)+r.documentElement.outerHTML;e.contentDocument?.open(),e.contentDocument?.write(o),e.contentDocument?.close()})},[r,t]),height:`100%`,parentClassName:`absolute inset-0 overflow-hidden ${n?`z-10 opacity-100`:`z-0 opacity-0 pointer-events-none`}`,testId:`theme-preview`,width:`100%`})},Fn=({setting:e,setSetting:t})=>{let[n,r]=(0,Z.useState)({});(0,Z.useEffect)(()=>{let t=e.value===null?``:String(e.value);r(n=>({...n,[e.key]:t}))},[e]);let i=e=>{n[e]!==void 0&&t(n[e])},a=(e,t)=>{r(n=>({...n,[e]:t}))},{mutateAsync:o}=ot(),s=u(),c=async e=>{try{t(ut(await o({file:e})))}catch(e){s(e)}};switch(e.type){case`text`:return(0,Q.jsxs)(q,{children:[(0,Q.jsx)(G,{htmlFor:`theme-setting-${e.key}`,children:qe(e.key)}),(0,Q.jsx)(Ne,{id:`theme-setting-${e.key}`,value:n[e.key]||``,onBlur:()=>i(e.key),onChange:t=>a(e.key,t.target.value)}),e.description&&(0,Q.jsx)(K,{children:e.description})]});case`boolean`:return(0,Q.jsxs)(q,{orientation:`horizontal`,children:[(0,Q.jsxs)(Se,{children:[(0,Q.jsx)(G,{htmlFor:`theme-setting-${e.key}`,children:qe(e.key)}),e.description&&(0,Q.jsx)(K,{children:e.description})]}),(0,Q.jsx)(L,{checked:!!e.value,id:`theme-setting-${e.key}`,onCheckedChange:t})]});case`select`:return(0,Q.jsxs)(q,{children:[(0,Q.jsx)(G,{children:qe(e.key)}),(0,Q.jsxs)(H,{value:e.value,onValueChange:t,children:[(0,Q.jsx)(B,{"aria-label":qe(e.key),"data-testid":`setting-select-${e.key}`,children:(0,Q.jsx)(V,{})}),(0,Q.jsx)(z,{children:e.options.map(e=>(0,Q.jsx)(R,{value:e,children:e},e))})]}),e.description&&(0,Q.jsx)(K,{children:e.description})]});case`color`:return(0,Q.jsx)(yt,{debounceMs:200,direction:`rtl`,hint:e.description,title:qe(e.key),value:e.value||``,onChange:e=>t(e)});case`image`:return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(G,{children:qe(e.key)}),(0,Q.jsx)(ct,{className:e.value?`h-25`:`h-8`,children:e.value?(0,Q.jsxs)(it,{children:[(0,Q.jsx)(lt,{id:`custom-${e.key}`,src:e.value}),(0,Q.jsx)(rt,{children:(0,Q.jsx)(at,{"aria-label":`Remove image`,onClick:()=>t(null),children:(0,Q.jsx)(w,{})})})]}):(0,Q.jsx)(st,{inputId:`custom-${e.key}`,onDropAccepted:e=>void c(e[0]),children:`Upload image`})}),e.description&&(0,Q.jsx)(K,{children:e.description})]})}},In={source:[`title_font`,`body_font`],casper:[`title_font`,`body_font`],alto:[`title_font`,`body_font`],bulletin:[`title_font`,`body_font`],dawn:[`title_font`,`body_font`],digest:[`title_font`,`body_font`],dope:[`title_font`,`body_font`],ease:[`title_font`,`body_font`],edge:[`title_font`,`body_font`],edition:[`title_font`,`body_font`],episode:[`typography`],headline:[`title_font`,`body_font`],journal:[`title_font`,`body_font`],london:[`title_font`,`body_font`],ruby:[`title_font`,`body_font`],solo:[`typography`],taste:[`style`],wave:[`title_font`,`body_font`]},Ln=({sections:e,updateSetting:t})=>{let{data:n}=Je(),r=n?.themes.find(e=>e.active),i=r?.package.name?.toLowerCase()||``,a=r?.package.author?.name||``,{supportsCustomFonts:o}=rn();return(0,Q.jsx)(Q.Fragment,{children:e.map(e=>{let n=e.settings.filter(t=>Mn(t,e.settings.reduce((e,{key:t,value:n})=>({...e,[t]:n}),{}))),r;return(0,Q.jsxs)(xe,{className:`gap-0 first-of-type:mt-6`,children:[(0,Q.jsx)(Ce,{className:`mb-4 text-md! leading-supertight font-bold md:text-lg!`,children:e.title}),(0,Q.jsx)(be,{className:`mb-12 gap-4`,children:n.map(e=>{let n=``;e.type===`boolean`&&r!==`boolean`&&r!==void 0&&(n=`mt-3`),(e.type===`text`||e.type===`select`)&&(r===`text`||r===`select`)&&(n=`mt-2`);let s=In[i];return s&&s.includes(e.key)&&a===`Ghost Foundation`&&o&&(n+=` hidden`),r=e.type,(0,Q.jsx)(`div`,{className:n,children:(0,Q.jsx)(Fn,{setSetting:n=>t({...e,value:n}),setting:e},e.key)},e.key)})})]},e.id)})})},Rn=({globalSettings:e,themeSettingSections:t,updateGlobalSetting:n,updateThemeSetting:r,onTabChange:i})=>{let[a,o]=(0,Z.useState)(`global`);return(0,Q.jsx)(`div`,{className:`flex h-full flex-col justify-between`,children:(0,Q.jsx)(`div`,{className:`grow p-7 pt-0`,"data-testid":`design-setting-tabs`,children:t.length>0?(0,Q.jsxs)(I,{value:a,variant:`underline`,onValueChange:e=>{o(e),i(e)},children:[(0,Q.jsxs)(F,{className:`sticky top-0 z-50 bg-surface-elevated-2`,children:[(0,Q.jsx)(P,{value:`global`,children:`Brand`}),(0,Q.jsx)(P,{value:`theme-settings`,children:`Theme`})]}),(0,Q.jsx)(le,{value:`global`,children:(0,Q.jsx)(An,{updateSetting:n,values:e})}),(0,Q.jsx)(le,{value:`theme-settings`,children:(0,Q.jsx)(Ln,{sections:t,updateSetting:r})})]}):(0,Q.jsx)(An,{updateSetting:n,values:e})})})},zn=()=>{let{settings:e,siteData:t}=ht(),{mutateAsync:n}=Ye(),{data:{posts:[r]}={posts:[]}}=m({searchParams:{filter:`status:published`,order:`published_at DESC`,limit:`1`,fields:`id,url`}}),{data:i}=Xe(),{mutateAsync:a}=Qe(),o=u(),[s,c]=(0,Z.useState)(`homepage`),[l,d]=(0,Z.useState)(`desktop`),{updateRoute:f}=U(),h=g(),_=wt().getParam(`ref`),{formState:v,saveState:y,handleSave:b,updateForm:x,setFormState:S,okProps:C}=p({initialState:{settings:e,themeSettings:i?.custom_theme_settings},savingDelay:500,onSave:async()=>{if(v.themeSettings?.some(e=>e.dirty)){let e=await a(v.themeSettings);S(t=>({...t,themeSettings:e.custom_theme_settings}))}if(v.settings.some(e=>e.dirty)){let{settings:e}=await n(v.settings.filter(e=>e.dirty));S(t=>({...t,settings:e}))}},onSaveError:o});(0,Z.useEffect)(()=>{i&&S(e=>({...e,themeSettings:i.custom_theme_settings}))},[S,i]);let w=(e,t)=>{x(n=>({...n,settings:n.settings.map(n=>n.key===e?{...n,value:t,dirty:!0}:n)}))},T=e=>{x(t=>({...t,themeSettings:t.themeSettings?.map(t=>t.key===e.key?{...e,dirty:!0}:t)}))},[E,D,k,A,ee,j,te]=$e(v.settings,[`description`,`accent_color`,`icon`,`logo`,`cover_image`,`heading_font`,`body_font`]),ne=(v.themeSettings||[]).reduce((e,t)=>{let n=t.group===`homepage`||t.group===`post`?t.group:`site-wide`;return{...e,[n]:(e[n]||[]).concat(t)}},{}),re=Object.entries(ne).map(([e,t])=>({id:e,settings:t||[],title:e===`site-wide`?`Site wide`:e===`homepage`?`Homepage`:`Post`})),N=e=>{r&&c(e)},ie=e=>{c(e===`post`&&r?`post`:`homepage`)},ae=[{id:`homepage`,url:tt(t)},...r?[{id:`post`,url:r.url}]:[]],oe={description:E,accentColor:D,icon:k,logo:A,coverImage:ee,themeSettings:v.themeSettings,headingFont:j,bodyFont:te},se=(0,Q.jsx)(`div`,{className:`relative size-full`,children:ae.map(({id:e,url:t})=>(0,Q.jsx)(Pn,{isVisible:s===e,settings:oe,url:t},e))}),ce=l===`desktop`?(0,Q.jsx)(we,{"data-testid":`preview-desktop`,device:`desktop`,children:se}):(0,Q.jsx)(we,{"data-testid":`preview-mobile`,device:`mobile`,children:se}),le=r?(0,Q.jsx)(I,{value:s,variant:`button`,onValueChange:N,children:(0,Q.jsxs)(F,{children:[(0,Q.jsx)(P,{value:`homepage`,children:`Homepage`}),(0,Q.jsx)(P,{value:`post`,children:`Post`})]})}):void 0,L=(0,Q.jsxs)(Ee,{size:`default`,type:`single`,value:l,onValueChange:e=>{(e===`desktop`||e===`mobile`)&&d(e)},children:[(0,Q.jsx)(Te,{"aria-label":`Desktop`,value:`desktop`,children:(0,Q.jsx)(M,{})}),(0,Q.jsx)(Te,{"aria-label":`Mobile`,value:`mobile`,children:(0,Q.jsx)(O,{})})]}),ue=(0,Q.jsx)(Rn,{globalSettings:{description:E,accentColor:D,icon:k,logo:A,coverImage:ee,headingFont:j,bodyFont:te},handleSave:b,themeSettingSections:re,updateGlobalSetting:w,updateThemeSetting:T,onTabChange:ie});return(0,Q.jsx)(bt,{buttonsDisabled:C.disabled,cancelLabel:`Close`,deviceSelector:L,dirty:y===`unsaved`,okLabel:C.label||`Save`,okVariant:C.variant,preview:ce,previewToolbarTabs:le,sidebar:ue,sidebarPadding:!1,siteLink:tt(t),size:`full`,testId:`design-modal`,title:`Design`,onClose:()=>{_===`setup`?h(`/analytics`):f(`design`)},onOk:async()=>{await b({fakeWhenUnchanged:!0})}})},Bn=({title:e,prompt:t,cancelLabel:n=`Cancel`,okLabel:r=`OK`,okVariant:i=`default`,onResolve:a})=>(0,Q.jsx)(de,{backDropClick:!1,cancelLabel:n,okLabel:r,okVariant:i,testId:`theme-editor-confirm-modal`,title:e,width:540,onCancel:()=>a(!1),onClose:()=>a(!1),onOk:()=>a(!0),children:(0,Q.jsx)(`div`,{className:`py-4`,children:t})}),Vn=({title:e,prompt:t,fieldTitle:n,initialValue:r,placeholder:i,cancelLabel:a=`Cancel`,okLabel:o=`Continue`,onResolve:s})=>{let[c,l]=(0,Z.useState)(r);return(0,Q.jsx)(de,{backDropClick:!1,cancelLabel:a,okDisabled:!c.trim(),okLabel:o,testId:`theme-editor-input-modal`,title:e,width:540,onCancel:()=>s(null),onClose:()=>s(null),onOk:()=>s(c),children:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4 py-4`,children:[t,(0,Q.jsxs)(q,{children:[(0,Q.jsx)(G,{htmlFor:`theme-editor-input`,children:n}),(0,Q.jsx)(Ne,{id:`theme-editor-input`,placeholder:i,value:c,autoFocus:!0,onChange:e=>l(e.target.value)})]})]})})},Hn=`inline-flex items-center gap-2 rounded-md border px-3 py-1.5 text-[13px] font-medium transition-colors focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#4a9eff] disabled:cursor-not-allowed disabled:opacity-50`,Un=`${Hn} border-[#2f333b] bg-transparent text-[#e6e7ea] hover:bg-[#1f2228]`,Wn=`${Hn} border-transparent bg-green text-black hover:bg-green-400`,Gn=({currentThemeName:e,changes:t,isSaving:n,onClose:r,onSave:i})=>(0,Q.jsxs)(`div`,{className:`flex items-center gap-3 border-b border-[#23262c] bg-[#1a1d21] px-4 py-3`,children:[(0,Q.jsxs)(`div`,{className:`flex min-w-0 items-baseline gap-2`,children:[(0,Q.jsx)(`h2`,{className:`truncate text-[14px] font-semibold text-[#f4f5f7]`,children:`Edit theme`}),(0,Q.jsx)(`span`,{className:`truncate text-[12px] text-[#8a8f98]`,children:e})]}),t.length>0&&(0,Q.jsxs)(`span`,{className:`rounded-full border border-transparent bg-[#3b2a16] px-2.5 py-1 text-[11px] leading-none text-[#f5a623]`,children:[v(t.length),` `,t.length===1?`file modified`:`files modified`]}),(0,Q.jsx)(`div`,{className:`grow`}),(0,Q.jsxs)(`button`,{className:Un,type:`button`,onClick:r,children:[(0,Q.jsx)(A,{size:14}),`Close`]}),(0,Q.jsxs)(`button`,{className:Wn,disabled:n,type:`button`,onClick:i,children:[(0,Q.jsx)(re,{size:14}),n?`Saving…`:`Save`]})]}),Kn=e=>{let t={type:`dir`,name:``,path:``,children:new Map};for(let n of Object.keys(e).sort()){let r=n.split(`/`),i=t;for(let t=0;t<r.length;t+=1){let a=r[t];if(t===r.length-1){i.children.set(a,{type:`file`,name:a,path:n,editable:e[n].editable});continue}let o=`${r.slice(0,t+1).join(`/`)}/`,s=i.children.get(a);if(s?.type===`dir`){i=s;continue}let c={type:`dir`,name:a,path:o,children:new Map};i.children.set(a,c),i=c}}return t},qn=e=>e.sort((e,t)=>e.type===t.type?e.name.localeCompare(t.name):e.type===`dir`?-1:1),Jn=`inline-flex h-5 w-5 items-center justify-center rounded-sm text-[#c8ccd3] transition-opacity hover:opacity-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#4a9eff] disabled:cursor-not-allowed disabled:opacity-30`,Yn=({currentFiles:e,selectedNode:t,setSelectedNode:n,expandedDirectories:r,setExpandedDirectories:i,changesMap:a,isLoading:o,onCreateFile:s,onRenameSelected:c,onDeleteSelected:l,onOpenFile:u})=>{let d=(e,o=0)=>{if(e.type===`file`){let n=t?.type===`file`&&t.path===e.path,r=a.get(e.path);return(0,Q.jsxs)(`button`,{className:`flex min-h-6 w-full items-center gap-1.5 rounded px-2 py-1 text-left text-[13px] leading-5 ${n?`bg-[#243043] text-white`:`text-[#c8ccd3] hover:bg-[#1f2228]`} ${e.editable?``:`opacity-70`}`,style:{paddingLeft:`${o*14+8}px`},type:`button`,onClick:()=>u(e.path),children:[(0,Q.jsx)(`span`,{className:`w-3 shrink-0`}),(0,Q.jsx)(E,{size:14}),(0,Q.jsx)(`span`,{className:`min-w-0 grow truncate`,children:e.name}),r&&(0,Q.jsx)(`span`,{className:`mr-1 size-1.5 shrink-0 rounded-full ${r===`deleted`?`bg-[#ff6b6b]`:r===`added`?`bg-[#14b886]`:`bg-[#f5a623]`}`})]},e.path)}let s=r.has(e.path),c=t?.type===`dir`&&t.path===e.path,l=qn(Array.from(e.children?.values()||[]));return(0,Q.jsxs)(`div`,{children:[e.path&&(0,Q.jsxs)(`button`,{className:`flex min-h-6 w-full items-center gap-1.5 rounded px-2 py-1 text-left text-[13px] leading-5 ${c?`bg-[#202630] text-white`:`text-[#c8ccd3] hover:bg-[#1f2228]`}`,style:{paddingLeft:`${o*14+8}px`},type:`button`,onClick:()=>{n({type:`dir`,path:e.path}),i(t=>{let n=new Set(t);return n.has(e.path)?n.delete(e.path):n.add(e.path),n})},children:[s?(0,Q.jsx)(S,{className:`shrink-0 text-[#6a6f78]`,size:12}):(0,Q.jsx)(k,{className:`shrink-0 text-[#6a6f78]`,size:12}),s?(0,Q.jsx)(D,{className:`shrink-0 text-[#8a8f98]`,size:14}):(0,Q.jsx)(ae,{className:`shrink-0 text-[#8a8f98]`,size:14}),(0,Q.jsx)(`span`,{className:`truncate`,children:e.name})]}),(e.path===``||s)&&(0,Q.jsx)(`div`,{children:l.map(t=>d(t,e.path?o+1:o))})]},e.path||`root`)};return(0,Q.jsxs)(`aside`,{className:`flex w-[280px] shrink-0 flex-col border-r border-[#23262c] bg-[#16181c]`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-2 border-b border-[#23262c] px-3 py-2`,children:[(0,Q.jsxs)(`div`,{className:`text-[12px] font-medium text-[#c8ccd3]`,children:[Object.keys(e).length,` files`]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(`button`,{"aria-label":`New file`,className:Jn,type:`button`,onClick:s,children:(0,Q.jsx)(te,{size:13})}),(0,Q.jsx)(`button`,{"aria-label":`Rename selected item`,className:Jn,disabled:!t,type:`button`,onClick:c,children:(0,Q.jsx)(j,{size:13})}),(0,Q.jsx)(`button`,{"aria-label":`Delete selected item`,className:Jn,disabled:!t,type:`button`,onClick:l,children:(0,Q.jsx)(w,{size:13})})]})]}),(0,Q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-2`,children:o?(0,Q.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3 text-center text-[13px] text-[#8a8f98]`,children:[(0,Q.jsx)(`div`,{className:`size-5 animate-spin rounded-full border-2 border-[#2f333b] border-t-[#14b886]`}),(0,Q.jsx)(`span`,{children:`Loading theme files…`})]}):Object.keys(e).length===0?(0,Q.jsx)(`div`,{className:`px-3 py-4 text-[12px] text-[#8a8f98]`,children:`This theme archive does not contain any files.`}):d(Kn(e))})]})},Xn=e(Tt(),1),Zn=e=>{if(!e.startsWith(`theme/edit/`))return{themeName:null,isInvalid:!1};let t=e.slice(11).split(`?`)[0];if(!t||t.includes(`/`))return{themeName:null,isInvalid:!0};try{let e=decodeURIComponent(t);return!e||e.includes(`/`)?{themeName:null,isInvalid:!0}:{themeName:e,isInvalid:!1}}catch{return{themeName:null,isInvalid:!0}}},Qn={maxFiles:1e3,maxExtractedBytes:32*1024*1024},$n=class extends Error{reason;constructor(e,t){super(t),this.name=`ThemeArchiveExtractionError`,this.reason=e}},er=new Set([`css`,`cjs`,`hbs`,`handlebars`,`htm`,`html`,`js`,`json`,`less`,`md`,`markdown`,`mjs`,`sass`,`scss`,`svg`,`txt`,`xml`,`yaml`,`yml`]),tr=new Set([`.editorconfig`,`.eslintignore`,`.eslintrc`,`.gitattributes`,`.gitignore`,`.npmignore`,`.prettierignore`,`.prettierrc`,`CODEOWNERS`,`LICENSE`,`LICENCE`,`NOTICE`,`Procfile`]),nr=e=>{if(er.has(rr(e)))return!0;let t=e.split(`/`).at(-1)||e;return tr.has(t)},rr=e=>{let t=e.lastIndexOf(`.`);return t===-1?``:e.slice(t+1).toLowerCase()},ir=e=>{let t=e.trim().replace(/^\/+/,``).replace(/\/+/g,`/`);if(!t)return null;let n=t.split(`/`).filter(Boolean);return n.length===0||n.some(e=>e===`.`||e===`..`)?null:n.join(`/`)},ar=e=>[`casper`,`source`].includes(e.toLowerCase()),or=e=>{if(e.length===0)return``;let t=e[0].indexOf(`/`);if(t<=0)return``;let n=e[0].slice(0,t+1);return e.every(e=>e.startsWith(n))?n:``},sr=e=>Object.fromEntries(Object.entries(e).map(([e,t])=>[e,{...t,date:new Date(t.date),binary:t.binary?new Uint8Array(t.binary):null}])),cr=`Failed to open the theme archive. Download the theme again and retry.`,lr=e=>{let t=e/(1024*1024);return Number.isInteger(t)?`${t} MB`:`${t.toFixed(1)} MB`},ur=e=>{let t=[];return e.forEach((e,n)=>{n.dir||t.push([e,n])}),t},dr=e=>{if(e.length>Qn.maxFiles)throw new $n(`too_many_files`,`This theme archive contains too many files for the browser editor (${e.length}/${Qn.maxFiles}).`)},fr=async e=>{try{return await Xn.default.loadAsync(e)}catch{throw new $n(`invalid_archive`,cr)}},pr=async e=>{try{return await e.async(`uint8array`)}catch{throw new $n(`invalid_archive`,cr)}},mr=async e=>{try{return await e.async(`string`)}catch{throw new $n(`invalid_archive`,cr)}},hr=e=>{let t=ir(e);if(!t||t!==e)throw new $n(`invalid_archive`,cr);return t},gr=(e,t)=>{let n=e+t;if(n>Qn.maxExtractedBytes)throw new $n(`too_large`,`This theme archive is too large to open in the browser editor. Extracted files must stay under ${lr(Qn.maxExtractedBytes)}.`);return n},_r=async e=>{let t=ur(await fr(e));dr(t);let n=or(t.map(([e])=>e)),r={},i=new TextEncoder,a=0;for(let[e,o]of t){let t=n?e.slice(n.length):e;if(!t)continue;let s=hr(t);if(nr(s))try{let e=await mr(o);a=gr(a,i.encode(e).byteLength),r[s]={path:s,editable:!0,content:e,binary:null,date:o.date||new Date,unixPermissions:typeof o.unixPermissions==`number`?o.unixPermissions:null,dosPermissions:typeof o.dosPermissions==`number`?o.dosPermissions:null};continue}catch{}let c=await pr(o);a=gr(a,c.byteLength),r[s]={path:s,editable:!1,content:null,binary:c,date:o.date||new Date,unixPermissions:typeof o.unixPermissions==`number`?o.unixPermissions:null,dosPermissions:typeof o.dosPermissions==`number`?o.dosPermissions:null}}return{files:r,rootPrefix:n}},vr=async({files:e,rootPrefix:t})=>{let n=new Xn.default;for(let[r,i]of Object.entries(e)){let e=`${t}${r}`,a={date:i.date,createFolders:!0,unixPermissions:i.unixPermissions??void 0,dosPermissions:i.dosPermissions??void 0};i.editable?n.file(e,i.content??``,a):n.file(e,i.binary,{...a,binary:!0})}return n.generateAsync({type:`blob`,mimeType:`application/zip`,compression:`DEFLATE`,compressionOptions:{level:6}})},yr=({baseFiles:e,currentFiles:t})=>{let n=new Set([...Object.keys(e),...Object.keys(t)]),r=[];for(let i of Array.from(n).sort()){let n=e[i],a=t[i];if(!n&&a){r.push({path:i,editable:a.editable,status:`added`});continue}if(n&&!a){r.push({path:i,editable:n.editable,status:`deleted`});continue}!n||!a||n.editable&&a.editable&&n.content!==a.content&&r.push({path:i,editable:!0,status:`modified`})}return r},br=({files:e,oldPrefix:t,newPrefix:n})=>{let r={};for(let[i,a]of Object.entries(e)){if(!i.startsWith(t)){r[i]=a;continue}let e=`${n}${i.slice(t.length)}`;r[e]={...a,path:e}}return r},xr=e=>{switch(rr(e)){case`css`:case`scss`:case`sass`:case`less`:return h(()=>import(`./dist-CZgIBXQN.js`).then(e=>e.r).then(e=>e.css()),__vite__mapDeps([0,1,2,3]),import.meta.url);case`js`:case`cjs`:case`mjs`:return h(()=>import(`./dist-4m6pHdc0.js`).then(e=>e.t).then(e=>e.javascript()),__vite__mapDeps([4,1,2,3]),import.meta.url);case`json`:return h(()=>import(`./dist-B6bJuxL3.js`).then(e=>e.json()),__vite__mapDeps([5,2,3]),import.meta.url);case`md`:case`markdown`:return h(()=>import(`./dist-CiHx7vA5.js`).then(e=>e.markdown()),__vite__mapDeps([6,2,7,3,0,1,4]),import.meta.url);case`yaml`:case`yml`:return h(()=>import(`./dist-zwwGt8Yf.js`).then(e=>e.yaml()),__vite__mapDeps([8,2,3]),import.meta.url);case`hbs`:case`handlebars`:case`html`:case`htm`:case`svg`:case`xml`:return h(()=>import(`./dist-ECAUrdGc.js`).then(e=>e.html()),__vite__mapDeps([7,2,3,0,1,4]),import.meta.url);default:return h(()=>import(`./dist-ECAUrdGc.js`).then(e=>e.html()),__vite__mapDeps([7,2,3,0,1,4]),import.meta.url)}},Sr=e=>{let t=rr(e);if(!t)return`text`;switch(t){case`hbs`:return`handlebars`;case`htm`:return`html`;case`yml`:return`yaml`;default:return t}},Cr=e=>{if(e[`package.json`]?.editable)return{type:`file`,path:`package.json`};let t=Object.keys(e).sort().find(t=>e[t].editable);if(t)return{type:`file`,path:t};let n=Object.keys(e).sort()[0];return n?{type:`file`,path:n}:null},wr=e=>{let t=e.split(`/`),n=[``];for(let e=0;e<t.length-1;e+=1)n.push(`${t.slice(0,e+1).join(`/`)}/`);return n},Tr=[`theme`,`design`],Er=e=>Tr.some(t=>e===t||e.startsWith(`${t}/`)),Dr=()=>{let e=window.location.hash.substring(1),t=`${window.location.protocol}//${window.location.hostname}`,n;try{n=new URL(e||`/`,t)}catch{return null}let r=n.searchParams.get(`from`);return r===null?null:r===``||Er(r)?r:null},Or=(e,t)=>{let n=`theme/edit/${encodeURIComponent(e)}`;return t===null?n:`${n}?from=${encodeURIComponent(t)}`},kr=(e,t)=>!e.editable&&nr(t),Ar=/^[a-z0-9][\w-]{0,63}$/,jr=[`COMPRESSED_TOO_LARGE`,`ENTRY_TOO_LARGE`,`TOTAL_TOO_LARGE`],Mr={COMPRESSED_TOO_LARGE:`Theme too large to upload`,ENTRY_TOO_LARGE:`File too large`,TOTAL_TOO_LARGE:`Theme contents too large`},Nr=Y({errors:ke(Y({message:J().optional(),code:je(jr),errorDetails:Y({entryName:J().optional(),limitBytes:De().positive().finite().optional()}).optional()})).min(1)}),Pr=e=>{if(!e||e<=0)return`the allowed size`;let t=e/(1024*1024);return t>=1?`${t.toFixed(1)} MB`:`${Math.round(e/1024)} KB`},Fr=e=>{if(!(e instanceof d))return null;let t=e.data;if(typeof t==`string`)try{t=JSON.parse(t)}catch{return null}let n=Nr.safeParse(t);return n.success?n.data.errors[0]??null:null},Ir=e=>{let{entryName:t,limitBytes:n}=e.errorDetails??{},r=Pr(n);switch(e.code){case`COMPRESSED_TOO_LARGE`:return`The theme archive is too large to upload (max ${r}).`;case`ENTRY_TOO_LARGE`:return t?`The file "${t}" is too large (max ${r} per file).`:`One of the files is too large (max ${r} per file).`;case`TOTAL_TOO_LARGE`:return`The theme contents exceed the maximum allowed size of ${r}.`;default:return e.message||`Theme upload failed.`}},Lr=e=>`inline-flex h-5 w-5 items-center justify-center rounded-sm text-[#c8ccd3] transition-opacity hover:opacity-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#4a9eff] ${e?`opacity-100`:`opacity-60`}`,Rr=`flex h-full items-center justify-center p-8 text-center text-[13px] text-[#6a6f78]`,zr=vt.theme({"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:`#355070`},".cm-content ::selection":{color:`#ffffff`}},{dark:!0}),Br=({themeName:e})=>{let{updateRoute:t}=U(),n=c(),r=u(),{data:i}=Je(),{mutateAsync:s}=He(),[d,p]=(0,Z.useState)(e),[m,h]=(0,Z.useState)({}),[g,_]=(0,Z.useState)({}),[y,b]=(0,Z.useState)(``),[x,S]=(0,Z.useState)(null),[C,w]=(0,Z.useState)(new Set([``])),[T,E]=(0,Z.useState)(!0),[D,O]=(0,Z.useState)(!1),[k,A]=(0,Z.useState)(null),[j,te]=(0,Z.useState)(!1),[M,re]=(0,Z.useState)(null),N=(0,Z.useRef)(null),[ie,ae]=(0,Z.useState)(null),[P,le]=(0,Z.useState)(null),[F,I]=(0,Z.useState)([]);(0,Z.useEffect)(()=>{let t=!0,r=()=>{p(e),h({}),_({}),b(``),S(null),w(new Set([``]))};return(async()=>{E(!0),A(null),r();try{let r=await _r(await n(o(`/themes/${encodeURIComponent(e)}/download/`),{responseType:`arraybuffer`})),i=sr(r.files),a=Cr(i);if(!t)return;p(e),h(sr(r.files)),_(i),b(r.rootPrefix),S(a),w(new Set(a?.type===`file`?wr(a.path):[``]))}catch(n){if(!t)return;n instanceof l&&n.response?A(`Failed to load theme "${e}" (${n.response.status})`):A(n instanceof Error?n.message:`Failed to load theme`)}finally{t&&E(!1)}})(),()=>{t=!1}},[e,n]),(0,Z.useEffect)(()=>{let e=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[]);let L=(0,Z.useMemo)(()=>yr({baseFiles:m,currentFiles:g}),[m,g]),ue=(0,Z.useMemo)(()=>new Map(L.map(e=>[e.path,e.status])),[L]),R=x?.type===`file`?g[x.path]:null;(0,Z.useEffect)(()=>{let e=!0;return R?.editable?(xr(R.path).then(t=>{e&&I([se({top:!0}),oe,t,...j?[vt.lineWrapping]:[],zr])}).catch(()=>{e&&I([se({top:!0}),oe,...j?[vt.lineWrapping]:[],zr])}),()=>{e=!1}):(I([]),()=>{e=!1})},[j,R]);let z=(0,Z.useCallback)(()=>{let e=N.current;e&&(N.current=null,e.type===`confirmation`?e.resolve(!1):e.resolve(null))},[]),B=e=>(z(),new Promise(t=>{let n={type:`confirmation`,props:e,resolve:t};N.current=n,re(n)})),V=e=>(z(),new Promise(t=>{let n={type:`input`,props:e,resolve:t};N.current=n,re(n)}));(0,Z.useEffect)(()=>()=>z(),[z]);let H=async()=>{L.length>0&&!await B({title:`Discard changes?`,prompt:`You have unsaved theme changes. Close the editor and discard them?`,okLabel:`Discard changes`,okVariant:`destructive`})||t(Dr()??`design/change-theme`)},de=(0,Z.useRef)(async()=>{}),fe=!!(M||ie||P);(0,Z.useEffect)(()=>{let e=e=>{if((e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`s`){if(e.preventDefault(),fe){e.stopPropagation(),e.stopImmediatePropagation();return}de.current();return}e.key===`Escape`&&(fe||(e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation()))};return window.addEventListener(`keydown`,e,!0),()=>{window.removeEventListener(`keydown`,e,!0)}},[fe]);let pe=e=>{w(t=>{let n=new Set(t);for(let t of wr(e))n.add(t);return n})},W=(e,t)=>{if(_(e),t){S(t),t.type===`file`&&pe(t.path);return}x?.type===`file`&&e[x.path]||S(Cr(e))},me=async()=>{let e=await V({title:`Create file`,fieldTitle:`File path`,initialValue:`partials/new-file.hbs`,okLabel:`Create file`,prompt:`Add a new editable file to this theme.`}),t=e?ir(e):null;if(!t)return;if(!nr(t)){f.error(`Only text files can be created here`,{description:`Use a text-based theme file extension such as .hbs, .css, .js, or .json.`});return}if(g[t]){f.error(`File already exists`);return}let n={...g,[t]:{path:t,editable:!0,content:``,binary:null,date:new Date,unixPermissions:null,dosPermissions:null}};W(n,{type:`file`,path:t})},he=async()=>{if(!x)return;let e=x.type===`dir`?x.path.replace(/\/$/,``):x.path,t=x.type===`dir`?`Rename folder to`:`Rename file to`,n=await V({title:x.type===`dir`?`Rename folder`:`Rename file`,fieldTitle:`Path`,initialValue:e,okLabel:`Rename`,prompt:t}),r=n?ir(n):null;if(!r||r===e)return;if(x.type===`file`){let e=g[x.path];if(!nr(r)&&e.editable){f.error(`Text files must keep a text file extension`);return}if(kr(e,r)){f.error(`Binary files cannot be renamed to a text file`,{description:`Rename this file with a non-text extension to keep its contents intact.`});return}if(g[r]){f.error(`A file with that name already exists`);return}let t={...g},n=t[x.path];delete t[x.path],t[r]={...n,path:r,editable:nr(r)},W(t,{type:`file`,path:r});return}let i=`${r}/`;if(i.startsWith(x.path)){f.error(`A folder cannot be renamed inside itself`);return}if(Object.keys(g).find(e=>e.startsWith(i))){f.error(`A folder with that path already exists`);return}let a=br({files:g,oldPrefix:x.path,newPrefix:i});W(a,{type:`dir`,path:i}),w(e=>{let t=new Set;for(let n of e){if(!n.startsWith(x.path)){t.add(n);continue}t.add(`${i}${n.slice(x.path.length)}`)}return t})},ge=async()=>{if(!x)return;if(x.type===`file`){if(!await B({title:`Delete file`,prompt:(0,Q.jsxs)(Q.Fragment,{children:[`Delete `,(0,Q.jsx)(`strong`,{children:x.path}),` from this theme?`]}),okLabel:`Delete`,okVariant:`destructive`}))return;let e={...g};delete e[x.path],W(e);return}let e=Object.keys(g).filter(e=>e.startsWith(x.path));if(!e.length||!await B({title:`Delete folder`,prompt:(0,Q.jsxs)(Q.Fragment,{children:[`Delete `,v(e.length),` file`,e.length===1?``:`s`,` `,`from `,(0,Q.jsx)(`strong`,{children:x.path}),`?`]}),okLabel:`Delete`,okVariant:`destructive`}))return;let t={...g};for(let n of e)delete t[n];W(t)},_e=e=>{let t=m[e],n=g[e],r={...g};!t&&n?delete r[e]:t&&(r[e]={...t,binary:t.binary?new Uint8Array(t.binary):null}),W(r)},ve=async()=>{let e=(await V({title:`Save as new theme`,fieldTitle:`Theme name`,initialValue:`${d}-edited`,okLabel:`Continue`,prompt:`Default themes cannot be overwritten. Save your edits as a new theme instead.`}))?.trim().toLowerCase();return e?Ar.test(e)?ar(e)?(f.error(`Built-in themes cannot be overwritten`),null):e:(f.error(`Invalid theme name`,{description:`Use 1-64 characters, starting with a letter or number. Allowed: letters, numbers, dashes, and underscores.`}),null):null},ye=async()=>{if(D)return;if(L.length===0){f.info(`No changes to save`);return}let e=d,n=ar(e)?await ve():e;if(!n)return;let o=n!==e,c=i?.themes.some(e=>e.name===n)||!1,l=o?`Save your edits as "${n}"?`:`Upload ${v(L.length)} changed file${L.length===1?``:`s`} and replace "${e}"?`;if(await B({title:o?`Save theme as new copy`:`Update theme`,prompt:l,okLabel:o?`Save theme`:`Replace theme`})&&!(o&&c&&!await B({title:`Overwrite theme`,prompt:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`strong`,{children:n}),` already exists. Do you want to overwrite it?`]}),okLabel:`Overwrite`,okVariant:`destructive`}))){O(!0);try{let r=await vr({files:g,rootPrefix:y}),i=(await s({file:new File([r],`${n}.zip`,{type:`application/zip`}),copySettingsFrom:o?e:void 0})).themes[0],a=Dr();h(sr(g)),o&&(p(n),b(y?`${n}/`:``),t(Or(n,a)));let c=Nt(i);o||c.length?le({title:o?`Theme saved`:`Theme updated`,action:`saved`,installedTheme:i}):f.success(`Theme saved`,{description:(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`span`,{className:`capitalize`,children:i.name}),` has been updated.`]})})}catch(e){if(e instanceof a&&e.response?.status===422){let t=Mt(e.data?.errors);if(t){ae(t);return}}let t=Fr(e);if(t){f.error(Mr[t.code],{description:Ir(t)});return}r(e)}finally{O(!1)}}};(0,Z.useEffect)(()=>{de.current=ye});let be=e=>{S({type:`file`,path:e}),pe(e)},xe=R?ue.get(R.path):null;return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{"aria-label":`Edit theme ${e}`,"aria-modal":`true`,className:`dark fixed inset-0 z-[140] bg-[rgba(10,11,13,0.72)] text-[#e6e7ea] backdrop-blur-[4px]`,"data-testid":`theme-code-editor-modal`,role:`dialog`,onClick:e=>{e.target===e.currentTarget&&H()},children:(0,Q.jsxs)(`div`,{className:`relative flex size-full flex-col overflow-hidden bg-[#15171a]`,children:[(0,Q.jsx)(Gn,{changes:L,currentThemeName:d,isSaving:D,onClose:()=>void H(),onSave:()=>void ye()}),k&&(0,Q.jsx)(`div`,{className:`border-b border-[#512828] bg-[#3a1d1d] px-4 py-2 text-[12px] text-[#ffbdbd]`,children:k}),(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1`,children:[(0,Q.jsx)(Yn,{changesMap:ue,currentFiles:g,expandedDirectories:C,isLoading:T,selectedNode:x,setExpandedDirectories:w,setSelectedNode:S,onCreateFile:()=>void me(),onDeleteSelected:()=>void ge(),onOpenFile:be,onRenameSelected:()=>void he()}),(0,Q.jsxs)(`section`,{className:`flex min-w-0 flex-1 flex-col bg-[#16181c]`,children:[(0,Q.jsx)(`div`,{className:`flex items-center gap-2 border-b border-[#23262c] bg-[#17191d] px-4 py-2 text-[12px] text-[#8a8f98]`,children:R?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{className:`min-w-0 truncate font-medium text-[#e6e7ea]`,children:R.path}),(0,Q.jsx)(`span`,{className:`rounded bg-[#2a2d33] px-2 py-0.5 text-[10px] tracking-[0.04em] text-[#c8ccd3] uppercase`,children:Sr(R.path)}),xe&&(0,Q.jsxs)(`button`,{className:`inline-flex items-center gap-1 rounded px-2 py-0.5 text-[10px] tracking-[0.04em] uppercase ${xe===`deleted`?`bg-[#4a2222] text-[#ffbdbd]`:xe===`added`?`bg-[#17342a] text-[#a5e8c8]`:`bg-[#3b2a16] text-[#f5a623]`}`,type:`button`,onClick:()=>_e(R.path),children:[(0,Q.jsx)(ee,{size:11}),`Revert`]}),(0,Q.jsx)(`div`,{className:`grow`}),R.editable&&(0,Q.jsx)(`button`,{"aria-label":j?`Disable text wrap`:`Enable text wrap`,"aria-pressed":j,className:Lr(j),title:j?`Disable text wrap`:`Enable text wrap`,type:`button`,onClick:()=>te(e=>!e),children:(0,Q.jsx)(ne,{className:`shrink-0`,size:14,strokeWidth:2})})]}):(0,Q.jsx)(`span`,{children:`No file selected`})}),(0,Q.jsxs)(`div`,{className:`min-h-0 flex-1`,children:[!x&&!T&&(0,Q.jsx)(`div`,{className:Rr,children:`Select a file from the tree to start editing.`}),x?.type===`dir`&&(0,Q.jsx)(`div`,{className:Rr,children:`Folder selected. Choose a file to edit, or rename or delete the folder from the file pane.`}),R&&!R.editable&&(0,Q.jsx)(`div`,{className:Rr,children:`This file cannot be edited in the browser.`}),R?.editable&&(0,Q.jsx)(ce,{basicSetup:{highlightActiveLine:!1,highlightActiveLineGutter:!1},className:`h-full [&_.cm-button]:h-8 [&_.cm-button]:rounded-md [&_.cm-button]:border [&_.cm-button]:border-[#2f333b] [&_.cm-button]:bg-[#1f2228] [&_.cm-button]:bg-none [&_.cm-button]:px-3 [&_.cm-button]:text-[13px] [&_.cm-button]:text-[#c8ccd3] [&_.cm-button:hover]:bg-[#2a2d33] [&_.cm-content]:min-h-full [&_.cm-content]:py-3 [&_.cm-content_*::selection]:bg-[#355070] [&_.cm-cursor]:border-l-[#e6e7ea] [&_.cm-editor]:h-full [&_.cm-editor]:rounded-none [&_.cm-editor]:border-0 [&_.cm-editor]:bg-[#16181c] [&_.cm-gutters]:border-r-[#23262c] [&_.cm-gutters]:bg-[#17191d] [&_.cm-line::selection]:bg-[#355070] [&_.cm-panel]:bg-[#17191d] [&_.cm-panel]:shadow-none [&_.cm-panel.cm-search]:gap-2 [&_.cm-panel.cm-search]:px-3 [&_.cm-panel.cm-search]:py-2 [&_.cm-panel.cm-search]:text-[13px] [&_.cm-panels]:border-b [&_.cm-panels]:border-[#23262c] [&_.cm-panels]:bg-[#17191d] [&_.cm-panels]:text-[#c8ccd3] [&_.cm-scroller]:min-h-full [&_.cm-scroller]:overflow-auto [&_.cm-scroller]:bg-[#16181c] [&_.cm-search]:flex [&_.cm-search]:flex-wrap [&_.cm-search]:items-center [&_.cm-search]:gap-2 [&_.cm-search_label]:inline-flex [&_.cm-search_label]:items-center [&_.cm-search_label]:gap-1.5 [&_.cm-search_label]:text-[#a5abb4] [&_.cm-search_label_input]:size-4 [&_.cm-search_label_input]:accent-[#14b886] [&_.cm-searchMatch]:bg-[#243043] [&_.cm-searchMatch-selected]:bg-[#3b2a16] [&_.cm-searchMatch-selected]:outline-none [&_.cm-selectionBackground]:!bg-[#355070] [&_.cm-selectionLayer_.cm-selectionBackground]:!bg-[#355070] [&_.cm-textfield]:h-8 [&_.cm-textfield]:min-w-[220px] [&_.cm-textfield]:rounded-md [&_.cm-textfield]:border [&_.cm-textfield]:border-[#2f333b] [&_.cm-textfield]:bg-[#16181c] [&_.cm-textfield]:px-2.5 [&_.cm-textfield]:text-[#e6e7ea] [&_.cm-textfield]:outline-none [&_.cm-textfield]:placeholder:text-[#6a6f78]`,extensions:F,height:`full`,theme:oe,value:R.content||``,autoFocus:!0,onChange:e=>{_(t=>({...t,[R.path]:{...t[R.path],content:e}}))}},`${R.path}:${F.length}`)]})]})]})]})}),M?.type===`confirmation`&&(0,Q.jsx)(Bn,{...M.props,onResolve:e=>{N.current===M&&(N.current=null,re(null),M.resolve(e))}}),M?.type===`input`&&(0,Q.jsx)(Vn,{...M.props,onResolve:e=>{N.current===M&&(N.current=null,re(null),M.resolve(e))}}),ie&&(0,Q.jsx)(nn,{action:`saved`,cancelLabel:`Close`,fatalErrors:ie,themeName:d,title:`Theme not saved`,onClose:()=>ae(null)}),P&&(0,Q.jsx)(hn,{...P,onClose:()=>le(null)})]})},Vr=()=>{let{route:e,updateRoute:t}=U(),n=gt(),r=e,[i,a]=(0,Z.useState)(null),[o,s]=(0,Z.useState)(!1),[c,l]=(0,Z.useState)(!1),[u,d]=(0,Z.useState)(null),[f,p]=(0,Z.useState)(!1),{checkThemeLimitError:m,isThemeLimitCheckReady:h,noThemeChangesAllowed:g,isThemeLimited:_}=Et(),[v,y]=(0,Z.useState)(null),[b,x]=(0,Z.useState)(!1),{themeName:S,isInvalid:C}=Zn(r),{showLimit:w}=mt(),T=(0,Z.useCallback)(e=>{w({prompt:e,onOk:()=>t({route:n,isExternal:!0})})},[w,t,n]);if((0,Z.useEffect)(()=>{r===`design/change-theme`&&h?(async()=>{if(!g){s(!1),a(null);return}s(!0);let e=await m();a(e),s(!1),e&&(T(e),t(`theme`))})():(a(null),s(!1))},[m,r,h,g,T,t]),(0,Z.useEffect)(()=>{r!==`theme/install`&&(x(!1),y(null),l(!1))},[r]),(0,Z.useEffect)(()=>{C&&t(`theme`)},[C,t]),(0,Z.useEffect)(()=>{let e=!1;return(async()=>{if(!S){d(null),p(!1);return}if(!h){p(!0);return}if(!_){d(null),p(!1);return}p(!0);let n=await m(`.`);e||(d(n),p(!1),n&&(T(n),t(`theme`)))})(),()=>{e=!0}},[m,S,h,_,T,t]),(0,Z.useEffect)(()=>{let e=()=>{let e=window.location.href.split(`#`)[1]?.split(`?`)[1];return e?new URLSearchParams(e).get(`ref`):null},n=e=>{y(!1),T(e),t({route:`theme`,replace:!0})};(async()=>{if(r!==`theme/install`){l(!1);return}if(x(!0),!h){l(!0);return}if(!_){y(!0),l(!1);return}l(!0);let t=e();if(!t){y(!1),l(!1);return}let i=t.split(`/`)[1]?.toLowerCase(),a=await m(i);if(r!==`theme/install`){l(!1);return}if(a){y(!1),l(!1),n(a);return}y(!0),l(!1)})()},[m,r,h,g,_,T,t]),r===`design/edit`)return(0,Q.jsx)(zn,{});if(r===`design/change-theme`)return o||i?null:(0,Q.jsx)(Cn,{});if(r===`theme/install`){if(!b||!h||c||v===null||!v)return null;let e=window.location.href.split(`#`)[1]?.split(`?`)[1],t=null,n=null;if(e){let r=new URLSearchParams(e);t=r.get(`ref`),n=r.get(`source`)}return(0,Q.jsx)(Cn,{source:n,themeRef:t})}else if(r.startsWith(`theme/edit/`))return C||!S||f||u?null:(0,Q.jsx)(Br,{themeName:S});else return null};export{Vr as default};
@@ -1 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{n as r}from"./dist-Ndy-PuGN.js";import{l as i,t as a}from"./dist-B3keLvjj.js";import{D as o,p as s,t as c}from"./button-eNMKQWXr.js";import{t as l}from"./label-BnSCvffu.js";import{t as u}from"./textarea-DJ1Q5V39.js";import{_ as d,f,l as p,v as m,y as h}from"./schemas-DppqmpeJ.js";import{$n as g,Kt as _,Qn as v,St as y,_r as b,bn as x,bt as S,mr as C,wt as w}from"./index-6MkPdCtr.js";import{t as T}from"./social-web-handle-CvfIKPww.js";var E=n(),D=e(t(),1),O=e=>e.type===`checkbox`,k=e=>e instanceof Date,A=e=>e==null,ee=e=>typeof e==`object`,j=e=>!A(e)&&!Array.isArray(e)&&ee(e)&&!k(e),te=e=>j(e)&&e.target?O(e.target)?e.target.checked:e.target.value:e,ne=(e,t)=>t.split(`.`).some((t,n,r)=>!isNaN(Number(t))&&e.has(r.slice(0,n).join(`.`))),M=e=>{let t=e.constructor&&e.constructor.prototype;return j(t)&&t.hasOwnProperty(`isPrototypeOf`)},re=typeof window<`u`&&window.HTMLElement!==void 0&&typeof document<`u`;function N(e){if(e instanceof Date)return new Date(e);let t=typeof FileList<`u`&&e instanceof FileList;if(re&&(e instanceof Blob||t))return e;let n=Array.isArray(e);if(!n&&!(j(e)&&M(e)))return e;let r=n?[]:Object.create(Object.getPrototypeOf(e));for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=N(e[t]));return r}var P={BLUR:`blur`,FOCUS_OUT:`focusout`,CHANGE:`change`,SUBMIT:`submit`,TRIGGER:`trigger`,VALID:`valid`},F={onBlur:`onBlur`,onChange:`onChange`,onSubmit:`onSubmit`,onTouched:`onTouched`,all:`all`},I={max:`max`,min:`min`,maxLength:`maxLength`,minLength:`minLength`,pattern:`pattern`,required:`required`,validate:`validate`},ie=`root`,ae=[`__proto__`,`constructor`,`prototype`],oe=/^\w*$/,se=e=>oe.test(e),L=e=>e===void 0,R=/[.[\]'"]/,ce=e=>e.split(R).filter(Boolean),z=(e,t,n)=>{if(!t||!j(e))return n;let r=se(t)?[t]:ce(t);if(r.some(e=>ae.includes(e)))return n;let i=r.reduce((e,t)=>A(e)?void 0:e[t],e);return L(i)||i===e?L(e[t])?n:e[t]:i},B=e=>typeof e==`boolean`,V=e=>typeof e==`function`,H=(e,t,n)=>{let r=-1,i=se(t)?[t]:ce(t),a=i.length,o=a-1;for(;++r<a;){let t=i[r],a=n;if(r!==o){let n=e[t];a=j(n)||Array.isArray(n)?n:isNaN(+i[r+1])?{}:[]}if(ae.includes(t))return;e[t]=a,e=e[t]}},le=D.createContext(null);le.displayName=`HookFormControlContext`;var U=()=>D.useContext(le),ue=(e,t,n,r=!0)=>{let i={};for(let a in e)Object.defineProperty(i,a,{get:()=>{let i=a;return t._proxyFormState[i]!==F.all&&(t._proxyFormState[i]=!r||F.all),n&&(n[i]=!0),e[i]}});return i},de=re?D.useLayoutEffect:D.useEffect;function fe(e){let t=U(),{control:n=t,disabled:r,name:i,exact:a}=e||{},[o,s]=D.useState(()=>({...n._formState,defaultValues:n._defaultValues})),c=D.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1});return de(()=>n._subscribe({name:i,formState:c.current,exact:a,callback:e=>{!r&&s({...n._formState,...e,defaultValues:n._defaultValues})}}),[i,r,a]),D.useEffect(()=>{c.current.isValid&&n._setValid(!0)},[n]),D.useMemo(()=>ue(o,n,c.current,!1),[o,n])}var W=e=>typeof e==`string`,pe=(e,t,n,r,i)=>W(e)?(r&&t.watch.add(e),z(n,e,i)):Array.isArray(e)?e.map(e=>(r&&t.watch.add(e),z(n,e))):(r&&(t.watchAll=!0),n),me=e=>A(e)||!ee(e),he=(e,t)=>t.length===0&&!Array.isArray(e)&&!M(e);function G(e,t,n=new WeakMap){if(e===t)return!0;if(me(e)||me(t))return Object.is(e,t);if(k(e)&&k(t))return Object.is(e.getTime(),t.getTime());let r=Object.keys(e),i=Object.keys(t);if(r.length!==i.length)return!1;if(he(e,r)||he(t,i))return Object.is(e,t);if(!r.length&&Array.isArray(e)!==Array.isArray(t))return!1;let a=n.get(e);if(a&&a.has(t))return!0;if(a)a.add(t);else{let r=new WeakSet;r.add(t),n.set(e,r)}for(let i of r){let r=e[i];if(!(i in t))return!1;if(i!==`ref`){let e=t[i];if(k(r)&&k(e)||(j(r)||Array.isArray(r))&&(j(e)||Array.isArray(e))?!G(r,e,n):!Object.is(r,e))return!1}}return!0}function K(e){let t=U(),{control:n=t,name:r,defaultValue:i,disabled:a,exact:o,compute:s}=e||{},c=D.useRef(i),l=D.useRef(s),u=D.useRef(void 0),d=D.useRef(n),f=D.useRef(r);l.current=s;let[p,m]=D.useState(()=>{let e=n._getWatch(r,c.current);return l.current?l.current(e):e}),h=D.useCallback(e=>{let t=pe(r,n._names,e||n._formValues,!1,c.current);return l.current?l.current(t):t},[n._formValues,n._names,r]),g=D.useCallback(e=>{if(!a){let t=pe(r,n._names,e||n._formValues,!1,c.current);if(l.current){let e=l.current(t);G(e,u.current)||(m(e),u.current=e)}else m(t)}},[n._formValues,n._names,a,r]);de(()=>((d.current!==n||!G(f.current,r))&&(d.current=n,f.current=r,g()),n._subscribe({name:r,formState:{values:!0},exact:o,callback:e=>{g(e.values)}})),[n,o,r,g]),D.useEffect(()=>n._removeUnmounted());let _=d.current!==n,v=f.current,y=D.useMemo(()=>{if(a)return null;let e=!_&&!G(v,r);return _||e?h():null},[a,_,r,v,h]);return y===null?p:y}function ge(e){let t=U(),{name:n,disabled:r,control:i=t,shouldUnregister:a,defaultValue:o,exact:s=!0}=e,c=ne(i._names.array,n),l=K({control:i,name:n,defaultValue:D.useMemo(()=>z(i._formValues,n,z(i._defaultValues,n,o)),[i,n,o]),exact:s}),u=fe({control:i,name:n,exact:s}),d=D.useRef(e),f=D.useRef(null),p=D.useRef(i.register(n,{...e.rules,value:l,...B(e.disabled)?{disabled:e.disabled}:{}}));d.current=e;let m=D.useMemo(()=>Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!z(u.errors,n)},isDirty:{enumerable:!0,get:()=>!!z(u.dirtyFields,n)},isTouched:{enumerable:!0,get:()=>!!z(u.touchedFields,n)},isValidating:{enumerable:!0,get:()=>!!z(u.validatingFields,n)},error:{enumerable:!0,get:()=>z(u.errors,n)}}),[u,n]),h=D.useCallback(e=>{let t=te(e);return z(i._fields,n)||(p.current=i.register(n,{...d.current.rules,value:t})),p.current.onChange({target:{value:te(e),name:n},type:P.CHANGE})},[n,i]),g=D.useCallback(()=>p.current.onBlur({target:{value:z(i._formValues,n),name:n},type:P.BLUR}),[n,i._formValues]),_=D.useCallback(e=>{e&&(f.current={focus:()=>V(e.focus)&&e.focus(),select:()=>V(e.select)&&e.select(),setCustomValidity:t=>V(e.setCustomValidity)&&e.setCustomValidity(t),reportValidity:()=>V(e.reportValidity)&&e.reportValidity()});let t=z(i._fields,n);t&&t._f&&e&&(t._f.ref=f.current)},[i._fields,n]),v=D.useMemo(()=>({name:n,value:l,...B(r)||u.disabled?{disabled:u.disabled||r}:{},onChange:h,onBlur:g,ref:_}),[n,r,u.disabled,h,g,_,l]);return D.useEffect(()=>{let e=i._options.shouldUnregister||a;i.register(n,{...d.current.rules,...B(d.current.disabled)?{disabled:d.current.disabled}:{}});let t=(e,t)=>{let n=z(i._fields,e);n&&n._f&&(n._f.mount=t)};if(t(n,!0),e){let e=N(z(a?i._defaultValues:i._options.values||i._defaultValues,n,z(i._options.defaultValues,n,d.current.defaultValue)));H(i._defaultValues,n,e),L(z(i._formValues,n))&&H(i._formValues,n,e)}if(!c&&i.register(n),f.current){let e=z(i._fields,n);e&&e._f&&(e._f.ref=f.current)}return()=>{(c?e&&!i._state.action:e)?i.unregister(n):t(n,!1)}},[n,i,c,a]),D.useEffect(()=>{i._setDisabledField({disabled:r,name:n})},[r,n,i]),D.useMemo(()=>({field:v,formState:u,fieldState:m}),[v,u,m])}var _e=e=>e.render(ge(e)),ve=D.createContext(null);ve.displayName=`HookFormContext`;var ye=()=>D.useContext(ve),be=({children:e,watch:t,getValues:n,getFieldState:r,setError:i,clearErrors:a,setValue:o,setValues:s,trigger:c,formState:l,resetField:u,reset:d,handleSubmit:f,unregister:p,control:m,register:h,setFocus:g,subscribe:_})=>{let v=D.useMemo(()=>({watch:t,getValues:n,getFieldState:r,setError:i,clearErrors:a,setValue:o,setValues:s,trigger:c,formState:l,resetField:u,reset:d,handleSubmit:f,unregister:p,control:m,register:h,setFocus:g,subscribe:_}),[a,m,l,r,n,f,h,d,u,i,g,o,s,_,c,p,t]);return D.createElement(ve.Provider,{value:v},D.createElement(le.Provider,{value:v.control},e))},q=(e,t,n,r,i)=>t?{...n[e],types:{...n[e]&&n[e].types?n[e].types:{},[r]:i||!0}}:{},xe=e=>Array.isArray(e)?e.filter(Boolean):[],Se=e=>Array.isArray(e)?e:[e],Ce=()=>{let e=[];return{get observers(){return e},next:t=>{for(let n of e)n.next&&n.next(t)},subscribe:t=>(e.push(t),{unsubscribe:()=>{e=e.filter(e=>e!==t)}}),unsubscribe:()=>{e=[]}}};function we(e,t){let n={};for(let r in e)if(e.hasOwnProperty(r)){let i=e[r],a=t[r];if(i&&j(i)&&a){let e=we(i,a);j(e)&&(n[r]=e)}else e[r]&&(n[r]=a)}return n}var J=e=>j(e)&&!Object.keys(e).length,Te=e=>e.type===`file`,Ee=e=>{if(!re)return!1;let t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},De=e=>e.type===`select-multiple`,Oe=e=>e.type===`radio`,ke=e=>Oe(e)||O(e),Ae=e=>Ee(e)&&e.isConnected;function je(e,t){let n=t.slice(0,-1).length,r=0;for(;r<n;){if(A(e)){e=void 0;break}e=e[t[r]],r++}return e}function Me(e){for(let t in e)if(e.hasOwnProperty(t)&&!L(e[t]))return!1;return!0}function Y(e,t){if(W(t)&&Object.prototype.hasOwnProperty.call(e,t))return delete e[t],e;let n=Array.isArray(t)?t:se(t)?[t]:ce(t),r=n.length===1?e:je(e,n),i=n.length-1,a=n[i];return r&&delete r[a],i!==0&&(j(r)&&J(r)||Array.isArray(r)&&Me(r))&&Y(e,n.slice(0,-1)),e}var Ne=e=>{for(let t in e)if(V(e[t]))return!0;return!1};function Pe(e){return Array.isArray(e)||j(e)&&!Ne(e)}function X(e,t={}){for(let n in e){let r=e[n];Pe(r)?(t[n]=Array.isArray(r)?[]:{},X(r,t[n])):L(r)||(t[n]=!0)}return t}function Fe(e){if(e!==!1){if(e===!0)return!0;if(Array.isArray(e)){let t=e.map(e=>Fe(e));return t.some(e=>e!==void 0)?t:void 0}if(j(e)){let t={};for(let n in e){let r=Fe(e[n]);L(r)||(t[n]=r)}return Object.keys(t).length?t:void 0}}}function Z(e,t,n){n||=X(t);for(let r in e){let i=e[r];if(Pe(i))L(t)||me(n[r])?n[r]=X(i,Array.isArray(i)?[]:{}):Z(i,A(t)?{}:t[r],n[r]);else{let e=t[r];n[r]=!G(i,e)}}return Fe(n)||{}}var Ie={value:!1,isValid:!1},Le={value:!0,isValid:!0},Re=e=>{if(Array.isArray(e)){if(e.length>1){let t=e.filter(e=>e&&e.checked&&!e.disabled).map(e=>e.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!L(e[0].attributes.value)?L(e[0].value)||e[0].value===``?Le:{value:e[0].value,isValid:!0}:Le:Ie}return Ie},ze=(e,{valueAsNumber:t,valueAsDate:n,setValueAs:r})=>L(e)?e:t?e===``?NaN:e&&+e:n&&W(e)?new Date(e):r?r(e):e,Be={isValid:!1,value:null},Ve=e=>Array.isArray(e)?e.reduce((e,t)=>t&&t.checked&&!t.disabled?{isValid:!0,value:t.value}:e,Be):Be;function He(e){let t=e.ref;return Te(t)?t.files:Oe(t)?Ve(e.refs).value:De(t)?[...t.selectedOptions].map(({value:e})=>e):O(t)?Re(e.refs).value:ze(L(t.value)?e.ref.value:t.value,e)}var Ue=(e,t,n,r)=>{let i={};for(let n of e){let e=z(t,n);e&&H(i,n,e._f)}return{criteriaMode:n,names:[...e],fields:i,shouldUseNativeValidation:r}},Q=e=>e instanceof RegExp,We=e=>L(e)?e:Q(e)?e.source:j(e)?Q(e.value)?e.value.source:e.value:e,Ge=e=>({isOnSubmit:!e||e===F.onSubmit,isOnBlur:e===F.onBlur,isOnChange:e===F.onChange,isOnAll:e===F.all,isOnTouch:e===F.onTouched}),Ke=`AsyncFunction`,qe=e=>{if(!e||!e.validate)return!1;if(V(e.validate))return e.validate.constructor.name===Ke;if(j(e.validate)){for(let t in e.validate)if(e.validate[t].constructor.name===Ke)return!0}return!1},Je=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),Ye=(e,t,n)=>{if(n)return!1;if(t.watchAll||t.watch.has(e))return!0;for(let n of t.watch)if(e.startsWith(n)&&e.charAt(n.length)===`.`)return!0;return!1},Xe=(e,t,n,r)=>{for(let i of n||Object.keys(e)){let n=z(e,i);if(n){let{_f:e,...a}=n;if(e){if(e.refs&&e.refs[0]&&t(e.refs[0],i)&&!r||e.ref&&t(e.ref,e.name)&&!r)return!0;if(Xe(a,t))break}else if(j(a)&&Xe(a,t))break}}};function Ze(e,t,n){let r=z(e,n);if(r||se(n))return{error:r,name:n};let i=n.split(`.`);for(;i.length;){let r=i.join(`.`),a=z(t,r),o=z(e,r);if(a&&!Array.isArray(a)&&n!==r)return{name:n};if(o&&o.type)return{name:r,error:o};if(o&&o.root&&o.root.type)return{name:`${r}.root`,error:o.root};i.pop()}return{name:n}}var Qe=(e,t,n,r)=>{n(e);let{name:i,...a}=e,o=Object.keys(a);return!o.length||r&&o.length>=Object.keys(t).length||o.find(e=>t[e]===(!r||F.all))},$e=(e,t,n)=>!e||!t||e===t||Se(e).some(e=>e&&(n?e===t:e.startsWith(t)||t.startsWith(e))),et=(e,t,n,r,i)=>i.isOnAll?!1:!n&&i.isOnTouch?!(t||e):(n?r.isOnBlur:i.isOnBlur)?!e:(n?r.isOnChange:i.isOnChange)?e:!0,tt=(e,t)=>!xe(z(e,t)).length&&Y(e,t),nt=(e,t,n)=>{let r=z(e,n),i=Array.isArray(r)?r:[];return H(i,ie,t[n]),H(e,n,i),e};function rt(e,t,n=`validate`){if(W(e)||Array.isArray(e)&&e.every(W)||B(e)&&!e)return{type:n,message:W(e)?e:``,ref:t}}var $=e=>j(e)&&!Q(e)?e:{value:e,message:``},it=async(e,t,n,r,i,a)=>{let{ref:o,refs:s,required:c,maxLength:l,minLength:u,min:d,max:f,pattern:p,validate:m,name:h,valueAsNumber:g,mount:_}=e._f,v=z(n,h);if(!_||t.has(h))return{};let y=s?s[0]:o,b=e=>{if(i&&y.reportValidity){let t=B(e)?``:e||``;s?s.forEach(e=>e.setCustomValidity(t)):y.setCustomValidity(t),y.reportValidity()}},x={},S=Oe(o),C=O(o),w=S||C,T=(g||Te(o))&&L(o.value)&&L(v)||Ee(o)&&o.value===``||v===``||Array.isArray(v)&&!v.length,E=q.bind(null,h,r,x),D=(e,t,n,r=I.maxLength,i=I.minLength)=>{let a=e?t:n;x[h]={type:e?r:i,message:a,ref:o,...E(e?r:i,a)}};if(a?!Array.isArray(v)||!v.length:c&&(!w&&(T||A(v))||B(v)&&!v||C&&!Re(s).isValid||S&&!Ve(s).isValid)){let{value:e,message:t}=W(c)?{value:!!c,message:c}:$(c);if(e&&(x[h]={type:I.required,message:t,ref:y,...E(I.required,t)},!r))return b(t),x}if(!T&&(!A(d)||!A(f))){let e,t,n=$(f),i=$(d);if(!A(v)&&!isNaN(v)){let r=o.valueAsNumber||v&&+v;A(n.value)||(e=r>n.value),A(i.value)||(t=r<i.value)}else{let r=o.valueAsDate||new Date(v),a=e=>new Date(new Date().toDateString()+` `+e),s=o.type==`time`,c=o.type==`week`;W(n.value)&&v&&(e=s?a(v)>a(n.value):c?v>n.value:r>new Date(n.value)),W(i.value)&&v&&(t=s?a(v)<a(i.value):c?v<i.value:r<new Date(i.value))}if((e||t)&&(D(!!e,n.message,i.message,I.max,I.min),!r))return b(x[h].message),x}if((l||u)&&!T&&(W(v)||a&&Array.isArray(v))){let e=$(l),t=$(u),n=!A(e.value)&&v.length>+e.value,i=!A(t.value)&&v.length<+t.value;if((n||i)&&(D(n,e.message,t.message),!r))return b(x[h].message),x}if(p&&!T&&W(v)){let{value:e,message:t}=$(p);if(Q(e)&&!v.match(e)&&(x[h]={type:I.pattern,message:t,ref:o,...E(I.pattern,t)},!r))return b(t),x}if(m){if(V(m)){let e=rt(await m(v,n),y);if(e&&(x[h]={...e,...E(I.validate,e.message)},!r))return b(e.message),x}else if(j(m)){let e={};for(let t in m){if(!J(e)&&!r)break;let i=rt(await m[t](v,n),y,t);i&&(e={...i,...E(t,i.message)},b(i.message),r&&(x[h]=e))}if(!J(e)&&(x[h]={ref:y,...e},!r))return x}}return b(!0),x},at={mode:F.onSubmit,reValidateMode:F.onChange,shouldFocusError:!0},ot=`form`,st={submitCount:0,isDirty:!1,isReady:!1,isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{}};function ct(e={}){let t={...at,...e},n={...N(st),isLoading:V(t.defaultValues),errors:t.errors||{},disabled:t.disabled||!1},r={},i=(j(t.defaultValues)||j(t.values))&&N(t.defaultValues||t.values)||{},a=t.shouldUnregister?{}:N(i),o={action:!1,mount:!1,watch:!1,keepIsValid:!1},s={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set,registerName:new Set},c,l=0,u=0,d=Ge(t.mode),f=Ge(t.reValidateMode),p={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},m={...p},h={...m},g={array:Ce(),state:Ce()},_=t.criteriaMode===F.all,v=e=>t=>{clearTimeout(l),l=setTimeout(e,t)},y=async e=>{if(!o.keepIsValid&&!t.disabled&&(m.isValid||h.isValid||e)){let e;t.resolver?(e=J((await M()).errors),b()):e=await R({fields:r,onlyCheckValid:!0,eventType:P.VALID}),e!==n.isValid&&g.state.next({isValid:e})}},b=(e,r)=>{!t.disabled&&(m.isValidating||m.validatingFields||h.isValidating||h.validatingFields)&&((e||Array.from(s.mount)).forEach(e=>{e&&(r?H(n.validatingFields,e,r):Y(n.validatingFields,e))}),g.state.next({validatingFields:n.validatingFields,isValidating:!J(n.validatingFields)}))},x=()=>{n.dirtyFields=Z(i,a)},S=(e,i=[],s,c,l=!0,u=!0)=>{if(c&&s&&!t.disabled){if(o.action=!0,u&&Array.isArray(z(r,e))){let t=s(z(r,e),c.argA,c.argB);l&&H(r,e,t)}if(u&&Array.isArray(z(n.errors,e))){let t=s(z(n.errors,e),c.argA,c.argB);l&&H(n.errors,e,t),tt(n.errors,e)}if((m.touchedFields||h.touchedFields)&&u&&Array.isArray(z(n.touchedFields,e))){let t=s(z(n.touchedFields,e),c.argA,c.argB);l&&H(n.touchedFields,e,t)}(m.dirtyFields||h.dirtyFields)&&x(),g.state.next({name:e,isDirty:U(e,i),dirtyFields:n.dirtyFields,errors:n.errors,isValid:n.isValid})}else H(a,e,i)},C=(e,t)=>{H(n.errors,e,t),n.errors={...n.errors},g.state.next({errors:n.errors})},w=e=>{n.errors=e,g.state.next({errors:n.errors,isValid:!1})},T=e=>{let t=se(e)?[e]:ce(e),n=a,r=i;for(let e=0;e<t.length-1;e++){let i=t[e];if(n=A(n)?n:n[i],r=A(r)?r:r[i],n===null&&r!==null)return!0}return!1},E=(t,c,l,u)=>{let d=z(r,t);if(d){if(T(t))return;let r=L(z(a,t)),f=z(a,t,L(l)?z(i,t):l);L(f)||u&&u.defaultChecked||c?H(a,t,c?f:He(d._f)):fe(t,f),o.mount&&!o.action&&(y(),r&&n.isDirty&&(m.isDirty||h.isDirty)&&(U()||(n.isDirty=!1,g.state.next({...n}))),e.shouldUnregister&&r&&!L(z(a,t))&&Ye(t,s)&&(o.watch=!0))}},D=(e,r,o,s,c)=>{let l=!1,u=!1,d={name:e};if(!t.disabled){if(!o||s){let t=G(z(i,e),r);(m.isDirty||h.isDirty)&&(u=n.isDirty,n.isDirty=d.isDirty=!t||U(),l=u!==d.isDirty),u=!!z(n.dirtyFields,e),t===n.isDirty?t?Y(n.dirtyFields,e):H(n.dirtyFields,e,!0):n.dirtyFields=Z(i,a),d.dirtyFields=n.dirtyFields,l||=(m.dirtyFields||h.dirtyFields)&&u!==!t}if(o){let t=z(n.touchedFields,e);t||(H(n.touchedFields,e,o),d.touchedFields=n.touchedFields,l||=(m.touchedFields||h.touchedFields)&&t!==o)}l&&c&&g.state.next(d)}return l?d:{}},ee=(e,r,i,a)=>{let o=z(n.errors,e),s=(m.isValid||h.isValid)&&B(r)&&n.isValid!==r;if(t.delayError&&i?(c=v(()=>C(e,i)),c(t.delayError)):(clearTimeout(l),c=null,i?H(n.errors,e,i):Y(n.errors,e),n.errors={...n.errors}),(i?!G(o,i):o)||!J(a)||s){let t={...a,...s&&B(r)?{isValid:r}:{},errors:n.errors,name:e};n={...n,...t},g.state.next(t)}},M=async e=>(b(e,!0),await t.resolver(a,t.context,Ue(e||s.mount,r,t.criteriaMode,t.shouldUseNativeValidation))),ae=async e=>{let{errors:t}=await M(e);if(b(e),e){for(let r of e){let e=z(t,r);e?s.array.has(r)&&j(e)&&!Object.keys(e).some(e=>!Number.isNaN(Number(e)))?nt(n.errors,{[r]:e},r):H(n.errors,r,e):Y(n.errors,r)}n.errors={...n.errors}}else n.errors=t;return t},oe=async({name:t,eventType:r})=>{if(e.validate){let i=await e.validate({formValues:a,formState:n,name:t,eventType:r});if(j(i))for(let e in i){let t=i[e];t&&je(`${ot}.${e}`,{message:W(t.message)?t.message:``,type:t.type||I.validate})}else W(i)||!i?je(ot,{message:i||``,type:I.validate}):Oe(ot);return i}return!0},R=async({fields:r,onlyCheckValid:i,name:o,eventType:c,context:l={valid:!0,runRootValidation:!1}})=>{if(e.validate&&(l.runRootValidation=!0,!await oe({name:o,eventType:c})&&(l.valid=!1,i)))return l.valid;for(let o in r){let u=r[o];if(u){let{_f:r,...d}=u;if(r){let o=s.array.has(r.name),c=u._f&&qe(u._f),d=m.validatingFields||m.isValidating||h.validatingFields||h.isValidating;c&&d&&b([r.name],!0);let f=await it(u,s.disabled,a,_,t.shouldUseNativeValidation&&!i,o);if(c&&d&&b([r.name]),f[r.name]&&(l.valid=!1,i)||(!i&&(z(f,r.name)?o?nt(n.errors,f,r.name):H(n.errors,r.name,f[r.name]):Y(n.errors,r.name)),e.shouldUseNativeValidation&&f[r.name]))break}!J(d)&&await R({context:l,onlyCheckValid:i,fields:d,name:o,eventType:c})}}return l.valid},le=()=>{for(let e of s.unMount){let t=z(r,e);t&&(t._f.refs?t._f.refs.every(e=>!Ae(e)):!Ae(t._f.ref))&&X(e)}s.unMount=new Set},U=(e,n)=>!t.disabled&&(e&&n&&H(a,e,n),!G(o.mount?a:i,i)),ue=(e,t,n)=>pe(e,s,{...o.mount?a:L(t)?i:W(e)?{[e]:t}:t},n,t),de=e=>xe(z(o.mount?a:i,e,t.shouldUnregister?z(i,e,[]):[])),fe=(e,t,n={},i=!1,o=!1)=>{let s=z(r,e),c=t;if(s){let n=s._f;n&&(!n.disabled&&H(a,e,ze(t,n)),c=Ee(n.ref)&&A(t)?``:t,De(n.ref)?[...n.ref.options].forEach(e=>e.selected=c.includes(e.value)):n.refs?O(n.ref)?n.refs.forEach(e=>{(!e.defaultChecked||!e.disabled)&&(Array.isArray(c)?e.checked=!!c.find(t=>t===e.value):e.checked=c===e.value||!!c)}):n.refs.forEach(e=>e.checked=e.value===c):Te(n.ref)?n.ref.value=``:(n.ref.value=c,!n.ref.type&&!o&&g.state.next({name:e,values:i?a:N(a)})))}(n.shouldDirty||n.shouldTouch)&&D(e,c,n.shouldTouch,n.shouldDirty,!o),n.shouldValidate&&ye(e)},me=(e,t,n,i=!1,a=!1)=>{for(let o in t){if(!t.hasOwnProperty(o))return;let c=t[o],l=e+`.`+o,u=z(r,l);(s.array.has(e)||j(c)||u&&!u._f)&&!k(c)?me(l,c,n,i,a):fe(l,c,n,i,a)}},he=(e,t,i,c,l=!1)=>{let u=z(r,e),d=s.array.has(e),f=c?t:N(t),p=G(z(a,e),f);if(p||H(a,e,f),d)g.array.next({name:e,values:c?a:N(a)}),(m.isDirty||m.dirtyFields||h.isDirty||h.dirtyFields)&&i.shouldDirty&&(x(),l||g.state.next({name:e,dirtyFields:n.dirtyFields,isDirty:U(e,f)}));else{let t=Array.isArray(f)&&!f.length||J(f);!u||u._f||A(f)||t?fe(e,f,i,c,l):me(e,f,i,c,l)}if(!p&&!l){let t=Ye(e,s),r=c?a:N(a);g.state.next({...t&&n,name:o.mount||t?e:void 0,values:r})}},K=(e,t,n={})=>he(e,t,n,!1),ge=(e,t={})=>{let r=V(e)?e(a):e;if(!G(a,r)){a={...a,...r};for(let e of s.mount)he(e,z(r,e),t,!0,!0);g.state.next({...n,name:void 0,type:void 0,...u?{values:a}:{}}),t.shouldValidate&&y()}},_e=async i=>{o.mount=!0;let l=i.target,p=l.name,v=!0,x=z(r,p),S=e=>{v=Number.isNaN(e)||k(e)&&isNaN(e.getTime())||G(e,z(a,p,e))};if(x){let o,C,w=l.type?He(x._f):te(i),T=i.type===P.BLUR||i.type===P.FOCUS_OUT,E=!Je(x._f)&&!e.validate&&!t.resolver&&!z(n.errors,p)&&!x._f.deps,O=E||et(T,z(n.touchedFields,p),n.isSubmitted,f,d),k=Ye(p,s,T);H(a,p,w),T?(!l||!l.readOnly)&&(x._f.onBlur&&x._f.onBlur(i),c&&c(0)):x._f.onChange&&x._f.onChange(i);let A=D(p,w,T),j=!J(A)||k;if(!T&&g.state.next({name:p,type:i.type,...u?{values:N(a)}:{}}),O)return(!E||!n.isValid)&&(m.isValid||h.isValid)&&(t.mode===`onBlur`?T&&y():T||y()),j&&g.state.next({name:p,...k?{}:A});if(!t.resolver&&e.validate&&await oe({name:p,eventType:i.type}),!T&&k&&g.state.next({...n}),t.resolver){let{errors:e}=await M([p]);if(b([p]),S(w),!v){!J(A)&&g.state.next(A);return}let t=Ze(n.errors,r,p),i=Ze(e,r,t.name||p);o=i.error,p=i.name,C=J(e)}else b([p],!0),o=(await it(x,s.disabled,a,_,t.shouldUseNativeValidation))[p],b([p]),S(w),v&&(o?C=!1:(m.isValid||h.isValid)&&(C=await R({fields:r,onlyCheckValid:!0,name:p,eventType:i.type})));v&&(x._f.deps&&(!Array.isArray(x._f.deps)||x._f.deps.length>0)&&ye(x._f.deps),ee(p,C,o,A))}},ve=(e,t)=>{if(z(n.errors,t)&&e.focus)return e.focus(),1},ye=async(e,i={})=>{let a,o,c=Se(e);if(t.resolver){let t=await ae(L(e)?e:c);a=J(t),o=e?!c.some(e=>z(t,e)):a}else e?(o=(await Promise.all(c.map(async e=>{let t=z(r,e);return await R({fields:t&&t._f?{[e]:t}:t,eventType:P.TRIGGER})}))).every(Boolean),!(!o&&!n.isValid)&&y()):o=a=await R({fields:r,name:e,eventType:P.TRIGGER});return g.state.next({...!W(e)||(m.isValid||h.isValid)&&a!==n.isValid?{}:{name:e},...t.resolver||!e?{isValid:a}:{},errors:n.errors}),i.shouldFocus&&!o&&Xe(r,ve,e?c:s.mount),o},be=(e,t)=>{let r={...o.mount?a:i};return t&&(r=we(t.dirtyFields?n.dirtyFields:n.touchedFields,r)),L(e)?r:W(e)?z(r,e):e.map(e=>z(r,e))},q=(e,t)=>({invalid:!!z((t||n).errors,e),isDirty:!!z((t||n).dirtyFields,e),error:z((t||n).errors,e),isValidating:!!z(n.validatingFields,e),isTouched:!!z((t||n).touchedFields,e)}),Oe=e=>{let t=e?Se(e):void 0;t?.forEach(e=>Y(n.errors,e)),t?t.forEach(e=>{g.state.next({name:e,errors:n.errors})}):g.state.next({errors:{}})},je=(e,t,i)=>{let a=(z(r,e,{_f:{}})._f||{}).ref,{ref:o,message:s,type:c,...l}=z(n.errors,e)||{};H(n.errors,e,{...l,...t,ref:a}),g.state.next({name:e,errors:n.errors,isValid:!1}),i&&i.shouldFocus&&a&&a.focus&&a.focus()},Me=(e,t)=>{if(V(e)){u++;let{unsubscribe:n}=g.state.subscribe({next:n=>`values`in n&&e(n.values||ue(void 0,t),n)}),r=!1;return{unsubscribe:()=>{r||(r=!0,u--,n())}}}return ue(e,t,!0)},Ne=e=>{let t=!!e.formState?.values;t&&u++;let{unsubscribe:r}=g.state.subscribe({next:t=>{if($e(e.name,t.name,e.exact)&&Qe(t,e.formState||m,$,e.reRenderRoot)){let r={...a};e.callback({values:r,...n,...t,defaultValues:i})}}});if(!t)return r;let o=!1;return()=>{o||(o=!0,u--,r())}},Pe=e=>(o.mount=!0,h={...h,...e.formState},Ne({...e,formState:{...p,...e.formState}})),X=(e,o={})=>{for(let c of e?Se(e):s.mount)s.mount.delete(c),s.array.delete(c),o.keepValue||(Y(r,c),Y(a,c)),!o.keepError&&Y(n.errors,c),!o.keepDirty&&Y(n.dirtyFields,c),!o.keepTouched&&Y(n.touchedFields,c),!o.keepIsValidating&&Y(n.validatingFields,c),!t.shouldUnregister&&!o.keepDefaultValue&&Y(i,c);g.state.next({values:N(a)}),g.state.next({...n,...o.keepDirty?{isDirty:U()}:{}}),!o.keepIsValid&&y()},Fe=({disabled:e,name:t})=>{if(B(e)&&o.mount||e||s.disabled.has(t)){let n=s.disabled.has(t)!==!!e;e?s.disabled.add(t):s.disabled.delete(t),n&&o.mount&&!o.action&&y()}},Ie=(e,n={})=>{let a=z(r,e),c=B(n.disabled)||B(t.disabled),l=!s.registerName.has(e)&&a&&a._f&&!a._f.mount;return H(r,e,{...a||{},_f:{...a&&a._f?a._f:{ref:{name:e}},name:e,mount:!0,...n}}),s.mount.add(e),a&&!l?Fe({disabled:B(n.disabled)?n.disabled:t.disabled,name:e}):E(e,!0,n.value),{...c?{disabled:n.disabled||t.disabled}:{},...t.progressive?{required:!!n.required,min:We(n.min),max:We(n.max),minLength:We(n.minLength),maxLength:We(n.maxLength),pattern:We(n.pattern)}:{},name:e,onChange:_e,onBlur:_e,ref:c=>{if(c){s.registerName.add(e),Ie(e,n),s.registerName.delete(e),a=z(r,e);let t=L(c.value)&&c.querySelectorAll&&c.querySelectorAll(`input,select,textarea`)[0]||c,o=ke(t),l=a._f.refs||[];if(o?l.find(e=>e===t):t===a._f.ref)return;H(r,e,{_f:{...a._f,...o?{refs:[...l.filter(Ae),t,...Array.isArray(z(i,e))?[{}]:[]],ref:{type:t.type,name:e}}:{ref:t}}}),E(e,!1,void 0,t)}else a=z(r,e,{}),a._f&&(a._f.mount=!1),(t.shouldUnregister||n.shouldUnregister)&&!(ne(s.array,e)&&o.action)&&s.unMount.add(e)}}},Le=()=>t.shouldFocusError&&!t.shouldUseNativeValidation&&Xe(r,ve,s.mount),Re=e=>{B(e)&&(g.state.next({disabled:e}),Xe(r,(t,n)=>{let i=z(r,n);i&&(t.disabled=i._f.disabled||e,Array.isArray(i._f.refs)&&i._f.refs.forEach(t=>{t.disabled=i._f.disabled||e}))},0,!1))},Be=(e,i)=>async o=>{let c;o&&(o.preventDefault&&o.preventDefault(),o.persist&&o.persist());let l=N(a);if(g.state.next({isSubmitting:!0}),t.resolver){let{errors:e,values:t}=await M();b(),n.errors=e,l=N(t)}else await R({fields:r,eventType:P.SUBMIT});if(s.disabled.size)for(let e of s.disabled)Y(l,e);if(Y(n.errors,ie),J(n.errors)){g.state.next({errors:{}});try{await e(l,o)}catch(e){c=e}}else i&&await i({...n.errors},o),Le(),setTimeout(Le);if(g.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:J(n.errors)&&!c,submitCount:n.submitCount+1,errors:n.errors}),c)throw c},Ve=(e,t={})=>{z(r,e)&&(L(t.defaultValue)?K(e,N(z(i,e))):(K(e,t.defaultValue),H(i,e,N(t.defaultValue))),t.keepTouched||Y(n.touchedFields,e),t.keepDirty||(Y(n.dirtyFields,e),n.isDirty=t.defaultValue?U(e,N(z(i,e))):U()),t.keepError||(Y(n.errors,e),m.isValid&&y()),g.state.next({...n}))},Q=(e,c={})=>{let l=e?N(e):i,u=N(l),d=J(e),f=u;if(c.keepDefaultValues||(i=l),!c.keepValues){if(c.keepDirtyValues){let e=new Set([...s.mount,...Object.keys(Z(i,a))]);for(let t of Array.from(e)){let e=z(n.dirtyFields,t),r=z(a,t),i=z(f,t);e&&!L(r)?H(f,t,r):!e&&!L(i)&&K(t,i)}}else{if(re&&L(e))for(let e of s.mount){let t=z(r,e);if(t&&t._f){let e=Array.isArray(t._f.refs)?t._f.refs[0]:t._f.ref;if(Ee(e)){let t=e.closest(`form`);if(t){t.reset();break}}}}if(c.keepFieldsRef)for(let e of s.mount)K(e,z(f,e));else r={}}if(t.shouldUnregister){if(a=c.keepDefaultValues?N(i):{},c.keepFieldsRef)for(let e of s.mount)H(a,e,z(f,e))}else a=N(f);g.array.next({values:{...f}}),g.state.next({values:{...f}})}s={mount:c.keepDirtyValues?s.mount:new Set,unMount:new Set,array:new Set,registerName:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:``},o.mount=!m.isValid||!!c.keepIsValid||!!c.keepDirtyValues||!t.shouldUnregister&&!J(f),o.watch=!!t.shouldUnregister,o.keepIsValid=!!c.keepIsValid,o.action=!1,c.keepErrors||(n.errors={}),g.state.next({submitCount:c.keepSubmitCount?n.submitCount:0,isDirty:d?!1:c.keepDirty?n.isDirty:c.keepValues?U():!!(c.keepDefaultValues&&!G(e,i)),isSubmitted:c.keepIsSubmitted?n.isSubmitted:!1,dirtyFields:d?{}:c.keepDirtyValues?c.keepDefaultValues&&a?Z(i,a):n.dirtyFields:c.keepDefaultValues&&e?Z(i,e):c.keepDirty?n.dirtyFields:{},touchedFields:c.keepTouched?n.touchedFields:{},errors:c.keepErrors?n.errors:{},isSubmitSuccessful:c.keepIsSubmitSuccessful?n.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:i})},Ke=(e,n)=>Q(V(e)?e(a):e,{...t.resetOptions,...n}),rt=(e,t={})=>{let n=z(r,e),i=n&&n._f;if(i){let e=i.refs?i.refs[0]:i.ref;e.focus&&setTimeout(()=>{e.focus(),t.shouldSelect&&V(e.select)&&e.select()})}},$=e=>{n={...n,...e}},ct={control:{register:Ie,unregister:X,getFieldState:q,handleSubmit:Be,setError:je,_subscribe:Ne,_runSchema:M,_updateIsValidating:b,_focusError:Le,_getWatch:ue,_getDirty:U,_setValid:y,_setFieldArray:S,_setDisabledField:Fe,_setErrors:w,_getFieldArray:de,_reset:Q,_resetDefaultValues:()=>V(t.defaultValues)&&t.defaultValues().then(e=>{Ke(e,t.resetOptions),g.state.next({isLoading:!1})}),_removeUnmounted:le,_disableForm:Re,_subjects:g,_proxyFormState:m,get _fields(){return r},get _formValues(){return a},get _state(){return o},set _state(e){o=e},get _defaultValues(){return i},get _names(){return s},set _names(e){s=e},get _formState(){return n},get _options(){return t},set _options(e){t={...t,...e},d=Ge(t.mode),f=Ge(t.reValidateMode)}},subscribe:Pe,trigger:ye,register:Ie,handleSubmit:Be,watch:Me,setValue:K,setValues:ge,getValues:be,reset:Ke,resetField:Ve,resetDefaultValues:(e,t={})=>{if(i=N(e),!t.keepDirty){let e=Z(i,a);n.dirtyFields=e,n.isDirty=!J(e)}t.keepIsValid||y(),g.state.next({...n,defaultValues:i})},clearErrors:Oe,unregister:X,setError:je,setFocus:rt,getFieldState:q};return{...ct,formControl:ct}}function lt(e={}){let t=D.useRef(void 0),n=D.useRef(void 0),r=D.useRef(e.formControl),[i,a]=D.useState(()=>({...N(st),isLoading:V(e.defaultValues),errors:e.errors||{},disabled:e.disabled||!1,defaultValues:V(e.defaultValues)?void 0:e.defaultValues}));if(!t.current||e.formControl&&r.current!==e.formControl)if(r.current=e.formControl,e.formControl)t.current={...e.formControl,formState:i},e.defaultValues&&!V(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{let{formControl:n,...r}=ct(e);t.current={...r,formState:i}}let o=t.current.control;return o._options=e,de(()=>{let e=o._subscribe({formState:o._proxyFormState,callback:()=>a({...o._formState,defaultValues:o._defaultValues}),reRenderRoot:!0});return a(e=>({...e,isReady:!0})),o._formState.isReady=!0,e},[o]),D.useEffect(()=>o._disableForm(e.disabled),[o,e.disabled]),D.useEffect(()=>{e.mode&&(o._options.mode=e.mode),e.reValidateMode&&(o._options.reValidateMode=e.reValidateMode)},[o,e.mode,e.reValidateMode]),D.useEffect(()=>{e.errors&&(o._setErrors(e.errors),o._focusError())},[o,e.errors]),D.useEffect(()=>{e.shouldUnregister&&o._subjects.state.next({values:o._getWatch()})},[o,e.shouldUnregister]),D.useEffect(()=>{if(o._proxyFormState.isDirty){let e=o._getDirty();e!==i.isDirty&&o._subjects.state.next({isDirty:e})}},[o,i.isDirty]),D.useEffect(()=>{e.values&&!G(e.values,n.current)?(o._reset(e.values,{keepFieldsRef:!0,...o._options.resetOptions}),o._options.resetOptions?.keepIsValid||o._setValid(),n.current=e.values,a(e=>({...e}))):o._resetDefaultValues()},[o,e.values]),D.useEffect(()=>{o._state.mount||(o._setValid(),o._state.mount=!0),o._state.watch&&(o._state.watch=!1,o._subjects.state.next({...o._formState})),o._removeUnmounted()}),t.current.formState=D.useMemo(()=>ue(i,o),[o,i]),t.current}var ut=be,dt=D.createContext({}),ft=({...e})=>(0,E.jsx)(dt.Provider,{value:{name:e.name},children:(0,E.jsx)(_e,{...e})}),pt=()=>{let e=D.useContext(dt),t=D.useContext(mt),{getFieldState:n,formState:r}=ye(),i=n(e.name,r);if(!e)throw Error(`useFormField should be used within <FormField>`);let{id:a}=t;return{id:a,name:e.name,formItemId:`${a}-form-item`,formDescriptionId:`${a}-form-item-description`,formMessageId:`${a}-form-item-message`,...i}},mt=D.createContext({}),ht=D.forwardRef(({className:e,...t},n)=>{let r=D.useId();return(0,E.jsx)(mt.Provider,{value:{id:r},children:(0,E.jsx)(`div`,{ref:n,className:i(`space-y-2`,e),...t})})});ht.displayName=`FormItem`;var gt=D.forwardRef(({className:e,...t},n)=>{let{formItemId:r}=pt();return(0,E.jsx)(l,{ref:n,className:e,htmlFor:r,...t})});gt.displayName=`FormLabel`;var _t=D.forwardRef(({...e},t)=>{let{error:n,formItemId:r,formDescriptionId:i,formMessageId:o}=pt();return(0,E.jsx)(a,{ref:t,"aria-describedby":n?`${i} ${o}`:`${i}`,"aria-invalid":!!n,id:r,...e})});_t.displayName=`FormControl`;var vt=D.forwardRef(({className:e,...t},n)=>{let{formDescriptionId:r}=pt();return(0,E.jsx)(`p`,{ref:n,className:i(`text-sm text-text-secondary`,e),id:r,...t})});vt.displayName=`FormDescription`;var yt=D.forwardRef(({className:e,children:t,...n},r)=>{let{error:a,formMessageId:o}=pt(),s=a?String(a?.message??``):t;return s?(0,E.jsx)(`p`,{ref:r,className:i(`text-xs text-destructive`,e),id:o,...n,children:s}):null});yt.displayName=`FormMessage`;var bt=(e,t,n)=>{if(e&&`reportValidity`in e){let r=z(n,t);e.setCustomValidity(r&&r.message||``),e.reportValidity()}},xt=(e,t)=>{for(let n in t.fields){let r=t.fields[n];r&&r.ref&&`reportValidity`in r.ref?bt(r.ref,n,e):r&&r.refs&&r.refs.forEach(t=>bt(t,n,e))}},St=(e,t)=>{t.shouldUseNativeValidation&&xt(e,t);let n={};for(let r in e){let i=z(t.fields,r),a=Object.assign(e[r]||{},{ref:i&&i.ref});if(Ct(t.names||Object.keys(e),r)){let e=Object.assign({},z(n,r));H(e,`root`,a),H(n,r,e)}else H(n,r,a)}return n},Ct=(e,t)=>{let n=wt(t).replace(/[.*+?^${}()|\\]/g,`\\$&`);return e.some(e=>wt(e).match(`^${n}\\.\\d+`))};function wt(e){return e.replace(/[\[\]]/g,``)}function Tt(){return Tt=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Tt.apply(null,arguments)}function Et(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}function Dt(e,t){for(var n={};e.length;){var r=e[0],i=r.code,a=r.message,o=r.path.join(`.`);if(!n[o])if(`unionErrors`in r){var s=r.unionErrors[0].errors[0];n[o]={message:s.message,type:s.code}}else n[o]={message:a,type:i};if(`unionErrors`in r&&r.unionErrors.forEach(function(t){return t.errors.forEach(function(t){return e.push(t)})}),t){var c=n[o].types,l=c&&c[r.code];n[o]=q(o,t,n,i,l?[].concat(l,r.message):r.message)}e.shift()}return n}function Ot(e,t){for(var n={},r=function(){var r=e[0],i=r.code,a=r.message,o=r.path.join(`.`);if(!n[o])if(r.code===`invalid_union`&&r.errors.length>0){var s=r.errors[0][0];n[o]={message:s.message,type:s.code}}else n[o]={message:a,type:i};if(r.code===`invalid_union`&&r.errors.forEach(function(t){return t.forEach(function(t){return e.push(Tt({},t,{path:[].concat(r.path,t.path)}))})}),t){var c=n[o].types,l=c&&c[r.code];n[o]=q(o,t,n,i,l?[].concat(l,r.message):r.message)}e.shift()};e.length;)r();return n}function kt(e,t,n){if(n===void 0&&(n={}),function(e){return`_def`in e&&typeof e._def==`object`&&`typeName`in e._def}(e))return function(r,i,a){try{return Promise.resolve(Et(function(){return Promise.resolve(e[n.mode===`sync`?`parse`:`parseAsync`](r,t)).then(function(e){return a.shouldUseNativeValidation&&xt({},a),{errors:{},values:n.raw?Object.assign({},r):e}})},function(e){if(function(e){return Array.isArray(e?.issues)}(e))return{values:{},errors:St(Dt(e.errors,!a.shouldUseNativeValidation&&a.criteriaMode===`all`),a)};throw e}))}catch(e){return Promise.reject(e)}};if(function(e){return`_zod`in e&&typeof e._zod==`object`}(e))return function(r,i,a){try{return Promise.resolve(Et(function(){return Promise.resolve((n.mode===`sync`?d:m)(e,r,t)).then(function(e){return a.shouldUseNativeValidation&&xt({},a),{errors:{},values:n.raw?Object.assign({},r):e}})},function(e){if(function(e){return e instanceof h}(e))return{values:{},errors:St(Ot(e.issues,!a.shouldUseNativeValidation&&a.criteriaMode===`all`),a)};throw e}))}catch(e){return Promise.reject(e)}};throw Error(`Invalid input: not a Zod schema`)}var At=e=>{let t=document.createElement(`textarea`);return t.innerHTML=e,t.value},jt=p({profileImage:f().optional(),coverImage:f().optional(),name:f().nonempty({message:`Display name is required.`}).max(64,{message:`Display name must be less than 64 characters.`}),bio:f().max(250,{message:`Bio must be less than 250 characters.`}).optional()}),Mt=({account:e,setIsEditingProfile:t})=>{let[n,i]=(0,D.useState)(e.avatarUrl||null),a=(0,D.useRef)(null),[l,d]=(0,D.useState)(!1),[f,p]=(0,D.useState)(e.bannerImageUrl||null),m=(0,D.useRef)(null),[h,O]=(0,D.useState)(!1),[k,A]=(0,D.useState)(!1),{mutate:ee}=x(e?.handle||``),j=lt({resolver:kt(jt),defaultValues:{profileImage:e.avatarUrl,coverImage:e.bannerImageUrl||``,name:e.name,bio:e.bio?At(e.bio):``}}),te=!!j.formState.errors.name,ne=()=>{a.current?.click()},M=async e=>{try{return d(!0),await _(e)}catch(e){i(null),j.setValue(`profileImage`,``);let t=`Failed to upload image. Try again.`;if(e&&typeof e==`object`&&`statusCode`in e)switch(e.statusCode){case 413:t=`Image size exceeds limit.`;break;case 415:t=`The file type is not supported.`;break;default:}r.error(t)}finally{d(!1)}},re=async e=>{let t=e.target.files;if(t&&t.length>0){let n=t[0];if(n.size>5242880){r.error(S),e.target.value=``;return}if(!await w(n)){r.error(y),e.target.value=``;return}let a=URL.createObjectURL(n);i(a);let o=await M(n);j.setValue(`profileImage`,o)}},N=()=>{m.current?.click()},P=async e=>{try{return O(!0),await _(e)}catch(e){p(null),j.setValue(`coverImage`,``);let t=`Failed to upload image. Try again.`;if(e&&typeof e==`object`&&`statusCode`in e)switch(e.statusCode){case 413:t=`Image size exceeds limit.`;break;case 415:t=`The file type is not supported.`;break;default:}r.error(t)}finally{O(!1)}},F=async e=>{let t=e.target.files;if(t&&t.length>0){let n=t[0];if(n.size>5242880){r.error(S),e.target.value=``;return}let i=URL.createObjectURL(n);p(i);let a=await P(n);j.setValue(`coverImage`,a)}};function I(n){A(!0);let r=e.bio?At(e.bio):``;if(n.name===e.name&&n.bio===r&&n.profileImage===e.avatarUrl&&n.coverImage===e.bannerImageUrl){A(!1),t(!1);return}ee({name:n.name||e.name,username:T(e.handle).username||e.handle.replace(/^@/,``).split(`@`)[0],bio:n.bio??``,avatarUrl:n.profileImage||``,bannerImageUrl:n.coverImage||``},{onSettled(){A(!1),t(!1)}})}return(0,E.jsx)(ut,{...j,children:(0,E.jsxs)(`form`,{className:`flex flex-col gap-5`,onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),j.handleSubmit(I)())},onSubmit:j.handleSubmit(I),children:[(0,E.jsxs)(`div`,{className:`relative mb-2`,children:[(0,E.jsx)(`div`,{className:`group relative flex h-[180px] cursor-pointer items-center justify-center bg-gray-100 dark:bg-gray-950`,onClick:N,children:f?(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`img`,{className:`size-full object-cover ${h&&`opacity-10`}`,src:f}),h&&(0,E.jsx)(`div`,{className:`absolute leading-[0]`,children:(0,E.jsx)(v,{size:`md`})}),(0,E.jsx)(c,{className:`absolute top-3 right-3 size-8 bg-black/60 opacity-0 group-hover:opacity-100 hover:bg-black/80 dark:text-white`,onClick:e=>{e.stopPropagation(),p(null),j.setValue(`coverImage`,``)},children:(0,E.jsx)(o,{})})]}):(0,E.jsx)(c,{className:`pointer-events-none absolute right-3 bottom-3 bg-gray-200 group-hover:bg-gray-300 dark:bg-black/40 dark:text-white dark:group-hover:bg-black/60`,variant:`secondary`,children:`Upload cover image`})}),(0,E.jsx)(`div`,{className:`group absolute -bottom-10 left-4 flex size-20 cursor-pointer items-center justify-center rounded-full border-2 border-white bg-gray-100 dark:border-surface-elevated-2 dark:bg-gray-950`,onClick:ne,children:n?(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`img`,{className:`size-full rounded-full object-cover ${l&&`opacity-10`}`,src:n}),l&&(0,E.jsx)(`div`,{className:`absolute leading-[0]`,children:(0,E.jsx)(v,{size:`md`})}),(0,E.jsx)(c,{className:`absolute -top-2 -right-2 h-8 w-10 rounded-full bg-black/80 opacity-0 group-hover:opacity-100 hover:bg-black/90 dark:text-white`,onClick:e=>{e.stopPropagation(),i(null),j.setValue(`profileImage`,``)},children:(0,E.jsx)(o,{})})]}):(0,E.jsx)(s,{size:32,strokeWidth:1.5})})]}),(0,E.jsx)(ft,{control:j.control,name:`profileImage`,render:()=>(0,E.jsxs)(ht,{children:[(0,E.jsx)(_t,{children:(0,E.jsx)(g,{ref:a,accept:`image/*`,className:`hidden`,type:`file`,onChange:re})}),(0,E.jsx)(yt,{})]})}),(0,E.jsx)(ft,{control:j.control,name:`coverImage`,render:()=>(0,E.jsxs)(ht,{children:[(0,E.jsx)(_t,{children:(0,E.jsx)(g,{ref:m,accept:`image/*`,className:`hidden`,type:`file`,onChange:F})}),(0,E.jsx)(yt,{})]})}),(0,E.jsx)(ft,{control:j.control,name:`name`,render:({field:e})=>(0,E.jsxs)(ht,{children:[(0,E.jsx)(gt,{children:`Display name`}),(0,E.jsx)(_t,{children:(0,E.jsx)(g,{placeholder:`Jamie Larson`,...e})}),!te&&(0,E.jsx)(vt,{children:`The name shown to your followers in the Inbox and Feed`}),(0,E.jsx)(yt,{})]})}),(0,E.jsx)(ft,{control:j.control,name:`bio`,render:({field:e})=>(0,E.jsxs)(ht,{children:[(0,E.jsx)(gt,{children:`Bio`}),(0,E.jsx)(_t,{children:(0,E.jsx)(u,{...e})}),(0,E.jsx)(yt,{})]})}),(0,E.jsxs)(b,{className:`max-sm:gap-2`,children:[(0,E.jsx)(C,{asChild:!0,children:(0,E.jsx)(c,{variant:`outline`,children:`Cancel`})}),(0,E.jsx)(c,{disabled:k||l||h,type:`submit`,children:`Save`})]})]})})};export{Mt as t};