ghost 6.57.1 → 6.58.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 (747) hide show
  1. package/LICENSE +22 -0
  2. package/bin/validate-adapters.js +1 -5
  3. package/components/ghost-storage-base-3.0.0.tgz +0 -0
  4. package/components/tryghost-adapter-base-cache-0.2.0.tgz +0 -0
  5. package/components/tryghost-adapter-base-jobs-0.0.0.tgz +0 -0
  6. package/components/tryghost-adapter-base-redirects-0.0.0.tgz +0 -0
  7. package/components/tryghost-adapter-base-route-settings-0.0.0.tgz +0 -0
  8. package/components/tryghost-adapter-base-scheduling-0.2.2.tgz +0 -0
  9. package/components/tryghost-adapter-base-sso-0.1.2.tgz +0 -0
  10. package/components/tryghost-admin-api-schema-0.0.0.tgz +0 -0
  11. package/components/tryghost-custom-field-types-0.0.0.tgz +0 -0
  12. package/components/tryghost-i18n-0.0.0.tgz +0 -0
  13. package/components/tryghost-kg-card-factory-5.2.4.tgz +0 -0
  14. package/components/tryghost-kg-clean-basic-html-4.3.4.tgz +0 -0
  15. package/components/tryghost-kg-converters-1.2.5.tgz +0 -0
  16. package/components/tryghost-kg-default-cards-10.3.5.tgz +0 -0
  17. package/components/tryghost-kg-default-nodes-2.2.0.tgz +0 -0
  18. package/components/tryghost-kg-default-transforms-1.3.4.tgz +0 -0
  19. package/components/tryghost-kg-html-to-lexical-1.4.0.tgz +0 -0
  20. package/components/tryghost-kg-lexical-html-renderer-1.5.0.tgz +0 -0
  21. package/components/tryghost-kg-markdown-html-renderer-7.2.4.tgz +0 -0
  22. package/components/tryghost-kg-utils-1.1.4.tgz +0 -0
  23. package/components/tryghost-nql-string-0.0.0.tgz +0 -0
  24. package/components/tryghost-parse-email-address-0.0.0.tgz +0 -0
  25. package/core/boot.js +35 -3
  26. package/core/built/admin/assets/{about-BNojRaxf.js → about-B_BvSyLF.js} +1 -1
  27. package/core/built/admin/assets/{account-migration-DMS8JsM-.js → account-migration-oJUGxnzT.js} +1 -1
  28. package/core/built/admin/assets/activitypub/{account-migration-DHFbePl6.js → account-migration-BpDeIF3G.js} +8 -8
  29. package/core/built/admin/assets/activitypub/activitypub.js +4 -4
  30. package/core/built/admin/assets/activitypub/{avatar-CT4tS2_S.js → avatar-B0SpBPVL.js} +3 -3
  31. package/core/built/admin/assets/activitypub/{avatar-flipboard-ByYWKipo.js → avatar-flipboard-DKt1LGcE.js} +3 -3
  32. package/core/built/admin/assets/activitypub/{bluesky-sharing-srVnSHDz.js → bluesky-sharing-aPMtrS3L.js} +10 -10
  33. package/core/built/admin/assets/activitypub/{chunk-KS7C4IRE-D4HEcEwi.js → chunk-KS7C4IRE-CnTrsgmM.js} +26 -15
  34. package/core/built/admin/assets/activitypub/{content-formatters-C2sos5Ht.js → content-formatters-BORfuA9G.js} +318 -284
  35. package/core/built/admin/assets/activitypub/{copy-B1UBTOoZ.js → copy-D-YvNi2E.js} +2 -2
  36. package/core/built/admin/assets/activitypub/{dist-MPsb2WZ1.js → dist-Dqggkccr.js} +5 -5
  37. package/core/built/admin/assets/activitypub/{domain-DzcM9Dzo.js → domain-CPdiB27_.js} +10 -10
  38. package/core/built/admin/assets/activitypub/{edit-profile-CsQ_4xAk.js → edit-profile-BY2PawIe.js} +7 -7
  39. package/core/built/admin/assets/activitypub/{explore-CJe0DZBK.js → explore-Sp9bgAwq.js} +11 -11
  40. package/core/built/admin/assets/activitypub/{feed-CKV3qWON.js → feed-BjtF4ohL.js} +10 -10
  41. package/core/built/admin/assets/activitypub/{field-DckHfDJf.js → field-BDOYVTg6.js} +4 -4
  42. package/core/built/admin/assets/activitypub/{hash-Dlp8RM55.js → hash-DqXYHgzG.js} +2 -2
  43. package/core/built/admin/assets/activitypub/{inbox-CsPy4R0M.js → inbox-CZ7IOAMn.js} +2 -2
  44. package/core/built/admin/assets/activitypub/{inbox-DAsjzUUe.js → inbox-z1o2j1Tb.js} +11 -11
  45. package/core/built/admin/assets/activitypub/{label-DWyo9E5T.js → label-1jhN-qhD.js} +4 -4
  46. package/core/built/admin/assets/activitypub/layout-BRMezuty.js +1 -0
  47. package/core/built/admin/assets/activitypub/{moderation-B0Inc03M.js → moderation-CZudJi8N.js} +9 -9
  48. package/core/built/admin/assets/activitypub/{note-CSE54lER.js → note-nr_m_5yb.js} +8 -8
  49. package/core/built/admin/assets/activitypub/{notifications-RSwbKqdh.js → notifications-BdcyivbT.js} +10 -10
  50. package/core/built/admin/assets/activitypub/{onboarding-BFDkzeR2.js → onboarding-B4kwav9u.js} +2 -2
  51. package/core/built/admin/assets/activitypub/{onboarding-D6rcBdPe.js → onboarding-DZNElJYP.js} +3 -3
  52. package/core/built/admin/assets/activitypub/{preferences-CE231n2_.js → preferences-CNqy1x9C.js} +13 -13
  53. package/core/built/admin/assets/activitypub/{profile-aaQ1j1Eo.js → profile-DlY4rhbO.js} +15 -15
  54. package/core/built/admin/assets/activitypub/{reply-Cjb0Vs3m.js → reply-DASIN0Ec.js} +2 -2
  55. package/core/built/admin/assets/activitypub/{routes-Djb0mc9k.js → routes-CEHdEZzS.js} +31 -31
  56. package/core/built/admin/assets/activitypub/{separator-D8pROI5n.js → separator-B3k35sUV.js} +4 -4
  57. package/core/built/admin/assets/activitypub/{settings-DMc32IQl.js → settings-CrSV1cux.js} +6 -6
  58. package/core/built/admin/assets/activitypub/{site-DVIcsohX.js → site-CtBUCPBz.js} +6 -6
  59. package/core/built/admin/assets/activitypub/{step-1-9Yey9usF.js → step-1-D9jGWyAy.js} +7 -7
  60. package/core/built/admin/assets/activitypub/{step-2-DdYmKRXV.js → step-2-Jz_enuo9.js} +7 -7
  61. package/core/built/admin/assets/activitypub/{step-3-hdSkcjZU.js → step-3-KpUqpGWi.js} +12 -12
  62. package/core/built/admin/assets/activitypub/{tabs-CUqseYzQ.js → tabs-DvlsxTCI.js} +7 -7
  63. package/core/built/admin/assets/activitypub/{topic-filter-Coni6OXM.js → topic-filter-CIN1E2jg.js} +4 -4
  64. package/core/built/admin/assets/activitypub/{use-activity-pub-queries-MeHTPMQv.js → use-activity-pub-queries-CATFd6YV.js} +4 -4
  65. package/core/built/admin/assets/activitypub/{use-navigate-with-base-path-B046AM38.js → use-navigate-with-base-path-iCkcbMGk.js} +2 -2
  66. package/core/built/admin/assets/activitypub/{use-reply-chain-data-1AO-Xob6.js → use-reply-chain-data-DJ0vhA8V.js} +6 -6
  67. package/core/built/admin/assets/activitypub/{users-BLeiOTHc.js → users-sgJ6GNZX.js} +12 -11
  68. package/core/built/admin/assets/activitypub/{x-BRfRYd16.js → x-Cy2jUiYM.js} +2 -2
  69. package/core/built/admin/assets/add-integration-modal-BW23PDYs.js +1 -0
  70. package/core/built/admin/assets/add-newsletter-modal-M0ls8BKO.js +1 -0
  71. package/core/built/admin/assets/{add-recommendation-modal-D-3LOrdd.js → add-recommendation-modal-B0NeBMzl.js} +1 -1
  72. package/core/built/admin/assets/{analytics-DTIMRhWw.js → analytics-BC2oR8ay.js} +1 -1
  73. package/core/built/admin/assets/announcement-bar-modal-pXBqjQE_.js +1 -0
  74. package/core/built/admin/assets/{api-keys-_iCT4dxr.js → api-keys-BgKr003d.js} +1 -1
  75. package/core/built/admin/assets/{api-keys-Dx4NeNpK.js → api-keys-Df6uv1dT.js} +1 -1
  76. package/core/built/admin/assets/{audience-DkknNqhZ.js → audience-BY8od8If.js} +1 -1
  77. package/core/built/admin/assets/{automated-emails-PayPCT8L.js → automated-emails-28c2Lbb3.js} +1 -1
  78. package/core/built/admin/assets/{automations-DvSU7QhW.js → automations-DCs6Wady.js} +1 -1
  79. package/core/built/admin/assets/{automations-162q5HjL.js → automations-Dzp_QnON.js} +1 -1
  80. package/core/built/admin/assets/{bluesky-sharing-yZ9A_jL8.js → bluesky-sharing-D0P42Cws.js} +1 -1
  81. package/core/built/admin/assets/{breadcrumb-CjOH7LCU.js → breadcrumb-MTj_cKLb.js} +1 -1
  82. package/core/built/admin/assets/card-CiiE7QfM.js +1 -0
  83. package/core/built/admin/assets/{chart-helpers-DGxvWnBT.js → chart-helpers-DcO3k_vA.js} +1 -1
  84. package/core/built/admin/assets/{checkbox-BSUcnNq_.js → checkbox-LmClhqcS.js} +1 -1
  85. package/core/built/admin/assets/{chunk.424.4a27628efdade15c2dab.js → chunk.408.1a258af360eb8d905508.js} +40 -37
  86. package/core/built/admin/assets/{chunk.571.40f093ed6d883993714e.js → chunk.492.a9da46ca956b10116774.js} +1342 -1342
  87. package/core/built/admin/assets/{chunk.571.40f093ed6d883993714e.js.LICENSE.txt → chunk.492.a9da46ca956b10116774.js.LICENSE.txt} +1 -1
  88. package/core/built/admin/assets/chunk.524.4c693c3a00ac91df34fa.js +25 -0
  89. package/core/built/admin/assets/chunk.582.20b600e329e58d12d7c2.js +27 -0
  90. package/core/built/admin/assets/code-editor-view-DqTOUnbM.js +1 -0
  91. package/core/built/admin/assets/code-editor-view-bA0lfxUL.js +1 -0
  92. package/core/built/admin/assets/{debounce-Cx5B_9OI.js → color-picker-CBlJMv3y.js} +2 -2
  93. package/core/built/admin/assets/color-picker-field-Cv9GOJQZ.js +1 -0
  94. package/core/built/admin/assets/{combobox-5rdgDrDV.js → combobox-BbPJzjCp.js} +1 -1
  95. package/core/built/admin/assets/command-BrhXIlDr.js +1 -0
  96. package/core/built/admin/assets/comments-Cu4rD1aJ.js +1 -0
  97. package/core/built/admin/assets/confirmation-provider-BEdrnHns.js +1 -0
  98. package/core/built/admin/assets/{content-api-modal-BtW4Z1-1.js → content-api-modal-BOFWRUkC.js} +1 -1
  99. package/core/built/admin/assets/{copy-field-CEp_XieW.js → copy-field-8biQvNMD.js} +1 -1
  100. package/core/built/admin/assets/custom-field-type-option-CNhAgHbJ.js +1 -0
  101. package/core/built/admin/assets/custom-integration-modal-CrGOI8IB.js +1 -0
  102. package/core/built/admin/assets/{date-range-select-B3Ij1Rqg.js → date-range-select-Bsh4gIek.js} +1 -1
  103. package/core/built/admin/assets/debounce-pscB46sW.js +1 -0
  104. package/core/built/admin/assets/design-and-theme-modal-DWZguwWX.js +23 -0
  105. package/core/built/admin/assets/{dirty-confirm-dialog-YE9L21gY.js → dirty-confirm-dialog-DmdMpgyN.js} +1 -1
  106. package/core/built/admin/assets/{disabled-sources-indicator-uIzbWL7K.js → disabled-sources-indicator-BLnmyWgt.js} +1 -1
  107. package/core/built/admin/assets/dist-4m6pHdc0.js +23 -0
  108. package/core/built/admin/assets/{dist-DCk0UkGx.js → dist-B6bJuxL3.js} +1 -1
  109. package/core/built/admin/assets/{dist-CbHbGtQ-.js → dist-BtaTA7Ii.js} +1 -1
  110. package/core/built/admin/assets/{dist-Q1p9iXwH.js → dist-CZgIBXQN.js} +1 -1
  111. package/core/built/admin/assets/dist-CiHx7vA5.js +6 -0
  112. package/core/built/admin/assets/{dist-ARN6XTcR.js → dist-ECAUrdGc.js} +1 -1
  113. package/core/built/admin/assets/dist-Z97pCNqS.js +11 -0
  114. package/core/built/admin/assets/{dist-t6AXpf_4.js → dist-zwwGt8Yf.js} +1 -1
  115. package/core/built/admin/assets/{domain-DzrOAPY8.js → domain-Dp9TRrFp.js} +1 -1
  116. package/core/built/admin/assets/{dropzone-CzhP33wa.js → dropzone-B21Entqz.js} +1 -1
  117. package/core/built/admin/assets/{edit-profile-oufs4R4n.js → edit-profile-DG6lpMsr.js} +1 -1
  118. package/core/built/admin/assets/editor-CPQOrhrn.js +8 -0
  119. package/core/built/admin/assets/{editor-DtxX27Jz.css → editor-DLioOiRN.css} +1 -1
  120. package/core/built/admin/assets/{embed-signup-form-modal-Ch3s6lqA.js → embed-signup-form-modal-CgWniDha.js} +2 -2
  121. package/core/built/admin/assets/esm-CXo5SEPy.js +2 -0
  122. package/core/built/admin/assets/{explore-CA-R01Br.js → explore-C3rzONJv.js} +1 -1
  123. package/core/built/admin/assets/{feed-ClC8_Gld.js → feed-DpUwS1cU.js} +1 -1
  124. package/core/built/admin/assets/{field-B3OPenbP.js → field-BQqLTgHM.js} +1 -1
  125. package/core/built/admin/assets/{filter-sources-CiPLnG9A.js → filter-sources-FgqoUIL7.js} +1 -1
  126. package/core/built/admin/assets/{filters-yFvybRMe.js → filters-D0uIMD8n.js} +1 -1
  127. package/core/built/admin/assets/filters-DZJT29GW.js +1 -0
  128. package/core/built/admin/assets/{first-promoter-modal-BC0UpYCD.js → first-promoter-modal-DJhQQheG.js} +1 -1
  129. package/core/built/admin/assets/framework-provider-CFLwK5uS.js +4 -0
  130. package/core/built/admin/assets/{ghost-d38c30b866e59f2e06a357b5eb844fe5.css → ghost-68f447a1796b93a1f128b649bac8506d.css} +1 -1
  131. package/core/built/admin/assets/{ghost-d683fbeb945b13155ea669caa5d8db41.js → ghost-ba408063a5922b458b4a8f216cf23251.js} +124 -342
  132. package/core/built/admin/assets/{ghost-dark-1bffd5099ba7a749303133efacf8480b.css → ghost-dark-28ae4899c92022857f3584694bcb50ef.css} +1 -1
  133. package/core/built/admin/assets/{gift-link-modal-BKRuqo-k.js → gift-link-modal-sdFLjND9.js} +1 -1
  134. package/core/built/admin/assets/{gift-links-CVuqLhsZ.js → gift-links-D7BJ9qfe.js} +1 -1
  135. package/core/built/admin/assets/{global-data-provider-RzW6Bnlf.js → global-data-provider-CixmTX00.js} +1 -1
  136. package/core/built/admin/assets/{growth-ClNAldfL.js → growth-0YYkBEeS.js} +1 -1
  137. package/core/built/admin/assets/{growth-Dz8OSG06.js → growth-DpjAPeQT.js} +2 -2
  138. package/core/built/admin/assets/{history-modal-DIVuQ5Ct.js → history-modal-BWJ4-cJ0.js} +1 -1
  139. package/core/built/admin/assets/{hooks-D6EE7BIt.js → hooks-CJepWnbB.js} +1 -1
  140. package/core/built/admin/assets/{html-field-CVZ2sMxw.js → html-field-C-oa5DEl.js} +1 -1
  141. package/core/built/admin/assets/{iframe-buffering-e8vH4-Qn.js → iframe-buffering-Ba9sDpi2.js} +1 -1
  142. package/core/built/admin/assets/{images-Ok8FFJ3A.js → images-3cQgwfTD.js} +1 -1
  143. package/core/built/admin/assets/{inbox-CMUVI6qb.js → inbox-Dz_JblyJ.js} +6 -6
  144. package/core/built/admin/assets/index-BOJzlYiz.js +67 -0
  145. package/core/built/admin/assets/index-Bid6LAyc.css +1 -0
  146. package/core/built/admin/assets/{input-group-2XU-iuh_.js → input-group-DpogNUIt.js} +1 -1
  147. package/core/built/admin/assets/{integrations-BT6_iJvu.js → integrations-B9yYgci5.js} +1 -1
  148. package/core/built/admin/assets/{invite-user-modal-DrZ7xxrZ.js → invite-user-modal-DCiQSiuD.js} +1 -1
  149. package/core/built/admin/assets/{koenig-editor-base-BPj4S760.js → koenig-editor-base-BApy8Q7C.js} +1 -1
  150. package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +8328 -8294
  151. package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +84 -84
  152. package/core/built/admin/assets/{koenig-lexical-Cdjv-m3_.js → koenig-lexical-2KuqRwZI.js} +33 -33
  153. package/core/built/admin/assets/{kpi-card-J8Mj1sDX.js → kpi-card-Ck3tT2Wg.js} +1 -1
  154. package/core/built/admin/assets/{kpi-card-awos0BMH.js → kpi-card-DDIxptaS.js} +1 -1
  155. package/core/built/admin/assets/{kpi-helpers-SEhvH-8E.js → kpi-helpers-ssbuy-hD.js} +1 -1
  156. package/core/built/admin/assets/{kpi-tabs-R6BjsKhd.js → kpi-tabs-BqoIM6bI.js} +1 -1
  157. package/core/built/admin/assets/{label-BMC3dzLI.js → label-DodDsMzn.js} +1 -1
  158. package/core/built/admin/assets/label-picker-Cvvbmzb5.js +1 -0
  159. package/core/built/admin/assets/{labels-DAPjKPy2.js → labels-DqvSR6JF.js} +1 -1
  160. package/core/built/admin/assets/layout-DkkGyev2.js +1 -0
  161. package/core/built/admin/assets/limit-service-BhiEvqcP.js +20 -0
  162. package/core/built/admin/assets/{link-helpers-Bzkk68GD.js → link-helpers-kpbU8TWh.js} +1 -1
  163. package/core/built/admin/assets/luxon-D1RVjjpq.js +1 -0
  164. package/core/built/admin/assets/member-custom-fields-CvGcpaiW.js +1 -0
  165. package/core/built/admin/assets/member-detail-CMCMZ47_.js +1 -0
  166. package/core/built/admin/assets/members-sRl6fNfq.js +11 -0
  167. package/core/built/admin/assets/{moderation-mPjYHgZW.js → moderation-KhKwGqI1.js} +1 -1
  168. package/core/built/admin/assets/{multi-select-combobox-CsoyHAiX.js → multi-select-combobox-nhCff0_K.js} +1 -1
  169. package/core/built/admin/assets/{navigation-modal-D_c0badj.js → navigation-modal-MDJExWDJ.js} +1 -1
  170. package/core/built/admin/assets/newsletter-BIBHumfV.js +1 -0
  171. package/core/built/admin/assets/newsletter-detail-modal-CfjBMH3v.js +1 -0
  172. package/core/built/admin/assets/{newsletter-emails-B-OLfrvr.js → newsletter-emails-ClDL-7dA.js} +1 -1
  173. package/core/built/admin/assets/newsletters-CBe-IPzK.js +1 -0
  174. package/core/built/admin/assets/{newsletters-Du0lzskS.js → newsletters-ILsexy-5.js} +1 -1
  175. package/core/built/admin/assets/{note-CSVsUKBm.js → note-HnNUOt4d.js} +1 -1
  176. package/core/built/admin/assets/{notifications-DV9FRtDw.js → notifications-Cj5e-258.js} +1 -1
  177. package/core/built/admin/assets/nql-lang-CaWrLesS.js +19 -0
  178. package/core/built/admin/assets/{offers-Um6ab71O.js → offers-DMxebaoK.js} +1 -1
  179. package/core/built/admin/assets/offers-container-modal-BHwHtixC.js +1 -0
  180. package/core/built/admin/assets/{onboarding-route--jL5KLPD.js → onboarding-route-D_4jp7Nq.js} +1 -1
  181. package/core/built/admin/assets/overview-CezDdg-F.js +1 -0
  182. package/core/built/admin/assets/overview-D5mM51Lj.js +1 -0
  183. package/core/built/admin/assets/{page-header-DAvDYKO9.js → page-header-VLPJfj_d.js} +1 -1
  184. package/core/built/admin/assets/{pages-BVMnpI2O.js → pages-Gchxp5c7.js} +1 -1
  185. package/core/built/admin/assets/{pintura-modal-jiUCxX0Q.js → pintura-modal-BXXJ8Iaa.js} +1 -1
  186. package/core/built/admin/assets/{portal-frame-D4D4nEO6.js → portal-frame-BLCvF8f-.js} +1 -1
  187. package/core/built/admin/assets/portal-modal-DN80tAcy.js +1 -0
  188. package/core/built/admin/assets/{post-analytics-BhAtiFJp.js → post-analytics-Gv81eN_g.js} +1 -1
  189. package/core/built/admin/assets/post-analytics-header-_ydSY8qO.js +1 -0
  190. package/core/built/admin/assets/{post-analytics-provider-DGg0FUqs.js → post-analytics-provider-O2YjZMhN.js} +1 -1
  191. package/core/built/admin/assets/{post-share-modal-DtFAC132.js → post-share-modal-CzYak_a5.js} +1 -1
  192. package/core/built/admin/assets/{posts-CxG7v0-M.js → posts-DgcUi2rc.js} +1 -1
  193. package/core/built/admin/assets/preferences-gneLb6LV.js +5 -0
  194. package/core/built/admin/assets/{preview-modal-DctYx20m.js → preview-modal-Bkq-tgVm.js} +1 -1
  195. package/core/built/admin/assets/profile-CzXmCNTC.js +1 -0
  196. package/core/built/admin/assets/{radio-group-CI5_Kf_d.js → radio-group-Dsq5ZEbV.js} +1 -1
  197. package/core/built/admin/assets/{referrers-B9QDAfYm.js → referrers-C3a2K8qB.js} +1 -1
  198. package/core/built/admin/assets/{router-provider-DSQfprxH.js → router-provider-CkB_ArLF.js} +1 -1
  199. package/core/built/admin/assets/{select-CkXqNJDJ.js → select-xuZAuDyS.js} +1 -1
  200. package/core/built/admin/assets/{settings-ZCj-W56o.js → settings-Ct8pabhr.js} +1 -1
  201. package/core/built/admin/assets/settings-KSWWQanQ.js +4 -0
  202. package/core/built/admin/assets/{settings-breadcrumbs-DIq31FwA.js → settings-breadcrumbs-DbPGu-Tu.js} +1 -1
  203. package/core/built/admin/assets/{share-modal-BNj14g79.js → share-modal-CdiUx9WM.js} +1 -1
  204. package/core/built/admin/assets/{slack-modal-C6SpMQ-q.js → slack-modal-BP--Z3jE.js} +1 -1
  205. package/core/built/admin/assets/{sort-button-B-k54ow2.js → sort-button-CjfKdlsL.js} +1 -1
  206. package/core/built/admin/assets/{source-icon-Cej3sZM6.js → source-icon-DHj1h6Ts.js} +1 -1
  207. package/core/built/admin/assets/{stats-B2KW8E2y.js → stats-C615kulJ.js} +1 -1
  208. package/core/built/admin/assets/{stats-view-CVzU2-p5.js → stats-view-BSMRdYiN.js} +1 -1
  209. package/core/built/admin/assets/{step-1-Dbn1iIMU.js → step-1-pSdGYtIF.js} +1 -1
  210. package/core/built/admin/assets/{step-2-BahnSuN6.js → step-2-T9Uy4eBD.js} +1 -1
  211. package/core/built/admin/assets/{step-3-CW04e2ZJ.js → step-3-D4uXe_XG.js} +2 -2
  212. package/core/built/admin/assets/{stripe-button-BkBZqaGG.js → stripe-button-Bh4p6Wud.js} +1 -1
  213. package/core/built/admin/assets/stripe-connect-modal-C2vTvepi.js +1 -0
  214. package/core/built/admin/assets/{table-BtLcEi1M.js → table-DghJxZMH.js} +1 -1
  215. package/core/built/admin/assets/{tabs-BaWRfg8j.js → tabs-l9c7FjzI.js} +1 -1
  216. package/core/built/admin/assets/tag-detail-DBw_M2-p.js +2 -0
  217. package/core/built/admin/assets/{tags-BbygUvNB.js → tags-DoWsAG6l.js} +1 -1
  218. package/core/built/admin/assets/{tags-BwCgmr5v.js → tags-EmEvJN75.js} +1 -1
  219. package/core/built/admin/assets/{testimonials-modal--bdzppyh.js → testimonials-modal-BZKePE2T.js} +1 -1
  220. package/core/built/admin/assets/tier-detail-modal-D65pVWsN.js +1 -0
  221. package/core/built/admin/assets/{tiers-Da6kxHQP.js → tiers-8iTFjJWg.js} +1 -1
  222. package/core/built/admin/assets/{toggle-group-CVl-Xigr.js → toggle-group-uJnl42w3.js} +1 -1
  223. package/core/built/admin/assets/{topic-filter-BoRHRbL1.js → topic-filter-BM7hz0kW.js} +1 -1
  224. package/core/built/admin/assets/transistor-modal-VZOGN3od.js +1 -0
  225. package/core/built/admin/assets/{unsplash-modal-CixoRAO2.js → unsplash-modal-CKGfACxF.js} +1 -1
  226. package/core/built/admin/assets/{use-analytics-data-BiWvcf1u.js → use-analytics-data-IxJcSjc9.js} +1 -1
  227. package/core/built/admin/assets/use-check-theme-limit-error-CGp3CGT5.js +1 -0
  228. package/core/built/admin/assets/use-feature-flag-CSq2Lwzt.js +1 -0
  229. package/core/built/admin/assets/use-filter-params-0hcJJuEJ.js +1 -0
  230. package/core/built/admin/assets/{use-filterable-api-iMpDZBxD.js → use-filterable-api-CQBtVG-l.js} +1 -1
  231. package/core/built/admin/assets/{use-growth-stats-Dom8xVzo.js → use-growth-stats-1NW-8eEZ.js} +1 -1
  232. package/core/built/admin/assets/use-limiter-ffwpsZPp.js +2 -0
  233. package/core/built/admin/assets/{use-pintura-config-Bj4QmiVk.js → use-pintura-config-BjFChXV1.js} +1 -1
  234. package/core/built/admin/assets/{use-pintura-editor-DvrslmPE.js → use-pintura-editor-Cb41oJyL.js} +1 -1
  235. package/core/built/admin/assets/{use-post-referrers-pxIHTXFs.js → use-post-referrers-Dp1BnTAK.js} +1 -1
  236. package/core/built/admin/assets/{use-reply-chain-data-CmFe0N6F.js → use-reply-chain-data-C0ZUTkfk.js} +1 -1
  237. package/core/built/admin/assets/{use-setting-group-Cmp_sy-d.js → use-setting-group-Bx8M6FL2.js} +1 -1
  238. package/core/built/admin/assets/{use-settings-navigation-BmROPrls.js → use-settings-navigation-BOZcat_V.js} +1 -1
  239. package/core/built/admin/assets/{use-simple-pagination-D5rL3YwO.js → use-simple-pagination-DsEGSJhe.js} +1 -1
  240. package/core/built/admin/assets/{use-tinybird-query-DP2dMaq7.js → use-tinybird-query-Ci_DiPkX.js} +1 -1
  241. package/core/built/admin/assets/{use-tinybird-token-DrK_skPQ.js → use-tinybird-token-CsUwc722.js} +1 -1
  242. package/core/built/admin/assets/use-upgrade-route-B3_DUiuT.js +1 -0
  243. package/core/built/admin/assets/{use-url-input-ChrUZBFf.js → use-url-input-BEZJpVgN.js} +2 -2
  244. package/core/built/admin/assets/user-detail-modal-595z1N5r.js +1 -0
  245. package/core/built/admin/assets/{users-B6hIds6n.js → users-DmGMPfw7.js} +1 -1
  246. package/core/built/admin/assets/virtual-list-D5ugXyZY.js +1 -0
  247. package/core/built/admin/assets/{web-D71mjB2r.js → web-CAta3lRE.js} +1 -1
  248. package/core/built/admin/assets/web-Ds9_wWJK.js +2 -0
  249. package/core/built/admin/assets/zapier-modal-CcfDZY53.js +1 -0
  250. package/core/built/admin/index.html +12 -12
  251. package/core/frontend/apps/private-blogging/lib/middleware.js +5 -58
  252. package/core/frontend/helpers/ghost_head.js +52 -0
  253. package/core/frontend/meta/asset-url.js +20 -9
  254. package/core/frontend/public/cards.manifest.json +1 -0
  255. package/core/frontend/public/ghost-stats.min.js +1 -1
  256. package/core/frontend/services/assets-minification/card-assets.js +121 -46
  257. package/core/frontend/services/assets-minification/index.js +13 -4
  258. package/core/frontend/services/data/fetch-data.js +7 -14
  259. package/core/frontend/services/llms/service.js +27 -6
  260. package/core/frontend/services/proxy.js +1 -0
  261. package/core/frontend/services/routing/api-adapter.js +11 -5
  262. package/core/frontend/services/routing/collection-router.js +1 -2
  263. package/core/frontend/services/routing/controllers/entry/markdown.js +63 -5
  264. package/core/frontend/services/routing/controllers/entry.js +1 -1
  265. package/core/frontend/services/routing/controllers/previews.js +0 -3
  266. package/core/frontend/services/routing/events.js +2 -1
  267. package/core/frontend/services/routing/parent-router.js +0 -22
  268. package/core/frontend/services/routing/router-manager.js +2 -2
  269. package/core/frontend/services/routing/static-pages-router.js +0 -1
  270. package/core/frontend/services/sitemap/handler.js +3 -4
  271. package/core/frontend/services/sitemap/site-map-manager.js +1 -2
  272. package/core/frontend/services/theme-engine/i18n/i18n.js +0 -33
  273. package/core/frontend/web/middleware/llms-discovery.js +2 -2
  274. package/core/frontend/web/routers/serve-public-file.js +33 -3
  275. package/core/frontend/web/site.js +5 -4
  276. package/core/server/adapters/jobs/InMemoryJobsBackend.js +113 -0
  277. package/core/server/adapters/redirects/S3RedirectsStore.js +33 -13
  278. package/core/server/adapters/route-settings/S3RouteSettingsStore.js +33 -13
  279. package/core/server/adapters/scheduling/scheduling-default.js +6 -7
  280. package/core/server/adapters/storage/LocalStorageBase.js +1 -3
  281. package/core/server/api/endpoints/index.js +0 -4
  282. package/core/server/api/endpoints/member-custom-fields.js +15 -4
  283. package/core/server/api/endpoints/pages.js +3 -11
  284. package/core/server/api/endpoints/posts.js +3 -11
  285. package/core/server/api/endpoints/utils/api-filter-utils.js +15 -1
  286. package/core/server/api/endpoints/utils/serializers/input/settings.js +4 -0
  287. package/core/server/api/endpoints/utils/serializers/output/index.js +0 -4
  288. package/core/server/api/endpoints/utils/serializers/output/mappers/email-batches.js +1 -1
  289. package/core/server/api/endpoints/utils/serializers/output/mappers/snippets.js +0 -1
  290. package/core/server/api/endpoints/utils/serializers/output/member-custom-fields.js +1 -0
  291. package/core/server/data/exporter/table-lists.js +4 -1
  292. package/core/server/data/migrations/utils/schema.js +5 -3
  293. package/core/server/data/migrations/versions/6.57/2026-08-04-18-00-00-store-custom-field-values-as-leaf-rows.js +19 -7
  294. package/core/server/data/migrations/versions/6.58/2026-08-10-08-20-50-add-machine-payments-settings.js +41 -0
  295. package/core/server/data/migrations/versions/6.58/2026-08-10-08-21-00-add-machine-payment-events-table.js +18 -0
  296. package/core/server/data/migrations/versions/6.58/2026-08-10-15-24-09-reset-custom-field-definitions-for-underscored-keys.js +66 -0
  297. package/core/server/data/migrations/versions/6.58/2026-08-11-10-00-00-swap-custom-field-values-to-key-fk.js +65 -0
  298. package/core/server/data/migrations/versions/6.58/2026-08-11-10-34-25-remove-legacy-explore-integration.js +131 -0
  299. package/core/server/data/migrations/versions/6.58/2026-08-11-16-00-00-add-sort-order-to-members-custom-fields.js +13 -0
  300. package/core/server/data/migrations/versions/6.58/2026-08-11-21-22-48-rename-email-batches-provider-id.js +8 -0
  301. package/core/server/data/migrations/versions/6.58/2026-08-13-16-07-33-add-automation-runs-automation-id-created-at-index.js +28 -0
  302. package/core/server/data/schema/README.md +87 -0
  303. package/core/server/data/schema/commands.js +5 -2
  304. package/core/server/data/schema/default-settings/default-settings.json +27 -0
  305. package/core/server/data/schema/fixtures/fixtures.json +0 -21
  306. package/core/server/data/schema/schema.js +37 -9
  307. package/core/server/data/seeders/data-generator.js +3 -1
  308. package/core/server/data/seeders/importers/automation-action-edges-importer.js +38 -0
  309. package/core/server/data/seeders/importers/automation-action-revisions-importer.js +139 -0
  310. package/core/server/data/seeders/importers/automation-actions-importer.js +84 -0
  311. package/core/server/data/seeders/importers/automation-run-steps-importer.js +134 -0
  312. package/core/server/data/seeders/importers/automation-runs-importer.js +97 -0
  313. package/core/server/data/seeders/importers/automations-importer.js +78 -0
  314. package/core/server/data/seeders/importers/benefits-importer.js +1 -1
  315. package/core/server/data/seeders/importers/comment-reports-importer.js +5 -5
  316. package/core/server/data/seeders/importers/comments-importer.js +6 -6
  317. package/core/server/data/seeders/importers/email-batches-importer.js +9 -8
  318. package/core/server/data/seeders/importers/email-recipient-failures-importer.js +1 -1
  319. package/core/server/data/seeders/importers/email-recipients-importer.js +12 -12
  320. package/core/server/data/seeders/importers/emails-importer.js +7 -7
  321. package/core/server/data/seeders/importers/index.js +6 -0
  322. package/core/server/data/seeders/importers/labels-importer.js +4 -4
  323. package/core/server/data/seeders/importers/members-click-events-importer.js +4 -4
  324. package/core/server/data/seeders/importers/members-created-events-importer.js +5 -5
  325. package/core/server/data/seeders/importers/members-feedback-importer.js +7 -7
  326. package/core/server/data/seeders/importers/members-importer.js +5 -5
  327. package/core/server/data/seeders/importers/members-labels-importer.js +1 -1
  328. package/core/server/data/seeders/importers/members-login-events-importer.js +4 -4
  329. package/core/server/data/seeders/importers/members-newsletters-importer.js +1 -1
  330. package/core/server/data/seeders/importers/members-paid-subscription-events-importer.js +1 -1
  331. package/core/server/data/seeders/importers/members-products-importer.js +3 -3
  332. package/core/server/data/seeders/importers/members-status-events-importer.js +4 -4
  333. package/core/server/data/seeders/importers/members-stripe-customers-importer.js +3 -3
  334. package/core/server/data/seeders/importers/members-stripe-customers-subscriptions-importer.js +8 -8
  335. package/core/server/data/seeders/importers/members-subscribe-events-importer.js +3 -3
  336. package/core/server/data/seeders/importers/members-subscription-created-events-importer.js +4 -4
  337. package/core/server/data/seeders/importers/newsletters-importer.js +1 -1
  338. package/core/server/data/seeders/importers/offer-redemptions-importer.js +6 -6
  339. package/core/server/data/seeders/importers/offers-importer.js +4 -4
  340. package/core/server/data/seeders/importers/posts-authors-importer.js +1 -1
  341. package/core/server/data/seeders/importers/posts-importer.js +5 -5
  342. package/core/server/data/seeders/importers/posts-products-importer.js +1 -1
  343. package/core/server/data/seeders/importers/posts-tags-importer.js +1 -1
  344. package/core/server/data/seeders/importers/products-benefits-importer.js +1 -1
  345. package/core/server/data/seeders/importers/products-importer.js +1 -1
  346. package/core/server/data/seeders/importers/recommendation-click-events-importer.js +1 -1
  347. package/core/server/data/seeders/importers/recommendation-subscribe-events-importer.js +1 -1
  348. package/core/server/data/seeders/importers/recommendations-importer.js +1 -1
  349. package/core/server/data/seeders/importers/redirects-importer.js +1 -1
  350. package/core/server/data/seeders/importers/roles-users-importer.js +1 -1
  351. package/core/server/data/seeders/importers/stripe-prices-importer.js +1 -1
  352. package/core/server/data/seeders/importers/stripe-products-importer.js +1 -1
  353. package/core/server/data/seeders/importers/table-importer.js +92 -91
  354. package/core/server/data/seeders/importers/tags-importer.js +3 -3
  355. package/core/server/data/seeders/importers/users-importer.js +3 -3
  356. package/core/server/data/seeders/importers/web-mentions-importer.js +3 -3
  357. package/core/server/data/seeders/utils/database-date.js +14 -18
  358. package/core/server/data/seeders/utils/json-importer.js +1 -1
  359. package/core/server/data/seeders/utils/random.js +8 -7
  360. package/core/server/data/seeders/utils/topological-sort.js +5 -3
  361. package/core/server/data/tinybird/ARCHITECTURE.md +1 -2
  362. package/core/server/models/base/plugins/crud.js +0 -5
  363. package/core/server/models/index.js +2 -0
  364. package/core/server/models/machine-payment-event.js +18 -0
  365. package/core/server/models/member.js +24 -0
  366. package/core/server/models/settings.js +32 -3
  367. package/core/server/models/user.js +1 -1
  368. package/core/server/services/README.md +30 -0
  369. package/core/server/services/activitypub/activity-pub-service.js +2 -3
  370. package/core/server/services/adapter-manager/base-classes.js +3 -1
  371. package/core/server/services/auth/passwordreset.js +47 -51
  372. package/core/server/services/automations/database-automations-repository.js +19 -3
  373. package/core/server/services/automations/poll.js +2 -8
  374. package/core/server/services/comments/comments-service.js +4 -16
  375. package/core/server/services/comments/index.js +1 -3
  376. package/core/server/services/email-analytics/email-analytics-service-wrapper.js +68 -119
  377. package/core/server/services/email-analytics/email-analytics-service.js +73 -229
  378. package/core/server/services/email-analytics/event-processing-result.js +0 -10
  379. package/core/server/services/email-analytics/fetch-mailgun-events.js +25 -0
  380. package/core/server/services/email-analytics/index.js +35 -67
  381. package/core/server/services/email-analytics/lib/queries.js +88 -51
  382. package/core/server/services/email-analytics/newsletter-email-analytics-batch-processor.js +4 -1
  383. package/core/server/services/email-service/batch-sending-service.js +1 -1
  384. package/core/server/services/email-service/email-event-processor.js +12 -12
  385. package/core/server/services/email-service/events/email-bounced-event.js +8 -46
  386. package/core/server/services/email-service/events/email-delivered-event.js +8 -36
  387. package/core/server/services/email-service/events/email-opened-event.js +8 -36
  388. package/core/server/services/email-service/events/email-temporary-bounced-event.js +8 -46
  389. package/core/server/services/email-service/events/email-unsubscribed-event.js +8 -31
  390. package/core/server/services/email-service/events/spam-complaint-event.js +8 -31
  391. package/core/server/services/email-service/newsletter-email-event-storage.js +8 -7
  392. package/core/server/services/email-service/sending-service.js +1 -1
  393. package/core/server/services/email-suppression-list/mailgun-email-suppression-list.js +2 -2
  394. package/core/server/services/email-suppression-list/service.js +1 -3
  395. package/core/server/services/explore-ping/explore-ping-service.js +1 -6
  396. package/core/server/services/explore-ping/index.js +0 -2
  397. package/core/server/services/gifts/index.js +109 -3
  398. package/core/server/services/gifts/jobs/clean-gifts-job.js +1 -1
  399. package/core/server/services/gifts/jobs/send-gift-reminders-job.js +1 -1
  400. package/core/server/services/jobs-service/index.js +36 -0
  401. package/core/server/services/jobs-service/job.js +6 -0
  402. package/core/server/services/jobs-service/jobs-service.js +91 -0
  403. package/core/server/services/jobs-service/register-job-handlers.js +6 -0
  404. package/core/server/services/lib/mailgun-client.js +1 -1
  405. package/core/server/services/machine-payments/README.md +23 -0
  406. package/core/server/services/machine-payments/adapters/mpp-adapter.js +195 -0
  407. package/core/server/services/machine-payments/content-loader.js +89 -0
  408. package/core/server/services/machine-payments/eligibility.js +6 -0
  409. package/core/server/services/machine-payments/events/machine-payment-event-repository.js +58 -0
  410. package/core/server/services/machine-payments/events/machine-payment-event.js +46 -0
  411. package/core/server/services/machine-payments/index.js +87 -0
  412. package/core/server/services/machine-payments/pricing.js +54 -0
  413. package/core/server/services/machine-payments/service.js +275 -0
  414. package/core/server/services/machine-payments/stripe/deposit-address-store.js +157 -0
  415. package/core/server/services/machine-payments/stripe/payment-recorder.js +85 -0
  416. package/core/server/services/machine-payments/stripe/stripe-client-options.js +25 -0
  417. package/core/server/services/machine-payments/types.js +2 -0
  418. package/core/server/services/members/import-export/csv/parse.js +9 -1
  419. package/core/server/services/members/import-export/import/completion-email.js +61 -27
  420. package/core/server/services/members/import-export/import/email-template.js +28 -15
  421. package/core/server/services/members/import-export/import/importer.js +99 -51
  422. package/core/server/services/members/import-export/import/spool.js +1 -1
  423. package/core/server/services/members/import-export/index.js +24 -1
  424. package/core/server/services/members/members-api/services/member-bread-service.js +2 -2
  425. package/core/server/services/members/members-config-provider.js +12 -2
  426. package/core/server/services/members-custom-fields/actions.js +2 -1
  427. package/core/server/services/members-custom-fields/definitions-service.js +109 -27
  428. package/core/server/services/members-custom-fields/filter.js +199 -0
  429. package/core/server/services/members-custom-fields/key.js +37 -0
  430. package/core/server/services/members-custom-fields/queries.js +15 -0
  431. package/core/server/services/members-custom-fields/schema.js +1 -1
  432. package/core/server/services/members-custom-fields/values-service.js +18 -14
  433. package/core/server/services/members-events/last-seen-at-updater.js +1 -1
  434. package/core/server/services/oembed/oembed-service.js +8 -2
  435. package/core/server/services/permissions/can-this.js +4 -1
  436. package/core/server/services/posts/posts-service.js +18 -16
  437. package/core/server/services/public-config/config.js +1 -1
  438. package/core/server/services/route-settings/dynamic-routing-service.js +2 -0
  439. package/core/server/services/settings-helpers/settings-helpers.js +0 -1
  440. package/core/server/services/stats/posts-stats-service.js +0 -2
  441. package/core/server/services/stripe/stripe-api.js +2 -9
  442. package/core/server/web/api/endpoints/admin/middleware.js +0 -1
  443. package/core/server/web/api/endpoints/admin/routes.js +2 -3
  444. package/core/server/web/comments/routes.js +31 -8
  445. package/core/shared/config/defaults.json +17 -2
  446. package/core/shared/config/loader.js +11 -2
  447. package/core/shared/config/overrides.json +2 -0
  448. package/core/shared/config/secrets.js +71 -0
  449. package/core/shared/labs.js +4 -13
  450. package/core/shared/machine-payments.js +30 -0
  451. package/core/shared/private-site-access/index.js +68 -0
  452. package/package.json +48 -43
  453. package/pnpm-lock.yaml +1412 -1583
  454. package/pnpm-workspace.yaml +85 -48
  455. package/bin/validate-adapters.ts +0 -87
  456. package/components/tryghost-adapter-base-scheduling-0.2.1.tgz +0 -0
  457. package/components/tryghost-adapter-base-sso-0.1.1.tgz +0 -0
  458. package/components/tryghost-kg-card-factory-5.2.3.tgz +0 -0
  459. package/components/tryghost-kg-clean-basic-html-4.3.3.tgz +0 -0
  460. package/components/tryghost-kg-converters-1.2.4.tgz +0 -0
  461. package/components/tryghost-kg-default-cards-10.3.4.tgz +0 -0
  462. package/components/tryghost-kg-default-nodes-2.1.5.tgz +0 -0
  463. package/components/tryghost-kg-default-transforms-1.3.3.tgz +0 -0
  464. package/components/tryghost-kg-html-to-lexical-1.3.3.tgz +0 -0
  465. package/components/tryghost-kg-lexical-html-renderer-1.4.3.tgz +0 -0
  466. package/components/tryghost-kg-markdown-html-renderer-7.2.3.tgz +0 -0
  467. package/components/tryghost-kg-utils-1.1.3.tgz +0 -0
  468. package/content/themes/casper/assets/built/casper.js.map +0 -1
  469. package/content/themes/casper/assets/built/global.css.map +0 -1
  470. package/content/themes/casper/assets/built/screen.css.map +0 -1
  471. package/content/themes/source/assets/built/screen.css.map +0 -1
  472. package/content/themes/source/assets/built/source.js.map +0 -1
  473. package/core/built/admin/assets/activitypub/layout-DM_3pqsU.js +0 -1
  474. package/core/built/admin/assets/add-integration-modal-DU9ghGLS.js +0 -1
  475. package/core/built/admin/assets/add-newsletter-modal-DFxuQrYu.js +0 -1
  476. package/core/built/admin/assets/announcement-bar-modal-DGCcezB6.js +0 -1
  477. package/core/built/admin/assets/card-aUHX0hyR.js +0 -1
  478. package/core/built/admin/assets/chunk.524.dce1c51e0bc30fb2718e.js +0 -25
  479. package/core/built/admin/assets/chunk.582.3a430d5c6a744fd475b6.js +0 -27
  480. package/core/built/admin/assets/code-editor-view-BcyKABrG.js +0 -1
  481. package/core/built/admin/assets/color-picker-field-8NoSnhNI.js +0 -1
  482. package/core/built/admin/assets/command-BOYMbZa_.js +0 -1
  483. package/core/built/admin/assets/comments-BhNM5CYl.js +0 -1
  484. package/core/built/admin/assets/confirmation-modal-CYD7x3UQ.js +0 -1
  485. package/core/built/admin/assets/custom-integration-modal-bk3lNEuQ.js +0 -1
  486. package/core/built/admin/assets/design-and-theme-modal-B2xYKS1I.js +0 -23
  487. package/core/built/admin/assets/dist-Bg8bSvLA.js +0 -6
  488. package/core/built/admin/assets/dist-BnFdlebk.js +0 -11
  489. package/core/built/admin/assets/dist-CsvXCJSe.js +0 -23
  490. package/core/built/admin/assets/editor-BBKrunMK.js +0 -8
  491. package/core/built/admin/assets/filters-Bz0HsRie.js +0 -1
  492. package/core/built/admin/assets/framework-provider-CmtnPXIT.js +0 -4
  493. package/core/built/admin/assets/index-DUXM0NlS.js +0 -67
  494. package/core/built/admin/assets/index-Ds2iUoF6.css +0 -1
  495. package/core/built/admin/assets/label-picker-Bnlru5tO.js +0 -1
  496. package/core/built/admin/assets/layout-yR9rlvEw.js +0 -1
  497. package/core/built/admin/assets/limit-modal-COmLevuY.js +0 -1
  498. package/core/built/admin/assets/limit-service-9fwD33lU.js +0 -20
  499. package/core/built/admin/assets/member-custom-fields-BvFKEpxJ.js +0 -1
  500. package/core/built/admin/assets/member-detail-CWdPAe3p.js +0 -1
  501. package/core/built/admin/assets/members-Bnt0ih2R.js +0 -11
  502. package/core/built/admin/assets/newsletter-DR49NyGS.js +0 -1
  503. package/core/built/admin/assets/newsletter-detail-modal-B45pL1pb.js +0 -1
  504. package/core/built/admin/assets/newsletters-DGs5BaKH.js +0 -1
  505. package/core/built/admin/assets/nql-lang-B7faUf8D.js +0 -19
  506. package/core/built/admin/assets/offers-container-modal-B0hFS8nk.js +0 -1
  507. package/core/built/admin/assets/overview-B-ZPNqMo.js +0 -1
  508. package/core/built/admin/assets/overview-D96iwoJi.js +0 -1
  509. package/core/built/admin/assets/portal-modal-BLFdYeDH.js +0 -1
  510. package/core/built/admin/assets/post-analytics-header-DK27VjJm.js +0 -1
  511. package/core/built/admin/assets/preferences-CuWLISHa.js +0 -5
  512. package/core/built/admin/assets/profile-BsKYYtuL.js +0 -1
  513. package/core/built/admin/assets/settings-B4vM-rgV.js +0 -4
  514. package/core/built/admin/assets/stripe-connect-modal-CYDDrSJm.js +0 -1
  515. package/core/built/admin/assets/tag-detail-CmqiC32L.js +0 -1
  516. package/core/built/admin/assets/tier-detail-modal-BZmAsIy4.js +0 -1
  517. package/core/built/admin/assets/transistor-modal-CBPDqEGy.js +0 -1
  518. package/core/built/admin/assets/use-check-theme-limit-error-B14lZukR.js +0 -2
  519. package/core/built/admin/assets/use-feature-flag-BmJoc5WN.js +0 -1
  520. package/core/built/admin/assets/use-filter-params-ChoV72Hw.js +0 -1
  521. package/core/built/admin/assets/use-limiter-Dwg8ivgQ.js +0 -2
  522. package/core/built/admin/assets/user-detail-modal-XODpOqNC.js +0 -1
  523. package/core/built/admin/assets/virtual-list-Dnoafqbk.js +0 -1
  524. package/core/built/admin/assets/web-z71lA1Y3.js +0 -2
  525. package/core/built/admin/assets/zapier-modal-Bp507Um7.js +0 -1
  526. package/core/frontend/meta/og-type.ts +0 -13
  527. package/core/frontend/services/routing/api-adapter.ts +0 -157
  528. package/core/frontend/services/routing/config.ts +0 -59
  529. package/core/frontend/services/routing/controllers/entry/canonical-url.ts +0 -14
  530. package/core/frontend/services/routing/controllers/entry/gift-links.ts +0 -56
  531. package/core/frontend/services/routing/controllers/entry/markdown.ts +0 -72
  532. package/core/frontend/services/routing/controllers/entry.ts +0 -120
  533. package/core/frontend/services/routing/controllers/rss.ts +0 -66
  534. package/core/frontend/services/routing/permalink-adapter.ts +0 -10
  535. package/core/frontend/src/utils/privacy.ts +0 -66
  536. package/core/server/adapters/redirects/FileStore.ts +0 -113
  537. package/core/server/adapters/redirects/S3RedirectsStore.ts +0 -185
  538. package/core/server/adapters/route-settings/FileStore.ts +0 -144
  539. package/core/server/adapters/route-settings/S3RouteSettingsStore.ts +0 -199
  540. package/core/server/adapters/route-settings/utils.ts +0 -17
  541. package/core/server/adapters/scheduling/deps.d.ts +0 -1
  542. package/core/server/adapters/scheduling/error-capture.ts +0 -91
  543. package/core/server/adapters/scheduling/scheduling-default.ts +0 -248
  544. package/core/server/adapters/scheduling/utils.ts +0 -36
  545. package/core/server/adapters/sso/DefaultSSOAdapter.ts +0 -15
  546. package/core/server/adapters/storage/LocalFilesStorage.ts +0 -24
  547. package/core/server/adapters/storage/LocalImagesStorage.ts +0 -24
  548. package/core/server/adapters/storage/LocalMediaStorage.ts +0 -24
  549. package/core/server/adapters/storage/LocalStorageBase.ts +0 -342
  550. package/core/server/adapters/storage/S3Storage.ts +0 -506
  551. package/core/server/adapters/storage/utils.ts +0 -60
  552. package/core/server/api/endpoints/automation-action-links.ts +0 -46
  553. package/core/server/api/endpoints/explore.js +0 -18
  554. package/core/server/api/endpoints/gift-links.ts +0 -87
  555. package/core/server/api/endpoints/libraries.d.ts +0 -2
  556. package/core/server/api/endpoints/member-commenting.ts +0 -92
  557. package/core/server/api/endpoints/member-custom-fields.ts +0 -106
  558. package/core/server/api/endpoints/utils/api-filter-utils.ts +0 -22
  559. package/core/server/api/endpoints/utils/gift-link-access.ts +0 -82
  560. package/core/server/api/endpoints/utils/public-cache-keys.ts +0 -47
  561. package/core/server/api/endpoints/utils/serializers/input/member-commenting.ts +0 -29
  562. package/core/server/api/endpoints/utils/serializers/output/explore.js +0 -11
  563. package/core/server/api/endpoints/utils/serializers/output/gift-links.ts +0 -21
  564. package/core/server/api/endpoints/utils/serializers/output/member-commenting.ts +0 -8
  565. package/core/server/api/endpoints/utils/serializers/output/member-custom-fields.ts +0 -25
  566. package/core/server/api/endpoints/utils/serializers/output/members.d.ts +0 -20
  567. package/core/server/api/endpoints/utils/serializers/output/posts-csv-transform.ts +0 -46
  568. package/core/server/api/endpoints/utils/serializers/output/stream-csv-response.ts +0 -47
  569. package/core/server/api/endpoints/utils/validate-email-sender-fields.ts +0 -42
  570. package/core/server/data/importer/email-template.ts +0 -213
  571. package/core/server/data/seeders/utils/topological-sort.ts +0 -48
  572. package/core/server/lib/auto-filling-map.ts +0 -23
  573. package/core/server/lib/bootstrap-socket.ts +0 -114
  574. package/core/server/lib/case-keys.ts +0 -30
  575. package/core/server/lib/common/to-plain.ts +0 -25
  576. package/core/server/lib/db-date.ts +0 -8
  577. package/core/server/lib/get-inbox-links.ts +0 -276
  578. package/core/server/lib/post-revisions.ts +0 -152
  579. package/core/server/lib/soonest-timer.ts +0 -57
  580. package/core/server/models/base/plugins/bulk-filters.ts +0 -35
  581. package/core/server/models/role-utils.ts +0 -56
  582. package/core/server/services/activitypub/activity-pub-service.ts +0 -216
  583. package/core/server/services/adapter-manager/adapter-manager.ts +0 -253
  584. package/core/server/services/adapter-manager/adapter-paths.ts +0 -26
  585. package/core/server/services/adapter-manager/base-classes.ts +0 -22
  586. package/core/server/services/adapter-manager/index.ts +0 -16
  587. package/core/server/services/adapter-manager/types.ts +0 -45
  588. package/core/server/services/adapter-manager/utils.ts +0 -308
  589. package/core/server/services/auth/reset-authentication.ts +0 -72
  590. package/core/server/services/automations/automations-api.ts +0 -396
  591. package/core/server/services/automations/automations-repository.ts +0 -218
  592. package/core/server/services/automations/constants.ts +0 -4
  593. package/core/server/services/automations/database-automations-repository.ts +0 -1513
  594. package/core/server/services/automations/database-date.ts +0 -26
  595. package/core/server/services/automations/fake-wait-hours-multiplier.ts +0 -12
  596. package/core/server/services/automations/get-scheduler-idempotency-key.ts +0 -8
  597. package/core/server/services/automations/mailgun-message-id.ts +0 -27
  598. package/core/server/services/automations/poll.ts +0 -325
  599. package/core/server/services/automations/scheduler-poll-time.ts +0 -38
  600. package/core/server/services/automations/service.ts +0 -131
  601. package/core/server/services/automations/stale-lock-cutoff.ts +0 -5
  602. package/core/server/services/comments/email-templates/new-comment-reply.txt.ts +0 -25
  603. package/core/server/services/comments/email-templates/new-comment.txt.ts +0 -25
  604. package/core/server/services/comments/email-templates/report.txt.ts +0 -34
  605. package/core/server/services/custom-redirects/redirect-config-parser.ts +0 -148
  606. package/core/server/services/custom-redirects/redirects-service.ts +0 -181
  607. package/core/server/services/custom-redirects/utils.ts +0 -7
  608. package/core/server/services/donations/donation-bookshelf-repository.ts +0 -63
  609. package/core/server/services/donations/donation-payment-event.ts +0 -51
  610. package/core/server/services/email-address/email-address-parser.d.ts +0 -12
  611. package/core/server/services/email-address/email-address-service.ts +0 -241
  612. package/core/server/services/email-analytics/automation-email-analytics-batch-processor.ts +0 -130
  613. package/core/server/services/email-analytics/batch-event-processor.ts +0 -18
  614. package/core/server/services/email-analytics/email-analytics-provider-mailgun.js +0 -57
  615. package/core/server/services/email-analytics/event-processing-result.ts +0 -66
  616. package/core/server/services/email-analytics/events/start-automation-email-analytics-job-event.ts +0 -14
  617. package/core/server/services/email-analytics/events/start-email-analytics-job-event.ts +0 -15
  618. package/core/server/services/email-analytics/index.ts +0 -109
  619. package/core/server/services/email-analytics/jobs/email-analytics-job-scheduler.ts +0 -126
  620. package/core/server/services/email-analytics/lib/queries.ts +0 -341
  621. package/core/server/services/email-service/domain-warming-service.ts +0 -91
  622. package/core/server/services/explore/explore-service.js +0 -59
  623. package/core/server/services/explore/index.js +0 -18
  624. package/core/server/services/explore-ping/explore-ping-service.ts +0 -198
  625. package/core/server/services/explore-ping/index.ts +0 -42
  626. package/core/server/services/files/file-type-utils.ts +0 -56
  627. package/core/server/services/gift-links/actions.ts +0 -51
  628. package/core/server/services/gift-links/codec.ts +0 -16
  629. package/core/server/services/gift-links/index.ts +0 -20
  630. package/core/server/services/gift-links/models.ts +0 -22
  631. package/core/server/services/gift-links/schema.ts +0 -33
  632. package/core/server/services/gift-links/serializers.ts +0 -20
  633. package/core/server/services/gift-links/service.ts +0 -95
  634. package/core/server/services/gifts/constants.ts +0 -3
  635. package/core/server/services/gifts/email-templates/gift-purchase-confirmation.ts +0 -43
  636. package/core/server/services/gifts/email-templates/gift-reminder.ts +0 -50
  637. package/core/server/services/gifts/gift-bookshelf-repository.ts +0 -366
  638. package/core/server/services/gifts/gift-checkout-offer.ts +0 -127
  639. package/core/server/services/gifts/gift-codec.ts +0 -62
  640. package/core/server/services/gifts/gift-controller.ts +0 -51
  641. package/core/server/services/gifts/gift-email-renderer.ts +0 -97
  642. package/core/server/services/gifts/gift-email-service.ts +0 -158
  643. package/core/server/services/gifts/gift-reminder-scheduler.ts +0 -107
  644. package/core/server/services/gifts/gift-schema.ts +0 -39
  645. package/core/server/services/gifts/gift-service-wrapper.js +0 -142
  646. package/core/server/services/gifts/gift-service.ts +0 -1034
  647. package/core/server/services/gifts/gift.ts +0 -234
  648. package/core/server/services/identity-tokens/identity-token-service.ts +0 -36
  649. package/core/server/services/indexnow-ping/constants.ts +0 -32
  650. package/core/server/services/indexnow-ping/index.ts +0 -35
  651. package/core/server/services/indexnow-ping/indexnow-ping-service.ts +0 -311
  652. package/core/server/services/internal-keys/index.ts +0 -53
  653. package/core/server/services/lib/dynamic-redirect-manager.d.ts +0 -20
  654. package/core/server/services/lib/in-memory-repository.ts +0 -78
  655. package/core/server/services/lib/member-signup-contexts.ts +0 -22
  656. package/core/server/services/link-redirection/link-redirect.ts +0 -24
  657. package/core/server/services/member-welcome-emails/constants.ts +0 -35
  658. package/core/server/services/members/commenting/index.ts +0 -2
  659. package/core/server/services/members/commenting/member-commenting-codec.ts +0 -73
  660. package/core/server/services/members/commenting/member-commenting.ts +0 -69
  661. package/core/server/services/members/create-paid-member-shim.ts +0 -40
  662. package/core/server/services/members/import-export/config.ts +0 -34
  663. package/core/server/services/members/import-export/csv/formula.ts +0 -14
  664. package/core/server/services/members/import-export/csv/index.ts +0 -3
  665. package/core/server/services/members/import-export/csv/parse.ts +0 -69
  666. package/core/server/services/members/import-export/csv/serialize.ts +0 -18
  667. package/core/server/services/members/import-export/export/exporter.ts +0 -325
  668. package/core/server/services/members/import-export/import/completion-email.ts +0 -146
  669. package/core/server/services/members/import-export/import/importer.ts +0 -489
  670. package/core/server/services/members/import-export/import/reader.ts +0 -33
  671. package/core/server/services/members/import-export/import/row.ts +0 -56
  672. package/core/server/services/members/import-export/import/spool.ts +0 -38
  673. package/core/server/services/members/import-export/index.ts +0 -143
  674. package/core/server/services/members/index.d.ts +0 -32
  675. package/core/server/services/members-custom-fields/actions.ts +0 -62
  676. package/core/server/services/members-custom-fields/codec.ts +0 -13
  677. package/core/server/services/members-custom-fields/config.ts +0 -38
  678. package/core/server/services/members-custom-fields/definitions-service.ts +0 -413
  679. package/core/server/services/members-custom-fields/index.ts +0 -50
  680. package/core/server/services/members-custom-fields/models.ts +0 -15
  681. package/core/server/services/members-custom-fields/queries.ts +0 -13
  682. package/core/server/services/members-custom-fields/schema.ts +0 -71
  683. package/core/server/services/members-custom-fields/serializers.ts +0 -22
  684. package/core/server/services/members-custom-fields/storage.ts +0 -122
  685. package/core/server/services/members-custom-fields/values-service.ts +0 -269
  686. package/core/server/services/notifications/notification-email.ts +0 -66
  687. package/core/server/services/notifications/sanitize-email-html.ts +0 -35
  688. package/core/server/services/post-scheduling/index.ts +0 -13
  689. package/core/server/services/post-scheduling/post-scheduling.ts +0 -133
  690. package/core/server/services/recommendations/service/bookshelf-click-event-repository.ts +0 -49
  691. package/core/server/services/recommendations/service/bookshelf-recommendation-repository.ts +0 -117
  692. package/core/server/services/recommendations/service/bookshelf-repository.ts +0 -192
  693. package/core/server/services/recommendations/service/bookshelf-subscribe-event-repository.ts +0 -49
  694. package/core/server/services/recommendations/service/click-event.ts +0 -32
  695. package/core/server/services/recommendations/service/in-memory-recommendation-repository.ts +0 -20
  696. package/core/server/services/recommendations/service/incoming-recommendation-controller.ts +0 -51
  697. package/core/server/services/recommendations/service/incoming-recommendation-email-renderer.ts +0 -37
  698. package/core/server/services/recommendations/service/incoming-recommendation-service.ts +0 -159
  699. package/core/server/services/recommendations/service/index.ts +0 -15
  700. package/core/server/services/recommendations/service/libraries.d.ts +0 -2
  701. package/core/server/services/recommendations/service/recommendation-controller.ts +0 -257
  702. package/core/server/services/recommendations/service/recommendation-metadata-service.ts +0 -132
  703. package/core/server/services/recommendations/service/recommendation-repository.ts +0 -13
  704. package/core/server/services/recommendations/service/recommendation-service.ts +0 -285
  705. package/core/server/services/recommendations/service/recommendation.ts +0 -200
  706. package/core/server/services/recommendations/service/subscribe-event.ts +0 -32
  707. package/core/server/services/recommendations/service/unsafe-data.ts +0 -217
  708. package/core/server/services/recommendations/service/well-known-service.ts +0 -47
  709. package/core/server/services/remote-flags/index.ts +0 -101
  710. package/core/server/services/remote-flags/remote-flags-service.ts +0 -236
  711. package/core/server/services/remote-flags/resolve.ts +0 -108
  712. package/core/server/services/route-settings/route-settings-parser.ts +0 -455
  713. package/core/server/services/route-settings/validation-errors.ts +0 -271
  714. package/core/server/services/route-settings/yaml-parser.d.ts +0 -4
  715. package/core/server/services/slack-ping/constants.ts +0 -15
  716. package/core/server/services/slack-ping/index.ts +0 -35
  717. package/core/server/services/slack-ping/slack-ping-service.ts +0 -295
  718. package/core/server/services/staff/email-templates/donation.txt.ts +0 -26
  719. package/core/server/services/staff/email-templates/gift.txt.ts +0 -27
  720. package/core/server/services/staff/email-templates/new-free-signup.txt.ts +0 -15
  721. package/core/server/services/staff/email-templates/new-gift-subscription.txt.ts +0 -26
  722. package/core/server/services/staff/email-templates/new-milestone-received.txt.ts +0 -20
  723. package/core/server/services/staff/email-templates/new-paid-cancellation.txt.ts +0 -15
  724. package/core/server/services/staff/email-templates/new-paid-started.txt.ts +0 -15
  725. package/core/server/services/staff/email-templates/recommendation-received.txt.ts +0 -23
  726. package/core/server/services/staff/email-templates/types.ts +0 -13
  727. package/core/server/services/url/lazy-find-resource.ts +0 -104
  728. package/core/server/services/url/lazy-url-service.ts +0 -647
  729. package/core/server/services/url/permalink-matcher.ts +0 -119
  730. package/core/server/services/url/router-filter.ts +0 -80
  731. package/core/server/services/verification/verification-webhook-service.ts +0 -137
  732. package/core/shared/config/helpers.ts +0 -133
  733. package/core/shared/config/index.ts +0 -12
  734. package/core/shared/config/loader.ts +0 -87
  735. package/core/shared/config/utils.ts +0 -104
  736. package/core/shared/errify.ts +0 -31
  737. package/core/shared/events-ts/index.ts +0 -8
  738. package/core/shared/events-ts/post-deleted-event.ts +0 -15
  739. package/core/shared/events-ts/posts-bulk-add-tags-event.ts +0 -13
  740. package/core/shared/events-ts/posts-bulk-destroyed-event.ts +0 -13
  741. package/core/shared/events-ts/posts-bulk-featured-event.ts +0 -13
  742. package/core/shared/events-ts/posts-bulk-unfeatured-event.ts +0 -13
  743. package/core/shared/events-ts/posts-bulk-unpublished-event.ts +0 -13
  744. package/core/shared/events-ts/posts-bulk-unscheduled-event.ts +0 -13
  745. package/core/shared/labs-flag-overrides.ts +0 -35
  746. package/core/shared/one-at-a-time.ts +0 -47
  747. package/core/shared/url-utils.ts +0 -20
