ghost 6.37.1 → 6.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/components/tryghost-i18n-0.0.0.tgz +0 -0
  2. package/core/boot.js +13 -9
  3. package/core/bridge.js +10 -6
  4. package/core/built/admin/assets/{PolarAngleAxis-Cavik65s.js → PolarAngleAxis-CB-FJBDa.js} +1 -1
  5. package/core/built/admin/assets/{_baseAssignValue-CnqN6ZMT.js → _baseAssignValue-BEAjPAfy.js} +1 -1
  6. package/core/built/admin/assets/{a-large-small-Wi4LtZX-.js → a-large-small-L1BJa6mG.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-Cf8T5Jfd.mjs → code-editor-view-bOZzJ3a1.mjs} +2 -2
  9. package/core/built/admin/assets/admin-x-settings/{index-BMWEh-vR.mjs → index-BRuMxaCz.mjs} +2 -2
  10. package/core/built/admin/assets/admin-x-settings/{index-Aj-hFSnY.mjs → index-CTAQj489.mjs} +5 -5
  11. package/core/built/admin/assets/admin-x-settings/{index-DjBJrXYn.mjs → index-WoKKBOe4.mjs} +2 -2
  12. package/core/built/admin/assets/admin-x-settings/{modals-8WpWZZdI.mjs → modals-BQ5M-RTA.mjs} +3 -3
  13. package/core/built/admin/assets/{arrow-right-BiAOKOto.js → arrow-right-B2j-ecEK.js} +1 -1
  14. package/core/built/admin/assets/{at-sign-z5gBMxDW.js → at-sign-CtAw8_lw.js} +1 -1
  15. package/core/built/admin/assets/{audience-DxNilLIv.js → audience-CvSOqHuo.js} +1 -1
  16. package/core/built/admin/assets/automations-BVUNuVOh.js +1 -0
  17. package/core/built/admin/assets/automations-Bi9RJq5E.js +1 -0
  18. package/core/built/admin/assets/{avatar-flipboard-5OzseZFV.js → avatar-flipboard-DocLTXLh.js} +1 -1
  19. package/core/built/admin/assets/{bluesky-sharing-D9YcSpW8.js → bluesky-sharing-DafX2lE1.js} +1 -1
  20. package/core/built/admin/assets/chart-BRQeD9eh.js +67 -0
  21. package/core/built/admin/assets/{chevron-up-DVt6fhV3.js → chevron-up-v4_QwmnL.js} +1 -1
  22. package/core/built/admin/assets/{chunk.524.fcd26ef812d73e2b0620.js → chunk.524.c3d844070c24d7984fd7.js} +4 -4
  23. package/core/built/admin/assets/{chunk.582.b61ffaad1c2fa4aba820.js → chunk.582.0e0ede1eac12926acceb.js} +6 -6
  24. package/core/built/admin/assets/{chunk.383.adb5a3fe32b6b98c43ff.js → chunk.995.4b32363ab39da3e7f5d7.js} +3 -3
  25. package/core/built/admin/assets/circle-alert-Dbz54fYb.js +1 -0
  26. package/core/built/admin/assets/{code-editor-view-CbQIqTrK.js → code-editor-view-D-pYCcdu.js} +1 -1
  27. package/core/built/admin/assets/comments-DSv09jRn.js +1 -0
  28. package/core/built/admin/assets/{content-helpers-jANWGIfA.js → content-helpers-DQdPPDGb.js} +1 -1
  29. package/core/built/admin/assets/{copy-BBLeLEnG.js → copy-BULQsPZ4.js} +1 -1
  30. package/core/built/admin/assets/{data-list-BveeOSGI.js → data-list-WxXC0iKE.js} +1 -1
  31. package/core/built/admin/assets/{deleted-feed-item-DupAEk4P.js → deleted-feed-item-ZBLfgRkK.js} +1 -1
  32. package/core/built/admin/assets/{dropzone-D3PSdAHN.js → dropzone-B8mAoWrn.js} +1 -1
  33. package/core/built/admin/assets/{edit-profile-NrCR9_bi.js → edit-profile-Bj3th8H0.js} +1 -1
  34. package/core/built/admin/assets/editor-BZV40eAE.css +1 -0
  35. package/core/built/admin/assets/editor-u20VuPzn.js +7 -0
  36. package/core/built/admin/assets/{empty-indicator-Dhi_KeYX.js → empty-indicator-P3IsUguf.js} +1 -1
  37. package/core/built/admin/assets/{en-BontI3SP.js → en-C9bUnuy7.js} +1 -1
  38. package/core/built/admin/assets/{feed-B3Kfiz5R.js → feed-B94mO944.js} +1 -1
  39. package/core/built/admin/assets/{filter-query-core-Dwh4Qulu.js → filter-query-core-CM0KKIr2.js} +1 -1
  40. package/core/built/admin/assets/filters-D52FTE0z.js +1 -0
  41. package/core/built/admin/assets/gh-chart-Xa6Nvzwz.js +1 -0
  42. package/core/built/admin/assets/{ghost-c25434d5bbf5a5429883d4c3590f1946.js → ghost-82f1c4ffe0e1cd058ce4b66b5253b620.js} +159 -201
  43. package/core/built/admin/assets/{ghost-dark-52df27573e5f2a75e6cf4b1d06eea9e4.css → ghost-dark-9897cf5102772faedf566e5e54d4fbee.css} +1 -1
  44. package/core/built/admin/assets/{ghost-fcf460028e04192f392f16e173f2e3a8.css → ghost-e11f1814be0f38e98bb77b49eba11178.css} +1 -1
  45. package/core/built/admin/assets/{growth-DRH8zUIJ.js → growth-D3TW3JIB.js} +1 -1
  46. package/core/built/admin/assets/{hash-UvX5iOa9.js → hash-CstXS-iB.js} +1 -1
  47. package/core/built/admin/assets/{header-G1a38jnf.js → header-StkTITw-.js} +1 -1
  48. package/core/built/admin/assets/{inbox-By7HZskI.js → inbox-D1RM3kVF.js} +1 -1
  49. package/core/built/admin/assets/index-BEkJ9xtY.css +1 -0
  50. package/core/built/admin/assets/{index-CS_ZmI8F.js → index-BJx5Uas5.js} +1 -1
  51. package/core/built/admin/assets/index-BKzg6OE7.js +1 -0
  52. package/core/built/admin/assets/{index-D7JyKf1m.js → index-BM-MBdD0.js} +1 -1
  53. package/core/built/admin/assets/index-BRzvVuXt.js +2 -0
  54. package/core/built/admin/assets/index-B_3xqeM9.js +1 -0
  55. package/core/built/admin/assets/{index-ydyrczVl.js → index-C-OdR2wJ.js} +1 -1
  56. package/core/built/admin/assets/{index-X-MG1ikg.js → index-C59QlJqT.js} +1 -1
  57. package/core/built/admin/assets/{index-CJo0Qh4V.js → index-CCq_1tCo.js} +1 -1
  58. package/core/built/admin/assets/{index-qHUvPjQB.js → index-CYyEyBYw.js} +11 -11
  59. package/core/built/admin/assets/{index-CX4ztLSk.js → index-DHbiBjyq.js} +1 -1
  60. package/core/built/admin/assets/{index-BP6hBbPK.js → index-DTVgSMyL.js} +2 -2
  61. package/core/built/admin/assets/{index-vZMbI8e8.js → index-DiUjEgRw.js} +1 -1
  62. package/core/built/admin/assets/{index-YM4ZplGj.js → index-DugxKzA6.js} +1 -1
  63. package/core/built/admin/assets/{index-D8InZCr2.js → index-DzVHlhO1.js} +1 -1
  64. package/core/built/admin/assets/{index-D4b7U6K-.js → index-LsaD9Cq7.js} +1 -1
  65. package/core/built/admin/assets/{index-DRUPF8nN.js → index-x0hNfyqU.js} +1 -1
  66. package/core/built/admin/assets/{inline-Bc9zHR7e.js → inline-B4cWemrJ.js} +1 -1
  67. package/core/built/admin/assets/{koenig-lexical-B-ZnqRE1.js → koenig-lexical-BOdeH3QJ.js} +1 -1
  68. package/core/built/admin/assets/{kpi-card-zyi5Onb0.js → kpi-card-P7zSpcx0.js} +1 -1
  69. package/core/built/admin/assets/{kpi-card-CzlPIEPE.js → kpi-card-plhYOEtA.js} +1 -1
  70. package/core/built/admin/assets/{kpi-tabs-Dsa5ldXK.js → kpi-tabs-DZw2Qktb.js} +1 -1
  71. package/core/built/admin/assets/{kpis-Cw5ZRQhk.js → kpis-CDHM0xhW.js} +1 -1
  72. package/core/built/admin/assets/{label-BvxmsD1M.js → label-Ckacdx14.js} +1 -1
  73. package/core/built/admin/assets/{links-CiS5BPKS.js → links-BtXE5d0Y.js} +1 -1
  74. package/core/built/admin/assets/{list-filter-zmkB7rg4.js → list-filter-DLjjiktn.js} +1 -1
  75. package/core/built/admin/assets/{list-header-Cp779e3H.js → list-header-Cc7Ia3nr.js} +1 -1
  76. package/core/built/admin/assets/loader-circle-DLJd-dNm.js +1 -0
  77. package/core/built/admin/assets/{mail-i2qs8CIG.js → mail-B97w28e2.js} +1 -1
  78. package/core/built/admin/assets/{main-layout-KCvKOX8F.js → main-layout-bwWvzc9B.js} +1 -1
  79. package/core/built/admin/assets/{members-w601v5JJ.js → members-CokS8MI2.js} +5 -5
  80. package/core/built/admin/assets/{message-square-text-bG9IoWIt.js → message-square-text-D3rsjDFR.js} +1 -1
  81. package/core/built/admin/assets/minus-BzXQVmMw.js +1 -0
  82. package/core/built/admin/assets/{modals-lNzhiL0o.js → modals-D0lip-iy.js} +2 -2
  83. package/core/built/admin/assets/{moderation-CyfNRSWj.js → moderation-Dv7AadCV.js} +1 -1
  84. package/core/built/admin/assets/newsletter-BazC5rIj.js +1 -0
  85. package/core/built/admin/assets/{newsletters-B8xSXSr_.js → newsletters-m6HQgU5J.js} +1 -1
  86. package/core/built/admin/assets/{note-dNfKEpxw.js → note-CCGiEKz-.js} +1 -1
  87. package/core/built/admin/assets/{onboarding-route-Drbw0QtT.js → onboarding-route-Cbt7qWNE.js} +1 -1
  88. package/core/built/admin/assets/overview-TN50tzUh.js +1 -0
  89. package/core/built/admin/assets/{pagemenu-VJXMoMB4.js → pagemenu-BXrHWtsU.js} +1 -1
  90. package/core/built/admin/assets/{pencil-DHNmlLjO.js → pencil-BL1r8KVy.js} +1 -1
  91. package/core/built/admin/assets/{post-analytics-PsqLsS2e.js → post-analytics-BqEXi6Ps.js} +1 -1
  92. package/core/built/admin/assets/{post-analytics-context-QLZsZCFg.js → post-analytics-context-DekYNlb3.js} +1 -1
  93. package/core/built/admin/assets/{post-analytics-header-PecXsIT-.js → post-analytics-header-AkNbn6uc.js} +1 -1
  94. package/core/built/admin/assets/{post-share-modal-B4Rvo7W1.js → post-share-modal-CXDGVKoQ.js} +1 -1
  95. package/core/built/admin/assets/posts/{app-utils-DIc5TmxO.mjs → app-utils-DxA7edI_.mjs} +2 -2
  96. package/core/built/admin/assets/posts/{automations-BZpT35kJ.mjs → automations-Cwu_gHl4.mjs} +64 -67
  97. package/core/built/admin/assets/posts/automations-D81hV_2c.mjs +13 -0
  98. package/core/built/admin/assets/posts/{avatar-K63cvqSS.mjs → avatar-IkjEzEjI.mjs} +19 -19
  99. package/core/built/admin/assets/posts/{button-ufGBCcsV.mjs → button-KaJZKcou.mjs} +21 -21
  100. package/core/built/admin/assets/posts/{check-IcEnuTpD.mjs → check-Cf74RvZ1.mjs} +21 -21
  101. package/core/built/admin/assets/posts/{comments-CyJU9Ums.mjs → comments-pdKhYbYG.mjs} +54 -52
  102. package/core/built/admin/assets/posts/createLucideIcon-Cj7h3r9g.mjs +320 -0
  103. package/core/built/admin/assets/posts/{dialog-D6_lBvtT.mjs → dialog-Ci3W8fjx.mjs} +71 -76
  104. package/core/built/admin/assets/posts/{dropdown-menu-BSSmAory.mjs → dropdown-menu-DZ9XCHSw.mjs} +5 -5
  105. package/core/built/admin/assets/posts/editor-Bb-xle0o.mjs +6084 -0
  106. package/core/built/admin/assets/posts/ellipsis-ChhZo9aT.mjs +10 -0
  107. package/core/built/admin/assets/posts/{empty-indicator-DvGCvRAX.mjs → empty-indicator-DnFs7hDy.mjs} +2 -2
  108. package/core/built/admin/assets/posts/{filters-BLBaHhJz.mjs → filters-CO_FUPX-.mjs} +42 -40
  109. package/core/built/admin/assets/posts/get-site-timezone-C21yKZT_.mjs +87 -0
  110. package/core/built/admin/assets/posts/{growth-Bz1ChJNB.mjs → growth-CtX9Efm2.mjs} +12 -12
  111. package/core/built/admin/assets/posts/heading-DZ_KtDTL.mjs +138 -0
  112. package/core/built/admin/assets/posts/{hooks-BEngBys9.mjs → hooks-DVhBDVlA.mjs} +3 -2
  113. package/core/built/admin/assets/posts/{index-BAF0YXsp.mjs → index-B4db8w_H.mjs} +181 -172
  114. package/core/built/admin/assets/posts/{inline-C2YFQAdU.mjs → inline-BfB-SNk0.mjs} +2 -2
  115. package/core/built/admin/assets/posts/{input-surface-TqJlNSp_.mjs → input-surface-CNwZJloi.mjs} +2 -2
  116. package/core/built/admin/assets/posts/{kpis-DAX5_0-Q.mjs → kpis-BvY_5Y1u.mjs} +8792 -8803
  117. package/core/built/admin/assets/posts/{links-A1YTsBbF.mjs → links-Ck-h7SKg.mjs} +57 -57
  118. package/core/built/admin/assets/posts/{loading-indicator-BZsjmp8g.mjs → loading-indicator-B_rU9Lie.mjs} +3 -3
  119. package/core/built/admin/assets/posts/mail-DiZ3oKEW.mjs +9 -0
  120. package/core/built/admin/assets/posts/{main-layout-D_HHTP_n.mjs → main-layout-aYo6qOBZ.mjs} +2 -2
  121. package/core/built/admin/assets/posts/{newsletter-BRzgjOIa.mjs → newsletter-BQc53TF2.mjs} +31 -30
  122. package/core/built/admin/assets/posts/{overview-C41VFjn7.mjs → overview-blz9Ak9q.mjs} +42 -41
  123. package/core/built/admin/assets/posts/plus-YVjtYaK3.mjs +15 -0
  124. package/core/built/admin/assets/posts/{post-analytics-DGgMkFaf.mjs → post-analytics-BQbWGoeu.mjs} +6 -6
  125. package/core/built/admin/assets/posts/{post-analytics-context-B1r3HBrp.mjs → post-analytics-context-Be7THgnd.mjs} +7 -7
  126. package/core/built/admin/assets/posts/{post-analytics-header-DTWSO0Aq.mjs → post-analytics-header-iDFy7Bao.mjs} +2762 -2764
  127. package/core/built/admin/assets/posts/{post-share-modal-ohHwk0Yt.mjs → post-share-modal-akP16idN.mjs} +50 -48
  128. package/core/built/admin/assets/posts/posts.js +2 -1
  129. package/core/built/admin/assets/posts/{settings-CZYL6Jhr.mjs → settings-BdQhfHxY.mjs} +2 -2
  130. package/core/built/admin/assets/posts/{sheet-D7YesQJE.mjs → sheet-3dBlKeXf.mjs} +14 -13
  131. package/core/built/admin/assets/posts/{skeleton-S1k58YKa.mjs → skeleton-DMgSvYqr.mjs} +11 -11
  132. package/core/built/admin/assets/posts/{source-icon-DnpCy5N4.mjs → source-icon-Bp5Qxq1E.mjs} +4 -4
  133. package/core/built/admin/assets/posts/{stats-CbOpowXb.mjs → stats-DJx9qc_u.mjs} +4 -4
  134. package/core/built/admin/assets/posts/{table-Cw3Wxf1C.mjs → table-BpVwuzeH.mjs} +2 -2
  135. package/core/built/admin/assets/posts/{data-list-BnZARP88.mjs → tabs-CbZCpxfI.mjs} +4885 -5284
  136. package/core/built/admin/assets/posts/{tags-BoMt6Ce3.mjs → tags-CNtvDS6f.mjs} +33 -33
  137. package/core/built/admin/assets/posts/{tags-CNdsvTtZ.mjs → tags-DFOoFZ_3.mjs} +2 -2
  138. package/core/built/admin/assets/posts/{tooltip-CTcyINxz.mjs → tooltip-Cc_09RDU.mjs} +106 -117
  139. package/core/built/admin/assets/posts/value-CwGM7M-1.mjs +410 -0
  140. package/core/built/admin/assets/posts/{virtual-list-window-Bs88yrut.mjs → virtual-list-window-D6nRoL0y.mjs} +5 -5
  141. package/core/built/admin/assets/posts/{web-Bsd8eTP6.mjs → web-yfPssEt8.mjs} +1042 -1040
  142. package/core/built/admin/assets/posts/x-DrUGcpfp.mjs +9 -0
  143. package/core/built/admin/assets/posts/zap-DAN0ur-o.mjs +24 -0
  144. package/core/built/admin/assets/posts-D-jyPPE6.js +1 -0
  145. package/core/built/admin/assets/power-Cc5ncYVl.js +1 -0
  146. package/core/built/admin/assets/{referrers-kcBT5smx.js → referrers-qnXsKsuv.js} +1 -1
  147. package/core/built/admin/assets/{repeat-Cn2sKd-L.js → repeat-BGIBynZH.js} +1 -1
  148. package/core/built/admin/assets/{reply-D7E-ZMd5.js → reply-DOKdAsL_.js} +1 -1
  149. package/core/built/admin/assets/{rocket-DnH0XAGW.js → rocket-CAN2NB82.js} +1 -1
  150. package/core/built/admin/assets/{select-f0MMMQWu.js → select-8S9kYGSM.js} +1 -1
  151. package/core/built/admin/assets/{settings-BAQNP3gU.js → settings-DeD-bmZc.js} +4 -4
  152. package/core/built/admin/assets/{settings-ORttG1jT.js → settings-e4IB9sx6.js} +1 -1
  153. package/core/built/admin/assets/{share-modal-CXU4tGY8.js → share-modal-CBavk20I.js} +1 -1
  154. package/core/built/admin/assets/{sort-button-BXMrChFu.js → sort-button-DlSKBzUq.js} +1 -1
  155. package/core/built/admin/assets/{source-icon-cjy79jGT.js → source-icon-27VIJSXr.js} +1 -1
  156. package/core/built/admin/assets/{sprout-DZ4tZ78G.js → sprout-D66nqc79.js} +1 -1
  157. package/core/built/admin/assets/{square-vOzqJf7x.js → square-DccaXQWe.js} +1 -1
  158. package/core/built/admin/assets/stats/{audience-5NeJICtP.mjs → audience-B84ClTDM.mjs} +3 -3
  159. package/core/built/admin/assets/stats/{content-helpers-DFSTl3uB.mjs → content-helpers-CBAddUg7.mjs} +4 -4
  160. package/core/built/admin/assets/stats/{index-C4T7u699.mjs → index-Bz5oVpED.mjs} +5 -5
  161. package/core/built/admin/assets/stats/{index-B8bp6qe2.mjs → index-Cs8i1uR4.mjs} +74 -75
  162. package/core/built/admin/assets/stats/{index-wvi17m79.mjs → index-DEsP_Tbd.mjs} +8 -8
  163. package/core/built/admin/assets/stats/{index-CFfAYHdD.mjs → index-Ds-pM47x.mjs} +5 -5
  164. package/core/built/admin/assets/stats/{index-Chqk7VlR.mjs → index-Wzk1IcAz.mjs} +6 -6
  165. package/core/built/admin/assets/stats/{kpi-tabs-Df9yOI2P.mjs → kpi-tabs-Cs4l8B_M.mjs} +7 -7
  166. package/core/built/admin/assets/stats/{sort-button-Doi8OgMU.mjs → sort-button-rR-GA9Hu.mjs} +3 -3
  167. package/core/built/admin/assets/stats/{stats-FXeCefyd.mjs → stats-RFpEJpEq.mjs} +34 -34
  168. package/core/built/admin/assets/stats/stats.js +1 -1
  169. package/core/built/admin/assets/stats/{use-growth-stats-93C_3EZk.mjs → use-growth-stats-DwgFzbq9.mjs} +3 -3
  170. package/core/built/admin/assets/{stats-CIGz2Win.js → stats-B4OybenW.js} +1 -1
  171. package/core/built/admin/assets/{stats-view-BTKRxYTQ.js → stats-view-BuExwFXa.js} +1 -1
  172. package/core/built/admin/assets/{step-1-BSMHbT-q.js → step-1-D_5LOQrC.js} +1 -1
  173. package/core/built/admin/assets/{step-2-_YC0LCZv.js → step-2-BZLBj8cj.js} +1 -1
  174. package/core/built/admin/assets/{step-3-DWMqP2bO.js → step-3-s5uNbcOH.js} +1 -1
  175. package/core/built/admin/assets/{table-mHKjXQba.js → table-pGS7EeJe.js} +1 -1
  176. package/core/built/admin/assets/{tabs-B93IVRBz.js → tabs-CjdKssUe.js} +1 -1
  177. package/core/built/admin/assets/{tags-DCb-x2ZB.js → tags-B0vRk0A6.js} +1 -1
  178. package/core/built/admin/assets/{tags-kUHJ1MZo.js → tags-Dso4-FA_.js} +1 -1
  179. package/core/built/admin/assets/{textarea-DswCtM7_.js → textarea-DzFnun0_.js} +1 -1
  180. package/core/built/admin/assets/{tiers-DueraQKd.js → tiers-4Vkr_D-L.js} +1 -1
  181. package/core/built/admin/assets/{toggle-group-ChTo8MPD.js → toggle-group-hDsr47IB.js} +1 -1
  182. package/core/built/admin/assets/{topic-filter-DrW3fYWo.js → topic-filter-C7TpPe1G.js} +1 -1
  183. package/core/built/admin/assets/{trash-B2ESGftj.js → trash-DCVuk7ZX.js} +1 -1
  184. package/core/built/admin/assets/{underline-vo-bPRac.js → underline-CjK8la2G.js} +1 -1
  185. package/core/built/admin/assets/{upload-DXQRkBBq.js → upload-CPYhmtWZ.js} +1 -1
  186. package/core/built/admin/assets/{use-growth-stats-CoB8-lsd.js → use-growth-stats-CaFSgp_R.js} +1 -1
  187. package/core/built/admin/assets/{use-simple-pagination-Y_Wv2N6g.js → use-simple-pagination-D0vJBMvF.js} +1 -1
  188. package/core/built/admin/assets/{user-round-check-Dp9a2x-e.js → user-round-check-CzQQeFd8.js} +1 -1
  189. package/core/built/admin/assets/{user-round-x-DwCTGlxc.js → user-round-x-BDFm8yQj.js} +1 -1
  190. package/core/built/admin/assets/value-BGBiTkF3.js +1 -0
  191. package/core/built/admin/assets/{vendor-17f3b979ba6f3898d1a8c5249cc22ff1.js → vendor-ce3fc901ccbcf37f36eb791b4e454138.js} +29 -31
  192. package/core/built/admin/assets/{virtual-list-window-BF7IvGMC.js → virtual-list-window-EKtWZ5cP.js} +1 -1
  193. package/core/built/admin/assets/{wallet-cards-IEmcxJvG.js → wallet-cards-C1NOBbWE.js} +1 -1
  194. package/core/built/admin/assets/web-DCA7HR1S.js +1 -0
  195. package/core/built/admin/index.html +8 -8
  196. package/core/frontend/helpers/social_accounts.js +91 -0
  197. package/core/frontend/services/sitemap/handler.js +14 -2
  198. package/core/frontend/services/sitemap/site-map-manager.js +133 -9
  199. package/core/frontend/web/middleware/handle-image-sizes.js +4 -0
  200. package/core/server/api/endpoints/automations.js +38 -45
  201. package/core/server/models/member.js +30 -25
  202. package/core/server/services/automations/automations-api.js +58 -0
  203. package/core/server/services/automations/automations-api.ts +71 -0
  204. package/core/server/services/automations/automations-repository.js +2 -0
  205. package/core/server/services/automations/automations-repository.ts +63 -0
  206. package/core/server/services/automations/fake-database-automations-repository.js +210 -0
  207. package/core/server/services/automations/fake-database-automations-repository.ts +273 -0
  208. package/core/server/services/automations/temporary-fake-database.js +5 -4
  209. package/core/server/services/gifts/email-templates/gift-purchase-confirmation.hbs +10 -32
  210. package/core/server/services/gifts/email-templates/gift-purchase-confirmation.js +6 -8
  211. package/core/server/services/gifts/email-templates/gift-purchase-confirmation.ts +6 -8
  212. package/core/server/services/gifts/email-templates/gift-reminder.hbs +12 -37
  213. package/core/server/services/gifts/email-templates/gift-reminder.js +5 -9
  214. package/core/server/services/gifts/email-templates/gift-reminder.ts +5 -9
  215. package/core/server/services/gifts/gift-service.js +1 -1
  216. package/core/server/services/gifts/gift-service.ts +2 -2
  217. package/core/server/services/member-welcome-emails/service.js +0 -1
  218. package/core/server/services/members/members-api/controllers/router-controller.js +52 -7
  219. package/core/server/services/members/members-api/services/member-bread-service.js +0 -8
  220. package/core/server/services/route-settings/route-settings.js +18 -2
  221. package/core/server/services/staff/email-templates/gift.hbs +1 -1
  222. package/core/server/services/staff/email-templates/gift.txt.js +1 -1
  223. package/core/server/services/staff/email-templates/new-gift-subscription.hbs +1 -1
  224. package/core/server/services/staff/email-templates/new-gift-subscription.txt.js +1 -1
  225. package/core/server/services/staff/staff-service-emails.js +1 -1
  226. package/core/server/services/url/index.js +16 -1
  227. package/core/server/services/url/lazy-find-resource.js +49 -0
  228. package/core/server/services/url/lazy-find-resource.ts +62 -0
  229. package/core/server/services/url/lazy-url-service.js +220 -0
  230. package/core/server/services/url/lazy-url-service.ts +265 -0
  231. package/core/server/web/api/endpoints/admin/routes.js +1 -0
  232. package/core/server/web/gift-preview/Inter.ttf +0 -0
  233. package/core/server/web/gift-preview/controller.js +56 -6
  234. package/core/server/web/gift-preview/gift-card-noise.png +0 -0
  235. package/core/server/web/gift-preview/gift-card-orb.png +0 -0
  236. package/core/server/web/gift-preview/image.js +170 -43
  237. package/core/shared/config/defaults.json +1 -0
  238. package/core/shared/one-at-a-time.js +28 -33
  239. package/core/shared/one-at-a-time.ts +58 -0
  240. package/package.json +18 -16
  241. package/pnpm-lock.yaml +989 -356
  242. package/core/built/admin/assets/automations-D1uMjd06.js +0 -1
  243. package/core/built/admin/assets/chart-_EXssQtm.js +0 -67
  244. package/core/built/admin/assets/comments-E00h1SbR.js +0 -1
  245. package/core/built/admin/assets/filters-CC7XfjOS.js +0 -1
  246. package/core/built/admin/assets/gh-chart-B9_ywrJJ.js +0 -1
  247. package/core/built/admin/assets/index-AsV-aY0z.css +0 -1
  248. package/core/built/admin/assets/index-B0y_ynZw.js +0 -1
  249. package/core/built/admin/assets/index-Bs6wWbLA.js +0 -2
  250. package/core/built/admin/assets/index-Cb4641XW.js +0 -1
  251. package/core/built/admin/assets/loader-circle-B5UPqSok.js +0 -1
  252. package/core/built/admin/assets/minus-DWx9VUtr.js +0 -1
  253. package/core/built/admin/assets/newsletter-fkQye9OK.js +0 -1
  254. package/core/built/admin/assets/overview-CZ-VrnXy.js +0 -1
  255. package/core/built/admin/assets/posts/createLucideIcon-DcUfTBt_.mjs +0 -454
  256. package/core/built/admin/assets/posts/get-site-timezone-DlXmHA3y.mjs +0 -93
  257. package/core/built/admin/assets/posts-Bx1RWrub.js +0 -1
  258. package/core/built/admin/assets/web-DSME3e8c.js +0 -1
