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
@@ -1,17 +0,0 @@
1
- import { a as e, b as o, c as a } from "./hooks-pVotzebr.mjs";
2
- const t = "PostsResponseType", r = e({
3
- dataType: t,
4
- path: "/posts/"
5
- }), c = a({
6
- dataType: t,
7
- path: (s) => `/posts/${s}/`
8
- }), n = o({
9
- method: "DELETE",
10
- path: (s) => `/posts/${s}/`
11
- });
12
- export {
13
- n as a,
14
- c as g,
15
- r as u
16
- };
17
- //# sourceMappingURL=posts-DI5YQFp4.mjs.map
@@ -1,395 +0,0 @@
1
- import { D as h, j as e, R as g, T as J, n as w, A as K, B as W, Z as S, q as X, e as Y, _ as ee } from "./index-By5yPnMZ.mjs";
2
- import { b as G, P as T, f as se, d as ae, B as b } from "./heading-DXxLDQ96.mjs";
3
- import { c as E, I as te, u as re, R as le } from "./skeleton-Du7JXZ_1.mjs";
4
- import { H as m, u as oe } from "./use-infinite-virtual-scroll-B_NwiBXK.mjs";
5
- import { M as ne } from "./main-layout-CGs25JVH.mjs";
6
- import { T as ie, a as ce, b as P, c as j, d as de, e as f } from "./table-DlaJMBps.mjs";
7
- import { P as ue, T as ge } from "./tags-CLyaNf39.mjs";
8
- import { E as pe } from "./empty-indicator-DTmBQa_3.mjs";
9
- import { L as xe } from "./loading-indicator-CSj2spwS.mjs";
10
- import { d as me } from "./hooks-pVotzebr.mjs";
11
- var $ = "Toggle", C = h((s, t) => {
12
- const { pressed: r, defaultPressed: a, onPressedChange: l, ...o } = s, [n, i] = G({
13
- prop: r,
14
- onChange: l,
15
- defaultProp: a ?? !1,
16
- caller: $
17
- });
18
- return /* @__PURE__ */ e.jsx(
19
- T.button,
20
- {
21
- type: "button",
22
- "aria-pressed": n,
23
- "data-state": n ? "on" : "off",
24
- "data-disabled": s.disabled ? "" : void 0,
25
- ...o,
26
- ref: t,
27
- onClick: se(s.onClick, () => {
28
- s.disabled || i(!n);
29
- })
30
- }
31
- );
32
- });
33
- C.displayName = $;
34
- var M = C, x = "ToggleGroup", [V] = ae(x, [
35
- E
36
- ]), L = E(), _ = g.forwardRef((s, t) => {
37
- const { type: r, ...a } = s;
38
- if (r === "single") {
39
- const l = a;
40
- return /* @__PURE__ */ e.jsx(fe, { ...l, ref: t });
41
- }
42
- if (r === "multiple") {
43
- const l = a;
44
- return /* @__PURE__ */ e.jsx(he, { ...l, ref: t });
45
- }
46
- throw new Error(`Missing prop \`type\` expected on \`${x}\``);
47
- });
48
- _.displayName = x;
49
- var [B, D] = V(x), fe = g.forwardRef((s, t) => {
50
- const {
51
- value: r,
52
- defaultValue: a,
53
- onValueChange: l = () => {
54
- },
55
- ...o
56
- } = s, [n, i] = G({
57
- prop: r,
58
- defaultProp: a ?? "",
59
- onChange: l,
60
- caller: x
61
- });
62
- return /* @__PURE__ */ e.jsx(
63
- B,
64
- {
65
- scope: s.__scopeToggleGroup,
66
- type: "single",
67
- value: g.useMemo(() => n ? [n] : [], [n]),
68
- onItemActivate: i,
69
- onItemDeactivate: g.useCallback(() => i(""), [i]),
70
- children: /* @__PURE__ */ e.jsx(F, { ...o, ref: t })
71
- }
72
- );
73
- }), he = g.forwardRef((s, t) => {
74
- const {
75
- value: r,
76
- defaultValue: a,
77
- onValueChange: l = () => {
78
- },
79
- ...o
80
- } = s, [n, i] = G({
81
- prop: r,
82
- defaultProp: a ?? [],
83
- onChange: l,
84
- caller: x
85
- }), d = g.useCallback(
86
- (u) => i((c = []) => [...c, u]),
87
- [i]
88
- ), p = g.useCallback(
89
- (u) => i((c = []) => c.filter((v) => v !== u)),
90
- [i]
91
- );
92
- return /* @__PURE__ */ e.jsx(
93
- B,
94
- {
95
- scope: s.__scopeToggleGroup,
96
- type: "multiple",
97
- value: n,
98
- onItemActivate: d,
99
- onItemDeactivate: p,
100
- children: /* @__PURE__ */ e.jsx(F, { ...o, ref: t })
101
- }
102
- );
103
- });
104
- _.displayName = x;
105
- var [ve, je] = V(x), F = g.forwardRef(
106
- (s, t) => {
107
- const {
108
- __scopeToggleGroup: r,
109
- disabled: a = !1,
110
- rovingFocus: l = !0,
111
- orientation: o,
112
- dir: n,
113
- loop: i = !0,
114
- ...d
115
- } = s, p = L(r), u = re(n), c = { role: "group", dir: u, ...d };
116
- return /* @__PURE__ */ e.jsx(ve, { scope: r, rovingFocus: l, disabled: a, children: l ? /* @__PURE__ */ e.jsx(
117
- le,
118
- {
119
- asChild: !0,
120
- ...p,
121
- orientation: o,
122
- dir: u,
123
- loop: i,
124
- children: /* @__PURE__ */ e.jsx(T.div, { ...c, ref: t })
125
- }
126
- ) : /* @__PURE__ */ e.jsx(T.div, { ...c, ref: t }) });
127
- }
128
- ), N = "ToggleGroupItem", H = g.forwardRef(
129
- (s, t) => {
130
- const r = D(N, s.__scopeToggleGroup), a = je(N, s.__scopeToggleGroup), l = L(s.__scopeToggleGroup), o = r.value.includes(s.value), n = a.disabled || s.disabled, i = { ...s, pressed: o, disabled: n }, d = g.useRef(null);
131
- return a.rovingFocus ? /* @__PURE__ */ e.jsx(
132
- te,
133
- {
134
- asChild: !0,
135
- ...l,
136
- focusable: !n,
137
- active: o,
138
- ref: d,
139
- children: /* @__PURE__ */ e.jsx(z, { ...i, ref: t })
140
- }
141
- ) : /* @__PURE__ */ e.jsx(z, { ...i, ref: t });
142
- }
143
- );
144
- H.displayName = N;
145
- var z = g.forwardRef(
146
- (s, t) => {
147
- const { __scopeToggleGroup: r, value: a, ...l } = s, o = D(N, r), n = { role: "radio", "aria-checked": s.pressed, "aria-pressed": void 0 }, i = o.type === "single" ? n : void 0;
148
- return /* @__PURE__ */ e.jsx(
149
- C,
150
- {
151
- ...i,
152
- ...l,
153
- ref: t,
154
- onPressedChange: (d) => {
155
- d ? o.onItemActivate(a) : o.onItemDeactivate(a);
156
- }
157
- }
158
- );
159
- }
160
- ), q = _, O = H;
161
- const Q = J(
162
- "inline-flex items-center justify-center gap-2 rounded-xs text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200 hover:text-foreground focus-visible:ring-1 focus-visible:ring-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:hover:bg-background [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 [&_svg]:stroke-[1.5px]",
163
- {
164
- variants: {
165
- variant: {
166
- default: "bg-transparent"
167
- },
168
- size: {
169
- default: "h-[26px] min-w-[26px] px-2",
170
- button: "h-[32px] min-w-[32px] px-3"
171
- }
172
- },
173
- defaultVariants: {
174
- variant: "default",
175
- size: "default"
176
- }
177
- }
178
- ), be = h(({ className: s, variant: t, size: r, ...a }, l) => /* @__PURE__ */ e.jsx(
179
- M,
180
- {
181
- ref: l,
182
- className: w(Q({ variant: t, size: r, className: s })),
183
- ...a
184
- }
185
- ));
186
- be.displayName = M.displayName;
187
- const U = K({
188
- size: "default",
189
- variant: "default"
190
- }), Z = h(({ className: s, variant: t, size: r, children: a, ...l }, o) => /* @__PURE__ */ e.jsx(
191
- q,
192
- {
193
- ref: o,
194
- className: w("inline-flex items-center justify-center gap-0.5 bg-gray-100 p-0.5 rounded-md dark:bg-gray-925/70", s),
195
- ...l,
196
- children: /* @__PURE__ */ e.jsx(U.Provider, { value: { variant: t, size: r }, children: a })
197
- }
198
- ));
199
- Z.displayName = q.displayName;
200
- const y = h(({ className: s, children: t, variant: r, size: a, ...l }, o) => {
201
- const n = W(U);
202
- return /* @__PURE__ */ e.jsx(
203
- O,
204
- {
205
- ref: o,
206
- className: w(
207
- Q({
208
- variant: n.variant || r,
209
- size: n.size || a
210
- }),
211
- s
212
- ),
213
- ...l,
214
- children: t
215
- }
216
- );
217
- });
218
- y.displayName = O.displayName;
219
- const Ne = ({ children: s, className: t, ...r }) => /* @__PURE__ */ e.jsx("section", { className: w("flex gap-6 flex-col p-4 lg:p-8 size-full grow", t), ...r, children: s }), we = ({ currentTab: s }) => /* @__PURE__ */ e.jsxs(m, { variant: "inline-nav", children: [
220
- /* @__PURE__ */ e.jsx(m.Title, { children: "Tags" }),
221
- /* @__PURE__ */ e.jsxs(m.Actions, { children: [
222
- /* @__PURE__ */ e.jsx(m.ActionGroup, { children: /* @__PURE__ */ e.jsxs(Z, { "data-testid": "tags-header-tabs", size: "button", type: "single", value: s, children: [
223
- /* @__PURE__ */ e.jsx(y, { "aria-label": "Public tags", value: "public", asChild: !0, children: /* @__PURE__ */ e.jsx(S, { to: "/tags", children: "Public tags" }) }),
224
- /* @__PURE__ */ e.jsx(y, { "aria-label": "Internal tags", value: "internal", asChild: !0, children: /* @__PURE__ */ e.jsx(S, { to: "/tags?type=internal", children: "Internal tags" }) })
225
- ] }) }),
226
- /* @__PURE__ */ e.jsx(m.ActionGroup, { children: /* @__PURE__ */ e.jsx(b, { asChild: !0, children: /* @__PURE__ */ e.jsx("a", { className: "font-bold", href: "#/tags/new", children: "New tag" }) }) })
227
- ] })
228
- ] }), Te = ({ children: s }) => /* @__PURE__ */ e.jsx(ne, { children: /* @__PURE__ */ e.jsx("div", { className: "grid w-full grow", children: /* @__PURE__ */ e.jsx("div", { className: "flex h-full flex-col", "data-testid": "tags-page", children: s }) }) }), A = ({ height: s }) => /* @__PURE__ */ e.jsx("tr", { "aria-hidden": "true", className: "flex lg:table-row", children: /* @__PURE__ */ e.jsx("td", { className: "flex lg:table-cell", style: { height: s } }) }), Pe = h(function(t, r) {
229
- return /* @__PURE__ */ e.jsx(
230
- P,
231
- {
232
- ref: r,
233
- ...t,
234
- "aria-hidden": "true",
235
- className: "relative flex flex-col lg:table-row",
236
- children: /* @__PURE__ */ e.jsx(f, { className: "relative z-10 h-24 animate-pulse", children: /* @__PURE__ */ e.jsx("div", { className: "h-full rounded-md bg-muted", "data-testid": "loading-placeholder" }) })
237
- }
238
- );
239
- });
240
- function ye({
241
- items: s,
242
- totalItems: t,
243
- hasNextPage: r,
244
- isFetchingNextPage: a,
245
- fetchNextPage: l
246
- }) {
247
- const o = X(null), { visibleItems: n, spaceBefore: i, spaceAfter: d } = oe({
248
- items: s,
249
- totalItems: t,
250
- hasNextPage: r,
251
- isFetchingNextPage: a,
252
- fetchNextPage: l,
253
- parentRef: o
254
- });
255
- return /* @__PURE__ */ e.jsx("div", { ref: o, className: "overflow-hidden", children: /* @__PURE__ */ e.jsxs(
256
- ie,
257
- {
258
- className: "flex table-fixed flex-col lg:table",
259
- "data-testid": "tags-list",
260
- children: [
261
- /* @__PURE__ */ e.jsx(ce, { className: "hidden lg:visible! lg:table-header-group!", children: /* @__PURE__ */ e.jsxs(P, { children: [
262
- /* @__PURE__ */ e.jsx(j, { className: "w-auto px-4", children: "Tag" }),
263
- /* @__PURE__ */ e.jsx(j, { className: "w-1/5 px-4", children: "Slug" }),
264
- /* @__PURE__ */ e.jsx(j, { className: "w-1/5 px-4", children: "No. of posts" }),
265
- /* @__PURE__ */ e.jsx(j, { className: "w-20 px-4" })
266
- ] }) }),
267
- /* @__PURE__ */ e.jsxs(de, { className: "flex flex-col lg:table-row-group", children: [
268
- /* @__PURE__ */ e.jsx(A, { height: i }),
269
- n.map(({ key: p, virtualItem: u, item: c, props: v }) => {
270
- var I, R, k;
271
- return u.index > s.length - 1 ? /* @__PURE__ */ e.jsx(Pe, { ...v }, p) : /* @__PURE__ */ e.jsxs(
272
- P,
273
- {
274
- ...v,
275
- className: "grid w-full grid-cols-[1fr_5rem] items-center gap-x-4 p-2 hover:bg-muted/50 md:grid-cols-[1fr_auto_5rem] lg:table-row lg:p-0 [&.group:hover_td]:bg-transparent",
276
- "data-testid": "tag-list-row",
277
- children: [
278
- /* @__PURE__ */ e.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: [
279
- /* @__PURE__ */ e.jsx(
280
- "a",
281
- {
282
- className: "before:absolute before:top-0 before:left-0 before:z-10 before:h-full before:w-[100vw]",
283
- href: `#/tags/${c.slug}`,
284
- children: /* @__PURE__ */ e.jsx("span", { className: "block truncate pb-1 text-lg font-medium", children: c.name })
285
- }
286
- ),
287
- /* @__PURE__ */ e.jsx("span", { className: "block truncate text-muted-foreground", children: c.description })
288
- ] }),
289
- /* @__PURE__ */ e.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: /* @__PURE__ */ e.jsx("span", { className: "block truncate", children: c.slug }) }),
290
- /* @__PURE__ */ e.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: (I = c.count) != null && I.posts ? /* @__PURE__ */ e.jsx(
291
- "a",
292
- {
293
- className: "relative z-10 -m-4 inline-block p-4 hover:underline",
294
- href: `#/posts?tag=${c.slug}`,
295
- children: `${Y((R = c.count) == null ? void 0 : R.posts)} ${((k = c.count) == null ? void 0 : k.posts) === 1 ? "post" : "posts"}`
296
- }
297
- ) : /* @__PURE__ */ e.jsx("span", { className: "text-muted-foreground", children: "0 posts" }) }),
298
- /* @__PURE__ */ e.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: /* @__PURE__ */ e.jsx(
299
- b,
300
- {
301
- "aria-hidden": "true",
302
- className: "w-12",
303
- size: "icon",
304
- tabIndex: -1,
305
- variant: "outline",
306
- children: /* @__PURE__ */ e.jsx(ue, {})
307
- }
308
- ) })
309
- ]
310
- },
311
- p
312
- );
313
- }),
314
- /* @__PURE__ */ e.jsx(A, { height: d })
315
- ] })
316
- ]
317
- }
318
- ) });
319
- }
320
- const Ge = "TagsResponseType", Ce = me({
321
- dataType: Ge,
322
- path: "/tags/",
323
- defaultNextPageParams: (s, t) => {
324
- var r, a;
325
- return (r = s.meta) != null && r.pagination.next ? {
326
- ...t,
327
- page: (((a = s.meta) == null ? void 0 : a.pagination.next) || 1).toString()
328
- } : void 0;
329
- },
330
- returnData: (s) => {
331
- const { pages: t } = s, r = t.flatMap((l) => l.tags), a = t[t.length - 1].meta;
332
- return {
333
- tags: r,
334
- meta: a,
335
- isEnd: a ? a.pagination.pages === a.pagination.page : !0
336
- };
337
- }
338
- }), _e = ({
339
- filter: s,
340
- ...t
341
- }) => {
342
- const r = Object.entries(s).map(([a, l]) => `${a}:${l}`).join(",");
343
- return Ce({
344
- ...t,
345
- searchParams: {
346
- limit: "100",
347
- order: "name asc",
348
- include: "count.posts",
349
- filter: r,
350
- ...t.searchParams
351
- }
352
- });
353
- }, Be = () => {
354
- var p, u;
355
- const { search: s } = ee(), r = new URLSearchParams(s).get("type") ?? "public", {
356
- data: a,
357
- isError: l,
358
- isLoading: o,
359
- isFetchingNextPage: n,
360
- fetchNextPage: i,
361
- hasNextPage: d
362
- } = _e({
363
- filter: {
364
- visibility: r
365
- }
366
- });
367
- return /* @__PURE__ */ e.jsxs(Te, { children: [
368
- /* @__PURE__ */ e.jsx(we, { currentTab: r }),
369
- /* @__PURE__ */ e.jsx(Ne, { children: o ? /* @__PURE__ */ e.jsx("div", { className: "flex h-full items-center justify-center", children: /* @__PURE__ */ e.jsx(xe, { size: "lg" }) }) : l ? /* @__PURE__ */ e.jsxs("div", { className: "mb-16 flex h-full flex-col items-center justify-center", children: [
370
- /* @__PURE__ */ e.jsx("h2", { className: "mb-2 text-xl font-medium", children: "Error loading tags" }),
371
- /* @__PURE__ */ e.jsx("p", { className: "mb-4 text-muted-foreground", children: "Please reload the page to try again" }),
372
- /* @__PURE__ */ e.jsx(b, { onClick: () => window.location.reload(), children: "Reload page" })
373
- ] }) : a != null && a.tags.length ? /* @__PURE__ */ e.jsx(
374
- ye,
375
- {
376
- fetchNextPage: i,
377
- hasNextPage: d,
378
- isFetchingNextPage: n,
379
- items: (a == null ? void 0 : a.tags) ?? [],
380
- totalItems: ((u = (p = a == null ? void 0 : a.meta) == null ? void 0 : p.pagination) == null ? void 0 : u.total) ?? 0
381
- }
382
- ) : /* @__PURE__ */ e.jsx("div", { className: "flex h-full items-center justify-center", children: /* @__PURE__ */ e.jsx(
383
- pe,
384
- {
385
- actions: /* @__PURE__ */ e.jsx(b, { asChild: !0, children: /* @__PURE__ */ e.jsx("a", { href: "#/tags/new", children: "Create a new tag" }) }),
386
- title: "Start organizing your content",
387
- children: /* @__PURE__ */ e.jsx(ge, {})
388
- }
389
- ) }) })
390
- ] });
391
- };
392
- export {
393
- Be as default
394
- };
395
- //# sourceMappingURL=tags-CjwolIiT.mjs.map
@@ -1,232 +0,0 @@
1
- import { j as v, n as z, T as W, q as d, u as H, o as _, b as k, a as q, L as U, M as $, K as V, _ as K } from "./index-By5yPnMZ.mjs";
2
- import { d as G, c as J, b as C, a as X } from "./hooks-pVotzebr.mjs";
3
- import { U as Y } from "./dropdown-menu-BKZfsAPJ.mjs";
4
- import { g as Z } from "./use-infinite-virtual-scroll-B_NwiBXK.mjs";
5
- const ee = W(
6
- "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",
7
- {
8
- variants: {
9
- variant: {
10
- default: "border-transparent bg-primary text-primary-foreground",
11
- secondary: "border-transparent bg-secondary text-secondary-foreground/70",
12
- destructive: "border-transparent bg-destructive/20 text-destructive",
13
- success: "border-transparent bg-green/20 text-green",
14
- outline: "text-foreground"
15
- }
16
- },
17
- defaultVariants: {
18
- variant: "default"
19
- }
20
- }
21
- );
22
- function ce({ className: e, variant: r, ...n }) {
23
- return /* @__PURE__ */ v.jsx("div", { className: z(ee({ variant: r }), e), ...n });
24
- }
25
- const M = "MembersResponseType", ie = X({
26
- dataType: M,
27
- path: "/members/"
28
- }), ue = J({
29
- dataType: M,
30
- path: (e) => `/members/${e}/`
31
- }), le = C({
32
- method: "POST",
33
- path: ({ id: e }) => `/members/${e}/commenting/disable`,
34
- body: ({ reason: e, hideComments: r }) => ({
35
- reason: e,
36
- hide_comments: r
37
- }),
38
- invalidateQueries: {
39
- dataType: "CommentsResponseType"
40
- }
41
- }), me = C({
42
- method: "POST",
43
- path: ({ id: e }) => `/members/${e}/commenting/enable`,
44
- body: () => ({}),
45
- invalidateQueries: {
46
- dataType: "CommentsResponseType"
47
- }
48
- }), de = G({
49
- dataType: M,
50
- path: "/members/",
51
- defaultSearchParams: {
52
- include: "labels,tiers",
53
- limit: "50",
54
- order: "created_at desc"
55
- },
56
- defaultNextPageParams: (e, r) => {
57
- var n;
58
- if ((n = e.meta) != null && n.pagination.next)
59
- return {
60
- ...r,
61
- page: e.meta.pagination.next.toString()
62
- };
63
- },
64
- returnData: (e) => {
65
- const { pages: r } = e, n = r.flatMap((s) => s.members), t = r[r.length - 1].meta;
66
- return {
67
- members: n,
68
- meta: t,
69
- isEnd: t ? t.pagination.pages === t.pagination.page : !0
70
- };
71
- }
72
- });
73
- function I({ filter: e, search: r, all: n }) {
74
- if (!n && !e && !r)
75
- throw new Error("Bulk operation requires a filter, search, or all flag");
76
- const t = {};
77
- return n && (t.all = "true"), e && (t.filter = e), r && (t.search = r), t;
78
- }
79
- const fe = C({
80
- method: "PUT",
81
- path: () => "/members/bulk/",
82
- body: ({ action: e }) => ({
83
- bulk: {
84
- action: e.type,
85
- meta: e.meta || {},
86
- newsletter: e.newsletter
87
- }
88
- }),
89
- searchParams: I,
90
- invalidateQueries: { dataType: M }
91
- }), pe = C({
92
- method: "DELETE",
93
- path: () => "/members/",
94
- searchParams: I,
95
- invalidateQueries: { dataType: M }
96
- });
97
- function re(e, r, n, t) {
98
- var s = this, i = d(null), u = d(0), o = d(0), a = d(null), l = d([]), p = d(), f = d(), T = d(e), g = d(!0);
99
- T.current = e;
100
- var x = typeof window < "u", b = !r && r !== 0 && x;
101
- if (typeof e != "function") throw new TypeError("Expected a function");
102
- r = +r || 0;
103
- var h = !!(n = n || {}).leading, w = !("trailing" in n) || !!n.trailing, y = "maxWait" in n, Q = "debounceOnServer" in n && !!n.debounceOnServer, j = y ? Math.max(+n.maxWait || 0, r) : null;
104
- k(function() {
105
- return g.current = !0, function() {
106
- g.current = !1;
107
- };
108
- }, []);
109
- var F = q(function() {
110
- var B = function(c) {
111
- var m = l.current, E = p.current;
112
- return l.current = p.current = null, u.current = c, o.current = o.current || c, f.current = T.current.apply(E, m);
113
- }, P = function(c, m) {
114
- b && cancelAnimationFrame(a.current), a.current = b ? requestAnimationFrame(c) : setTimeout(c, m);
115
- }, A = function(c) {
116
- if (!g.current) return !1;
117
- var m = c - i.current;
118
- return !i.current || m >= r || m < 0 || y && c - u.current >= j;
119
- }, N = function(c) {
120
- return a.current = null, w && l.current ? B(c) : (l.current = p.current = null, f.current);
121
- }, D = function c() {
122
- var m = Date.now();
123
- if (h && o.current === u.current && L(), A(m)) return N(m);
124
- if (g.current) {
125
- var E = r - (m - i.current), O = y ? Math.min(E, j - (m - u.current)) : E;
126
- P(c, O);
127
- }
128
- }, L = function() {
129
- t && t({});
130
- }, S = function() {
131
- if (x || Q) {
132
- var c = Date.now(), m = A(c);
133
- if (l.current = [].slice.call(arguments), p.current = s, i.current = c, m) {
134
- if (!a.current && g.current) return u.current = i.current, P(D, r), h ? B(i.current) : f.current;
135
- if (y) return P(D, r), B(i.current);
136
- }
137
- return a.current || P(D, r), f.current;
138
- }
139
- };
140
- return S.cancel = function() {
141
- var c = a.current;
142
- c && (b ? cancelAnimationFrame(a.current) : clearTimeout(a.current)), u.current = 0, l.current = i.current = p.current = a.current = null, c && t && t({});
143
- }, S.isPending = function() {
144
- return !!a.current;
145
- }, S.flush = function() {
146
- return a.current ? N(Date.now()) : f.current;
147
- }, S;
148
- }, [h, y, r, j, w, b, x, Q, t]);
149
- return F;
150
- }
151
- function te(e, r) {
152
- return e === r;
153
- }
154
- function ge(e, r, n) {
155
- var t = te, s = d(e), i = H({})[1], u = re(_(function(a) {
156
- s.current = a, i({});
157
- }, [i]), r, n, i), o = d(e);
158
- return t(o.current, e) || (u(e), o.current = e), [s.current, u];
159
- }
160
- function be({ avatarImage: e, memberId: r, memberName: n, memberEmail: t, isHidden: s, className: i }) {
161
- const u = { name: n || void 0, email: t || void 0 }, o = !!(n || t), a = o ? U(u) : null, l = o ? $(V(u), "75", "55") : void 0;
162
- return /* @__PURE__ */ v.jsxs(
163
- "div",
164
- {
165
- className: z(
166
- "relative flex size-6 min-w-6 items-center justify-center overflow-hidden rounded-full md:size-8 md:min-w-8",
167
- !o && "bg-accent",
168
- s && "opacity-50",
169
- i
170
- ),
171
- style: o ? { backgroundColor: l } : void 0,
172
- children: [
173
- a ? /* @__PURE__ */ v.jsx("span", { className: "text-xs font-semibold text-white md:text-sm", children: a }) : /* @__PURE__ */ v.jsx(Y, { className: "size-3! text-muted-foreground md:size-4!", size: 12 }),
174
- r && e && /* @__PURE__ */ v.jsx("div", { className: "absolute inset-0", children: /* @__PURE__ */ v.jsx("img", { alt: "Member avatar", src: e }) })
175
- ]
176
- }
177
- );
178
- }
179
- const R = /* @__PURE__ */ new Map();
180
- function he({ parentRef: e, enabled: r = !0, isLoading: n = !1 }) {
181
- const t = K(), [s, i] = H(null), u = d(null);
182
- k(() => {
183
- if (!r || !e.current)
184
- return;
185
- const o = Z(e.current);
186
- i(o);
187
- }, [r, e]), k(() => {
188
- if (!r || !s)
189
- return;
190
- const o = t.pathname + t.search, a = () => {
191
- const l = s.scrollTop;
192
- R.set(o, l);
193
- };
194
- return s.addEventListener("scroll", a), () => s.removeEventListener("scroll", a);
195
- }, [r, t.pathname, t.search, s]), k(() => {
196
- const o = t.pathname + t.search, a = R.get(o);
197
- if (!(!r || !s || n)) {
198
- if (a !== void 0 && u.current !== o) {
199
- let l = 0;
200
- const p = 3, f = () => {
201
- if (l += 1, !s)
202
- return;
203
- const g = s.scrollTop, x = s.scrollHeight, b = s.clientHeight, h = x - b;
204
- if (a > h && l < p) {
205
- setTimeout(f, 100);
206
- return;
207
- }
208
- if (Math.abs(a - g) > 5) {
209
- const w = Math.min(a, h);
210
- s.scrollTop = w;
211
- }
212
- }, T = setTimeout(f, 150);
213
- return () => clearTimeout(T);
214
- }
215
- u.current = o;
216
- }
217
- }, [r, t.pathname, t.search, s, n]);
218
- }
219
- export {
220
- ce as B,
221
- be as M,
222
- ge as a,
223
- le as b,
224
- me as c,
225
- he as d,
226
- fe as e,
227
- pe as f,
228
- ue as g,
229
- de as h,
230
- ie as u
231
- };
232
- //# sourceMappingURL=use-scroll-restoration-YSR5jwQl.mjs.map
@@ -1 +0,0 @@
1
- import{ad as e,ae as o,af as a}from"./index-ZuWSQ3L6.js";const t="PostsResponseType",r=e({dataType:t,path:"/posts/"}),c=a({dataType:t,path:s=>`/posts/${s}/`}),n=e({dataType:t,path:"/posts/export/"}),u=o({method:"DELETE",path:s=>`/posts/${s}/`});export{u as a,n as b,c as g,r as u};
@@ -1 +0,0 @@
1
- import{b$ as v,cE as g,cI as j,r as w,j as s,cJ as u,aX as y,aM as k,c0 as Y,bb as N,a$ as p,am as M,z as D,aY as S}from"./index-ZuWSQ3L6.js";import{S as C,a as L,b as A,c as V,d as z,e as E,f as I}from"./select-Bd1zcqox.js";import{a as O}from"./loader-circle-CF5G2g_Z.js";import{f as G,N as R,k as W,P as $,g as f}from"./pagemenu-BqoDENpI.js";import{G as P}from"./wallet-cards-zHR_y6Sp.js";import{M as _}from"./user-plus-DMl69yKl.js";import{S as B}from"./sprout-Bf-wc2Vo.js";import{j as T}from"./lucide-react-DZiAu6PQ.js";const ue=({excludeRanges:e=[]})=>{const{range:t,setRange:a}=v(),n=e.map(r=>g[r].value),l=j.filter(r=>!n.includes(r.value));return w.useEffect(()=>{if(n.includes(t)&&l.length>0){const r=l.find(i=>i.value===g.last7Days.value),c=r?r.value:l[0].value;a(c)}},[t,n,l,a]),s.jsxs(C,{value:`${t}`,onValueChange:r=>{a(Number(r))},children:[s.jsxs(L,{className:"w-auto",children:[s.jsx(O,{className:"mr-2",size:16,strokeWidth:1.5}),s.jsx(A,{placeholder:"Select a period"})]}),s.jsx(V,{align:"end",children:s.jsxs(z,{children:[s.jsx(E,{children:"Period"}),l.map(r=>s.jsx(I,{value:`${r.value}`,children:r.name},r.value))]})})]})},me=e=>{const t=j.find(a=>a.value===e);return t?["Last 7 days","Last 30 days","Last 90 days","Last 12 months"].includes(t.name)?`in the ${t.name.toLowerCase()}`:t.name==="All time"?"(all time)":t.name.toLowerCase():""};function he(e){const t=e.findIndex(a=>Number(a.value)>0);return t>1?e.slice(t-1):e}function U(e,t){return u(t).diff(u(e),"days")}function F(e,t){return u(e).isSame(u(t),"month")}function H(e,t){return u(e).isSame(u(t),"week")}function x(e,t,a,n){switch(n){case"sum":return e;case"avg":return t>0?e/t:0;case"exact":return a}}function J(e){const t=[...e].sort((r,c)=>r-c),a=t[Math.floor(t.length/2)],n=e.map(r=>Math.abs(r-a)),l=n.sort((r,c)=>r-c)[Math.floor(n.length/2)];return{threshold:a+5*l,average:a}}function X(e,t,a,n){return n||(e===-1&&(t>150?e=400:t>60&&(e=100)),a==="exact"&&(e>356||e===-1&&t>150)?"monthly":e>=91&&e<=356||e===-1&&t>60&&t<=150?"weekly":e>356||e===-1&&t>150?"monthly":"none")}function q(e,t){if(e.length<=1)return e;const a=e.map(r=>Number(r[t])),{threshold:n,average:l}=J(a);return e.map(r=>{const c=Number(r[t]);return{...r,_isOutlier:c>n||c>l*10}})}function K(e,t,a){const n=[];let l=u(e[0].date).startOf("week"),r=0,c=0,i=0;return e.forEach((o,m)=>{const h=u(o.date);H(h.format("YYYY-MM-DD"),l.format("YYYY-MM-DD"))?(r+=Number(o[t]),c+=1,i=Number(o[t])):(n.push({...e[m-1],date:l.format("YYYY-MM-DD"),[t]:x(r,c,i,a)}),l=h.startOf("week"),r=Number(o[t]),c=1,i=Number(o[t])),m===e.length-1&&n.push({...o,date:l.format("YYYY-MM-DD"),[t]:x(r,c,i,a)})}),n}function Q(e,t,a){const n=[];let l=u(e[0].date).startOf("month"),r=0,c=0,i=0,o=null;return e.forEach((m,h)=>{const b=u(m.date),d=Number(m[t]);F(b.format("YYYY-MM-DD"),l.format("YYYY-MM-DD"))?(r+=d,c+=1,i=d,o=m):(a==="exact"&&o?n.push({...o,[t]:i}):n.push({...e[h-1],date:l.format("YYYY-MM-DD"),[t]:x(r,c,i,a)}),l=b.startOf("month"),r=d,c=1,i=d,o=m),h===e.length-1&&(a==="exact"&&o?n.push({...o,[t]:i}):n.push({...m,date:l.format("YYYY-MM-DD"),[t]:x(r,c,i,a)}))}),n}const de=(e,t,a="value",n="avg",l)=>{if(!e.length)return[];const r=e.length>1?U(e[0].date,e[e.length-1].date):0,c=X(t,r,n,l);let i;switch(c){case"weekly":i=K(e,a,n);break;case"monthly":i=Q(e,a,n);break;default:i=e}return q(i,a)},fe=({children:e})=>{const t=y(),a=k(),{appSettings:n}=Y(),{site:l,statsConfig:r}=v(),{activeVisitors:c,isLoading:i}=G({statsConfig:r,enabled:n?.analytics?.webAnalytics??!1}),o=a.pathname.endsWith("/")?a.pathname:`${a.pathname}/`;return s.jsxs(s.Fragment,{children:[s.jsx("header",{className:"z-40 -mx-8 bg-white/70 backdrop-blur-md dark:bg-black",children:s.jsxs("div",{className:"relative flex w-full items-center justify-between gap-5 px-8 pt-8 pb-0","data-header":"header",children:[s.jsx(N,{className:"-ml-px min-h-[35px] max-w-[920px] indent-0 leading-[1.2em]","data-header":"header-title",children:"Analytics"}),n?.analytics.webAnalytics&&s.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[l?.url&&s.jsxs("div",{className:"hidden items-center gap-1.5 sm:visible! sm:flex!",children:[s.jsx(p,{className:"text-muted-foreground",size:16,strokeWidth:1.5}),s.jsx("a",{className:"text-sm font-medium transition-all hover:opacity-75 dark:text-gray-100",href:l.url,rel:"noopener noreferrer",target:"_blank",title:`Visit ${new URL(l.url).hostname}`,children:new URL(l.url).hostname}),s.jsx("span",{className:"text-border",children:"|"})]}),s.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",title:"Active visitors in the last 5 minutes · Updates every 60 seconds",children:[s.jsxs("span",{className:"text-sm",children:[i?"":M(c)," online"]}),s.jsx("div",{className:`size-2 rounded-full ${i?"animate-pulse bg-muted":c?"bg-green-500":"border border-muted-foreground"}`})]})]})]})}),s.jsxs(R,{className:"sticky top-0 z-40 transform-gpu flex-col items-start gap-y-0 border-none bg-white/70 pt-9 pb-6 backdrop-blur-md lg:flex-row lg:items-center dark:bg-black",children:[s.jsx(W,{children:s.jsxs($,{defaultValue:o,responsive:!0,children:[s.jsxs(f,{value:"/analytics/",onClick:()=>{t("/analytics/")},children:[s.jsx(P,{}),"Overview"]}),n?.analytics.webAnalytics&&s.jsxs(f,{value:"/analytics/web/",onClick:()=>{t("/analytics/web/")},children:[s.jsx(p,{}),"Web traffic"]}),n?.newslettersEnabled&&s.jsxs(f,{value:"/analytics/newsletters/",onClick:()=>{t("/analytics/newsletters/")},children:[s.jsx(_,{}),"Newsletters"]}),s.jsxs(f,{value:"/analytics/growth/",onClick:()=>{t("/analytics/growth/")},children:[s.jsx(B,{}),"Growth"]})]})}),e]})]})},Z=({children:e,...t})=>s.jsx("div",{className:"size-full",children:s.jsx("div",{className:"relative size-full",...t,children:s.jsx("div",{className:"mx-auto flex size-full max-w-page flex-col",children:e})})}),xe=({children:e})=>s.jsx(Z,{children:s.jsx("div",{className:"grid w-full grow",children:s.jsx("div",{className:"flex h-full flex-col px-8",children:e})})}),ee=()=>s.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-4 text-gray-700",children:[s.jsx("div",{className:"-mt-10 flex size-18 items-center justify-center rounded-full bg-gray-100 dark:bg-gray-950",children:s.jsx(T,{size:24,strokeWidth:1.5})}),"No stats available for this filter."]}),te=({children:e,className:t,...a})=>s.jsx("section",{className:D("flex grow flex-col items-stretch gap-6 w-full pb-8",t),...a,children:e}),be=({isLoading:e,data:t,children:a,loadingComponent:n=s.jsx(S,{}),emptyComponent:l=s.jsx(ee,{})})=>s.jsx(te,{children:e?n:t!==void 0&&t&&t.length===0?l:a});export{ue as D,xe as S,fe as a,be as b,X as d,me as g,de as s,he as t};
@@ -1 +0,0 @@
1
- import{j as e,z as T,G as j,B as g,r as N,am as y,ag as P,aM as R,e as I}from"./index-ZuWSQ3L6.js";import{T as z,a as b}from"./toggle-group-CR-Z-bJL.js";import{H as o,u as C}from"./use-infinite-virtual-scroll-CNqGwgHd.js";import{M as L}from"./main-layout-DEVUkqt_.js";import{a as E,b as S,c as m,d,e as $,f as i}from"./table-B4zlzEDP.js";import{P as B,T as _}from"./tags-CsgMtkFL.js";import{E as k}from"./empty-indicator-Bf4Dqk72.js";const A=({children:a,className:s,...t})=>e.jsx("section",{className:T("flex gap-6 flex-col p-4 lg:p-8 size-full grow",s),...t,children:a}),G=({currentTab:a})=>e.jsxs(o,{variant:"inline-nav",children:[e.jsx(o.Title,{children:"Tags"}),e.jsxs(o.Actions,{children:[e.jsx(o.ActionGroup,{children:e.jsxs(z,{"data-testid":"tags-header-tabs",size:"button",type:"single",value:a,children:[e.jsx(b,{"aria-label":"Public tags",value:"public",asChild:!0,children:e.jsx(j,{to:"/tags",children:"Public tags"})}),e.jsx(b,{"aria-label":"Internal tags",value:"internal",asChild:!0,children:e.jsx(j,{to:"/tags?type=internal",children:"Internal tags"})})]})}),e.jsx(o.ActionGroup,{children:e.jsx(g,{asChild:!0,children:e.jsx("a",{className:"font-bold",href:"#/tags/new",children:"New tag"})})})]})]}),H=({children:a})=>e.jsx(L,{children:e.jsx("div",{className:"grid w-full grow",children:e.jsx("div",{className:"flex h-full flex-col","data-testid":"tags-page",children:a})})}),w=({height:a})=>e.jsx("tr",{"aria-hidden":"true",className:"flex lg:table-row",children:e.jsx("td",{className:"flex lg:table-cell",style:{height:a}})}),M=N.forwardRef(function(s,t){return e.jsx(m,{ref:t,...s,"aria-hidden":"true",className:"relative flex flex-col lg:table-row",children:e.jsx(i,{className:"relative z-10 h-24 animate-pulse",children:e.jsx("div",{className:"h-full rounded-md bg-muted","data-testid":"loading-placeholder"})})})});function q({items:a,totalItems:s,hasNextPage:t,isFetchingNextPage:l,fetchNextPage:n}){const c=N.useRef(null),{visibleItems:x,spaceBefore:u,spaceAfter:h}=C({items:a,totalItems:s,hasNextPage:t,isFetchingNextPage:l,fetchNextPage:n,parentRef:c});return e.jsx("div",{ref:c,className:"overflow-hidden",children:e.jsxs(E,{className:"flex table-fixed flex-col lg:table","data-testid":"tags-list",children:[e.jsx(S,{className:"hidden lg:visible! lg:table-header-group!",children:e.jsxs(m,{children:[e.jsx(d,{className:"w-auto px-4",children:"Tag"}),e.jsx(d,{className:"w-1/5 px-4",children:"Slug"}),e.jsx(d,{className:"w-1/5 px-4",children:"No. of posts"}),e.jsx(d,{className:"w-20 px-4"})]})}),e.jsxs($,{className:"flex flex-col lg:table-row-group",children:[e.jsx(w,{height:u}),x.map(({key:p,virtualItem:v,item:r,props:f})=>v.index>a.length-1?e.jsx(M,{...f},p):e.jsxs(m,{...f,className:"grid w-full grid-cols-[1fr_5rem] items-center gap-x-4 p-2 hover:bg-muted/50 md:grid-cols-[1fr_auto_5rem] lg:table-row lg:p-0 [&.group:hover_td]:bg-transparent","data-testid":"tag-list-row",children:[e.jsxs(i,{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:[e.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:e.jsx("span",{className:"block truncate pb-1 text-lg font-medium",children:r.name})}),e.jsx("span",{className:"block truncate text-muted-foreground",children:r.description})]}),e.jsx(i,{className:"col-start-1 col-end-1 row-start-2 row-end-2 flex p-0 lg:table-cell lg:p-4",children:e.jsx("span",{className:"block truncate",children:r.slug})}),e.jsx(i,{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?e.jsx("a",{className:"relative z-10 -m-4 inline-block p-4 hover:underline",href:`#/posts?tag=${r.slug}`,children:`${y(r.count?.posts)} ${r.count?.posts===1?"post":"posts"}`}):e.jsx("span",{className:"text-muted-foreground",children:"0 posts"})}),e.jsx(i,{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:e.jsx(g,{"aria-hidden":"true",className:"w-12",size:"icon",tabIndex:-1,variant:"outline",children:e.jsx(B,{})})})]},p)),e.jsx(w,{height:h})]})]})})}const Q="TagsResponseType",D=P({dataType:Q,path:"/tags/",defaultNextPageParams:(a,s)=>{var t,l;return(t=a.meta)!=null&&t.pagination.next?{...s,page:(((l=a.meta)==null?void 0:l.pagination.next)||1).toString()}:void 0},returnData:a=>{const{pages:s}=a,t=s.flatMap(n=>n.tags),l=s[s.length-1].meta;return{tags:t,meta:l,isEnd:l?l.pagination.pages===l.pagination.page:!0}}}),F=({filter:a,...s})=>{const t=Object.entries(a).map(([l,n])=>`${l}:${n}`).join(",");return D({...s,searchParams:{limit:"100",order:"name asc",include:"count.posts",filter:t,...s.searchParams}})},Z=()=>{const{search:a}=R(),t=new URLSearchParams(a).get("type")??"public",{data:l,isError:n,isLoading:c,isFetchingNextPage:x,fetchNextPage:u,hasNextPage:h}=F({filter:{visibility:t}});return e.jsxs(H,{children:[e.jsx(G,{currentTab:t}),e.jsx(A,{children:c?e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsx(I,{size:"lg"})}):n?e.jsxs("div",{className:"mb-16 flex h-full flex-col items-center justify-center",children:[e.jsx("h2",{className:"mb-2 text-xl font-medium",children:"Error loading tags"}),e.jsx("p",{className:"mb-4 text-muted-foreground",children:"Please reload the page to try again"}),e.jsx(g,{onClick:()=>window.location.reload(),children:"Reload page"})]}):l?.tags.length?e.jsx(q,{fetchNextPage:u,hasNextPage:h,isFetchingNextPage:x,items:l?.tags??[],totalItems:l?.meta?.pagination?.total??0}):e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsx(k,{actions:e.jsx(g,{asChild:!0,children:e.jsx("a",{href:"#/tags/new",children:"Create a new tag"})}),title:"Start organizing your content",children:e.jsx(_,{})})})})]})};export{Z as default};