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.
- package/components/tryghost-i18n-0.0.0.tgz +0 -0
- package/core/boot.js +13 -9
- package/core/bridge.js +10 -6
- package/core/built/admin/assets/{PolarAngleAxis-Cavik65s.js → PolarAngleAxis-CB-FJBDa.js} +1 -1
- package/core/built/admin/assets/{_baseAssignValue-CnqN6ZMT.js → _baseAssignValue-BEAjPAfy.js} +1 -1
- package/core/built/admin/assets/{a-large-small-Wi4LtZX-.js → a-large-small-L1BJa6mG.js} +1 -1
- package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +1 -1
- package/core/built/admin/assets/admin-x-settings/{code-editor-view-Cf8T5Jfd.mjs → code-editor-view-bOZzJ3a1.mjs} +2 -2
- package/core/built/admin/assets/admin-x-settings/{index-BMWEh-vR.mjs → index-BRuMxaCz.mjs} +2 -2
- package/core/built/admin/assets/admin-x-settings/{index-Aj-hFSnY.mjs → index-CTAQj489.mjs} +5 -5
- package/core/built/admin/assets/admin-x-settings/{index-DjBJrXYn.mjs → index-WoKKBOe4.mjs} +2 -2
- package/core/built/admin/assets/admin-x-settings/{modals-8WpWZZdI.mjs → modals-BQ5M-RTA.mjs} +3 -3
- package/core/built/admin/assets/{arrow-right-BiAOKOto.js → arrow-right-B2j-ecEK.js} +1 -1
- package/core/built/admin/assets/{at-sign-z5gBMxDW.js → at-sign-CtAw8_lw.js} +1 -1
- package/core/built/admin/assets/{audience-DxNilLIv.js → audience-CvSOqHuo.js} +1 -1
- package/core/built/admin/assets/automations-BVUNuVOh.js +1 -0
- package/core/built/admin/assets/automations-Bi9RJq5E.js +1 -0
- package/core/built/admin/assets/{avatar-flipboard-5OzseZFV.js → avatar-flipboard-DocLTXLh.js} +1 -1
- package/core/built/admin/assets/{bluesky-sharing-D9YcSpW8.js → bluesky-sharing-DafX2lE1.js} +1 -1
- package/core/built/admin/assets/chart-BRQeD9eh.js +67 -0
- package/core/built/admin/assets/{chevron-up-DVt6fhV3.js → chevron-up-v4_QwmnL.js} +1 -1
- package/core/built/admin/assets/{chunk.524.fcd26ef812d73e2b0620.js → chunk.524.c3d844070c24d7984fd7.js} +4 -4
- package/core/built/admin/assets/{chunk.582.b61ffaad1c2fa4aba820.js → chunk.582.0e0ede1eac12926acceb.js} +6 -6
- package/core/built/admin/assets/{chunk.383.adb5a3fe32b6b98c43ff.js → chunk.995.4b32363ab39da3e7f5d7.js} +3 -3
- package/core/built/admin/assets/circle-alert-Dbz54fYb.js +1 -0
- package/core/built/admin/assets/{code-editor-view-CbQIqTrK.js → code-editor-view-D-pYCcdu.js} +1 -1
- package/core/built/admin/assets/comments-DSv09jRn.js +1 -0
- package/core/built/admin/assets/{content-helpers-jANWGIfA.js → content-helpers-DQdPPDGb.js} +1 -1
- package/core/built/admin/assets/{copy-BBLeLEnG.js → copy-BULQsPZ4.js} +1 -1
- package/core/built/admin/assets/{data-list-BveeOSGI.js → data-list-WxXC0iKE.js} +1 -1
- package/core/built/admin/assets/{deleted-feed-item-DupAEk4P.js → deleted-feed-item-ZBLfgRkK.js} +1 -1
- package/core/built/admin/assets/{dropzone-D3PSdAHN.js → dropzone-B8mAoWrn.js} +1 -1
- package/core/built/admin/assets/{edit-profile-NrCR9_bi.js → edit-profile-Bj3th8H0.js} +1 -1
- package/core/built/admin/assets/editor-BZV40eAE.css +1 -0
- package/core/built/admin/assets/editor-u20VuPzn.js +7 -0
- package/core/built/admin/assets/{empty-indicator-Dhi_KeYX.js → empty-indicator-P3IsUguf.js} +1 -1
- package/core/built/admin/assets/{en-BontI3SP.js → en-C9bUnuy7.js} +1 -1
- package/core/built/admin/assets/{feed-B3Kfiz5R.js → feed-B94mO944.js} +1 -1
- package/core/built/admin/assets/{filter-query-core-Dwh4Qulu.js → filter-query-core-CM0KKIr2.js} +1 -1
- package/core/built/admin/assets/filters-D52FTE0z.js +1 -0
- package/core/built/admin/assets/gh-chart-Xa6Nvzwz.js +1 -0
- package/core/built/admin/assets/{ghost-c25434d5bbf5a5429883d4c3590f1946.js → ghost-82f1c4ffe0e1cd058ce4b66b5253b620.js} +159 -201
- package/core/built/admin/assets/{ghost-dark-52df27573e5f2a75e6cf4b1d06eea9e4.css → ghost-dark-9897cf5102772faedf566e5e54d4fbee.css} +1 -1
- package/core/built/admin/assets/{ghost-fcf460028e04192f392f16e173f2e3a8.css → ghost-e11f1814be0f38e98bb77b49eba11178.css} +1 -1
- package/core/built/admin/assets/{growth-DRH8zUIJ.js → growth-D3TW3JIB.js} +1 -1
- package/core/built/admin/assets/{hash-UvX5iOa9.js → hash-CstXS-iB.js} +1 -1
- package/core/built/admin/assets/{header-G1a38jnf.js → header-StkTITw-.js} +1 -1
- package/core/built/admin/assets/{inbox-By7HZskI.js → inbox-D1RM3kVF.js} +1 -1
- package/core/built/admin/assets/index-BEkJ9xtY.css +1 -0
- package/core/built/admin/assets/{index-CS_ZmI8F.js → index-BJx5Uas5.js} +1 -1
- package/core/built/admin/assets/index-BKzg6OE7.js +1 -0
- package/core/built/admin/assets/{index-D7JyKf1m.js → index-BM-MBdD0.js} +1 -1
- package/core/built/admin/assets/index-BRzvVuXt.js +2 -0
- package/core/built/admin/assets/index-B_3xqeM9.js +1 -0
- package/core/built/admin/assets/{index-ydyrczVl.js → index-C-OdR2wJ.js} +1 -1
- package/core/built/admin/assets/{index-X-MG1ikg.js → index-C59QlJqT.js} +1 -1
- package/core/built/admin/assets/{index-CJo0Qh4V.js → index-CCq_1tCo.js} +1 -1
- package/core/built/admin/assets/{index-qHUvPjQB.js → index-CYyEyBYw.js} +11 -11
- package/core/built/admin/assets/{index-CX4ztLSk.js → index-DHbiBjyq.js} +1 -1
- package/core/built/admin/assets/{index-BP6hBbPK.js → index-DTVgSMyL.js} +2 -2
- package/core/built/admin/assets/{index-vZMbI8e8.js → index-DiUjEgRw.js} +1 -1
- package/core/built/admin/assets/{index-YM4ZplGj.js → index-DugxKzA6.js} +1 -1
- package/core/built/admin/assets/{index-D8InZCr2.js → index-DzVHlhO1.js} +1 -1
- package/core/built/admin/assets/{index-D4b7U6K-.js → index-LsaD9Cq7.js} +1 -1
- package/core/built/admin/assets/{index-DRUPF8nN.js → index-x0hNfyqU.js} +1 -1
- package/core/built/admin/assets/{inline-Bc9zHR7e.js → inline-B4cWemrJ.js} +1 -1
- package/core/built/admin/assets/{koenig-lexical-B-ZnqRE1.js → koenig-lexical-BOdeH3QJ.js} +1 -1
- package/core/built/admin/assets/{kpi-card-zyi5Onb0.js → kpi-card-P7zSpcx0.js} +1 -1
- package/core/built/admin/assets/{kpi-card-CzlPIEPE.js → kpi-card-plhYOEtA.js} +1 -1
- package/core/built/admin/assets/{kpi-tabs-Dsa5ldXK.js → kpi-tabs-DZw2Qktb.js} +1 -1
- package/core/built/admin/assets/{kpis-Cw5ZRQhk.js → kpis-CDHM0xhW.js} +1 -1
- package/core/built/admin/assets/{label-BvxmsD1M.js → label-Ckacdx14.js} +1 -1
- package/core/built/admin/assets/{links-CiS5BPKS.js → links-BtXE5d0Y.js} +1 -1
- package/core/built/admin/assets/{list-filter-zmkB7rg4.js → list-filter-DLjjiktn.js} +1 -1
- package/core/built/admin/assets/{list-header-Cp779e3H.js → list-header-Cc7Ia3nr.js} +1 -1
- package/core/built/admin/assets/loader-circle-DLJd-dNm.js +1 -0
- package/core/built/admin/assets/{mail-i2qs8CIG.js → mail-B97w28e2.js} +1 -1
- package/core/built/admin/assets/{main-layout-KCvKOX8F.js → main-layout-bwWvzc9B.js} +1 -1
- package/core/built/admin/assets/{members-w601v5JJ.js → members-CokS8MI2.js} +5 -5
- package/core/built/admin/assets/{message-square-text-bG9IoWIt.js → message-square-text-D3rsjDFR.js} +1 -1
- package/core/built/admin/assets/minus-BzXQVmMw.js +1 -0
- package/core/built/admin/assets/{modals-lNzhiL0o.js → modals-D0lip-iy.js} +2 -2
- package/core/built/admin/assets/{moderation-CyfNRSWj.js → moderation-Dv7AadCV.js} +1 -1
- package/core/built/admin/assets/newsletter-BazC5rIj.js +1 -0
- package/core/built/admin/assets/{newsletters-B8xSXSr_.js → newsletters-m6HQgU5J.js} +1 -1
- package/core/built/admin/assets/{note-dNfKEpxw.js → note-CCGiEKz-.js} +1 -1
- package/core/built/admin/assets/{onboarding-route-Drbw0QtT.js → onboarding-route-Cbt7qWNE.js} +1 -1
- package/core/built/admin/assets/overview-TN50tzUh.js +1 -0
- package/core/built/admin/assets/{pagemenu-VJXMoMB4.js → pagemenu-BXrHWtsU.js} +1 -1
- package/core/built/admin/assets/{pencil-DHNmlLjO.js → pencil-BL1r8KVy.js} +1 -1
- package/core/built/admin/assets/{post-analytics-PsqLsS2e.js → post-analytics-BqEXi6Ps.js} +1 -1
- package/core/built/admin/assets/{post-analytics-context-QLZsZCFg.js → post-analytics-context-DekYNlb3.js} +1 -1
- package/core/built/admin/assets/{post-analytics-header-PecXsIT-.js → post-analytics-header-AkNbn6uc.js} +1 -1
- package/core/built/admin/assets/{post-share-modal-B4Rvo7W1.js → post-share-modal-CXDGVKoQ.js} +1 -1
- package/core/built/admin/assets/posts/{app-utils-DIc5TmxO.mjs → app-utils-DxA7edI_.mjs} +2 -2
- package/core/built/admin/assets/posts/{automations-BZpT35kJ.mjs → automations-Cwu_gHl4.mjs} +64 -67
- package/core/built/admin/assets/posts/automations-D81hV_2c.mjs +13 -0
- package/core/built/admin/assets/posts/{avatar-K63cvqSS.mjs → avatar-IkjEzEjI.mjs} +19 -19
- package/core/built/admin/assets/posts/{button-ufGBCcsV.mjs → button-KaJZKcou.mjs} +21 -21
- package/core/built/admin/assets/posts/{check-IcEnuTpD.mjs → check-Cf74RvZ1.mjs} +21 -21
- package/core/built/admin/assets/posts/{comments-CyJU9Ums.mjs → comments-pdKhYbYG.mjs} +54 -52
- package/core/built/admin/assets/posts/createLucideIcon-Cj7h3r9g.mjs +320 -0
- package/core/built/admin/assets/posts/{dialog-D6_lBvtT.mjs → dialog-Ci3W8fjx.mjs} +71 -76
- package/core/built/admin/assets/posts/{dropdown-menu-BSSmAory.mjs → dropdown-menu-DZ9XCHSw.mjs} +5 -5
- package/core/built/admin/assets/posts/editor-Bb-xle0o.mjs +6084 -0
- package/core/built/admin/assets/posts/ellipsis-ChhZo9aT.mjs +10 -0
- package/core/built/admin/assets/posts/{empty-indicator-DvGCvRAX.mjs → empty-indicator-DnFs7hDy.mjs} +2 -2
- package/core/built/admin/assets/posts/{filters-BLBaHhJz.mjs → filters-CO_FUPX-.mjs} +42 -40
- package/core/built/admin/assets/posts/get-site-timezone-C21yKZT_.mjs +87 -0
- package/core/built/admin/assets/posts/{growth-Bz1ChJNB.mjs → growth-CtX9Efm2.mjs} +12 -12
- package/core/built/admin/assets/posts/heading-DZ_KtDTL.mjs +138 -0
- package/core/built/admin/assets/posts/{hooks-BEngBys9.mjs → hooks-DVhBDVlA.mjs} +3 -2
- package/core/built/admin/assets/posts/{index-BAF0YXsp.mjs → index-B4db8w_H.mjs} +181 -172
- package/core/built/admin/assets/posts/{inline-C2YFQAdU.mjs → inline-BfB-SNk0.mjs} +2 -2
- package/core/built/admin/assets/posts/{input-surface-TqJlNSp_.mjs → input-surface-CNwZJloi.mjs} +2 -2
- package/core/built/admin/assets/posts/{kpis-DAX5_0-Q.mjs → kpis-BvY_5Y1u.mjs} +8792 -8803
- package/core/built/admin/assets/posts/{links-A1YTsBbF.mjs → links-Ck-h7SKg.mjs} +57 -57
- package/core/built/admin/assets/posts/{loading-indicator-BZsjmp8g.mjs → loading-indicator-B_rU9Lie.mjs} +3 -3
- package/core/built/admin/assets/posts/mail-DiZ3oKEW.mjs +9 -0
- package/core/built/admin/assets/posts/{main-layout-D_HHTP_n.mjs → main-layout-aYo6qOBZ.mjs} +2 -2
- package/core/built/admin/assets/posts/{newsletter-BRzgjOIa.mjs → newsletter-BQc53TF2.mjs} +31 -30
- package/core/built/admin/assets/posts/{overview-C41VFjn7.mjs → overview-blz9Ak9q.mjs} +42 -41
- package/core/built/admin/assets/posts/plus-YVjtYaK3.mjs +15 -0
- package/core/built/admin/assets/posts/{post-analytics-DGgMkFaf.mjs → post-analytics-BQbWGoeu.mjs} +6 -6
- package/core/built/admin/assets/posts/{post-analytics-context-B1r3HBrp.mjs → post-analytics-context-Be7THgnd.mjs} +7 -7
- package/core/built/admin/assets/posts/{post-analytics-header-DTWSO0Aq.mjs → post-analytics-header-iDFy7Bao.mjs} +2762 -2764
- package/core/built/admin/assets/posts/{post-share-modal-ohHwk0Yt.mjs → post-share-modal-akP16idN.mjs} +50 -48
- package/core/built/admin/assets/posts/posts.js +2 -1
- package/core/built/admin/assets/posts/{settings-CZYL6Jhr.mjs → settings-BdQhfHxY.mjs} +2 -2
- package/core/built/admin/assets/posts/{sheet-D7YesQJE.mjs → sheet-3dBlKeXf.mjs} +14 -13
- package/core/built/admin/assets/posts/{skeleton-S1k58YKa.mjs → skeleton-DMgSvYqr.mjs} +11 -11
- package/core/built/admin/assets/posts/{source-icon-DnpCy5N4.mjs → source-icon-Bp5Qxq1E.mjs} +4 -4
- package/core/built/admin/assets/posts/{stats-CbOpowXb.mjs → stats-DJx9qc_u.mjs} +4 -4
- package/core/built/admin/assets/posts/{table-Cw3Wxf1C.mjs → table-BpVwuzeH.mjs} +2 -2
- package/core/built/admin/assets/posts/{data-list-BnZARP88.mjs → tabs-CbZCpxfI.mjs} +4885 -5284
- package/core/built/admin/assets/posts/{tags-BoMt6Ce3.mjs → tags-CNtvDS6f.mjs} +33 -33
- package/core/built/admin/assets/posts/{tags-CNdsvTtZ.mjs → tags-DFOoFZ_3.mjs} +2 -2
- package/core/built/admin/assets/posts/{tooltip-CTcyINxz.mjs → tooltip-Cc_09RDU.mjs} +106 -117
- package/core/built/admin/assets/posts/value-CwGM7M-1.mjs +410 -0
- package/core/built/admin/assets/posts/{virtual-list-window-Bs88yrut.mjs → virtual-list-window-D6nRoL0y.mjs} +5 -5
- package/core/built/admin/assets/posts/{web-Bsd8eTP6.mjs → web-yfPssEt8.mjs} +1042 -1040
- package/core/built/admin/assets/posts/x-DrUGcpfp.mjs +9 -0
- package/core/built/admin/assets/posts/zap-DAN0ur-o.mjs +24 -0
- package/core/built/admin/assets/posts-D-jyPPE6.js +1 -0
- package/core/built/admin/assets/power-Cc5ncYVl.js +1 -0
- package/core/built/admin/assets/{referrers-kcBT5smx.js → referrers-qnXsKsuv.js} +1 -1
- package/core/built/admin/assets/{repeat-Cn2sKd-L.js → repeat-BGIBynZH.js} +1 -1
- package/core/built/admin/assets/{reply-D7E-ZMd5.js → reply-DOKdAsL_.js} +1 -1
- package/core/built/admin/assets/{rocket-DnH0XAGW.js → rocket-CAN2NB82.js} +1 -1
- package/core/built/admin/assets/{select-f0MMMQWu.js → select-8S9kYGSM.js} +1 -1
- package/core/built/admin/assets/{settings-BAQNP3gU.js → settings-DeD-bmZc.js} +4 -4
- package/core/built/admin/assets/{settings-ORttG1jT.js → settings-e4IB9sx6.js} +1 -1
- package/core/built/admin/assets/{share-modal-CXU4tGY8.js → share-modal-CBavk20I.js} +1 -1
- package/core/built/admin/assets/{sort-button-BXMrChFu.js → sort-button-DlSKBzUq.js} +1 -1
- package/core/built/admin/assets/{source-icon-cjy79jGT.js → source-icon-27VIJSXr.js} +1 -1
- package/core/built/admin/assets/{sprout-DZ4tZ78G.js → sprout-D66nqc79.js} +1 -1
- package/core/built/admin/assets/{square-vOzqJf7x.js → square-DccaXQWe.js} +1 -1
- package/core/built/admin/assets/stats/{audience-5NeJICtP.mjs → audience-B84ClTDM.mjs} +3 -3
- package/core/built/admin/assets/stats/{content-helpers-DFSTl3uB.mjs → content-helpers-CBAddUg7.mjs} +4 -4
- package/core/built/admin/assets/stats/{index-C4T7u699.mjs → index-Bz5oVpED.mjs} +5 -5
- package/core/built/admin/assets/stats/{index-B8bp6qe2.mjs → index-Cs8i1uR4.mjs} +74 -75
- package/core/built/admin/assets/stats/{index-wvi17m79.mjs → index-DEsP_Tbd.mjs} +8 -8
- package/core/built/admin/assets/stats/{index-CFfAYHdD.mjs → index-Ds-pM47x.mjs} +5 -5
- package/core/built/admin/assets/stats/{index-Chqk7VlR.mjs → index-Wzk1IcAz.mjs} +6 -6
- package/core/built/admin/assets/stats/{kpi-tabs-Df9yOI2P.mjs → kpi-tabs-Cs4l8B_M.mjs} +7 -7
- package/core/built/admin/assets/stats/{sort-button-Doi8OgMU.mjs → sort-button-rR-GA9Hu.mjs} +3 -3
- package/core/built/admin/assets/stats/{stats-FXeCefyd.mjs → stats-RFpEJpEq.mjs} +34 -34
- package/core/built/admin/assets/stats/stats.js +1 -1
- package/core/built/admin/assets/stats/{use-growth-stats-93C_3EZk.mjs → use-growth-stats-DwgFzbq9.mjs} +3 -3
- package/core/built/admin/assets/{stats-CIGz2Win.js → stats-B4OybenW.js} +1 -1
- package/core/built/admin/assets/{stats-view-BTKRxYTQ.js → stats-view-BuExwFXa.js} +1 -1
- package/core/built/admin/assets/{step-1-BSMHbT-q.js → step-1-D_5LOQrC.js} +1 -1
- package/core/built/admin/assets/{step-2-_YC0LCZv.js → step-2-BZLBj8cj.js} +1 -1
- package/core/built/admin/assets/{step-3-DWMqP2bO.js → step-3-s5uNbcOH.js} +1 -1
- package/core/built/admin/assets/{table-mHKjXQba.js → table-pGS7EeJe.js} +1 -1
- package/core/built/admin/assets/{tabs-B93IVRBz.js → tabs-CjdKssUe.js} +1 -1
- package/core/built/admin/assets/{tags-DCb-x2ZB.js → tags-B0vRk0A6.js} +1 -1
- package/core/built/admin/assets/{tags-kUHJ1MZo.js → tags-Dso4-FA_.js} +1 -1
- package/core/built/admin/assets/{textarea-DswCtM7_.js → textarea-DzFnun0_.js} +1 -1
- package/core/built/admin/assets/{tiers-DueraQKd.js → tiers-4Vkr_D-L.js} +1 -1
- package/core/built/admin/assets/{toggle-group-ChTo8MPD.js → toggle-group-hDsr47IB.js} +1 -1
- package/core/built/admin/assets/{topic-filter-DrW3fYWo.js → topic-filter-C7TpPe1G.js} +1 -1
- package/core/built/admin/assets/{trash-B2ESGftj.js → trash-DCVuk7ZX.js} +1 -1
- package/core/built/admin/assets/{underline-vo-bPRac.js → underline-CjK8la2G.js} +1 -1
- package/core/built/admin/assets/{upload-DXQRkBBq.js → upload-CPYhmtWZ.js} +1 -1
- package/core/built/admin/assets/{use-growth-stats-CoB8-lsd.js → use-growth-stats-CaFSgp_R.js} +1 -1
- package/core/built/admin/assets/{use-simple-pagination-Y_Wv2N6g.js → use-simple-pagination-D0vJBMvF.js} +1 -1
- package/core/built/admin/assets/{user-round-check-Dp9a2x-e.js → user-round-check-CzQQeFd8.js} +1 -1
- package/core/built/admin/assets/{user-round-x-DwCTGlxc.js → user-round-x-BDFm8yQj.js} +1 -1
- package/core/built/admin/assets/value-BGBiTkF3.js +1 -0
- package/core/built/admin/assets/{vendor-17f3b979ba6f3898d1a8c5249cc22ff1.js → vendor-ce3fc901ccbcf37f36eb791b4e454138.js} +29 -31
- package/core/built/admin/assets/{virtual-list-window-BF7IvGMC.js → virtual-list-window-EKtWZ5cP.js} +1 -1
- package/core/built/admin/assets/{wallet-cards-IEmcxJvG.js → wallet-cards-C1NOBbWE.js} +1 -1
- package/core/built/admin/assets/web-DCA7HR1S.js +1 -0
- package/core/built/admin/index.html +8 -8
- package/core/frontend/helpers/social_accounts.js +91 -0
- package/core/frontend/services/sitemap/handler.js +14 -2
- package/core/frontend/services/sitemap/site-map-manager.js +133 -9
- package/core/frontend/web/middleware/handle-image-sizes.js +4 -0
- package/core/server/api/endpoints/automations.js +38 -45
- package/core/server/models/member.js +30 -25
- package/core/server/services/automations/automations-api.js +58 -0
- package/core/server/services/automations/automations-api.ts +71 -0
- package/core/server/services/automations/automations-repository.js +2 -0
- package/core/server/services/automations/automations-repository.ts +63 -0
- package/core/server/services/automations/fake-database-automations-repository.js +210 -0
- package/core/server/services/automations/fake-database-automations-repository.ts +273 -0
- package/core/server/services/automations/temporary-fake-database.js +5 -4
- package/core/server/services/gifts/email-templates/gift-purchase-confirmation.hbs +10 -32
- package/core/server/services/gifts/email-templates/gift-purchase-confirmation.js +6 -8
- package/core/server/services/gifts/email-templates/gift-purchase-confirmation.ts +6 -8
- package/core/server/services/gifts/email-templates/gift-reminder.hbs +12 -37
- package/core/server/services/gifts/email-templates/gift-reminder.js +5 -9
- package/core/server/services/gifts/email-templates/gift-reminder.ts +5 -9
- package/core/server/services/gifts/gift-service.js +1 -1
- package/core/server/services/gifts/gift-service.ts +2 -2
- package/core/server/services/member-welcome-emails/service.js +0 -1
- package/core/server/services/members/members-api/controllers/router-controller.js +52 -7
- package/core/server/services/members/members-api/services/member-bread-service.js +0 -8
- package/core/server/services/route-settings/route-settings.js +18 -2
- package/core/server/services/staff/email-templates/gift.hbs +1 -1
- package/core/server/services/staff/email-templates/gift.txt.js +1 -1
- package/core/server/services/staff/email-templates/new-gift-subscription.hbs +1 -1
- package/core/server/services/staff/email-templates/new-gift-subscription.txt.js +1 -1
- package/core/server/services/staff/staff-service-emails.js +1 -1
- package/core/server/services/url/index.js +16 -1
- package/core/server/services/url/lazy-find-resource.js +49 -0
- package/core/server/services/url/lazy-find-resource.ts +62 -0
- package/core/server/services/url/lazy-url-service.js +220 -0
- package/core/server/services/url/lazy-url-service.ts +265 -0
- package/core/server/web/api/endpoints/admin/routes.js +1 -0
- package/core/server/web/gift-preview/Inter.ttf +0 -0
- package/core/server/web/gift-preview/controller.js +56 -6
- package/core/server/web/gift-preview/gift-card-noise.png +0 -0
- package/core/server/web/gift-preview/gift-card-orb.png +0 -0
- package/core/server/web/gift-preview/image.js +170 -43
- package/core/shared/config/defaults.json +1 -0
- package/core/shared/one-at-a-time.js +28 -33
- package/core/shared/one-at-a-time.ts +58 -0
- package/package.json +18 -16
- package/pnpm-lock.yaml +989 -356
- package/core/built/admin/assets/automations-D1uMjd06.js +0 -1
- package/core/built/admin/assets/chart-_EXssQtm.js +0 -67
- package/core/built/admin/assets/comments-E00h1SbR.js +0 -1
- package/core/built/admin/assets/filters-CC7XfjOS.js +0 -1
- package/core/built/admin/assets/gh-chart-B9_ywrJJ.js +0 -1
- package/core/built/admin/assets/index-AsV-aY0z.css +0 -1
- package/core/built/admin/assets/index-B0y_ynZw.js +0 -1
- package/core/built/admin/assets/index-Bs6wWbLA.js +0 -2
- package/core/built/admin/assets/index-Cb4641XW.js +0 -1
- package/core/built/admin/assets/loader-circle-B5UPqSok.js +0 -1
- package/core/built/admin/assets/minus-DWx9VUtr.js +0 -1
- package/core/built/admin/assets/newsletter-fkQye9OK.js +0 -1
- package/core/built/admin/assets/overview-CZ-VrnXy.js +0 -1
- package/core/built/admin/assets/posts/createLucideIcon-DcUfTBt_.mjs +0 -454
- package/core/built/admin/assets/posts/get-site-timezone-DlXmHA3y.mjs +0 -93
- package/core/built/admin/assets/posts-Bx1RWrub.js +0 -1
- 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};
|