@@ -1 +1 @@
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{g as r,t as i}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{f as a}from"./dist-Cb5RSHSg.js";import{t as o}from"./box-By_EgGtm.js";import{t as s}from"./container-LiZf3XdY.js";import{t as c}from"./empty-indicator-WB1WgT9h.js";import{a as l,c as u,n as d,r as f,s as p,t as m}from"./table-BtLcEi1M.js";import{n as h,t as g}from"./toggle-group-CVl-Xigr.js";import{Da as _,Lo as v,Pa as y,Pr as b,Xr as x,ar as S,ra as C}from"./index-DUXM0NlS.js";import{t as w}from"./page-header-DAvDYKO9.js";import{t as T}from"./list-page-CdsnQR9N.js";import{i as E,r as D,t as O}from"./virtual-list-Dnoafqbk.js";import{r as k}from"./tags-BwCgmr5v.js";var A=e(t(),1),j=n(),M=({height:e})=>(0,j.jsx)(`tr`,{"aria-hidden":`true`,className:`flex lg:table-row`,children:(0,j.jsx)(`td`,{className:`flex lg:table-cell`,style:{height:e}})}),N=(0,A.forwardRef)(function(e,t){return(0,j.jsx)(u,{ref:t,...e,"aria-hidden":`true`,className:`relative flex flex-col lg:table-row`,children:(0,j.jsx)(f,{className:`relative z-10 h-24 animate-pulse`,children:(0,j.jsx)(`div`,{className:`h-full rounded-md bg-muted`,"data-testid":`loading-placeholder`})})})});function P({items:e,totalItems:t,hasNextPage:n,isFetchingNextPage:r,fetchNextPage:i}){let o=(0,A.useRef)(null),{visibleItemCount:s,canLoadMore:c,loadMore:h}=D(t),{visibleItems:g,spaceBefore:_,spaceAfter:v}=E({items:e,totalItems:s,hasNextPage:n,isFetchingNextPage:r,fetchNextPage:i,parentRef:o});return(0,j.jsxs)(`div`,{ref:o,className:`overflow-hidden`,children:[(0,j.jsxs)(m,{className:`flex table-fixed flex-col lg:table`,"data-testid":`tags-list`,children:[(0,j.jsx)(p,{className:`hidden lg:visible! lg:table-header-group!`,children:(0,j.jsxs)(u,{children:[(0,j.jsx)(l,{className:`w-auto px-4`,children:`Tag`}),(0,j.jsx)(l,{className:`w-1/5 px-4`,children:`Slug`}),(0,j.jsx)(l,{className:`w-1/5 px-4`,children:`No. of posts`}),(0,j.jsx)(l,{className:`w-20 px-4`})]})}),(0,j.jsxs)(d,{className:`flex flex-col lg:table-row-group`,children:[(0,j.jsx)(M,{height:_}),g.map(({key:t,virtualItem:n,item:r,props:i})=>n.index>e.length-1?(0,j.jsx)(N,{...i},t):(0,j.jsxs)(u,{...i,className:`group grid w-full grid-cols-[1fr_5rem] items-center gap-x-4 p-2 md:grid-cols-[1fr_auto_5rem] lg:table-row lg:p-0`,"data-testid":`tag-list-row`,children:[(0,j.jsxs)(f,{className:`static col-start-1 col-end-1 row-start-1 row-end-1 flex min-w-0 flex-col p-0 md:relative lg:table-cell lg:w-1/2 lg:p-4 xl:w-3/5`,children:[(0,j.jsx)(`a`,{className:`before:absolute before:top-0 before:left-0 before:z-10 before:h-full before:w-[100vw]`,href:`#/tags/${r.slug}`,children:(0,j.jsx)(`span`,{className:`block truncate text-base text-md font-semibold`,children:r.name})}),(0,j.jsx)(`span`,{className:`block truncate text-muted-foreground`,children:r.description})]}),(0,j.jsx)(f,{className:`col-start-1 col-end-1 row-start-2 row-end-2 flex p-0 lg:table-cell lg:p-4`,children:(0,j.jsx)(`span`,{className:`block truncate`,children:r.slug})}),(0,j.jsx)(f,{className:`col-start-1 col-end-1 row-start-3 row-end-3 flex p-0 md:col-start-2 md:col-end-2 md:row-start-1 md:row-end-3 lg:table-cell lg:p-4`,children:r.count?.posts?(0,j.jsx)(`a`,{className:`relative z-10 -m-4 inline-block p-4 hover:underline`,href:`#/posts?tag=${r.slug}`,children:`${a(r.count?.posts)} ${r.count?.posts===1?`post`:`posts`}`}):(0,j.jsx)(`span`,{className:`text-muted-foreground`,children:`0 posts`})}),(0,j.jsx)(f,{className:`col-start-2 col-end-2 row-start-1 row-end-3 p-0 md:col-start-3 md:col-end-3 lg:table-cell lg:p-4`,children:(0,j.jsx)(b,{"aria-hidden":`true`,className:`opacity-0 transition-all group-hover:opacity-100`,size:`icon`,tabIndex:-1,variant:`outline`,children:(0,j.jsx)(y,{})})})]},t)),(0,j.jsx)(M,{height:v})]})]}),c&&(0,j.jsx)(O,{isLoading:r,onClick:h})]})}var F=()=>{let[e,t]=r(),n=e.get(`type`)??`public`,{data:a,isError:l,isLoading:u,isFetchingNextPage:d,fetchNextPage:f,hasNextPage:p}=k({filter:{visibility:n}});return(0,j.jsx)(o,{className:`size-full`,children:(0,j.jsx)(s,{className:`relative flex h-full flex-col`,size:`page`,children:(0,j.jsxs)(T,{"data-testid":`tags-page`,children:[(0,j.jsx)(T.Header,{children:(0,j.jsxs)(w,{blurredBackground:!1,sticky:!1,children:[(0,j.jsx)(w.Left,{children:(0,j.jsx)(w.Title,{children:`Tags`})}),(0,j.jsxs)(w.Actions,{children:[(0,j.jsxs)(w.ActionGroup,{children:[(0,j.jsxs)(g,{"data-testid":`tags-header-tabs`,size:`button`,type:`single`,value:n,children:[(0,j.jsx)(h,{"aria-label":`Public tags`,value:`public`,asChild:!0,children:(0,j.jsx)(i,{to:`/tags`,children:`Public tags`})}),(0,j.jsx)(h,{"aria-label":`Internal tags`,value:`internal`,asChild:!0,children:(0,j.jsx)(i,{to:`/tags?type=internal`,children:`Internal tags`})})]}),(0,j.jsxs)(w.ActionGroup.MobileMenu,{children:[(0,j.jsx)(w.ActionGroup.MobileMenuTrigger,{children:(0,j.jsx)(b,{variant:`outline`,children:(0,j.jsx)(v,{className:`size-4`})})}),(0,j.jsxs)(w.ActionGroup.MobileMenuContent,{children:[(0,j.jsx)(x,{checked:n===`public`,onCheckedChange:()=>t({}),children:`Public tags`}),(0,j.jsx)(x,{checked:n===`internal`,onCheckedChange:()=>t({type:`internal`}),children:`Internal tags`})]})]})]}),(0,j.jsx)(w.ActionGroup,{children:(0,j.jsx)(b,{asChild:!0,children:(0,j.jsxs)(`a`,{className:`font-bold`,href:`#/tags/new`,children:[(0,j.jsx)(_,{className:`size-4`}),(0,j.jsx)(`span`,{className:`hidden sm:inline`,children:`New tag`})]})})})]})]})}),(0,j.jsx)(T.Body,{children:u?(0,j.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,j.jsx)(S,{size:`lg`})}):l?(0,j.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center`,children:[(0,j.jsx)(`h2`,{className:`mb-2 text-xl font-medium`,children:`Error loading tags`}),(0,j.jsx)(`p`,{className:`mb-4 text-muted-foreground`,children:`Please reload the page to try again`}),(0,j.jsx)(b,{onClick:()=>window.location.reload(),children:`Reload page`})]}):a?.tags.length?(0,j.jsx)(P,{fetchNextPage:()=>void f(),hasNextPage:p,isFetchingNextPage:d,items:a?.tags??[],totalItems:a?.meta?.pagination?.total??0}):(0,j.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,j.jsx)(c,{actions:(0,j.jsx)(b,{asChild:!0,children:(0,j.jsx)(`a`,{href:`#/tags/new`,children:`Create a new tag`})}),title:`Start organizing your content`,children:(0,j.jsx)(C,{})})})})]})})})};export{F as default};
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{g as r,t as i}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{f as a}from"./dist-Cb5RSHSg.js";import{t as o}from"./box-By_EgGtm.js";import{t as s}from"./container-LiZf3XdY.js";import{t as c}from"./empty-indicator-WB1WgT9h.js";import{a as l,c as u,n as d,r as f,s as p,t as m}from"./table-DghJxZMH.js";import{n as h,t as g}from"./toggle-group-uJnl42w3.js";import{Bo as _,Ia as v,Pr as y,Xr as b,ar as x,ka as S,ra as C}from"./index-BOJzlYiz.js";import{t as w}from"./page-header-VLPJfj_d.js";import{t as T}from"./list-page-CdsnQR9N.js";import{i as E,r as D,t as O}from"./virtual-list-D5ugXyZY.js";import{r as k}from"./tags-EmEvJN75.js";var A=e(t(),1),j=n(),M=({height:e})=>(0,j.jsx)(`tr`,{"aria-hidden":`true`,className:`flex lg:table-row`,children:(0,j.jsx)(`td`,{className:`flex lg:table-cell`,style:{height:e}})}),N=(0,A.forwardRef)(function(e,t){return(0,j.jsx)(u,{ref:t,...e,"aria-hidden":`true`,className:`relative flex flex-col lg:table-row`,children:(0,j.jsx)(f,{className:`relative z-10 h-24 animate-pulse`,children:(0,j.jsx)(`div`,{className:`h-full rounded-md bg-muted`,"data-testid":`loading-placeholder`})})})});function P({items:e,totalItems:t,hasNextPage:n,isFetchingNextPage:r,fetchNextPage:i}){let o=(0,A.useRef)(null),{visibleItemCount:s,canLoadMore:c,loadMore:h}=D(t),{visibleItems:g,spaceBefore:_,spaceAfter:b}=E({items:e,totalItems:s,hasNextPage:n,isFetchingNextPage:r,fetchNextPage:i,parentRef:o});return(0,j.jsxs)(`div`,{ref:o,className:`overflow-hidden`,children:[(0,j.jsxs)(m,{className:`flex table-fixed flex-col lg:table`,"data-testid":`tags-list`,children:[(0,j.jsx)(p,{className:`hidden lg:visible! lg:table-header-group!`,children:(0,j.jsxs)(u,{children:[(0,j.jsx)(l,{className:`w-auto px-4`,children:`Tag`}),(0,j.jsx)(l,{className:`w-1/5 px-4`,children:`Slug`}),(0,j.jsx)(l,{className:`w-1/5 px-4`,children:`No. of posts`}),(0,j.jsx)(l,{className:`w-20 px-4`})]})}),(0,j.jsxs)(d,{className:`flex flex-col lg:table-row-group`,children:[(0,j.jsx)(M,{height:_}),g.map(({key:t,virtualItem:n,item:r,props:i})=>n.index>e.length-1?(0,j.jsx)(N,{...i},t):(0,j.jsxs)(u,{...i,className:`group grid w-full grid-cols-[1fr_5rem] items-center gap-x-4 p-2 md:grid-cols-[1fr_auto_5rem] lg:table-row lg:p-0`,"data-testid":`tag-list-row`,children:[(0,j.jsxs)(f,{className:`static col-start-1 col-end-1 row-start-1 row-end-1 flex min-w-0 flex-col p-0 md:relative lg:table-cell lg:w-1/2 lg:p-4 xl:w-3/5`,children:[(0,j.jsx)(`a`,{className:`before:absolute before:top-0 before:left-0 before:z-10 before:h-full before:w-[100vw]`,href:`#/tags/${r.slug}`,children:(0,j.jsx)(`span`,{className:`block truncate text-base text-md font-semibold`,children:r.name})}),(0,j.jsx)(`span`,{className:`block truncate text-muted-foreground`,children:r.description})]}),(0,j.jsx)(f,{className:`col-start-1 col-end-1 row-start-2 row-end-2 flex p-0 lg:table-cell lg:p-4`,children:(0,j.jsx)(`span`,{className:`block truncate`,children:r.slug})}),(0,j.jsx)(f,{className:`col-start-1 col-end-1 row-start-3 row-end-3 flex p-0 md:col-start-2 md:col-end-2 md:row-start-1 md:row-end-3 lg:table-cell lg:p-4`,children:r.count?.posts?(0,j.jsx)(`a`,{className:`relative z-10 -m-4 inline-block p-4 hover:underline`,href:`#/posts?tag=${r.slug}`,children:`${a(r.count?.posts)} ${r.count?.posts===1?`post`:`posts`}`}):(0,j.jsx)(`span`,{className:`text-muted-foreground`,children:`0 posts`})}),(0,j.jsx)(f,{className:`col-start-2 col-end-2 row-start-1 row-end-3 p-0 md:col-start-3 md:col-end-3 lg:table-cell lg:p-4`,children:(0,j.jsx)(y,{"aria-hidden":`true`,className:`opacity-0 transition-all group-hover:opacity-100`,size:`icon`,tabIndex:-1,variant:`outline`,children:(0,j.jsx)(v,{})})})]},t)),(0,j.jsx)(M,{height:b})]})]}),c&&(0,j.jsx)(O,{isLoading:r,onClick:h})]})}var F=()=>{let[e,t]=r(),n=e.get(`type`)??`public`,{data:a,isError:l,isLoading:u,isFetchingNextPage:d,fetchNextPage:f,hasNextPage:p}=k({filter:{visibility:n}});return(0,j.jsx)(o,{className:`size-full`,children:(0,j.jsx)(s,{className:`relative flex h-full flex-col`,size:`page`,children:(0,j.jsxs)(T,{"data-testid":`tags-page`,children:[(0,j.jsx)(T.Header,{children:(0,j.jsxs)(w,{blurredBackground:!1,sticky:!1,children:[(0,j.jsx)(w.Left,{children:(0,j.jsx)(w.Title,{children:`Tags`})}),(0,j.jsxs)(w.Actions,{children:[(0,j.jsxs)(w.ActionGroup,{children:[(0,j.jsxs)(g,{"data-testid":`tags-header-tabs`,size:`button`,type:`single`,value:n,children:[(0,j.jsx)(h,{"aria-label":`Public tags`,value:`public`,asChild:!0,children:(0,j.jsx)(i,{to:`/tags`,children:`Public tags`})}),(0,j.jsx)(h,{"aria-label":`Internal tags`,value:`internal`,asChild:!0,children:(0,j.jsx)(i,{to:`/tags?type=internal`,children:`Internal tags`})})]}),(0,j.jsxs)(w.ActionGroup.MobileMenu,{children:[(0,j.jsx)(w.ActionGroup.MobileMenuTrigger,{children:(0,j.jsx)(y,{variant:`outline`,children:(0,j.jsx)(_,{className:`size-4`})})}),(0,j.jsxs)(w.ActionGroup.MobileMenuContent,{children:[(0,j.jsx)(b,{checked:n===`public`,onCheckedChange:()=>t({}),children:`Public tags`}),(0,j.jsx)(b,{checked:n===`internal`,onCheckedChange:()=>t({type:`internal`}),children:`Internal tags`})]})]})]}),(0,j.jsx)(w.ActionGroup,{children:(0,j.jsx)(y,{asChild:!0,children:(0,j.jsxs)(`a`,{className:`font-bold`,href:`#/tags/new`,children:[(0,j.jsx)(S,{className:`size-4`}),(0,j.jsx)(`span`,{className:`hidden sm:inline`,children:`New tag`})]})})})]})]})}),(0,j.jsx)(T.Body,{children:u?(0,j.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,j.jsx)(x,{size:`lg`})}):l?(0,j.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center`,children:[(0,j.jsx)(`h2`,{className:`mb-2 text-xl font-medium`,children:`Error loading tags`}),(0,j.jsx)(`p`,{className:`mb-4 text-muted-foreground`,children:`Please reload the page to try again`}),(0,j.jsx)(y,{onClick:()=>window.location.reload(),children:`Reload page`})]}):a?.tags.length?(0,j.jsx)(P,{fetchNextPage:()=>void f(),hasNextPage:p,isFetchingNextPage:d,items:a?.tags??[],totalItems:a?.meta?.pagination?.total??0}):(0,j.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,j.jsx)(c,{actions:(0,j.jsx)(y,{asChild:!0,children:(0,j.jsx)(`a`,{href:`#/tags/new`,children:`Create a new tag`})}),title:`Start organizing your content`,children:(0,j.jsx)(C,{})})})})]})})})};export{F as default};
@@ -1 +1 @@
1
- import{i as e,n as t,t as n}from"./hooks-D6EE7BIt.js";var r=`TagsResponseType`,i=n({dataType:r,path:`/tags/`,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.tags),r=t[t.length-1].meta;return{tags:n,meta:r,isEnd:r?r.pagination.pages===r.pagination.page:!0}}}),a=({filter:e,...t})=>{let n=Object.entries(e).map(([e,t])=>`${e}:${t}`).join(`,`);return i({...t,searchParams:{limit:`100`,order:`name asc`,include:`count.posts`,filter:n,...t.searchParams}})};e({dataType:r,path:e=>`/tags/${e}/`});var o=e({dataType:r,path:e=>`/tags/slug/${e}/`}),s=t({method:`POST`,path:()=>`/tags/`,searchParams:()=>({include:`count.posts`}),body:e=>({tags:[e]}),invalidateQueries:{dataType:r}}),c=t({method:`PUT`,path:({id:e})=>`/tags/${e}/`,searchParams:()=>({include:`count.posts`}),body:({id:e,...t})=>({tags:[{id:e,...t}]}),invalidateQueries:{dataType:r}}),l=t({method:`DELETE`,path:e=>`/tags/${e}/`,invalidateQueries:{dataType:r}});export{c as a,l as i,s as n,a as r,o as t};
1
+ import{i as e,n as t,t as n}from"./hooks-CJepWnbB.js";var r=`TagsResponseType`,i=n({dataType:r,path:`/tags/`,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.tags),r=t[t.length-1].meta;return{tags:n,meta:r,isEnd:r?r.pagination.pages===r.pagination.page:!0}}}),a=({filter:e,...t})=>{let n=Object.entries(e).map(([e,t])=>`${e}:${t}`).join(`,`);return i({...t,searchParams:{limit:`100`,order:`name asc`,include:`count.posts`,filter:n,...t.searchParams}})};e({dataType:r,path:e=>`/tags/${e}/`});var o=e({dataType:r,path:e=>`/tags/slug/${e}/`}),s=t({method:`POST`,path:()=>`/tags/`,searchParams:()=>({include:`count.posts`}),body:e=>({tags:[e]}),invalidateQueries:{dataType:r}}),c=t({method:`PUT`,path:({id:e})=>`/tags/${e}/`,searchParams:()=>({include:`count.posts`}),body:({id:e,...t})=>({tags:[{id:e,...t}]}),invalidateQueries:{dataType:r}}),l=t({method:`DELETE`,path:e=>`/tags/${e}/`,invalidateQueries:{dataType:r}});export{c as a,l as i,s as n,a as r,o as t};
@@ -1 +1 @@
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{m as r}from"./hooks-D6EE7BIt.js";import{n as i}from"./dist-Ndy-PuGN.js";import{t as a}from"./use-form-vRjI0Kwk.js";import{i as o,n as s,o as c,s as l,t as u}from"./select-CkXqNJDJ.js";import{o as d,t as f}from"./use-settings-navigation-BmROPrls.js";import{a as p,i as m,o as h,t as g}from"./field-B3OPenbP.js";import{t as _}from"./textarea-d9qEkMOP.js";import{On as v,Pr as y,ar as b,tr as x}from"./index-DUXM0NlS.js";import{n as S}from"./global-data-provider-RzW6Bnlf.js";var C=``+new URL(`ali-abdaal-DqO7DmHM.png`,import.meta.url).href,w=``+new URL(`isaac-saul-WLit1kCf.png`,import.meta.url).href,T=``+new URL(`joel-warner-DUevCA8i.png`,import.meta.url).href,E=e(t(),1),D=n(),O=()=>{let e=E.useId(),{updateRoute:t}=f(),n=r(),{settings:O,currentUser:k,siteData:A,config:j}=S(),M=j.exploreTestimonialsUrl,N=A.site_uuid,[P]=v(O,[`title`]),F=k.name,I=k.email,L=k.roles[0].name,R=k.profile_image,{formState:z,updateForm:B,saveState:V,handleSave:H,errors:U,clearError:W}=a({initialState:{content:``,prev_platform:``},onSave:async()=>{let e=[`none`,`other`,``].includes(z.prev_platform)?void 0:z.prev_platform,n={ghost_uuid:N,staff_user_email:I,content:z.content,prev_platform:e};if(!M||!(await fetch(M,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify(n)})).ok)throw Error(`Something went wrong, please try again later.`);i.success(`Thank you for your testimonial!`),t(`explore`)},onSaveError:n,onValidate:()=>{let e={};return z.content.trim()||(e.content=`This field is required`),e}});return(0,D.jsx)(d,{cancelLabel:``,footer:!1,padding:!1,testId:`explore-testimonials-modal`,title:``,topRightContent:`close`,width:920,onClose:()=>{t(`explore`)},children:(0,D.jsx)(p,{className:`gap-8`,children:(0,D.jsxs)(`div`,{className:`flex items-stretch`,children:[(0,D.jsxs)(`div`,{className:`hidden w-full flex-col justify-between bg-gradient-to-tl from-grey-100/50 to-grey-100/80 p-8 dark:from-grey-900/40 dark:to-grey-900/60 [@media(min-width:905px)]:visible! [@media(min-width:905px)]:flex!`,children:[(0,D.jsxs)(`div`,{className:`pr-6`,children:[(0,D.jsx)(`div`,{className:`relative rounded-xl bg-white px-3 py-2.5 text-md text-grey-700 italic shadow-lg before:absolute before:-bottom-1.5 before:left-5 before:block before:size-3 before:rotate-45 before:bg-white dark:bg-black dark:text-grey-300 dark:before:bg-black`,children:`Moving to Ghost has proven to be one of the best business decisions we’ve made as an independent media outlet.`}),(0,D.jsxs)(`div`,{className:`mt-[14px] ml-2 flex items-center gap-2`,children:[(0,D.jsx)(`div`,{className:`size-9 rounded-full bg-white bg-cover bg-center opacity-90 grayscale`,style:{backgroundImage:`url(${T})`}}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:`font-medium text-black dark:text-white`,children:`Joel Warner`}),(0,D.jsx)(`div`,{className:`-mt-0.5 text-grey-700`,children:`Lever News`})]})]})]}),(0,D.jsxs)(`div`,{className:`mt-8 ml-6`,children:[(0,D.jsx)(`div`,{className:`relative rounded-xl bg-white px-3 py-2.5 text-md text-grey-700 italic shadow-lg before:absolute before:right-5 before:-bottom-1.5 before:block before:size-3 before:rotate-45 before:bg-white dark:bg-black dark:text-grey-300 dark:before:bg-black`,children:`It has now been one year since I quit my full-time job to go all in on Tangle. Today, we have 50,000+ paying subscribers. That’s roughly $5M in gross yearly revenue ... it’s the best paying job I’ve ever had.`}),(0,D.jsxs)(`div`,{className:`mt-[14px] mr-2 flex items-center justify-end gap-2`,children:[(0,D.jsxs)(`div`,{className:`flex flex-col items-end`,children:[(0,D.jsx)(`div`,{className:`font-medium text-black dark:text-white`,children:`Isaac Saul`}),(0,D.jsx)(`div`,{className:`-mt-0.5 text-grey-700`,children:`Tangle`})]}),(0,D.jsx)(`div`,{className:`size-9 rounded-full bg-white bg-cover bg-center opacity-90 grayscale`,style:{backgroundImage:`url(${w})`}})]})]}),(0,D.jsxs)(`div`,{className:`mt-8 hidden pr-6 [@media(min-width:940px)]:visible! [@media(min-width:940px)]:block!`,children:[(0,D.jsx)(`div`,{className:`relative rounded-xl bg-white px-3 py-2.5 text-md text-grey-700 italic shadow-lg before:absolute before:-bottom-1.5 before:left-5 before:block before:size-3 before:rotate-45 before:bg-white dark:bg-black dark:text-grey-300 dark:before:bg-black`,children:`You should be using Ghost because it’s absolutely amazing and I love it. It’s what I’ve been using for all my sites since 2016.`}),(0,D.jsxs)(`div`,{className:`mt-[14px] ml-2 flex items-center gap-2`,children:[(0,D.jsx)(`div`,{className:`size-9 rounded-full bg-white bg-cover bg-center opacity-90 grayscale`,style:{backgroundImage:`url(${C})`}}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:`font-medium text-black dark:text-white`,children:`Ali Abdaal`}),(0,D.jsx)(`div`,{className:`-mt-0.5 text-grey-700`,children:`YouTuber`})]})]})]})]}),(0,D.jsxs)(`div`,{className:`flex grow flex-col justify-between gap-6 p-8 [@media(min-width:905px)]:min-w-[520px] [@media(min-width:940px)]:min-w-[460px]`,children:[(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:`flex size-[60px] items-center justify-center rounded-full bg-gradient-to-t from-[#CFB0FF] to-[#B27EFF]`,children:(0,D.jsx)(`svg`,{fill:`none`,height:`26`,viewBox:`0 0 32 26`,width:`32`,xmlns:`http://www.w3.org/2000/svg`,children:(0,D.jsx)(`path`,{d:`M19.9967 26L18.1562 21.4542C23.4268 19.1176 25.7693 16.5261 26.2712 11.7255C25.5183 12.3627 24.5562 12.7026 23.3431 12.7026C20.1641 12.7026 17.4869 10.1536 17.4869 6.41503C17.4869 2.80392 20.3732 9.72736e-07 24.2634 6.32644e-07C28.2791 2.81581e-07 31.5 3.10131 31.5 8.96405C31.5 17.5458 27.4425 23.0261 19.9967 26ZM3.0098 26L1.12745 21.4543C6.43987 19.1176 8.78235 16.5261 9.24248 11.7255C8.53137 12.3627 7.56928 12.7026 6.35621 12.7026C3.17712 12.7026 0.499999 10.1536 0.499998 6.41504C0.499998 2.80393 3.38627 2.45778e-06 7.23464 2.12135e-06C11.2503 1.77028e-06 14.5131 3.10131 14.5131 8.96405C14.5131 17.5458 10.4556 23.0261 3.0098 26Z`,fill:`white`})})}),(0,D.jsxs)(`div`,{className:`mt-6`,children:[(0,D.jsx)(`div`,{className:`text-2xl font-semibold tracking-tight`,children:`A quote about Ghost`}),(0,D.jsx)(`div`,{className:`mt-2 text-pretty`,children:`We feature quotes from publishers to showcase their work, including a logo and a link! If you'd like to be included, share a quote we can use to highlight you.`})]}),(0,D.jsx)(`div`,{className:`mt-8`,children:(0,D.jsxs)(g,{"data-invalid":!!U.content||void 0,children:[(0,D.jsx)(h,{className:`sr-only`,htmlFor:`testimonial-content`,children:`Quote`}),(0,D.jsx)(_,{"aria-invalid":!!U.content||void 0,id:`testimonial-content`,placeholder:`What changed for the better since you switched to Ghost?`,rows:7,value:z.content,autoFocus:!0,onChange:e=>B(t=>({...t,content:e.target.value})),onKeyDown:()=>W(`content`)}),U.content&&(0,D.jsx)(m,{children:U.content})]})}),(0,D.jsx)(`div`,{className:`mt-4 ml-0.5`,children:(0,D.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,D.jsx)(x,{className:`size-10`,email:I,name:F,src:R}),(0,D.jsxs)(`div`,{className:`flex flex-col`,children:[(0,D.jsxs)(`span`,{className:`font-medium`,children:[`By `,F||I]}),(0,D.jsxs)(`span`,{className:`text-sm text-grey-700`,children:[L,` — `,P]})]})]})})]}),(0,D.jsx)(`div`,{children:(0,D.jsxs)(`div`,{className:`mt-2 flex items-center gap-4`,children:[(0,D.jsx)(`div`,{className:`grow`,children:(0,D.jsxs)(g,{"data-invalid":!!U.prev_platform||void 0,children:[(0,D.jsx)(h,{className:`sr-only`,children:`Previous platform`}),(0,D.jsxs)(u,{value:z.prev_platform,onValueChange:e=>{B(t=>({...t,prev_platform:e})),W(`prev_platform`)},children:[(0,D.jsx)(c,{"aria-describedby":U.prev_platform?e:void 0,"aria-invalid":!!U.prev_platform||void 0,"aria-label":`Previous platform`,"data-testid":`migrated-from`,children:(0,D.jsx)(l,{placeholder:`Previous platform`})}),(0,D.jsx)(s,{children:[{value:`none`,label:`None -\xA0This is a new site`},{value:`substack`,label:`Substack`},{value:`beehiiv`,label:`BeeHiiv`},{value:`wordpress`,label:`WordPress`},{value:`newspack`,label:`Newspack`},{value:`medium`,label:`Medium`},{value:`squarespace`,label:`Squarespace`},{value:`wix`,label:`Wix`},{value:`patreon`,label:`Patreon`},{value:`memberful`,label:`Memberful`},{value:`other`,label:`Other`}].map(e=>(0,D.jsx)(o,{value:e.value,children:e.label},e.value))})]}),U.prev_platform&&(0,D.jsx)(m,{id:e,children:U.prev_platform})]})}),(0,D.jsxs)(y,{disabled:V===`saving`,type:`button`,onClick:async()=>{await H()},children:[V===`saving`&&(0,D.jsx)(b,{size:`sm`}),`Send testimonial`]})]})})]})]})})})};export{O as default};
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{m as r}from"./hooks-CJepWnbB.js";import{n as i}from"./dist-Ndy-PuGN.js";import{t as a}from"./use-form-vRjI0Kwk.js";import{i as o,n as s,o as c,s as l,t as u}from"./select-xuZAuDyS.js";import{o as d,t as f}from"./use-settings-navigation-BOZcat_V.js";import{a as p,i as m,o as h,t as g}from"./field-BQqLTgHM.js";import{t as _}from"./textarea-d9qEkMOP.js";import{On as v,Pr as y,ar as b,tr as x}from"./index-BOJzlYiz.js";import{n as S}from"./global-data-provider-CixmTX00.js";var C=``+new URL(`ali-abdaal-DqO7DmHM.png`,import.meta.url).href,w=``+new URL(`isaac-saul-WLit1kCf.png`,import.meta.url).href,T=``+new URL(`joel-warner-DUevCA8i.png`,import.meta.url).href,E=e(t(),1),D=n(),O=()=>{let e=E.useId(),{updateRoute:t}=f(),n=r(),{settings:O,currentUser:k,siteData:A,config:j}=S(),M=j.exploreTestimonialsUrl,N=A.site_uuid,[P]=v(O,[`title`]),F=k.name,I=k.email,L=k.roles[0].name,R=k.profile_image,{formState:z,updateForm:B,saveState:V,handleSave:H,errors:U,clearError:W}=a({initialState:{content:``,prev_platform:``},onSave:async()=>{let e=[`none`,`other`,``].includes(z.prev_platform)?void 0:z.prev_platform,n={ghost_uuid:N,staff_user_email:I,content:z.content,prev_platform:e};if(!M||!(await fetch(M,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify(n)})).ok)throw Error(`Something went wrong, please try again later.`);i.success(`Thank you for your testimonial!`),t(`explore`)},onSaveError:n,onValidate:()=>{let e={};return z.content.trim()||(e.content=`This field is required`),e}});return(0,D.jsx)(d,{cancelLabel:``,footer:!1,padding:!1,testId:`explore-testimonials-modal`,title:``,topRightContent:`close`,width:920,onClose:()=>{t(`explore`)},children:(0,D.jsx)(p,{className:`gap-8`,children:(0,D.jsxs)(`div`,{className:`flex items-stretch`,children:[(0,D.jsxs)(`div`,{className:`hidden w-full flex-col justify-between bg-gradient-to-tl from-grey-100/50 to-grey-100/80 p-8 dark:from-grey-900/40 dark:to-grey-900/60 [@media(min-width:905px)]:visible! [@media(min-width:905px)]:flex!`,children:[(0,D.jsxs)(`div`,{className:`pr-6`,children:[(0,D.jsx)(`div`,{className:`relative rounded-xl bg-white px-3 py-2.5 text-md text-grey-700 italic shadow-lg before:absolute before:-bottom-1.5 before:left-5 before:block before:size-3 before:rotate-45 before:bg-white dark:bg-black dark:text-grey-300 dark:before:bg-black`,children:`Moving to Ghost has proven to be one of the best business decisions we’ve made as an independent media outlet.`}),(0,D.jsxs)(`div`,{className:`mt-[14px] ml-2 flex items-center gap-2`,children:[(0,D.jsx)(`div`,{className:`size-9 rounded-full bg-white bg-cover bg-center opacity-90 grayscale`,style:{backgroundImage:`url(${T})`}}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:`font-medium text-black dark:text-white`,children:`Joel Warner`}),(0,D.jsx)(`div`,{className:`-mt-0.5 text-grey-700`,children:`Lever News`})]})]})]}),(0,D.jsxs)(`div`,{className:`mt-8 ml-6`,children:[(0,D.jsx)(`div`,{className:`relative rounded-xl bg-white px-3 py-2.5 text-md text-grey-700 italic shadow-lg before:absolute before:right-5 before:-bottom-1.5 before:block before:size-3 before:rotate-45 before:bg-white dark:bg-black dark:text-grey-300 dark:before:bg-black`,children:`It has now been one year since I quit my full-time job to go all in on Tangle. Today, we have 50,000+ paying subscribers. That’s roughly $5M in gross yearly revenue ... it’s the best paying job I’ve ever had.`}),(0,D.jsxs)(`div`,{className:`mt-[14px] mr-2 flex items-center justify-end gap-2`,children:[(0,D.jsxs)(`div`,{className:`flex flex-col items-end`,children:[(0,D.jsx)(`div`,{className:`font-medium text-black dark:text-white`,children:`Isaac Saul`}),(0,D.jsx)(`div`,{className:`-mt-0.5 text-grey-700`,children:`Tangle`})]}),(0,D.jsx)(`div`,{className:`size-9 rounded-full bg-white bg-cover bg-center opacity-90 grayscale`,style:{backgroundImage:`url(${w})`}})]})]}),(0,D.jsxs)(`div`,{className:`mt-8 hidden pr-6 [@media(min-width:940px)]:visible! [@media(min-width:940px)]:block!`,children:[(0,D.jsx)(`div`,{className:`relative rounded-xl bg-white px-3 py-2.5 text-md text-grey-700 italic shadow-lg before:absolute before:-bottom-1.5 before:left-5 before:block before:size-3 before:rotate-45 before:bg-white dark:bg-black dark:text-grey-300 dark:before:bg-black`,children:`You should be using Ghost because it’s absolutely amazing and I love it. It’s what I’ve been using for all my sites since 2016.`}),(0,D.jsxs)(`div`,{className:`mt-[14px] ml-2 flex items-center gap-2`,children:[(0,D.jsx)(`div`,{className:`size-9 rounded-full bg-white bg-cover bg-center opacity-90 grayscale`,style:{backgroundImage:`url(${C})`}}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:`font-medium text-black dark:text-white`,children:`Ali Abdaal`}),(0,D.jsx)(`div`,{className:`-mt-0.5 text-grey-700`,children:`YouTuber`})]})]})]})]}),(0,D.jsxs)(`div`,{className:`flex grow flex-col justify-between gap-6 p-8 [@media(min-width:905px)]:min-w-[520px] [@media(min-width:940px)]:min-w-[460px]`,children:[(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:`flex size-[60px] items-center justify-center rounded-full bg-gradient-to-t from-[#CFB0FF] to-[#B27EFF]`,children:(0,D.jsx)(`svg`,{fill:`none`,height:`26`,viewBox:`0 0 32 26`,width:`32`,xmlns:`http://www.w3.org/2000/svg`,children:(0,D.jsx)(`path`,{d:`M19.9967 26L18.1562 21.4542C23.4268 19.1176 25.7693 16.5261 26.2712 11.7255C25.5183 12.3627 24.5562 12.7026 23.3431 12.7026C20.1641 12.7026 17.4869 10.1536 17.4869 6.41503C17.4869 2.80392 20.3732 9.72736e-07 24.2634 6.32644e-07C28.2791 2.81581e-07 31.5 3.10131 31.5 8.96405C31.5 17.5458 27.4425 23.0261 19.9967 26ZM3.0098 26L1.12745 21.4543C6.43987 19.1176 8.78235 16.5261 9.24248 11.7255C8.53137 12.3627 7.56928 12.7026 6.35621 12.7026C3.17712 12.7026 0.499999 10.1536 0.499998 6.41504C0.499998 2.80393 3.38627 2.45778e-06 7.23464 2.12135e-06C11.2503 1.77028e-06 14.5131 3.10131 14.5131 8.96405C14.5131 17.5458 10.4556 23.0261 3.0098 26Z`,fill:`white`})})}),(0,D.jsxs)(`div`,{className:`mt-6`,children:[(0,D.jsx)(`div`,{className:`text-2xl font-semibold tracking-tight`,children:`A quote about Ghost`}),(0,D.jsx)(`div`,{className:`mt-2 text-pretty`,children:`We feature quotes from publishers to showcase their work, including a logo and a link! If you'd like to be included, share a quote we can use to highlight you.`})]}),(0,D.jsx)(`div`,{className:`mt-8`,children:(0,D.jsxs)(g,{"data-invalid":!!U.content||void 0,children:[(0,D.jsx)(h,{className:`sr-only`,htmlFor:`testimonial-content`,children:`Quote`}),(0,D.jsx)(_,{"aria-invalid":!!U.content||void 0,id:`testimonial-content`,placeholder:`What changed for the better since you switched to Ghost?`,rows:7,value:z.content,autoFocus:!0,onChange:e=>B(t=>({...t,content:e.target.value})),onKeyDown:()=>W(`content`)}),U.content&&(0,D.jsx)(m,{children:U.content})]})}),(0,D.jsx)(`div`,{className:`mt-4 ml-0.5`,children:(0,D.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,D.jsx)(x,{className:`size-10`,email:I,name:F,src:R}),(0,D.jsxs)(`div`,{className:`flex flex-col`,children:[(0,D.jsxs)(`span`,{className:`font-medium`,children:[`By `,F||I]}),(0,D.jsxs)(`span`,{className:`text-sm text-grey-700`,children:[L,` — `,P]})]})]})})]}),(0,D.jsx)(`div`,{children:(0,D.jsxs)(`div`,{className:`mt-2 flex items-center gap-4`,children:[(0,D.jsx)(`div`,{className:`grow`,children:(0,D.jsxs)(g,{"data-invalid":!!U.prev_platform||void 0,children:[(0,D.jsx)(h,{className:`sr-only`,children:`Previous platform`}),(0,D.jsxs)(u,{value:z.prev_platform,onValueChange:e=>{B(t=>({...t,prev_platform:e})),W(`prev_platform`)},children:[(0,D.jsx)(c,{"aria-describedby":U.prev_platform?e:void 0,"aria-invalid":!!U.prev_platform||void 0,"aria-label":`Previous platform`,"data-testid":`migrated-from`,children:(0,D.jsx)(l,{placeholder:`Previous platform`})}),(0,D.jsx)(s,{children:[{value:`none`,label:`None -\xA0This is a new site`},{value:`substack`,label:`Substack`},{value:`beehiiv`,label:`BeeHiiv`},{value:`wordpress`,label:`WordPress`},{value:`newspack`,label:`Newspack`},{value:`medium`,label:`Medium`},{value:`squarespace`,label:`Squarespace`},{value:`wix`,label:`Wix`},{value:`patreon`,label:`Patreon`},{value:`memberful`,label:`Memberful`},{value:`other`,label:`Other`}].map(e=>(0,D.jsx)(o,{value:e.value,children:e.label},e.value))})]}),U.prev_platform&&(0,D.jsx)(m,{id:e,children:U.prev_platform})]})}),(0,D.jsxs)(y,{disabled:V===`saving`,type:`button`,onClick:async()=>{await H()},children:[V===`saving`&&(0,D.jsx)(b,{size:`sm`}),`Send testimonial`]})]})})]})]})})})};export{O as default};
@@ -0,0 +1 @@
1
+ import{o as e,r as t}from"./rolldown-runtime-DAXXjFlN.js";import{t as n}from"./react-Bb3IsNbi.js";import{t as r}from"./jsx-runtime-DX3WBWVO.js";import{m as i}from"./hooks-CJepWnbB.js";import{n as a}from"./dist-Ndy-PuGN.js";import{t as o}from"./use-form-vRjI0Kwk.js";import{m as s}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{f as c,x as l}from"./dist-Cb5RSHSg.js";import{t as u}from"./inline-Cw-gigDW.js";import{t as d}from"./text-DU9Hv33_.js";import{t as f}from"./switch-CE2NuMn-.js";import{o as p,t as m}from"./use-settings-navigation-BOZcat_V.js";import{i as h,n as g,r as ee,t as te}from"./combobox-BbPJzjCp.js";import{a as ne,c as _,i as v,o as y,r as b,s as x,t as S}from"./field-BQqLTgHM.js";import{a as C,i as w,n as T,t as E}from"./input-group-DpogNUIt.js";import{t as re}from"./multi-select-combobox-nhCff0_K.js";import{i as ie,n as ae,t as oe}from"./use-url-input-BEZJpVgN.js";import{Nn as se,On as ce,Pr as D,Yi as le,cr as O,ka as ue,os as k}from"./index-BOJzlYiz.js";import{a as de,i as fe,o as pe}from"./tiers-8iTFjJWg.js";import{n as me}from"./confirmation-provider-BEdrnHns.js";import{t as he}from"./use-setting-group-Bx8M6FL2.js";import{a as A,i as j,n as ge,r as M,t as _e}from"./currency-Dy4Tc2R2.js";var N=e(n(),1),P=r(),F=({size:e=`md`,trialDays:t})=>t?(0,P.jsxs)(`span`,{className:l(e===`sm`?`px-1.5 py-0.5 text-sm`:`px-2.5 py-1.5`,`relative -mt-1 -mr-1 rounded-full leading-none font-semibold tracking-wide whitespace-nowrap text-grey-900`),children:[(0,P.jsx)(`span`,{className:`absolute inset-0 block rounded-full bg-ghostaccent opacity-20 dark:bg-pink`}),(0,P.jsxs)(`span`,{className:`dark:text-pink`,children:[c(t),` days free`]})]}):null,I=({benefits:e})=>{if(!e?.length)return(0,P.jsx)(`div`,{className:`mt-4 w-full text-md leading-snug text-grey-900 opacity-30`,children:(0,P.jsxs)(`div`,{className:`mb-2.5 flex items-start`,children:[(0,P.jsx)(k,{className:`mt-[3px] mr-[10px] size-3.5! min-w-[14px] overflow-visible stroke-[3px]!`}),(0,P.jsx)(`div`,{children:`Expert analysis`})]})});let t=new Map;return(0,P.jsx)(P.Fragment,{children:e.map(e=>{let n=(t.get(e)||0)+1;return t.set(e,n),(0,P.jsx)(`div`,{className:`mt-4 w-full text-md leading-snug text-grey-900`,children:(0,P.jsxs)(`div`,{className:`mb-2.5 flex items-start`,children:[(0,P.jsx)(k,{className:`mt-[3px] mr-[10px] size-3.5! min-w-[14px] overflow-visible stroke-[3px]!`}),(0,P.jsx)(`div`,{children:e})]})},`${e}:${n}`)})})},L=({discount:e})=>e?(0,P.jsxs)(`span`,{className:`mt-1 leading-none font-semibold text-ghostaccent`,children:[c(e),`% discount`]}):null,ve=({tier:e,isFreeTier:t})=>{let[n,r]=(0,N.useState)(!1),i=e?.name||``,a=e?.description||``,o=parseFloat(e?.trial_days||`0`),s=e?.currency||`USD`,l=s?j(s):`$`,u=e?.benefits||[],f=t?0:500,p=t?0:5e3,m=M(e?.monthly_price??f),h=M(e?.yearly_price??p),g=e?.monthly_price&&e?.yearly_price?Math.ceil((m*12-h)/(m*12)*100):0;return(0,P.jsxs)(`div`,{className:`-mt-2`,"data-testid":`tier-preview`,children:[(0,P.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,P.jsx)(d,{as:`h6`,className:`pb-2 text-base leading-snug`,weight:`medium`,children:t?`Free membership preview`:`Tier preview`}),!t&&(0,P.jsxs)(`div`,{className:`flex gap-1`,children:[(0,P.jsx)(D,{className:n?`h-auto p-0 text-muted-foreground`:`h-auto p-0 text-foreground`,type:`button`,variant:`link`,onClick:()=>r(!1),children:`Monthly`}),(0,P.jsx)(D,{className:n?`ml-2 h-auto p-0 text-foreground`:`ml-2 h-auto p-0 text-muted-foreground`,type:`button`,variant:`link`,onClick:()=>r(!0),children:`Yearly`})]})]}),(0,P.jsx)(`div`,{className:`rounded-sm border border-grey-200 bg-white dark:border-transparent`,children:(0,P.jsxs)(`div`,{className:`flex-column relative flex min-h-[200px] w-full max-w-[420px] scale-90 items-start justify-stretch rounded bg-white p-4`,children:[(0,P.jsxs)(`div`,{className:`min-h-[56px] w-full`,children:[(0,P.jsx)(`h4`,{className:`-mt-1 mb-0 w-full text-lg leading-tight font-semibold break-words text-ghostaccent ${!i&&`opacity-30`}`,children:i||(t?`Free`:`Bronze`)}),(0,P.jsxs)(`div`,{className:`mt-4 flex w-full flex-row flex-wrap items-end justify-between gap-x-1 gap-y-[10px]`,children:[(0,P.jsxs)(`div`,{className:`flex flex-wrap text-black ${(n&&e?.yearly_price===void 0||!n&&e?.monthly_price===void 0)&&!t?`opacity-30`:``}`,children:[(0,P.jsx)(`span`,{className:`self-start text-[2.7rem] leading-[1.115] font-bold uppercase`,children:l}),(0,P.jsx)(`span`,{className:`text-[3.4rem] leading-none font-bold tracking-tight break-all`,children:c(n?h:m,{maximumFractionDigits:20})}),!t&&(0,P.jsxs)(`span`,{className:`ml-1 self-end text-[1.5rem] leading-snug text-grey-800`,children:[`/`,n?`year`:`month`]})]}),(0,P.jsx)(F,{trialDays:o})]}),n&&g>0&&(0,P.jsx)(L,{discount:g})]}),(0,P.jsx)(`div`,{className:`flex-column flex w-full flex-1`,children:(0,P.jsxs)(`div`,{className:`flex-1`,children:[(0,P.jsx)(`div`,{className:`mt-4 w-full text-[1.55rem] leading-snug font-semibold text-grey-900 ${!a&&`opacity-30`}`,children:a||(t?`Free preview`:`Full access to premium content`)}),(0,P.jsx)(I,{benefits:u})]})})]})})]})},R=e=>e.replace(/[^\d.]+/g,``),z=e=>Math.round(parseFloat(e.match(/[\d]+\.?[\d]{0,2}/)?.[0]||`0`)*100),B=(e,t)=>{let[n,r]=(0,N.useState)(e===``?``:((e||0)/100).toString()),i=(0,N.useRef)(e);return(0,N.useEffect)(()=>{Object.is(e,i.current)||r(e===``?``:((e||0)/100).toString()),i.current=e},[e]),{value:n,onBlur:()=>r((z(n)/100).toString()),onChange:e=>{let n=z(e);r(R(e)),i.current=n,t?.(n)}}},V=t({default:()=>H}),ye=({tier:e})=>{let t=e?.type===`free`,[n,r]=N.useState(!1),{updateRoute:s}=m(),{mutateAsync:c}=pe(),{mutateAsync:l}=fe(),{mutateAsync:de}=se(),[j,M]=N.useState(!!e?.trial_days),F=i(),{confirm:I}=me(),{localSettings:L,siteData:R}=he(),[z]=ce(L,[`portal_plans`]),V=JSON.parse(z?.toString()||`[]`),ye=ge().flatMap(e=>e.options.map(t=>({...t,metadata:{groupKey:e.key,groupLabel:e.label}}))),H={name:()=>U.name?void 0:`Enter a name for the tier`,monthly_price:()=>U.type===`free`?void 0:A(U.monthly_price||0,U.currency,{allowZero:!1}),yearly_price:()=>U.type===`free`?void 0:A(U.yearly_price||0,U.currency,{allowZero:!1})},{formState:U,saveState:be,updateForm:W,handleSave:xe,errors:G,clearError:K,okProps:q}=o({initialState:{...e||{},trial_days:e?.trial_days?.toString()||``,currency:e?.currency||_e[0].isoCode,visibility:e?.visibility||`none`,welcome_page_url:e?.welcome_page_url||null},savingDelay:500,savedDelay:500,onValidate:()=>{let e={};return Object.entries(H).forEach(([t,n])=>{e[t]=n?.()}),e},onSave:async()=>{let{trial_days:n,currency:r,...i}=U,a=i;if(a.benefits=a.benefits?.filter(e=>e),t||(a.currency=r,a.trial_days=parseInt(n)),e?.id?await c({...e,...a}):await l(a),t){let e=U.visibility===`public`,t=!1;V.includes(`free`)&&!e&&(V.splice(V.indexOf(`free`),1),t=!0),!V.includes(`free`)&&e&&(V.push(`free`),t=!0),t&&await de([{key:`portal_plans`,value:JSON.stringify(V)}])}},onSaveError:F}),J=B(U.monthly_price||``,e=>W(t=>({...t,monthly_price:e}))),Y=B(U.yearly_price||``,e=>W(t=>({...t,yearly_price:e}))),X=oe({baseUrl:R?.url,nullable:!0,transformPathWithoutSlash:!0,value:U.welcome_page_url||null,onChange:e=>W(t=>({...t,welcome_page_url:e||null}))}),Z=ae({items:U.benefits||[],setItems:e=>W(t=>({...t,benefits:e})),blank:``,canAddNewItem:e=>!!e}),Se=(0,N.useRef)(null),Q=(0,N.useRef)(null),Ce=()=>{if(!Z.newItem)return;let e=Q.current?.getBoundingClientRect().top;Z.addItem(),window.requestAnimationFrame(()=>{let t=Q.current,n=Se.current;!t||!n||e===void 0||(t.focus({preventScroll:!0}),n.scrollBy({behavior:window.matchMedia(`(prefers-reduced-motion: reduce)`).matches?`auto`:`smooth`,top:t.getBoundingClientRect().top-e}))})},we=t=>{t?(M(!0),W(t=>({...t,trial_days:e?.trial_days?e?.trial_days.toString():`7`}))):(M(!1),W(e=>({...e,trial_days:`0`})))},Te=(0,N.useRef)(!1);(0,N.useEffect)(()=>{Te.current&&(H.monthly_price?.(),H.yearly_price?.()),Te.current=!0},[U.currency]);let Ee=()=>{if(e){let t=e.active?`Archive tier`:`Reactivate tier`,n=e.active?(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(`div`,{className:`mb-6`,children:[`Members will no longer be able to subscribe to `,(0,P.jsx)(`strong`,{children:e.name}),` and it will be removed from the list of available tiers in portal.`]}),(0,P.jsx)(`div`,{children:`Existing members on this tier will remain unchanged. Offers using this tier will be disabled.`})]}):(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(`div`,{className:`mb-6`,children:[`Reactivating `,(0,P.jsx)(`strong`,{children:e.name}),` will re-enable it as an option in portal and allow new members to subscribe to this tier.`]}),(0,P.jsx)(`div`,{children:`Existing members will remain unchanged.`})]}),r=e.active?`Archive`:`Reactivate`;I({title:t,prompt:n,okLabel:r,cancelLabel:`Cancel`,okVariant:e.active?`destructive`:`default`,onOk:t=>{c({...e,active:!e.active}),t?.remove(),a.success(`Tier ${e.active?`archived`:`reactivated`}`)}})}},$;return e&&(e.active&&e.type!==`free`?$=(0,P.jsx)(D,{className:`text-destructive hover:text-destructive`,type:`button`,variant:`ghost`,onClick:Ee,children:`Archive tier`}):e.active||($=(0,P.jsx)(D,{className:`text-green hover:text-green`,type:`button`,variant:`ghost`,onClick:Ee,children:`Reactivate tier`}))),(0,P.jsx)(p,{ref:Se,buttonsDisabled:q.disabled,cancelLabel:`Close`,dirty:be===`unsaved`,leftButton:$,okLabel:q.label||`Save`,okVariant:q.variant,size:`lg`,testId:`tier-detail-modal`,title:e?e.active?`Edit tier`:`Edit archived tier`:`New tier`,stickyFooter:!0,onClose:()=>{s(`tiers`)},onOk:async()=>{await xe({fakeWhenUnchanged:!0})},children:(0,P.jsxs)(`div`,{className:`mt-8 -mb-8 flex items-start gap-8`,children:[(0,P.jsxs)(`div`,{className:`flex grow flex-col gap-8`,children:[(0,P.jsxs)(_,{children:[(0,P.jsx)(x,{children:`Basic`}),(0,P.jsxs)(ne,{className:`gap-8 rounded-sm border border-border-default p-4 md:p-7`,children:[(0,P.jsxs)(S,{"data-invalid":!!G.name||void 0,children:[(0,P.jsx)(y,{htmlFor:`tier-name`,children:`Name`}),(0,P.jsx)(O,{"aria-invalid":!!G.name||void 0,autoComplete:`off`,id:`tier-name`,maxLength:191,placeholder:t?`Free`:`Bronze`,value:U.name||``,autoFocus:!0,onChange:e=>W(t=>({...t,name:e.target.value})),onKeyDown:()=>K(`name`)}),G.name&&(0,P.jsx)(v,{children:G.name})]}),(0,P.jsxs)(S,{children:[(0,P.jsx)(y,{htmlFor:`tier-description`,children:`Description`}),(0,P.jsx)(O,{autoComplete:`off`,autoFocus:t,id:`tier-description`,maxLength:191,placeholder:t?`Free preview`:`Full access to premium content`,value:U.description||``,onChange:e=>W(t=>({...t,description:e.target.value}))})]}),!t&&(0,P.jsx)(P.Fragment,{children:(0,P.jsxs)(`div`,{className:`flex flex-col gap-10 md:flex-row`,children:[(0,P.jsxs)(`div`,{className:`basis-1/2`,children:[(0,P.jsxs)(`div`,{className:`mb-1 flex h-6 items-center justify-between`,children:[(0,P.jsx)(d,{as:`h6`,className:`text-base`,weight:`semibold`,children:`Prices`}),(0,P.jsx)(`div`,{children:(0,P.jsxs)(S,{children:[(0,P.jsx)(y,{className:`sr-only`,children:`Currency`}),(0,P.jsxs)(te,{open:n,onOpenChange:r,children:[(0,P.jsx)(ee,{"aria-label":`Currency`,className:`w-auto justify-start border-0 bg-transparent px-0 shadow-none hover:bg-transparent focus-visible:ring-0`,children:(0,P.jsx)(h,{className:`flex-none`,children:U.currency})}),(0,P.jsx)(g,{align:`end`,className:`w-64`,children:(0,P.jsx)(re,{groupBy:e=>({key:e.metadata?.groupKey,label:e.metadata?.groupLabel}),i18n:{searchPlaceholder:`Search currencies...`},isMultiSelect:!1,options:ye,values:U.currency?[U.currency]:[],autoCloseOnSelect:!0,onChange:e=>{e[0]&&W(t=>({...t,currency:e[0]}))},onClose:()=>r(!1)})})]})]})})]}),(0,P.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,P.jsxs)(S,{"data-invalid":!!G.monthly_price||void 0,children:[(0,P.jsx)(y,{className:`sr-only`,htmlFor:`tier-monthly-price`,children:`Monthly price`}),(0,P.jsxs)(E,{"data-invalid":!!G.monthly_price||void 0,children:[(0,P.jsx)(w,{"aria-invalid":!!G.monthly_price||void 0,id:`tier-monthly-price`,inputMode:`decimal`,placeholder:`5`,value:J.value,onBlur:e=>{J.onBlur(),e.target.value===``&&W(e=>({...e,monthly_price:0}))},onChange:e=>J.onChange(e.target.value),onKeyDown:()=>K(`monthly_price`)}),(0,P.jsx)(T,{align:`inline-end`,children:(0,P.jsxs)(C,{children:[U.currency,`/month`]})})]}),G.monthly_price&&(0,P.jsx)(v,{children:G.monthly_price})]}),(0,P.jsxs)(S,{"data-invalid":!!G.yearly_price||void 0,children:[(0,P.jsx)(y,{className:`sr-only`,htmlFor:`tier-yearly-price`,children:`Yearly price`}),(0,P.jsxs)(E,{"data-invalid":!!G.yearly_price||void 0,children:[(0,P.jsx)(w,{"aria-invalid":!!G.yearly_price||void 0,id:`tier-yearly-price`,inputMode:`decimal`,placeholder:`50`,value:Y.value,onBlur:e=>{Y.onBlur(),e.target.value===``&&W(e=>({...e,yearly_price:0}))},onChange:e=>Y.onChange(e.target.value),onKeyDown:()=>K(`yearly_price`)}),(0,P.jsx)(T,{align:`inline-end`,children:(0,P.jsxs)(C,{children:[U.currency,`/year`]})})]}),G.yearly_price&&(0,P.jsx)(v,{children:G.yearly_price})]})]})]}),(0,P.jsxs)(`div`,{className:`basis-1/2`,children:[(0,P.jsx)(`div`,{className:`mb-1 flex h-6 flex-col justify-center`,children:(0,P.jsxs)(S,{orientation:`horizontal`,children:[(0,P.jsx)(y,{htmlFor:`tier-free-trial`,children:`Add a free trial`}),(0,P.jsx)(f,{checked:j,id:`tier-free-trial`,onCheckedChange:we})]})}),(0,P.jsxs)(S,{"data-disabled":!j||void 0,children:[(0,P.jsx)(y,{className:`sr-only`,htmlFor:`tier-trial-days`,children:`Trial days`}),(0,P.jsxs)(E,{children:[(0,P.jsx)(w,{disabled:!j,id:`tier-trial-days`,placeholder:`0`,value:U.trial_days,onChange:e=>W(t=>({...t,trial_days:e.target.value.replace(/[^\d]/,``)}))}),(0,P.jsx)(T,{align:`inline-end`,children:(0,P.jsx)(C,{children:`days`})})]}),(0,P.jsx)(b,{children:(0,P.jsxs)(`span`,{className:`mt-1`,children:[`Members will be subscribed at full price once the trial ends. `,(0,P.jsx)(`a`,{className:`text-green`,href:`https://ghost.org/help/free-trials/`,rel:`noreferrer`,target:`_blank`,children:`Learn more`})]})})]})]})]})}),(0,P.jsxs)(S,{children:[(0,P.jsx)(y,{htmlFor:`tier-welcome-page`,children:`Welcome page`}),(0,P.jsx)(O,{id:`tier-welcome-page`,maxLength:2e3,placeholder:R?.url,value:X.displayValue,onBlur:X.commitValue,onChange:e=>X.setDisplayValue(e.target.value),onFocus:X.handleFocus,onKeyDown:X.handleKeyDown}),(0,P.jsxs)(b,{children:[`Redirect to this URL after signup`,t?``:` for premium membership`]})]})]})]}),(0,P.jsxs)(_,{children:[(0,P.jsx)(x,{children:`Benefits`}),(0,P.jsxs)(ne,{className:`mb-10 gap-0 rounded-sm border border-border-default p-4 md:p-7`,children:[(0,P.jsx)(ie,{getDragHandleLabel:({item:e})=>`Reorder benefit${e?`: ${e}`:``}`,items:Z.items,itemSeparator:!1,renderItem:({id:e,item:t})=>(0,P.jsxs)(u,{align:`center`,className:`relative w-full`,gap:`lg`,children:[(0,P.jsx)(u,{align:`center`,className:`absolute top-1/2 left-[-32px] size-6 -translate-y-1/2 bg-background group-hover:hidden`,justify:`center`,children:(0,P.jsx)(k,{className:`size-4`})}),(0,P.jsx)(O,{"aria-label":`Benefit`,className:`grow`,maxLength:191,value:t,onChange:t=>Z.updateItem(e,t.target.value)}),(0,P.jsx)(D,{"aria-label":`Delete benefit`,className:`absolute top-1/2 right-1 z-10 size-5! -translate-y-1/2 p-0! opacity-0 group-hover:opacity-100`,size:`icon`,type:`button`,variant:`secondary`,onClick:()=>Z.removeItem(e),children:(0,P.jsx)(le,{})})]}),onMove:Z.moveItem}),(0,P.jsxs)(u,{align:`center`,className:`relative mt-1`,gap:`md`,children:[(0,P.jsx)(k,{className:`size-4`}),(0,P.jsxs)(S,{className:`w-100`,children:[(0,P.jsx)(y,{className:`sr-only`,htmlFor:`new-tier-benefit`,children:`New benefit`}),(0,P.jsx)(O,{ref:Q,className:`grow`,id:`new-tier-benefit`,maxLength:191,placeholder:`Expert analysis`,value:Z.newItem,onChange:e=>Z.setNewItem(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),Ce())}})]}),(0,P.jsx)(D,{"aria-label":`Add benefit`,className:`absolute top-1/2 right-1 z-10 size-[22px]! -translate-y-1/2 p-0!`,size:`icon`,type:`button`,onClick:Ce,children:(0,P.jsx)(ue,{})})]})]})]})]}),(0,P.jsx)(`div`,{className:`sticky top-[96px] hidden shrink-0 basis-[380px] min-[920px]:!visible min-[920px]:!block`,children:(0,P.jsx)(ve,{isFreeTier:t,tier:U})})]})})},H=()=>{let{tierId:e}=s(),{data:{tiers:t,isEnd:n}={},fetchNextPage:r}=de(),i;return(0,N.useEffect)(()=>{e&&!i&&!n&&r()},[r,n,e,i]),e&&(i=t?.find(({id:t})=>t===e),!i)?null:(0,P.jsx)(ye,{tier:i})};export{B as n,F as r,V as t};
@@ -1 +1 @@
1
- import{i as e,n as t,t as n}from"./hooks-D6EE7BIt.js";import{r}from"./update-queries-C4CnvJaW.js";var i=`TiersResponseType`,a=n({dataType:i,path:`/tiers/`,defaultNextPageParams:(e,t)=>({...t,page:(e.meta?.pagination.next||1).toString()}),returnData:e=>{let{pages:t}=e,n=t.flatMap(e=>e.tiers),r=t[t.length-1].meta;return{tiers:n,meta:r,isEnd:r?r.pagination.pages===r.pagination.page:!0}}});e({dataType:i,path:e=>`/tiers/${e}/`});var o=t({method:`POST`,path:()=>`/tiers/`,body:e=>({tiers:[e]}),invalidateQueries:{dataType:i}}),s=t({method:`PUT`,path:e=>`/tiers/${e.id}/`,body:e=>({tiers:[e]}),updateQueries:{dataType:i,emberUpdateType:`createOrUpdate`,update:r(`tiers`)}});function c(e){return e.filter(e=>e.type===`paid`&&e.active)}function l(e){return e.filter(e=>e.active)}function u(e){return e.filter(e=>!e.active)}export{a,o as i,u as n,s as o,c as r,l as t};
1
+ import{i as e,n as t,t as n}from"./hooks-CJepWnbB.js";import{r}from"./update-queries-C4CnvJaW.js";var i=`TiersResponseType`,a=n({dataType:i,path:`/tiers/`,defaultNextPageParams:(e,t)=>({...t,page:(e.meta?.pagination.next||1).toString()}),returnData:e=>{let{pages:t}=e,n=t.flatMap(e=>e.tiers),r=t[t.length-1].meta;return{tiers:n,meta:r,isEnd:r?r.pagination.pages===r.pagination.page:!0}}});e({dataType:i,path:e=>`/tiers/${e}/`});var o=t({method:`POST`,path:()=>`/tiers/`,body:e=>({tiers:[e]}),invalidateQueries:{dataType:i}}),s=t({method:`PUT`,path:e=>`/tiers/${e.id}/`,body:e=>({tiers:[e]}),updateQueries:{dataType:i,emberUpdateType:`createOrUpdate`,update:r(`tiers`)}});function c(e){return e.filter(e=>e.type===`paid`&&e.active)}function l(e){return e.filter(e=>e.active)}function u(e){return e.filter(e=>!e.active)}export{a,o as i,u as n,s as o,c as r,l as t};
@@ -1 +1 @@
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{d as r,u as i}from"./Combination-BDvCdg1t.js";import{c as a,o}from"./dist-Cb5RSHSg.js";import{r as s}from"./dist-CQJY6SVY.js";import{t as c}from"./dist-CqO2lWS02.js";import{t as l}from"./dist-B2PvRwLn.js";import{Ci as u,Ti as d,wi as f}from"./index-DUXM0NlS.js";var p=e(t(),1),m=n(),h=`Toggle`,g=p.forwardRef((e,t)=>{let{pressed:n,defaultPressed:a,onPressedChange:o,...s}=e,[l,u]=i({prop:n,onChange:o,defaultProp:a??!1,caller:h});return(0,m.jsx)(c.button,{type:`button`,"aria-pressed":l,"data-state":l?`on`:`off`,"data-disabled":e.disabled?``:void 0,...s,ref:t,onClick:r(e.onClick,()=>{e.disabled||u(!l)})})});g.displayName=h;var _=g,v=o(`inline-flex items-center justify-center gap-2 rounded-md text-control font-medium text-text-secondary transition-colors hover:bg-surface-elevated hover:text-foreground focus-visible:ring-1 focus-visible:ring-focus-ring focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-background data-[state=on]:text-foreground data-[state=on]:shadow-sm dark:data-[state=on]:bg-tab-active [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 [&_svg]:stroke-[1.5px]`,{variants:{variant:{default:`bg-transparent`},size:{default:`h-[calc(var(--control-height)-2px)] min-w-[26px] px-2`,button:`h-[calc(var(--control-height)-2px)] min-w-[32px] px-3`}},defaultVariants:{variant:`default`,size:`default`}}),y=p.forwardRef(({className:e,variant:t,size:n,...r},i)=>(0,m.jsx)(_,{ref:i,className:a(v({variant:t,size:n,className:e})),...r}));y.displayName=_.displayName;var b=`ToggleGroup`,[x,S]=s(b,[d]),C=d(),w=p.forwardRef((e,t)=>{let{type:n,...r}=e;if(n===`single`)return(0,m.jsx)(D,{role:`radiogroup`,...r,ref:t});if(n===`multiple`)return(0,m.jsx)(O,{role:`toolbar`,...r,ref:t});throw Error(`Missing prop \`type\` expected on \`${b}\``)});w.displayName=b;var[T,E]=x(b),D=p.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:a=()=>{},...o}=e,[s,c]=i({prop:n,defaultProp:r??``,onChange:a,caller:b});return(0,m.jsx)(T,{scope:e.__scopeToggleGroup,type:`single`,value:p.useMemo(()=>s?[s]:[],[s]),onItemActivate:c,onItemDeactivate:p.useCallback(()=>c(``),[c]),children:(0,m.jsx)(j,{...o,ref:t})})}),O=p.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:a=()=>{},...o}=e,[s,c]=i({prop:n,defaultProp:r??[],onChange:a,caller:b}),l=p.useCallback(e=>c((t=[])=>[...t,e]),[c]),u=p.useCallback(e=>c((t=[])=>t.filter(t=>t!==e)),[c]);return(0,m.jsx)(T,{scope:e.__scopeToggleGroup,type:`multiple`,value:s,onItemActivate:l,onItemDeactivate:u,children:(0,m.jsx)(j,{...o,ref:t})})});w.displayName=b;var[k,A]=x(b),j=p.forwardRef((e,t)=>{let{__scopeToggleGroup:n,disabled:r=!1,rovingFocus:i=!0,orientation:a,dir:o,loop:s=!0,...u}=e,d=C(n),p=l(o),h={dir:p,...u};return(0,m.jsx)(k,{scope:n,rovingFocus:i,disabled:r,children:i?(0,m.jsx)(f,{asChild:!0,...d,orientation:a,dir:p,loop:s,children:(0,m.jsx)(c.div,{...h,ref:t})}):(0,m.jsx)(c.div,{...h,ref:t})})}),M=`ToggleGroupItem`,N=p.forwardRef((e,t)=>{let n=E(M,e.__scopeToggleGroup),r=A(M,e.__scopeToggleGroup),i=C(e.__scopeToggleGroup),a=n.value.includes(e.value),o=r.disabled||e.disabled,s={...e,pressed:a,disabled:o},c=p.useRef(null);return r.rovingFocus?(0,m.jsx)(u,{asChild:!0,...i,focusable:!o,active:a,ref:c,children:(0,m.jsx)(P,{...s,ref:t})}):(0,m.jsx)(P,{...s,ref:t})});N.displayName=M;var P=p.forwardRef((e,t)=>{let{__scopeToggleGroup:n,value:r,...i}=e,a=E(M,n),o={role:`radio`,"aria-checked":e.pressed,"aria-pressed":void 0};return(0,m.jsx)(g,{...a.type===`single`?o:void 0,...i,ref:t,onPressedChange:e=>{e?a.onItemActivate(r):a.onItemDeactivate(r)}})}),F=p.createContext({size:`default`,variant:`default`}),I=p.forwardRef(({className:e,variant:t,size:n,children:r,...i},o)=>(0,m.jsx)(w,{ref:o,className:a(`inline-flex items-center justify-center gap-0.5 rounded-(--input-group-radius) bg-muted p-0.5 dark:border dark:border-border dark:bg-background`,e),...i,children:(0,m.jsx)(F.Provider,{value:{variant:t,size:n},children:r})}));I.displayName=w.displayName;var L=p.forwardRef(({className:e,children:t,variant:n,size:r,...i},o)=>{let s=p.useContext(F);return(0,m.jsx)(N,{ref:o,className:a(v({variant:s.variant||n,size:s.size||r}),e),...i,children:t})});L.displayName=N.displayName;export{L as n,I as t};
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{d as r,u as i}from"./Combination-BDvCdg1t.js";import{c as a,o}from"./dist-Cb5RSHSg.js";import{r as s}from"./dist-CQJY6SVY.js";import{t as c}from"./dist-CqO2lWS02.js";import{t as l}from"./dist-B2PvRwLn.js";import{Ci as u,Ti as d,wi as f}from"./index-BOJzlYiz.js";var p=e(t(),1),m=n(),h=`Toggle`,g=p.forwardRef((e,t)=>{let{pressed:n,defaultPressed:a,onPressedChange:o,...s}=e,[l,u]=i({prop:n,onChange:o,defaultProp:a??!1,caller:h});return(0,m.jsx)(c.button,{type:`button`,"aria-pressed":l,"data-state":l?`on`:`off`,"data-disabled":e.disabled?``:void 0,...s,ref:t,onClick:r(e.onClick,()=>{e.disabled||u(!l)})})});g.displayName=h;var _=g,v=o(`inline-flex items-center justify-center gap-2 rounded-md text-control font-medium text-text-secondary transition-colors hover:bg-surface-elevated hover:text-foreground focus-visible:ring-1 focus-visible:ring-focus-ring focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-background data-[state=on]:text-foreground data-[state=on]:shadow-sm dark:data-[state=on]:bg-tab-active [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 [&_svg]:stroke-[1.5px]`,{variants:{variant:{default:`bg-transparent`},size:{default:`h-[calc(var(--control-height)-2px)] min-w-[26px] px-2`,button:`h-[calc(var(--control-height)-2px)] min-w-[32px] px-3`}},defaultVariants:{variant:`default`,size:`default`}}),y=p.forwardRef(({className:e,variant:t,size:n,...r},i)=>(0,m.jsx)(_,{ref:i,className:a(v({variant:t,size:n,className:e})),...r}));y.displayName=_.displayName;var b=`ToggleGroup`,[x,S]=s(b,[d]),C=d(),w=p.forwardRef((e,t)=>{let{type:n,...r}=e;if(n===`single`)return(0,m.jsx)(D,{role:`radiogroup`,...r,ref:t});if(n===`multiple`)return(0,m.jsx)(O,{role:`toolbar`,...r,ref:t});throw Error(`Missing prop \`type\` expected on \`${b}\``)});w.displayName=b;var[T,E]=x(b),D=p.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:a=()=>{},...o}=e,[s,c]=i({prop:n,defaultProp:r??``,onChange:a,caller:b});return(0,m.jsx)(T,{scope:e.__scopeToggleGroup,type:`single`,value:p.useMemo(()=>s?[s]:[],[s]),onItemActivate:c,onItemDeactivate:p.useCallback(()=>c(``),[c]),children:(0,m.jsx)(j,{...o,ref:t})})}),O=p.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:a=()=>{},...o}=e,[s,c]=i({prop:n,defaultProp:r??[],onChange:a,caller:b}),l=p.useCallback(e=>c((t=[])=>[...t,e]),[c]),u=p.useCallback(e=>c((t=[])=>t.filter(t=>t!==e)),[c]);return(0,m.jsx)(T,{scope:e.__scopeToggleGroup,type:`multiple`,value:s,onItemActivate:l,onItemDeactivate:u,children:(0,m.jsx)(j,{...o,ref:t})})});w.displayName=b;var[k,A]=x(b),j=p.forwardRef((e,t)=>{let{__scopeToggleGroup:n,disabled:r=!1,rovingFocus:i=!0,orientation:a,dir:o,loop:s=!0,...u}=e,d=C(n),p=l(o),h={dir:p,...u};return(0,m.jsx)(k,{scope:n,rovingFocus:i,disabled:r,children:i?(0,m.jsx)(f,{asChild:!0,...d,orientation:a,dir:p,loop:s,children:(0,m.jsx)(c.div,{...h,ref:t})}):(0,m.jsx)(c.div,{...h,ref:t})})}),M=`ToggleGroupItem`,N=p.forwardRef((e,t)=>{let n=E(M,e.__scopeToggleGroup),r=A(M,e.__scopeToggleGroup),i=C(e.__scopeToggleGroup),a=n.value.includes(e.value),o=r.disabled||e.disabled,s={...e,pressed:a,disabled:o},c=p.useRef(null);return r.rovingFocus?(0,m.jsx)(u,{asChild:!0,...i,focusable:!o,active:a,ref:c,children:(0,m.jsx)(P,{...s,ref:t})}):(0,m.jsx)(P,{...s,ref:t})});N.displayName=M;var P=p.forwardRef((e,t)=>{let{__scopeToggleGroup:n,value:r,...i}=e,a=E(M,n),o={role:`radio`,"aria-checked":e.pressed,"aria-pressed":void 0};return(0,m.jsx)(g,{...a.type===`single`?o:void 0,...i,ref:t,onPressedChange:e=>{e?a.onItemActivate(r):a.onItemDeactivate(r)}})}),F=p.createContext({size:`default`,variant:`default`}),I=p.forwardRef(({className:e,variant:t,size:n,children:r,...i},o)=>(0,m.jsx)(w,{ref:o,className:a(`inline-flex items-center justify-center gap-0.5 rounded-(--input-group-radius) bg-muted p-0.5 dark:border dark:border-border dark:bg-background`,e),...i,children:(0,m.jsx)(F.Provider,{value:{variant:t,size:n},children:r})}));I.displayName=w.displayName;var L=p.forwardRef(({className:e,children:t,variant:n,size:r,...i},o)=>{let s=p.useContext(F);return(0,m.jsx)(N,{ref:o,className:a(v({variant:s.variant||n,size:s.size||r}),e),...i,children:t})});L.displayName=N.displayName;export{L as n,I as t};
@@ -1 +1 @@
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{It as r,Pr as i}from"./index-DUXM0NlS.js";var a=e(t(),1),o=n(),s=({currentTopic:e,onTopicChange:t,excludeTopics:n=[]})=>{let{topicsQuery:s}=r(),{data:c}=s,l=[{slug:`following`,name:`Following`},...c?.topics||[]].filter(({slug:e})=>!n.includes(e)),u=(0,a.useRef)(null),d=(0,a.useRef)(null),[f,p]=(0,a.useState)(!0);return(0,a.useEffect)(()=>{u.current&&u.current.scrollIntoView({behavior:`smooth`,block:`nearest`,inline:`center`})},[e]),(0,o.jsxs)(`div`,{className:`relative w-full`,children:[(0,o.jsx)(`div`,{ref:d,className:`flex w-full max-w-full min-w-0 snap-x snap-mandatory gap-2 overflow-x-auto [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden`,onScroll:e=>{let{scrollLeft:t,scrollWidth:n,clientWidth:r}=e.currentTarget;p(t+r<n-1)},children:l.map(({slug:n,name:r})=>(0,o.jsx)(i,{ref:e===n?u:null,className:`h-8 snap-start rounded-full px-3.5 text-sm`,variant:e===n?`default`:`secondary`,onClick:()=>t(n),children:r},n))}),f&&(0,o.jsx)(`div`,{className:`pointer-events-none absolute top-0 right-0 h-full w-12 bg-gradient-to-l from-white to-transparent dark:from-black`})]})};export{s as t};
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{It as r,Pr as i}from"./index-BOJzlYiz.js";var a=e(t(),1),o=n(),s=({currentTopic:e,onTopicChange:t,excludeTopics:n=[]})=>{let{topicsQuery:s}=r(),{data:c}=s,l=[{slug:`following`,name:`Following`},...c?.topics||[]].filter(({slug:e})=>!n.includes(e)),u=(0,a.useRef)(null),d=(0,a.useRef)(null),[f,p]=(0,a.useState)(!0);return(0,a.useEffect)(()=>{u.current&&u.current.scrollIntoView({behavior:`smooth`,block:`nearest`,inline:`center`})},[e]),(0,o.jsxs)(`div`,{className:`relative w-full`,children:[(0,o.jsx)(`div`,{ref:d,className:`flex w-full max-w-full min-w-0 snap-x snap-mandatory gap-2 overflow-x-auto [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden`,onScroll:e=>{let{scrollLeft:t,scrollWidth:n,clientWidth:r}=e.currentTarget;p(t+r<n-1)},children:l.map(({slug:n,name:r})=>(0,o.jsx)(i,{ref:e===n?u:null,className:`h-8 snap-start rounded-full px-3.5 text-sm`,variant:e===n?`default`:`secondary`,onClick:()=>t(n),children:r},n))}),f&&(0,o.jsx)(`div`,{className:`pointer-events-none absolute top-0 right-0 h-full w-12 bg-gradient-to-l from-white to-transparent dark:from-black`})]})};export{s as t};
@@ -0,0 +1 @@
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{m as r,p as i}from"./hooks-CJepWnbB.js";import{t as a}from"./switch-CE2NuMn-.js";import{o,t as s}from"./use-settings-navigation-BOZcat_V.js";import{a as c,c as l,n as u,o as d,r as f,t as p}from"./field-BQqLTgHM.js";import{Nn as m,On as h}from"./index-BOJzlYiz.js";import{n as g}from"./global-data-provider-CixmTX00.js";import{n as _}from"./confirmation-provider-BEdrnHns.js";import{n as v}from"./integrations-B9yYgci5.js";import{t as y}from"./api-keys-Df6uv1dT.js";import{t as b}from"./integration-header-B4DyXV06.js";import{t as x}from"./api-keys-BgKr003d.js";import{t as S}from"./brand-icon-09YqFZjV.js";``+new URL(`ghost-transistor-sWk3BgP7.png`,import.meta.url).href;var C=e(t(),1),w=n();function T(){let{updateRoute:e}=s(),{config:t,settings:n}=g(),{mutateAsync:T}=m(),{data:{integrations:E}={integrations:[]}}=v(),{mutateAsync:D}=x(),O=r(),{confirm:k}=_(),[A,j]=(0,C.useState)(!1),M=t.hostSettings?.limits?.customIntegrations?.disabled,[N]=h(n,[`transistor`]),[P,F]=(0,C.useState)(!!N),[I,L]=(0,C.useState)(`Save`);(0,C.useEffect)(()=>{F(N||!1)},[N]),(0,C.useEffect)(()=>{M&&e(`integrations`)},[M,e]);let R=E.find(({slug:e})=>e===`transistor`),z=R?.api_keys?.find(e=>e.type===`admin`);return(0,w.jsxs)(o,{cancelLabel:`Close`,dirty:P!==N,okLabel:I,okVariant:`default`,testId:`transistor-modal`,title:``,onClose:()=>{e(`integrations`)},onOk:async()=>{let e=[{key:`transistor`,value:P}];try{L(`Saving...`),await Promise.all([T(e),new Promise(e=>{setTimeout(e,1e3)})]),L(`Saved`)}catch(e){O(e)}finally{setTimeout(()=>L(`Save`),1e3)}},children:[(0,w.jsx)(b,{detail:`Give your members access to private podcasts`,icon:(0,w.jsx)(S,{name:`transistor`,size:56}),title:`Transistor.fm`}),(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(l,{className:`gap-0`,children:(0,w.jsxs)(c,{className:`gap-8 rounded-sm border border-border-default p-4 md:p-7`,children:[(0,w.jsxs)(p,{orientation:`horizontal`,children:[(0,w.jsxs)(u,{children:[(0,w.jsx)(d,{htmlFor:`transistor-enabled`,children:`Enable Transistor`}),(0,w.jsxs)(f,{children:[`Connect your Ghost site with `,(0,w.jsx)(`a`,{className:`text-green`,href:`https://transistor.fm`,rel:`noopener noreferrer`,target:`_blank`,children:`Transistor.fm`}),` to offer members private podcasts.`]})]}),(0,w.jsx)(a,{checked:P,id:`transistor-enabled`,onCheckedChange:F})]}),P&&(0,w.jsx)(y,{keys:[{id:`admin-api-key`,label:`Admin API key`,text:z?.secret,hint:A?(0,w.jsx)(`div`,{className:`text-green`,children:`Admin API Key was successfully regenerated`}):void 0,onRegenerate:()=>{if(!R||!z)throw Error(`Transistor integration or Admin API key not found`);j(!1),k({title:`Regenerate Admin API Key`,prompt:`You will need to update the API key in your Transistor account settings after regenerating.`,okLabel:`Regenerate Admin API Key`,onOk:async e=>{try{await D({integrationId:R.id,apiKeyId:z.id}),j(!0),e?.remove()}catch(e){O(e)}}})}},{id:`api-url`,label:`API URL`,text:window.location.origin+i().subdir}]})]})}),P&&(0,w.jsx)(`div`,{className:`mt-5 flex flex-col items-center`,children:(0,w.jsxs)(`a`,{className:`flex w-100 flex-col items-stretch justify-between overflow-hidden rounded-md bg-grey-50 transition-all hover:border-grey-400 hover:bg-grey-100 md:flex-row dark:bg-grey-900 dark:hover:bg-grey-950`,href:`https://ghost.org/integrations/transistor/`,rel:`noopener noreferrer`,target:`_blank`,children:[(0,w.jsxs)(`div`,{className:`order-2 px-7 py-5 md:order-1`,children:[(0,w.jsx)(`div`,{className:`text-md font-semibold`,children:`How to use Transistor in Ghost`}),(0,w.jsx)(`div`,{className:`mt-1 text-grey-800 dark:text-grey-500`,children:`Learn more about connecting Transistor with Ghost to offer members access to private podcasts in Portal or as an embed in posts and pages with a custom Transistor card.`})]}),(0,w.jsx)(`div`,{className:`order-1 hidden w-[200px] shrink-0 items-center justify-center overflow-hidden md:visible! md:order-2 md:flex!`,children:(0,w.jsx)(`img`,{alt:`Bookmark Thumb`,className:`min-h-full min-w-full shrink-0`,src:``+new URL(`ghost-transistor-sWk3BgP7.png`,import.meta.url).href})})]})})]})]})}export{T as default};
@@ -1 +1 @@
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{m as r}from"./hooks-D6EE7BIt.js";import{t as i}from"./switch-CE2NuMn-.js";import{o as a,t as o}from"./use-settings-navigation-BmROPrls.js";import{a as s,n as c,o as l,r as u,t as d}from"./field-B3OPenbP.js";import{Nn as f,On as p}from"./index-DUXM0NlS.js";import{n as m}from"./global-data-provider-RzW6Bnlf.js";import{t as h}from"./integration-header-B4DyXV06.js";import{t as g}from"./brand-icon-09YqFZjV.js";var _=e(t(),1),v=n();function y(){let{updateRoute:e}=o(),{settings:t}=m(),[n]=p(t,[`unsplash`]),{mutateAsync:y}=f(),b=r(),[x,S]=(0,_.useState)(`Save`),[C,w]=(0,_.useState)(!!n);return(0,_.useEffect)(()=>{w(n||!1)},[n]),(0,v.jsxs)(a,{cancelLabel:`Close`,dirty:C!==n,okLabel:x,okVariant:`default`,testId:`unsplash-modal`,title:``,onClose:()=>{e(`integrations`)},onOk:async()=>{let e=[{key:`unsplash`,value:C}];try{S(`Saving...`),await Promise.all([y(e),new Promise(e=>{setTimeout(e,1e3)})]),S(`Saved`)}catch(e){b(e)}finally{setTimeout(()=>S(`Save`),1e3)}},children:[(0,v.jsx)(h,{detail:`Beautiful, free photos`,icon:(0,v.jsx)(g,{name:`unsplash`,size:48}),title:`Unsplash`}),(0,v.jsx)(`div`,{className:`mt-7`,children:(0,v.jsx)(s,{className:`gap-8 rounded-sm border border-border-default p-4 md:p-7`,children:(0,v.jsxs)(d,{orientation:`horizontal`,children:[(0,v.jsxs)(c,{children:[(0,v.jsx)(l,{htmlFor:`unsplash-enabled`,children:`Enable Unsplash`}),(0,v.jsxs)(u,{children:[`Enable `,(0,v.jsx)(`a`,{className:`text-green`,href:`https://unsplash.com`,rel:`noopener noreferrer`,target:`_blank`,children:`Unsplash`}),` image integration for your posts`]})]}),(0,v.jsx)(i,{checked:C,id:`unsplash-enabled`,onCheckedChange:w})]})})})]})}export{y as default};
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{m as r}from"./hooks-CJepWnbB.js";import{t as i}from"./switch-CE2NuMn-.js";import{o as a,t as o}from"./use-settings-navigation-BOZcat_V.js";import{a as s,n as c,o as l,r as u,t as d}from"./field-BQqLTgHM.js";import{Nn as f,On as p}from"./index-BOJzlYiz.js";import{n as m}from"./global-data-provider-CixmTX00.js";import{t as h}from"./integration-header-B4DyXV06.js";import{t as g}from"./brand-icon-09YqFZjV.js";var _=e(t(),1),v=n();function y(){let{updateRoute:e}=o(),{settings:t}=m(),[n]=p(t,[`unsplash`]),{mutateAsync:y}=f(),b=r(),[x,S]=(0,_.useState)(`Save`),[C,w]=(0,_.useState)(!!n);return(0,_.useEffect)(()=>{w(n||!1)},[n]),(0,v.jsxs)(a,{cancelLabel:`Close`,dirty:C!==n,okLabel:x,okVariant:`default`,testId:`unsplash-modal`,title:``,onClose:()=>{e(`integrations`)},onOk:async()=>{let e=[{key:`unsplash`,value:C}];try{S(`Saving...`),await Promise.all([y(e),new Promise(e=>{setTimeout(e,1e3)})]),S(`Saved`)}catch(e){b(e)}finally{setTimeout(()=>S(`Save`),1e3)}},children:[(0,v.jsx)(h,{detail:`Beautiful, free photos`,icon:(0,v.jsx)(g,{name:`unsplash`,size:48}),title:`Unsplash`}),(0,v.jsx)(`div`,{className:`mt-7`,children:(0,v.jsx)(s,{className:`gap-8 rounded-sm border border-border-default p-4 md:p-7`,children:(0,v.jsxs)(d,{orientation:`horizontal`,children:[(0,v.jsxs)(c,{children:[(0,v.jsx)(l,{htmlFor:`unsplash-enabled`,children:`Enable Unsplash`}),(0,v.jsxs)(u,{children:[`Enable `,(0,v.jsx)(`a`,{className:`text-green`,href:`https://unsplash.com`,rel:`noopener noreferrer`,target:`_blank`,children:`Unsplash`}),` image integration for your posts`]})]}),(0,v.jsx)(i,{checked:C,id:`unsplash-enabled`,onCheckedChange:w})]})})})]})}export{y as default};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./use-tinybird-token-DrK_skPQ.js";import{Bs as r,Tn as i,jn as a}from"./index-DUXM0NlS.js";var o=e(t(),1),s=()=>{let e=a(),t=i(),s=r(),c=s.data?.config,l=!!c?.stats,u=n({enabled:l}),d=[s,e,t],f=d.map(e=>e.error).find(Boolean),p=l?u.error:null,m=f||p,h=d.some(e=>e.isLoading),g=l?u.isLoading:!1,_=h||g,v=t.data?.site,y=(0,o.useMemo)(()=>({url:v?.url,icon:v?.icon,title:v?.title}),[v]);if(m)throw m instanceof Error?m:Error(`Failed to load analytics framework data`);return{config:c,site:y,statsConfig:c?.stats,isLoading:_,settings:e.data?.settings||[]}};export{s as t};
1
+ import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./use-tinybird-token-CsUwc722.js";import{Ks as r,Tn as i,jn as a}from"./index-BOJzlYiz.js";var o=e(t(),1),s=()=>{let e=a(),t=i(),s=r(),c=s.data?.config,l=!!c?.stats,u=n({enabled:l}),d=[s,e,t],f=d.map(e=>e.error).find(Boolean),p=l?u.error:null,m=f||p,h=d.some(e=>e.isLoading),g=l?u.isLoading:!1,_=h||g,v=t.data?.site,y=(0,o.useMemo)(()=>({url:v?.url,icon:v?.icon,title:v?.title}),[v]);if(m)throw m instanceof Error?m:Error(`Failed to load analytics framework data`);return{config:c,site:y,statsConfig:c?.stats,isLoading:_,settings:e.data?.settings||[]}};export{s as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{n,t as r}from"./use-limiter-ffwpsZPp.js";import{n as i}from"./global-data-provider-CixmTX00.js";var a=e(t(),1),o=()=>{let e=n(),{config:t}=i(),o=t.hostSettings?.limits?.customThemes?.allowlist,s=o?.length===1||!1;return{checkThemeLimitError:(0,a.useCallback)(async t=>{if(!e?.isLimited(`customThemes`)||!(s||t&&o&&!o.includes(t.toLowerCase())))return null;try{let n=s?`.`:t||`.`;return await e.errorIfWouldGoOverLimit(`customThemes`,{value:n}),null}catch(e){return e instanceof r?e.message||`Your current plan doesn't support changing themes.`:null}},[e,o,s]),isThemeLimited:e?.isLimited(`customThemes`)||!1,isThemeLimitCheckReady:e!==void 0,allowedThemesList:o,noThemeChangesAllowed:s}};export{o as t};
@@ -0,0 +1 @@
1
+ import{n as e}from"./global-data-provider-CixmTX00.js";var t=t=>{let{config:n}=e();return n.labs[t]||!1};export{t};