ghost 6.54.1 → 6.55.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-adapter-base-scheduling-0.2.0.tgz +0 -0
- package/components/tryghost-custom-field-types-0.0.0.tgz +0 -0
- package/components/tryghost-kg-default-cards-10.3.3.tgz +0 -0
- package/components/tryghost-kg-default-nodes-2.1.3.tgz +0 -0
- package/core/boot.js +3 -6
- package/core/built/admin/assets/{account-migration-BklF2I_I.js → account-migration-sjHLx5dy.js} +1 -1
- package/core/built/admin/assets/activitypub/{account-migration-CNovr6W-.js → account-migration-DoYXtnZ8.js} +4 -4
- package/core/built/admin/assets/activitypub/activitypub.js +1 -1
- package/core/built/admin/assets/activitypub/{bluesky-sharing-Ceslb1_M.js → bluesky-sharing-Bxeh6MKW.js} +4 -4
- package/core/built/admin/assets/activitypub/{dist-DHAjBcV3.js → dist-D8sFfdpC.js} +2 -2
- package/core/built/admin/assets/activitypub/{domain-C1qQvJ8C.js → domain-CWueFW6q.js} +5 -5
- package/core/built/admin/assets/activitypub/{edit-profile-BcH-jEfM.js → edit-profile-BGxPU7N5.js} +3 -3
- package/core/built/admin/assets/activitypub/{explore-AxwBh9dI.js → explore-DBK-u0Ch.js} +3 -3
- package/core/built/admin/assets/activitypub/{feed-BaOlbh7a.js → feed-Bcir5RQZ.js} +3 -3
- package/core/built/admin/assets/activitypub/{field-B7mYYQpN.js → field-BV-CIT3d.js} +2 -2
- package/core/built/admin/assets/activitypub/{inbox-vXez-5uJ.js → inbox-yC0nfvzl.js} +4 -4
- package/core/built/admin/assets/activitypub/{label-Chv5T8bw.js → label-DTRS9TDk.js} +2 -2
- package/core/built/admin/assets/activitypub/layout-qx-bUL1k.js +1 -0
- package/core/built/admin/assets/activitypub/{moderation-DtSM2i1I.js → moderation-Dwl9t0pb.js} +4 -4
- package/core/built/admin/assets/activitypub/{note-Dckp4S-2.js → note-B-zKsZ7r.js} +3 -3
- package/core/built/admin/assets/activitypub/{notifications-CG5T22vg.js → notifications-DjJZD54t.js} +3 -3
- package/core/built/admin/assets/activitypub/{preferences-D_799jdl.js → preferences-CoU8vs6d.js} +6 -6
- package/core/built/admin/assets/activitypub/{profile-D2JfXBQl.js → profile-BAsaJekx.js} +6 -6
- package/core/built/admin/assets/activitypub/{routes-CCHe2dQp.js → routes-CLH3OVTP.js} +18 -18
- package/core/built/admin/assets/activitypub/{settings-kx-9Enkz.js → settings-DA6pNJ-Q.js} +3 -3
- package/core/built/admin/assets/activitypub/{site-x4_IjVJ0.js → site-CQD42Pw5.js} +2 -2
- package/core/built/admin/assets/activitypub/{tabs-CyPRQQ1N.js → tabs-Cg0saow1.js} +7 -7
- package/core/built/admin/assets/activitypub/{use-reply-chain-data-BAB6fNGt.js → use-reply-chain-data-Br4aOWOh.js} +2 -2
- package/core/built/admin/assets/audience-DjEWNhp3.js +1 -0
- package/core/built/admin/assets/{automated-emails-of1MvVsv.js → automated-emails-DRy7qY-J.js} +2 -2
- package/core/built/admin/assets/{automations-DRFjW5fw.js → automations-Bx3VcFIL.js} +1 -1
- package/core/built/admin/assets/{automations-B7-y3dXt.js → automations-DhKeS_U5.js} +1 -1
- package/core/built/admin/assets/{bluesky-sharing-BbbjWdzs.js → bluesky-sharing-ClMd0-Ft.js} +1 -1
- package/core/built/admin/assets/{breadcrumb-B-M9Ip_2.js → breadcrumb-BD0U2ygg.js} +1 -1
- package/core/built/admin/assets/{chart-helpers-xiSsW8r0.js → chart-helpers-fjQKRVyY.js} +1 -1
- package/core/built/admin/assets/{checkbox-EhJKHFdZ.js → checkbox-CWa28lgO.js} +1 -1
- package/core/built/admin/assets/{chunk.361.3cdb584b973959e52ccc.js → chunk.481.6c7395a49484bb4583aa.js} +41 -38
- package/core/built/admin/assets/{chunk.524.8365cd9280405c0f6216.js → chunk.524.cffd399783a519e404a9.js} +4 -4
- package/core/built/admin/assets/{chunk.582.61d078937e6102769f2c.js → chunk.582.eebf0d0b2d202bb746a5.js} +6 -6
- package/core/built/admin/assets/{code-editor-view-CZtJFGhR.js → code-editor-view-CCr0rBWS.js} +1 -1
- package/core/built/admin/assets/comments-DyUSMUdj.js +1 -0
- package/core/built/admin/assets/{date-range-select-CTlyo8zW.js → date-range-select-BFp58EMk.js} +1 -1
- package/core/built/admin/assets/{disabled-sources-indicator-qs2GfLvl.js → disabled-sources-indicator-CUxMfiPa.js} +1 -1
- package/core/built/admin/assets/domain-C0bV2UV8.js +1 -0
- package/core/built/admin/assets/{dropzone-BmCXnw6J.js → dropzone-DlK-K2DQ.js} +1 -1
- package/core/built/admin/assets/{edit-profile-SGrJve5M.js → edit-profile-BKT-REJw.js} +1 -1
- package/core/built/admin/assets/editor-Dp865O-4.js +8 -0
- package/core/built/admin/assets/{explore-CUYLv9G9.js → explore-ClUpJZOp.js} +1 -1
- package/core/built/admin/assets/{feed-CPdJMttL.js → feed-DF92dUMP.js} +1 -1
- package/core/built/admin/assets/field-Do7lieBA.js +1 -0
- package/core/built/admin/assets/{filter-sources-Bieps75g.js → filter-sources-BV2rnpfA.js} +1 -1
- package/core/built/admin/assets/filters-CUXJ2Nm9.js +1 -0
- package/core/built/admin/assets/{filters-CuB-A7ma.js → filters-DfbIWc_l.js} +1 -1
- package/core/built/admin/assets/{ghost-3063eae29e6c9cc6d6e7131928a27da0.css → ghost-a9c788f6f0b1ea6cf0f14ca4b13f4496.css} +1 -1
- package/core/built/admin/assets/{ghost-05f9a7182ed56903dba05878a5b8422b.js → ghost-c4057474943effc568c5659ccc4909d7.js} +190 -190
- package/core/built/admin/assets/{ghost-dark-c8d0ab7f515b2010c173e23e9b32ea8a.css → ghost-dark-db36d795d21c61426837df40af270966.css} +1 -1
- package/core/built/admin/assets/gift-link-modal-f9VIMNDv.js +1 -0
- package/core/built/admin/assets/{gift-links-nBxJjZiQ.js → gift-links-CsUhefWG.js} +1 -1
- package/core/built/admin/assets/growth-B3I6gNLm.js +1 -0
- package/core/built/admin/assets/growth-CVw1My4S.js +3 -0
- package/core/built/admin/assets/{hooks-BApwwBE0.js → hooks-CixO01lL.js} +1 -1
- package/core/built/admin/assets/{inbox-Xx1CdnfO.js → inbox-CFBSu4Ed.js} +13 -13
- package/core/built/admin/assets/index-9Cw8z3rA.css +1 -0
- package/core/built/admin/assets/index-BGG7NckO.js +67 -0
- package/core/built/admin/assets/{input-group-CGOXcy4l.js → input-group-BSgG_lVw.js} +1 -1
- package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +974 -937
- package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +28 -28
- package/core/built/admin/assets/koenig-lexical/style.css +1 -1
- package/core/built/admin/assets/{koenig-lexical-B61IALf5.js → koenig-lexical-f8vHRYvz.js} +28 -28
- package/core/built/admin/assets/{kpi-card-DCdlyaSS.js → kpi-card-DSap9rAy.js} +1 -1
- package/core/built/admin/assets/{kpi-card-BlZaG1Lo.js → kpi-card-DU0rn9Cj.js} +1 -1
- package/core/built/admin/assets/{kpi-helpers-DpAuS1Nb.js → kpi-helpers-Dz33AV6h.js} +1 -1
- package/core/built/admin/assets/{kpi-tabs-Dme44bQS.js → kpi-tabs-BtTTrKvJ.js} +1 -1
- package/core/built/admin/assets/{label-dSs5aepE.js → label-DS8Mi6G5.js} +1 -1
- package/core/built/admin/assets/label-picker-1DvSuLA1.js +1 -0
- package/core/built/admin/assets/labels-CDSUt4J_.js +1 -0
- package/core/built/admin/assets/layout-yQEi2qDM.js +1 -0
- package/core/built/admin/assets/{link-helpers-tOlxmuH5.js → link-helpers-7EYqvvHs.js} +1 -1
- package/core/built/admin/assets/member-custom-fields-yOMHyAg9.js +1 -0
- package/core/built/admin/assets/member-detail-BAq7gDaa.js +1 -0
- package/core/built/admin/assets/members-CQpVFJu4.js +10 -0
- package/core/built/admin/assets/modals-ReORvWnu.js +31 -0
- package/core/built/admin/assets/moderation-DySbgyUS.js +1 -0
- package/core/built/admin/assets/newsletter-CJQvtHqN.js +1 -0
- package/core/built/admin/assets/newsletters-B3QQXfGT.js +1 -0
- package/core/built/admin/assets/{newsletters-D1jbtV-h.js → newsletters-BXJbJgA-.js} +1 -1
- package/core/built/admin/assets/note-C8kxrz6w.js +1 -0
- package/core/built/admin/assets/notifications-CgtSfX7t.js +1 -0
- package/core/built/admin/assets/{offers-CrY6nSRR.js → offers-DEniVRD5.js} +1 -1
- package/core/built/admin/assets/onboarding-route-4qtziA9d.js +1 -0
- package/core/built/admin/assets/overview-Bf2sbznq.js +1 -0
- package/core/built/admin/assets/overview-CBfePxcr.js +1 -0
- package/core/built/admin/assets/{page-header-op0eN36I.js → page-header-B3Wb9Jqv.js} +1 -1
- package/core/built/admin/assets/{pages-BbNWFcGj.js → pages-B4goRPUn.js} +1 -1
- package/core/built/admin/assets/{post-analytics-WwRDEnrV.js → post-analytics-We-ko5Cb.js} +1 -1
- package/core/built/admin/assets/post-analytics-header-Bmc9su6q.js +1 -0
- package/core/built/admin/assets/post-analytics-provider-B6UynTGb.js +1 -0
- package/core/built/admin/assets/{post-share-modal-Dx-MEjhI.js → post-share-modal-DFfO93_0.js} +1 -1
- package/core/built/admin/assets/{posts-EWpZIjkr.js → posts-DhXE7b6r.js} +1 -1
- package/core/built/admin/assets/preferences-DJPfHEGu.js +5 -0
- package/core/built/admin/assets/profile-DqBQp-gT.js +1 -0
- package/core/built/admin/assets/{referrers-BCfFYSHc.js → referrers-pmJT4k3-.js} +1 -1
- package/core/built/admin/assets/{select-C1qDZnW4.js → select-C5_xEt5b.js} +1 -1
- package/core/built/admin/assets/settings-BwiVIXau.js +4 -0
- package/core/built/admin/assets/{settings-H6HxFgfI.js → settings-WXNeWyU1.js} +1 -1
- package/core/built/admin/assets/{share-modal-BJCadJyp.js → share-modal-DsgW3wbg.js} +1 -1
- package/core/built/admin/assets/social-urls-BQPFEk1_.js +8 -0
- package/core/built/admin/assets/{sort-button-DyYlfYp7.js → sort-button-Bb_FCl7e.js} +1 -1
- package/core/built/admin/assets/{source-icon-_ubRDbg_.js → source-icon-BeaRxUn9.js} +1 -1
- package/core/built/admin/assets/{stats-BQZMGMvn.js → stats-Bjj_kmJ1.js} +1 -1
- package/core/built/admin/assets/{stats-view-Doei-qCX.js → stats-view-BxPbW6K1.js} +1 -1
- package/core/built/admin/assets/{step-1-IKiLBPoC.js → step-1-B1e3-1F8.js} +1 -1
- package/core/built/admin/assets/{step-2-jJ41PsDN.js → step-2-C5WaeBJo.js} +1 -1
- package/core/built/admin/assets/{step-3-CaqFAEqf.js → step-3-B46iVPwu.js} +2 -2
- package/core/built/admin/assets/{switch-t-WyENU2.js → switch-z5Y6Uzt6.js} +1 -1
- package/core/built/admin/assets/{table-DxUL78jU.js → table-CB-4_HBJ.js} +1 -1
- package/core/built/admin/assets/tabs-CCEgKYzq.js +1 -0
- package/core/built/admin/assets/{tags-CNujGwkT.js → tags-Cg2VJGmG.js} +1 -1
- package/core/built/admin/assets/{tiers-BgYLWRJv.js → tiers-DYsa4DCo.js} +1 -1
- package/core/built/admin/assets/{toggle-group-BeEpQ69p.js → toggle-group-b3IlxvhV.js} +1 -1
- package/core/built/admin/assets/{topic-filter-Bb5MOD-1.js → topic-filter-DAFT87tQ.js} +1 -1
- package/core/built/admin/assets/{use-analytics-data-Cds6XDjg.js → use-analytics-data-S0FTd43s.js} +1 -1
- package/core/built/admin/assets/use-filter-params-Gpoq2E1L.js +1 -0
- package/core/built/admin/assets/{use-growth-stats-D8uf98-G.js → use-growth-stats-CIaiHOVb.js} +1 -1
- package/core/built/admin/assets/{use-post-referrers-CRtgyuXB.js → use-post-referrers-Cq2vBPrA.js} +1 -1
- package/core/built/admin/assets/{use-reply-chain-data-DbKYX50v.js → use-reply-chain-data-DBDRtGu-.js} +1 -1
- package/core/built/admin/assets/{use-simple-pagination-DC01kpo0.js → use-simple-pagination-CjYNxdwe.js} +1 -1
- package/core/built/admin/assets/{use-tinybird-query-C7bQRJWw.js → use-tinybird-query-falHAtuK.js} +1 -1
- package/core/built/admin/assets/{use-tinybird-token-Az4tam7_.js → use-tinybird-token-D7-8ND1y.js} +1 -1
- package/core/built/admin/assets/{users-CcSCQFcQ.js → users-Dkv8NQZe.js} +1 -1
- package/core/built/admin/assets/{virtual-list-Dhuh9fGx.js → virtual-list-CvnC9zF2.js} +1 -1
- package/core/built/admin/assets/web-B_5GZRvH.js +1 -0
- package/core/built/admin/assets/web-jFYWCKDn.js +2 -0
- package/core/built/admin/index.html +9 -9
- package/core/frontend/services/proxy.js +7 -8
- package/core/frontend/services/routing/router-manager.js +14 -14
- package/core/frontend/services/routing/static-routes-router.js +8 -10
- package/core/server/api/endpoints/automation-action-links.js +68 -0
- package/core/server/api/endpoints/automation-action-links.ts +46 -0
- package/core/server/api/endpoints/index.js +4 -0
- package/core/server/api/endpoints/settings.js +0 -2
- package/core/server/api/endpoints/utils/serializers/output/utils/url.js +11 -1
- package/core/server/data/migrations/versions/6.55/2026-07-27-11-25-44-add-to-hash-to-redirects.js +51 -0
- package/core/server/data/migrations/versions/6.55/2026-07-28-12-08-00-remove-routes-hash-from-settings.js +5 -0
- package/core/server/data/schema/commands.js +5 -0
- package/core/server/data/schema/default-settings/default-settings.json +0 -4
- package/core/server/data/schema/schema.js +5 -1
- package/core/server/services/automations/automations-api.js +15 -0
- package/core/server/services/automations/automations-api.ts +19 -0
- package/core/server/services/automations/automations-repository.ts +18 -0
- package/core/server/services/automations/database-automations-repository.js +109 -26
- package/core/server/services/automations/database-automations-repository.ts +110 -7
- package/core/server/services/automations/database-date.js +10 -0
- package/core/server/services/automations/database-date.ts +5 -0
- package/core/server/services/automations/poll.js +5 -2
- package/core/server/services/automations/poll.ts +7 -2
- package/core/server/services/automations/scheduler-poll-time.js +40 -0
- package/core/server/services/automations/scheduler-poll-time.ts +38 -0
- package/core/server/services/automations/service.js +15 -3
- package/core/server/services/automations/service.ts +16 -3
- package/core/server/services/comments/comments-service-emails.js +10 -7
- package/core/server/services/comments/comments-service.js +9 -4
- package/core/server/services/email-rendering/partials/email-wrapper.hbs +3 -1
- package/core/server/services/email-service/email-service-wrapper.js +6 -1
- package/core/server/services/email-service/email-templates/partials/styles.hbs +8 -0
- package/core/server/services/email-service/newsletter-email-event-storage.js +41 -10
- package/core/server/services/lib/dynamic-redirect-manager.js +12 -3
- package/core/server/services/link-redirection/link-redirect-repository.js +41 -4
- package/core/server/services/link-redirection/link-redirect.js +2 -0
- package/core/server/services/link-redirection/link-redirect.ts +3 -1
- package/core/server/services/link-redirection/link-redirects-service.js +38 -2
- package/core/server/services/link-tracking/click-event.js +3 -0
- package/core/server/services/link-tracking/index.js +38 -6
- package/core/server/services/link-tracking/link-click-repository.js +30 -9
- package/core/server/services/link-tracking/link-click-tracking-service.js +44 -3
- package/core/server/services/member-attribution/outbound-link-tagger.js +3 -1
- package/core/server/services/member-welcome-emails/member-welcome-email-renderer.js +19 -4
- package/core/server/services/member-welcome-emails/service.js +11 -3
- package/core/server/services/members/import-export/csv/formula.js +16 -0
- package/core/server/services/members/import-export/csv/formula.ts +14 -0
- package/core/server/services/members/import-export/csv/index.js +3 -1
- package/core/server/services/members/import-export/csv/index.ts +1 -0
- package/core/server/services/members/import-export/import/completion-email.js +22 -3
- package/core/server/services/members/import-export/import/completion-email.ts +29 -7
- package/core/server/services/members/import-export/import/importer.js +25 -4
- package/core/server/services/members/import-export/import/importer.ts +42 -4
- package/core/server/services/members/import-export/index.js +9 -0
- package/core/server/services/members/import-export/index.ts +20 -1
- package/core/server/services/members/service.js +8 -1
- package/core/server/services/members-custom-fields/values-service.js +19 -7
- package/core/server/services/members-custom-fields/values-service.ts +19 -7
- package/core/server/services/mentions/service.js +5 -1
- package/core/server/services/route-settings/activation-bridge.js +59 -49
- package/core/server/services/route-settings/activation-bridge.ts +91 -51
- package/core/server/services/route-settings/dynamic-routing-service.js +22 -51
- package/core/server/services/route-settings/index.js +1 -16
- package/core/server/services/settings/settings-service.js +0 -18
- package/core/server/services/url/url-service-facade.js +1 -1
- package/core/server/services/url/url-service-facade.ts +8 -1
- package/core/server/web/api/endpoints/admin/routes.js +1 -0
- package/package.json +7 -7
- package/pnpm-lock.yaml +8 -8
- package/pnpm-workspace.yaml +5 -4
- package/core/built/admin/assets/Growth-BTP1LthE.js +0 -3
- package/core/built/admin/assets/Newsletters-CSEX0myc.js +0 -1
- package/core/built/admin/assets/Overview-BjACEsJF.js +0 -1
- package/core/built/admin/assets/Web-CxxxjCcv.js +0 -2
- package/core/built/admin/assets/activitypub/layout-CziktJXo.js +0 -1
- package/core/built/admin/assets/audience-X_XsZivI.js +0 -1
- package/core/built/admin/assets/comments-CvyXxOyN.js +0 -1
- package/core/built/admin/assets/constants-c-JNF9c2.js +0 -1
- package/core/built/admin/assets/domain-CPNXKVOV.js +0 -1
- package/core/built/admin/assets/editor-BOG2YPUm.js +0 -8
- package/core/built/admin/assets/field-D0XISCK2.js +0 -1
- package/core/built/admin/assets/filters-bXkkWro8.js +0 -1
- package/core/built/admin/assets/gift-link-modal-su8MsRdg.js +0 -1
- package/core/built/admin/assets/growth-Ba6S5FQX.js +0 -1
- package/core/built/admin/assets/index-D8PbzuT9.css +0 -1
- package/core/built/admin/assets/index-ukW_0Uie.js +0 -67
- package/core/built/admin/assets/label-picker-Uq91atex.js +0 -1
- package/core/built/admin/assets/labels-Cyayfd-e.js +0 -1
- package/core/built/admin/assets/layout-WUcz6tu1.js +0 -1
- package/core/built/admin/assets/member-custom-fields-NCzrMuba.js +0 -1
- package/core/built/admin/assets/member-detail-DPWDtYnN.js +0 -1
- package/core/built/admin/assets/members-B9rO7qr4.js +0 -10
- package/core/built/admin/assets/modals-CxRaan1J.js +0 -31
- package/core/built/admin/assets/moderation-D8zon60E.js +0 -1
- package/core/built/admin/assets/multi-select-combobox-1wYm3nle.js +0 -1
- package/core/built/admin/assets/newsletter-DbYMRxRS.js +0 -1
- package/core/built/admin/assets/note-PiWPnnrh.js +0 -1
- package/core/built/admin/assets/notifications-DEgqqB9G.js +0 -1
- package/core/built/admin/assets/onboarding-route-BzF6HeVn.js +0 -1
- package/core/built/admin/assets/overview-DixLeIqY.js +0 -1
- package/core/built/admin/assets/post-analytics-header-DsMoLx0R.js +0 -1
- package/core/built/admin/assets/post-analytics-provider-BJCPLMIb.js +0 -1
- package/core/built/admin/assets/preferences-D7-j6A4C.js +0 -5
- package/core/built/admin/assets/profile-Dl69QPp0.js +0 -1
- package/core/built/admin/assets/settings-BbmC_Iqq.js +0 -4
- package/core/built/admin/assets/social-urls-BPL1nADp.js +0 -8
- package/core/built/admin/assets/tabs-BQcJQ1ke.js +0 -1
- package/core/built/admin/assets/use-filter-params-DjXkhO54.js +0 -1
- package/core/built/admin/assets/web-LtHNiNBV.js +0 -1
- package/core/server/services/route-settings/default-settings-manager.js +0 -63
- package/core/server/services/route-settings/route-settings.js +0 -170
- package/core/server/services/route-settings/settings-loader.js +0 -60
- package/core/server/services/route-settings/settings-path-manager.js +0 -47
- package/core/server/services/route-settings/validate.js +0 -440
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "./routes-CCHe2dQp.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,i as t,r as n}from"./index-ukW_0Uie.js";var r=t=>!t||t.length===0?n:e.filter(e=>t.includes(e.value)).reduce((e,t)=>e|t.bit,0)||n,i=n=>{let r=[];return(n&t.PUBLIC)!==0&&r.push(e[0].value),(n&t.FREE)!==0&&r.push(e[1].value),(n&t.PAID)!==0&&r.push(e[2].value),r.join(`,`)};export{i as n,r as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{g as r}from"./framework-provider-CmtnPXIT.js";import{i,n as a,t as o}from"./hooks-BApwwBE0.js";import{t as s}from"./nql-BsgFMd93.js";import{g as c,t as l}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{c as u,f as d,m as f}from"./dist-DGzPJ_bO.js";import{t as p}from"./box-BWbhXh21.js";import{t as m}from"./container-BYz2Ed39.js";import{i as h,n as g,r as _,t as v}from"./tabs-BQcJQ1ke.js";import{n as y,r as b}from"./filters-bXkkWro8.js";import{t as x}from"./checkbox-EhJKHFdZ.js";import{t as S}from"./empty-indicator-oX1u1Pkn.js";import{t as C}from"./label-dSs5aepE.js";import{$o as w,Ai as T,Co as E,Cr as D,Da as O,Do as k,Dr as A,E as ee,Ei as te,En as ne,Er as j,Fn as re,Ga as ie,Gn as ae,Gr as oe,Ha as se,In as ce,Io as le,Ji as ue,Jn as de,Ls as fe,Mn as pe,Mo as me,Nn as he,No as ge,Nr as M,Oa as N,Oo as _e,Po as ve,Rr as P,Tr as F,Va as I,Wa as ye,Wo as be,Xn as L,Xo as xe,Yi as Se,Yn as Ce,Yr as R,_o as we,_r as z,br as B,er as V,jo as Te,k as Ee,qr as De,ss as Oe,ti as ke,va as Ae,vr as H,wr as je,xo as Me,xr as U,yr as Ne}from"./index-ukW_0Uie.js";import{t as W}from"./page-header-op0eN36I.js";import{C as Pe,_ as Fe,a as Ie,b as Le,c as Re,f as G,g as ze,h as Be,i as Ve,l as He,m as Ue,n as We,o as Ge,r as Ke,s as qe,t as Je,u as Ye,v as Xe,w as Ze,x as Qe,y as $e}from"./filters-CuB-A7ma.js";import{t as K}from"./list-page-B6ANtzkd.js";import{c as et,n as tt,r as nt}from"./filter-sources-Bieps75g.js";import{i as rt,n as it,r as at,t as ot}from"./virtual-list-Dhuh9fGx.js";import{t as st}from"./get-site-timezone-HgL0jI_F.js";var q=e(t(),1),J=Je({status:{operators:[`is`],ui:{label:`Status`,type:`select`,searchable:!1,hideOperatorSelect:!0},options:[{value:`published`,label:`Published`},{value:`hidden`,label:`Hidden`}],codec:G()},created_at:Pe({operators:Be,ui:{label:`Date`,defaultOperator:Fe,type:`date`},codec:Ye()}),body:{operators:[`contains`,`does-not-contain`],parseKeys:[`html`],ui:{label:`Text`,type:`text`,placeholder:`Search comment text...`,defaultOperator:`contains`,className:`w-full max-w-48`,popoverContentClassName:`w-full max-w-48`},codec:Ue({field:`html`})},post:{operators:[`is`,`is-not`],parseKeys:[`post_id`],ui:{label:`Post`,type:`select`,searchable:!0,className:`w-full max-w-80`,popoverContentClassName:`w-full max-w-[calc(100vw-32px)] max-w-80`},codec:G({field:`post_id`})},author:{operators:[`is`,`is-not`],parseKeys:[`member_id`],ui:{label:`Author`,type:`select`,searchable:!0,className:`w-80`,popoverContentClassName:`w-80`},codec:G({field:`member_id`})},reported:{operators:[`is`],parseKeys:[`count.reports`],ui:{label:`Reported`,type:`select`,searchable:!1,hideOperatorSelect:!0},options:[{value:`true`,label:`Yes`},{value:`false`,label:`No`}],codec:{parse(e,t){let n=Xe(e);return!n||n.field!==`count.reports`?null:n.operator===`$eq`&&n.value===0?{field:t.key,operator:`is`,values:[`false`]}:n.operator===`$gt`&&n.value===0?{field:t.key,operator:`is`,values:[`true`]}:null},serialize(e){let t=e.values[0];return e.operator===`is`?t===`true`?[`count.reports:>0`]:t===`false`?[`count.reports:0`]:null:null}}}}),ct=[`author`,`post`,`body`,`status`,`reported`,`created_at`],lt={...ze,...Le};function ut(e){switch(e){case`author`:return q.createElement(T,{className:`size-4`});case`post`:return q.createElement(_e,{className:`size-4`});case`body`:return q.createElement(se,{className:`size-4`});case`status`:return q.createElement(be,{className:`size-4`});case`reported`:return q.createElement(k,{className:`size-4`});case`created_at`:return q.createElement(Oe,{className:`size-4`});default:return}}function dt({postValueSource:e,memberValueSource:t,siteTimezone:n=`UTC`}){return(0,q.useMemo)(()=>{let r=et(n);return ct.map(n=>{let i=J[n],a=n===`created_at`?{defaultValue:r,...Qe(i)?{customRenderer:$e(r)}:{}}:{};return{key:n,...i.ui,icon:ut(n),operators:He(i.operators,{labels:lt}),...`options`in i&&i.options?{options:i.options}:{},...a,...n===`author`?{valueSource:t}:{},...n===`post`?{valueSource:e}:{}}})},[t,e,n])}var Y=n(),ft=({filters:e,siteTimezone:t,onFiltersChange:n})=>{let r=tt(),i=dt({memberValueSource:nt(),postValueSource:r,siteTimezone:t}),a=e.length>0;return(0,Y.jsx)(y,{addButtonIcon:a?(0,Y.jsx)(E,{}):(0,Y.jsx)(Me,{}),addButtonText:a?`Add filter`:`Filter`,allowMultiple:!1,className:`[&>button]:order-last ${a?`[&>button]:border-none`:`w-auto`}`,clearButtonClassName:`font-normal text-muted-foreground`,clearButtonIcon:(0,Y.jsx)(te,{}),clearButtonText:`Clear`,fields:i,filters:e,keyboardShortcut:`f`,popoverAlign:a?`start`:`end`,showClearButton:a,showSearchInput:!1,onChange:n})},X=`CommentsResponseType`,pt=`count.dislikes`,mt=e=>[`member`,`post`,`count.replies`,`count.direct_replies`,`count.likes`,...e?[pt]:[],`count.reports`,`parent`,`in_reply_to`].join(`,`),ht=e=>[`member`,`post`,`count.direct_replies`,`count.likes`,...e?[pt]:[],`count.reports`,`parent`,`in_reply_to`].join(`,`),gt=o({dataType:X,path:`/comments/`,defaultNextPageParams:(e,t)=>e.meta?.pagination.next?{...t,page:(e.meta?.pagination.next||1).toString()}:void 0,returnData:e=>{let{pages:t}=e,n=t.flatMap(e=>e.comments),r=t[t.length-1].meta;return{comments:n,meta:r,isEnd:r?r.pagination.pages===r.pagination.page:!0}}}),_t=e=>gt({...e,searchParams:{limit:`100`,order:`created_at desc`,include:`member,post,parent`,...e?.searchParams}}),vt=a({method:`PUT`,path:({id:e})=>`/comments/${e}/`,body:({id:e})=>({comments:[{id:e,status:`hidden`}]}),invalidateQueries:{dataType:X}}),yt=a({method:`PUT`,path:({id:e})=>`/comments/${e}/`,body:({id:e})=>({comments:[{id:e,status:`published`}]}),invalidateQueries:{dataType:X}});a({method:`PUT`,path:({id:e})=>`/comments/${e}/`,body:({id:e})=>({comments:[{id:e,status:`deleted`}]}),invalidateQueries:{dataType:X}});var bt=a({method:`PUT`,path:({id:e})=>`/comments/${e}/`,body:({id:e})=>({comments:[{id:e,pinned:!0}]}),invalidateQueries:{dataType:X}}),xt=a({method:`PUT`,path:({id:e})=>`/comments/${e}/`,body:({id:e})=>({comments:[{id:e,pinned:!1}]}),invalidateQueries:{dataType:X}});i({dataType:X,path:e=>`/comments/${e}/replies/`,defaultSearchParams:{include:`member,post,count.replies,count.likes,count.reports,parent`,limit:`100`}});var St=i({dataType:X,path:e=>`/comments/${e}/`,defaultSearchParams:{include:mt(!1)}}),Ct=(e,t)=>{let{dislikesEnabled:n=!1,searchParams:r,...i}=t||{};return St(e,{...i,searchParams:{include:mt(n),...r}})},wt=i({dataType:`CommentReportsResponseType`,path:e=>`/comments/${e}/reports/`}),Tt=(e,t)=>wt(e,{...t}),Et=i({dataType:`CommentLikesResponseType`,path:e=>`/comments/${e}/likes/`,defaultSearchParams:{include:`member`,limit:`100`,order:`created_at desc`}}),Dt=(e,t)=>Et(e,{...t}),Ot=i({dataType:`CommentDislikesResponseType`,path:e=>`/comments/${e}/dislikes/`,defaultSearchParams:{include:`member`,limit:`100`,order:`created_at desc`}}),kt=(e,t)=>Ot(e,{...t}),At=(e,t)=>{let{dislikesEnabled:n=!1,...r}=t||{};return _t({...r,searchParams:{filter:`(parent_id:${e}+in_reply_to_id:null),in_reply_to_id:${e}`,order:`created_at asc`,include:ht(n),limit:`100`}})};function jt({onClick:e,expanded:t}){return(0,Y.jsxs)(M,{className:`shrink-0 gap-0.5 self-start p-0 text-base hover:bg-transparent`,variant:`ghost`,onClick:e,children:[t?`Show less`:`Show more`,t?(0,Y.jsx)(xe,{}):(0,Y.jsx)(w,{})]})}function Mt({item:e}){let t=(0,q.useRef)(null),[n,r]=(0,q.useState)(!1),[i,a]=(0,q.useState)(!1);return(0,q.useEffect)(()=>{if(i)return;let e=()=>{t.current&&r(t.current.scrollHeight>t.current.clientHeight)};return e(),window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[e.html,i]),(0,Y.jsx)(`div`,{className:`mt-2 flex flex-col gap-2`,children:(0,Y.jsxs)(`div`,{className:`flex max-w-full flex-col items-start ${e.status===`hidden`&&`opacity-50`}`,children:[(0,Y.jsx)(`div`,{dangerouslySetInnerHTML:{__html:e.html||``},ref:t,className:u(`prose balance max-w-[80ch] flex-1 text-base leading-[1.5em] [&_*]:text-base [&_*]:leading-[1.5em] [&_*]:font-normal [&_a]:underline [&_blockquote]:border-l-[3px] [&_blockquote]:border-foreground [&_blockquote]:p-0 [&_blockquote]:pl-3 [&_blockquote_p]:mt-0`,i?`-mb-1 [&_p]:mb-[0.85em]`:`mb-1 line-clamp-2 [&_blockquote+p]:mt-1 [&_p]:m-0`)}),n&&(0,Y.jsx)(jt,{expanded:i,onClick:()=>a(!i)})]})})}function Nt(e){let t=new Date(e);return new Intl.DateTimeFormat(`en-US`,{month:`short`,day:`numeric`,year:`numeric`,hour:`numeric`,minute:`numeric`}).format(t).replace(/(\d+),(\s+\d{4})/,`$1$2`)}var Pt=u(Ce({variant:`warning`}),`gap-1 hover:bg-state-warning/30`);function Ft({memberName:e,memberId:t,createdAt:n,isHidden:r,canComment:i,isPinned:a,onAuthorClick:o,postTitle:s,onPostClick:c,onUnpinClick:l,className:d}){return(0,Y.jsxs)(`div`,{className:u(`flex items-center gap-2`,d),children:[(0,Y.jsxs)(`div`,{className:u(`flex min-w-0 items-center gap-x-1`,r&&`opacity-50`),children:[(0,Y.jsx)(`div`,{className:`whitespace-nowrap`,children:t&&o?(0,Y.jsx)(M,{className:`flex h-auto items-center gap-1.5 truncate p-0 text-md font-semibold text-primary hover:opacity-70`,variant:`link`,onClick:o,children:e||`Unknown`}):(0,Y.jsx)(`span`,{className:`block truncate font-semibold`,children:e||`Unknown`})}),i===!1&&(0,Y.jsxs)(z,{children:[(0,Y.jsx)(B,{asChild:!0,children:(0,Y.jsx)(`span`,{"data-testid":`commenting-disabled-indicator`,children:(0,Y.jsx)(ie,{className:`size-3.5 text-muted-foreground`})})}),(0,Y.jsx)(H,{children:`Comments disabled`})]}),(0,Y.jsx)(le,{className:`shrink-0 text-muted-foreground/50`,size:16}),(0,Y.jsx)(`div`,{className:`shrink-0 whitespace-nowrap`,children:n&&(0,Y.jsxs)(z,{children:[(0,Y.jsx)(B,{asChild:!0,children:(0,Y.jsx)(`span`,{className:`cursor-default text-sm text-muted-foreground`,children:f(n)})}),(0,Y.jsx)(H,{children:Nt(n)})]})}),s&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`shrink-0 text-muted-foreground`,children:`on`}),(0,Y.jsx)(`div`,{className:`min-w-0 truncate`,children:c?(0,Y.jsx)(M,{className:`block h-auto w-full cursor-pointer truncate p-0 text-left font-medium text-gray-800 hover:opacity-70 dark:text-gray-400`,variant:`link`,onClick:c,children:s}):(0,Y.jsx)(`span`,{className:`font-medium text-gray-800 dark:text-gray-400`,children:s})})]})]}),r&&(0,Y.jsx)(de,{variant:`secondary`,children:`Hidden`}),a&&(l?(0,Y.jsxs)(`button`,{"aria-label":`Unpin comment`,className:u(`group`,Pt),type:`button`,onClick:e=>{e.stopPropagation(),l?.()},children:[(0,Y.jsxs)(`span`,{className:`grid size-3 shrink-0`,children:[(0,Y.jsx)(N,{className:`col-start-1 row-start-1 size-3 group-hover:opacity-0 group-focus-visible:opacity-0`}),(0,Y.jsx)(O,{className:`col-start-1 row-start-1 size-3 opacity-0 group-hover:opacity-100 group-focus-visible:opacity-100`})]}),(0,Y.jsxs)(`span`,{className:`grid justify-items-start text-left`,children:[(0,Y.jsx)(`span`,{className:`col-start-1 row-start-1 group-hover:opacity-0 group-focus-visible:opacity-0`,children:`Pinned`}),(0,Y.jsx)(`span`,{className:`col-start-1 row-start-1 opacity-0 group-hover:opacity-100 group-focus-visible:opacity-100`,children:`Unpin`})]})]}):(0,Y.jsxs)(de,{className:`gap-1`,variant:`warning`,children:[(0,Y.jsx)(N,{className:`size-3`}),`Pinned`]}))]})}function It({open:e,memberName:t,onOpenChange:n,onConfirm:r}){let[i,a]=(0,q.useState)(!1),o=e=>{e||a(!1),n(e)};return(0,Y.jsx)(U,{open:e,onOpenChange:o,children:(0,Y.jsxs)(D,{className:`gap-5`,children:[(0,Y.jsxs)(j,{children:[(0,Y.jsx)(A,{children:`Disable comments`}),(0,Y.jsxs)(je,{children:[t||`This member`,` won't be able to comment in the future. You can re-enable commenting anytime.`]})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(x,{checked:i,id:`hide-comments`,onCheckedChange:e=>a(e===!0)}),(0,Y.jsx)(C,{htmlFor:`hide-comments`,children:`Hide all previous comments`})]}),(0,Y.jsxs)(F,{children:[(0,Y.jsx)(M,{variant:`outline`,onClick:()=>o(!1),children:`Cancel`}),(0,Y.jsx)(M,{onClick:()=>{r(i),a(!1)},children:`Disable comments`})]})]})})}var Lt=()=>{let{data:e}=fe();return e?.config?.labs?.commentsPinning===!0};function Rt({comment:e}){let{mutate:t}=ee(),{mutate:n}=Ee(),{mutate:r}=bt(),{mutate:i}=xt(),[a,o]=(0,q.useState)(!1),s=Lt(),{id:c,post:l,member:u}=e,d=l?.url,f=u?.id,p=u?.can_comment,m=s&&!e.parent_id&&e.status!==`deleted`;return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(oe,{children:[(0,Y.jsx)(ke,{asChild:!0,children:(0,Y.jsx)(M,{className:`relative z-10 text-gray-800 hover:bg-secondary [&_svg]:size-4`,size:`sm`,variant:`ghost`,children:(0,Y.jsx)(ve,{})})}),(0,Y.jsxs)(De,{align:`start`,children:[d&&(0,Y.jsx)(R,{asChild:!0,children:(0,Y.jsxs)(`a`,{href:`${d}#ghost-comments-${c}`,rel:`noopener noreferrer`,target:`_blank`,children:[(0,Y.jsx)(ge,{className:`size-4`}),`View on post`]})}),f&&(0,Y.jsx)(R,{asChild:!0,children:(0,Y.jsxs)(`a`,{href:`#/members/${f}`,children:[(0,Y.jsx)(T,{className:`size-4`}),`View member`]})}),m&&(e.pinned?(0,Y.jsxs)(R,{onClick:()=>i({id:c}),children:[(0,Y.jsx)(O,{className:`size-4`}),`Unpin comment`]}):(0,Y.jsxs)(R,{onClick:()=>r({id:c}),children:[(0,Y.jsx)(N,{className:`size-4`}),`Pin comment`]})),f&&(p===!1?(0,Y.jsxs)(R,{onClick:()=>{f&&n({id:f})},children:[(0,Y.jsx)(ye,{className:`size-4`}),`Enable commenting`]}):(0,Y.jsxs)(R,{onClick:()=>o(!0),children:[(0,Y.jsx)(ie,{className:`size-4`}),`Disable commenting`]}))]})]}),(0,Y.jsx)(It,{memberName:u?.name,open:a,onConfirm:e=>{f&&(t({id:f,reason:`Disabled from comment ${c}`,hideComments:e}),o(!1))},onOpenChange:o})]})}function zt({comment:e,dislikesEnabled:t,open:n,defaultTab:r=`likes`,onOpenChange:i}){let{data:a,isLoading:o}=Dt(e.id,{enabled:n}),{data:s,isLoading:c}=kt(e.id,{enabled:n&&t}),l=a?.comment_likes??[],u=t?s?.comment_dislikes??[]:[],p=e.count?.likes??0,m=t?e.count?.dislikes??0:0,y=Math.max(0,p-l.length),b=Math.max(0,m-u.length);return(0,Y.jsx)(U,{open:n,onOpenChange:i,children:(0,Y.jsxs)(D,{"aria-describedby":void 0,children:[(0,Y.jsx)(j,{children:(0,Y.jsx)(A,{children:t?(0,Y.jsxs)(Y.Fragment,{children:[d(p),` `,p===1?`like`:`likes`,` and `,d(m),` `,m===1?`dislike`:`dislikes`]}):(0,Y.jsxs)(Y.Fragment,{children:[d(p),` `,p===1?`like`:`likes`]})})}),(0,Y.jsx)(`div`,{className:`overflow-hidden rounded-md border p-3`,children:(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[(0,Y.jsx)(L,{className:`shrink-0`,email:e.member?.email,name:e.member?.name,src:e.member?.avatar_image}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col overflow-hidden`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1 text-sm`,children:[(0,Y.jsx)(`span`,{className:`shrink-0 font-semibold`,children:e.member?P(e.member):`Deleted member`}),(0,Y.jsx)(le,{className:`shrink-0 text-muted-foreground/50`,size:16}),(0,Y.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:e.created_at&&f(e.created_at)}),(0,Y.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:`on`}),(0,Y.jsx)(`span`,{className:`min-w-0 truncate font-medium text-gray-800 dark:text-gray-400`,children:e.post?.title||`Unknown post`})]}),(0,Y.jsx)(`div`,{dangerouslySetInnerHTML:{__html:e.html||``},className:`prose mt-2 line-clamp-2 text-sm [&_*]:text-sm [&_*]:leading-[1.5em] [&_p]:m-0`})]})]})}),t?(0,Y.jsxs)(v,{defaultValue:r,variant:`segmented`,children:[(0,Y.jsxs)(_,{className:`grid w-full grid-cols-2`,children:[(0,Y.jsx)(h,{value:`likes`,children:`Likes`}),(0,Y.jsx)(h,{value:`dislikes`,children:`Dislikes`})]}),(0,Y.jsx)(g,{className:`mt-4`,value:`likes`,children:(0,Y.jsx)(`div`,{className:`-mx-1 max-h-64 overflow-y-auto px-1`,children:o?(0,Y.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,Y.jsx)(V,{size:`md`})}):l.length===0?(0,Y.jsx)(`div`,{className:`py-4 text-center text-sm text-muted-foreground`,children:`No likes yet`}):(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3 pb-1`,children:[l.map(e=>(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Y.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,Y.jsx)(L,{email:e.member?.email,name:e.member?.name,src:e.member?.avatar_image}),(0,Y.jsx)(`div`,{className:`absolute -right-0.5 -bottom-0.5 flex size-4 items-center justify-center rounded-full bg-gray-500 text-white`,children:(0,Y.jsx)(ue,{className:`size-2.5`,fill:`currentColor`})})]}),(0,Y.jsx)(`span`,{className:`font-medium`,children:e.member?P(e.member):`Deleted member`})]}),(0,Y.jsx)(`span`,{className:`shrink-0 text-sm text-muted-foreground`,children:f(e.created_at)})]},e.id)),y>0&&(0,Y.jsxs)(`div`,{className:`pt-1 text-center text-sm text-muted-foreground`,children:[`and `,d(y),` more`]})]})})}),(0,Y.jsx)(g,{className:`mt-4`,value:`dislikes`,children:(0,Y.jsx)(`div`,{className:`-mx-1 max-h-64 overflow-y-auto px-1`,children:c?(0,Y.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,Y.jsx)(V,{size:`md`})}):u.length===0?(0,Y.jsx)(`div`,{className:`py-4 text-center text-sm text-muted-foreground`,children:`No dislikes yet`}):(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3 pb-1`,children:[u.map(e=>(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Y.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,Y.jsx)(L,{email:e.member?.email,name:e.member?.name,src:e.member?.avatar_image}),(0,Y.jsx)(`div`,{className:`absolute -right-0.5 -bottom-0.5 flex size-4 items-center justify-center rounded-full bg-gray-500 text-white`,children:(0,Y.jsx)(Se,{className:`size-2.5`,fill:`currentColor`})})]}),(0,Y.jsx)(`span`,{className:`font-medium`,children:e.member?P(e.member):`Deleted member`})]}),(0,Y.jsx)(`span`,{className:`shrink-0 text-sm text-muted-foreground`,children:f(e.created_at)})]},e.id)),b>0&&(0,Y.jsxs)(`div`,{className:`pt-1 text-center text-sm text-muted-foreground`,children:[`and `,d(b),` more`]})]})})})]}):(0,Y.jsx)(`div`,{className:`-mx-1 max-h-64 overflow-y-auto px-1`,children:o?(0,Y.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,Y.jsx)(V,{size:`md`})}):(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3 pb-1`,children:[l.map(e=>(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Y.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,Y.jsx)(L,{email:e.member?.email,name:e.member?.name,src:e.member?.avatar_image}),(0,Y.jsx)(`div`,{className:`absolute -right-0.5 -bottom-0.5 flex size-4 items-center justify-center rounded-full bg-pink-500 text-white`,children:(0,Y.jsx)(we,{className:`size-2.5`,fill:`currentColor`})})]}),(0,Y.jsx)(`span`,{className:`font-medium`,children:e.member?P(e.member):`Deleted member`})]}),(0,Y.jsx)(`span`,{className:`shrink-0 text-sm text-muted-foreground`,children:f(e.created_at)})]},e.id)),y>0&&(0,Y.jsxs)(`div`,{className:`pt-1 text-center text-sm text-muted-foreground`,children:[`and `,d(y),` more`]})]})}),(0,Y.jsx)(F,{children:(0,Y.jsx)(M,{onClick:()=>i(!1),children:`OK`})})]})})}function Bt({comment:e,open:t,onOpenChange:n}){let{data:r,isLoading:i}=Tt(e.id,{enabled:t}),a=r?.comment_reports??[],o=e.count?.reports??a.length;return(0,Y.jsx)(U,{open:t,onOpenChange:n,children:(0,Y.jsxs)(D,{"aria-describedby":void 0,children:[(0,Y.jsx)(j,{children:(0,Y.jsxs)(A,{children:[o,` `,o===1?`report`:`reports`]})}),(0,Y.jsx)(`div`,{className:`overflow-hidden rounded-md border p-3`,children:(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[(0,Y.jsx)(L,{className:`shrink-0`,email:e.member?.email,name:e.member?.name,src:e.member?.avatar_image}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col overflow-hidden`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1 text-sm`,children:[(0,Y.jsx)(`span`,{className:`shrink-0 font-semibold`,children:e.member?P(e.member):`Deleted member`}),(0,Y.jsx)(le,{className:`shrink-0 text-muted-foreground/50`,size:16}),(0,Y.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:e.created_at&&f(e.created_at)}),(0,Y.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:`on`}),(0,Y.jsx)(`span`,{className:`min-w-0 truncate font-medium text-gray-800 dark:text-gray-400`,children:e.post?.title||`Unknown post`})]}),(0,Y.jsx)(`div`,{dangerouslySetInnerHTML:{__html:e.html||``},className:`prose mt-2 line-clamp-2 text-sm [&_*]:text-sm [&_*]:leading-[1.5em] [&_p]:m-0`})]})]})}),(0,Y.jsx)(`div`,{className:`-mx-1 max-h-64 overflow-y-auto px-1`,children:i?(0,Y.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,Y.jsx)(V,{size:`md`})}):(0,Y.jsx)(`div`,{className:`flex flex-col gap-3 pb-1`,children:a.map(e=>(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Y.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,Y.jsx)(L,{email:e.member?.email,name:e.member?.name,src:e.member?.avatar_image}),(0,Y.jsx)(`div`,{className:`absolute -right-0.5 -bottom-0.5 flex size-4 items-center justify-center rounded-full bg-red text-white`,children:(0,Y.jsx)(k,{className:`size-2.5`,fill:`currentColor`})})]}),(0,Y.jsx)(`span`,{className:`font-medium`,children:e.member?P(e.member):`Deleted member`})]}),(0,Y.jsx)(`span`,{className:`shrink-0 text-sm text-muted-foreground`,children:f(e.created_at)})]},e.id))})}),(0,Y.jsx)(F,{children:(0,Y.jsx)(M,{onClick:()=>n(!1),children:`OK`})})]})})}function Z(e,t){if(!t)return;let n=new URLSearchParams(e);return n.set(`thread`,`is:${t}`),`?${n.toString()}`}function Q({icon:e,count:t,label:n,to:r,onClick:i,className:a,testId:o}){let s=u(`flex items-center gap-1 text-xs text-gray-800`,a),c=(0,Y.jsxs)(Y.Fragment,{children:[e,(0,Y.jsx)(`span`,{children:d(t)})]}),f=r||i;return(0,Y.jsxs)(z,{children:[(0,Y.jsx)(B,{asChild:!0,children:r?(0,Y.jsx)(l,{className:u(s,`cursor-pointer hover:opacity-70`),"data-testid":o,to:r,onClick:e=>{e.stopPropagation()},children:c}):i?(0,Y.jsx)(`button`,{className:u(s,`cursor-pointer hover:opacity-70`),"data-testid":o,type:`button`,onClick:e=>{e.stopPropagation(),i()},children:c}):(0,Y.jsx)(`div`,{className:s,"data-testid":o,children:c})}),(0,Y.jsx)(H,{children:f?`View ${n.toLowerCase()}`:n})]})}function Vt({comment:e,dislikesEnabled:t,className:n}){let[r]=c(),[i,a]=(0,q.useState)(!1),[o,s]=(0,q.useState)(`likes`),[l,d]=(0,q.useState)(!1),f=Z(r,e.id),p=e.count?.direct_replies??e.replies?.length??0,m=e.count?.likes??0,h=t?e.count?.dislikes??0:0,g=e.count?.reports??0,_=p>0,v=m>0,y=h>0,b=g>0;return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:u(`flex items-center gap-6`,n),children:[(0,Y.jsx)(Q,{count:p,icon:(0,Y.jsx)(Ae,{size:16,strokeWidth:1.5}),label:`Replies`,testId:`replies-metric`,to:_?f:void 0}),t?(0,Y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Y.jsx)(Q,{count:m,icon:(0,Y.jsx)(ue,{size:16,strokeWidth:1.5}),label:`Likes`,testId:`likes-metric`,onClick:v?()=>{s(`likes`),a(!0)}:void 0}),(0,Y.jsx)(Q,{count:h,icon:(0,Y.jsx)(Se,{size:16,strokeWidth:1.5}),label:`Dislikes`,testId:`dislikes-metric`,onClick:y?()=>{s(`dislikes`),a(!0)}:void 0})]}):(0,Y.jsx)(Q,{count:m,icon:(0,Y.jsx)(we,{size:16,strokeWidth:1.5}),label:`Likes`,onClick:v?()=>a(!0):void 0}),(0,Y.jsx)(Q,{className:b?`font-semibold text-red`:void 0,count:g,icon:(0,Y.jsx)(k,{size:16,strokeWidth:1.5}),label:`Reports`,onClick:b?()=>d(!0):void 0})]}),(0,Y.jsx)(zt,{comment:e,defaultTab:o,dislikesEnabled:t,open:i,onOpenChange:a}),(0,Y.jsx)(Bt,{comment:e,open:l,onOpenChange:d})]})}function Ht({hasReplies:e}){return e?(0,Y.jsx)(`div`,{className:`mb-2 h-full w-px grow rounded bg-gradient-to-b from-muted-foreground/20 from-70% to-transparent`,"data-testid":`replies-line`}):null}function Ut({comment:e,dislikesEnabled:t,isReply:n=!1,isSelectedComment:r=!1,selectedCommentId:i}){let[a]=c(),{mutate:o}=vt(),{mutate:s}=yt(),{mutate:d}=xt(),f=Lt(),p=(e.replies?.length??0)>0||(e.count?.direct_replies??e.count?.replies??0)>0;return(0,Y.jsxs)(`div`,{className:`flex w-full flex-row ${!p||n?`mb-7`:`mb-0`}`,children:[(0,Y.jsxs)(`div`,{className:`mr-2 flex shrink-0 flex-col items-center justify-start md:mr-3`,children:[(0,Y.jsx)(L,{className:u(`mb-3 size-6 md:mb-4 md:size-8`,e.status===`hidden`&&`opacity-50`),email:e.member?.email,name:e.member?.name,src:e.member?.avatar_image}),(0,Y.jsx)(Ht,{hasReplies:p&&!n})]}),(0,Y.jsx)(`div`,{className:`grow`,children:(0,Y.jsxs)(`div`,{className:`w-full`,"data-testid":`comment-thread-row-${e.id}`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[(0,Y.jsx)(Ft,{canComment:e.member?.can_comment,createdAt:e.created_at,isHidden:e.status===`hidden`,isPinned:f&&e.pinned,memberId:e.member?.id,memberName:e.member?.name,onUnpinClick:f?()=>d({id:e.id}):void 0}),e.in_reply_to_snippet&&r&&(0,Y.jsxs)(`div`,{className:`mb-1 line-clamp-1 text-sm ${e.status===`hidden`&&`opacity-50`}`,children:[(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:`Replied to:`}),`\xA0`,(0,Y.jsx)(l,{className:`text-sm font-normal text-muted-foreground hover:text-foreground`,"data-testid":`replied-to-link`,to:Z(a,e.in_reply_to_id||e.parent_id)||``,onClick:e=>{e.stopPropagation()},children:e.in_reply_to_snippet})]}),(0,Y.jsx)(Mt,{item:e}),(0,Y.jsxs)(`div`,{className:`mt-4 flex flex-row flex-wrap items-center gap-3`,children:[e.status===`published`&&(0,Y.jsxs)(M,{className:`text-gray-800`,size:`sm`,variant:`outline`,onClick:()=>o({id:e.id}),children:[(0,Y.jsx)(me,{}),(0,Y.jsx)(`span`,{className:`max-md:hidden`,children:`Hide`})]}),e.status===`hidden`&&(0,Y.jsxs)(M,{className:`text-gray-800`,size:`sm`,variant:`outline`,onClick:()=>s({id:e.id}),children:[(0,Y.jsx)(Te,{}),(0,Y.jsx)(`span`,{className:`max-md:hidden`,children:`Show`})]}),(0,Y.jsx)(Vt,{comment:e,dislikesEnabled:t}),(0,Y.jsx)(Rt,{comment:e})]})]}),p&&e.replies&&(0,Y.jsx)(`div`,{className:`mt-7 mb-4 -ml-2 pl-2 md:mt-8 md:mb-0 md:-ml-3 md:pl-3`,children:e.replies.map(e=>(0,Y.jsx)(Ut,{comment:e,dislikesEnabled:t,isReply:!0,selectedCommentId:i},e.id))})]})})]})}var Wt=({selectedComment:e,dislikesEnabled:t,replies:n,selectedCommentId:r,fetchNextPage:i,hasNextPage:a,isFetchingNextPage:o})=>(0,Y.jsxs)(`div`,{className:`flex flex-col`,"data-testid":`comment-thread-list`,children:[(0,Y.jsx)(Ut,{comment:{...e,replies:n},dislikesEnabled:t,isSelectedComment:!0,selectedCommentId:r}),a&&(0,Y.jsx)(`div`,{className:`flex justify-center pb-4`,children:(0,Y.jsx)(M,{disabled:o,variant:`outline`,onClick:()=>i(),children:o?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(V,{size:`sm`}),`Loading...`]}):`Load more replies`})})]}),Gt=({commentId:e,dislikesEnabled:t,open:n,onOpenChange:r})=>{let{data:i,isLoading:a,isError:o,fetchNextPage:s,hasNextPage:c,isFetchingNextPage:l}=At(e??``,{dislikesEnabled:t,enabled:n&&!!e}),{data:u,isLoading:d,isError:f}=Ct(e??``,{dislikesEnabled:t,enabled:n&&!!e}),p=a||d,m=f||o&&!u,h=u?.comments?.[0],g=i?.comments||[];return(0,Y.jsx)(pe,{open:n,onOpenChange:r,children:(0,Y.jsxs)(he,{className:`overflow-y-auto px-6 pt-0 sm:max-w-[420px]`,children:[(0,Y.jsx)(re,{className:`sticky top-0 z-40 -mx-6 bg-surface-elevated/60 p-6 backdrop-blur`,children:(0,Y.jsx)(ce,{className:`text-md`,children:`Thread`})}),h?.post&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(`h3`,{className:`line-clamp-1 text-xl font-semibold text-foreground`,children:h.post.title}),h.post.excerpt&&(0,Y.jsx)(`p`,{className:`mt-1 line-clamp-2 text-sm text-muted-foreground`,children:h.post.excerpt})]}),h.post.feature_image&&(0,Y.jsx)(`img`,{alt:h.post.title||`Post feature image`,className:`hidden aspect-video h-18 shrink-0 rounded object-cover lg:block`,src:h.post.feature_image})]}),(0,Y.jsx)(ae,{className:`-mx-6 my-6 w-auto`})]}),(0,Y.jsx)(`div`,{children:p?(0,Y.jsx)(`div`,{className:`flex h-full items-center justify-center py-8`,children:(0,Y.jsx)(V,{size:`lg`})}):m||!h?(0,Y.jsx)(`div`,{className:`flex h-full items-center justify-center py-8`,children:(0,Y.jsx)(S,{actions:(0,Y.jsx)(M,{variant:`outline`,onClick:()=>r(!1),children:`Back to comments`}),description:`This thread may have been deleted or doesn't exist.`,title:`Thread not found`,children:(0,Y.jsx)(I,{})})}):(0,Y.jsx)(Wt,{dislikesEnabled:t,fetchNextPage:()=>void s(),hasNextPage:c,isFetchingNextPage:l,replies:g,selectedComment:h,selectedCommentId:e??``})})]})})},Kt=({height:e})=>(0,Y.jsx)(`div`,{"aria-hidden":`true`,className:`flex`,children:(0,Y.jsx)(`div`,{className:`flex`,style:{height:e}})}),qt=(0,q.forwardRef)(function(e,t){return(0,Y.jsx)(`div`,{ref:t,...e,"aria-hidden":`true`,className:`relative flex flex-col`,children:(0,Y.jsx)(`div`,{className:`relative z-10 h-24 animate-pulse`,children:(0,Y.jsx)(`div`,{className:`h-full rounded-md bg-muted`,"data-testid":`loading-placeholder`})})})});function Jt({items:e,totalItems:t,hasNextPage:n,isFetchingNextPage:r,fetchNextPage:i,resetKey:a,onAddFilter:o,isLoading:s,dislikesEnabled:d}){let f=(0,q.useRef)(null),{visibleItemCount:p,canLoadMore:m,loadMore:h}=at(t,{resetKey:a}),[g,_]=c(),[v,y]=(0,q.useState)(!1),[b,x]=(0,q.useState)(null),{mutate:S}=vt(),{mutate:C}=yt(),{mutate:w}=xt(),T=Lt(),E=e=>{if(y(e),!e){let e=new URLSearchParams(g);e.delete(`thread`),_(e,{replace:!0})}};(0,q.useEffect)(()=>{let e=g.get(`thread`);if(e){let t=e.match(/^is:(.+)$/);if(t&&t[1]){let e=t[1];x(e),y(!0)}else y(!1),x(null)}else y(!1),x(null)},[g]),it({parentRef:f,isLoading:s});let{visibleItems:D,spaceBefore:O,spaceAfter:k}=rt({items:e,totalItems:p,hasNextPage:n,isFetchingNextPage:r,fetchNextPage:i,parentRef:f});return(0,Y.jsx)(Ne,{children:(0,Y.jsxs)(`div`,{ref:f,className:`overflow-hidden border-t`,children:[(0,Y.jsx)(`div`,{className:`flex flex-col`,"data-testid":`comments-list`,children:(0,Y.jsxs)(`div`,{className:`flex flex-col`,children:[(0,Y.jsx)(Kt,{height:O}),D.map(({key:t,virtualItem:n,item:r,props:i})=>n.index>e.length-1?(0,Y.jsx)(qt,{...i},t):(0,Y.jsxs)(`div`,{...i,className:`grid w-full grid-cols-1 items-start justify-between gap-4 border-b p-3 hover:bg-table-row-hover md:p-5 lg:grid-cols-[minmax(0,1fr)_144px]`,"data-testid":`comment-list-row`,onClick:()=>{v&&E(!1)},children:[(0,Y.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,Y.jsx)(L,{className:u(`mt-0.5 size-6 md:size-8`,r.status===`hidden`&&`opacity-50`),email:r.member?.email,name:r.member?.name,src:r.member?.avatar_image}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-3`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(Ft,{canComment:r.member?.can_comment,createdAt:r.created_at,isHidden:r.status===`hidden`,isPinned:T&&r.pinned,memberId:r.member?.id,memberName:r.member?.name,postTitle:r.post?.title,onAuthorClick:r.member?.id?()=>o(`author`,r.member.id):void 0,onPostClick:r.post?.id?()=>o(`post`,r.post.id):void 0,onUnpinClick:T?()=>w({id:r.id}):void 0}),r.in_reply_to_snippet&&(0,Y.jsxs)(`div`,{className:`mb-1 line-clamp-1 max-w-3xl ${r.status===`hidden`&&`opacity-50`}`,children:[(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:`Replied to:`}),`\xA0`,(0,Y.jsx)(l,{className:`text-sm font-normal text-muted-foreground hover:text-foreground`,"data-testid":`replied-to-link`,to:Z(g,r.in_reply_to_id||r.parent_id)||``,onClick:e=>{e.stopPropagation()},children:r.in_reply_to_snippet})]})]}),(0,Y.jsx)(Mt,{item:r}),(0,Y.jsxs)(`div`,{className:`flex flex-row flex-nowrap items-center gap-3`,children:[r.status===`published`&&(0,Y.jsxs)(M,{className:`text-foreground`,size:`sm`,variant:`outline`,onClick:()=>S({id:r.id}),children:[(0,Y.jsx)(me,{}),`Hide`]}),r.status===`hidden`&&(0,Y.jsxs)(M,{className:`text-foreground`,size:`sm`,variant:`outline`,onClick:()=>C({id:r.id}),children:[(0,Y.jsx)(Te,{}),`Show`]}),(0,Y.jsx)(Vt,{className:`ml-2`,comment:r,dislikesEnabled:d}),(0,Y.jsx)(Rt,{comment:r})]})]})]}),(0,Y.jsx)(`div`,{children:r.post?.feature_image?(0,Y.jsx)(`img`,{alt:r.post.title||`Post feature image`,className:`hidden aspect-video w-36 rounded object-cover lg:block ${r.status===`hidden`&&`opacity-50`}`,src:r.post.feature_image}):null})]},t)),(0,Y.jsx)(Kt,{height:k})]})}),m&&(0,Y.jsx)(ot,{isLoading:r,onClick:h}),(0,Y.jsx)(Gt,{commentId:b,dislikesEnabled:d,open:v,onOpenChange:E})]})})}var Yt=Ke(J,`date`);function Xt(e){return Re(J,e.field,`UTC`)?.definition.operators.includes(e.operator)??!1}function Zt(e,t){return Array.isArray(e.$and)?e.$and.flatMap(e=>Zt(e,t)):We([e],J,t)}function Qt(e,t){let n=Ie(e??``);return n?qe(Zt(n,t).filter(Xt)):[]}function $t(e){let t=Ie(e??``);return t?Ve(t,Yt):!1}function $(e,t){return Ge(e.filter(Xt),J,t)}var en=[`status`,`created_at`,`body`,`post`,`author`,`reported`],tn={is_not:`is-not`,not_contains:`does-not-contain`,before:`is-less`,after:`is-greater`,on_or_before:`is-or-less`,on_or_after:`is-or-greater`};function nn(e){let t=e.indexOf(`:`);if(t<=0)return null;let n=e.substring(0,t),r=e.substring(t+1);return r?{operator:tn[n]??n,value:r}:null}function rn(e){let t=[];for(let[n,r]of e.entries()){if(!en.includes(n))continue;let e=nn(r);e&&t.push({id:`${n}:${t.length+1}`,field:n,operator:e.operator,values:[e.value]})}return t}function an(e){en.forEach(t=>e.delete(t))}function on(e,t,n){let r=new URLSearchParams(e),i=$(t,n);return r.delete(`filter`),an(r),i&&r.set(`filter`,i),r}function sn(e,t,n=!t){return!!e&&n&&!t&&$t(e)}function cn(e){let[t,n]=c(),r=(0,q.useRef)(null),i=(0,q.useMemo)(()=>t.get(`filter`)??void 0,[t]),a=(0,q.useMemo)(()=>t.toString(),[t]),o=(0,q.useMemo)(()=>i===void 0?rn(t):Qt(i,e),[i,t,e]),[s,l]=(0,q.useState)(o),u=(0,q.useMemo)(()=>$(s,e),[s,e]);return(0,q.useEffect)(()=>{a!==r.current&&(l(o),r.current=a)},[a,o]),(0,q.useEffect)(()=>{if(r.current!==null&&a!==r.current)return;let i=on(t,s,e),o=i.toString();o!==a&&(r.current=o,n(i,{replace:!0}))},[a,s,t,n,e]),{filters:s,nql:u,setFilters:(0,q.useCallback)((i,a={})=>{let o=typeof i==`function`?i(s):i,c=on(t,o,e),u=a.replace??!0;l(o),r.current=c.toString(),n(c,{replace:u})},[s,t,n,e]),clearFilters:(0,q.useCallback)(({replace:e=!0}={})=>{let i=new URLSearchParams(t);i.delete(`filter`),an(i),l([]),r.current=i.toString(),n(i,{replace:e})},[t,n])}}function ln(e){return e.get(`id`)?.match(/^is:(.+)$/)?.[1]}var un=({timezone:e,singleCommentId:t})=>{let[n,i]=c(),{filters:a,nql:o,setFilters:l}=cn(e),u=(0,q.useCallback)((r,o,s=`is`)=>{let c=[...a.filter(e=>e.field!==r),b(r,s,[o])];if(!t){l(c,{replace:!1});return}let u=new URLSearchParams(n),d=$(c,e);u.delete(`id`),u.delete(`filter`),d&&u.set(`filter`,d),i(u,{replace:!1})},[a,n,l,i,t,e]),d=(0,q.useMemo)(()=>t?`id:${s(t)}`:o,[o,t]),f=(0,q.useCallback)(()=>{i(new URLSearchParams,{replace:!1})},[i]),{data:h,isError:g,isFetching:_,isFetchingNextPage:v,isRefetching:y,fetchNextPage:x,hasNextPage:C}=_t({searchParams:{include:mt(!0),...d?{filter:d}:{}},placeholderData:r}),w=_&&!v&&!y,T=d??``,E=a.length>0;return(0,Y.jsx)(p,{className:`size-full`,children:(0,Y.jsx)(m,{className:`relative flex h-full flex-col`,size:`page`,children:(0,Y.jsxs)(K,{"data-testid":`comments-page`,children:[(0,Y.jsxs)(K.Header,{children:[(0,Y.jsxs)(W,{blurredBackground:!1,sticky:!1,children:[(0,Y.jsx)(W.Left,{children:(0,Y.jsx)(W.Title,{children:`Comments`})}),!t&&!E&&(0,Y.jsx)(W.Actions,{children:(0,Y.jsx)(W.ActionGroup,{children:(0,Y.jsx)(ft,{filters:a,siteTimezone:e,onFiltersChange:l})})})]}),!t&&E&&(0,Y.jsx)(Ze,{children:(0,Y.jsx)(ft,{filters:a,siteTimezone:e,onFiltersChange:l})})]}),(0,Y.jsx)(K.Body,{children:w?(0,Y.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,Y.jsx)(V,{size:`lg`})}):g?(0,Y.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center`,children:[(0,Y.jsx)(`h2`,{className:`mb-2 text-xl font-medium`,children:`Error loading comments`}),(0,Y.jsx)(`p`,{className:`mb-4 text-muted-foreground`,children:`Please reload the page to try again`}),(0,Y.jsx)(M,{onClick:()=>window.location.reload(),children:`Reload page`})]}):h?.comments.length?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Jt,{dislikesEnabled:!0,fetchNextPage:()=>void x(),hasNextPage:C,isFetchingNextPage:v,isLoading:_&&!v,items:h?.comments??[],resetKey:T,totalItems:h?.meta?.pagination?.total??0,onAddFilter:u}),t&&(0,Y.jsx)(`div`,{className:`flex justify-center py-8`,children:(0,Y.jsx)(M,{variant:`outline`,onClick:f,children:`Show all comments`})})]}):(0,Y.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:t?(0,Y.jsxs)(`div`,{className:`flex flex-col items-center`,children:[(0,Y.jsx)(S,{title:`Comment not found`,children:(0,Y.jsx)(I,{})}),(0,Y.jsx)(M,{className:`mt-4`,variant:`outline`,onClick:f,children:`Show all comments`})]}):(0,Y.jsx)(S,{title:`No comments yet`,children:(0,Y.jsx)(I,{})})})})]})})})},dn=()=>{let[e]=c(),{data:t,isLoading:n}=ne({}),r=(0,q.useMemo)(()=>ln(e),[e]),i=e.get(`filter`)??void 0;if(!r&&sn(i,!!t,n))return(0,Y.jsx)(p,{className:`size-full`,children:(0,Y.jsx)(m,{className:`relative flex h-full flex-col`,size:`page`,children:(0,Y.jsxs)(K,{children:[(0,Y.jsx)(K.Header,{children:(0,Y.jsx)(W,{blurredBackground:!1,sticky:!1,children:(0,Y.jsx)(W.Left,{children:(0,Y.jsx)(W.Title,{children:`Comments`})})})}),(0,Y.jsx)(K.Body,{children:(0,Y.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,Y.jsx)(V,{size:`lg`})})})]})})});let a=st(t?.settings??[]);return(0,Y.jsx)(un,{singleCommentId:r,timezone:a})};export{dn as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=`email,authors,tags,tiers,count.clicks,count.signups,count.paid_conversions,count.positive_feedback,count.negative_feedback,newsletter`;export{e as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{t as r}from"./inline-EMAm3okk.js";import{i,o as a,t as o}from"./field-D0XISCK2.js";import{Bt as ee,Lt as te,Nr as s,Os as ne,R as re,Ro as ie,Rt as ae,_r as oe,bn as se,br as ce,er as c,ht as le,ji as ue,pt as de,rr as l,tr as u,vr as fe,yr as pe}from"./index-ukW_0Uie.js";import"./layout-WUcz6tu1.js";import{n as me,t as d}from"./social-web-handle-CvfIKPww.js";var f=e(t(),1),p=n();function m(e){let t=e.trim();if(t===``)return null;try{return new URL(t.includes(`://`)?t:`https://${t}`).host||null}catch{return t.replace(/^[a-z][a-z\d+\-.]*:\/\//i,``).split(/[/?#]/)[0]||null}}function he(e,t){if(e)try{return new URL(e).host}catch{}return t?.split(`@`).at(-1)??``}function ge(e,t){if(!e)return``;try{return new URL(e,t||window.location.origin).toString()}catch{return e}}async function _e(e){if(navigator.clipboard?.writeText)try{await navigator.clipboard.writeText(e);return}catch{}let t=document.createElement(`textarea`);t.value=e,t.setAttribute(`readonly`,``),t.style.position=`fixed`,t.style.left=`-9999px`,t.style.top=`0`,document.body.appendChild(t),t.select(),document.execCommand(`copy`),document.body.removeChild(t)}var h=()=>{let{data:e,isLoading:t}=le(`index`,`me`),{data:n}=se(),{data:h,isLoading:ve,isError:g}=de(`index`),_=te(`index`),v=ee(`index`),y=ae(e?.handle||`index`),[b,x]=(0,f.useState)(``),[S,C]=(0,f.useState)(``),[w,T]=(0,f.useState)(null),[E,D]=(0,f.useState)(!1),[O,k]=(0,f.useState)(!1),[A,j]=(0,f.useState)(!1),[M,N]=(0,f.useState)(null),[P,F]=(0,f.useState)(null),[I,L]=(0,f.useState)(null),[ye,R]=(0,f.useState)(!1),[be,z]=(0,f.useState)(!1),B=(0,f.useRef)(null);(0,f.useEffect)(()=>{e?.handle&&(C(d(e.handle).username),T(null))},[e?.handle]),(0,f.useEffect)(()=>()=>{B.current&&window.clearTimeout(B.current)},[]);let V=m(b),H=h?.domain??null,U=he(h?.actorUrl,h?.handle),W=d(e?.handle).username,G=y.isPending,xe=_.isPending||v.isPending,K=ve||xe,q=t||G||!e,J=!!(E&&S!==W),Y=!!(A&&V&&(!H||M===V)),Se=!!(O&&V&&!A),X=!!(Y&&V&&V!==M),Ce=!!(M&&V===M),we=V?`https://${V}/.well-known/webfinger`:``,Te=U?`https://${U}/.well-known/webfinger`:``,Z=d(h?.handle),Q={username:E?S:Z.username,domain:(O||A)&&b?V??b.trim():Z.domain},Ee=`@${Q.username}@${Q.domain}`,De=ge(e?.avatarUrl||n?.site?.icon,n?.site?.url),Oe=e=>{e.preventDefault();let t=m(new FormData(e.currentTarget).get(`domain`)?.toString()??``);t&&(x(t),k(!0),j(!0),F(null),L(null))},ke=async()=>{if(!(!V||!X)){F(null),L(null);try{await v.mutateAsync(V),N(V)}catch{L(`Redirect could not be validated`)}}},Ae=async()=>{if(M){F(null),L(null);try{await _.mutateAsync(M),x(``),k(!1),j(!1),N(null)}catch{F(`Could not save the custom domain. Try again.`)}}},$=()=>{x(``),k(!1),j(!1),N(null),F(null),L(null)},je=async()=>{if(!e||!E||!J)return;let t=me(S);if(t){T(t);return}T(null);try{await y.mutateAsync({name:e.name,username:S,bio:e.bio??``,avatarUrl:e.avatarUrl||``,bannerImageUrl:e.bannerImageUrl||``}),D(!1)}catch{T(`Could not save the Social Web username. Try again.`)}},Me=()=>{C(W),T(null),D(!1)},Ne=async()=>{F(null);try{await _.mutateAsync(null),x(``),k(!1),j(!1),N(null)}catch{F(`Could not remove the custom domain. Try again.`)}},Pe=async()=>{!Q.username||!Q.domain||(await _e(Ee),R(!0),z(!0),B.current&&window.clearTimeout(B.current),B.current=window.setTimeout(()=>{R(!1),z(!1)},2e3))};return(0,p.jsx)(re,{children:(0,p.jsxs)(`div`,{className:`mx-auto max-w-[620px] py-[min(4vh,48px)]`,children:[(0,p.jsx)(r,{gap:`2xl`,justify:`between`,children:(0,p.jsx)(ne,{children:`Your social web handle`})}),(0,p.jsx)(`p`,{className:`mt-3 text-base text-muted-foreground`,children:`Like an email address, your handle is how people can find and interact with you.`}),(0,p.jsx)(`div`,{className:`mt-10`,children:(0,p.jsx)(`div`,{className:`rounded-md border border-border-default bg-sidebar px-4 pt-3 pb-4`,children:(0,p.jsx)(o,{children:ve?(0,p.jsx)(u,{className:`mt-2 h-16 w-full`}):g?(0,p.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Could not load your Social Web handle.`}):(0,p.jsxs)(`div`,{className:`mt-3 flex items-start gap-2`,children:[(0,p.jsx)(`div`,{className:`mt-[-5px] flex size-7 shrink-0 items-center justify-center overflow-hidden rounded-full bg-surface-elevated text-muted-foreground ring-1 ring-border-default`,children:t?(0,p.jsx)(u,{className:`size-7 rounded-full`}):De?(0,p.jsx)(`img`,{alt:e?.name||n?.site?.title||``,className:`size-full rounded-full object-cover`,referrerPolicy:`no-referrer`,src:De}):(0,p.jsx)(ue,{className:`size-4`,strokeWidth:1.5})}),(0,p.jsx)(`div`,{className:`-ml-14 min-w-0 overflow-x-auto px-14`,children:(0,p.jsxs)(`div`,{"aria-label":`Social Web handle breakdown`,className:`inline-flex pb-9 font-mono text-xl leading-none font-medium whitespace-nowrap text-foreground select-none`,role:`group`,children:[(0,p.jsx)(`span`,{children:`@`}),(0,p.jsxs)(`div`,{className:`relative`,children:[(0,p.jsx)(`span`,{children:Q.username}),(0,p.jsxs)(`div`,{className:`absolute top-7 left-0 w-full border-t border-border-strong before:absolute before:top-[-5px] before:left-0 before:h-[5px] before:border-l before:border-border-strong after:absolute after:top-[-5px] after:right-0 after:h-[5px] after:border-l after:border-border-strong`,children:[(0,p.jsx)(`span`,{"aria-hidden":`true`,className:`absolute top-0 left-1/2 h-[5px] border-l border-border-strong`}),(0,p.jsx)(`div`,{className:`absolute top-2 right-0 w-max min-w-full text-center font-sans text-[10px] leading-normal font-medium whitespace-nowrap text-muted-foreground uppercase`,children:`Username`})]})]}),(0,p.jsx)(`span`,{className:`ml-px`,children:`@`}),(0,p.jsxs)(`div`,{className:`relative`,children:[(0,p.jsx)(`span`,{children:Q.domain}),(0,p.jsxs)(`div`,{className:`absolute top-7 left-0 w-full border-t border-state-success before:absolute before:top-[-5px] before:left-0 before:h-[5px] before:border-l before:border-state-success after:absolute after:top-[-5px] after:right-0 after:h-[5px] after:border-l after:border-state-success`,children:[(0,p.jsx)(`span`,{"aria-hidden":`true`,className:`absolute top-0 left-1/2 h-[5px] border-l border-state-success`}),(0,p.jsx)(`div`,{className:`absolute top-2 left-0 w-max min-w-full text-center font-sans text-[10px] leading-normal font-medium whitespace-nowrap text-state-success uppercase`,children:`Domain`})]})]}),h?.handle&&(0,p.jsx)(pe,{delayDuration:0,children:(0,p.jsxs)(oe,{open:be,onOpenChange:z,children:[(0,p.jsx)(ce,{asChild:!0,children:(0,p.jsx)(s,{"aria-label":`Copy Social Web handle`,className:`mt-[-2px] ml-1.5 size-5 shrink-0 self-start p-0 text-muted-foreground hover:text-foreground [&_svg]:size-3.5!`,type:`button`,variant:`ghost`,onClick:()=>{Pe()},children:(0,p.jsx)(ie,{size:12})})}),(0,p.jsx)(fe,{children:ye?`Copied!`:`Copy`})]})})]})})]})})})}),(0,p.jsx)(`form`,{className:`mt-10`,onSubmit:e=>{e.preventDefault(),je()},children:(0,p.jsxs)(o,{children:[(0,p.jsx)(a,{htmlFor:`social-web-username`,children:`Social web username`}),t?(0,p.jsx)(u,{className:`h-9 w-full`}):(0,p.jsxs)(r,{className:`flex-col items-stretch sm:flex-row sm:items-center`,gap:`md`,children:[(0,p.jsx)(l,{"aria-describedby":w?`social-web-username-error`:void 0,"aria-invalid":w?!0:void 0,autoComplete:`off`,className:`sm:flex-1`,disabled:q||!E,id:`social-web-username`,value:S,"data-1p-ignore":!0,onChange:e=>{C(e.target.value),T(null)}}),E?(0,p.jsxs)(r,{gap:`md`,justify:`end`,children:[(0,p.jsx)(s,{className:`h-9 text-sm sm:w-auto`,disabled:G,type:`button`,variant:`outline`,onClick:Me,children:`Cancel`}),(0,p.jsx)(s,{className:`h-9 text-sm sm:w-auto`,disabled:q||!J,type:`submit`,children:G?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(c,{color:`light`,size:`sm`}),`Saving...`]}):`Save`})]}):(0,p.jsx)(s,{"aria-label":`Edit Social web username`,className:`h-9 text-sm sm:w-auto`,disabled:q,type:`button`,variant:`outline`,onClick:()=>{C(W),T(null),D(!0)},children:`Edit`})]}),w&&(0,p.jsx)(i,{id:`social-web-username-error`,children:w})]})}),(0,p.jsx)(`div`,{className:`mt-10`,children:H&&!M?(0,p.jsxs)(o,{"data-invalid":P?!0:void 0,children:[(0,p.jsx)(a,{htmlFor:`social-web-active-domain`,children:`Social web domain`}),(0,p.jsxs)(r,{className:`flex-col items-stretch sm:flex-row sm:items-center`,gap:`md`,children:[(0,p.jsx)(l,{"aria-label":`Active social web domain`,autoComplete:`off`,className:`sm:flex-1`,id:`social-web-active-domain`,value:H,"data-1p-ignore":!0,disabled:!0}),(0,p.jsx)(s,{className:`h-9 text-sm sm:w-auto`,disabled:K,variant:`outline`,onClick:Ne,children:_.isPending?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(c,{size:`sm`}),`Removing...`]}):`Remove`})]}),P&&(0,p.jsx)(i,{id:`social-web-domain-error`,children:P})]}):(0,p.jsxs)(`form`,{onSubmit:Oe,children:[(0,p.jsxs)(o,{"data-invalid":P?!0:void 0,children:[(0,p.jsx)(a,{htmlFor:`social-web-domain`,children:`Social web domain`}),(0,p.jsxs)(r,{className:`flex-col items-stretch sm:flex-row sm:items-center`,gap:`md`,children:[(0,p.jsx)(l,{"aria-describedby":P?`social-web-domain-error`:void 0,"aria-invalid":P?!0:void 0,"aria-label":`Social web domain`,autoComplete:`off`,className:`sm:flex-1`,disabled:K||!O||A,id:`social-web-domain`,name:`domain`,placeholder:U,value:O||A?b:U,"data-1p-ignore":!0,onChange:e=>{x(e.target.value),j(!1),N(null),F(null),L(null)}}),!Y&&(O?(0,p.jsxs)(r,{gap:`md`,justify:`end`,children:[(0,p.jsx)(s,{className:`h-9 text-sm sm:w-auto`,disabled:K,type:`button`,variant:`outline`,onClick:$,children:`Cancel`}),(0,p.jsx)(s,{className:`h-9 text-sm sm:w-auto`,disabled:K||!Se||g,type:`submit`,children:`Activate`})]}):(0,p.jsx)(s,{"aria-label":`Edit Social web domain`,className:`h-9 text-sm sm:w-auto`,disabled:K||g,type:`button`,variant:`outline`,onClick:()=>{x(``),F(null),L(null),k(!0)},children:`Edit`}))]}),P&&(0,p.jsx)(i,{id:`social-web-domain-error`,children:P})]}),Y&&(0,p.jsxs)(`div`,{className:`mt-6 rounded-md border border-border-default bg-surface-elevated p-4`,children:[(0,p.jsx)(`div`,{className:`text-sm font-medium text-foreground`,children:`Set up your redirect`}),(0,p.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:`Add a redirect or proxy service to forward social web requests to Ghost.`}),(0,p.jsxs)(`div`,{className:`mt-4 flex flex-col gap-3 text-sm`,children:[(0,p.jsxs)(`div`,{children:[(0,p.jsx)(`div`,{className:`text-muted-foreground`,children:`Redirect from`}),(0,p.jsx)(`code`,{className:`mt-1 block overflow-x-auto rounded-sm bg-background px-3 py-2 text-foreground`,children:we})]}),(0,p.jsxs)(`div`,{children:[(0,p.jsx)(`div`,{className:`text-muted-foreground`,children:`Redirect to`}),(0,p.jsx)(`code`,{className:`mt-1 block overflow-x-auto rounded-sm bg-background px-3 py-2 text-foreground`,children:Te})]})]})]}),Y&&(0,p.jsxs)(r,{className:`mt-4 flex-col items-stretch sm:flex-row sm:items-center`,gap:`md`,justify:`between`,children:[(0,p.jsx)(`div`,{className:`text-sm text-destructive`,children:I}),(0,p.jsxs)(r,{gap:`md`,justify:`end`,children:[(0,p.jsx)(s,{disabled:K,variant:`outline`,onClick:$,children:`Cancel`}),Ce?(0,p.jsx)(s,{disabled:K,onClick:Ae,children:_.isPending?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(c,{color:`light`,size:`sm`}),`Saving...`]}):`Save`}):(0,p.jsx)(s,{disabled:K||!X||g,onClick:ke,children:v.isPending?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(c,{color:`light`,size:`sm`}),`Validating...`]}):I?`Retry`:`Validate`})]})]})]})})]})})};export{h as default};
|