ghost 6.24.0 → 6.25.1

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 (222) hide show
  1. package/components/tryghost-i18n-6.25.1.tgz +0 -0
  2. package/components/tryghost-parse-email-address-6.25.1.tgz +0 -0
  3. package/core/boot.js +3 -1
  4. package/core/built/admin/assets/{PolarAngleAxis-7TlIQL3R.js → PolarAngleAxis-C6ZeSpZB.js} +1 -1
  5. package/core/built/admin/assets/{_baseAssignValue-DJsCJz6y.js → _baseAssignValue-BKAl5FrV.js} +1 -1
  6. package/core/built/admin/assets/{a-large-small-BnBpzYwl.js → a-large-small-B_ulQCIs.js} +1 -1
  7. package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +1 -1
  8. package/core/built/admin/assets/admin-x-settings/{code-editor-view-De3K_osj.mjs → code-editor-view-CBYT1gA1.mjs} +2 -2
  9. package/core/built/admin/assets/admin-x-settings/{index-bGxDzD13.mjs → index-CN5CixaU.mjs} +2 -2
  10. package/core/built/admin/assets/admin-x-settings/{index-5D8KqsFU.mjs → index-CPQODntW.mjs} +2 -2
  11. package/core/built/admin/assets/admin-x-settings/{index-BIUDn7ot.mjs → index-CgTfOd7g.mjs} +9 -9
  12. package/core/built/admin/assets/admin-x-settings/{modals-DuokUyAH.mjs → modals-_y-6HROx.mjs} +2 -2
  13. package/core/built/admin/assets/{at-sign-DC4NtDDM.js → at-sign-B8xWKM0y.js} +1 -1
  14. package/core/built/admin/assets/{audience-CC5U4UxI.js → audience-CBOR--z9.js} +1 -1
  15. package/core/built/admin/assets/{avatar-flipboard-_GQfQXQc.js → avatar-flipboard-IipGb_wZ.js} +1 -1
  16. package/core/built/admin/assets/{bluesky-sharing-BKyzPl9y.js → bluesky-sharing-CkI1QuAm.js} +1 -1
  17. package/core/built/admin/assets/{chart-BCQFlmhJ.js → chart-_slUcr-K.js} +1 -1
  18. package/core/built/admin/assets/{chunk.423.dae9a3bbe7845c3a3cfc.js → chunk.434.de8a15730373eccfeefe.js} +13 -101
  19. package/core/built/admin/assets/{chunk.524.b5e454aa74df4428420c.js → chunk.524.5b9b463506a16221fc91.js} +6 -6
  20. package/core/built/admin/assets/{chunk.582.20635869be68725e6d5c.js → chunk.582.d8eae1661d753befaefd.js} +7 -7
  21. package/core/built/admin/assets/{chunk.123.1255d9e815f933dfdc57.js → chunk.630.3dbb0231a2d871126a80.js} +8 -6
  22. package/core/built/admin/assets/{code-editor-view-BXnjo7qe.js → code-editor-view-BWMqr2JV.js} +1 -1
  23. package/core/built/admin/assets/comments-BeoA0nfK.js +1 -0
  24. package/core/built/admin/assets/{content-helpers-CQXipRWa.js → content-helpers-CmTGdEmL.js} +1 -1
  25. package/core/built/admin/assets/{copy-B-MxRWPu.js → copy-CDHcAPJw.js} +1 -1
  26. package/core/built/admin/assets/{data-list-B2sqn7IE.js → data-list-Crb1ffbp.js} +1 -1
  27. package/core/built/admin/assets/{deleted-feed-item-DQi676Dy.js → deleted-feed-item-DBW0zJQg.js} +1 -1
  28. package/core/built/admin/assets/{dropzone-GgOCfK2j.js → dropzone-B9JUsQlW.js} +3 -3
  29. package/core/built/admin/assets/{edit-profile-COx5FmF9.js → edit-profile-Dz-IhetN.js} +1 -1
  30. package/core/built/admin/assets/{empty-indicator-Bf4Dqk72.js → empty-indicator-2QGnEbtY.js} +1 -1
  31. package/core/built/admin/assets/{en-BkI47Ou-.js → en-BRQS1Z8j.js} +1 -1
  32. package/core/built/admin/assets/{feed-Dzc-8jwd.js → feed-T3kW9UJA.js} +1 -1
  33. package/core/built/admin/assets/filters-ChOMQQZW.js +1 -0
  34. package/core/built/admin/assets/{gh-chart-Ch6dYUac.js → gh-chart-fuWw60Ka.js} +1 -1
  35. package/core/built/admin/assets/{ghost-69e448feab2cb78aba64f7177fa4d6f0.js → ghost-78b4a517ac907213ab47708eef33bc6f.js} +423 -542
  36. package/core/built/admin/assets/{growth-BIBJdcm6.js → growth-D9sCnmon.js} +1 -1
  37. package/core/built/admin/assets/{hash-BGd7HEsT.js → hash-CI1pQ1UC.js} +1 -1
  38. package/core/built/admin/assets/header-OevT95FI.js +1 -0
  39. package/core/built/admin/assets/{inbox-CFzKvW3h.js → inbox-DYY8-M1K.js} +1 -1
  40. package/core/built/admin/assets/{index-Dy8dCc8t.js → index-8CZdLQzu.js} +4 -4
  41. package/core/built/admin/assets/{index-DIO8ceib.js → index-BDAOs7pI.js} +1 -1
  42. package/core/built/admin/assets/{index-BZyG96u1.js → index-BEEgMX-_.js} +1 -1
  43. package/core/built/admin/assets/index-BbveDn8H.css +1 -0
  44. package/core/built/admin/assets/{index-BYXKsmpv.js → index-C-Cpbee5.js} +1 -1
  45. package/core/built/admin/assets/{index-DDJAHYHQ.js → index-CCF2RKxR.js} +12 -12
  46. package/core/built/admin/assets/{index-ZuWSQ3L6.js → index-CEnfjH5h.js} +93 -93
  47. package/core/built/admin/assets/{index-_WMp37yL.js → index-CcFVbffG.js} +1 -1
  48. package/core/built/admin/assets/{index-DpZazR71.js → index-CyMlhfZJ.js} +1 -1
  49. package/core/built/admin/assets/{index-DM98UB_U.js → index-DBZYUfjO.js} +1 -1
  50. package/core/built/admin/assets/{index-D0gRP4Gp.js → index-DJa3pLmx.js} +1 -1
  51. package/core/built/admin/assets/{index-n5opb8tL.js → index-DVqmhe-L.js} +1 -1
  52. package/core/built/admin/assets/{index-S2DGJkmz.js → index-DW5aEj6O.js} +2 -2
  53. package/core/built/admin/assets/{index-CvX5YYEz.js → index-DcFgRUSN.js} +1 -1
  54. package/core/built/admin/assets/{index-7NTHsKgE.js → index-DjgsxHeB.js} +1 -1
  55. package/core/built/admin/assets/index-mqQc8MVd.js +1 -0
  56. package/core/built/admin/assets/{index-CsHjDdYB.js → index-qQZsxgFE.js} +1 -1
  57. package/core/built/admin/assets/{koenig-lexical-8qAZ5o1x.js → koenig-lexical-CsbE6fpi.js} +1 -1
  58. package/core/built/admin/assets/kpis-Dw04ruBN.js +1 -0
  59. package/core/built/admin/assets/{label-CofMdj8x.js → label-tBvn89sm.js} +1 -1
  60. package/core/built/admin/assets/{links-MSlYSad1.js → links-Do4jcjIh.js} +1 -1
  61. package/core/built/admin/assets/{loader-circle-CF5G2g_Z.js → loader-circle-C8exRUku.js} +4 -4
  62. package/core/built/admin/assets/{lucide-react-DZiAu6PQ.js → lucide-react-4VO5Dwow.js} +1 -1
  63. package/core/built/admin/assets/{main-layout-DEVUkqt_.js → main-layout-BAqXRgAx.js} +1 -1
  64. package/core/built/admin/assets/{member-route-mLKS-PsA.js → member-route-D4n-RbQd.js} +1 -1
  65. package/core/built/admin/assets/members-DRLgwCgJ.js +15 -0
  66. package/core/built/admin/assets/{message-square-text-DESy3kSk.js → message-square-text-CC_1bY-Q.js} +5 -5
  67. package/core/built/admin/assets/{minus-DVNwSjD6.js → minus-DSyx9DCe.js} +1 -1
  68. package/core/built/admin/assets/{modals-FYjLOMaQ.js → modals-AryZr_DA.js} +13 -13
  69. package/core/built/admin/assets/{moderation-u4WS46a-.js → moderation-DwKm9LO-.js} +1 -1
  70. package/core/built/admin/assets/{newsletter-Cj0UCg4J.js → newsletter-C0rydPGS.js} +1 -1
  71. package/core/built/admin/assets/{newsletters-_UvhdBE3.js → newsletters-DKdmxfDG.js} +1 -1
  72. package/core/built/admin/assets/{note-CRnFryTp.js → note-996Zos9G.js} +1 -1
  73. package/core/built/admin/assets/{overview-Cr0dGxEU.js → overview-r17hlWAB.js} +1 -1
  74. package/core/built/admin/assets/{pagemenu-BqoDENpI.js → pagemenu-DzpB1AkZ.js} +17 -17
  75. package/core/built/admin/assets/{post-analytics-DIr_rDtL.js → post-analytics-AwufPVFE.js} +1 -1
  76. package/core/built/admin/assets/{post-analytics-context-WA--pwK5.js → post-analytics-context-GFe0lMc-.js} +1 -1
  77. package/core/built/admin/assets/{post-analytics-header-D97SoEaV.js → post-analytics-header-DmGyNvP9.js} +1 -1
  78. package/core/built/admin/assets/{post-share-modal-DBxR7WCX.js → post-share-modal-CTpdCS2X.js} +1 -1
  79. package/core/built/admin/assets/posts/{comments-Bswx2dzs.mjs → comments-Cvt31uBs.mjs} +597 -674
  80. package/core/built/admin/assets/posts/{dialog-67vvNv8e.mjs → dialog-DaViJlnd.mjs} +3 -3
  81. package/core/built/admin/assets/posts/{dropdown-menu-BKZfsAPJ.mjs → dropdown-menu-B4KGMiRI.mjs} +5 -5
  82. package/core/built/admin/assets/posts/{empty-indicator-DTmBQa_3.mjs → empty-indicator-BaD6pCXM.mjs} +2 -2
  83. package/core/built/admin/assets/posts/filters-BsCI4RJg.mjs +2835 -0
  84. package/core/built/admin/assets/posts/{get-site-timezone-D75cHSJ1.mjs → get-site-timezone-Bo-iI2bI.mjs} +2 -2
  85. package/core/built/admin/assets/posts/{growth-BqJWjpAp.mjs → growth-BJxIDp2o.mjs} +14 -14
  86. package/core/built/admin/assets/posts/header-7zhnErbb.mjs +100 -0
  87. package/core/built/admin/assets/posts/{heading-DXxLDQ96.mjs → heading-BCDx_eVF.mjs} +2 -2
  88. package/core/built/admin/assets/posts/{hooks-pVotzebr.mjs → hooks-DQL2O_El.mjs} +2 -2
  89. package/core/built/admin/assets/posts/{index-DZ1HzbGS.mjs → index-0mEgtljt.mjs} +3 -3
  90. package/core/built/admin/assets/posts/{index-By5yPnMZ.mjs → index-BTzJVQ6S.mjs} +10 -10
  91. package/core/built/admin/assets/posts/{input-DdXe2Fjm.mjs → input-DaHXv92f.mjs} +2 -2
  92. package/core/built/admin/assets/posts/{kpis-1MXZeSC9.mjs → kpis-GRsx6fPV.mjs} +10 -10
  93. package/core/built/admin/assets/posts/{links-DGzzdzsH.mjs → links-B1q_pqE9.mjs} +4 -4
  94. package/core/built/admin/assets/posts/{loading-indicator-CSj2spwS.mjs → loading-indicator-DiYqXomj.mjs} +3 -3
  95. package/core/built/admin/assets/posts/{main-layout-CGs25JVH.mjs → main-layout-DeqPTJTe.mjs} +2 -2
  96. package/core/built/admin/assets/posts/{members-BRcED5fL.mjs → members-LABk5yI5.mjs} +4102 -3442
  97. package/core/built/admin/assets/posts/{newsletter-D706LlgM.mjs → newsletter-C_nbHBaP.mjs} +15 -15
  98. package/core/built/admin/assets/posts/{overview-5dG5ypjx.mjs → overview-AJnKv4Ze.mjs} +16 -16
  99. package/core/built/admin/assets/posts/{post-analytics-wvNuOa4c.mjs → post-analytics-b_CKsePp.mjs} +6 -6
  100. package/core/built/admin/assets/posts/{post-analytics-context-BqnFe05q.mjs → post-analytics-context-D6jtpxxm.mjs} +5 -5
  101. package/core/built/admin/assets/posts/{post-analytics-header-Dsi5l6hb.mjs → post-analytics-header-R5UF_tF0.mjs} +11 -11
  102. package/core/built/admin/assets/posts/{post-share-modal-DWe35McY.mjs → post-share-modal-y4BEOajk.mjs} +4 -4
  103. package/core/built/admin/assets/posts/posts-C2hNrf1c.mjs +37 -0
  104. package/core/built/admin/assets/posts/posts.js +1 -1
  105. package/core/built/admin/assets/posts/{reply-B4vwBMwj.mjs → reply-2Uvi3Kxb.mjs} +2 -2
  106. package/core/built/admin/assets/posts/{search-DQuB1WMm.mjs → search-se7meOnL.mjs} +2 -2
  107. package/core/built/admin/assets/posts/{select-BMPHyOdQ.mjs → select-DpUpauFg.mjs} +8 -8
  108. package/core/built/admin/assets/posts/{separator-DgZ2VF9r.mjs → separator-CdBM46dw.mjs} +3 -3
  109. package/core/built/admin/assets/posts/{settings-D-wnf7Qg.mjs → settings-Chhj9xKP.mjs} +2 -2
  110. package/core/built/admin/assets/posts/{sheet-SOdCzxUt.mjs → sheet--k3SiDko.mjs} +3 -3
  111. package/core/built/admin/assets/posts/{skeleton-Du7JXZ_1.mjs → skeleton-CUSLSLoY.mjs} +3 -3
  112. package/core/built/admin/assets/posts/{source-icon-DcBtKbCl.mjs → source-icon-BjYUIoXN.mjs} +3 -3
  113. package/core/built/admin/assets/posts/{stats-CeLav-Hu.mjs → stats-BRdXKaxM.mjs} +4 -4
  114. package/core/built/admin/assets/posts/{table-DlaJMBps.mjs → table-Bgi_UcfL.mjs} +2 -2
  115. package/core/built/admin/assets/posts/{tabs-BQQbtw2g.mjs → tabs-DT8Bh72E.mjs} +14 -14
  116. package/core/built/admin/assets/posts/tags-BCFLnZYl.mjs +399 -0
  117. package/core/built/admin/assets/posts/{tags-CLyaNf39.mjs → tags-Kv2q0o3p.mjs} +2 -2
  118. package/core/built/admin/assets/posts/use-scroll-restoration-CLAUAal3.mjs +517 -0
  119. package/core/built/admin/assets/posts/{use-infinite-virtual-scroll-B_NwiBXK.mjs → virtual-list-window-CQDEqNBL.mjs} +246 -262
  120. package/core/built/admin/assets/posts/{web-TEVKbXSI.mjs → web-CqN0MQU6.mjs} +18 -18
  121. package/core/built/admin/assets/posts-GvXDuhVG.js +1 -0
  122. package/core/built/admin/assets/{referrers-J4vexZCf.js → referrers-Bd9pW-WX.js} +1 -1
  123. package/core/built/admin/assets/{repeat-BxOK9zhN.js → repeat-y6HlMgGO.js} +2 -2
  124. package/core/built/admin/assets/{reply-BoTN-eE0.js → reply-Cc8ryI5v.js} +2 -2
  125. package/core/built/admin/assets/{select-Bd1zcqox.js → select-CGr_5qad.js} +1 -1
  126. package/core/built/admin/assets/{settings-D72z6T_a.js → settings-BPsfSgg3.js} +1 -1
  127. package/core/built/admin/assets/{settings-BGbGoa4s.js → settings-BTd0Adha.js} +19 -19
  128. package/core/built/admin/assets/{sort-button-BOLTpImz.js → sort-button-k76_5HR2.js} +1 -1
  129. package/core/built/admin/assets/{source-icon-BqEM5MvU.js → source-icon-DMt0UskC.js} +1 -1
  130. package/core/built/admin/assets/{sprout-Bf-wc2Vo.js → sprout-Td9eaOoY.js} +2 -2
  131. package/core/built/admin/assets/{square-Cj_bJ0HZ.js → square-Df8vEYlG.js} +1 -1
  132. package/core/built/admin/assets/stats/{audience-BiHYBUzT.mjs → audience-DMTObpL8.mjs} +3 -3
  133. package/core/built/admin/assets/stats/{content-helpers-CIXZiyCm.mjs → content-helpers-ReMp9KJN.mjs} +4 -4
  134. package/core/built/admin/assets/stats/{index-CkKk-p14.mjs → index-6L-yLKFX.mjs} +8 -8
  135. package/core/built/admin/assets/stats/{index-DBB8Oih1.mjs → index-CIUyjeP-.mjs} +5 -5
  136. package/core/built/admin/assets/stats/{index-9zQR4gr0.mjs → index-CMSDpQm3.mjs} +3626 -3513
  137. package/core/built/admin/assets/stats/{index-DErXBfDM.mjs → index-Ca-_KJzy.mjs} +5 -5
  138. package/core/built/admin/assets/stats/{index-DMSmQLxG.mjs → index-CfO5yPSP.mjs} +5 -5
  139. package/core/built/admin/assets/stats/{sort-button-BqY7GFaO.mjs → sort-button-BB_M2CdZ.mjs} +3 -3
  140. package/core/built/admin/assets/stats/{stats-BeJgKX2G.mjs → stats-B2nnuLeU.mjs} +4 -4
  141. package/core/built/admin/assets/stats/stats.js +1 -1
  142. package/core/built/admin/assets/stats/{tabs-CPz357mW.mjs → tabs-DjJG-d3O.mjs} +3 -3
  143. package/core/built/admin/assets/stats/{use-growth-stats-WMYXBQE3.mjs → use-growth-stats-BMT5M7l6.mjs} +3 -3
  144. package/core/built/admin/assets/{stats-DWpHtRym.js → stats-Bs9ZbmXX.js} +1 -1
  145. package/core/built/admin/assets/stats-view-BWoPuaLz.js +1 -0
  146. package/core/built/admin/assets/{step-1-Bjya9Gt0.js → step-1-BUvsuCs0.js} +1 -1
  147. package/core/built/admin/assets/{step-2-CJ6I8JNc.js → step-2-DI9ekXls.js} +1 -1
  148. package/core/built/admin/assets/{step-3-3fs6Y2Kj.js → step-3-DzT_XhaS.js} +2 -2
  149. package/core/built/admin/assets/{table-B4zlzEDP.js → table-BKqaEGAm.js} +1 -1
  150. package/core/built/admin/assets/{tabs-mR5oJGm5.js → tabs-G6Ql8vbf.js} +1 -1
  151. package/core/built/admin/assets/tags-BHm-dlBs.js +1 -0
  152. package/core/built/admin/assets/{tags-CsgMtkFL.js → tags-_taMP0sJ.js} +1 -1
  153. package/core/built/admin/assets/{textarea-CQjEvapR.js → textarea-DcVuGYYq.js} +1 -1
  154. package/core/built/admin/assets/{tiers-CQE0v797.js → tiers-kv-xBoqQ.js} +1 -1
  155. package/core/built/admin/assets/{toggle-group-CR-Z-bJL.js → toggle-group-DsatLdt7.js} +1 -1
  156. package/core/built/admin/assets/{topic-filter-_NyD55eH.js → topic-filter-DkJyIuAf.js} +1 -1
  157. package/core/built/admin/assets/{trash-BFSLkv0z.js → trash-BeZZgbn-.js} +1 -1
  158. package/core/built/admin/assets/{upload-BTxT4v2z.js → upload-BG7KNIn7.js} +4 -4
  159. package/core/built/admin/assets/{use-growth-stats-BGymNu5O.js → use-growth-stats-CNGdl44N.js} +1 -1
  160. package/core/built/admin/assets/use-scroll-restoration-CQ3w0W98.js +1 -0
  161. package/core/built/admin/assets/{use-simple-pagination-Cq7Afp_c.js → use-simple-pagination-BeIJ_5Vv.js} +1 -1
  162. package/core/built/admin/assets/{user-plus-DMl69yKl.js → user-plus-CMxR50-Y.js} +1 -1
  163. package/core/built/admin/assets/{user-round-check-CVuZXUPz.js → user-round-check-2nhPmqP3.js} +1 -1
  164. package/core/built/admin/assets/virtual-list-window-Uq8oKYVG.js +4 -0
  165. package/core/built/admin/assets/{wallet-cards-zHR_y6Sp.js → wallet-cards-CJcVzH0D.js} +1 -1
  166. package/core/built/admin/assets/{web-CmFHgeQw.js → web-BPwTFKrc.js} +1 -1
  167. package/core/built/admin/index.html +7 -7
  168. package/core/frontend/helpers/ghost_head.js +1 -4
  169. package/core/server/data/migrations/versions/6.25/2026-03-26-15-47-00-insert-default-email-design-settings-row.js +42 -0
  170. package/core/server/data/migrations/versions/6.25/2026-03-30-20-22-25-add-email-design-setting-permissions.js +44 -0
  171. package/core/server/data/migrations/versions/6.25/2026-03-30-22-16-43-add-email-design-setting-id-to-automated-emails.js +8 -0
  172. package/core/server/data/migrations/versions/6.25/2026-03-31-13-12-10-backfill-automated-emails-email-design-setting-id.js +45 -0
  173. package/core/server/data/migrations/versions/6.25/2026-03-31-20-31-19-drop-nullable-on-automated-emails-email-design-setting-id.js +3 -0
  174. package/core/server/data/schema/fixtures/fixtures.json +35 -0
  175. package/core/server/data/schema/schema.js +1 -0
  176. package/core/server/data/seeders/importers/comment-reports-importer.js +1 -3
  177. package/core/server/data/seeders/importers/comments-importer.js +3 -2
  178. package/core/server/data/seeders/importers/email-batches-importer.js +3 -3
  179. package/core/server/data/seeders/importers/email-recipients-importer.js +6 -6
  180. package/core/server/data/seeders/importers/emails-importer.js +4 -3
  181. package/core/server/data/seeders/importers/members-click-events-importer.js +1 -1
  182. package/core/server/data/seeders/importers/members-created-events-importer.js +2 -1
  183. package/core/server/data/seeders/importers/members-feedback-importer.js +3 -4
  184. package/core/server/data/seeders/importers/members-login-events-importer.js +3 -2
  185. package/core/server/data/seeders/importers/members-status-events-importer.js +1 -2
  186. package/core/server/data/seeders/importers/members-stripe-customers-importer.js +2 -1
  187. package/core/server/data/seeders/importers/members-stripe-customers-subscriptions-importer.js +4 -2
  188. package/core/server/data/seeders/importers/members-subscribe-events-importer.js +1 -2
  189. package/core/server/data/seeders/importers/members-subscription-created-events-importer.js +3 -1
  190. package/core/server/data/seeders/importers/offer-redemptions-importer.js +3 -3
  191. package/core/server/data/seeders/utils/database-date.js +26 -1
  192. package/core/server/models/automated-email.js +27 -0
  193. package/core/server/models/email-design-setting.js +27 -0
  194. package/core/server/services/members/service.js +0 -22
  195. package/core/server/services/stripe/service.js +1 -2
  196. package/core/server/services/verification/verification-webhook-service.js +2 -2
  197. package/core/server/services/verification/verification-webhook-service.ts +2 -2
  198. package/core/server/services/verification-trigger.js +34 -69
  199. package/core/server/services/webhooks/webhook-trigger.js +1 -1
  200. package/core/shared/labs.js +2 -2
  201. package/package.json +10 -28
  202. package/tsconfig.tsbuildinfo +1 -1
  203. package/yarn.lock +423 -107
  204. package/components/tryghost-i18n-6.24.0.tgz +0 -0
  205. package/components/tryghost-parse-email-address-6.24.0.tgz +0 -0
  206. package/core/built/admin/assets/comments-CteqV7ZN.js +0 -1
  207. package/core/built/admin/assets/filters-DXXaCya7.js +0 -1
  208. package/core/built/admin/assets/index-QB-va_sk.css +0 -1
  209. package/core/built/admin/assets/index-nBUk6L1X.js +0 -1
  210. package/core/built/admin/assets/kpis-Cv75oSPY.js +0 -1
  211. package/core/built/admin/assets/members-DcElgZ2t.js +0 -15
  212. package/core/built/admin/assets/posts/filters-Ds_ZaYIU.mjs +0 -2722
  213. package/core/built/admin/assets/posts/posts-DI5YQFp4.mjs +0 -17
  214. package/core/built/admin/assets/posts/tags-CjwolIiT.mjs +0 -395
  215. package/core/built/admin/assets/posts/use-scroll-restoration-YSR5jwQl.mjs +0 -232
  216. package/core/built/admin/assets/posts-CJHEP4C-.js +0 -1
  217. package/core/built/admin/assets/stats-view-CcyaLPwj.js +0 -1
  218. package/core/built/admin/assets/tags-DEFC6GpD.js +0 -1
  219. package/core/built/admin/assets/use-infinite-virtual-scroll-CNqGwgHd.js +0 -4
  220. package/core/built/admin/assets/use-scroll-restoration-BWtb0NrS.js +0 -1
  221. package/core/shared/config/env/config.testing-browser.json +0 -98
  222. /package/core/built/admin/assets/{chunk.423.dae9a3bbe7845c3a3cfc.js.LICENSE.txt → chunk.434.de8a15730373eccfeefe.js.LICENSE.txt} +0 -0