@@ -1 +0,0 @@
1
- import{r as c,b_ as W,aX as te,bU as se,b$ as F,ap as D,j as e,aY as ee,ao as _,aM as pe,aO as he,aN as xe,b7 as Y,c0 as fe,b9 as ae,al as X,am as K,c1 as ge,t as Q,bS as be,B as je}from"./index-qHUvPjQB.js";import{s as ve,g as q,S as ke,a as we,D as Ne,b as Se}from"./stats-view-BTKRxYTQ.js";import{C as _e,a as ye,R as Ce,B as Te}from"./chart-_EXssQtm.js";import{E as re}from"./empty-indicator-Dhi_KeYX.js";import{T as De,a as Me}from"./tabs-B93IVRBz.js";import{G as Le,C as Re,X as Oe,Y as Be,a as Ee}from"./gh-chart-B9_ywrJJ.js";import{K as U,a as B,b as Pe}from"./kpi-tabs-Dsa5ldXK.js";import{B as Ae,S as V}from"./sort-button-BXMrChFu.js";import{M as ne}from"./mail-i2qs8CIG.js";import{S as $e,a as ze,b as Ve,c as He,d as Ke,e as We,f as Fe}from"./select-f0MMMQWu.js";import{i as Ge,C as oe,c as ie,a as Ie,b as Ye,g as Ue}from"./pagemenu-VJXMoMB4.js";import{a as Xe,e as Qe,b as qe,c as H,d as P,f as L}from"./table-mHKjXQba.js";import{u as Je}from"./newsletters-B8xSXSr_.js";import{e as Ze,f as et,g as tt}from"./stats-CIGz2Win.js";import"./loader-circle-B5UPqSok.js";import"./sprout-DZ4tZ78G.js";import"./_baseAssignValue-CnqN6ZMT.js";import"./index-DRUPF8nN.js";import"./a-large-small-Wi4LtZX-.js";import"./wallet-cards-IEmcxJvG.js";import"./list-filter-zmkB7rg4.js";import"./upload-DXQRkBBq.js";import"./arrow-right-BiAOKOto.js";import"./at-sign-z5gBMxDW.js";import"./underline-vo-bPRac.js";import"./chevron-up-DVt6fhV3.js";import"./copy-BBLeLEnG.js";import"./message-square-text-bG9IoWIt.js";import"./hash-UvX5iOa9.js";import"./inbox-By7HZskI.js";import"./minus-DWx9VUtr.js";import"./pencil-DHNmlLjO.js";import"./square-vOzqJf7x.js";import"./user-round-check-Dp9a2x-e.js";import"./repeat-Cn2sKd-L.js";import"./reply-D7E-ZMd5.js";import"./rocket-DnH0XAGW.js";import"./tags-kUHJ1MZo.js";import"./trash-B2ESGftj.js";import"./user-round-x-DwCTGlxc.js";const st=({active:a,payload:s})=>{if(!a||!s?.length)return null;const r=s[0].payload,o=typeof r.send_date=="string"?r.send_date:r.send_date.toISOString().split("T")[0];return e.jsxs("div",{className:"max-w-[240px] min-w-[220px] rounded-lg border bg-background px-3 py-2 shadow-lg",children:[e.jsxs("div",{className:"mb-2 flex w-full flex-col border-b pb-2",children:[e.jsx("span",{className:"text-sm leading-tight font-semibold",children:r.post_title}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:["Sent on ",ae(o)]})]}),e.jsxs("div",{className:"mb-1 flex w-full justify-between",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:"Sent"}),e.jsx("div",{className:"ml-2 w-full text-right font-mono",children:D(r.sent_to)})]}),e.jsxs("div",{className:"mb-1 flex w-full justify-between",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:"Opens"}),e.jsxs("div",{className:"ml-2 w-full text-right font-mono",children:[e.jsxs("span",{className:"text-muted-foreground",children:[D(r.total_opens)," / "]}),_(r.open_rate)]})]}),e.jsxs("div",{className:"mb-1 flex w-full justify-between",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:"Clicks"}),e.jsxs("div",{className:"ml-2 w-full text-right font-mono",children:[e.jsxs("span",{className:"text-muted-foreground",children:[D(r.total_clicks)," / "]}),_(r.click_rate)]})]})]})},at=({subscribersData:a,avgsData:s,totals:r,isLoading:o,isAvgsLoading:t,initialTab:i="total-subscribers"})=>{const[n,h]=c.useState(i),[p,v]=c.useState(!1),{range:u}=W(),w=te(),[b]=se(),{appSettings:N}=F(),{emailTrackClicks:j,emailTrackOpens:S}=N?.analytics||{},{totalSubscribers:R,avgOpenRate:m,avgClickRate:d}=r,g=c.useMemo(()=>{if(!a||a.length===0)return[];let l=[];return l=ve(a,u,"value","exact"),l.map(M=>({...M,formattedValue:D(M.value),label:"Total Subscribers"}))},[a,u]),y=c.useMemo(()=>{if(!g||g.length<=1)return{direction:"same",value:"0%"};const l=g[0]?.value??0,k=g[g.length-1]?.value??0;let M="same";k>l?M="up":k<l&&(M="down");let E;if(l===0)E=k===0?"0%":"+100%";else{const A=(k-l)/l*100,$=Math.round(A*10)/10;E=`${A>=0?"+":""}${$}%`}return{direction:M,value:E}},[g]);c.useEffect(()=>{h(i)},[i]);const x=l=>{h(l);const k=new URLSearchParams(b);k.set("tab",l),w(`?${k.toString()}`,{replace:!0})},C={open_rate:{label:"Open rate"}},f=c.useMemo(()=>({"total-subscribers":{color:"var(--chart-darkblue)",datakey:"value"},"avg-open-rate":{color:"var(--chart-blue)",datakey:"open_rate"},"avg-click-rate":{color:"var(--chart-teal)",datakey:"click_rate"}}),[]),{barDomain:T,barTicks:O}=c.useMemo(()=>{if(!s||s.length===0||n==="total-subscribers")return{barDomain:[0,1],barTicks:[0,1]};const l=f[n]?.datakey;if(!l)return{barDomain:[0,1],barTicks:[0,1]};const k=s.map(I=>I[l]).filter(I=>typeof I=="number");if(k.length===0)return{barDomain:[0,1],barTicks:[0,1]};const M=Math.min(...k),E=Math.max(...k),A=Math.floor(M*10)/10,$=Math.ceil(E*10)/10,z=Math.max(0,A),Z=$===z?z+.1:$;return{barDomain:[z,Z],barTicks:[z,Z]}},[s,n,f]);if(o)return e.jsx("div",{className:"-mb-6 flex h-[calc(16vw+132px)] w-full items-start justify-center",children:e.jsx(ee,{})});let G="grid-cols-3";(!j||!S)&&(G="grid-cols-2"),!j&&!S&&(G="grid-cols-1");const ue=n==="avg-open-rate"&&m>T[0]&&m<T[1]||n==="avg-click-rate"&&d>T[0]&&d<T[1],J=n==="avg-open-rate"?m:d;return e.jsxs(De,{defaultValue:i,variant:"kpis",children:[e.jsxs(Me,{className:`-mx-6 hidden grid-cols-3 md:visible! md:grid! ${G}`,children:[e.jsx(U,{className:`${!S&&!j&&"cursor-auto after:hidden"}`,value:"total-subscribers",onClick:()=>{x("total-subscribers")},children:e.jsx(B,{color:f["total-subscribers"].color,"data-testid":"total-subscribers-value",diffDirection:y.direction,diffValue:y.value,label:"Total subscribers",value:D(R)})}),S&&e.jsx(U,{value:"avg-open-rate",onClick:()=>{x("avg-open-rate")},children:e.jsx(B,{className:t?"opacity-50":"",color:f["avg-open-rate"].color,label:"Avg. open rate",value:_(m)})}),j&&e.jsx(U,{value:"avg-click-rate",onClick:()=>{x("avg-click-rate")},children:e.jsx(B,{className:t?"opacity-50":"",color:f["avg-click-rate"].color,label:"Avg. click rate",value:_(d)})})]}),e.jsxs(pe,{children:[e.jsx(he,{className:"md:hidden",asChild:!0,children:e.jsxs(Pe,{children:[n==="total-subscribers"&&e.jsx(B,{color:f["total-subscribers"].color,label:"Total subscribers",value:D(R)}),n==="avg-open-rate"&&S&&e.jsx(B,{className:t?"opacity-50":"",color:f["avg-open-rate"].color,label:"Avg. open rate",value:_(m)}),n==="avg-click-rate"&&j&&e.jsx(B,{className:t?"opacity-50":"",color:f["avg-click-rate"].color,label:"Avg. click rate",value:_(d)})]})}),e.jsxs(xe,{align:"end",className:"w-56",children:[e.jsx(Y,{onClick:()=>x("total-subscribers"),children:"Total subscribers"}),S&&e.jsx(Y,{onClick:()=>x("avg-open-rate"),children:"Avg. open rate"}),j&&e.jsx(Y,{onClick:()=>x("avg-click-rate"),children:"Avg. click rate"})]})]}),e.jsxs("div",{className:"my-4 [&_.recharts-cartesian-axis-tick-value]:fill-gray-500",children:[n==="total-subscribers"&&e.jsx(Le,{className:"-mb-3 h-[16vw] max-h-[320px] min-h-[180px] w-full",color:f["total-subscribers"].color,data:g,id:"mrr",range:u}),(n==="avg-open-rate"&&S||n==="avg-click-rate"&&j)&&e.jsx(e.Fragment,{children:t?e.jsx("div",{className:"h-[320px] w-full items-center justify-center",children:e.jsx(ee,{})}):s&&s.length>0?e.jsxs(e.Fragment,{children:[e.jsx(_e,{className:"aspect-auto h-[200px] w-full md:h-[220px] xl:h-[320px]",config:C,children:e.jsxs(Ae,{className:p?"cursor-pointer!":"",data:s,margin:{top:20},onClick:l=>{l.activePayload&&l.activePayload[0].payload.post_id&&w(`/posts/analytics/${l.activePayload[0].payload.post_id}`,{crossApp:!0})},onMouseLeave:()=>v(!1),onMouseMove:l=>{v(!!(l.activePayload&&l.activePayload[0].payload.post_id))},children:[e.jsx("defs",{children:e.jsxs("linearGradient",{id:"barGradient",x1:"0",x2:"0",y1:"0",y2:"1",children:[e.jsx("stop",{offset:"0%",stopColor:f[n].color,stopOpacity:.8}),e.jsx("stop",{offset:"100%",stopColor:f[n].color,stopOpacity:.6})]})}),e.jsx(Re,{horizontal:!0,stroke:"var(--border)",vertical:!1}),e.jsx(Oe,{axisLine:{stroke:"var(--border)",strokeWidth:1},dataKey:"post_id",interval:0,stroke:"var(--border)",tickFormatter:()=>"",tickLine:!1,tickMargin:10}),e.jsx(Be,{axisLine:!1,domain:T,tickFormatter:l=>_(l),tickLine:!1,ticks:O,width:fe(O,l=>_(l))}),e.jsx(ye,{content:e.jsx(st,{}),cursor:!1,isAnimationActive:!1,position:{y:10}}),ue&&e.jsx(Ce,{label:{value:`${_(J)}`,position:"left",offset:8,fill:"var(--muted-foreground)"},opacity:.5,stroke:"var(--muted-foreground)",strokeDasharray:"4 4",y:J}),e.jsx(Te,{activeBar:{fillOpacity:1},dataKey:f[n].datakey,fill:"url(#barGradient)",fillOpacity:.6,isAnimationActive:!1,maxBarSize:32,minPointSize:3,radius:4})]})}),e.jsxs("div",{className:"-mt-4 text-center text-sm text-muted-foreground",children:["Newsletters ",n==="avg-open-rate"?"opens":"clicks"," in this period"]})]}):e.jsx(re,{className:"size-full py-20",title:`No newsletters ${q(u)}`,children:e.jsx(ne,{strokeWidth:1.5})})})]})]})},rt=({newsletters:a})=>{const{selectedNewsletterId:s,setSelectedNewsletterId:r}=W(),o=c.useMemo(()=>a?.filter(t=>t.status==="active")||[],[a]);return c.useEffect(()=>{if(o.length>0&&!s){const t=o.find(i=>i.sort_order===0);r(t?t.id:o[0].id)}},[o,s,r]),o.length<=1?null:e.jsxs($e,{value:s||"",onValueChange:t=>{r(t)},children:[e.jsxs(ze,{className:"w-auto",children:[e.jsx(Ee,{className:"mr-2",size:16,strokeWidth:1.5}),e.jsx(Ve,{placeholder:"Select a newsletter"})]}),e.jsx(He,{align:"end",children:e.jsxs(Ke,{children:[e.jsx(We,{children:"Newsletters"}),o.map(t=>e.jsx(Fe,{value:t.id,children:t.name},t.id))]})})]})},nt=(a,s,r=!0)=>{const o=a??30,{startDate:t,endDate:i}=c.useMemo(()=>X(o),[o]),n=c.useMemo(()=>{const p={date_from:K(t),date_to:K(i)};return s&&(p.newsletter_id=s),p},[t,i,s]),h=Ze({searchParams:n,enabled:r});return r?h:{data:void 0,isLoading:!1,error:null,isError:!1,refetch:h.refetch}},ot=(a,s,r,o=!0)=>{const t=a??30,i=s??"date desc",{startDate:n,endDate:h}=c.useMemo(()=>X(t),[t]),p=c.useMemo(()=>{const u={date_from:K(n),date_to:K(h),order:i};return r&&(u.newsletter_id=r),u},[n,h,i,r]),v=et({searchParams:p,enabled:o});return o?v:{data:void 0,isLoading:!1,error:null,isError:!1,refetch:v.refetch}},it=(a,s=[],r=!0)=>{const o=c.useMemo(()=>{const i={};return a&&(i.newsletter_id=a),s.length>0&&(i.post_ids=s.join(",")),i},[a,s]),t=tt({searchParams:o,enabled:r});return r?t:{data:void 0,isLoading:!1,error:null,isError:!1,refetch:t.refetch}},le=(a,s,r,o=!0)=>{const t=ot(a,s,r,o),i=c.useMemo(()=>t.data?.stats?t.data.stats.map(p=>p.post_id):[],[t.data]),n=it(r,i,o&&i.length>0);return{data:c.useMemo(()=>{if(!t.data?.stats)return;const p=t.data.stats,v=n.data?.stats||[],u=new Map;v.forEach(b=>{u.set(b.post_id,b)});const w=p.map(b=>{const N=u.get(b.post_id);return{...b,total_clicks:N?.total_clicks||0,click_rate:N?.click_rate||0}});return{...t.data,stats:w}},[t.data,n.data]),isLoading:t.isLoading,isClicksLoading:n.isLoading,error:t.error||n.error,isError:t.isError||n.isError,refetch:()=>{t.refetch(),n.refetch()}}},ce=Q.memo(({range:a,selectedNewsletterId:s,shouldFetchStats:r,sortBy:o})=>{const t=te(),{settings:i}=W(),n=String(i.find(m=>m.key==="timezone")?.value||"Etc/UTC"),{data:h,isLoading:p,isClicksLoading:v}=le(a,o,s||void 0,!!r),{appSettings:u}=F(),{emailTrackClicks:w,emailTrackOpens:b}=u?.analytics||{},N=c.useMemo(()=>h?.stats||[],[h]),j=b&&w?5:b||w?4:3,S=c.useMemo(()=>e.jsx(e.Fragment,{children:e.jsx(H,{className:"last:border-none [&>td]:py-2.5",children:e.jsx(L,{className:"font-medium",colSpan:j,children:e.jsx(be,{className:"mt-5"})})})}),[j]),R=c.useMemo(()=>N.length>0?e.jsx(e.Fragment,{children:N.map(m=>e.jsxs(H,{className:"last:border-none [&>td]:py-2.5",children:[e.jsx(L,{className:"font-medium",children:e.jsx("div",{className:"group/link inline-flex items-center gap-2",children:m.post_id?e.jsx(je,{className:"h-auto p-0 text-left whitespace-normal hover:underline!",title:"View post analytics",variant:"link",onClick:()=>{t(`/posts/analytics/${m.post_id}/`,{crossApp:!0})},children:m.post_title}):e.jsx(e.Fragment,{children:m.post_title})})}),e.jsx(L,{className:"text-sm whitespace-nowrap",children:ae(m.send_date,n)}),e.jsx(L,{className:"text-right font-mono text-sm",children:D(m.sent_to)}),b&&e.jsxs(L,{className:"text-right font-mono text-sm",children:[e.jsx("span",{className:"group-hover:hidden",children:_(m.open_rate)}),e.jsx("span",{className:"hidden group-hover:visible! group-hover:block!",children:D(m.total_opens)})]}),w&&e.jsx(L,{className:"text-right font-mono text-sm",children:v?e.jsx("span",{className:"inline-block h-4 w-8 animate-pulse rounded bg-gray-200"}):e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"group-hover:hidden",children:_(m.click_rate)}),e.jsx("span",{className:"hidden group-hover:visible! group-hover:block!",children:D(m.total_clicks)})]})})]},m.post_id))}):e.jsx(H,{className:"border-none hover:bg-transparent",children:e.jsx(L,{className:"text-center group-hover:bg-transparent!",colSpan:j,children:e.jsx(re,{className:"size-full py-20",title:`No newsletters ${q(a)}`,children:e.jsx(ne,{strokeWidth:1.5})})})}),[N,v,t,w,b,a]);return p||!h?S:R});ce.displayName="NewsletterTableRows";const de=Q.memo(({sortBy:a,setSortBy:s,range:r})=>{const o=c.useMemo(()=>e.jsxs(Ie,{children:[e.jsx(Ye,{children:"Top newsletters"}),e.jsxs(Ue,{children:[" Your best performing newsletters ",q(r)]})]}),[r]),{appSettings:t}=F(),{emailTrackClicks:i,emailTrackOpens:n}=t?.analytics||{};return e.jsx(qe,{children:e.jsxs(H,{children:[e.jsx(P,{className:"min-w-[320px]",variant:"cardhead",children:o}),e.jsx(P,{className:"w-[65px]",children:e.jsx(V,{activeSortBy:a,setSortBy:s,sortBy:"date desc",children:"Date"})}),e.jsx(P,{className:"w-[90px] text-right",children:e.jsx(V,{activeSortBy:a,setSortBy:s,sortBy:"sent_to desc",children:"Sent"})}),n&&e.jsx(P,{className:"w-[90px] text-right",children:e.jsx(V,{activeSortBy:a,setSortBy:s,sortBy:"open_rate desc",children:"Opens"})}),i&&e.jsx(P,{className:"w-[90px] text-right",children:e.jsx(V,{activeSortBy:a,setSortBy:s,sortBy:"click_rate desc",children:"Clicks"})})]})})});de.displayName="NewsletterTableHeader";const me=Q.memo(({range:a,selectedNewsletterId:s,shouldFetchStats:r})=>{const[o,t]=c.useState("open_rate desc");return e.jsx(oe,{className:"w-full max-w-[calc(100vw-64px)] overflow-x-auto sidebar:max-w-[calc(100vw-64px-280px)]","data-testid":"top-newsletters-card",children:e.jsx(ie,{children:e.jsxs(Xe,{children:[e.jsx(de,{range:a,setSortBy:t,sortBy:o}),e.jsx(Qe,{children:e.jsx(ce,{range:a,selectedNewsletterId:s,shouldFetchStats:r,sortBy:o})})]})})})});me.displayName="TopNewslettersTable";const Ut=()=>{const{range:a,selectedNewsletterId:s}=W(),[r]=se(),{appSettings:o}=F(),t=r.get("tab")||"total-subscribers",{data:i,isLoading:n}=Je({searchParams:{limit:"50"}}),h=!n&&i&&i.newsletters.length>0&&!!s,{data:p,isLoading:v}=nt(a,s||void 0,h||!1),{data:u,isLoading:w,isClicksLoading:b}=le(a,"date asc",s||void 0,h||!1),N=c.useMemo(()=>!i?.newsletters||!s?null:i.newsletters.find(d=>d.id===s)||null,[i,s]),j=c.useMemo(()=>{const d=N?.count?.active_members||p?.stats?.[0]?.total||0;let g=0,y=0;if(u?.stats&&u.stats.length>0){const x=u.stats,C=x.reduce((T,O)=>T+(O.open_rate||0),0),f=x.reduce((T,O)=>T+(O.click_rate||0),0);g=C/x.length,y=f/x.length}return{totalSubscribers:d,avgOpenRate:g,avgClickRate:y}},[N,p,u]),S=c.useMemo(()=>{if(!p?.stats?.[0]?.values||p.stats[0].values.length===0){const{startDate:g,endDate:y}=X(a),x=[],C=g.clone().toDate(),f=y.toDate();for(;C<=f;)x.push({date:C.toISOString().split("T")[0],value:0}),C.setDate(C.getDate()+1);return x}const d=p.stats[0].values;if(d.length===1){const g=d[0],y=new Date,x=a,C=new Date(y.getTime()-x*24*60*60*1e3);return[{...g,date:C.toISOString().split("T")[0]},{...g,date:y.toISOString().split("T")[0]}]}return d},[p,a]),R=c.useMemo(()=>u?.stats?u.stats.map(d=>({post_id:d.post_id,post_title:d.post_title,send_date:d.send_date,sent_to:d.sent_to,total_opens:d.total_opens,open_rate:d.open_rate,total_clicks:d.total_clicks||0,click_rate:d.click_rate||0})):[],[u]),m=v||b||w;return o&&!o.newslettersEnabled?e.jsx(ge,{to:"/analytics"}):e.jsxs(ke,{children:[e.jsx(we,{children:e.jsxs(Ge,{children:[e.jsx(rt,{newsletters:i?.newsletters}),e.jsx(Ne,{})]})}),e.jsx(Se,{isLoading:!1,loadingComponent:e.jsx(e.Fragment,{}),children:e.jsxs(e.Fragment,{children:[e.jsx(oe,{"data-testid":"newsletters-card",children:e.jsx(ie,{children:e.jsx(at,{avgsData:R,initialTab:t,isAvgsLoading:!1,isLoading:m,subscribersData:S,totals:j})})}),e.jsx(me,{range:a,selectedNewsletterId:s,shouldFetchStats:!!h})]})})]})};export{Ut as default};
@@ -1 +0,0 @@
1
- import{ar as e}from"./index-qHUvPjQB.js";const c=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]],d=e("calendar",c);const a=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],s=e("circle-alert",a);const n=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],r=e("eye",n);const o=[["path",{d:"M13.354 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14v6a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341l1.218-1.348",key:"8mvsmf"}],["path",{d:"M16 6h6",key:"1dogtp"}],["path",{d:"M19 3v6",key:"1ytpjt"}]],i=e("funnel-plus",o);const t=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],p=e("funnel",t);const l=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],h=e("loader-circle",l);export{d as C,r as E,i as F,h as L,p as a,s as b};
@@ -1 +0,0 @@
1
- import{ar as o}from"./index-qHUvPjQB.js";const s=[["path",{d:"M5 12h14",key:"1ays0h"}]],c=o("minus",s);export{c as M};
@@ -1 +0,0 @@
1
- import{ai as Re,r as i,u as Te,aX as ne,j as e,ao as N,a_ as re,aZ as K,bS as le,bJ as Fe,bL as Se,cv as ze,cw as Me,cx as ee,cy as Ee,B as q,b0 as $e,aY as Ae,ap as $,c8 as De,C as Ie}from"./index-qHUvPjQB.js";import{C as Y,a as J,b as Q,g as X,c as F,h as ce,T as Be,P as Ve}from"./pagemenu-VJXMoMB4.js";import{u as oe,S as de,a as me,b as pe,c as ue}from"./use-simple-pagination-Y_Wv2N6g.js";import{T as Ue,a as Oe,b as se}from"./tabs-B93IVRBz.js";import{T as We,w as Ge,x as He}from"./chart-_EXssQtm.js";import{K as B,d as V,a as U,b as O,c as W}from"./kpi-card-CzlPIEPE.js";import{P as Ke,a as qe}from"./post-analytics-header-PecXsIT-.js";import{D as Ye,a as Je,b as Qe,c as Xe,d as Ze,e as es,f as ss,g as ts}from"./data-list-BveeOSGI.js";import{a as as,u as is,p as ns,g as G,N as H}from"./links-CiS5BPKS.js";import{u as rs}from"./post-analytics-context-QLZsZCFg.js";import{b as ls}from"./member-route-ZLy3opLv.js";import{h as cs}from"./post-helpers-DR3PcyZg.js";import{f as os,g as ds}from"./stats-CIGz2Win.js";import{g as te}from"./posts-Bx1RWrub.js";import"./arrow-right-BiAOKOto.js";import"./_baseAssignValue-CnqN6ZMT.js";import"./index-DRUPF8nN.js";import"./post-share-modal-B4Rvo7W1.js";import"./share-modal-CXU4tGY8.js";import"./copy-BBLeLEnG.js";import"./get-site-timezone-BDBAcjmq.js";import"./trash-B2ESGftj.js";import"./mail-i2qs8CIG.js";import"./sprout-DZ4tZ78G.js";import"./PolarAngleAxis-Cavik65s.js";const ms="FeedbackResponseType",ps=Re({dataType:ms,path:t=>`/feedback/${t}/`}),us=(t,s)=>{const{data:c,isLoading:o,error:p}=ps(t,{searchParams:{limit:"50",...s!==void 0?{score:s.toString()}:{}}});return{feedback:i.useMemo(()=>c?.feedback?c.feedback:[],[c]),isLoading:o,error:p}},xs=({feedbackStats:t})=>{const{postId:s}=Te(),c=ne(),[o,p]=i.useState("positive"),n=9,f=o==="positive"?1:0,{feedback:S,isLoading:_}=us(s||"",f),{totalPages:k,paginatedData:a,nextPage:v,previousPage:R,hasNextPage:y,hasPreviousPage:u}=oe({data:S,itemsPerPage:n}),g=_;return e.jsxs(Y,{children:[e.jsxs(J,{className:"pb-5",children:[e.jsx(Q,{children:"Feedback"}),e.jsx(X,{children:"What did your readers think?"})]}),t.totalFeedback>0?e.jsxs(F,{className:"pb-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx(Ue,{className:"pb-3",defaultValue:"positive",value:o,variant:"button",onValueChange:r=>p(r),children:e.jsxs(Oe,{className:"gap-1",children:[e.jsx(se,{className:"h-7",value:"positive",children:e.jsxs("div",{className:"flex items-center gap-1 text-xs",children:[e.jsx(We,{size:14,strokeWidth:1.25}),e.jsx("span",{className:"hidden font-medium sm:visible! sm:inline!",children:"More like this"}),e.jsx("span",{className:"font-semibold tracking-tight",children:N(t.positiveFeedback/t.totalFeedback)})]})}),e.jsx(se,{className:"h-7",value:"negative",children:e.jsxs("div",{className:"flex items-center gap-1 text-xs",children:[e.jsx(Ge,{size:14,strokeWidth:1.25}),e.jsx("span",{className:"hidden font-medium sm:visible! sm:inline!",children:"Less like this"}),e.jsx("span",{className:"font-semibold tracking-tight",children:N(t.negativeFeedback/t.totalFeedback)})]})})]})}),e.jsx(re,{className:"mr-2 mb-3 lg:hidden xl:visible! xl:block!",children:"Date"})]}),e.jsx(K,{}),g?e.jsx(le,{className:"mt-3",lines:3}):a&&a.length>0?e.jsx("div",{className:"flex w-full flex-col py-3",children:a.map(r=>e.jsxs("div",{className:"flex h-10 w-full items-center justify-between gap-3 rounded-sm border-none px-2 text-sm hover:cursor-pointer hover:bg-accent",onClick:()=>{c(`/members/${r.member.id}`,{crossApp:!0})},children:[e.jsxs("div",{className:"flex items-center gap-2 font-medium",children:[e.jsxs(Fe,{className:"size-7",children:[r.member?.avatar_image&&e.jsx("img",{className:"absolute aspect-square size-full",src:r.member?.avatar_image}),e.jsx(Se,{className:"text-white",style:{backgroundColor:`${Me(ee(r.member),"75","55")}`},children:ze(r.member)})]}),ee(r.member)]}),e.jsx("div",{className:"whitespace-nowrap text-muted-foreground",children:Ee(r.created_at)})]},r.id))}):e.jsx("div",{className:"flex h-full items-center justify-center py-8 text-center text-sm text-muted-foreground",children:e.jsxs("div",{children:["No ",o==="positive"?"positive":"negative"," feedback yet"]})})]}):e.jsxs(F,{className:"flex grow flex-col items-center justify-center text-center text-sm text-muted-foreground",children:[e.jsx("div",{children:"No members have given feedback yet"}),e.jsx("div",{children:"When someone does, you'll see their response here."})]}),t.totalFeedback>0&&e.jsx(ce,{className:"grow-0",children:e.jsxs("div",{className:"flex w-full items-center justify-between gap-3",children:[e.jsxs(q,{variant:"outline",onClick:()=>{const r=`(feedback.post_id:'${s}'+feedback.score:1)`,T=`(feedback.post_id:'${s}'+feedback.score:0)`,d=`${encodeURIComponent(r)}&post=${s}`,L=`${encodeURIComponent(T)}&post=${s}`;c(`/members?filter=${o==="positive"?d:L}`,{crossApp:!0})},children:["View all",e.jsx(Be,{})]}),k>1&&e.jsx(de,{className:"pb-0",children:e.jsxs(me,{children:[e.jsx(pe,{disabled:!u,onClick:R}),e.jsx(ue,{disabled:!y,onClick:v})]})})]})})]})},gs=()=>{const{mutateAsync:t,isLoading:s}=as();return{editLinks:t,isEditLinksLoading:s}},hs=t=>{const{data:s,isLoading:c}=te(t),{data:o,isLoading:p}=te(t,{searchParams:{include:"count.positive_feedback,count.negative_feedback"}}),n=i.useMemo(()=>s?.posts[0],[s]),f=i.useMemo(()=>o?.posts[0],[o]),S=i.useMemo(()=>n?{sent:n.email?.email_count||0,opened:n.email?.opened_count||0,clicked:n.count?.clicks||0,openedRate:n.email?.opened_count?n.email.opened_count/n.email.email_count:0,clickedRate:n.count?.clicks&&n.email?.email_count?n.count.clicks/n.email.email_count:0}:{sent:0,opened:0,clicked:0,openedRate:0,clickedRate:0},[n]),_=i.useMemo(()=>{if(!f?.count)return{positiveFeedback:0,negativeFeedback:0,totalFeedback:0};const x=f.count.positive_feedback||0,j=f.count.negative_feedback||0,w=x+j;return{positiveFeedback:x,negativeFeedback:j,totalFeedback:w}},[f]),k=i.useMemo(()=>n?.newsletter?.id,[n]),{data:a,isLoading:v}=os({searchParams:k?{newsletter_id:k}:{},enabled:!!k}),R=i.useMemo(()=>a?.stats?a.stats.map(x=>x.post_id):[],[a]),{data:y,isLoading:u}=ds({searchParams:k&&R.length>0?{newsletter_id:k,post_ids:R.join(",")}:{},enabled:!!k&&R.length>0}),g=i.useMemo(()=>{if(!a?.stats)return;const x=a.stats,j=y?.stats||[],w=new Map;j.forEach(b=>{w.set(b.post_id,b)});const C=x.map(b=>{const E=w.get(b.post_id);return{...b,total_clicks:E?.total_clicks||0,click_rate:E?.click_rate||0}});return{...a,stats:C}},[a,y]),r=v||u,{data:T,isLoading:d,refetch:L}=is({searchParams:{filter:`post_id:'${t}'`}}),h=i.useMemo(()=>{if(!g||!g.stats)return{openRate:0,clickRate:0};const x=g.stats;if(x.length===0)return{openRate:0,clickRate:0};const j=x.reduce((C,b)=>C+(b.open_rate||0),0),w=x.reduce((C,b)=>C+(b.click_rate||0),0);return{openRate:Number((j/x.length).toFixed(2)),clickRate:Number((w/x.length).toFixed(2))}},[g]),A=i.useMemo(()=>ns(T),[T]),D=i.useMemo(()=>({openedRate:h.openRate,clickedRate:h.clickRate}),[h]);return{post:n,stats:S,feedbackStats:_,averageStats:D,topLinks:A,refetchTopLinks:L,isLoading:c||p||r||d}},bs=({breakpoints:t={sm:1080,md:1280,lg:1360}}={})=>{const[s,c]=i.useState("md");return i.useEffect(()=>{const o=()=>{const p=window.innerWidth;p<t.sm?c("sm"):p<t.md?c("md"):c("lg")};return o(),window.addEventListener("resize",o),()=>window.removeEventListener("resize",o)},[t]),{chartSize:s,isSmall:s==="sm",isMedium:s==="md",isLarge:s==="lg"}},ae=()=>e.jsx("div",{className:"absolute top-1/2 -right-4 z-10 hidden size-8 -translate-y-1/2 items-center justify-center rounded-full border bg-background text-muted-foreground md:visible! md:flex!",children:e.jsx(Ie,{className:"ml-0.5",size:16,strokeWidth:1.5})}),ie=({dataColor:t,value:s,avgValue:c})=>e.jsxs("div",{className:"absolute top-6 left-1/2 z-50 flex w-[200px] -translate-x-1/2 flex-col items-stretch gap-1.5 rounded-md bg-background px-4 py-2 text-sm opacity-0 shadow-md transition-all group-hover/block:top-3 group-hover/block:opacity-100",children:[e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground",children:[e.jsx("div",{className:"size-2 rounded-full bg-chart-blue opacity-50",style:{backgroundColor:t}}),"This newsletter"]}),e.jsx("div",{className:"text-right font-mono",children:s})]}),e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground",children:[e.jsx("div",{className:"size-2 rounded-full bg-chart-gray opacity-80"}),"Average"]}),e.jsx("div",{className:"text-right font-mono",children:c})]})]}),Os=()=>{const t=ne(),[s,c]=i.useState(null),[o,p]=i.useState(""),n=i.useRef(null),f=i.useRef(null),S=10,{chartSize:_}=bs(),{appSettings:k}=$e(),{emailTrackClicks:a,emailTrackOpens:v}=k?.analytics||{},{post:R,isPostLoading:y,postId:u}=rs(),g=l=>t(ls({filter:l}),{crossApp:!0}),r=R,T=cs(r);i.useEffect(()=>{!y&&!T&&t(`/posts/analytics/${u}`)},[t,u,y,T]);const{stats:d,averageStats:L,topLinks:h,isLoading:A,refetchTopLinks:D}=hs(u),{editLinks:x}=gs(),j=i.useMemo(()=>{if(!r?.count)return{positiveFeedback:0,negativeFeedback:0,totalFeedback:0};const l=r.count.positive_feedback||0,m=r.count.negative_feedback||0,P=l+m;return{positiveFeedback:l,negativeFeedback:m,totalFeedback:P}},[r]),w=i.useMemo(()=>r?.newsletter?.feedback_enabled===!0,[r]),C=i.useMemo(()=>j.totalFeedback>0?!0:w,[j.totalFeedback,w]),b=l=>{const m=G(h,l);m&&(c(l),p(m.link.to))},E=()=>{if(!s)return;const l=G(h,s);if(!l)return;const m=o.trim();if(m===""||m===l.link.to){c(null),p("");return}x({originalUrl:l.link.originalTo,editedUrl:o,postId:u},{onSuccess:()=>{c(null),p(""),D()}})},{totalPages:xe,paginatedData:ge,nextPage:he,previousPage:be,hasNextPage:fe,hasPreviousPage:ke}=oe({data:h,itemsPerPage:S});i.useEffect(()=>{if(s&&n.current){n.current.focus();const l=G(h,s),m=P=>{f.current&&!f.current.contains(P.target)&&o===l?.link.to&&(c(null),p(""))};return document.addEventListener("mousedown",m),()=>{document.removeEventListener("mousedown",m)}}},[s,o,h]);const I=A||y,ve=[{datatype:"Sent",value:1,fill:"url(#gradientPurple)",color:"var(--chart-purple)"}],je={percentage:{label:"O"},Average:{label:"Average"},"This newsletter":{label:"This newsletter"}},Ne=[{datatype:"Average",value:L.openedRate,fill:"url(#gradientGray)",color:"var(--chart-gray)"},{datatype:"This newsletter",value:d.openedRate,fill:"url(#gradientBlue)",color:"var(--chart-blue)"}],we={percentage:{label:"Opened"},Average:{label:"Average"},"This newsletter":{label:"This newsletter"}},Ce=[{datatype:"Average",value:L.clickedRate,fill:"url(#gradientGray)",color:"var(--chart-gray)"},{datatype:"This newsletter",value:d.clickedRate,fill:"url(#gradientTeal)",color:"var(--chart-teal)"}],ye={percentage:{label:"Clicked"},Average:{label:"Average"},"This newsletter":{label:"This newsletter"}};let z="grid-cols-3",M="aspect-[16/10] w-full max-w-[320px] sm:aspect-[2/1] md:aspect-[10/14] md:max-w-none lg:aspect-square";return(!a||!v)&&(z="grid-cols-2",M="aspect-[16/10] w-full max-w-[320px] sm:aspect-[2/1] md:aspect-square md:max-w-none lg:aspect-[15/10]"),!a&&!v&&(z="grid-cols-1",M="aspect-square w-full sm:aspect-[16/10] md:max-w-[320px] md:max-h-[320px] lg:aspect-[12/10]"),e.jsxs(e.Fragment,{children:[e.jsx(Ke,{currentTab:"Newsletter"}),e.jsx(qe,{children:e.jsxs("div",{className:`grid grid-cols-1 gap-6 ${C&&a&&"lg:grid-cols-2"}`,children:[e.jsxs(Y,{className:C&&a?"lg:col-span-2":"",children:[e.jsxs(J,{className:"hidden",children:[e.jsx(Q,{children:"Newsletters"}),e.jsx(X,{children:"How did this post perform"})]}),I?e.jsx(F,{className:"h-[25vw] p-6",children:e.jsx(Ae,{})}):e.jsxs(F,{className:"p-0",children:[e.jsxs("div",{className:`grid ${z} items-stretch border-b`,children:[e.jsxs(B,{className:"group relative isolate grow p-3 md:px-6 md:py-5",children:[e.jsx(V,{onClick:()=>{g(`emails.post_id:${u}`)},children:"View members →"}),e.jsxs(U,{onClick:()=>{g(`emails.post_id:${u}`)},children:[e.jsx("div",{className:"ml-0.5 size-[9px] rounded-full bg-chart-purple opacity-50"}),"Sent"]}),e.jsx(O,{children:e.jsx(W,{className:"text-xl leading-none sm:text-2xl md:text-[2.6rem]",children:$(d.sent)})})]}),v&&e.jsxs(B,{className:"p-3 md:px-6 md:py-5",children:[e.jsx(V,{onClick:()=>{g(`opened_emails.post_id:${u}`)},children:"View members →"}),e.jsxs(U,{onClick:()=>{g(`opened_emails.post_id:${u}`)},children:[e.jsx("div",{className:"ml-0.5 size-[9px] rounded-full bg-chart-blue opacity-50"}),"Opened"]}),e.jsx(O,{children:e.jsx(W,{className:"text-xl leading-none sm:text-2xl md:text-[2.6rem]",children:$(d.opened)})})]}),a&&e.jsxs(B,{className:"group relative isolate grow p-3 md:px-6 md:py-5",children:[e.jsx(V,{onClick:()=>{g(`clicked_links.post_id:${u}`)},children:"View members →"}),e.jsxs(U,{onClick:()=>{g(`clicked_links.post_id:${u}`)},children:[e.jsx("div",{className:"ml-0.5 size-[9px] rounded-full bg-chart-teal opacity-50"}),"Clicked"]}),e.jsx(O,{children:e.jsx(W,{className:"text-xl leading-none sm:text-2xl md:text-[2.6rem]",children:$(d.clicked)})})]})]}),e.jsxs("div",{className:`$ mx-auto grid grid-cols-1 items-center justify-center gap-4 transition-all md:gap-0 ${z==="grid-cols-2"&&"md:grid-cols-2"} ${z==="grid-cols-3"&&"md:grid-cols-3"}`,children:[e.jsxs("div",{className:`relative border-r-0 px-6 ${(v||a)&&"md:border-r"}`,children:[e.jsx(H,{className:M,config:je,data:ve,percentageLabel:"Sent",percentageValue:N(1),size:_,tooltip:!1}),(v||a)&&e.jsx(ae,{})]}),v&&e.jsxs("div",{className:`group/block relative border-r-0 px-6 transition-all hover:bg-muted/25 ${a&&"md:border-r"}`,children:[e.jsx(ie,{avgValue:N(L.openedRate),dataColor:"var(--chart-blue)",value:N(d.openedRate)}),e.jsx(H,{className:M,config:we,data:Ne,percentageLabel:"Open rate",percentageValue:N(d.openedRate),size:_,tooltip:!1}),a&&e.jsx(ae,{})]}),a&&e.jsxs("div",{className:"group/block relative px-6 transition-all hover:bg-muted/25",children:[e.jsx(ie,{avgValue:N(L.clickedRate),dataColor:"var(--chart-teal)",value:N(d.clickedRate)}),e.jsx(H,{className:M,config:ye,data:Ce,percentageLabel:"Click rate",percentageValue:N(d.clickedRate),size:_,tooltip:!1})]})]})]})]}),C&&e.jsx(xs,{feedbackStats:j}),a&&e.jsxs(Y,{className:"group/datalist overflow-hidden",children:[e.jsxs("div",{className:"flex items-center justify-between p-6",children:[e.jsxs(J,{className:"p-0",children:[e.jsx(Q,{children:"Newsletter clicks"}),e.jsx(X,{children:"Which links resonated with your readers"})]}),e.jsx(re,{className:"mr-2",children:"Members"})]}),I?e.jsxs(F,{className:"p-6 pt-0",children:[e.jsx(K,{}),e.jsx(le,{className:"mt-6"})]}):e.jsxs(F,{className:"pb-0",children:[e.jsx(K,{}),h.length>0?e.jsx(Ye,{className:"",children:e.jsx(Je,{children:ge?.map(l=>{const m=d.clicked>0?l.count/d.clicked:0,P=l.link.link_id,Z=l.link.title,Le=l.link.to,Pe=l.link.edited;return e.jsxs(Qe,{children:[s!==P&&e.jsx(Xe,{style:{width:`${m?Math.round(m*100):0}%`}}),e.jsx(Ze,{className:"w-full",children:s===P?e.jsxs("div",{ref:f,className:"flex w-full items-center gap-2",children:[e.jsx(De,{ref:n,className:"z-50 h-7 w-full border-border bg-background text-sm",value:o,onChange:_e=>p(_e.target.value)}),e.jsx(q,{size:"sm",onClick:E,children:"Update"})]}):e.jsxs(e.Fragment,{children:[e.jsx(q,{className:"mr-2 shrink-0 bg-background",size:"sm",variant:"outline",onClick:()=>b(P),children:e.jsx(Ve,{})}),e.jsx("a",{className:"block truncate font-medium hover:underline",href:Le,rel:"noreferrer",target:"_blank",title:Z,children:Z}),Pe&&e.jsx("span",{className:"ml-1 text-gray-500",children:"(edited)"})]})}),e.jsxs(es,{children:[e.jsx(ss,{children:$(l.count||0)}),e.jsx(ts,{children:N(m)})]})]},P)})})}):e.jsx("div",{className:"py-20 text-center text-sm text-gray-700",children:"You have no links in your post."})]}),!I&&h.length>1&&e.jsx(ce,{children:e.jsxs("div",{className:"flex w-full items-start justify-between gap-3",children:[e.jsxs("div",{className:"mt-2 flex items-start gap-2 pl-4 text-sm text-green",children:[e.jsx(He,{size:20,strokeWidth:1.5}),"Sent a broken link? You can update it!"]}),xe>1&&e.jsx(de,{className:"pb-0",children:e.jsxs(me,{children:[e.jsx(pe,{disabled:!ke,onClick:be}),e.jsx(ue,{disabled:!fe,onClick:he})]})})]})})]})]})})]})};export{Os as default};
@@ -1 +0,0 @@
1
- import{u as Y,aX as A,r as x,j as e,B as E,aY as K,ao as C,aZ as T,a_ as X,af as re,ap as f,a$ as F,b0 as ie,b1 as oe,al as le,am as q,b2 as ne,S as U}from"./index-qHUvPjQB.js";import{u as ce,c as de,D as me}from"./growth-DRH8zUIJ.js";import{K as L,a as S,b as _,c as D}from"./kpi-card-CzlPIEPE.js";import{C as O,a as P,b as V,c as y,u as Q}from"./pagemenu-VJXMoMB4.js";import{D as pe,a as xe,b as ue,c as he,d as ge,e as je,f as fe,g as ve}from"./data-list-BveeOSGI.js";import{K as R,a as I,b as M}from"./kpi-card-zyi5Onb0.js";import{u as be,p as Ne,N as ye,c as we}from"./links-CiS5BPKS.js";import{M as ke}from"./mail-i2qs8CIG.js";import{P as Ce,a as Le}from"./post-analytics-header-PecXsIT-.js";import{S as Se,K as _e}from"./kpis-Cw5ZRQhk.js";import{E as De}from"./empty-indicator-Dhi_KeYX.js";import{G as Te}from"./gh-chart-B9_ywrJJ.js";import{u as Z,S as Re}from"./post-analytics-context-QLZsZCFg.js";import{h as Ie,i as Me}from"./post-helpers-DR3PcyZg.js";import{S as Ae}from"./sprout-DZ4tZ78G.js";import"./wallet-cards-IEmcxJvG.js";import"./source-icon-cjy79jGT.js";import"./source-utils-B1S3ZHA2.js";import"./table-mHKjXQba.js";import"./member-route-ZLy3opLv.js";import"./currency-fEUUCkj0.js";import"./stats-CIGz2Win.js";import"./chart-_EXssQtm.js";import"./_baseAssignValue-CnqN6ZMT.js";import"./index-DRUPF8nN.js";import"./PolarAngleAxis-Cavik65s.js";import"./post-share-modal-B4Rvo7W1.js";import"./share-modal-CXU4tGY8.js";import"./copy-BBLeLEnG.js";import"./get-site-timezone-BDBAcjmq.js";import"./posts-Bx1RWrub.js";import"./trash-B2ESGftj.js";import"./arrow-right-BiAOKOto.js";import"./tabs-B93IVRBz.js";import"./kpi-tabs-Dsa5ldXK.js";import"./a-large-small-Wi4LtZX-.js";import"./list-filter-zmkB7rg4.js";import"./upload-DXQRkBBq.js";import"./at-sign-z5gBMxDW.js";import"./underline-vo-bPRac.js";import"./loader-circle-B5UPqSok.js";import"./chevron-up-DVt6fhV3.js";import"./message-square-text-bG9IoWIt.js";import"./hash-UvX5iOa9.js";import"./inbox-By7HZskI.js";import"./minus-DWx9VUtr.js";import"./pencil-DHNmlLjO.js";import"./square-vOzqJf7x.js";import"./user-round-check-Dp9a2x-e.js";import"./repeat-Cn2sKd-L.js";import"./reply-D7E-ZMd5.js";import"./rocket-DnH0XAGW.js";import"./tags-kUHJ1MZo.js";import"./user-round-x-DwCTGlxc.js";const Ee=({post:l,isNewsletterStatsLoading:c,isWebShown:u})=>{const{postId:s}=Y(),a=A(),t=x.useMemo(()=>{const o=l.email?.opened_count||0,r=l.email?.email_count||0,p=l.count?.clicks||0;return{opened:o,clicked:p,openedRate:r>0?o/r:0,clickedRate:r>0?p/r:0,sent:r}},[l]),{data:m}=be({searchParams:{filter:`post_id:'${s}'`}}),h=x.useMemo(()=>Ne(m),[m]),g=[{datatype:"Clicked",value:t.clickedRate,fill:"url(#gradientTeal)",color:"var(--chart-teal)"},{datatype:"Opened",value:t.openedRate,fill:"url(#gradientBlue)",color:"var(--chart-blue)"}],n={percentage:{label:"Opened"},Average:{label:"Clicked"},"This newsletter":{label:"Opened"}},i=l.email_only||!u;return e.jsxs(O,{className:`group/datalist overflow-hidden ${i&&"col-span-2"}`,children:[e.jsxs("div",{className:"relative flex items-center justify-between gap-6",children:[e.jsx(P,{children:e.jsxs(V,{className:"flex items-center gap-1.5 text-lg",children:[e.jsx(ke,{size:16,strokeWidth:1.5}),"Newsletter performance"]})}),e.jsx(E,{className:"absolute right-6 translate-x-10 opacity-0 transition-all duration-300 group-hover/datalist:translate-x-0 group-hover/datalist:opacity-100",size:"sm",variant:"outline",onClick:()=>{a(`/posts/analytics/${s}/newsletter`)},children:"View more"})]}),c?e.jsx(y,{children:e.jsx("div",{className:"mx-auto flex min-h-[250px] items-center justify-center xl:size-full",children:e.jsx(K,{})})}):e.jsxs(y,{className:`${i&&"grid grid-cols-2"}`,children:[e.jsxs("div",{className:`${i&&"border-r pr-6"}`,children:[e.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[e.jsx(R,{className:"group relative flex grow flex-row items-start justify-between gap-5 border-none px-0 pt-0",children:e.jsxs("div",{className:"flex grow flex-col gap-1.5 border-none pb-0",children:[e.jsx(I,{color:"var(--chart-blue)",children:"Open rate"}),e.jsx(M,{value:C(t.openedRate)})]})}),e.jsx(R,{className:"group relative flex grow flex-row items-start justify-between gap-5 border-none px-0 pt-0",children:e.jsxs("div",{className:"flex grow flex-col gap-1.5 border-none pb-0",children:[e.jsx(I,{color:"var(--chart-teal)",children:"Click rate"}),e.jsx(M,{value:C(t.clickedRate)})]})})]}),!i&&e.jsx(T,{}),e.jsx("div",{className:"mx-auto my-6 h-[240px]",children:e.jsx(ye,{className:"pointer-events-none aspect-square h-[240px]",config:n,data:g,tooltip:!1})})]}),e.jsxs("div",{className:`${i&&"pl-6"}`,children:[!i&&e.jsx(T,{}),e.jsxs("div",{className:i?"":"pt-3",children:[e.jsxs("div",{className:`flex items-center justify-between gap-3 ${i?"pb-3":"py-3"}`,children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:"Top clicked links in this email"}),e.jsx(X,{children:"Members"})]}),h.length>0?e.jsx(pe,{className:"",children:e.jsx(xe,{children:h.slice(0,i?10:5).map(o=>{const r=t.clicked>0?o.count/t.clicked:0;return e.jsxs(ue,{children:[e.jsx(he,{style:{width:`${r?Math.round(r*100):0}%`}}),e.jsx(ge,{children:e.jsxs("div",{className:"flex items-center space-x-2 overflow-hidden",children:[e.jsx(re,{className:"shrink-0 text-muted-foreground",size:16,strokeWidth:1.5}),e.jsx("a",{className:"block truncate font-medium hover:underline",href:o.link.to,rel:"noreferrer",target:"_blank",title:o.link.to,children:we(o.link.to,!0)})]})}),e.jsxs(je,{children:[e.jsx(fe,{children:f(o.count||0)}),e.jsx(ve,{children:C(r)})]})]},o.link.link_id)})})}):e.jsx("div",{className:"py-20 text-center text-sm text-gray-700",children:"You have no links in your post."})]})]})]})]})},Ke=({chartData:l,range:c,isLoading:u,visitors:s,sourcesData:a,isNewsletterShown:t=!0})=>{const{postId:m}=Y(),h=A(),{data:g}=Z(),n=g?.url,i=g?.icon,o=x.useMemo(()=>a?a.reduce((r,p)=>r+Number(p.visits||0),0):0,[a]);return e.jsx(e.Fragment,{children:e.jsxs(O,{className:`group/datalist overflow-hidden ${!t&&"col-span-2"}`,"data-testid":"web-performance",children:[e.jsxs("div",{className:"relative flex items-center justify-between gap-6",children:[e.jsx(P,{children:e.jsxs(V,{className:"flex items-center gap-1.5 text-lg",children:[e.jsx(F,{size:16,strokeWidth:1.5}),"Web performance"]})}),e.jsx(E,{className:"absolute right-6 translate-x-10 opacity-0 transition-all duration-300 group-hover/datalist:translate-x-0 group-hover/datalist:opacity-100",size:"sm",variant:"outline",onClick:()=>{h(`/posts/analytics/${m}/web`)},children:"View more"})]}),e.jsxs(y,{children:[e.jsxs("div",{children:[e.jsx(R,{className:"group relative flex grow flex-row items-start justify-between gap-5 border-none px-0 pt-0","data-testid":"unique-visitors",children:e.jsxs("div",{className:"flex grow flex-col gap-1.5 border-none pb-0",children:[e.jsx(I,{color:"var(--chart-blue)",children:"Unique visitors"}),e.jsx(M,{value:f(s)})]})}),e.jsx(T,{}),e.jsx("div",{className:"max-h-[288px] py-6 [&_.recharts-cartesian-axis-tick-value]:fill-gray-500",children:u?e.jsx("div",{className:"flex h-[16vw] min-h-[240px] items-center justify-center",children:e.jsx(K,{})}):e.jsx(Te,{className:"aspect-auto h-[240px] w-full",color:"var(--chart-blue)",data:l||[],id:"visitors",range:c,syncId:"overview-charts"})})]}),t&&e.jsxs("div",{className:t?"border-t pt-3":"-mt-3",children:[e.jsx("div",{children:e.jsxs("div",{className:"flex items-center justify-between gap-3 py-3",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:"How readers found this post"}),e.jsx(X,{children:"Visitors"})]})}),a&&a.length>0?e.jsx(Se,{data:a,range:c,siteIcon:i,siteUrl:n,tableOnly:!0,topSourcesLimit:5,totalVisitors:o}):e.jsx(De,{className:"h-full py-10",description:"Once someone visits this post, sources will show here",title:"No visitors since you published this post",children:e.jsx(F,{strokeWidth:1.5})})]})]})]})})},Os=()=>{const l=A(),{statsConfig:c,isLoading:u,post:s,isPostLoading:a,postId:t}=Z(),{totals:m,isLoading:h,currencySymbol:g}=ce(t),{appSettings:n}=ie(),{emailTrackClicks:i,emailTrackOpens:o}=n?.analytics||{},r=x.useMemo(()=>s?.published_at?oe(s.published_at):Re.ALL_TIME.value,[s?.published_at]),{startDate:p,endDate:$,timezone:z}=le(r),W=x.useMemo(()=>{const d={site_uuid:c?.id||"",date_from:q(p),date_to:q($),timezone:z,post_uuid:""};return!a&&s?.uuid?{...d,post_uuid:s.uuid}:d},[a,s,c?.id,p,$,z]),{data:v,loading:G}=Q({endpoint:"api_kpis",statsConfig:c||{id:""},params:W}),J=x.useMemo(()=>v?.length?v.reduce((d,j)=>{const H=Number(j.visits);return d+(isNaN(H)?0:H)},0):0,[v]),b=_e.visits,ee=ne(v||[],r,b.dataKey,"sum")?.map(d=>{const j=Number(d[b.dataKey]);return{date:String(d.date),value:j,formattedValue:b.formatter(j),label:b.label}}),{data:se,loading:ae}=Q({endpoint:"api_top_sources",statsConfig:c||{id:""},params:W}),B=u||h||a||G,te=a||u||G,w=Ie(s)&&o&&i,k=!s?.email_only&&n?.analytics.webAnalytics,N=n?.analytics.membersTrackSources;return x.useEffect(()=>{!a&&s&&Me(s)&&!n?.analytics.webAnalytics&&N&&l(`/posts/analytics/${t}/growth`,{replace:!0})},[a,s,n?.analytics.webAnalytics,l,t,N]),a?e.jsx(K,{}):e.jsxs(e.Fragment,{children:[e.jsx(Ce,{currentTab:"Overview"}),e.jsx(Le,{children:e.jsxs("div",{className:"flex flex-col gap-6 lg:grid lg:grid-cols-2",children:[k&&e.jsx(Ke,{chartData:ee,isLoading:te||B||ae,isNewsletterShown:w,range:r,sourcesData:se,visitors:J}),w&&e.jsx(Ee,{isNewsletterStatsLoading:a,isWebShown:k,post:s}),N&&e.jsxs(O,{className:"group col-span-2 overflow-hidden p-0","data-testid":"growth",children:[e.jsxs("div",{className:"relative flex items-center justify-between gap-6",children:[e.jsx(P,{children:e.jsxs(V,{className:"flex items-center gap-1.5 text-lg",children:[e.jsx(Ae,{size:16,strokeWidth:1.5}),"Growth"]})}),e.jsx(E,{className:"absolute right-6 translate-x-10 opacity-0 transition-all duration-200 group-hover:translate-x-0 group-hover:opacity-100",size:"sm",variant:"outline",onClick:()=>{l(`/posts/analytics/${t}/growth`)},children:"View more"})]}),e.jsx(y,{className:"flex flex-col gap-6 px-0 md:grid md:grid-cols-3 md:items-stretch md:gap-0",children:B?Array.from({length:3},(d,j)=>e.jsxs("div",{className:"h-[98px] gap-1 border-r px-6 py-5 last:border-r-0",children:[e.jsx(U,{className:"w-2/3"}),e.jsx(U,{className:"h-7 w-12"})]},j)):e.jsxs(e.Fragment,{children:[e.jsxs(L,{className:"grow gap-1 py-0",children:[e.jsx(S,{children:"Free members"}),e.jsx(_,{children:e.jsx(D,{className:"text-[2.2rem]",children:f(m?.free_members||0)})})]}),n?.paidMembersEnabled&&e.jsxs(e.Fragment,{children:[e.jsxs(L,{className:"grow gap-1 py-0",children:[e.jsx(S,{children:"Paid members"}),e.jsx(_,{children:e.jsx(D,{className:"text-[2.2rem]",children:f(m?.paid_members||0)})})]}),e.jsxs(L,{className:"grow gap-1 py-0",children:[e.jsx(S,{children:"MRR impact"}),e.jsx(_,{children:e.jsxs(D,{className:"text-[2.2rem]",children:[g,f(de(m?.mrr||0))]})})]})]})]})})]}),!k&&!w&&!N&&e.jsx(me,{className:"col-span-2 py-20"})]})})]})};export{Os as default};
@@ -1,454 +0,0 @@
1
- import { k as R, y as E, a as y, j as f, x as _, G as D, i as C, b as N, u as T, W as $, l as p, B as h, A as b, E as A, X as B, V as X, R as z, c as m, q as w } from "./index-BAF0YXsp.mjs";
2
- function P(t, e) {
3
- if (typeof t == "function")
4
- return t(e);
5
- t != null && (t.current = e);
6
- }
7
- function I(...t) {
8
- return (e) => {
9
- let n = !1;
10
- const o = t.map((r) => {
11
- const s = P(r, e);
12
- return !n && typeof s == "function" && (n = !0), s;
13
- });
14
- if (n)
15
- return () => {
16
- for (let r = 0; r < o.length; r++) {
17
- const s = o[r];
18
- typeof s == "function" ? s() : P(t[r], null);
19
- }
20
- };
21
- };
22
- }
23
- function gt(...t) {
24
- return R(I(...t), t);
25
- }
26
- function ht(t, e) {
27
- const n = E(e), o = (s) => {
28
- const { children: c, ...i } = s, a = y(() => i, Object.values(i));
29
- return /* @__PURE__ */ f.jsx(n.Provider, { value: a, children: c });
30
- };
31
- o.displayName = t + "Provider";
32
- function r(s) {
33
- const c = _(n);
34
- if (c) return c;
35
- if (e !== void 0) return e;
36
- throw new Error(`\`${s}\` must be used within \`${t}\``);
37
- }
38
- return [o, r];
39
- }
40
- function yt(t, e = []) {
41
- let n = [];
42
- function o(s, c) {
43
- const i = E(c), a = n.length;
44
- n = [...n, c];
45
- const l = (d) => {
46
- const { scope: v, children: S, ...g } = d, O = v?.[t]?.[a] || i, W = y(() => g, Object.values(g));
47
- return /* @__PURE__ */ f.jsx(O.Provider, { value: W, children: S });
48
- };
49
- l.displayName = s + "Provider";
50
- function u(d, v) {
51
- const S = v?.[t]?.[a] || i, g = _(S);
52
- if (g) return g;
53
- if (c !== void 0) return c;
54
- throw new Error(`\`${d}\` must be used within \`${s}\``);
55
- }
56
- return [l, u];
57
- }
58
- const r = () => {
59
- const s = n.map((c) => E(c));
60
- return function(i) {
61
- const a = i?.[t] || s;
62
- return y(
63
- () => ({ [`__scope${t}`]: { ...i, [t]: a } }),
64
- [i, a]
65
- );
66
- };
67
- };
68
- return r.scopeName = t, [o, F(r, ...e)];
69
- }
70
- function F(...t) {
71
- const e = t[0];
72
- if (t.length === 1) return e;
73
- const n = () => {
74
- const o = t.map((r) => ({
75
- useScope: r(),
76
- scopeName: r.scopeName
77
- }));
78
- return function(s) {
79
- const c = o.reduce((i, { useScope: a, scopeName: l }) => {
80
- const d = a(s)[`__scope${l}`];
81
- return { ...i, ...d };
82
- }, {});
83
- return y(() => ({ [`__scope${e.scopeName}`]: c }), [c]);
84
- };
85
- };
86
- return n.scopeName = e.scopeName, n;
87
- }
88
- function vt(t, e, { checkForDefaultPrevented: n = !0 } = {}) {
89
- return function(r) {
90
- if (t?.(r), n === !1 || !r.defaultPrevented)
91
- return e?.(r);
92
- };
93
- }
94
- var H = globalThis?.document ? D : () => {
95
- }, U = $[" useInsertionEffect ".trim().toString()] || H;
96
- function St({
97
- prop: t,
98
- defaultProp: e,
99
- onChange: n = () => {
100
- },
101
- caller: o
102
- }) {
103
- const [r, s, c] = V({
104
- defaultProp: e,
105
- onChange: n
106
- }), i = t !== void 0, a = i ? t : r;
107
- {
108
- const u = C(t !== void 0);
109
- N(() => {
110
- const d = u.current;
111
- d !== i && console.warn(
112
- `${o} is changing from ${d ? "controlled" : "uncontrolled"} to ${i ? "controlled" : "uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`
113
- ), u.current = i;
114
- }, [i, o]);
115
- }
116
- const l = R(
117
- (u) => {
118
- if (i) {
119
- const d = Z(u) ? u(t) : u;
120
- d !== t && c.current?.(d);
121
- } else
122
- s(u);
123
- },
124
- [i, t, s, c]
125
- );
126
- return [a, l];
127
- }
128
- function V({
129
- defaultProp: t,
130
- onChange: e
131
- }) {
132
- const [n, o] = T(t), r = C(n), s = C(e);
133
- return U(() => {
134
- s.current = e;
135
- }, [e]), N(() => {
136
- r.current !== n && (s.current?.(n), r.current = n);
137
- }, [n, r]), [n, o, s];
138
- }
139
- function Z(t) {
140
- return typeof t == "function";
141
- }
142
- // @__NO_SIDE_EFFECTS__
143
- function G(t) {
144
- const e = /* @__PURE__ */ q(t), n = p((o, r) => {
145
- const { children: s, ...c } = o, i = h.toArray(s), a = i.find(K);
146
- if (a) {
147
- const l = a.props.children, u = i.map((d) => d === a ? h.count(l) > 1 ? h.only(null) : b(l) ? l.props.children : null : d);
148
- return /* @__PURE__ */ f.jsx(e, { ...c, ref: r, children: b(l) ? A(l, void 0, u) : null });
149
- }
150
- return /* @__PURE__ */ f.jsx(e, { ...c, ref: r, children: s });
151
- });
152
- return n.displayName = `${t}.Slot`, n;
153
- }
154
- // @__NO_SIDE_EFFECTS__
155
- function q(t) {
156
- const e = p((n, o) => {
157
- const { children: r, ...s } = n;
158
- if (b(r)) {
159
- const c = J(r), i = M(s, r.props);
160
- return r.type !== B && (i.ref = o ? I(o, c) : c), A(r, i);
161
- }
162
- return h.count(r) > 1 ? h.only(null) : null;
163
- });
164
- return e.displayName = `${t}.SlotClone`, e;
165
- }
166
- var k = /* @__PURE__ */ Symbol("radix.slottable");
167
- // @__NO_SIDE_EFFECTS__
168
- function Ct(t) {
169
- const e = ({ children: n }) => /* @__PURE__ */ f.jsx(f.Fragment, { children: n });
170
- return e.displayName = `${t}.Slottable`, e.__radixId = k, e;
171
- }
172
- function K(t) {
173
- return b(t) && typeof t.type == "function" && "__radixId" in t.type && t.type.__radixId === k;
174
- }
175
- function M(t, e) {
176
- const n = { ...e };
177
- for (const o in e) {
178
- const r = t[o], s = e[o];
179
- /^on[A-Z]/.test(o) ? r && s ? n[o] = (...i) => {
180
- const a = s(...i);
181
- return r(...i), a;
182
- } : r && (n[o] = r) : o === "style" ? n[o] = { ...r, ...s } : o === "className" && (n[o] = [r, s].filter(Boolean).join(" "));
183
- }
184
- return { ...t, ...n };
185
- }
186
- function J(t) {
187
- let e = Object.getOwnPropertyDescriptor(t.props, "ref")?.get, n = e && "isReactWarning" in e && e.isReactWarning;
188
- return n ? t.ref : (e = Object.getOwnPropertyDescriptor(t, "ref")?.get, n = e && "isReactWarning" in e && e.isReactWarning, n ? t.props.ref : t.props.ref || t.ref);
189
- }
190
- var Q = [
191
- "a",
192
- "button",
193
- "div",
194
- "form",
195
- "h2",
196
- "h3",
197
- "img",
198
- "input",
199
- "label",
200
- "li",
201
- "nav",
202
- "ol",
203
- "p",
204
- "select",
205
- "span",
206
- "svg",
207
- "ul"
208
- ], bt = Q.reduce((t, e) => {
209
- const n = /* @__PURE__ */ G(`Primitive.${e}`), o = p((r, s) => {
210
- const { asChild: c, ...i } = r, a = c ? n : e;
211
- return typeof window < "u" && (window[/* @__PURE__ */ Symbol.for("radix-ui")] = !0), /* @__PURE__ */ f.jsx(a, { ...i, ref: s });
212
- });
213
- return o.displayName = `Primitive.${e}`, { ...t, [e]: o };
214
- }, {});
215
- function Et(t, e) {
216
- t && X(() => t.dispatchEvent(e));
217
- }
218
- var Y = $[" useId ".trim().toString()] || (() => {
219
- }), tt = 0;
220
- function wt(t) {
221
- const [e, n] = T(Y());
222
- return H(() => {
223
- n((o) => o ?? String(tt++));
224
- }, [t]), t || (e ? `radix-${e}` : "");
225
- }
226
- function Nt(t) {
227
- const e = C(t);
228
- return N(() => {
229
- e.current = t;
230
- }), y(() => (...n) => e.current?.(...n), []);
231
- }
232
- const et = {
233
- "2xs": "text-2xs",
234
- xs: "text-xs",
235
- sm: "text-sm",
236
- md: "text-md",
237
- lg: "text-lg",
238
- xl: "text-xl",
239
- "2xl": "text-2xl",
240
- "3xl": "text-3xl"
241
- }, nt = {
242
- regular: "font-normal",
243
- medium: "font-medium",
244
- semibold: "font-semibold",
245
- bold: "font-bold"
246
- }, rt = {
247
- primary: "text-text-primary",
248
- secondary: "text-text-secondary",
249
- tertiary: "text-text-tertiary",
250
- inverse: "text-text-inverse"
251
- }, ot = {
252
- none: "leading-none",
253
- snug: "leading-snug",
254
- normal: "leading-normal",
255
- relaxed: "leading-relaxed",
256
- tight: "leading-tight",
257
- tighter: "leading-tighter",
258
- supertight: "leading-supertight",
259
- body: "leading-body",
260
- heading: "leading-heading"
261
- }, x = z.forwardRef(
262
- function({
263
- as: e = "p",
264
- className: n,
265
- size: o = "md",
266
- weight: r = "regular",
267
- tone: s = "primary",
268
- leading: c = "body",
269
- truncate: i = !1,
270
- ...a
271
- }, l) {
272
- const u = e;
273
- return /* @__PURE__ */ f.jsx(
274
- u,
275
- {
276
- ref: l,
277
- className: m(
278
- et[o],
279
- nt[r],
280
- rt[s],
281
- ot[c],
282
- i && "truncate",
283
- n
284
- ),
285
- ...a
286
- }
287
- );
288
- }
289
- );
290
- x.displayName = "Text";
291
- const st = p(
292
- ({ className: t, ...e }, n) => /* @__PURE__ */ f.jsx(
293
- x,
294
- {
295
- ref: n,
296
- as: "h1",
297
- className: m("scroll-m-20 leading-[1.1em] tracking-tighter", t),
298
- size: "3xl",
299
- weight: "bold",
300
- ...e
301
- }
302
- )
303
- );
304
- st.displayName = "H1";
305
- const it = p(
306
- ({ className: t, ...e }, n) => /* @__PURE__ */ f.jsx(
307
- x,
308
- {
309
- ref: n,
310
- as: "h2",
311
- className: m("scroll-m-20 tracking-tighter first:mt-0", t),
312
- size: "2xl",
313
- weight: "bold",
314
- ...e
315
- }
316
- )
317
- );
318
- it.displayName = "H2";
319
- const ct = p(
320
- ({ className: t, ...e }, n) => /* @__PURE__ */ f.jsx(
321
- x,
322
- {
323
- ref: n,
324
- as: "h3",
325
- className: m("scroll-m-20 tracking-tight", t),
326
- size: "xl",
327
- weight: "semibold",
328
- ...e
329
- }
330
- )
331
- );
332
- ct.displayName = "H3";
333
- const at = p(
334
- ({ className: t, ...e }, n) => /* @__PURE__ */ f.jsx(
335
- x,
336
- {
337
- ref: n,
338
- as: "h4",
339
- className: m("scroll-m-20 tracking-tight", t),
340
- size: "lg",
341
- weight: "semibold",
342
- ...e
343
- }
344
- )
345
- );
346
- at.displayName = "H4";
347
- const lt = p(
348
- ({ className: t, ...e }, n) => /* @__PURE__ */ f.jsx(
349
- x,
350
- {
351
- ref: n,
352
- as: "div",
353
- className: m("tracking-wide uppercase", t),
354
- size: "xs",
355
- tone: "secondary",
356
- weight: "medium",
357
- ...e
358
- }
359
- )
360
- );
361
- lt.displayName = "HTable";
362
- const L = (...t) => t.filter((e, n, o) => !!e && e.trim() !== "" && o.indexOf(e) === n).join(" ").trim();
363
- const ut = (t) => t.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
364
- const dt = (t) => t.replace(
365
- /^([A-Z])|[\s-_]+(\w)/g,
366
- (e, n, o) => o ? o.toUpperCase() : n.toLowerCase()
367
- );
368
- const j = (t) => {
369
- const e = dt(t);
370
- return e.charAt(0).toUpperCase() + e.slice(1);
371
- };
372
- var ft = {
373
- xmlns: "http://www.w3.org/2000/svg",
374
- width: 24,
375
- height: 24,
376
- viewBox: "0 0 24 24",
377
- fill: "none",
378
- stroke: "currentColor",
379
- strokeWidth: 2,
380
- strokeLinecap: "round",
381
- strokeLinejoin: "round"
382
- };
383
- const pt = (t) => {
384
- for (const e in t)
385
- if (e.startsWith("aria-") || e === "role" || e === "title")
386
- return !0;
387
- return !1;
388
- };
389
- const mt = p(
390
- ({
391
- color: t = "currentColor",
392
- size: e = 24,
393
- strokeWidth: n = 2,
394
- absoluteStrokeWidth: o,
395
- className: r = "",
396
- children: s,
397
- iconNode: c,
398
- ...i
399
- }, a) => w(
400
- "svg",
401
- {
402
- ref: a,
403
- ...ft,
404
- width: e,
405
- height: e,
406
- stroke: t,
407
- strokeWidth: o ? Number(n) * 24 / Number(e) : n,
408
- className: L("lucide", r),
409
- ...!s && !pt(i) && { "aria-hidden": "true" },
410
- ...i
411
- },
412
- [
413
- ...c.map(([l, u]) => w(l, u)),
414
- ...Array.isArray(s) ? s : [s]
415
- ]
416
- )
417
- );
418
- const Pt = (t, e) => {
419
- const n = p(
420
- ({ className: o, ...r }, s) => w(mt, {
421
- ref: s,
422
- iconNode: e,
423
- className: L(
424
- `lucide-${ut(j(t))}`,
425
- `lucide-${t}`,
426
- o
427
- ),
428
- ...r
429
- })
430
- );
431
- return n.displayName = j(t), n;
432
- };
433
- export {
434
- lt as H,
435
- mt as I,
436
- bt as P,
437
- x as T,
438
- wt as a,
439
- gt as b,
440
- H as c,
441
- vt as d,
442
- yt as e,
443
- Nt as f,
444
- G as g,
445
- Pt as h,
446
- Ct as i,
447
- st as j,
448
- ct as k,
449
- I as l,
450
- ht as m,
451
- Et as n,
452
- St as u
453
- };
454
- //# sourceMappingURL=createLucideIcon-DcUfTBt_.mjs.map
@@ -1,93 +0,0 @@
1
- import { h as s } from "./createLucideIcon-DcUfTBt_.mjs";
2
- import { l as c, j as l, c as f } from "./index-BAF0YXsp.mjs";
3
- import { c as y } from "./button-ufGBCcsV.mjs";
4
- var h = [
5
- "a",
6
- "button",
7
- "div",
8
- "form",
9
- "h2",
10
- "h3",
11
- "img",
12
- "input",
13
- "label",
14
- "li",
15
- "nav",
16
- "ol",
17
- "p",
18
- "select",
19
- "span",
20
- "svg",
21
- "ul"
22
- ], x = h.reduce((t, r) => {
23
- const e = y(`Primitive.${r}`), i = c((o, a) => {
24
- const { asChild: p, ...n } = o, u = p ? e : r;
25
- return typeof window < "u" && (window[/* @__PURE__ */ Symbol.for("radix-ui")] = !0), /* @__PURE__ */ l.jsx(u, { ...n, ref: a });
26
- });
27
- return i.displayName = `Primitive.${r}`, { ...t, [r]: i };
28
- }, {}), N = "Separator", d = "horizontal", k = ["horizontal", "vertical"], m = c((t, r) => {
29
- const { decorative: e, orientation: i = d, ...o } = t, a = w(i) ? i : d, n = e ? { role: "none" } : { "aria-orientation": a === "vertical" ? a : void 0, role: "separator" };
30
- return /* @__PURE__ */ l.jsx(
31
- x.div,
32
- {
33
- "data-orientation": a,
34
- ...n,
35
- ...o,
36
- ref: r
37
- }
38
- );
39
- });
40
- m.displayName = N;
41
- function w(t) {
42
- return k.includes(t);
43
- }
44
- var v = m;
45
- const E = [
46
- ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
47
- ["circle", { cx: "19", cy: "12", r: "1", key: "1wjl8i" }],
48
- ["circle", { cx: "5", cy: "12", r: "1", key: "1pcz8c" }]
49
- ], _ = s("ellipsis", E);
50
- const S = [
51
- ["path", { d: "M15 3h6v6", key: "1q9fwt" }],
52
- ["path", { d: "M10 14 21 3", key: "gplh6r" }],
53
- ["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", key: "a6xqqp" }]
54
- ], j = s("external-link", S);
55
- const g = [
56
- ["path", { d: "M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2", key: "975kel" }],
57
- ["circle", { cx: "12", cy: "7", r: "4", key: "17ys0d" }]
58
- ], b = s("user", g), z = c(
59
- ({ className: t, orientation: r = "horizontal", decorative: e = !0, ...i }, o) => /* @__PURE__ */ l.jsx(
60
- v,
61
- {
62
- ref: o,
63
- className: f(
64
- "shrink-0 bg-border",
65
- r === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
66
- t
67
- ),
68
- decorative: e,
69
- orientation: r,
70
- ...i
71
- }
72
- )
73
- );
74
- z.displayName = v.displayName;
75
- const I = (t) => {
76
- for (const r of t)
77
- if (r.key === "timezone") {
78
- const e = r.value;
79
- if (typeof e != "string")
80
- throw new TypeError("Site timezone setting is not a string");
81
- return e;
82
- }
83
- return "Etc/UTC";
84
- };
85
- export {
86
- _ as E,
87
- x as P,
88
- z as S,
89
- b as U,
90
- j as a,
91
- I as g
92
- };
93
- //# sourceMappingURL=get-site-timezone-DlXmHA3y.mjs.map
@@ -1 +0,0 @@
1
- import{ag as o,ah as r,ai as i,aj as u}from"./index-qHUvPjQB.js";const e="PostsResponseType",g=o({dataType:e,path:"/posts/"}),h=u({dataType:e,path:"/posts/",defaultNextPageParams:(t,s)=>{if(t.meta?.pagination.next)return{...s,page:t.meta.pagination.next.toString()}},returnData:t=>{const{pages:s}=t,n=s.flatMap(p=>p.posts),a=s[s.length-1].meta;return{posts:n,meta:a,isEnd:a?a.pagination.pages===a.pagination.page:!0}}}),m=i({dataType:e,path:t=>`/posts/${t}/`}),P=o({dataType:e,path:"/posts/export/"}),d=r({method:"DELETE",path:t=>`/posts/${t}/`});export{d as a,h as b,P as c,m as g,g as u};