@@ -0,0 +1,517 @@
1
+ import { j as E, n as z, T as ne, q as g, u as q, o as U, b as B, a as R, L as oe, M as se, K as ie, _ as ae } from "./index-BTzJVQ6S.mjs";
2
+ import { d as W, b as D, a as ue } from "./hooks-DQL2O_El.mjs";
3
+ import { b as ce } from "./posts-C2hNrf1c.mjs";
4
+ import { U as le } from "./dropdown-menu-B4KGMiRI.mjs";
5
+ import { g as de } from "./virtual-list-window-CQDEqNBL.mjs";
6
+ const fe = ne(
7
+ "inline-flex items-center rounded-xs border px-1.5 text-xs font-semibold transition-colors focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-hidden",
8
+ {
9
+ variants: {
10
+ variant: {
11
+ default: "border-transparent bg-primary text-primary-foreground",
12
+ secondary: "border-transparent bg-secondary text-secondary-foreground/70",
13
+ destructive: "border-transparent bg-destructive/20 text-destructive",
14
+ success: "border-transparent bg-green/20 text-green",
15
+ outline: "text-foreground"
16
+ }
17
+ },
18
+ defaultVariants: {
19
+ variant: "default"
20
+ }
21
+ }
22
+ );
23
+ function je({ className: e, variant: t, ...r }) {
24
+ return /* @__PURE__ */ E.jsx("div", { className: z(fe({ variant: t }), e), ...r });
25
+ }
26
+ const _ = "MembersResponseType", ke = ue({
27
+ dataType: _,
28
+ path: "/members/"
29
+ }), Fe = D({
30
+ method: "POST",
31
+ path: ({ id: e }) => `/members/${e}/commenting/disable`,
32
+ body: ({ reason: e, hideComments: t }) => ({
33
+ reason: e,
34
+ hide_comments: t
35
+ }),
36
+ invalidateQueries: {
37
+ dataType: "CommentsResponseType"
38
+ }
39
+ }), Ae = D({
40
+ method: "POST",
41
+ path: ({ id: e }) => `/members/${e}/commenting/enable`,
42
+ body: () => ({}),
43
+ invalidateQueries: {
44
+ dataType: "CommentsResponseType"
45
+ }
46
+ }), Ke = W({
47
+ dataType: _,
48
+ path: "/members/",
49
+ defaultSearchParams: {
50
+ include: "labels,tiers",
51
+ limit: "100",
52
+ order: "created_at desc"
53
+ },
54
+ defaultNextPageParams: (e, t) => {
55
+ var r;
56
+ if ((r = e.meta) != null && r.pagination.next)
57
+ return {
58
+ ...t,
59
+ page: e.meta.pagination.next.toString()
60
+ };
61
+ },
62
+ returnData: (e) => {
63
+ const { pages: t } = e, r = t.flatMap((s) => s.members), n = t[t.length - 1].meta;
64
+ return {
65
+ members: r,
66
+ meta: n,
67
+ isEnd: n ? n.pagination.pages === n.pagination.page : !0
68
+ };
69
+ }
70
+ });
71
+ function Y({ filter: e, search: t, all: r }) {
72
+ if (!r && !e && !t)
73
+ throw new Error("Bulk operation requires a filter, search, or all flag");
74
+ const n = {};
75
+ return r && (n.all = "true"), e && (n.filter = e), t && (n.search = t), n;
76
+ }
77
+ const Qe = D({
78
+ method: "PUT",
79
+ path: () => "/members/bulk/",
80
+ body: ({ action: e }) => ({
81
+ bulk: {
82
+ action: e.type,
83
+ meta: e.meta || {},
84
+ newsletter: e.newsletter
85
+ }
86
+ }),
87
+ searchParams: Y,
88
+ invalidateQueries: { dataType: _ }
89
+ }), Ve = D({
90
+ method: "DELETE",
91
+ path: () => "/members/",
92
+ searchParams: Y,
93
+ invalidateQueries: { dataType: _ }
94
+ });
95
+ function G(e) {
96
+ return `'${e.replace(/\\/g, "\\\\").replace(/'/g, "\\'")}'`;
97
+ }
98
+ function me(e, t) {
99
+ if (t.length !== 0)
100
+ return `${e}:[${t.map((r) => G(r)).join(",")}]`;
101
+ }
102
+ function $e(e, t) {
103
+ const r = t.trim().toLowerCase();
104
+ return r ? e.filter((n) => {
105
+ var s;
106
+ return n.label.toLowerCase().includes(r) || ((s = n.detail) == null ? void 0 : s.toLowerCase().includes(r));
107
+ }) : e;
108
+ }
109
+ function X(...e) {
110
+ const t = /* @__PURE__ */ new Map();
111
+ for (const r of e)
112
+ if (r)
113
+ for (const n of r)
114
+ t.has(n.value) || t.set(n.value, n);
115
+ return [...t.values()];
116
+ }
117
+ function pe(e, t, r, n) {
118
+ var s = this, l = g(null), u = g(0), c = g(0), a = g(null), i = g([]), o = g(), d = g(), f = g(e), m = g(!0);
119
+ f.current = e;
120
+ var y = typeof window < "u", P = !t && t !== 0 && y;
121
+ if (typeof e != "function") throw new TypeError("Expected a function");
122
+ t = +t || 0;
123
+ var M = !!(r = r || {}).leading, x = !("trailing" in r) || !!r.trailing, w = "maxWait" in r, L = "debounceOnServer" in r && !!r.debounceOnServer, T = w ? Math.max(+r.maxWait || 0, t) : null;
124
+ B(function() {
125
+ return m.current = !0, function() {
126
+ m.current = !1;
127
+ };
128
+ }, []);
129
+ var S = R(function() {
130
+ var h = function(p) {
131
+ var v = i.current, H = o.current;
132
+ return i.current = o.current = null, u.current = p, c.current = c.current || p, d.current = f.current.apply(H, v);
133
+ }, b = function(p, v) {
134
+ P && cancelAnimationFrame(a.current), a.current = P ? requestAnimationFrame(p) : setTimeout(p, v);
135
+ }, O = function(p) {
136
+ if (!m.current) return !1;
137
+ var v = p - l.current;
138
+ return !l.current || v >= t || v < 0 || w && p - u.current >= T;
139
+ }, I = function(p) {
140
+ return a.current = null, x && i.current ? h(p) : (i.current = o.current = null, d.current);
141
+ }, N = function p() {
142
+ var v = Date.now();
143
+ if (M && c.current === u.current && te(), O(v)) return I(v);
144
+ if (m.current) {
145
+ var H = t - (v - l.current), re = w ? Math.min(H, T - (v - u.current)) : H;
146
+ b(p, re);
147
+ }
148
+ }, te = function() {
149
+ n && n({});
150
+ }, C = function() {
151
+ if (y || L) {
152
+ var p = Date.now(), v = O(p);
153
+ if (i.current = [].slice.call(arguments), o.current = s, l.current = p, v) {
154
+ if (!a.current && m.current) return u.current = l.current, b(N, t), M ? h(l.current) : d.current;
155
+ if (w) return b(N, t), h(l.current);
156
+ }
157
+ return a.current || b(N, t), d.current;
158
+ }
159
+ };
160
+ return C.cancel = function() {
161
+ var p = a.current;
162
+ p && (P ? cancelAnimationFrame(a.current) : clearTimeout(a.current)), u.current = 0, i.current = l.current = o.current = a.current = null, p && n && n({});
163
+ }, C.isPending = function() {
164
+ return !!a.current;
165
+ }, C.flush = function() {
166
+ return a.current ? I(Date.now()) : d.current;
167
+ }, C;
168
+ }, [M, w, t, T, x, P, y, L, n]);
169
+ return S;
170
+ }
171
+ function ge(e, t) {
172
+ return e === t;
173
+ }
174
+ function be(e, t, r) {
175
+ var n = ge, s = g(e), l = q({})[1], u = pe(U(function(a) {
176
+ s.current = a, l({});
177
+ }, [l]), t, r, l), c = g(e);
178
+ return n(c.current, e) || (u(e), c.current = e), [s.current, u];
179
+ }
180
+ const K = () => {
181
+ };
182
+ function he(e) {
183
+ return function(r = {}) {
184
+ const { enabled: n = !0 } = r, s = () => {
185
+ const u = e.useBrowse("", { enabled: !0 }), c = R(() => (u.data || []).map(e.toOption), [u.data]);
186
+ return {
187
+ items: u.data,
188
+ options: c,
189
+ isLoading: u.isLoading,
190
+ pagination: u.pagination
191
+ };
192
+ }, l = ({ query: u, selectedValues: c }) => {
193
+ var y;
194
+ const [a] = be(u, e.debounceMs ?? 200), i = e.useBrowse(a, { enabled: n }), o = (y = e.useHydrate) == null ? void 0 : y.call(e, c, { enabled: n }), d = R(() => (i.data || []).map(e.toOption), [i.data]), f = R(() => ((o == null ? void 0 : o.data) || []).map(e.toOption), [o == null ? void 0 : o.data]), m = R(() => X(f, d), [f, d]);
195
+ return n ? {
196
+ options: m,
197
+ isInitialLoad: i.isLoading && m.length === 0,
198
+ isSearching: !i.isLoading && i.isRefreshing && !i.isLoadingMore,
199
+ isLoadingMore: i.isLoadingMore,
200
+ hasMore: i.hasMore,
201
+ loadMore: i.loadMore ?? K
202
+ } : {
203
+ options: [],
204
+ isInitialLoad: !1,
205
+ isSearching: !1,
206
+ isLoadingMore: !1,
207
+ hasMore: !1,
208
+ loadMore: K
209
+ };
210
+ };
211
+ return {
212
+ id: e.id,
213
+ useInitialBrowse: s,
214
+ useOptions: l
215
+ };
216
+ };
217
+ }
218
+ function Pe(e) {
219
+ return { filter: e };
220
+ }
221
+ function ve(e) {
222
+ return me("id", e);
223
+ }
224
+ function Q(e) {
225
+ return {
226
+ limit: "100",
227
+ ...e
228
+ };
229
+ }
230
+ function J({
231
+ id: e,
232
+ buildBrowseSearchParams: t,
233
+ buildHydrateSearchParams: r = Pe,
234
+ buildHydrateFilter: n = ve,
235
+ debounceMs: s,
236
+ selectItems: l,
237
+ toOption: u,
238
+ useQuery: c
239
+ }) {
240
+ return he({
241
+ id: e,
242
+ useBrowse: (a, i) => {
243
+ var d, f;
244
+ const o = c({
245
+ enabled: i.enabled ?? !0,
246
+ searchParams: Q(t(a))
247
+ });
248
+ return {
249
+ data: l(o.data),
250
+ isLoading: o.isLoading,
251
+ isRefreshing: o.isFetching,
252
+ isLoadingMore: o.isFetchingNextPage,
253
+ hasMore: !!o.hasNextPage,
254
+ loadMore: o.fetchNextPage,
255
+ pagination: (f = (d = o.data) == null ? void 0 : d.meta) == null ? void 0 : f.pagination
256
+ };
257
+ },
258
+ useHydrate: (a, i) => {
259
+ const o = n(a), d = {};
260
+ typeof o == "string" && Object.assign(d, Q(r(o)));
261
+ const m = c({
262
+ enabled: (i.enabled ?? !0) && a.length > 0,
263
+ searchParams: d
264
+ });
265
+ return {
266
+ data: l(m.data),
267
+ isLoading: m.isLoading
268
+ };
269
+ },
270
+ toOption: u,
271
+ debounceMs: s
272
+ });
273
+ }
274
+ const ye = "PagesResponseType", we = W({
275
+ dataType: ye,
276
+ path: "/pages/",
277
+ defaultNextPageParams: (e, t) => {
278
+ var r;
279
+ if ((r = e.meta) != null && r.pagination.next)
280
+ return {
281
+ ...t,
282
+ page: e.meta.pagination.next.toString()
283
+ };
284
+ },
285
+ returnData: (e) => {
286
+ const { pages: t } = e, r = t.flatMap((s) => s.pages), n = t[t.length - 1].meta;
287
+ return {
288
+ pages: r,
289
+ meta: n,
290
+ isEnd: n ? n.pagination.pages === n.pagination.page : !0
291
+ };
292
+ }
293
+ });
294
+ function Se(e, t) {
295
+ return function(n) {
296
+ const s = e(n), l = t(n), u = U(({ query: c, selectedValues: a }) => {
297
+ const i = s.useOptions({ query: c, selectedValues: a }), o = l.useOptions({ query: c, selectedValues: a });
298
+ return {
299
+ options: X(i.options, o.options),
300
+ isInitialLoad: i.options.length === 0 && o.options.length === 0 && (i.isInitialLoad || o.isInitialLoad),
301
+ isSearching: i.isSearching || o.isSearching,
302
+ isLoadingMore: i.isLoadingMore || o.isLoadingMore,
303
+ hasMore: i.hasMore || o.hasMore,
304
+ loadMore: () => {
305
+ i.hasMore && i.loadMore(), o.hasMore && o.loadMore();
306
+ }
307
+ };
308
+ }, [s, l]);
309
+ return R(() => ({
310
+ id: `${s.id}+${l.id}`,
311
+ useOptions: u
312
+ }), [s.id, l.id, u]);
313
+ };
314
+ }
315
+ function Me(e) {
316
+ return e ? `status:published+title:~${G(e)}` : "status:published";
317
+ }
318
+ function Te(e) {
319
+ return {
320
+ value: e.id,
321
+ label: e.title
322
+ };
323
+ }
324
+ function xe(e) {
325
+ return {
326
+ value: e.id,
327
+ label: e.title,
328
+ detail: "Page"
329
+ };
330
+ }
331
+ const Z = (e) => ({
332
+ filter: Me(e),
333
+ limit: "25",
334
+ fields: "id,title",
335
+ order: "published_at DESC"
336
+ }), ee = (e) => ({
337
+ fields: "id,title",
338
+ filter: e
339
+ }), Le = J({
340
+ id: "posts.published.remote",
341
+ buildBrowseSearchParams: Z,
342
+ buildHydrateSearchParams: ee,
343
+ selectItems: (e) => e == null ? void 0 : e.posts,
344
+ useQuery: ({ enabled: e, searchParams: t }) => ce({
345
+ enabled: e,
346
+ keepPreviousData: !0,
347
+ searchParams: t
348
+ }),
349
+ toOption: Te
350
+ }), Oe = J({
351
+ id: "pages.published.remote",
352
+ buildBrowseSearchParams: Z,
353
+ buildHydrateSearchParams: ee,
354
+ selectItems: (e) => e == null ? void 0 : e.pages,
355
+ useQuery: ({ enabled: e, searchParams: t }) => we({
356
+ enabled: e,
357
+ keepPreviousData: !0,
358
+ searchParams: t
359
+ }),
360
+ toOption: xe
361
+ }), Ee = Se(
362
+ Le,
363
+ Oe
364
+ );
365
+ function ze() {
366
+ return Ee();
367
+ }
368
+ function qe({ avatarImage: e, memberId: t, memberName: r, memberEmail: n, isHidden: s, className: l }) {
369
+ const u = { name: r || void 0, email: n || void 0 }, c = !!(r || n), a = c ? oe(u) : null, i = c ? se(ie(u), "75", "55") : void 0;
370
+ return /* @__PURE__ */ E.jsxs(
371
+ "div",
372
+ {
373
+ className: z(
374
+ "relative flex size-6 min-w-6 items-center justify-center overflow-hidden rounded-full md:size-8 md:min-w-8",
375
+ !c && "bg-accent",
376
+ s && "opacity-50",
377
+ l
378
+ ),
379
+ style: c ? { backgroundColor: i } : void 0,
380
+ children: [
381
+ a ? /* @__PURE__ */ E.jsx("span", { className: "text-xs font-semibold text-white md:text-sm", children: a }) : /* @__PURE__ */ E.jsx(le, { className: "size-3! text-muted-foreground md:size-4!", size: 12 }),
382
+ t && e && /* @__PURE__ */ E.jsx("div", { className: "absolute inset-0", children: /* @__PURE__ */ E.jsx("img", { alt: "Member avatar", src: e }) })
383
+ ]
384
+ }
385
+ );
386
+ }
387
+ const j = /* @__PURE__ */ new Map(), F = "ghostVirtualListScrollPosition", V = 150, Re = 500;
388
+ function k() {
389
+ if (!(typeof window > "u"))
390
+ return window.history.state;
391
+ }
392
+ function A(e) {
393
+ const t = e == null ? void 0 : e.key;
394
+ if (typeof t == "string" || typeof t == "number")
395
+ return String(t);
396
+ const r = e == null ? void 0 : e.idx;
397
+ if (typeof r == "number")
398
+ return String(r);
399
+ }
400
+ function $(e, t) {
401
+ const r = A(e);
402
+ if (r)
403
+ return `${r}::${t}`;
404
+ }
405
+ function Ie(e, t) {
406
+ const r = e == null ? void 0 : e[F];
407
+ if (!r || typeof r != "object")
408
+ return;
409
+ const n = r[t];
410
+ if (typeof n == "number")
411
+ return n;
412
+ }
413
+ function Ce(e, t, r) {
414
+ if (typeof window > "u")
415
+ return;
416
+ const n = e == null ? void 0 : e[F], s = {
417
+ ...e ?? {},
418
+ [F]: {
419
+ ...n && typeof n == "object" ? n : {},
420
+ [t]: r
421
+ }
422
+ };
423
+ window.history.replaceState(s, "");
424
+ }
425
+ function Ue({ parentRef: e, enabled: t = !0, isLoading: r = !1 }) {
426
+ const n = ae(), [s, l] = q(null), u = g(null), c = g(0), a = g(0), i = g(0), o = g(null), d = g(/* @__PURE__ */ new Set()), f = n.pathname + n.search;
427
+ B(() => {
428
+ if (!t || !e.current)
429
+ return;
430
+ const m = de(e.current);
431
+ l(m);
432
+ }, [t, e]), B(() => {
433
+ if (!t || !s)
434
+ return;
435
+ const m = k(), y = A(m), P = $(m, f), M = () => {
436
+ o.current !== null && (window.clearTimeout(o.current), o.current = null);
437
+ }, x = (h) => {
438
+ P && j.set(P, h);
439
+ const b = k();
440
+ A(b) === y && Ce(b, f, h), a.current = Date.now(), i.current = h;
441
+ }, w = ({ persistToHistory: h = !0 } = {}) => {
442
+ if (M(), !h) {
443
+ const b = c.current;
444
+ P && j.set(P, b), a.current = Date.now(), i.current = b;
445
+ return;
446
+ }
447
+ x(c.current);
448
+ }, L = () => {
449
+ const h = Date.now();
450
+ if (Math.abs(c.current - i.current) >= Re || h - a.current >= V) {
451
+ M(), x(c.current);
452
+ return;
453
+ }
454
+ o.current === null && (o.current = window.setTimeout(() => {
455
+ o.current = null, x(c.current);
456
+ }, V));
457
+ }, T = () => {
458
+ c.current = s.scrollTop, L();
459
+ }, S = () => {
460
+ w();
461
+ };
462
+ return c.current = s.scrollTop, s.addEventListener("scroll", T), window.addEventListener("pagehide", S), () => {
463
+ w({ persistToHistory: !1 }), s.removeEventListener("scroll", T), window.removeEventListener("pagehide", S);
464
+ };
465
+ }, [t, f, s]), B(() => {
466
+ const m = k(), y = $(m, f), P = (y ? j.get(y) : void 0) ?? Ie(m, f);
467
+ if (!(!t || !s || r)) {
468
+ if (P !== void 0 && u.current !== f) {
469
+ u.current = f;
470
+ let M = 0;
471
+ const x = 20, w = () => {
472
+ for (const S of d.current)
473
+ window.clearTimeout(S);
474
+ d.current.clear();
475
+ }, L = (S, h) => {
476
+ const b = window.setTimeout(() => {
477
+ d.current.delete(b), S();
478
+ }, h);
479
+ d.current.add(b);
480
+ }, T = () => {
481
+ if (M += 1, !s)
482
+ return;
483
+ const S = s.scrollTop, h = s.scrollHeight, b = s.clientHeight, O = h - b;
484
+ if (P > O && M < x) {
485
+ L(T, 100);
486
+ return;
487
+ }
488
+ if (Math.abs(P - S) > 5) {
489
+ const I = Math.min(P, O);
490
+ s.scrollTop = I;
491
+ }
492
+ };
493
+ return L(T, 150), () => w();
494
+ }
495
+ u.current = f;
496
+ }
497
+ }, [t, f, s, r]);
498
+ }
499
+ export {
500
+ je as B,
501
+ qe as M,
502
+ ze as a,
503
+ Fe as b,
504
+ J as c,
505
+ Ae as d,
506
+ Ue as e,
507
+ G as f,
508
+ me as g,
509
+ $e as h,
510
+ ke as i,
511
+ Qe as j,
512
+ Ve as k,
513
+ be as l,
514
+ X as m,
515
+ Ke as u
516
+ };
517
+ //# sourceMappingURL=use-scroll-restoration-CLAUAal3.mjs.map