ghost 6.63.0 → 6.64.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/bin/lib/duplicate-deps.js +204 -0
- package/bin/validate-adapters.js +50 -6
- package/components/tryghost-adapter-base-scheduling-0.2.3.tgz +0 -0
- package/components/tryghost-adapter-base-sso-0.1.3.tgz +0 -0
- package/components/tryghost-admin-api-schema-0.0.0.tgz +0 -0
- package/components/tryghost-api-framework-0.0.0.tgz +0 -0
- package/components/tryghost-i18n-0.0.0.tgz +0 -0
- package/components/{tryghost-kg-default-cards-10.3.5.tgz → tryghost-kg-default-cards-10.3.6.tgz} +0 -0
- package/components/tryghost-kg-default-nodes-2.2.1.tgz +0 -0
- package/components/tryghost-kg-html-to-lexical-1.4.0.tgz +0 -0
- package/components/tryghost-kg-lexical-html-renderer-1.5.1.tgz +0 -0
- package/components/tryghost-limit-service-0.0.0.tgz +0 -0
- package/components/tryghost-metafield-types-0.0.0.tgz +0 -0
- package/content/themes/source/assets/built/screen.css +1 -1
- package/content/themes/source/assets/css/screen.css +1 -1
- package/content/themes/source/package.json +7 -7
- package/core/boot.js +10 -4
- package/core/built/admin/assets/Combination-DWfJPcz9.js +41 -0
- package/core/built/admin/assets/{PolarAngleAxis-pkMyqz8g.js → PolarAngleAxis-a81ieQUO.js} +2 -2
- package/core/built/admin/assets/RadialBarChart-CHRBhiBN.js +1 -0
- package/core/built/admin/assets/_baseAssignValue-DcPokYW8.js +1 -0
- package/core/built/admin/assets/about-39CAfroa.js +1 -0
- package/core/built/admin/assets/accordion-CJmRaqK7.js +1 -0
- package/core/built/admin/assets/account-migration-DYf7skbb.js +1 -0
- package/core/built/admin/assets/action-list-Crnh-_UI.js +1 -0
- package/core/built/admin/assets/add-integration-modal-B12oRifD.js +1 -0
- package/core/built/admin/assets/add-newsletter-modal-CTvXiIqY.js +1 -0
- package/core/built/admin/assets/add-recommendation-modal-CJf92edY.js +1 -0
- package/core/built/admin/assets/analytics-PHR1Fggi.js +1 -0
- package/core/built/admin/assets/announcement-bar-modal-Bql0CXdp.js +1 -0
- package/core/built/admin/assets/api-keys-CubH-7_H.js +1 -0
- package/core/built/admin/assets/{api-keys-BGPzLHzA.js → api-keys-omLA6iYn.js} +1 -1
- package/core/built/admin/assets/{audience-ceV3XVHq.js → audience-6GXevic-.js} +1 -1
- package/core/built/admin/assets/automated-emails-DJQ4uNZo.js +1 -0
- package/core/built/admin/assets/automations-DcZSLFDU.js +1 -0
- package/core/built/admin/assets/automations-hDVcRPjh.js +1 -0
- package/core/built/admin/assets/avatar-flipboard-DiAGgshK.js +1 -0
- package/core/built/admin/assets/badge-qP06OT7C.js +1 -0
- package/core/built/admin/assets/bluesky-sharing-CJw4d4Mf.js +1 -0
- package/core/built/admin/assets/box-CZ_LSVSy.js +1 -0
- package/core/built/admin/assets/brand-icon-D3ffDYaC.js +1 -0
- package/core/built/admin/assets/breadcrumb-Chn1Ip_q.js +1 -0
- package/core/built/admin/assets/button-DvIh2Bq-.js +1 -0
- package/core/built/admin/assets/calendar-1QGoStFM.js +1 -0
- package/core/built/admin/assets/card-FHQ4D10L.js +1 -0
- package/core/built/admin/assets/chart-helpers-CNpA7re_.js +1 -0
- package/core/built/admin/assets/{chart-BrhA41Zi.js → chart-jVz9Nf9t.js} +9 -9
- package/core/built/admin/assets/checkbox-DKht9xMl.js +1 -0
- package/core/built/admin/assets/{chunk-KS7C4IRE-DCsL4i4D.js → chunk-KS7C4IRE-DhOcHQOU.js} +1 -1
- package/core/built/admin/assets/{chunk.254.035b85ec456ebbd7336b.js → chunk.368.22ce1b732c0b40abd3f1.js} +159 -120
- package/core/built/admin/assets/chunk.524.cc9be98e44890cedc8c8.js +25 -0
- package/core/built/admin/assets/{chunk.582.98b485f9b2802f540897.js → chunk.582.e6fe742b3217207b11a6.js} +23 -30
- package/core/built/admin/assets/{chunk.901.4ccc639821020230bcca.js → chunk.972.4b8c97f93d66db15e751.js} +10625 -10088
- package/core/built/admin/assets/clean-tracked-url-dkN05vOf.js +1 -0
- package/core/built/admin/assets/code-editor-view-BLQIV85-.js +1 -0
- package/core/built/admin/assets/code-editor-view-Cg5eJxcr.js +1 -0
- package/core/built/admin/assets/color-picker-DQoghc0t.js +3 -0
- package/core/built/admin/assets/color-picker-field-BbeK5RRs.js +1 -0
- package/core/built/admin/assets/combobox-weO4FBbv.js +1 -0
- package/core/built/admin/assets/command-DlLrCm9V.js +1 -0
- package/core/built/admin/assets/comments-BjTitLmP.js +1 -0
- package/core/built/admin/assets/components-CwL6a6As-CCRaoCeP.js +1 -0
- package/core/built/admin/assets/{config-kSHvwdTG.js → config-BPljH6wF.js} +1 -1
- package/core/built/admin/assets/confirmation-context-IyqoXVk-.js +1 -0
- package/core/built/admin/assets/container-DAimjOF_.js +1 -0
- package/core/built/admin/assets/content-api-modal-0ZjuLcQ8.js +1 -0
- package/core/built/admin/assets/context-menu-BtioYFrg.js +1 -0
- package/core/built/admin/assets/copy-field-C6ujqJlP.js +1 -0
- package/core/built/admin/assets/create-ghost-browse-value-source-DAZMWZNq.js +1 -0
- package/core/built/admin/assets/custom-integration-modal-Dm8QI_J4.js +1 -0
- package/core/built/admin/assets/data-list-C0CKkeWW.js +1 -0
- package/core/built/admin/assets/date-range-select-DrjHQdgz.js +1 -0
- package/core/built/admin/assets/design-and-theme-modal-CXVOzBWu.js +2 -0
- package/core/built/admin/assets/detail-page-QpLIL-EO.js +1 -0
- package/core/built/admin/assets/dirty-confirm-dialog-DWwxREGh.js +1 -0
- package/core/built/admin/assets/disabled-sources-indicator-CLZhMv8J.js +1 -0
- package/core/built/admin/assets/dist-BRQkNYN1.js +11 -0
- package/core/built/admin/assets/{dist-B3keLvjj.js → dist-BXHrDV19.js} +2 -2
- package/core/built/admin/assets/dist-Bf-HQtVL.js +1 -0
- package/core/built/admin/assets/dist-Bm-PB47a.js +6 -0
- package/core/built/admin/assets/{dist-B6bJuxL3.js → dist-C2lYC76d.js} +1 -1
- package/core/built/admin/assets/dist-CUwte9v_.js +1 -0
- package/core/built/admin/assets/dist-Cm2qbZKL.js +1 -0
- package/core/built/admin/assets/{dist-BtaTA7Ii.js → dist-D7yMk931.js} +1 -1
- package/core/built/admin/assets/{dist-zwwGt8Yf.js → dist-DNAdeRyr.js} +1 -1
- package/core/built/admin/assets/dist-DS6zpxid.js +1 -0
- package/core/built/admin/assets/dist-DVVKsyPh.js +23 -0
- package/core/built/admin/assets/dist-DxfQlAmn.js +1 -0
- package/core/built/admin/assets/dist-DziNzWI2.js +1 -0
- package/core/built/admin/assets/dist-FEQQAwTe.js +1 -0
- package/core/built/admin/assets/dist-nmRzULcD.js +1 -0
- package/core/built/admin/assets/domain-DBrBic6q.js +1 -0
- package/core/built/admin/assets/dropzone-D61QVcEY.js +5 -0
- package/core/built/admin/assets/edit-profile-jCqJBxqw.js +1 -0
- package/core/built/admin/assets/editor-8Fm4UBEd.js +8 -0
- package/core/built/admin/assets/editor-screen-BSX_uC2B.js +27 -0
- package/core/built/admin/assets/email-previews-Bs-JDhIw.js +1 -0
- package/core/built/admin/assets/email-sending-status-context-C76KYL1V.js +1 -0
- package/core/built/admin/assets/email-sending-status-provider-DnNhlIvt.js +1 -0
- package/core/built/admin/assets/{emails-vFMk4yYl.js → emails-CgvIIz3q.js} +1 -1
- package/core/built/admin/assets/{embed-signup-form-modal-DGqsORxS.js → embed-signup-form-modal-DqtBs1WE.js} +1 -1
- package/core/built/admin/assets/empty-indicator-L4Ql5Db7.js +1 -0
- package/core/built/admin/assets/en-Cx75dJv5.js +1 -0
- package/core/built/admin/assets/esm--rhhUGIG.js +2 -0
- package/core/built/admin/assets/explore-DXhDCtKw.js +1 -0
- package/core/built/admin/assets/feature-flag-overrides-context-CrcQKm9Z.js +1 -0
- package/core/built/admin/assets/feature-image-placeholder-e2q6TcH6.js +1 -0
- package/core/built/admin/assets/feed-mmt4noNL.js +1 -0
- package/core/built/admin/assets/feedback-BTPBQLT5.js +1 -0
- package/core/built/admin/assets/field-p7KnP98B.js +1 -0
- package/core/built/admin/assets/filter-bar-CiIKBg3D.js +1 -0
- package/core/built/admin/assets/filter-sources-I-dRaQxl.js +1 -0
- package/core/built/admin/assets/filters-1injvyxJ.js +1 -0
- package/core/built/admin/assets/filters-DnpO6GWX.js +1 -0
- package/core/built/admin/assets/first-promoter-modal-wr73Dldc.js +1 -0
- package/core/built/admin/assets/focus-koenig-editor-on-bottom-click-CkFA8EkI.js +1 -0
- package/core/built/admin/assets/framework-provider-DB-svAju.js +4 -0
- package/core/built/admin/assets/{ghost-b4e8a403baba61905cd7560e30b9732d.js → ghost-a1e6e172c6917e8ef8fa6b0007756d9b.js} +39 -30
- package/core/built/admin/assets/gift-link-modal-C3H7YFXO.js +1 -0
- package/core/built/admin/assets/{gift-links-CfLSnst2.js → gift-links-D8gl_yJS.js} +1 -1
- package/core/built/admin/assets/global-data-context-3MItMry2.js +1 -0
- package/core/built/admin/assets/grid-5vplBYri.js +1 -0
- package/core/built/admin/assets/growth-B1og1kQp.js +1 -0
- package/core/built/admin/assets/growth-Bf6OHZlK.js +3 -0
- package/core/built/admin/assets/heading-BB21QAbb.js +1 -0
- package/core/built/admin/assets/history-modal-t_qEnxPx.js +1 -0
- package/core/built/admin/assets/hooks-DYfTEQLk.js +2 -0
- package/core/built/admin/assets/html-field-COLQbV4r.js +1 -0
- package/core/built/admin/assets/iframe-buffering-Bq1el-gw.js +1 -0
- package/core/built/admin/assets/images-4mvoc3lB.js +1 -0
- package/core/built/admin/assets/{inbox-gJHG7_xd.js → inbox-DgSZ6w2p.js} +34 -34
- package/core/built/admin/assets/index-B3HZU2i8.css +2 -0
- package/core/built/admin/assets/index-DDd-zhNL.js +4 -0
- package/core/built/admin/assets/index.es-Ct5XQNSj.js +1 -0
- package/core/built/admin/assets/inline-B8H6NzIw.js +1 -0
- package/core/built/admin/assets/input-group-CLIN2ykI.js +1 -0
- package/core/built/admin/assets/{input-surface-BsrIZeSF.js → input-surface-wSO5CRy5.js} +1 -1
- package/core/built/admin/assets/integration-header-CKGrXNVP.js +1 -0
- package/core/built/admin/assets/{integrations-B4kuRBFY.js → integrations-DnJrZnHv.js} +1 -1
- package/core/built/admin/assets/invite-user-modal-BaN2mdhI.js +1 -0
- package/core/built/admin/assets/jsx-runtime-BlNNh7jY.js +1 -0
- package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +3 -3
- package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +1 -1
- package/core/built/admin/assets/{koenig-lexical-CGXb0F8o.js → koenig-lexical-CXVgQFUk.js} +1 -1
- package/core/built/admin/assets/koenig-loader-B1XPPY5C.js +2 -0
- package/core/built/admin/assets/kpi-card-CRLPVlFW.js +1 -0
- package/core/built/admin/assets/kpi-card-CRPbW8NZ.js +1 -0
- package/core/built/admin/assets/kpi-helpers-D7zT96bp.js +1 -0
- package/core/built/admin/assets/kpi-tabs-DE_yh9Go.js +1 -0
- package/core/built/admin/assets/label-CgeBxy4o.js +1 -0
- package/core/built/admin/assets/label-picker-DGDp4Vwr.js +1 -0
- package/core/built/admin/assets/labels-KMkFoRG6.js +1 -0
- package/core/built/admin/assets/layout-DWnOMly4.js +1 -0
- package/core/built/admin/assets/lib-_QYaUU89.js +2 -0
- package/core/built/admin/assets/link-helpers-8J7ixADV.js +1 -0
- package/core/built/admin/assets/links-FwNCVyVe.js +1 -0
- package/core/built/admin/assets/list-page-DLMP0PxC.js +1 -0
- package/core/built/admin/assets/luxon-BXCsmep3.js +1 -0
- package/core/built/admin/assets/member-activity-ClMWFyvN.js +1 -0
- package/core/built/admin/assets/member-activity-feed-BQY5Rwaj.js +1 -0
- package/core/built/admin/assets/member-custom-fields-Dd_ie1zG.js +1 -0
- package/core/built/admin/assets/member-detail-DjwkGVne.js +1 -0
- package/core/built/admin/assets/members--N9lhk1N.js +4 -0
- package/core/built/admin/assets/modal-page-Dz-9TP4E.js +1 -0
- package/core/built/admin/assets/moderation-DfYBKq9s.js +1 -0
- package/core/built/admin/assets/multi-select-combobox-BcBEzUW_.js +1 -0
- package/core/built/admin/assets/navigation-modal-Cd-scywg.js +1 -0
- package/core/built/admin/assets/newsletter-detail-modal-CFRY6vg_.js +1 -0
- package/core/built/admin/assets/newsletter-emails-4ntck1AC.js +1 -0
- package/core/built/admin/assets/newsletter-o6eCJtab.js +1 -0
- package/core/built/admin/assets/newsletters-Bmlv0edG.js +1 -0
- package/core/built/admin/assets/{newsletters-Rq1M3GD-.js → newsletters-Dz77m__5.js} +1 -1
- package/core/built/admin/assets/note-CWs3LF-0.js +1 -0
- package/core/built/admin/assets/notifications-BjSvTJqh.js +1 -0
- package/core/built/admin/assets/{nql-BLpCn7qX.js → nql-DnDc7UuU.js} +1 -1
- package/core/built/admin/assets/nql-lang-CeTB_Bhv.js +19 -0
- package/core/built/admin/assets/{offers--e2nGvkW.js → offers-ByWSK0rR.js} +1 -1
- package/core/built/admin/assets/offers-container-modal-Bc9A196w.js +1 -0
- package/core/built/admin/assets/onboarding-B4hfBi9a.js +1 -0
- package/core/built/admin/assets/onboarding-DV_XbHts.js +1 -0
- package/core/built/admin/assets/onboarding-route-Di1LJYEE.js +1 -0
- package/core/built/admin/assets/overview-DE7NHZQN.js +1 -0
- package/core/built/admin/assets/overview-DEF-ZY6x.js +1 -0
- package/core/built/admin/assets/page-header-B-G_g42C.js +1 -0
- package/core/built/admin/assets/pagemenu-CnkTDO71.js +1 -0
- package/core/built/admin/assets/{pages-CjDY2CBI.js → pages-DZ_YGB1D.js} +1 -1
- package/core/built/admin/assets/pages-route-VT7r7YhG.js +1 -0
- package/core/built/admin/assets/papaparse.min-BlhnCUXn.js +10 -0
- package/core/built/admin/assets/pintura-modal-BljM7hf8.js +1 -0
- package/core/built/admin/assets/portal-frame-D9V8iq5x.js +1 -0
- package/core/built/admin/assets/portal-modal-B5OOR9ZD.js +1 -0
- package/core/built/admin/assets/post-analytics-context-bt2YTBAC.js +1 -0
- package/core/built/admin/assets/post-analytics-header-J0WciLx6.js +1 -0
- package/core/built/admin/assets/post-analytics-provider-CgreZDjS.js +1 -0
- package/core/built/admin/assets/post-analytics-rGb-PgD-.js +1 -0
- package/core/built/admin/assets/post-share-modal-D0BbTo4W.js +1 -0
- package/core/built/admin/assets/posts-list-screen-CO5jAWoU.js +2 -0
- package/core/built/admin/assets/posts-route-DV-CXWK9.js +1 -0
- package/core/built/admin/assets/{posts-pCPrhQeR.js → posts-tcoO3iRG.js} +1 -1
- package/core/built/admin/assets/preferences-Tac29oG6.js +5 -0
- package/core/built/admin/assets/preview-chrome-C2lQgZBZ.js +1 -0
- package/core/built/admin/assets/preview-modal-CjRbBr8U.js +1 -0
- package/core/built/admin/assets/profile-yiM1f_Og.js +1 -0
- package/core/built/admin/assets/prop-types-6lTeqvom.js +1 -0
- package/core/built/admin/assets/radio-group-CKROWsw4.js +1 -0
- package/core/built/admin/assets/react-BXwhMTuc.js +1 -0
- package/core/built/admin/assets/{jsx-runtime-DX3WBWVO.js → react-dom-CMOtJ5MH.js} +2 -2
- package/core/built/admin/assets/{referrers-D8oHPmDB.js → referrers-1R8bPpoV.js} +1 -1
- package/core/built/admin/assets/router-provider-CU87qxXw.js +1 -0
- package/core/built/admin/assets/select-CKaC4ggu.js +1 -0
- package/core/built/admin/assets/settings-81kxUa28.js +1 -0
- package/core/built/admin/assets/settings-BVXFqBVK.js +4 -0
- package/core/built/admin/assets/settings-breadcrumbs-czGRx-iu.js +1 -0
- package/core/built/admin/assets/{shade-app-CcS3f8MZ-vwURazk8.js → shade-app-CcS3f8MZ-D5BnfHck.js} +1 -1
- package/core/built/admin/assets/share-modal-BL-16PiB.js +1 -0
- package/core/built/admin/assets/skeleton-DwCva0-b.js +1 -0
- package/core/built/admin/assets/slack-modal-D7W_fNON.js +1 -0
- package/core/built/admin/assets/sort-button-Dquc83jY.js +1 -0
- package/core/built/admin/assets/source-icon-CQboPZQ3.js +1 -0
- package/core/built/admin/assets/stack-BURz77VS.js +1 -0
- package/core/built/admin/assets/{stats-D9PDLS3x.js → stats-Cvp8Ep5m.js} +1 -1
- package/core/built/admin/assets/stats-view-NDja_g96.js +1 -0
- package/core/built/admin/assets/step-1-BKhjy0PV.js +1 -0
- package/core/built/admin/assets/step-2-PxA1OM7R.js +1 -0
- package/core/built/admin/assets/step-3-BJbAiq16.js +2 -0
- package/core/built/admin/assets/stripe-button-C3cfCAou.js +1 -0
- package/core/built/admin/assets/stripe-connect-modal-FyE3Ey2c.js +1 -0
- package/core/built/admin/assets/switch-zfUUy9Jh.js +1 -0
- package/core/built/admin/assets/table-dE4GTIRT.js +1 -0
- package/core/built/admin/assets/tabs-B3XK93sR.js +1 -0
- package/core/built/admin/assets/tag-detail-D4P-tZdM.js +2 -0
- package/core/built/admin/assets/tag-picker-BNSZ6Qxw.js +1 -0
- package/core/built/admin/assets/tags-BsZcaJ6h.js +1 -0
- package/core/built/admin/assets/{tags-ChfdwJyS.js → tags-NwZ7BPK6.js} +1 -1
- package/core/built/admin/assets/testimonials-modal-Dkt6ODLW.js +1 -0
- package/core/built/admin/assets/text-DC-ot6u2.js +1 -0
- package/core/built/admin/assets/textarea-B4FffFmE.js +1 -0
- package/core/built/admin/assets/themes-DtcEFQWm.js +1 -0
- package/core/built/admin/assets/tier-detail-modal-a77Z2VMH.js +1 -0
- package/core/built/admin/assets/{tiers-BCpIOGQr.js → tiers-6mPzCXlM.js} +1 -1
- package/core/built/admin/assets/toggle-group-D2p4okmJ.js +1 -0
- package/core/built/admin/assets/topic-filter-DVOe3D-b.js +1 -0
- package/core/built/admin/assets/transistor-modal-C8RMkhOD.js +1 -0
- package/core/built/admin/assets/trend-badge-B9v7kMF8.js +1 -0
- package/core/built/admin/assets/unsplash-modal-DXt7Brum.js +1 -0
- package/core/built/admin/assets/use-analytics-data-ChHqiZXv.js +1 -0
- package/core/built/admin/assets/use-availability-hPdeG76y.js +1 -0
- package/core/built/admin/assets/{use-check-theme-limit-error-DRUjK4YM.js → use-check-theme-limit-error-JD-J5aaZ.js} +2 -2
- package/core/built/admin/assets/use-email-sending-status-DNMtL5B9.js +1 -0
- package/core/built/admin/assets/use-filter-params-BSFigDIn.js +1 -0
- package/core/built/admin/assets/use-filterable-api-CEMSAYPg.js +1 -0
- package/core/built/admin/assets/use-form-DJKZJhQh.js +1 -0
- package/core/built/admin/assets/use-growth-stats-CqqdnESN.js +1 -0
- package/core/built/admin/assets/use-host-limits-mpTkZIq8.js +1 -0
- package/core/built/admin/assets/use-limiter-DBGjYqu7.js +19 -0
- package/core/built/admin/assets/use-navigate-with-base-path-88EQpw2k.js +1 -0
- package/core/built/admin/assets/use-pintura-config-BmU45Ruy.js +1 -0
- package/core/built/admin/assets/use-pintura-editor-Bz2bZ4iT.js +1 -0
- package/core/built/admin/assets/use-post-referrers-DyPjyBSN.js +1 -0
- package/core/built/admin/assets/use-query-params-DlOHCo-R.js +1 -0
- package/core/built/admin/assets/use-reply-chain-data-DmD2yX5D.js +1 -0
- package/core/built/admin/assets/use-router-history-entry-CKx9LhqD.js +1 -0
- package/core/built/admin/assets/use-sending-eta-CQeG6OP_.js +1 -0
- package/core/built/admin/assets/use-setting-group-Dza6bQ7W.js +1 -0
- package/core/built/admin/assets/use-settings-navigation-BIjI5mL3.js +1 -0
- package/core/built/admin/assets/use-simple-pagination-DwVxe-Lo.js +1 -0
- package/core/built/admin/assets/use-staff-users-i_Mq9OGR.js +1 -0
- package/core/built/admin/assets/{use-tinybird-query-CmdbCS9X.js → use-tinybird-query-DXoF74NM.js} +1 -1
- package/core/built/admin/assets/use-tinybird-token-Lk1RSn0t.js +1 -0
- package/core/built/admin/assets/use-unsaved-changes-guard-CKVPWz_F.js +1 -0
- package/core/built/admin/assets/use-upgrade-route-CVjDlNSs.js +1 -0
- package/core/built/admin/assets/{use-url-input-fvp-TpPx.js → use-url-input-DpmbDppC.js} +1 -1
- package/core/built/admin/assets/user-detail-modal-BU4QCHE7.js +1 -0
- package/core/built/admin/assets/{users-DVNWrqg9.js → users-C60_hpn6.js} +1 -1
- package/core/built/admin/assets/{validator-Cr0sMKuW.js → validator-DlFQP70j.js} +1 -1
- package/core/built/admin/assets/virtual-list-DScLNuU8.js +1 -0
- package/core/built/admin/assets/web-BZS-t4H0.js +1 -0
- package/core/built/admin/assets/web-DxAUxnK3.js +2 -0
- package/core/built/admin/assets/zapier-modal-BafLUO4R.js +1 -0
- package/core/built/admin/index.html +35 -32
- package/core/cli/command.js +17 -2
- package/core/frontend/meta/asset-url.js +1 -16
- package/core/frontend/services/asset-hash/index.js +32 -2
- package/core/frontend/services/routing/controllers/unsubscribe.js +2 -1
- package/core/frontend/services/rss/generate-feed.js +1 -1
- package/core/frontend/services/theme-engine/active.js +2 -4
- package/core/frontend/services/theme-engine/i18n/i18n.js +11 -1
- package/core/frontend/services/theme-engine/i18next/theme-i18n.js +1 -1
- package/core/frontend/web/middleware/llms-discovery.js +34 -43
- package/core/server/adapters/route-settings/S3RouteSettingsStore.js +1 -1
- package/core/server/adapters/storage/LocalFilesStorage.js +12 -2
- package/core/server/adapters/storage/LocalStorageBase.js +13 -0
- package/core/server/api/endpoints/actions.js +2 -1
- package/core/server/api/endpoints/automated-emails.js +3 -2
- package/core/server/api/endpoints/automations.js +77 -49
- package/core/server/api/endpoints/emails.js +8 -3
- package/core/server/api/endpoints/index.js +1 -1
- package/core/server/api/endpoints/invites.js +2 -1
- package/core/server/api/endpoints/labels.js +6 -2
- package/core/server/api/endpoints/member-metafields.js +2 -2
- package/core/server/api/endpoints/members.js +22 -6
- package/core/server/api/endpoints/pages.js +2 -6
- package/core/server/api/endpoints/posts.js +3 -11
- package/core/server/api/endpoints/snippets.js +2 -1
- package/core/server/api/endpoints/tags.js +6 -2
- package/core/server/api/endpoints/users.js +2 -6
- package/core/server/api/endpoints/utils/api-filter-utils.js +62 -3
- package/core/server/api/endpoints/utils/serializers/output/utils/clean.js +2 -0
- package/core/server/api/endpoints/utils/serializers/output/utils/extra-attrs.js +3 -0
- package/core/server/api/endpoints/utils/validators/input/settings.js +15 -1
- package/core/server/data/exporter/exporter.js +2 -1
- package/core/server/data/exporter/table-lists.js +3 -5
- package/core/server/data/importer/importers/data/settings-importer.js +8 -2
- package/core/server/data/migrations/versions/6.64/2026-09-03-15-40-25-add-member-access-to-members-metafields.js +12 -0
- package/core/server/data/migrations/versions/6.64/2026-09-08-11-01-12-add-posts-auto-excerpt-and-reading-time-columns.js +17 -0
- package/core/server/data/migrations/versions/6.64/2026-09-09-13-56-18-add-automation-run-updated-at-indexes.js +6 -0
- package/core/server/data/migrations/versions/6.64/2026-09-09-13-56-18-add-tinybird-syncs-table.js +10 -0
- package/core/server/data/schema/schema.js +28 -2
- package/core/server/data/seeders/importers/automations-importer.js +0 -1
- package/core/server/data/seeders/importers/comments-importer.js +1 -1
- package/core/server/data/seeders/importers/email-recipients-importer.js +1 -1
- package/core/server/data/seeders/importers/emails-importer.js +1 -1
- package/core/server/data/seeders/importers/members-importer.js +1 -1
- package/core/server/data/seeders/importers/members-login-events-importer.js +1 -1
- package/core/server/data/seeders/importers/members-stripe-customers-subscriptions-importer.js +1 -1
- package/core/server/data/seeders/utils/blog-info.js +4 -3
- package/core/server/data/seeders/utils/event-generator.js +72 -46
- package/core/server/data/tinybird/datasources/_mv_automation_run_steps.datasource +10 -0
- package/core/server/data/tinybird/datasources/_mv_automation_runs.datasource +10 -0
- package/core/server/data/tinybird/datasources/_mv_pending_automation_runs.datasource +10 -0
- package/core/server/data/tinybird/datasources/automation_run_events.datasource +12 -0
- package/core/server/data/tinybird/datasources/automation_run_step_events.datasource +12 -0
- package/core/server/data/tinybird/endpoints/api_automation_browse_stats.pipe +43 -0
- package/core/server/data/tinybird/fixtures/automation_run_events.ndjson +7 -0
- package/core/server/data/tinybird/fixtures/automation_run_step_events.ndjson +8 -0
- package/core/server/data/tinybird/pipes/mv_automation_run_steps.pipe +13 -0
- package/core/server/data/tinybird/pipes/mv_automation_runs.pipe +15 -0
- package/core/server/data/tinybird/pipes/mv_pending_automation_runs.pipe +7 -0
- package/core/server/data/tinybird/tests/api_automation_browse_stats.yaml +18 -0
- package/core/server/ghost-server.js +3 -3
- package/core/server/lib/generate-password.js +54 -0
- package/core/server/lib/public-jwk.js +77 -0
- package/core/server/models/user.js +11 -9
- package/core/server/services/adapter-manager/base-classes.js +21 -3
- package/core/server/services/automations/automations-api.js +46 -1
- package/core/server/services/automations/tinybird-automation-stats.js +56 -0
- package/core/server/services/content-import/import/media.js +1 -1
- package/core/server/services/email-analytics/email-analytics-service-wrapper.js +15 -29
- package/core/server/services/email-analytics/email-analytics-service.js +19 -3
- package/core/server/services/email-analytics/index.js +9 -4
- package/core/server/services/email-rendering/finalize.js +7 -2
- package/core/server/services/email-service/README.md +3 -0
- package/core/server/services/email-service/email-renderer.js +7 -2
- package/core/server/services/email-service/email-service-wrapper.js +1 -1
- package/core/server/services/email-service/email-service.js +43 -34
- package/core/server/services/email-service/sending-status.js +10 -4
- package/core/server/services/gifts/gift-email-service.js +10 -3
- package/core/server/services/gifts/index.js +1 -0
- package/core/server/services/i18n.js +1 -1
- package/core/server/services/identity-tokens/identity-token-service-wrapper.js +3 -4
- package/core/server/services/limits.js +17 -1
- package/core/server/services/member-welcome-emails/service.js +1 -1
- package/core/server/services/members/import-export/index.js +5 -4
- package/core/server/services/members/members-api/controllers/router-controller.js +7 -2
- package/core/server/services/members/members-api/controllers/well-known-controller.js +2 -1
- package/core/server/services/members/members-api/repositories/event-repository.js +4 -0
- package/core/server/services/members/members-api/services/member-bread-service.js +15 -12
- package/core/server/services/members/members-api/services/token-service.js +11 -12
- package/core/server/services/members/middleware.js +9 -2
- package/core/server/services/members/request-integrity-token-provider.js +2 -1
- package/core/server/services/members-metafields/access.js +31 -20
- package/core/server/services/members-metafields/actions.js +1 -0
- package/core/server/services/members-metafields/codec.js +9 -2
- package/core/server/services/members-metafields/definitions-service.js +56 -46
- package/core/server/services/members-metafields/index.js +2 -2
- package/core/server/services/members-metafields/models.js +2 -0
- package/core/server/services/members-metafields/queries.js +39 -11
- package/core/server/services/members-metafields/schema.js +2 -0
- package/core/server/services/members-metafields/serializers.js +1 -0
- package/core/server/services/members-metafields/values-service.js +20 -11
- package/core/server/services/mentions/mention-discovery-service.js +1 -1
- package/core/server/services/mentions/mention-sending-service.js +1 -1
- package/core/server/services/mentions/mention.js +1 -1
- package/core/server/services/oembed/oembed-service.js +36 -11
- package/core/server/services/posts/post-scheduling.js +20 -0
- package/core/server/services/staff/staff-service-emails.js +5 -1
- package/core/server/services/stats/stats-service.js +12 -3
- package/core/server/services/tier-checkout-config/service.js +17 -1
- package/core/server/services/tinybird/tinybird-service.js +1 -0
- package/core/server/services/tinybird-sync/get-ingest-config.js +39 -0
- package/core/server/services/tinybird-sync/index.js +28 -0
- package/core/server/services/tinybird-sync/sync-table-to-tinybird.js +149 -0
- package/core/server/services/tinybird-sync/tinybird-sync-service.js +62 -0
- package/core/server/web/api/endpoints/admin/routes.js +33 -34
- package/core/server/web/well-known.js +12 -16
- package/core/shared/config/defaults.json +1 -2
- package/core/shared/{flush-logs.js → flush.js} +7 -3
- package/core/shared/labs.js +2 -0
- package/core/shared/timing-safe-string-equal.js +26 -0
- package/package.json +42 -42
- package/patches/@elastic__elasticsearch@8.19.2.patch +67 -0
- package/patches/juice@11.1.1.patch +46 -0
- package/pnpm-lock.yaml +457 -1391
- package/pnpm-workspace.yaml +34 -21
- package/scripts/prune.mts +70 -3
- package/components/tryghost-kg-lexical-html-renderer-1.5.0.tgz +0 -0
- package/core/built/admin/assets/Combination-B0l4MKVh.js +0 -41
- package/core/built/admin/assets/RadialBarChart-JAKoS4KT.js +0 -1
- package/core/built/admin/assets/_baseAssignValue-C_vooEQc.js +0 -1
- package/core/built/admin/assets/about-C1C3s5-g.js +0 -1
- package/core/built/admin/assets/accordion-CxGsDKwa.js +0 -1
- package/core/built/admin/assets/account-migration-CbUhW6gk.js +0 -1
- package/core/built/admin/assets/action-list-C4v0-du8.js +0 -1
- package/core/built/admin/assets/add-integration-modal-BT_onDJy.js +0 -1
- package/core/built/admin/assets/add-newsletter-modal-Cx1kQpiY.js +0 -1
- package/core/built/admin/assets/add-recommendation-modal-B5nvAhvr.js +0 -1
- package/core/built/admin/assets/analytics-DjoJWPI7.js +0 -1
- package/core/built/admin/assets/announcement-bar-modal-Dwd0EGFP.js +0 -1
- package/core/built/admin/assets/api-keys-BoeacM-s.js +0 -1
- package/core/built/admin/assets/automated-emails-BLesE41L.js +0 -1
- package/core/built/admin/assets/automations-BN4u3GR8.js +0 -1
- package/core/built/admin/assets/automations-C-ZTUwW3.js +0 -1
- package/core/built/admin/assets/avatar-flipboard-C6Kj3Awu.js +0 -1
- package/core/built/admin/assets/bluesky-sharing-vzh-oPXL.js +0 -1
- package/core/built/admin/assets/box-CdfQAP_F.js +0 -1
- package/core/built/admin/assets/brand-icon-CrIGOA3Z.js +0 -1
- package/core/built/admin/assets/breadcrumb-CaLk2b7D.js +0 -1
- package/core/built/admin/assets/build-CsiH26uS.js +0 -1
- package/core/built/admin/assets/button-Dvcv1QSR.js +0 -1
- package/core/built/admin/assets/calendar-Bl9RLcZX.js +0 -1
- package/core/built/admin/assets/card--VNbfgo3.js +0 -1
- package/core/built/admin/assets/chart-helpers-FHywU0pj.js +0 -1
- package/core/built/admin/assets/checkbox-BtayFtjg.js +0 -1
- package/core/built/admin/assets/chunk.524.e6975095fccdf22d90f8.js +0 -32
- package/core/built/admin/assets/code-editor-view-C3ZfoF1X.js +0 -1
- package/core/built/admin/assets/code-editor-view-CAyRWy1s.js +0 -1
- package/core/built/admin/assets/color-picker-G4kGR7rp.js +0 -3
- package/core/built/admin/assets/color-picker-field-DQFVTNnT.js +0 -1
- package/core/built/admin/assets/combobox-BnYzgEB4.js +0 -1
- package/core/built/admin/assets/command-C_vyTikI.js +0 -1
- package/core/built/admin/assets/comments-aBrxfnZf.js +0 -1
- package/core/built/admin/assets/components-CwL6a6As-B0E0-NBJ.js +0 -1
- package/core/built/admin/assets/confirmation-context-DwXX_Y5h.js +0 -1
- package/core/built/admin/assets/container-BuQG1wuP.js +0 -1
- package/core/built/admin/assets/content-api-modal-D2G0nJP6.js +0 -1
- package/core/built/admin/assets/context-menu-DOVB6yaz.js +0 -1
- package/core/built/admin/assets/copy-field-DCJwh9qf.js +0 -1
- package/core/built/admin/assets/create-ghost-browse-value-source-5C53jJaX.js +0 -1
- package/core/built/admin/assets/custom-field-type-option-BAuW0F-E.js +0 -1
- package/core/built/admin/assets/custom-integration-modal-AbJGVyKc.js +0 -1
- package/core/built/admin/assets/data-list-CA2jYGPq.js +0 -1
- package/core/built/admin/assets/date-range-select-BY3K-ukj.js +0 -1
- package/core/built/admin/assets/design-and-theme-modal-BvEy4_pC.js +0 -2
- package/core/built/admin/assets/detail-page-Dnv-CdR1.js +0 -1
- package/core/built/admin/assets/dirty-confirm-dialog-DVPuGz3U.js +0 -1
- package/core/built/admin/assets/disabled-sources-indicator-Cy7Zp4c8.js +0 -1
- package/core/built/admin/assets/dist-4m6pHdc0.js +0 -23
- package/core/built/admin/assets/dist-8YJUlf3B.js +0 -1
- package/core/built/admin/assets/dist-CZgIBXQN.js +0 -1
- package/core/built/admin/assets/dist-CiHx7vA5.js +0 -6
- package/core/built/admin/assets/dist-DIC8yz5C.js +0 -1
- package/core/built/admin/assets/dist-Dcsslyo72.js +0 -1
- package/core/built/admin/assets/dist-Dgt2cr6a.js +0 -1
- package/core/built/admin/assets/dist-ECAUrdGc.js +0 -1
- package/core/built/admin/assets/dist-JLOy8o0Q.js +0 -1
- package/core/built/admin/assets/dist-Ndy-PuGN.js +0 -1
- package/core/built/admin/assets/dist-Z97pCNqS.js +0 -11
- package/core/built/admin/assets/domain-Dl61QGuk.js +0 -1
- package/core/built/admin/assets/dropzone-Dtz5Rmjt.js +0 -5
- package/core/built/admin/assets/edit-profile-DNJSMDwm.js +0 -1
- package/core/built/admin/assets/editor-DbAen9zf.js +0 -8
- package/core/built/admin/assets/editor-screen-BFWThIai.js +0 -26
- package/core/built/admin/assets/email-sending-status-context-CWDOD1FN.js +0 -1
- package/core/built/admin/assets/email-sending-status-provider-DCPkDICt.js +0 -1
- package/core/built/admin/assets/empty-indicator-D9QdpuNX.js +0 -1
- package/core/built/admin/assets/en-B1jX3WMs.js +0 -1
- package/core/built/admin/assets/esm-CXo5SEPy.js +0 -2
- package/core/built/admin/assets/explore-nnRr1Fja.js +0 -1
- package/core/built/admin/assets/feature-flag-overrides-context-DQjdJFAk.js +0 -1
- package/core/built/admin/assets/feature-image-placeholder-BrIHmPs8.js +0 -1
- package/core/built/admin/assets/feed-BNUcNu-W.js +0 -1
- package/core/built/admin/assets/feedback-DJ4Zb9rZ.js +0 -1
- package/core/built/admin/assets/field-C93_Mg6j.js +0 -1
- package/core/built/admin/assets/filter-bar-Da1qxybu.js +0 -1
- package/core/built/admin/assets/filter-sources-CGJb4C5r.js +0 -1
- package/core/built/admin/assets/filters--kKP-EC8.js +0 -1
- package/core/built/admin/assets/filters-DxA_a4FP.js +0 -1
- package/core/built/admin/assets/first-promoter-modal-BYDtrz2S.js +0 -1
- package/core/built/admin/assets/focus-koenig-editor-on-bottom-click-BbSnGOtK.js +0 -1
- package/core/built/admin/assets/framework-provider-DqI25epG.js +0 -4
- package/core/built/admin/assets/gift-link-modal-B7u5bD4e.js +0 -1
- package/core/built/admin/assets/global-data-context-gAMDH9u1.js +0 -1
- package/core/built/admin/assets/grid-Dj29PY05.js +0 -1
- package/core/built/admin/assets/growth-Cd1uO9d2.js +0 -1
- package/core/built/admin/assets/growth-aG32xfdE.js +0 -3
- package/core/built/admin/assets/heading-Dh5SFVjL.js +0 -1
- package/core/built/admin/assets/history-modal-Df8lW8h-.js +0 -1
- package/core/built/admin/assets/hooks-Cy_-oZ4o.js +0 -2
- package/core/built/admin/assets/html-field-DA4eU7eq.js +0 -1
- package/core/built/admin/assets/iframe-buffering-B2OKJzbz.js +0 -1
- package/core/built/admin/assets/images-KXmyO3Ss.js +0 -1
- package/core/built/admin/assets/index-BHHXtR5C.css +0 -2
- package/core/built/admin/assets/index-CgMCwsxN.js +0 -4
- package/core/built/admin/assets/index.es-CY6-yuw9.js +0 -1
- package/core/built/admin/assets/inline-BWSs_VzR.js +0 -1
- package/core/built/admin/assets/input-group-BE8rM2y1.js +0 -1
- package/core/built/admin/assets/integration-header-Bm6IDb1A.js +0 -1
- package/core/built/admin/assets/invite-user-modal-B4CuNcx4.js +0 -1
- package/core/built/admin/assets/koenig-loader-BeM5rFPX.js +0 -2
- package/core/built/admin/assets/kpi-card-B21aToe8.js +0 -1
- package/core/built/admin/assets/kpi-card-pz6Wv4Ae.js +0 -1
- package/core/built/admin/assets/kpi-helpers-Dq5jelmP.js +0 -1
- package/core/built/admin/assets/kpi-tabs-DEZHpKUt.js +0 -1
- package/core/built/admin/assets/label-OLCzze8N.js +0 -1
- package/core/built/admin/assets/label-picker-BigOvMPV.js +0 -1
- package/core/built/admin/assets/labels-Dr0SgUQD.js +0 -1
- package/core/built/admin/assets/layout-DUTL8SH5.js +0 -1
- package/core/built/admin/assets/lib-7QPTI0FS.js +0 -1
- package/core/built/admin/assets/limit-service-BhiEvqcP.js +0 -20
- package/core/built/admin/assets/link-helpers-BRAg9SCj.js +0 -1
- package/core/built/admin/assets/links-BDHPTlyj.js +0 -1
- package/core/built/admin/assets/list-page-BucXJ0hi.js +0 -1
- package/core/built/admin/assets/luxon-D1RVjjpq.js +0 -1
- package/core/built/admin/assets/member-custom-fields-TRTHCAz9.js +0 -1
- package/core/built/admin/assets/member-detail-b6dRwc3C.js +0 -1
- package/core/built/admin/assets/members-Czt5lJSc.js +0 -4
- package/core/built/admin/assets/modal-page-xCivTMvI.js +0 -1
- package/core/built/admin/assets/moderation-ZWefD9uH.js +0 -1
- package/core/built/admin/assets/multi-select-combobox-CT13MTo-.js +0 -1
- package/core/built/admin/assets/navigation-modal-C8FEhBK5.js +0 -1
- package/core/built/admin/assets/newsletter-5VYW4RyJ.js +0 -1
- package/core/built/admin/assets/newsletter-detail-modal-ChjC0ZqH.js +0 -1
- package/core/built/admin/assets/newsletter-emails-DZH6I-PY.js +0 -1
- package/core/built/admin/assets/newsletters-DOC9KBcX.js +0 -1
- package/core/built/admin/assets/note-DIV-Pojr.js +0 -1
- package/core/built/admin/assets/notifications-s20-H49V.js +0 -1
- package/core/built/admin/assets/nql-lang-CaWrLesS.js +0 -19
- package/core/built/admin/assets/offers-container-modal-BmG5M5Tv.js +0 -1
- package/core/built/admin/assets/onboarding-CUuy9unR.js +0 -1
- package/core/built/admin/assets/onboarding-pXyct0Jm.js +0 -1
- package/core/built/admin/assets/onboarding-route-CK4pcXoR.js +0 -1
- package/core/built/admin/assets/overview-CaPsciMs.js +0 -1
- package/core/built/admin/assets/overview-a8GfcsKX.js +0 -1
- package/core/built/admin/assets/page-header-DM_KyoFI.js +0 -1
- package/core/built/admin/assets/pagemenu-vgZVUVKR.js +0 -1
- package/core/built/admin/assets/pages-route-BzKZYdV5.js +0 -1
- package/core/built/admin/assets/papaparse.min-cQwnxGCG.js +0 -10
- package/core/built/admin/assets/pintura-modal-DExCF1ii.js +0 -1
- package/core/built/admin/assets/portal-frame-Cqanidq4.js +0 -1
- package/core/built/admin/assets/portal-modal-oinBgA27.js +0 -1
- package/core/built/admin/assets/post-analytics-C5oJ1dWV.js +0 -1
- package/core/built/admin/assets/post-analytics-context-D0Mw-Pmv.js +0 -1
- package/core/built/admin/assets/post-analytics-header-OATo3X_r.js +0 -1
- package/core/built/admin/assets/post-analytics-provider-tOpIVGT5.js +0 -1
- package/core/built/admin/assets/post-share-modal-DvhC1XgV.js +0 -1
- package/core/built/admin/assets/posts-list-screen-o4ZjbgS3.js +0 -2
- package/core/built/admin/assets/posts-route-9F--xdIb.js +0 -1
- package/core/built/admin/assets/preferences--vNubsqD.js +0 -5
- package/core/built/admin/assets/preview-chrome-BljUBlOk.js +0 -1
- package/core/built/admin/assets/preview-modal-YYbzlYdO.js +0 -1
- package/core/built/admin/assets/profile-BllKV3dR.js +0 -1
- package/core/built/admin/assets/prop-types-DeUPn3oD.js +0 -1
- package/core/built/admin/assets/radio-group-DL8GI8rt.js +0 -1
- package/core/built/admin/assets/react-Bb3IsNbi.js +0 -1
- package/core/built/admin/assets/rolldown-runtime-DAXXjFlN.js +0 -1
- package/core/built/admin/assets/router-provider-BSvTXgZY.js +0 -1
- package/core/built/admin/assets/select-v5YbA3Mw.js +0 -1
- package/core/built/admin/assets/settings-PEsZupw1.js +0 -4
- package/core/built/admin/assets/settings-breadcrumbs-NwPnCTC7.js +0 -1
- package/core/built/admin/assets/settings-u_s1CRkr.js +0 -1
- package/core/built/admin/assets/share-modal-SskCmVGL.js +0 -1
- package/core/built/admin/assets/skeleton-Ce9GgUpf.js +0 -1
- package/core/built/admin/assets/slack-modal-XxSJiYgo.js +0 -1
- package/core/built/admin/assets/sort-button-Cx1KtINE.js +0 -1
- package/core/built/admin/assets/source-icon-Bdp9Im_5.js +0 -1
- package/core/built/admin/assets/stack-B2eszIiq.js +0 -1
- package/core/built/admin/assets/stats-view-W2g6Jsd-.js +0 -1
- package/core/built/admin/assets/step-1-BQYzvBzr.js +0 -1
- package/core/built/admin/assets/step-2-xES32xJV.js +0 -1
- package/core/built/admin/assets/step-3-DA_XK5kW.js +0 -2
- package/core/built/admin/assets/stripe-button-CVsLHelt.js +0 -1
- package/core/built/admin/assets/stripe-connect-modal-ClmLOMGS.js +0 -1
- package/core/built/admin/assets/switch-CI4gLWqb.js +0 -1
- package/core/built/admin/assets/table-BenqVupI.js +0 -1
- package/core/built/admin/assets/tabs-eBBlxPp8.js +0 -1
- package/core/built/admin/assets/tag-detail-Ce8Se2qd.js +0 -2
- package/core/built/admin/assets/tag-picker-C3UR-uJ-.js +0 -1
- package/core/built/admin/assets/tags-B-kJxCs7.js +0 -1
- package/core/built/admin/assets/testimonials-modal-9Q6fT06V.js +0 -1
- package/core/built/admin/assets/text-BQDSDsKs.js +0 -1
- package/core/built/admin/assets/textarea-DJ1Q5V39.js +0 -1
- package/core/built/admin/assets/tier-detail-modal-CDyYdqK7.js +0 -1
- package/core/built/admin/assets/toggle-group-CviIkyok.js +0 -1
- package/core/built/admin/assets/topic-filter-I2jCBGxm.js +0 -1
- package/core/built/admin/assets/transistor-modal-p53u3W8y.js +0 -1
- package/core/built/admin/assets/trend-badge-CideVzQd.js +0 -1
- package/core/built/admin/assets/unsplash-modal-DY8UcKcE.js +0 -1
- package/core/built/admin/assets/use-analytics-data-DAIGcr2f.js +0 -1
- package/core/built/admin/assets/use-filter-params-JkZhIS8L.js +0 -1
- package/core/built/admin/assets/use-filterable-api-BVEVMrhZ.js +0 -1
- package/core/built/admin/assets/use-form-vRjI0Kwk.js +0 -1
- package/core/built/admin/assets/use-growth-stats-937CUj6j.js +0 -1
- package/core/built/admin/assets/use-host-limits-D0Dv3tKA.js +0 -1
- package/core/built/admin/assets/use-limiter-CohWfzvK.js +0 -2
- package/core/built/admin/assets/use-navigate-with-base-path-BkxcPj5l.js +0 -1
- package/core/built/admin/assets/use-pintura-config-xgytjU35.js +0 -1
- package/core/built/admin/assets/use-pintura-editor-CaV1mbfO.js +0 -1
- package/core/built/admin/assets/use-post-referrers-BCQI7fDg.js +0 -1
- package/core/built/admin/assets/use-query-params-BfzuqbcD.js +0 -1
- package/core/built/admin/assets/use-reply-chain-data-CYRhoaxY.js +0 -1
- package/core/built/admin/assets/use-router-history-entry-NOKcd--l.js +0 -1
- package/core/built/admin/assets/use-setting-group-bLKMwoBT.js +0 -1
- package/core/built/admin/assets/use-settings-navigation-B-qrriKD.js +0 -1
- package/core/built/admin/assets/use-simple-pagination-CNPd6Rf6.js +0 -1
- package/core/built/admin/assets/use-staff-users-pRIMIyiW.js +0 -1
- package/core/built/admin/assets/use-tinybird-token-KLne235s.js +0 -1
- package/core/built/admin/assets/use-unsaved-changes-guard-7-ug0JdH.js +0 -1
- package/core/built/admin/assets/use-upgrade-route-Dm_qqKr0.js +0 -1
- package/core/built/admin/assets/user-detail-modal-D3KlGYv-.js +0 -1
- package/core/built/admin/assets/virtual-list-CZ3RK2Yf.js +0 -1
- package/core/built/admin/assets/web-ClEJsCAj.js +0 -2
- package/core/built/admin/assets/web-X9rdnrtq.js +0 -1
- package/core/built/admin/assets/zapier-modal-DfVhV17j.js +0 -1
- /package/core/built/admin/assets/{chunk.901.4ccc639821020230bcca.js.LICENSE.txt → chunk.972.4b8c97f93d66db15e751.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{s as e,t}from"./react-BXwhMTuc.js";import{t as n}from"./jsx-runtime-BlNNh7jY.js";import{i as r}from"./pagemenu-CnkTDO71.js";import{i}from"./currency-Dy4Tc2R2.js";import{r as a,t as o}from"./source-icon-CQboPZQ3.js";import{_ as s}from"./chunk-KS7C4IRE-DhOcHQOU.js";import{a as c}from"./router-provider-CU87qxXw.js";import{C as l,S as u,d,m as f,u as p,w as m}from"./dist-BXHrDV19.js";import{L as h,On as g,cr as _,lr as v,or as y,t as b}from"./button-DvIh2Bq-.js";import{E as x}from"./_baseAssignValue-DcPokYW8.js";import{$ as S,C,E as w,I as T,J as ee,K as te,P as E,Q as D,S as O,Y as ne,Z as re,_ as ie,a as ae,at as oe,b as se,ct as ce,dt as le,et as ue,g as de,i as fe,it as pe,n as me,nt as he,ot as k,r as ge,st as _e,ut as ve,w as ye,x as be,y as xe}from"./chart-jVz9Nf9t.js";import{n as Se,t as Ce}from"./PolarAngleAxis-a81ieQUO.js";import{a as we,i as Te,o as Ee,r as De}from"./trend-badge-B9v7kMF8.js";import{n as Oe,t as A}from"./sort-button-Dquc83jY.js";import{i as j,r as ke,t as Ae}from"./tabs-B3XK93sR.js";import{i as je,n as Me,o as Ne,s as Pe,t as Fe}from"./select-CKaC4ggu.js";import{t as Ie}from"./skeleton-DwCva0-b.js";import{a as Le,n as Re,o as ze,r as Be,t as M}from"./card-FHQ4D10L.js";import{t as Ve}from"./empty-indicator-L4Ql5Db7.js";import{a as N,c as P,i as He,n as F,r as I,s as Ue,t as We}from"./table-dE4GTIRT.js";import{An as Ge,Ar as Ke,Mn as qe,Nn as Je,Pn as Ye,Sr as Xe,Un as Ze,V as Qe,X as $e,Yn as et,bi as L,br as tt,jn as nt,kn as rt,q as R,vi as it,wr as at}from"./index-DDd-zhNL.js";import{i as ot,n as st,r as ct,t as lt}from"./stats-view-NDja_g96.js";import{t as ut}from"./disabled-sources-indicator-CLZhMv8J.js";import{h as dt,i as ft,p as pt}from"./stats-Cvp8Ep5m.js";import{a as mt,c as z,i as B,n as V,r as ht,s as gt,t as H}from"./chart-helpers-CNpA7re_.js";import{t as _t}from"./use-growth-stats-CqqdnESN.js";import{n as vt,r as U,t as yt}from"./kpi-tabs-DE_yh9Go.js";import{t as bt}from"./use-analytics-data-ChHqiZXv.js";import{n as xt}from"./audience-6GXevic-.js";import{n as St}from"./referrers-1R8bPpoV.js";import{a as Ct}from"./tiers-6mPzCXlM.js";import{i as wt,r as Tt,t as W}from"./content-helpers-CNBPrwsi.js";import{t as Et}from"./url-helpers-DcQbx-Xg.js";import{t as Dt}from"./get-site-timezone-HgL0jI_F.js";var G=e(t()),Ot=e(le()),kt=e(T()),K=e(ve()),q=e(x()),At;function J(e){"@babel/helpers - typeof";return J=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},J(e)}function Y(){return Y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Y.apply(this,arguments)}function jt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function X(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?jt(Object(n),!0).forEach(function(t){Z(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):jt(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Mt(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function Nt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,Ht(r.key),r)}}function Pt(e,t,n){return t&&Nt(e.prototype,t),n&&Nt(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function Ft(e,t,n){return t=zt(t),It(e,Rt()?Reflect.construct(t,n||[],zt(e).constructor):t.apply(e,n))}function It(e,t){if(t&&(J(t)===`object`||typeof t==`function`))return t;if(t!==void 0)throw TypeError(`Derived constructors may only return object or undefined`);return Lt(e)}function Lt(e){if(e===void 0)throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);return e}function Rt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(Rt=function(){return!!e})()}function zt(e){return zt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},zt(e)}function Bt(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Super expression must either be null or a function`);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Vt(e,t)}function Vt(e,t){return Vt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Vt(e,t)}function Z(e,t,n){return t=Ht(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ht(e){var t=Ut(e,`string`);return J(t)==`symbol`?t:t+``}function Ut(e,t){if(J(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(J(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var Q=function(e){function t(e){var n;return Mt(this,t),n=Ft(this,t,[e]),Z(n,`pieRef`,null),Z(n,`sectorRefs`,[]),Z(n,`id`,ce(`recharts-pie-`)),Z(n,`handleAnimationEnd`,function(){var e=n.props.onAnimationEnd;n.setState({isAnimationFinished:!0}),(0,q.default)(e)&&e()}),Z(n,`handleAnimationStart`,function(){var e=n.props.onAnimationStart;n.setState({isAnimationFinished:!1}),(0,q.default)(e)&&e()}),n.state={isAnimationFinished:!e.isAnimationActive,prevIsAnimationActive:e.isAnimationActive,prevAnimationId:e.animationId,sectorToFocus:0},n}return Bt(t,e),Pt(t,[{key:`isActiveIndex`,value:function(e){var t=this.props.activeIndex;return Array.isArray(t)?t.indexOf(e)!==-1:e===t}},{key:`hasActiveIndex`,value:function(){var e=this.props.activeIndex;return Array.isArray(e)?e.length!==0:e||e===0}},{key:`renderLabels`,value:function(e){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var n=this.props,r=n.label,i=n.labelLine,a=n.dataKey,o=n.valueKey,s=S(this.props,!1),c=S(r,!1),l=S(i,!1),u=r&&r.offsetRadius||20,d=e.map(function(e,n){var d=(e.startAngle+e.endAngle)/2,f=w(e.cx,e.cy,e.outerRadius+u,d),p=X(X(X(X({},s),e),{},{stroke:`none`},c),{},{index:n,textAnchor:t.getTextAnchor(f.x,e.cx)},f),m=X(X(X(X({},s),e),{},{fill:`none`,stroke:e.fill},l),{},{index:n,points:[w(e.cx,e.cy,e.outerRadius,d),f]}),h=a;return(0,K.default)(a)&&(0,K.default)(o)?h=`value`:(0,K.default)(a)&&(h=o),G.createElement(D,{key:`label-${e.startAngle}-${e.endAngle}-${e.midAngle}-${n}`},i&&t.renderLabelLineItem(i,m,`line`),t.renderLabelItem(r,p,E(e,h)))});return G.createElement(D,{className:`recharts-pie-labels`},d)}},{key:`renderSectorsStatically`,value:function(e){var t=this,n=this.props,r=n.activeShape,i=n.blendStroke,a=n.inactiveShape;return e.map(function(n,o){if(n?.startAngle===0&&n?.endAngle===0&&e.length!==1)return null;var s=t.isActiveIndex(o),c=a&&t.hasActiveIndex()?a:null,l=s?r:c,u=X(X({},n),{},{stroke:i?n.fill:n.stroke,tabIndex:-1});return G.createElement(D,Y({ref:function(e){e&&!t.sectorRefs.includes(e)&&t.sectorRefs.push(e)},tabIndex:-1,className:`recharts-pie-sector`},he(t.props,n,o),{key:`sector-${n?.startAngle}-${n?.endAngle}-${n.midAngle}-${o}`}),G.createElement(ie,Y({option:l,isActive:s,shapeType:`sector`},u)))})}},{key:`renderSectorsWithAnimation`,value:function(){var e=this,t=this.props,n=t.sectors,r=t.isAnimationActive,i=t.animationBegin,a=t.animationDuration,o=t.animationEasing,s=t.animationId,c=this.state,l=c.prevSectors,u=c.prevIsAnimationActive;return G.createElement(xe,{begin:i,duration:a,isActive:r,easing:o,from:{t:0},to:{t:1},key:`pie-${s}-${u}`,onAnimationStart:this.handleAnimationStart,onAnimationEnd:this.handleAnimationEnd},function(t){var r=t.t,i=[],a=(n&&n[0]).startAngle;return n.forEach(function(e,t){var n=l&&l[t],o=t>0?(0,Ot.default)(e,`paddingAngle`,0):0;if(n){var s=oe(n.endAngle-n.startAngle,e.endAngle-e.startAngle),c=X(X({},e),{},{startAngle:a+o,endAngle:a+s(r)+o});i.push(c),a=c.endAngle}else{var u=e.endAngle,d=e.startAngle,f=oe(0,u-d)(r),p=X(X({},e),{},{startAngle:a+o,endAngle:a+f+o});i.push(p),a=p.endAngle}}),G.createElement(D,null,e.renderSectorsStatically(i))})}},{key:`attachKeyboardHandlers`,value:function(e){var t=this;e.onkeydown=function(e){if(!e.altKey)switch(e.key){case`ArrowLeft`:var n=++t.state.sectorToFocus%t.sectorRefs.length;t.sectorRefs[n].focus(),t.setState({sectorToFocus:n});break;case`ArrowRight`:var r=--t.state.sectorToFocus<0?t.sectorRefs.length-1:t.state.sectorToFocus%t.sectorRefs.length;t.sectorRefs[r].focus(),t.setState({sectorToFocus:r});break;case`Escape`:t.sectorRefs[t.state.sectorToFocus].blur(),t.setState({sectorToFocus:0});break;default:}}}},{key:`renderSectors`,value:function(){var e=this.props,t=e.sectors,n=e.isAnimationActive,r=this.state.prevSectors;return n&&t&&t.length&&(!r||!(0,kt.default)(r,t))?this.renderSectorsWithAnimation():this.renderSectorsStatically(t)}},{key:`componentDidMount`,value:function(){this.pieRef&&this.attachKeyboardHandlers(this.pieRef)}},{key:`render`,value:function(){var e=this,t=this.props,n=t.hide,r=t.sectors,i=t.className,a=t.label,o=t.cx,s=t.cy,c=t.innerRadius,l=t.outerRadius,u=t.isAnimationActive,d=this.state.isAnimationFinished;if(n||!r||!r.length||!k(o)||!k(s)||!k(c)||!k(l))return null;var f=m(`recharts-pie`,i);return G.createElement(D,{tabIndex:this.props.rootTabIndex,className:f,ref:function(t){e.pieRef=t}},this.renderSectors(),a&&this.renderLabels(r),O.renderCallByParent(this.props,null,!1),(!u||d)&&be.renderCallByParent(this.props,r,!1))}}],[{key:`getDerivedStateFromProps`,value:function(e,t){return t.prevIsAnimationActive===e.isAnimationActive?e.isAnimationActive&&e.animationId!==t.prevAnimationId?{prevAnimationId:e.animationId,curSectors:e.sectors,prevSectors:t.curSectors,isAnimationFinished:!0}:e.sectors===t.curSectors?null:{curSectors:e.sectors,isAnimationFinished:!0}:{prevIsAnimationActive:e.isAnimationActive,prevAnimationId:e.animationId,curSectors:e.sectors,prevSectors:[],isAnimationFinished:!0}}},{key:`getTextAnchor`,value:function(e,t){return e>t?`start`:e<t?`end`:`middle`}},{key:`renderLabelLineItem`,value:function(e,t,n){if(G.isValidElement(e))return G.cloneElement(e,t);if((0,q.default)(e))return e(t);var r=m(`recharts-pie-label-line`,typeof e==`boolean`?``:e.className);return G.createElement(se,Y({},t,{key:n,type:`linear`,className:r}))}},{key:`renderLabelItem`,value:function(e,t,n){if(G.isValidElement(e))return G.cloneElement(e,t);var r=n;if((0,q.default)(e)&&(r=e(t),G.isValidElement(r)))return r;var i=m(`recharts-pie-label-text`,typeof e!=`boolean`&&!(0,q.default)(e)?e.className:``);return G.createElement(te,Y({},t,{alignmentBaseline:`middle`,className:i}),r)}}])}(G.PureComponent);At=Q,Z(Q,`displayName`,`Pie`),Z(Q,`defaultProps`,{stroke:`#fff`,fill:`#808080`,legendType:`rect`,cx:`50%`,cy:`50%`,startAngle:0,endAngle:360,innerRadius:0,outerRadius:`80%`,paddingAngle:0,labelLine:!0,hide:!1,minAngle:0,isAnimationActive:!ne.isSsr,animationBegin:400,animationDuration:1500,animationEasing:`ease`,nameKey:`name`,blendStroke:!1,rootTabIndex:0}),Z(Q,`parseDeltaAngle`,function(e,t){return _e(t-e)*Math.min(Math.abs(t-e),360)}),Z(Q,`getRealPieData`,function(e){var t=e.data,n=e.children,r=S(e,!1),i=ue(n,ee);return t&&t.length?t.map(function(e,t){return X(X(X({payload:e},r),e),i&&i[t]&&i[t].props)}):i&&i.length?i.map(function(e){return X(X({},r),e.props)}):[]}),Z(Q,`parseCoordinateOfPie`,function(e,t){var n=t.top,r=t.left,i=t.width,a=t.height,o=ye(i,a);return{cx:r+pe(e.cx,i,i/2),cy:n+pe(e.cy,a,a/2),innerRadius:pe(e.innerRadius,o,0),outerRadius:pe(e.outerRadius,o,o*.8),maxRadius:e.maxRadius||Math.sqrt(i*i+a*a)/2}}),Z(Q,`getComposedData`,function(e){var t=e.item,n=e.offset,r=t.type.defaultProps===void 0?t.props:X(X({},t.type.defaultProps),t.props),i=At.getRealPieData(r);if(!i||!i.length)return null;var a=r.cornerRadius,o=r.startAngle,s=r.endAngle,c=r.paddingAngle,l=r.dataKey,u=r.nameKey,d=r.valueKey,f=r.tooltipType,p=Math.abs(r.minAngle),m=At.parseCoordinateOfPie(r,n),h=At.parseDeltaAngle(o,s),g=Math.abs(h),_=l;(0,K.default)(l)&&(0,K.default)(d)?(re(!1,`Use "dataKey" to specify the value of pie,
|
|
2
|
+
the props "valueKey" will be deprecated in 1.1.0`),_=`value`):(0,K.default)(l)&&(re(!1,`Use "dataKey" to specify the value of pie,
|
|
3
|
+
the props "valueKey" will be deprecated in 1.1.0`),_=d);var v=i.filter(function(e){return E(e,_,0)!==0}).length,y=(g>=360?v:v-1)*c,b=g-v*p-y,x=i.reduce(function(e,t){var n=E(t,_,0);return e+(k(n)?n:0)},0),S;if(x>0){var C;S=i.map(function(e,t){var n=E(e,_,0),r=E(e,u,t),i=(k(n)?n:0)/x,s=t?C.endAngle+_e(h)*c*(n===0?0:1):o,l=s+_e(h)*((n===0?0:p)+i*b),d=(s+l)/2,g=(m.innerRadius+m.outerRadius)/2;return C=X(X(X({percent:i,cornerRadius:a,name:r,tooltipPayload:[{name:r,value:n,payload:e,dataKey:_,type:f}],midAngle:d,middleRadius:g,tooltipPosition:w(m.cx,m.cy,g,d)},e),m),{},{value:E(e,_),startAngle:s,endAngle:l,payload:e,paddingAngle:_e(h)*c}),C})}return X(X({},m),{},{sectors:S,data:i})});var Wt=ae({chartName:`PieChart`,GraphicalChild:Q,validateTooltipEventTypes:[`item`],defaultTooltipEventType:`item`,legendContent:`children`,axisComponents:[{axisType:`angleAxis`,AxisComp:Ce},{axisType:`radiusAxis`,AxisComp:Se}],formatAxisMap:C,defaultProps:{layout:`centric`,startAngle:0,endAngle:360,cx:`50%`,cy:`50%`,innerRadius:0,outerRadius:`80%`}}),$=n(),Gt=e=>e===`total-members`||e===`free-members`||e===`paid-members`||e===`mrr`,Kt=({active:e,payload:t,range:n,color:r,showBreakdown:i})=>{if(!e||!t?.length)return null;let a=t[0].payload,{date:o,formattedValue:s,label:c,comped:l,gift:u}=a,p=a.value-(l||0)-(u||0);return(0,$.jsxs)(`div`,{className:`min-w-[200px] rounded-lg border bg-background px-3 py-2 shadow-lg`,children:[o&&(0,$.jsx)(`div`,{className:`mb-1 text-sm text-foreground`,children:d(o,n||0)}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[i&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,$.jsxs)(`div`,{className:`flex grow items-center justify-between gap-5`,children:[(0,$.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`Paid subscriptions`}),(0,$.jsx)(`div`,{className:`font-mono text-xs`,children:f(p)})]})}),(0,$.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,$.jsxs)(`div`,{className:`flex grow items-center justify-between gap-5`,children:[(0,$.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`Gift subscriptions`}),(0,$.jsx)(`div`,{className:`font-mono text-xs`,children:u!==void 0&&u>0?f(u):`0`})]})}),(0,$.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,$.jsxs)(`div`,{className:`flex grow items-center justify-between gap-5`,children:[(0,$.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`Complimentary`}),(0,$.jsx)(`div`,{className:`font-mono text-xs`,children:l!==void 0&&l>0?f(l):`0`})]})}),(0,$.jsx)(Ze,{})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`inline-block size-2 rounded-full opacity-50`,style:{backgroundColor:r||`var(--chart-purple)`}}),(0,$.jsxs)(`div`,{className:`flex grow items-center justify-between gap-5`,children:[c&&(0,$.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:c}),(0,$.jsx)(`div`,{className:`font-mono font-medium`,children:s})]})]})]})]})},qt=({chartData:e,totals:t,initialTab:n,currencySymbol:r,isLoading:i,onTabChange:a})=>{let o=Gt(n)?n:`total-members`,[l,u]=(0,G.useState)(o),{range:d}=$e(),p=L(),m=c(),[h]=s();(0,G.useEffect)(()=>{u(o)},[o]);let g=e=>{u(e);let t=new URLSearchParams(h);t.set(`tab`,e),m(`?${t.toString()}`,{replace:!0}),a&&a(e)},{totalMembers:_,freeMembers:v,paidMembers:y,mrr:b,percentChanges:x,directions:S}=t,{chartData:C,chartRange:w}=(0,G.useMemo)(()=>{if(!e||e.length===0)return{chartData:[],chartRange:d};let t=[],n=`value`;switch(l){case`free-members`:n=`free`;break;case`paid-members`:n=`paid`;break;case`mrr`:n=`mrr`;break;default:n=`value`}t=z(e,d,n,`exact`);let i=[];switch(l){case`free-members`:i=t.map(e=>({...e,value:e.free,formattedValue:f(e.free),label:`Free members`}));break;case`paid-members`:i=t.map(e=>({...e,value:e.paid,formattedValue:f(e.paid),label:`Paid members`,comped:e.comped,gift:e.gift,paid_subscribed:e.paid_subscribed}));break;case`mrr`:i=t.map(e=>({...e,value:H(e.mrr),formattedValue:`${r}${f(H(e.mrr))}`,label:`MRR`}));break;default:i=t.map(e=>{let t=e.free+e.paid;return{...e,value:t,formattedValue:f(t),label:`Total members`}})}return{chartData:i,chartRange:ht(d,e,{fieldName:n})}},[l,e,d,r]),T={"total-members":{color:`var(--chart-darkblue)`},"free-members":{color:`var(--chart-blue)`},"paid-members":{color:`var(--chart-purple)`},mrr:{color:`var(--chart-teal)`}};return i?(0,$.jsx)(`div`,{className:`-mb-6 flex h-[calc(16vw+132px)] w-full items-start justify-center`,children:(0,$.jsx)(et,{})}):(0,$.jsxs)(Ae,{defaultValue:o,variant:`kpis`,children:[(0,$.jsxs)(ke,{className:`-mx-6 ${p?`hidden grid-cols-4 lg:visible! lg:grid!`:`grid grid-cols-4`}`,children:[(0,$.jsx)(vt,{className:p?``:`cursor-auto after:hidden`,value:`total-members`,onClick:()=>{p&&g(`total-members`)},children:(0,$.jsx)(U,{color:`var(--chart-darkblue)`,diffDirection:d===R.allTime.value?`hidden`:S.total,diffValue:x.total,label:`Total members`,value:f(_)})}),p&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(vt,{value:`free-members`,onClick:()=>{g(`free-members`)},children:(0,$.jsx)(U,{color:`var(--chart-blue)`,diffDirection:d===R.allTime.value?`hidden`:S.free,diffValue:x.free,label:`Free members`,value:f(v)})}),(0,$.jsx)(vt,{value:`paid-members`,onClick:()=>{g(`paid-members`)},children:(0,$.jsx)(U,{color:`var(--chart-purple)`,diffDirection:d===R.allTime.value?`hidden`:S.paid,diffValue:x.paid,label:`Paid members`,value:f(y)})}),(0,$.jsx)(vt,{value:`mrr`,onClick:()=>{g(`mrr`)},children:(0,$.jsx)(U,{color:`var(--chart-teal)`,diffDirection:d===R.allTime.value?`hidden`:S.mrr,diffValue:x.mrr,label:`MRR`,value:`${r}${f(H(b))}`})})]})]}),p&&(0,$.jsxs)(tt,{children:[(0,$.jsx)(Ke,{className:`lg:hidden`,asChild:!0,children:(0,$.jsxs)(yt,{children:[l===`total-members`&&(0,$.jsx)(U,{color:`var(--chart-darkblue)`,diffDirection:d===R.allTime.value?`hidden`:S.total,diffValue:x.total,label:`Total members`,value:f(_)}),l===`free-members`&&(0,$.jsx)(U,{color:`var(--chart-blue)`,diffDirection:d===R.allTime.value?`hidden`:S.free,diffValue:x.free,label:`Free members`,value:f(v)}),l===`paid-members`&&(0,$.jsx)(U,{color:`var(--chart-purple)`,diffDirection:d===R.allTime.value?`hidden`:S.paid,diffValue:x.paid,label:`Paid members`,value:f(y)}),l===`mrr`&&(0,$.jsx)(U,{color:`var(--chart-teal)`,diffDirection:d===R.allTime.value?`hidden`:S.mrr,diffValue:x.mrr,label:`MRR`,value:`${r}${f(H(b))}`})]})}),(0,$.jsxs)(Xe,{align:`end`,className:`w-56`,children:[(0,$.jsx)(at,{onClick:()=>g(`total-members`),children:`Total members`}),(0,$.jsx)(at,{onClick:()=>g(`free-members`),children:`Free members`}),(0,$.jsx)(at,{onClick:()=>g(`paid-members`),children:`Paid members`}),(0,$.jsx)(at,{onClick:()=>g(`mrr`),children:`MRR`})]})]}),(0,$.jsx)(`div`,{className:`my-4 [&_.recharts-cartesian-axis-tick-value]:fill-gray-500`,children:(0,$.jsx)(De,{className:`-mb-3 h-[16vw] max-h-[320px] w-full min-h-[180px]`,color:T[l].color,data:C,dataFormatter:l===`mrr`?e=>`${r}${f(e)}`:f,id:l,range:w,tooltipContent:l===`paid-members`?(0,$.jsx)(Kt,{color:T[`paid-members`].color,range:w,showBreakdown:!0}):void 0})})]})},Jt=(e,t=`signups desc`,n=50)=>{let{startDate:r,endDate:i,timezone:a}=mt(e),o={date_from:V(r),date_to:V(i),member_status:xt(Qe),order:t,limit:n.toString()};return a&&(o.timezone=a),St({searchParams:o})},Yt=({data:e,currencySymbol:t,limit:n,defaultSourceIconUrl:r})=>{let i=n?e.slice(0,n):e,a=L();return(0,$.jsx)(F,{children:i.map(e=>(0,$.jsxs)(P,{className:`last:border-none`,children:[(0,$.jsx)(I,{className:`font-medium`,children:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(o,{defaultSourceIconUrl:r,displayName:e.displayName,iconSrc:e.iconSrc}),e.linkUrl?(0,$.jsx)(`a`,{className:`hover:underline`,href:e.linkUrl,rel:`noreferrer`,target:`_blank`,children:e.displayName}):(0,$.jsx)(`span`,{children:e.displayName})]})}),(0,$.jsxs)(I,{className:`text-right font-mono text-sm`,children:[`+`,f(e.free_members)]}),a&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(I,{className:`text-right font-mono text-sm`,children:[`+`,f(e.paid_members)]}),(0,$.jsxs)(I,{className:`text-right font-mono text-sm`,children:[`+`,t,f(H(e.mrr))]})]})]},e.source))})},Xt=({range:e,limit:t=20,showViewAll:n=!1,sortBy:r,setSortBy:o})=>{let{site:s}=bt(),{data:c}=ft(),l=L(),u=it(),[d,f]=(0,G.useState)(`free_members desc`),p=r||d,m=o||f,{data:_,isLoading:v}=Jt(e,p.replace(`free_members`,`signups`).replace(`paid_members`,`paid_conversions`),t),y=s.url,x=`https://www.google.com/s2/favicons?domain=ghost.org&sz=64`,S=G.useMemo(()=>{if(c?.stats&&c?.meta?.totals){let e=c.meta.totals,t=e[0];if(!t)return i(`usd`);for(let n of e)n.mrr>t.mrr&&(t=n);return i(t.currency)}return i(`usd`)},[c]),C=G.useMemo(()=>_?.stats?_.stats.map(e=>{let t=e.source||`Direct`,{domain:n}=a(t,y),r=n?`https://www.faviconextractor.com/favicon/${n}?larger=true`:x,i=n&&t!==`Direct`?`https://${n}`:void 0;return{source:t,free_members:e.signups,paid_members:e.paid_conversions,mrr:e.mrr,iconSrc:r,displayName:t,linkUrl:i}}):[],[_,y]),w=`Where did your growth come from ${B(e)}`;return u?v?(0,$.jsx)(F,{children:(0,$.jsx)(P,{className:`last:border-none`,children:(0,$.jsx)(I,{className:`border-none py-2`,colSpan:1,children:(0,$.jsx)(Ie,{containerClassName:`space-y-2`,count:5,maxWidth:75,randomize:!0})})})}):(0,$.jsxs)($.Fragment,{children:[C.length>0?(0,$.jsx)(Yt,{currencySymbol:S,data:C,defaultSourceIconUrl:x,limit:t}):(0,$.jsx)(F,{children:(0,$.jsx)(P,{className:`last:border-none`,children:(0,$.jsx)(I,{className:`border-none py-12 group-hover:bg-transparent!`,colSpan:l?4:2,children:(0,$.jsx)(Ve,{description:`Try adjusting your date range to see more data.`,title:`No conversions ${B(e)}`,children:(0,$.jsx)(g,{strokeWidth:1.5})})})})}),n&&C.length>t&&(0,$.jsx)(He,{className:`border-none bg-transparent hover:bg-transparent!`,children:(0,$.jsx)(P,{children:(0,$.jsx)(I,{className:`border-none bg-transparent px-0 pb-0 hover:bg-transparent!`,colSpan:4,children:(0,$.jsxs)(rt,{children:[(0,$.jsx)(Ye,{asChild:!0,children:(0,$.jsxs)(b,{variant:`outline`,children:[`View all `,(0,$.jsx)(h,{})]})}),(0,$.jsxs)(Ge,{className:`overflow-y-auto pt-0 sm:max-w-[420px]`,children:[(0,$.jsxs)(qe,{className:`sticky top-0 z-40 -mx-6 bg-surface-elevated/60 p-6 backdrop-blur`,children:[(0,$.jsx)(Je,{children:`Top sources`}),(0,$.jsx)(nt,{children:w})]}),(0,$.jsx)(`div`,{className:`group/datalist`,children:(0,$.jsxs)(We,{children:[(0,$.jsx)(Ue,{children:(0,$.jsxs)(P,{children:[(0,$.jsx)(N,{children:`Source`}),(0,$.jsx)(N,{className:`w-[110px] text-right`,children:(0,$.jsx)(A,{activeSortBy:p,setSortBy:m,sortBy:`free_members desc`,children:`Free members`})}),l&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(N,{className:`w-[110px] text-right`,children:(0,$.jsx)(A,{activeSortBy:p,setSortBy:m,sortBy:`paid_members desc`,children:`Paid members`})}),(0,$.jsx)(N,{className:`w-[110px] text-right`,children:(0,$.jsx)(A,{activeSortBy:p,setSortBy:m,sortBy:`mrr desc`,children:`MRR impact`})})]})]})}),(0,$.jsx)(Yt,{currencySymbol:S,data:C,defaultSourceIconUrl:x})]})})]})]})})})})]}):(0,$.jsx)(F,{children:(0,$.jsx)(P,{className:`last:border-none`,children:(0,$.jsx)(I,{className:`border-none py-12 group-hover:bg-transparent!`,colSpan:l?4:2,children:(0,$.jsx)(ut,{})})})})};l();var Zt=({active:e,payload:t})=>{if(e&&t&&t.length){let e=t[0];return(0,$.jsx)(`div`,{className:`rounded-lg border bg-background p-2 shadow-sm`,children:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`div`,{className:`size-2 rounded-full opacity-50`,style:{backgroundColor:e.payload.color}}),(0,$.jsx)(`span`,{className:`font-medium`,children:e.name}),(0,$.jsx)(`span`,{className:`font-mono`,children:f(e.value)})]})})}return null},Qt=({isLoading:e,range:t})=>{let{data:n}=pt(),{data:{tiers:r=[]}={}}=Ct(),[i,a]=(0,G.useState)(`billing-period`),{startDate:o,endDate:s}=(0,G.useMemo)(()=>mt(t),[t]),c=(0,G.useMemo)(()=>V(o),[o]),l=(0,G.useMemo)(()=>V(s),[s]),d=(0,G.useMemo)(()=>r.filter(e=>e.type===`paid`&&e.active).map(e=>({id:e.id,name:e.name})),[r]),p=(0,G.useMemo)(()=>{if(!n?.stats)return[];let e=u(c),t=u(l),r=n.stats.filter(n=>{let r=u(n.date);return r.isSameOrAfter(e)&&r.isSameOrBefore(t)}).reduce((e,t)=>{let n=t.cadence;return e[n]||(e[n]=0),e[n]+=t.signups,e},{});return Object.entries(r).map(([e,t],n)=>{let r=e,i=`url(#gradientPurple)`,a=`var(--chart-purple)`;return e===`month`?(r=`Monthly`,i=`url(#gradientPurple)`,a=`var(--chart-purple)`):e===`year`&&(r=`Annual`,i=`url(#gradientTeal)`,a=`var(--chart-teal)`),{id:`cadence-${n}`,name:r,count:t,fill:i,color:a}})},[n,c,l]),m=(0,G.useMemo)(()=>{if(!n?.stats||d.length===0)return[];let e=u(c),t=u(l),r=n.stats.filter(n=>{let r=u(n.date);return r.isSameOrAfter(e)&&r.isSameOrBefore(t)}).reduce((e,t)=>{let n=t.tier;return e[n]||(e[n]=0),e[n]+=t.signups,e},{}),i=[{gradient:`url(#gradientPurple)`,solid:`var(--chart-purple)`},{gradient:`url(#gradientTeal)`,solid:`var(--chart-teal)`},{gradient:`url(#gradientBlue)`,solid:`var(--chart-blue)`},{gradient:`url(#gradientRose)`,solid:`var(--chart-rose)`},{gradient:`url(#gradientOrange)`,solid:`var(--chart-orange)`},{gradient:`url(#gradientGreen)`,solid:`var(--chart-green)`},{gradient:`url(#gradientAmber)`,solid:`var(--chart-amber)`},{gradient:`url(#gradientYellow)`,solid:`var(--chart-yellow)`},{gradient:`url(#gradientDarkblue)`,solid:`var(--chart-darkblue)`},{gradient:`url(#gradientGray)`,solid:`var(--chart-darkgray)`}];return[...d.map(e=>{let t=r[e.id]||0;return{id:e.id,name:e.name,count:t}})].sort((e,t)=>t.count-e.count).map((e,t)=>{let n=t%i.length;return{...e,fill:i[n].gradient,color:i[n].solid}})},[n,d,c,l]),h=i===`billing-period`?p:m,g=(0,G.useMemo)(()=>h.reduce((e,t)=>e+t.count,0),[h]),_=(0,G.useMemo)(()=>{let e={count:{label:`Subscriptions`}};return h.forEach(t=>{e[t.id]={label:t.name,color:t.color}}),e},[h]),v=(0,G.useMemo)(()=>g===0?[]:h.map(e=>({label:e.name,count:e.count,percentage:e.count/g*100,color:e.color})),[h,g]);if(e||!n?.stats)return null;let b=h.length>0&&g>0;return(0,$.jsxs)(M,{children:[(0,$.jsx)(Le,{children:(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-1.5`,children:[(0,$.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,$.jsx)(ze,{children:`Paid subscription breakdown`}),(0,$.jsxs)(Be,{children:[`New paid subscriptions `,B(t)]})]}),d.length>1&&(0,$.jsx)(`div`,{children:(0,$.jsxs)(Fe,{value:i,onValueChange:e=>a(e),children:[(0,$.jsx)(Ne,{className:`w-full`,children:(0,$.jsx)(Pe,{})}),(0,$.jsxs)(Me,{align:`end`,children:[(0,$.jsx)(je,{value:`billing-period`,children:`Billing period`}),(0,$.jsx)(je,{value:`tiers`,children:`Tiers`})]})]})})]})}),(0,$.jsx)(Re,{children:b?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(me,{className:`mx-auto aspect-square h-[250px] min-h-[250px] w-full`,config:_,children:(0,$.jsxs)(Wt,{children:[(0,$.jsxs)(`defs`,{children:[(0,$.jsxs)(`linearGradient`,{id:`gradientPurple`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-purple)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-purple)`,stopOpacity:.6})]}),(0,$.jsxs)(`linearGradient`,{id:`gradientTeal`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-teal)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-teal)`,stopOpacity:.6})]}),(0,$.jsxs)(`linearGradient`,{id:`gradientRose`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-rose)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-rose)`,stopOpacity:.6})]}),(0,$.jsxs)(`linearGradient`,{id:`gradientBlue`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-blue)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-blue)`,stopOpacity:.6})]}),(0,$.jsxs)(`linearGradient`,{id:`gradientOrange`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-orange)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-orange)`,stopOpacity:.6})]}),(0,$.jsxs)(`linearGradient`,{id:`gradientGreen`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-green)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-green)`,stopOpacity:.6})]}),(0,$.jsxs)(`linearGradient`,{id:`gradientAmber`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-amber)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-amber)`,stopOpacity:.6})]}),(0,$.jsxs)(`linearGradient`,{id:`gradientYellow`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-yellow)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-yellow)`,stopOpacity:.6})]}),(0,$.jsxs)(`linearGradient`,{id:`gradientDarkblue`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-darkblue)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-darkblue)`,stopOpacity:.6})]}),(0,$.jsxs)(`linearGradient`,{id:`gradientGray`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-darkgray)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-darkgray)`,stopOpacity:.6})]})]}),(0,$.jsx)(ge,{content:(0,$.jsx)(Zt,{}),cursor:!1}),(0,$.jsx)(Q,{animationBegin:0,animationDuration:1e3,data:h,dataKey:`count`,innerRadius:70,nameKey:`name`,stroke:`var(--card)`,strokeWidth:5,children:(0,$.jsx)(O,{content:({viewBox:e})=>{if(e&&`cx`in e&&`cy`in e)return(0,$.jsxs)(`text`,{dominantBaseline:`middle`,textAnchor:`middle`,x:e.cx,y:e.cy,children:[(0,$.jsx)(`tspan`,{className:`fill-foreground text-2xl font-semibold tracking-tight`,x:e.cx,y:e.cy,children:f(g)}),(0,$.jsx)(`tspan`,{className:`fill-muted-foreground`,x:e.cx,y:(e.cy||0)+20,children:`Total`})]})}})})]})}),v.length>0&&(0,$.jsx)(`div`,{className:`mt-4 flex flex-wrap items-center justify-center gap-x-6 gap-y-1 text-sm text-muted-foreground`,children:v.map(e=>(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`size-2 rounded-full opacity-50`,style:{backgroundColor:e.color}}),(0,$.jsx)(`span`,{className:`max-w-[150px] truncate whitespace-nowrap`,title:e.label,children:e.label}),(0,$.jsxs)(`span`,{className:`font-medium text-foreground`,children:[Math.round(Number(e.percentage)||0),`%`]})]},e.label))})]}):(0,$.jsx)(`div`,{className:`py-12`,children:(0,$.jsx)(Ve,{description:`No new paid subscriptions ${B(t)}.`,title:`No new subscribers`,children:(0,$.jsx)(y,{strokeWidth:1.5})})})})]})};l();var $t=(e,t,n)=>{if(t===1){let t=u().format(`YYYY-MM-DD`),n=e.find(e=>e.date===t);return[{date:t,signups:n?.signups||0,cancellations:n?.cancellations||0}]}let{startDate:r,endDate:i}=mt(t),a=u(r).format(`YYYY-MM-DD`),o=new Map(e.map(e=>[e.date,e])),s=[],c=new Set;if(n===`monthly`){let e=u(r).startOf(`month`),t=u(i).startOf(`month`);for(;e.isSameOrBefore(t);){let t=e.format(`YYYY-MM-DD`),n=t<a?a:t;if(!c.has(n)){c.add(n);let e=o.get(n);e?s.push(e):s.push({date:n,signups:0,cancellations:0})}e.add(1,`month`)}}else if(n===`weekly`){let e=u(r).startOf(`week`),t=u(i).startOf(`week`);for(;e.isSameOrBefore(t);){let t=e.format(`YYYY-MM-DD`),n=t<a?a:t;if(!c.has(n)){c.add(n);let e=o.get(n);e?s.push(e):s.push({date:n,signups:0,cancellations:0})}e.add(1,`week`)}}else{let e=u(r),t=u(i);for(;e.isSameOrBefore(t);){let t=e.format(`YYYY-MM-DD`),n=o.get(t);n?s.push(n):s.push({date:t,signups:0,cancellations:0}),e.add(1,`day`)}}return s},en=e=>{let t=gt(e);return t<30?[`daily`]:t>=91?[`weekly`,`monthly`]:[`daily`,`weekly`]},tn=e=>{let t=gt(e);return t<30?`daily`:t>=91?`monthly`:`weekly`},nn=({subscriptionData:e,memberData:t,range:n,isLoading:r})=>{let[i,a]=(0,G.useState)(()=>tn(n));(0,G.useEffect)(()=>{a(tn(n))},[n]);let o=(0,G.useMemo)(()=>en(n),[n]),s=(0,G.useMemo)(()=>{switch(i){case`daily`:return`none`;case`weekly`:return`weekly`;case`monthly`:return`monthly`}},[i]),c=(0,G.useMemo)(()=>ht(n,[],{overrideStrategy:s}),[n,s]),l=(0,G.useMemo)(()=>{if(e&&e.length>0){if(n===1){let t=u().format(`YYYY-MM-DD`),r=e.find(e=>e.date===t);return[{date:d(t,n),rawDate:t,new:r?.signups||0,cancelled:-(r?.cancellations||0)}]}let t=z(e,n,`signups`,`sum`,s),r=z(e,n,`cancellations`,`sum`,s),i=new Map(r.map(e=>[e.date,e])),a=t.map(e=>({date:e.date,signups:e.signups||0,cancellations:i.get(e.date)?.cancellations||0})),o=new Set(a.map(e=>e.date));return r.forEach(e=>{o.has(e.date)||a.push({date:e.date,signups:0,cancellations:e.cancellations||0})}),a.sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),$t(a,n,s).map(e=>({date:d(e.date,c),rawDate:e.date,new:e.signups||0,cancelled:-(e.cancellations||0)}))}else{if(!t||t.length===0)return[];if(n===1){let e=u().format(`YYYY-MM-DD`),r=t.find(t=>t.date===e);return[{date:d(e,n),rawDate:e,new:r?.paid_subscribed||0,cancelled:-(r?.paid_canceled||0)}]}let e=z(t,n,`paid_subscribed`,`sum`,s),r=z(t,n,`paid_canceled`,`sum`,s),i=new Map(r.map(e=>[e.date,e])),a=e.map(e=>({date:e.date,paid_subscribed:e.paid_subscribed||0,paid_canceled:i.get(e.date)?.paid_canceled||0})),o=new Set(a.map(e=>e.date));return r.forEach(e=>{o.has(e.date)||a.push({date:e.date,paid_subscribed:0,paid_canceled:e.paid_canceled||0})}),a.sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),a.map(e=>({date:d(e.date,c),rawDate:e.date,new:e.paid_subscribed||0,cancelled:-(e.paid_canceled||0)}))}},[t,e,n,s,c]),p={new:{label:`New`,color:`var(--chart-teal)`},cancelled:{label:`Cancelled`,color:`var(--chart-rose)`}},m=(0,G.useMemo)(()=>({new:l.reduce((e,t)=>e+t.new,0),cancelled:l.reduce((e,t)=>e+Math.abs(t.cancelled),0)}),[l]);if(r)return null;let h=l.length>0&&(m.new>0||m.cancelled>0),g=e=>e.charAt(0).toUpperCase()+e.slice(1);return(0,$.jsxs)(M,{"data-testid":`paid-members-change-card`,children:[(0,$.jsx)(Le,{children:(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-1.5`,children:[(0,$.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,$.jsx)(ze,{children:`Paid subscriptions`}),(0,$.jsxs)(Be,{children:[`New and cancelled paid subscriptions `,B(n)]})]}),o.length>1&&(0,$.jsx)(`div`,{children:(0,$.jsxs)(Fe,{value:i,onValueChange:e=>a(e),children:[(0,$.jsx)(Ne,{className:`w-[110px]`,children:(0,$.jsx)(Pe,{})}),(0,$.jsx)(Me,{align:`end`,children:o.map(e=>(0,$.jsx)(je,{value:e,children:g(e)},e))})]})})]})}),(0,$.jsx)(Re,{children:h?(0,$.jsxs)(`div`,{children:[(0,$.jsx)(me,{className:`aspect-auto h-[200px] w-full md:h-[220px] xl:h-[260px]`,config:p,children:(0,$.jsxs)(Oe,{data:l,stackOffset:`sign`,children:[(0,$.jsx)(`defs`,{children:(0,$.jsxs)(`linearGradient`,{id:`tealGradient`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--color-new)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--color-new)`,stopOpacity:.6})]})}),(0,$.jsx)(`defs`,{children:(0,$.jsxs)(`linearGradient`,{id:`roseGradient`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--color-cancelled)`,stopOpacity:.6}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--color-cancelled)`,stopOpacity:.8})]})}),(0,$.jsx)(Ee,{stroke:`var(--border)`,vertical:!1}),(0,$.jsx)(we,{axisLine:!1,dataKey:`date`,tickFormatter:()=>``,tickLine:!1,tickMargin:10}),(0,$.jsx)(Te,{axisLine:!1,tickFormatter:e=>f(e<0?e*-1:e),tickLine:!1}),(0,$.jsx)(ge,{content:(0,$.jsx)(fe,{className:`min-w-[120px]! px-3 py-2`,formatter:(e,t,n,r)=>{let i=Number(e),a=`0`;a=i===0?`0`:f(i<0?i*-1:i);let o=n?.payload,s=Number(o?.new||0)+Number(o?.cancelled||0),l=s===0?`0`:s>0?`+${f(s)}`:f(s),u=o?.date,m=o?.rawDate;return m&&(u=d(m,c)),(0,$.jsxs)(`div`,{className:`flex w-full flex-col`,children:[r===0&&(0,$.jsx)(`div`,{className:`mb-1 text-sm font-medium text-foreground`,children:u}),(0,$.jsxs)(`div`,{className:`flex w-full items-center justify-between gap-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,$.jsx)(`div`,{className:`size-2 shrink-0 rounded-full bg-[var(--color-bg)] opacity-50`,style:{"--color-bg":`var(--color-${t})`}}),(0,$.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:p[t]?.label||t})]}),(0,$.jsx)(`div`,{className:`ml-auto flex items-baseline gap-0.5 font-mono font-medium text-foreground tabular-nums`,children:a})]}),r===1&&(0,$.jsxs)(`div`,{className:`mt-1 flex w-full items-center justify-between gap-4 border-t pt-1`,children:[(0,$.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:`Net change`}),(0,$.jsx)(`div`,{className:`ml-auto flex items-baseline gap-0.5 font-mono font-medium text-foreground tabular-nums`,children:l})]})]})},hideLabel:!0}),cursor:!1,isAnimationActive:!1,position:{y:10}}),(0,$.jsx)(de,{activeBar:{fillOpacity:1},dataKey:`new`,fill:`url(#tealGradient)`,fillOpacity:.75,maxBarSize:32,minPointSize:3,radius:[4,4,0,0],stackId:`a`}),(0,$.jsx)(de,{activeBar:{fillOpacity:1},dataKey:`cancelled`,fill:`url(#roseGradient)`,fillOpacity:.75,maxBarSize:32,radius:[4,4,0,0],stackId:`a`})]})}),(0,$.jsxs)(`div`,{className:`mt-3 flex items-center justify-center gap-6 text-sm text-muted-foreground`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`size-2 rounded-full opacity-50`,style:{backgroundColor:p.new.color}}),(0,$.jsx)(`span`,{children:`New`}),(0,$.jsx)(`span`,{className:`font-medium text-foreground`,children:f(m.new)})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`size-2 rounded-full opacity-50`,style:{backgroundColor:p.cancelled.color}}),(0,$.jsx)(`span`,{children:`Cancelled`}),(0,$.jsx)(`span`,{className:`font-medium text-foreground`,children:f(m.cancelled)})]})]})]}):(0,$.jsx)(`div`,{className:`py-12`,children:(0,$.jsx)(Ve,{description:`No paid subscription changes ${B(n)}.`,title:`No paid member changes`,children:(0,$.jsx)(_,{strokeWidth:1.5})})})})]})},rn=(e,t,n)=>{let r=e??30,i=t??`mrr desc`,{startDate:a,endDate:o}=(0,G.useMemo)(()=>mt(r),[r]),s=(0,G.useMemo)(()=>{let e={date_from:V(a),date_to:V(o),order:i};return n===`posts`?e.post_type=`post`:n===`pages`&&(e.post_type=`page`),e},[a,o,i,n]);return dt({searchParams:Object.fromEntries(Object.entries(s).filter(([,e])=>e!==void 0))})},an=()=>{let{range:e}=$e(),{site:t,settings:n}=bt(),i=Dt(n),a=c(),[o,l]=(0,G.useState)(`free_members desc`),[u,d]=(0,G.useState)(W.POSTS_AND_PAGES),[m]=s(),h=L(),g=it(),_=m.get(`tab`)||`total-members`,[y,x]=(0,G.useState)(_);(0,G.useEffect)(()=>{_!==y&&x(_)},[_]);let{isLoading:S,chartData:C,totals:w,currencySymbol:T,subscriptionData:ee}=_t(e),{data:te,isLoading:E}=rn(e,o,u),D=(0,G.useMemo)(()=>{let e=(te?.stats||[]).reduce((e,t)=>{let n=t.post_id||(t.title&&t.title.trim()!==``?t.title:t.attribution_url);if(!n)return e;if(!e.has(n))e.set(n,t);else{let r=e.get(n);r.free_members+=t.free_members,r.paid_members+=t.paid_members,r.mrr+=t.mrr,e.set(n,r)}return e},new Map),t=Array.from(e.values()),n=t.reduce((e,t)=>e+t.free_members,0),r=t.reduce((e,t)=>e+t.paid_members,0),i=t.reduce((e,t)=>e+t.mrr,0);return t.map(e=>{let t=0;return o.includes(`free_members`)&&n>0?t=e.free_members/n:o.includes(`paid_members`)&&r>0?t=e.paid_members/r:o.includes(`mrr`)&&i>0&&(t=e.mrr/i),{title:e.title||e.attribution_url,post_id:e.post_id,attribution_url:e.attribution_url,attribution_type:e.attribution_type,attribution_id:e.attribution_id,free_members:e.free_members,paid_members:e.paid_members,mrr:e.mrr,percentage:t,published_at:e.published_at,url_exists:e.url_exists??!0}})},[te,o]),O=S,ne=S||E;return(0,$.jsxs)(st,{children:[(0,$.jsx)(ct,{children:(0,$.jsx)(r,{children:(0,$.jsx)(ot,{})})}),(0,$.jsxs)(lt,{data:O?void 0:C,isLoading:!1,loadingComponent:(0,$.jsx)($.Fragment,{}),children:[(0,$.jsx)(M,{"data-testid":`total-members-card`,children:(0,$.jsx)(Re,{children:(0,$.jsx)(qt,{chartData:C,currencySymbol:T,initialTab:_,isLoading:O,totals:w,onTabChange:x})})}),h&&y===`paid-members`&&(0,$.jsxs)(`div`,{className:`grid grid-cols-1 gap-6 lg:grid-cols-2 xl:grid-cols-[2fr_minmax(460px,1fr)]`,children:[(0,$.jsx)(nn,{isLoading:O,memberData:C,range:e,subscriptionData:ee}),(0,$.jsx)(Qt,{isLoading:O,range:e})]}),(0,$.jsxs)(M,{className:`w-full overflow-x-auto`,"data-testid":`top-content-card`,children:[(0,$.jsxs)(Le,{children:[(0,$.jsx)(ze,{children:Tt(u)}),(0,$.jsx)(Be,{children:wt(u,e,B)})]}),(0,$.jsx)(Re,{children:(0,$.jsxs)(We,{children:[(0,$.jsx)(Ue,{children:(0,$.jsxs)(P,{className:`[&>th]:h-auto [&>th]:pt-0 [&>th]:pb-2`,children:[(0,$.jsx)(N,{className:`min-w-[320px] pl-0`,children:(0,$.jsx)(Ae,{defaultValue:u,variant:`button-sm`,onValueChange:e=>{d(e)},children:(0,$.jsxs)(ke,{children:[(0,$.jsx)(j,{value:W.POSTS_AND_PAGES,children:`Posts & pages`}),(0,$.jsx)(j,{value:W.POSTS,children:`Posts`}),(0,$.jsx)(j,{value:W.PAGES,children:`Pages`}),(0,$.jsx)(j,{value:W.SOURCES,children:`Sources`})]})})}),(0,$.jsx)(N,{className:`w-[140px] text-right`,children:h?(0,$.jsx)(A,{activeSortBy:o,setSortBy:l,sortBy:`free_members desc`,children:`Free members`}):(0,$.jsx)($.Fragment,{children:`Free members`})}),h&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(N,{className:`w-[140px] text-right`,children:(0,$.jsx)(A,{activeSortBy:o,setSortBy:l,sortBy:`paid_members desc`,children:`Paid members`})}),(0,$.jsx)(N,{className:`w-[140px] text-right`,children:(0,$.jsx)(A,{activeSortBy:o,setSortBy:l,sortBy:`mrr desc`,children:`MRR impact`})})]})]})}),u===W.SOURCES?(0,$.jsx)(Xt,{limit:20,range:e,setSortBy:e=>l(e),showViewAll:!0,sortBy:o}):(0,$.jsx)(F,{children:ne?(0,$.jsx)(P,{className:`last:border-none`,children:(0,$.jsx)(I,{className:`border-none py-2`,colSpan:1,children:(0,$.jsx)(Ie,{containerClassName:`space-y-2`,count:5,maxWidth:75,randomize:!0})})}):g?D.length>0?D.map((e,n)=>(0,$.jsxs)(P,{className:`last:border-none`,children:[(0,$.jsx)(I,{children:(0,$.jsxs)(`div`,{className:`group/link inline-flex flex-col items-start gap-px`,children:[e.post_id&&e.attribution_type===`post`?(0,$.jsx)(b,{className:`h-auto p-0 text-left leading-tight font-medium whitespace-normal hover:underline!`,title:`View post analytics`,variant:`link`,onClick:Et(e.attribution_url,e.post_id,t.url||``,a,e.attribution_type),children:e.title}):(0,$.jsx)(`span`,{className:`font-medium`,children:e.title}),e.published_at&&p&&new Date(e.published_at).getTime()>0&&(0,$.jsxs)(`span`,{className:`text-muted-foreground`,children:[`Published on `,p(e.published_at,i)]})]})}),(0,$.jsxs)(I,{className:`text-right font-mono text-sm`,children:[e.free_members>0&&`+`,f(e.free_members)]}),h&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(I,{className:`text-right font-mono text-sm`,children:[e.paid_members>0&&`+`,f(e.paid_members)]}),(0,$.jsxs)(I,{className:`text-right font-mono text-sm`,children:[e.mrr>0&&`+`,T,f(H(e.mrr))]})]})]},`${u}-${e.post_id||`${e.title}-${n}`}`)):(0,$.jsx)(P,{className:`border-none`,children:(0,$.jsx)(I,{className:`py-12 group-hover:bg-transparent!`,colSpan:h?4:2,children:(0,$.jsx)(Ve,{description:`Try adjusting your date range to see more data.`,title:`No conversions ${B(e)}`,children:(0,$.jsx)(v,{strokeWidth:1.5})})})}):(0,$.jsx)(P,{className:`last:border-none`,children:(0,$.jsx)(I,{className:`border-none py-12 group-hover:bg-transparent!`,colSpan:h?4:2,children:(0,$.jsx)(ut,{})})})})]})})]})]})]})};export{an as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as e,t}from"./react-BXwhMTuc.js";import{t as n}from"./jsx-runtime-BlNNh7jY.js";import{l as r}from"./dist-BXHrDV19.js";import{t as i}from"./text-DC-ot6u2.js";var a=e(t(),1),o=n(),s=a.forwardRef(({className:e,...t},n)=>(0,o.jsx)(i,{ref:n,as:`h1`,className:r(`scroll-m-20 leading-[1.1em] tracking-tighter`,e),size:`2xl`,weight:`bold`,...t}));s.displayName=`H1`;var c=a.forwardRef(({className:e,...t},n)=>(0,o.jsx)(i,{ref:n,as:`h2`,className:r(`scroll-m-20 tracking-tighter first:mt-0`,e),size:`xl`,weight:`bold`,...t}));c.displayName=`H2`;var l=a.forwardRef(({className:e,...t},n)=>(0,o.jsx)(i,{ref:n,as:`h3`,className:r(`scroll-m-20 tracking-tight`,e),size:`lg`,weight:`semibold`,...t}));l.displayName=`H3`;var u=a.forwardRef(({className:e,...t},n)=>(0,o.jsx)(i,{ref:n,as:`h4`,className:r(`scroll-m-20 tracking-tight`,e),size:`md`,weight:`semibold`,...t}));u.displayName=`H4`;var d=a.forwardRef(({className:e,...t},n)=>(0,o.jsx)(i,{ref:n,as:`div`,className:r(`tracking-wide uppercase`,e),size:`sm`,tone:`secondary`,weight:`medium`,...t}));d.displayName=`HTable`;export{d as a,u as i,c as n,l as r,s as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as e,t}from"./react-BXwhMTuc.js";import{_ as n}from"./framework-provider-DB-svAju.js";import{t as r}from"./hooks-DYfTEQLk.js";import{t as i}from"./jsx-runtime-BlNNh7jY.js";import{t as a}from"./use-filterable-api-CEMSAYPg.js";import{h as o}from"./chunk-KS7C4IRE-DhOcHQOU.js";import{m as s}from"./dist-BXHrDV19.js";import{t as c}from"./inline-B8H6NzIw.js";import{t as l}from"./stack-BURz77VS.js";import{D as u,a as d,ft as f,hn as p,nr as m,t as h,xt as g}from"./button-DvIh2Bq-.js";import{t as _}from"./switch-zfUUy9Jh.js";import{t as v}from"./input-surface-wSO5CRy5.js";import{o as y,t as b}from"./use-settings-navigation-BIjI5mL3.js";import{i as x,n as S,t as C}from"./action-list-Crnh-_UI.js";import{o as w,t as T}from"./field-p7KnP98B.js";import{t as E}from"./multi-select-combobox-BcBEzUW_.js";import{F as D,Fn as O,In as k,Kn as A,Xn as j,dr as M,sr as N,ur as P}from"./index-DDd-zhNL.js";var F=e(t(),1),I=i(),L=({offset:e,onTrigger:t})=>{let n=(0,F.useRef)(null);return(0,F.useEffect)(()=>{let e=new IntersectionObserver(e=>{e[0].intersectionRatio<=0||t()});return n.current&&e.observe(n.current),()=>e.disconnect()},[t]),(0,I.jsx)(`div`,{ref:n,className:`absolute w-full`,style:{bottom:e}})},R=`ActionsResponseType`,z=(e,t)=>{let n=e=>e.event===`edited`&&typeof e.context?.action_name==`string`?e.context.action_name:``;return e.resource_id===t.resource_id&&e.resource_type===t.resource_type&&e.event===t.event&&n(e)===n(t)},B=r({dataType:R,path:`/actions/`,returnData:e=>{let{pages:t}=e,n=t.flatMap(e=>e.actions.map(({context:e,...t})=>({...t,context:JSON.parse(e)})));n=n.reverse();let r=1;n.forEach((e,t)=>{let i=n[t+1];i&&z(e,i)?(e.skip=!0,r+=1):r>1&&(e.count=r,r=1)});let i=t[t.length-1].meta;return{actions:n.reverse(),meta:i,isEnd:i?i.pagination.pages===i.pagination.page:!0}}}),V=e=>{let t=e.resource_type;if(e.event!==`deleted`)switch(e.resource_type){case`page`:case`post`:return!e.resource||!e.resource.id?void 0:(t===`post`&&e.context?.type&&(t=e.context?.type),{isExternal:!0,route:`editor/${t}/${e.resource.id}`,models:[t,e.resource.id]});case`integration`:return!e.resource||!e.resource.id?void 0:{route:`integrations/${e.resource.id}`};case`offer`:return!e.resource||!e.resource.id?void 0:{isExternal:!0,route:`offers/${e.resource.id}`,models:[e.resource.id]};case`tag`:return!e.resource||!e.resource.slug?void 0:{isExternal:!0,route:`tag`,models:[e.resource.slug]};case`product`:return{route:`tiers`};case`user`:return!e.resource||!e.resource.slug?void 0:{route:`staff/${e.resource.slug}`}}},H=e=>{let t=e.resource_type;t===`api_key`?t=`API key`:t===`setting`?t=`settings`:t===`product`?t=`tier`:t===`gift_link`?t=`gift link`:t===`security_action`?t=`security action`:t===`member_custom_field`&&(t=`custom field`),t===`post`&&e.context?.type&&(t=e.context?.type);let n=e.event;return e.event===`edited`&&e.context?.action_name&&(n=e.context?.action_name),n===`reset_authentication`?n=`reset authentication`:n===`custom_fields_edited`&&(n=`custom fields edited`),e.context?.count&&e.context?.count>1?`${e.context?.count} ${t}s ${n}`:`${t.slice(0,1).toUpperCase()}${t.slice(1)} ${n}`},U=e=>{if(e.resource_type===`setting`&&e.context?.group&&e.context?.key)return{group:e.context?.group,key:e.context?.key}},W=e=>typeof e.context?.count==`number`&&e.context?.count>1,G=({action:e})=>{let t=g;switch(e.event){case`added`:t=f;break;case`deleted`:t=u;break}return(0,I.jsx)(t,{className:`size-3`})},K=({action:e})=>(0,I.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,I.jsx)(A,{className:`size-10`,...D({name:e.actor?.name||e.actor?.slug}),src:e.actor?.image}),(0,I.jsx)(`div`,{className:`absolute -right-1 -bottom-1 z-30 flex items-center justify-center rounded-full border border-border-default bg-background p-1 shadow-sm`,children:(0,I.jsx)(G,{action:e})})]}),q=({label:e,item:t,excludedItems:n,toggleItem:r})=>{let i=(0,F.useId)();return(0,I.jsxs)(T,{orientation:`horizontal`,children:[(0,I.jsx)(w,{htmlFor:i,children:e}),(0,I.jsx)(_,{checked:!n.includes(t),id:i,onCheckedChange:e=>r(t,e)})]})},J=({userId:e,excludedEvents:t,excludedResources:n,toggleEventType:r,toggleResourceType:i})=>{let{updateRoute:o}=b(),s=a({path:`/users/`,filterKey:`name`,responseKey:`users`}),[u,f]=(0,F.useState)([]),[p,g]=(0,F.useState)(),[_,y]=(0,F.useState)(!1),[x,S]=(0,F.useState)(!1),C=(0,F.useRef)(0),w=(0,F.useRef)(null),T=(0,F.useRef)(s);T.current=s;let D=(0,F.useCallback)(async(e,t)=>{try{let n=await T.current.loadData(e);t===C.current&&f(n.map(e=>({label:e.name,value:e.id})))}catch{t===C.current&&f([])}finally{t===C.current&&S(!1)}},[]),O=(0,F.useCallback)((e,t=!1)=>{C.current+=1;let n=C.current;S(!0),w.current&&clearTimeout(w.current),t?w.current=setTimeout(()=>void D(e,n),500):D(e,n)},[D]);(0,F.useEffect)(()=>(O(``),()=>{C.current+=1,w.current&&clearTimeout(w.current)}),[O]),(0,F.useEffect)(()=>{let t=!1;if(!e){g(null);return}return T.current.loadInitialValues([e],`id`).then(([e])=>{if(!t&&e){let t={label:e.name,value:e.id};g(t),f(e=>e.some(e=>e.value===t.value)?e:[t,...e])}}).catch(()=>{t||g(null)}),()=>{t=!0}},[e]);let k=()=>{g(null)};return(0,I.jsxs)(c,{align:`center`,gap:`md`,children:[(0,I.jsxs)(N,{children:[(0,I.jsx)(M,{asChild:!0,children:(0,I.jsx)(h,{type:`button`,variant:`outline`,children:`Filter`})}),(0,I.jsx)(P,{align:`end`,className:`z-[9999] w-[220px]`,"data-testid":`history-filters`,children:(0,I.jsxs)(l,{gap:`2xl`,children:[(0,I.jsxs)(l,{gap:`md`,children:[(0,I.jsx)(q,{excludedItems:t,item:`added`,label:`Added`,toggleItem:r}),(0,I.jsx)(q,{excludedItems:t,item:`edited`,label:`Edited`,toggleItem:r}),(0,I.jsx)(q,{excludedItems:t,item:`deleted`,label:`Deleted`,toggleItem:r})]}),(0,I.jsxs)(l,{gap:`md`,children:[(0,I.jsx)(q,{excludedItems:n,item:`post`,label:`Posts`,toggleItem:i}),(0,I.jsx)(q,{excludedItems:n,item:`page`,label:`Pages`,toggleItem:i}),(0,I.jsx)(q,{excludedItems:n,item:`tag`,label:`Tags`,toggleItem:i}),(0,I.jsx)(q,{excludedItems:n,item:`offer,product`,label:`Tiers & offers`,toggleItem:i}),(0,I.jsx)(q,{excludedItems:n,item:`api_key,integration,setting,user,webhook`,label:`Settings & staff`,toggleItem:i})]})]})})]}),(0,I.jsx)(`div`,{className:`w-[200px]`,children:(0,I.jsxs)(c,{className:`${v(`within`)} relative h-(--control-height) overflow-hidden`,gap:`none`,children:[(0,I.jsxs)(N,{open:_,onOpenChange:e=>{y(e),e&&O(``)},children:[(0,I.jsx)(M,{asChild:!0,children:(0,I.jsxs)(`button`,{"aria-label":`Staff`,className:`flex min-w-0 flex-1 items-center justify-between px-3 text-control`,"data-testid":`history-staff-filter`,role:`combobox`,type:`button`,children:[(0,I.jsx)(`span`,{className:p?`truncate pr-8`:`truncate pr-8 text-muted-foreground`,children:p?.label??`Search staff`}),(0,I.jsx)(m,{className:`ml-2 size-4 shrink-0 opacity-50`})]})}),(0,I.jsx)(P,{align:`start`,className:`z-[9999] w-72 p-0`,children:(0,I.jsx)(E,{i18n:{searchPlaceholder:`Search staff`},isLoading:x,isMultiSelect:!1,options:p&&!u.some(e=>e.value===p.value)?[p,...u]:u,shouldFilter:!1,values:p?[p.value]:[],autoCloseOnSelect:!0,onChange:e=>{let t=u.find(t=>t.value===e[0]);t&&(g(t),o(`history/view/${t.value}`))},onClose:()=>y(!1),onSearchChange:e=>O(e,!0)})})]}),p&&(0,I.jsx)(`button`,{"aria-label":`Clear selection`,className:`absolute top-1/2 right-10 z-10 flex size-8 -translate-y-1/2 items-center justify-center text-muted-foreground hover:text-foreground`,type:`button`,onClick:()=>{k(),o(`history/view`)},children:(0,I.jsx)(d,{className:`size-4`})})]})})]})},Y=({action:e})=>{let{updateRoute:t}=b(),n=U(e);if(e.resource_type===`security_action`&&e.context?.action_name===`reset_authentication`){let t=typeof e.context.api_keys_rotated==`number`?e.context.api_keys_rotated:null,n=typeof e.context.users_locked==`number`?e.context.users_locked:null,r=[t===null?null:`${s(t)} API ${t===1?`key`:`keys`} rotated`,n===null?null:`${s(n)} ${n===1?`user`:`users`} locked`].filter(Boolean);return(0,I.jsx)(I.Fragment,{children:r.length?r.join(`, `):`Authentication reset`})}else if(n){let{group:e,key:t}=n;return(0,I.jsxs)(I.Fragment,{children:[e.slice(0,1).toUpperCase(),e.slice(1),e!==t&&(0,I.jsxs)(`span`,{children:[` `,(0,I.jsxs)(`code`,{className:`mb-1 bg-white text-gray-800 dark:bg-gray-900 dark:text-white`,children:[`(`,t,`)`]})]})]})}else if(e.resource?.title||e.resource?.name||e.context?.primary_name){let n=V(e);return n?(0,I.jsx)(`a`,{className:`cursor-pointer font-bold`,onClick:e=>{e.preventDefault(),t(n)},children:e.resource?.title||e.resource?.name}):(0,I.jsx)(I.Fragment,{children:e.resource?.title||e.resource?.name||e.context?.primary_name})}else return(0,I.jsx)(`span`,{className:`text-gray-500`,children:`(unknown)`})},X=e=>{let t=new Intl.DateTimeFormat(`en-US`,{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`}).formatToParts(e).reduce((e,{type:t,value:n})=>({...e,[t]:n}),{});return`${t.year}-${t.month}-${t.day} ${t.hour}:${t.minute}:${t.second}`},Z=200;function Q(){let{userId:e}=o(),{updateRoute:t}=b(),[r,i]=(0,F.useState)([]),[a,c]=(0,F.useState)([`label`]),{data:l,fetchNextPage:u,isFetchingNextPage:d}=B({searchParams:{include:`actor,resource`,limit:Z.toString(),filter:[r.length&&`event:-[${r.join(`,`)}]`,a.length&&`resource_type:-[${a.join(`,`)}]`,e&&`actor_id:'${e}'`].filter(Boolean).join(`+`)},getNextPageParams:(e,t)=>({...t,filter:[t.filter,e.actions.length&&`created_at:<'${X(new Date(e.actions[e.actions.length-1].created_at))}'`].join(`+`)}),placeholderData:n}),f=(0,F.useCallback)(()=>{l?.isEnd||u()},[l?.isEnd,u]),m=(e,t,n)=>{e(e=>n?e.concat(t):e.filter(e=>e!==t))},h=r.length>0||a.length>0||e;return(0,I.jsx)(y,{cancelLabel:``,okLabel:`Close`,scrolling:!0,size:`md`,stickyFooter:!0,stickyHeader:!0,testId:`history-modal`,title:`History`,topRightContent:(0,I.jsx)(J,{excludedEvents:r,excludedResources:a,toggleEventType:(e,t)=>m(i,e,!t),toggleResourceType:(e,t)=>m(c,e,!t),userId:e}),onClose:()=>{t(`history`)},onOk:()=>{t(`history`)},children:(0,I.jsx)(`div`,{className:`relative mt-6`,children:(0,I.jsxs)(C,{children:[l?.actions?l.actions.length>0?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(L,{offset:250,onTrigger:f}),l.actions.map(e=>!e.skip&&(0,I.jsx)(S,{children:(0,I.jsxs)(x,{className:`flex items-center gap-3 py-3`,children:[(0,I.jsx)(K,{action:e}),(0,I.jsxs)(`div`,{className:`min-w-0 grow`,children:[(0,I.jsxs)(`div`,{children:[H(e),W(e)?``:`: `,!W(e)&&(0,I.jsx)(Y,{action:e}),e.count?(0,I.jsxs)(I.Fragment,{children:[` `,s(e.count),` times`]}):null,(0,I.jsxs)(`span`,{children:[` — by `,e.actor?.name||e.actor?.slug]})]}),(0,I.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:[new Date(e.created_at).toLocaleDateString(`default`,{year:`numeric`,month:`short`,day:`2-digit`}),new Date(e.created_at).toLocaleTimeString(`default`,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})].join(` | `)})]})]})},e.id)),d&&(0,I.jsx)(`div`,{className:`flex items-center justify-center p-5`,children:(0,I.jsx)(j,{size:`md`})})]}):(0,I.jsxs)(O,{children:[(0,I.jsx)(k,{children:(0,I.jsx)(p,{})}),h?`No entries match your current filters.`:`No history entries found.`]}):l===void 0?(0,I.jsx)(`div`,{className:`flex items-center justify-center px-5 pt-12 pb-10`,children:(0,I.jsx)(`div`,{className:`flex h-64 items-center justify-center`,children:(0,I.jsx)(j,{size:`lg`})})}):(0,I.jsx)(O,{children:`No entries found.`}),l?.isEnd&&l.actions.length>0&&(0,I.jsx)(`div`,{className:`border-t border-border pt-2 text-sm text-muted-foreground`,children:`End of history log`})]})})})}export{Q as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{s as e,t}from"./react-BXwhMTuc.js";import{C as n,D as r,E as i,S as a,T as o,a as s,b as c,c as l,d as u,f as d,g as f,h as p,i as m,l as h,m as g,o as _,p as v,r as y,s as b,u as x,v as S,w as C,x as w,y as T}from"./framework-provider-DB-svAju.js";import{t as ee}from"./jsx-runtime-BlNNh7jY.js";import{n as E}from"./dist-DziNzWI2.js";var te=class extends r{constructor(e,t){super(),this.options=t,this.#e=e,this.#s=null,this.#o=v(),this.bindMethods(),this.setOptions(t)}#e;#t=void 0;#n=void 0;#r=void 0;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;#m=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),D(this.#t,this.options)?this.#h():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return O(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return O(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#b(),this.#x(),this.#t.removeObserver(this)}setOptions(e){let t=this.options,n=this.#t;if(this.options=this.#e.defaultQueryOptions(e),this.options.enabled!==void 0&&typeof this.options.enabled!=`boolean`&&typeof this.options.enabled!=`function`&&typeof c(this.options.enabled,this.#t)!=`boolean`)throw Error(`Expected enabled to be a boolean or a callback that returns a boolean`);this.#S(),this.#t.setOptions(this.options),t._defaulted&&!a(this.options,t)&&this.#e.getQueryCache().notify({type:`observerOptionsUpdated`,query:this.#t,observer:this});let r=this.hasListeners();r&&k(this.#t,n,this.options,t)&&this.#h(),this.updateResult(),r&&(this.#t!==n||c(this.options.enabled,this.#t)!==c(t.enabled,this.#t)||w(this.options.staleTime,this.#t)!==w(t.staleTime,this.#t))&&this.#g();let i=this.#_();r&&(this.#t!==n||c(this.options.enabled,this.#t)!==c(t.enabled,this.#t)||i!==this.#p)&&this.#v(i)}getOptimisticResult(e){let t=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(t,e);return re(this,n)&&(this.#r=n,this.#a=this.options,this.#i=this.#t.state),n}getCurrentResult(){return this.#r}trackResult(e,t){return new Proxy(e,{get:(e,n)=>(this.trackProp(n),t?.(n),n===`promise`&&(this.trackProp(`data`),!this.options.experimental_prefetchInRender&&this.#o.status===`pending`&&this.#o.reject(Error(`experimental_prefetchInRender feature flag is not enabled`))),Reflect.get(e,n))})}trackProp(e){this.#m.add(e)}getCurrentQuery(){return this.#t}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),n=this.#e.getQueryCache().build(this.#e,t);return n.fetch().then(()=>this.createResult(n,t))}fetch(e){return this.#h({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#r))}#h(e){this.#S();let t=this.#t.fetch(this.options,e);return e?.throwOnError||(t=t.catch(S)),t}#g(){this.#b();let e=w(this.options.staleTime,this.#t);if(g.isServer()||this.#r.isStale||!f(e))return;let t=C(this.#r.dataUpdatedAt,e)+1;this.#d=o.setTimeout(()=>{this.#r.isStale||this.updateResult()},t)}#_(){return(typeof this.options.refetchInterval==`function`?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#v(e){this.#x(),this.#p=e,!(g.isServer()||c(this.options.enabled,this.#t)===!1||!f(this.#p)||this.#p===0)&&(this.#f=o.setInterval(()=>{(this.options.refetchIntervalInBackground||i.isFocused())&&this.#h()},this.#p))}#y(){this.#g(),this.#v(this.#_())}#b(){this.#d!==void 0&&(o.clearTimeout(this.#d),this.#d=void 0)}#x(){this.#f!==void 0&&(o.clearInterval(this.#f),this.#f=void 0)}createResult(e,t){let n=this.#t,r=this.options,i=this.#r,a=this.#i,o=this.#a,s=e===n?this.#n:e.state,{state:l}=e,u={...l},d=!1,f;if(t._optimisticResults){let i=this.hasListeners(),a=!i&&D(e,t),o=i&&k(e,n,t,r);(a||o)&&(u={...u,...h(l.data,e.options)}),t._optimisticResults===`isRestoring`&&(u.fetchStatus=`idle`)}let{error:p,errorUpdatedAt:m,status:g}=u;f=u.data;let _=!1;if(t.placeholderData!==void 0&&f===void 0&&g===`pending`){let e;i?.isPlaceholderData&&t.placeholderData===o?.placeholderData?(e=i.data,_=!0):e=typeof t.placeholderData==`function`?t.placeholderData(this.#u?.state.data,this.#u):t.placeholderData,e!==void 0&&(g=`success`,f=T(i?.data,e,t),d=!0)}if(t.select&&f!==void 0&&!_)if(i&&f===a?.data&&t.select===this.#c)f=this.#l;else try{this.#c=t.select,f=t.select(f),f=T(i?.data,f,t),this.#l=f,this.#s=null}catch(e){this.#s=e}this.#s&&(p=this.#s,f=this.#l,m=Date.now(),g=`error`);let y=u.fetchStatus===`fetching`,b=g===`pending`,x=g===`error`,S=b&&y,C=f!==void 0,w={status:g,fetchStatus:u.fetchStatus,isPending:b,isSuccess:g===`success`,isError:x,isInitialLoading:S,isLoading:S,data:f,dataUpdatedAt:u.dataUpdatedAt,error:p,errorUpdatedAt:m,failureCount:u.fetchFailureCount,failureReason:u.fetchFailureReason,errorUpdateCount:u.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:u.dataUpdateCount>s.dataUpdateCount||u.errorUpdateCount>s.errorUpdateCount,isFetching:y,isRefetching:y&&!b,isLoadingError:x&&!C,isPaused:u.fetchStatus===`paused`,isPlaceholderData:d,isRefetchError:x&&C,isStale:A(e,t),refetch:this.refetch,promise:this.#o,isEnabled:c(t.enabled,e)!==!1};if(this.options.experimental_prefetchInRender){let t=w.data!==void 0,r=w.status===`error`&&!t,i=e=>{r?e.reject(w.error):t&&e.resolve(w.data)},a=()=>{let e=this.#o=w.promise=v();i(e)},o=this.#o;switch(o.status){case`pending`:e.queryHash===n.queryHash&&i(o);break;case`fulfilled`:(r||w.data!==o.value)&&a();break;case`rejected`:(!r||w.error!==o.reason)&&a();break}}return w}updateResult(){let e=this.#r,t=this.createResult(this.#t,this.options);this.#i=this.#t.state,this.#a=this.options,this.#i.data!==void 0&&(this.#u=this.#t),!a(t,e)&&(this.#r=t,this.#C({listeners:(()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,n=typeof t==`function`?t():t;if(n===`all`||!n&&!this.#m.size)return!0;let r=new Set(n??this.#m);return this.options.throwOnError&&r.add(`error`),Object.keys(this.#r).some(t=>{let n=t;return this.#r[n]!==e[n]&&r.has(n)})})()}))}#S(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#t)return;let t=this.#t;this.#t=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}#C(e){d.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#r)}),this.#e.getQueryCache().notify({query:this.#t,type:`observerResultsUpdated`})})}};function ne(e,t){return c(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status===`error`&&c(t.retryOnMount,e)===!1)}function D(e,t){return ne(e,t)||e.state.data!==void 0&&O(e,t,t.refetchOnMount)}function O(e,t,n){if(c(t.enabled,e)!==!1&&w(t.staleTime,e)!==`static`){let r=typeof n==`function`?n(e):n;return r===`always`||r!==!1&&A(e,t)}return!1}function k(e,t,n,r){return(e!==t||c(r.enabled,e)===!1)&&(!n.suspense||e.state.status!==`error`)&&A(e,n)}function A(e,t){return c(t.enabled,e)!==!1&&e.isStaleByTime(w(t.staleTime,e))}function re(e,t){return!a(e.getCurrentResult(),t)}var ie=class extends te{constructor(e,t){super(e,t)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(e){e._type=`infinite`,super.setOptions(e)}getOptimisticResult(e){return e._type=`infinite`,super.getOptimisticResult(e)}fetchNextPage(e){return this.fetch({...e,meta:{fetchMore:{direction:`forward`}}})}fetchPreviousPage(e){return this.fetch({...e,meta:{fetchMore:{direction:`backward`}}})}createResult(e,t){let{state:n}=e,r=super.createResult(e,t),{isFetching:i,isRefetching:a,isError:o,isRefetchError:s}=r,c=n.fetchMeta?.fetchMore?.direction,l=o&&c===`forward`,d=i&&c===`forward`,f=o&&c===`backward`,p=i&&c===`backward`;return{...r,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:x(t,n.data),hasPreviousPage:u(t,n.data),isFetchNextPageError:l,isFetchingNextPage:d,isFetchPreviousPageError:f,isFetchingPreviousPage:p,isRefetchError:s&&!l&&!f,isRefetching:a&&!d&&!p}}},ae=class extends r{#e;#t=void 0;#n;#r;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#i()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),a(this.options,t)||this.#e.getMutationCache().notify({type:`observerOptionsUpdated`,mutation:this.#n,observer:this}),t?.mutationKey&&this.options.mutationKey&&p(t.mutationKey)!==p(this.options.mutationKey)?this.reset():this.#n?.state.status===`pending`&&this.#n.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#n?.removeObserver(this)}onMutationUpdate(e){this.#i(),this.#a(e)}getCurrentResult(){return this.#t}reset(){this.#n?.removeObserver(this),this.#n=void 0,this.#i(),this.#a()}mutate(e,t){return this.#r=t,this.#n?.removeObserver(this),this.#n=this.#e.getMutationCache().build(this.#e,this.options),this.#n.addObserver(this),this.#n.execute(e)}#i(){let e=this.#n?.state??l();this.#t={...e,isPending:e.status===`pending`,isSuccess:e.status===`success`,isError:e.status===`error`,isIdle:e.status===`idle`,mutate:this.mutate,reset:this.reset}}#a(e){d.batch(()=>{if(this.#r&&this.hasListeners()){let t=this.#t.variables,n=this.#t.context,r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type===`success`){try{this.#r.onSuccess?.(e.data,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(e.data,null,t,n,r)}catch(e){Promise.reject(e)}}else if(e?.type===`error`){try{this.#r.onError?.(e.error,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(void 0,e.error,t,n,r)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}};ee();var j=e(t(),1),oe=j.createContext(!1),se=()=>j.useContext(oe);oe.Provider;function ce(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var le=j.createContext(ce()),ue=()=>j.useContext(le),de=(e,t,r)=>{let i=r?.state.error&&typeof e.throwOnError==`function`?n(e.throwOnError,[r.state.error,r]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||i)&&(t.isReset()||(e.retryOnMount=!1))},fe=e=>{j.useEffect(()=>{e.clearReset()},[e])},pe=({result:e,errorResetBoundary:t,throwOnError:r,query:i,suspense:a})=>e.isError&&!t.isReset()&&!e.isFetching&&i&&(a&&e.data===void 0||n(r,[e.error,i])),me=e=>{if(e.suspense){let t=1e3,n=e=>e===`static`?e:Math.max(e??t,t),r=e.staleTime;e.staleTime=typeof r==`function`?(...e)=>n(r(...e)):n(r),typeof e.gcTime==`number`&&(e.gcTime=Math.max(e.gcTime,t))}},he=(e,t)=>e.isLoading&&e.isFetching&&!t,ge=(e,t)=>e?.suspense&&t.isPending,M=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function N(e,t,n){let r=se(),i=ue(),a=b(n),o=a.defaultQueryOptions(e);a.getDefaultOptions().queries?._experimental_beforeQuery?.(o);let s=a.getQueryCache().get(o.queryHash),c=e.subscribed!==!1;o._optimisticResults=r?`isRestoring`:c?`optimistic`:void 0,me(o),de(o,i,s),fe(i);let l=!a.getQueryCache().get(o.queryHash),[u]=j.useState(()=>new t(a,o)),f=u.getOptimisticResult(o),p=!r&&c;if(j.useSyncExternalStore(j.useCallback(e=>{let t=p?u.subscribe(d.batchCalls(e)):S;return u.updateResult(),t},[u,p]),()=>u.getCurrentResult(),()=>u.getCurrentResult()),j.useEffect(()=>{u.setOptions(o)},[o,u]),ge(o,f))throw M(o,u,i);if(pe({result:f,errorResetBoundary:i,throwOnError:o.throwOnError,query:s,suspense:o.suspense}))throw f.error;return a.getDefaultOptions().queries?._experimental_afterQuery?.(o,f),o.experimental_prefetchInRender&&!g.isServer()&&he(f,r)&&(l?M(o,u,i):s?.promise)?.catch(S).finally(()=>{u.updateResult()}),o.notifyOnChangeProps?f:u.trackResult(f)}function P(e,t){return N(e,te,t)}function F(e,t){let r=b(t),[i]=j.useState(()=>new ae(r,e));j.useEffect(()=>{i.setOptions(e)},[i,e]);let a=j.useSyncExternalStore(j.useCallback(e=>i.subscribe(d.batchCalls(e)),[i]),()=>i.getCurrentResult(),()=>i.getCurrentResult()),o=j.useCallback((e,t)=>{i.mutate(e,t).catch(S)},[i]);if(a.error&&n(i.options.throwOnError,[a.error]))throw a.error;return{...a,mutate:o,mutateAsync:a.mutate}}function I(e,t){return N(e,ie,t)}var L=class extends Error{response;data;constructor(e,t,n,r){!n&&e&&e.url.includes(`/ghost/api/admin/`)&&(n=`Something went wrong while loading ${e.url.replace(/.+\/ghost\/api\/admin\//,``).replace(/\W.*/,``).replace(`_`,` `)}, please try again.`),super(n||`Something went wrong, please try again.`,r),this.response=e,this.data=t}},R=class extends L{data;constructor(e,t,n,r){super(e,t,n,r),this.data=t}},_e=class extends R{constructor(e,t,n){super(e,t,`API server is running a newer version of Ghost, please upgrade.`,n)}},z=class extends L{constructor(e){super(void 0,void 0,`Something went wrong, please try again.`,e)}},B=class extends L{constructor(e){super(void 0,void 0,`Request timed out, please try again.`,e)}},V=class extends L{constructor(e,t,n){super(e,t,`Request is larger than the maximum file size the server allows`,n)}},H=class extends L{constructor(e,t,n){super(e,t,`Request contains an unknown or unsupported file type.`,n)}},U=class extends L{constructor(e,t,n){super(e,t,`Ghost is currently undergoing maintenance, please wait a moment then retry.`,n)}},W=class extends L{constructor(e,t,n){super(e,t,`You are not authorised to make this request.`,n)}},G=class extends W{},ve=class extends R{constructor(e,t,n){super(e,t,`Theme is not compatible or contains errors.`,n)}},K=class extends R{errorDetails;constructor(e,t,n){e instanceof Response?super(e,t,`A hosting plan limit was reached or exceeded.`,n):(super(void 0,void 0,e.message||`A hosting plan limit was reached or exceeded.`),this.errorDetails=e.errorDetails)}},ye=class extends R{constructor(e,t,n){super(e,t,`Please verify your email settings`,n)}},q=class extends R{constructor(e,t,n){super(e,t,t.errors[0].message,n)}};function J(e,t){let n=e instanceof R?e.data?.errors?.[0]:void 0;return n?.context||n?.message||t}var be=class extends Error{constructor(e){super(e)}};function xe(e){E.dismiss(),E.error(e)}var Y=()=>{let{sentryDSN:e}=y();return(0,j.useCallback)((t,{withToast:n=!0}={})=>{console.error(t),e&&!(t instanceof G)&&_(e=>{t instanceof L&&t.response&&(e.setTag(`api_url`,t.response.url),e.setTag(`api_response_status`,t.response.status)),m(t)}),n&&(t instanceof L&&t.response?.status===418||t instanceof G?E.dismiss():t instanceof L?xe(J(t,t.message)):xe(`Something went wrong, please try again.`))},[e])};function X(){let e=window.location.pathname,t=e.substr(0,e.search(`/ghost/`));return{subdir:t,adminRoot:`${t}/ghost/`,assetRoot:`${t}/ghost/assets/`,apiRoot:`${t}/ghost/api/admin`}}function Se(e){let t=document.getElementById(`iframeDownload`);t||(t=document.createElement(`iframe`),t.id=`iframeDownload`,t.style.display=`none`,document.body.append(t)),t.setAttribute(`src`,e)}function Ce(e){Se(`${X().apiRoot}${e}`)}function we(e){if(!e)return;let t=e.match(/filename\*=([^;]+)/i);if(t?.[1]){let e=t[1].trim(),n=e.indexOf(`'`),r=n===-1?-1:e.indexOf(`'`,n+1),i=r===-1?e:e.slice(r+1);try{return decodeURIComponent(i.replace(/^["']|["']$/g,``))}catch{}}let n=e.match(/filename="([^"]*)"/i);if(n?.[1])return n[1].trim();let r=e.match(/filename=([^;]+)/i);if(r?.[1])return r[1].trim()}async function Te(e,t,{signal:n}={}){let r=await fetch(e,{method:`GET`,signal:n});if(!r.ok)throw Error(`Download failed: ${r.status} ${r.statusText}`);let i=we(r.headers.get(`content-disposition`))??t??`download`,a=await r.blob(),o=window.URL.createObjectURL(a),s=document.createElement(`a`);s.href=o,s.download=i,document.body.appendChild(s),s.click(),s.remove(),window.URL.revokeObjectURL(o)}async function Ee(e,t,n={}){return Te(`${X().apiRoot}${e}`,t,n)}var De=e=>!!e&&(e.startsWith(`text/`)||e.includes(`application/yaml`)),Oe=async(e,{responseType:t}={})=>{if(e.status===0)throw new z;if(e.status===503)throw new U(e,await e.text());if(e.status===415)throw new H(e,await e.text());if(e.status===413)throw new V(e,await e.text());if(e.status===401)throw e.headers.get(`content-type`)?.includes(`json`)?new W(e,await e.json()):new W(e,await e.text());if(!e.ok){if(!e.headers.get(`content-type`)?.includes(`json`))throw new L(e,await e.text());let t=await e.json();throw e.status===403&&t.errors?.[0]?.message===`Authorization failed`?new W(e,t):t.errors?.[0]?.type===`VersionMismatchError`?new _e(e,t):t.errors?.[0]?.type===`ValidationError`||t.errors?.[0]?.type===`NoPermissionError`?new q(e,t):t.errors?.[0]?.type===`ThemeValidationError`?new ve(e,t):t.errors?.[0]?.type===`HostLimitError`?new K(e,t):t.errors?.[0]?.type===`EmailError`?new ye(e,t):new R(e,t)}else if(e.status===204)return;else if(t===`blob`)return await e.blob();else if(t===`arraybuffer`)return await e.arrayBuffer();else if(De(e.headers.get(`content-type`)))return await e.text();else return await e.json()},ke=e=>{let t=new Headers,n=e.getAllResponseHeaders()?.split(`\r
|
|
2
|
+
`)||[];for(let e of n){let n=e.indexOf(`:`);if(n===-1)continue;let r=e.slice(0,n),i=e.slice(n+1).trim();t.append(r,i)}return t},Ae=e=>new Response(e.response,{status:e.status,statusText:e.statusText,headers:ke(e)}),je=/\/ghost\/api\//,Me=/\/ghost\/api\/admin\/session([/?#]|$)/,Ne=/^#\/(?:reset|setup|signin|signup)(?:[/?]|$)/,Pe=!1,Fe=e=>window.location.pathname===e&&(!window.location.hash||window.location.hash===`#/`||Ne.test(window.location.hash)),Ie=e=>{let t=e.toString();return je.test(t)&&!Me.test(t)},Le=()=>{let{adminRoot:e}=X();!Pe&&!Fe(e)&&(Pe=!0,window.location.replace(e))},Re=(e,t,{method:n,headers:r,credentials:i,body:a,signal:o})=>new Promise((s,c)=>{let l=()=>{c(new DOMException(`Aborted`,`AbortError`))};if(o.aborted){l();return}let u=new XMLHttpRequest;switch(u.open(n,t.toString(),!0),i){case`omit`:throw Error(`"omit" credentials cannot be represented with legacy XMLHttpRequest. Consider "same-origin".`);case`same-origin`:u.withCredentials=!1;break;case`include`:u.withCredentials=!0;break;default:throw Error(i)}u.responseType=`arraybuffer`;for(let[e,t]of Object.entries(r))u.setRequestHeader(e,t);u.upload.onprogress=t=>{t.lengthComputable&&e(t.loaded/t.total*100)},u.onload=()=>{s(Ae(u))},u.onerror=()=>{c(TypeError(`Network request failed`))},u.onabort=l;let d=()=>u.abort();o.addEventListener(`abort`,d),u.onloadend=()=>{o.removeEventListener(`abort`,d)},u.send(a)}),Z=()=>{let{ghostVersion:e,sentryDSN:t}=y();return(0,j.useCallback)(async(n,{method:r=`GET`,headers:i={},body:a,credentials:o=`include`,timeout:c,retry:l=!0,responseType:u,sessionExpiryRedirect:d=!0,onUploadProgress:f}={})=>{let p=new AbortController,m={method:r,headers:{"app-pragma":`no-cache`,...e?{"x-ghost-version":e}:{},...typeof a==`string`?{"content-type":`application/json`}:{},...i},credentials:o,mode:`cors`,body:a,signal:p.signal},h=0,g=0,_=Date.now(),v=[500,1e3],y=[z,U,TypeError],b=(e,t)=>{let r={errorName:e?.name,attempts:h,totalSeconds:g/1e3,endpoint:n.toString()};return n.toString().includes(`/ghost/api/`)&&(r.server=t?.headers.get(`server`)),r},x=f?Re.bind(null,f):fetch,S=c?setTimeout(()=>p.abort(),c):void 0;try{for(;h===0||l;)try{return await Oe(await x(n,m),{responseType:u})}catch(e){if(g=Date.now()-_,l&&y.some(t=>e instanceof t)&&g<=15e3){await new Promise(e=>{setTimeout(e,v[h]||v[v.length-1])}),h+=1;continue}if(h!==0&&t&&s(`Request failed after multiple attempts`,{extra:b()}),e&&typeof e==`object`&&`name`in e&&e.name===`AbortError`)throw new B;if(e instanceof W&&Ie(n))throw d&&Le(),new G(e.response,e.data,{cause:e});let r=e;throw e instanceof L||(r=new z({cause:e})),r}}finally{clearTimeout(S)}},[e,t])},{apiRoot:ze}=X(),Q=(e,t={})=>{let n=new URL(`${ze}${e}`,window.location.origin);return n.search=new URLSearchParams(t).toString(),n.toString()},Be=`UsersResponseType`,Ve=Q(`/users/me/`,{include:`roles`}),He=[Be,Ve],Ue=({requestOptions:e}={})=>{let t=Z(),n=Y(),r=P({queryKey:He,queryFn:()=>t(Ve,e),select:e=>e.users[0]});return(0,j.useEffect)(()=>{r.error&&n(r.error)},[n,r.error]),r},We=(e,t)=>{let{data:n}=Ue(t);if(!e||e.length===0)return!0;let r=n?.roles.map(e=>e.name);return r?e.some(e=>r.includes(e)):!1},$=e=>({searchParams:t,requestOptions:n,...r}={})=>{let i=Q(e.path,t||e.defaultSearchParams),a=Z(),o=Y(),s=We(e.permissions,{requestOptions:n}),c=P({...r,enabled:s&&(r.enabled??!0),queryKey:[e.dataType,i],queryFn:async()=>{if(e.parseResponse){let t=await a(i,{headers:e.headers,...n});return e.parseResponse(t)}return a(i,{headers:e.headers,...n})}}),l=(0,j.useMemo)(()=>c.data&&e.returnData?e.returnData(c.data):c.data,[c.data]);return(0,j.useEffect)(()=>{c.error&&r.defaultErrorHandler!==!1&&o(c.error)},[o,c.error,r.defaultErrorHandler]),{...c,data:l}},Ge=e=>({searchParams:t,requestOptions:n,getNextPageParams:r,...i}={})=>{let a=Z(),o=Y(),s=We(e.permissions,{requestOptions:n}),c=r||e.defaultNextPageParams||(()=>({})),l=I({...i,enabled:s&&(i.enabled??!0),queryKey:[e.dataType,Q(e.path,t||e.defaultSearchParams)],queryFn:async({pageParam:r})=>{let i=Q(e.path,r||t||e.defaultSearchParams);if(e.parseResponse){let t=await a(i,{headers:e.headers,...n});return e.parseResponse(t)}return a(i,{headers:e.headers,...n})},initialPageParam:void 0,getNextPageParam:n=>c(n,t||e.defaultSearchParams||{})}),u=(0,j.useMemo)(()=>l.data&&e.returnData(l.data),[l.data]);return(0,j.useEffect)(()=>{l.error&&i.defaultErrorHandler!==!1&&o(l.error)},[o,l.error,i.defaultErrorHandler]),{...l,data:u}},Ke=e=>(t,{searchParams:n,...r}={})=>$({...e,path:e.path(t)})({searchParams:n||e.defaultSearchParams,...r}),qe=({fetchApi:e,path:t,payload:n,searchParams:r,options:i})=>{let{defaultSearchParams:a,body:o,requestOptions:s,...c}=i,l=Q(t,r||a),u=n&&o?.(n),d;return u instanceof FormData?d=u:u&&(d=JSON.stringify(u)),e(l,{body:d,...c,...n===void 0?{}:s?.(n)})},Je=({path:e,searchParams:t,defaultSearchParams:n,updateQueries:r,invalidateQueries:i,...a})=>()=>{let o=Z(),s=b(),{onUpdate:c,onInvalidate:l,onDelete:u}=y();return F({mutationFn:r=>qe({fetchApi:o,path:e(r),payload:r,searchParams:t?.(r)||n,options:a}),onSuccess:(0,j.useCallback)((e,t)=>{if(i&&`dataType`in i){let e=Array.isArray(i.dataType)?i.dataType:[i.dataType];for(let t of e)s.invalidateQueries({queryKey:[t]}),l(t)}else i&&s.invalidateQueries(i.filters,i.options);if(r){if(s.setQueriesData({queryKey:[r.dataType]},n=>r.update(e,n,t)),r.emberUpdateType===`createOrUpdate`)c(r.dataType,e);else if(r.emberUpdateType===`delete`){if(typeof t!=`string`)throw Error(`Expected delete mutation to have a string (ID) payload. Either change the payload or update the createMutation hook`);u(r.dataType,t)}}},[l,c,u,s])})};export{W as C,I as D,J as E,F as O,B as S,q as T,R as _,He as a,z as b,Q as c,Ce as d,X as f,K as g,be as h,Ke as i,P as k,Z as l,L as m,Je as n,Ue as o,Y as p,$ as r,Be as s,Ge as t,Ee as u,U as v,H as w,G as x,V as y};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as e,t}from"./react-BXwhMTuc.js";import{i as n}from"./framework-provider-DB-svAju.js";import{t as r}from"./jsx-runtime-BlNNh7jY.js";import{w as i}from"./dist-BXHrDV19.js";import{t as a}from"./stack-BURz77VS.js";import{s as o}from"./shade-app-CcS3f8MZ-D5BnfHck.js";import{t as s}from"./input-surface-wSO5CRy5.js";import{o as c,r as l}from"./field-p7KnP98B.js";import{n as u,t as d}from"./koenig-loader-B1XPPY5C.js";var f=e(t(),1),p=r(),m=({editor:e,onBlur:t,placeholder:r,nodes:i,emojiPicker:a=!0,darkMode:s=!1,singleParagraph:c=!1,children:l,initialEditorState:u,onChange:d,fileUploader:m,cardConfig:h,registerAPI:g})=>{let _=(0,f.useCallback)(e=>{try{n({error:e,tags:{lexical:!0},contexts:{koenig:{version:window[`@tryghost/koenig-lexical`]?.version}}})}catch(e){console.error(e)}console.error(e)},[]),{setFocusState:v}=o(),y=()=>{t&&t(),v(!1)},b=()=>{v(!0)},x=(0,f.useMemo)(()=>new Proxy({},{get:(t,n)=>e.read()[n]}),[e]),S={DEFAULT_NODES:x.DEFAULT_TRANSFORMERS,BASIC_NODES:x.BASIC_TRANSFORMERS,MINIMAL_NODES:x.MINIMAL_TRANSFORMERS,EMAIL_NODES:x.EMAIL_TRANSFORMERS,EMAIL_EDITOR_NODES:x.EMAIL_TRANSFORMERS},C=i||`DEFAULT_NODES`;return(0,p.jsx)(x.KoenigComposer,{cardConfig:h,darkMode:s,fileUploader:m,initialEditorState:u,nodes:x[C],onError:_,children:(0,p.jsxs)(x.KoenigComposableEditor,{className:`koenig-lexical koenig-lexical-editor-input`,isSnippetsEnabled:!1,markdownTransformers:S[C],placeholderClassName:`koenig-lexical-editor-input-placeholder line-clamp-1`,placeholderText:r,registerAPI:g,singleParagraph:c,onBlur:y,onChange:d,onFocus:b,children:[l(x),a?(0,p.jsx)(x.EmojiPickerPlugin,{}):null]})})},h=({className:e,children:t,initialEditorState:n,onChange:r,inheritFontStyles:i=!0,loadingFallback:a,...s})=>{let{darkMode:c}=o(),l=(0,f.useMemo)(()=>d(),[]);return(0,p.jsx)(`div`,{className:e||`w-full`,children:(0,p.jsx)(`div`,{className:`koenig-react-editor w-full ${i?`[&_*]:font-inherit! [&_*]:[font-size:inherit]!`:``}`,children:(0,p.jsx)(u,{name:`editor`,children:(0,p.jsx)(f.Suspense,{fallback:a||(0,p.jsx)(`p`,{className:`koenig-react-editor-loading`,children:`Loading editor...`}),children:(0,p.jsx)(m,{...s,darkMode:c,editor:l,initialEditorState:n,onChange:r,children:t})})})})})},g=({value:e,onChange:t,singleParagraph:n=!0,...r})=>{let i=(0,f.useCallback)(n=>{let r=new DOMParser().parseFromString(n,`text/html`);r.querySelectorAll(`*`).forEach(e=>{e.style.removeProperty(`white-space`),e.getAttribute(`style`)||e.removeAttribute(`style`)}),r.body.innerHTML!==e&&t?.(r.body.innerHTML)},[e,t]);return(0,p.jsx)(h,{...r,singleParagraph:n,children:t=>(0,p.jsx)(t.HtmlOutputPlugin,{html:e,setHtml:i})})},_=({title:e,hideTitle:t,error:n,hint:r,value:o,clearBg:u=!1,className:d=``,containerClassName:f=``,hintClassName:m=``,unstyled:h=!1,..._})=>{let v=h?``:i(s(`within`),`flex min-h-8 items-center py-1.5 md:min-h-[var(--control-height)]`,u?`bg-transparent`:`px-3`,n&&`border-destructive`,e&&!t&&!u&&`mt-2`,d);return(0,p.jsxs)(a,{className:f,gap:`none`,children:[e&&(0,p.jsx)(c,{className:t?`sr-only`:void 0,children:e}),(0,p.jsx)(`div`,{className:v,children:(0,p.jsx)(g,{..._,value:o})}),r&&(0,p.jsx)(l,{className:i(`last:mt-2`,n&&`text-destructive`,m),children:r})]})};export{_ as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as e,t}from"./react-BXwhMTuc.js";import{i as n}from"./framework-provider-DB-svAju.js";import{t as r}from"./jsx-runtime-BlNNh7jY.js";import{t as i}from"./debounce-pscB46sW.js";var a=e(t(),1),o=r(),s=({generateContent:e,updateContent:t,className:r,height:s,width:c,parentClassName:l,testId:u,addDelay:d=!1})=>{let[f,p]=(0,a.useState)(0),m=[(0,a.useRef)(null),(0,a.useRef)(null)],[h,g]=(0,a.useState)(0);return(0,a.useEffect)(()=>{let t=+(f===0),n=m[t].current;if(n){e(n);let r=()=>{d?setTimeout(()=>{p(t)},500):p(t)};return n.addEventListener(`load`,r),()=>{n.removeEventListener(`load`,r)}}},[e]),(0,a.useEffect)(()=>{let e=m[f].current,t=i(()=>{g(e?.contentWindow?.scrollY||0)},250);return e?.contentWindow?.addEventListener(`scroll`,t),()=>{e?.contentWindow?.removeEventListener(`scroll`,t)}},[f,m]),(0,a.useEffect)(()=>{let e=m[f].current;if(e)try{e.contentWindow?.scrollTo(0,h)}catch(e){n(e)}},[h,f,m]),(0,a.useEffect)(()=>{t&&m.forEach(({current:e})=>{e&&t(e)})},[t]),(0,o.jsxs)(`div`,{className:l,"data-testid":u,children:[(0,o.jsx)(`iframe`,{ref:m[0],className:`${r} ${f===0?`z-20 opacity-100`:`z-10 opacity-0`}`,"data-visible":f===0,frameBorder:`0`,height:s,title:`Buffered Preview 1`,width:c}),(0,o.jsx)(`iframe`,{ref:m[1],className:`${r} ${f===1?`z-20 opacity-100`:`z-10 opacity-0`}`,"data-visible":f===1,frameBorder:`0`,height:s,title:`Buffered Preview 2`,width:c})]})};export{s as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as e,t}from"./react-BXwhMTuc.js";import{n}from"./hooks-DYfTEQLk.js";import{t as r}from"./jsx-runtime-BlNNh7jY.js";import{l as i,o as a}from"./dist-BXHrDV19.js";import{t as o}from"./button-DvIh2Bq-.js";import{t as s}from"./dropzone-D61QVcEY.js";import{d as c,m as l,r as u}from"./schemas-BoYdB6YU.js";var d=e(t(),1),f=r(),p=d.forwardRef(({className:e,...t},n)=>(0,f.jsx)(`div`,{ref:n,className:i(`relative overflow-hidden rounded-md`,e),"data-slot":`image-upload`,...t}));p.displayName=`ImageUpload`;var m=d.forwardRef(({className:e,variant:t=`filled`,...n},r)=>(0,f.jsx)(s,{ref:r,className:i(`size-full text-foreground`,e),"data-slot":`image-upload-dropzone`,variant:t,...n}));m.displayName=`ImageUploadDropzone`;var h=a(`group relative flex size-full items-center justify-center overflow-hidden rounded-md bg-muted`,{variants:{background:{default:``,checkerboard:`[background-image:repeating-conic-gradient(var(--border-default)_0%_25%,var(--surface-elevated)_0%_50%)] [background-size:16px_16px]`}},defaultVariants:{background:`default`}}),g=d.forwardRef(({background:e,className:t,...n},r)=>(0,f.jsx)(`div`,{ref:r,className:i(h({background:e}),t),"data-slot":`image-upload-preview`,"data-testid":`image-upload-container`,...n}));g.displayName=`ImageUploadPreview`;var _=d.forwardRef(({alt:e=``,className:t,...n},r)=>(0,f.jsx)(`img`,{ref:r,alt:e,className:i(`size-full object-cover`,t),"data-slot":`image-upload-image`,...n}));_.displayName=`ImageUploadImage`;var v=d.forwardRef(({className:e,...t},n)=>(0,f.jsx)(`div`,{ref:n,className:i(`absolute top-2 right-2 flex gap-1 opacity-0 transition-opacity group-focus-within:opacity-100 group-hover:opacity-100 [@media(hover:none)]:opacity-100`,e),"data-slot":`image-upload-actions`,...t}));v.displayName=`ImageUploadActions`;var y=d.forwardRef(({className:e,size:t=`icon`,variant:n=`ghost`,...r},a)=>(0,f.jsx)(o,{ref:a,className:i(`size-8 bg-surface-inverse text-surface-inverse-foreground hover:bg-surface-inverse/90 hover:text-surface-inverse-foreground`,e),"data-slot":`image-upload-action`,size:t,variant:n,...r}));y.displayName=`ImageUploadAction`;var b=n({method:`POST`,path:()=>`/images/upload/`,body:({file:e})=>{let t=new FormData;return t.append(`file`,e),t.append(`purpose`,`image`),t},requestOptions:({sessionExpiryRedirect:e})=>({sessionExpiryRedirect:e})}),x=c({images:u(c({url:l().min(1)})).min(1)}),S=e=>x.parse(e).images[0].url;export{v as a,g as c,y as i,b as n,m as o,p as r,_ as s,S as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{i as e,s as t,t as n}from"./react-BXwhMTuc.js";import{t as r}from"./jsx-runtime-BlNNh7jY.js";import{h as i}from"./chunk-KS7C4IRE-DhOcHQOU.js";import{s as a}from"./router-provider-CU87qxXw.js";import{C as o}from"./shade-app-CcS3f8MZ-D5BnfHck.js";import{Nt as s,ft as c,t as l,un as u}from"./button-DvIh2Bq-.js";import{t as d}from"./skeleton-DwCva0-b.js";import{t as f}from"./empty-indicator-L4Ql5Db7.js";import{t as p}from"./use-navigate-with-base-path-88EQpw2k.js";import{At as m,Ct as h,Dn as g,Dt as _,En as v,Et as ee,Ft as y,It as b,Lt as x,Mt as S,Nt as C,Pt as te,Rt as ne,Tn as w,Tt as T,Un as E,Ut as D,Wt as re,Xn as ie,_r as ae,dr as oe,fr as se,hn as ce,hr as O,ht as le,jt as ue,kt as de,mr as fe,pt as k,rn as A,sn as pe,sr as j,ur as M,ut as me,vr as N,wn as P,wt as F,zt as I}from"./index-DDd-zhNL.js";import"./layout-DWnOMly4.js";import{t as L}from"./topic-filter-DVOe3D-b.js";import{i as he,n as ge,r as _e,t as ve}from"./use-reply-chain-data-DmD2yX5D.js";var R=t(n(),1),z=r(),B=[`1.5rem`,`1.6rem`,`1.7rem`,`1.8rem`,`2rem`],V={BACKGROUND_COLOR:`ghost-ap-background-color`,FONT_SIZE:`ghost-ap-font-size`,FONT_FAMILY:`ghost-ap-font-family`,FONT_STYLE:`ghost-ap-font-style`},H={SYSTEM:{id:`system`,color:`#fff`,background:`bg-white dark:bg-black`,button:`bg-white dark:bg-black`,border:`border-black/[8%] dark:border-gray-950`},SEPIA:{id:`sepia`,color:`#FCF8F1`,background:`bg-[#FCF8F1]`,button:`bg-[#FCF8F1] hover:bg-black/[3%] text-black hover:text-black`,border:`border-black/[8%]`},LIGHT:{id:`light`,color:`#fff`,background:`bg-white`,button:`hover:bg-black/[3%] text-black hover:text-black`,border:`border-black/[8%] dark:border-gray-950`},DARK:{id:`dark`,color:`#15171a`,background:`bg-black`,button:`text-white dark:bg-black dark:hover:bg-gray-900`,border:`border-black/[8%] dark:border-gray-950`}},ye=()=>{let[e,t]=(0,R.useState)(()=>localStorage.getItem(V.BACKGROUND_COLOR)?.toUpperCase()||`SYSTEM`),[n,r]=(0,R.useState)(()=>{let e=localStorage.getItem(V.FONT_SIZE);return e?parseInt(e):2}),[i,a]=(0,R.useState)(()=>localStorage.getItem(V.FONT_STYLE)||`sans`);return(0,R.useEffect)(()=>{localStorage.setItem(V.FONT_SIZE,n.toString())},[n]),(0,R.useEffect)(()=>{localStorage.setItem(V.FONT_STYLE,i)},[i]),{backgroundColor:e,currentFontSizeIndex:n,fontStyle:i,handleColorChange:e=>{t(e),localStorage.setItem(V.BACKGROUND_COLOR,H[e].id)},setFontStyle:a,increaseFontSize:()=>{r(e=>Math.min(e+1,B.length-1))},decreaseFontSize:()=>{r(e=>Math.max(e-1,0))},resetFontSize:()=>r(2),fontSize:B[n]}},be=({backgroundColor:e,currentFontSizeIndex:t,fontStyle:n,onColorChange:r,onFontStyleChange:i,onDecreaseFontSize:a,onIncreaseFontSize:o,onResetFontSize:s,onOpenChange:c})=>(0,z.jsx)(U,{backgroundColor:e,currentFontSizeIndex:t,fontStyle:n,isActiveColor:t=>e===t,isActiveFont:e=>n===e,onColorChange:r,onDecreaseFontSize:a,onFontStyleChange:i,onIncreaseFontSize:o,onOpenChange:c,onResetFontSize:s}),U=({backgroundColor:e,isActiveColor:t,isActiveFont:n,onColorChange:r,onFontStyleChange:i,currentFontSizeIndex:a,onDecreaseFontSize:u,onIncreaseFontSize:d,onResetFontSize:f,onOpenChange:p})=>(0,z.jsxs)(j,{modal:!1,onOpenChange:p,children:[(0,z.jsx)(oe,{asChild:!0,children:(0,z.jsx)(l,{"aria-label":`Reading options`,className:`size-9 rounded-full ${H[e].button}`,variant:`ghost`,children:(0,z.jsx)(o.Typography,{className:`size-[18px]!`})})}),(0,z.jsx)(M,{align:`end`,className:`w-[224px]`,onCloseAutoFocus:e=>e.preventDefault(),onOpenAutoFocus:e=>e.preventDefault(),children:(0,z.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-between gap-[6px]`,children:[(0,z.jsx)(l,{className:`h-7 flex-1 rounded-[6px] bg-gray-200 p-0 text-[1.1rem] text-black hover:bg-gray-300 dark:bg-gray-950 dark:text-white dark:hover:bg-gray-900 [&_svg]:size-[14px] ${t(`SYSTEM`)?`outline-2 outline-green`:``}`,variant:`secondary`,onClick:()=>r(`SYSTEM`),children:`Auto`}),(0,z.jsx)(l,{className:`h-7 flex-1 rounded-[6px] bg-[#ece6d9] p-0 hover:bg-[#ece6d9] ${t(`SEPIA`)?`outline-2 outline-green`:`border border-[#ece6d9]`}`,onClick:()=>r(`SEPIA`)}),(0,z.jsx)(l,{className:`h-7 flex-1 rounded-[6px] bg-white p-0 hover:bg-white ${t(`LIGHT`)?`outline-2 outline-green`:`border border-gray-200`}`,onClick:()=>r(`LIGHT`)}),(0,z.jsx)(l,{className:`h-7 flex-1 rounded-[6px] bg-black p-0 hover:bg-black dark:border dark:border-gray-950 ${t(`DARK`)?`outline-2 outline-green`:``}`,onClick:()=>r(`DARK`)})]}),(0,z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,z.jsxs)(l,{className:`flex h-auto w-full flex-col gap-1 rounded-[6px] bg-gray-200 text-black hover:bg-gray-300 dark:bg-gray-950 dark:text-white dark:hover:bg-gray-900 ${n(`sans`)&&`outline-2 outline-green`}`,variant:`secondary`,onClick:()=>i(`sans`),children:[(0,z.jsx)(`span`,{className:`text-[2rem] leading-none font-bold`,children:`Aa`}),(0,z.jsx)(`span`,{className:`text-[1.1rem]`,children:`System`})]}),(0,z.jsxs)(l,{className:`flex h-auto w-full flex-col gap-1 rounded-[6px] bg-gray-200 text-black hover:bg-gray-300 dark:bg-gray-950 dark:text-white dark:hover:bg-gray-900 ${n(`serif`)&&`outline-2 outline-green`}`,variant:`secondary`,onClick:()=>i(`serif`),children:[(0,z.jsx)(`span`,{className:`pt-1 font-serif text-[2rem] leading-none font-bold`,children:`Aa`}),(0,z.jsx)(`span`,{className:`font-serif text-[1.2rem]`,children:`Serif`})]})]}),(0,z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,z.jsx)(l,{"aria-label":`Decrease text size`,className:`h-8 w-full rounded-[6px] bg-gray-200 text-black hover:bg-gray-300 dark:bg-gray-950 dark:text-white dark:hover:bg-gray-900 [&_svg]:size-[14px]`,disabled:a===0,variant:`secondary`,onClick:u,children:(0,z.jsx)(s,{})}),(0,z.jsx)(l,{"aria-label":`Reset text size`,className:`h-8 w-full rounded-[6px] bg-gray-200 text-black hover:bg-gray-300 dark:bg-gray-950 dark:text-white dark:hover:bg-gray-900`,variant:`secondary`,onClick:f,children:(0,z.jsx)(`span`,{className:`text-[1.6rem] font-bold`,children:`Aa`})}),(0,z.jsx)(l,{"aria-label":`Increase text size`,className:`h-8 w-full rounded-[6px] bg-gray-200 text-black hover:bg-gray-300 dark:bg-gray-950 dark:text-white dark:hover:bg-gray-900 [&_svg]:size-[14px]`,disabled:a===B.length-1,variant:`secondary`,onClick:d,children:(0,z.jsx)(c,{})})]})]})})]}),xe=({tocItems:e,iframeElement:t,modalRef:n,className:r=`visible! absolute inset-y-0 right-7 z-40 hidden lg:block!`,onOpenChange:i})=>{let[a,o]=(0,R.useState)(null),s=R.useRef(!1);return(0,R.useEffect)(()=>{if(!t?.contentDocument||e.length<=1)return;let r=n.current;if(!r)return;let i=()=>{if(s.current)return;let n=t.contentDocument;if(!n)return;let i=r.scrollTop,a=e.map(e=>n.getElementById(e.id)).filter(e=>e!==null).map(e=>({id:e.id,top:e.offsetTop}));if(!a.length)return;let c=a.reduce((e,t)=>t.top-100<=i?t:e);o(c?.id||null)},a=()=>{requestAnimationFrame(i)};return r.addEventListener(`scroll`,a),i(),()=>{r.removeEventListener(`scroll`,a)}},[t,e,n]),e.length<=1?null:(0,z.jsx)(`div`,{className:r,children:(0,z.jsx)(`div`,{className:`sticky top-1/2 -translate-y-1/2`,children:(0,z.jsx)(W,{activeHeading:a||``,items:e,onItemClick:e=>{if(!t?.contentDocument)return;let r=t.contentDocument.getElementById(e);r&&n.current&&(s.current=!0,o(e),n.current.scrollTo({top:r.offsetTop-20,behavior:`smooth`}),setTimeout(()=>{s.current=!1},1e3))},onOpenChange:i})})})},Se={1:`w-3`,2:`w-2`,3:`w-1`},Ce={1:`pl-2`,2:`pl-6`,3:`pl-10`},W=({items:e,activeHeading:t,onItemClick:n,onOpenChange:r})=>{let[i,a]=(0,R.useState)(!1),o=R.useRef();if(R.useEffect(()=>()=>{o.current&&clearTimeout(o.current)},[]),e.length===0)return null;let s=e=>Math.min(e,3),c=e=>Se[s(e)],l=e=>Ce[s(e)],u=()=>{o.current&&clearTimeout(o.current),a(!0),r?.(!0)},d=()=>{o.current=setTimeout(()=>{a(!1),r?.(!1)},100)};return(0,z.jsxs)(j,{modal:!1,open:i,onOpenChange:a,children:[(0,z.jsx)(oe,{asChild:!0,children:(0,z.jsx)(`div`,{className:`absolute top-1/2 right-2 flex -translate-y-1/2 flex-col items-end gap-2 rounded-md p-2 text-base dark:bg-black`,onMouseEnter:u,onMouseLeave:d,children:e.map(e=>(0,z.jsx)(`div`,{className:`h-[2px] rounded-sm ${t===e.id?`bg-black dark:bg-white`:`bg-gray-400 dark:bg-gray-700`} pr-1 transition-all ${c(e.level)}`},e.id))})}),(0,z.jsx)(M,{align:`center`,className:`w-[240px] p-2`,side:`left`,sideOffset:-28,onCloseAutoFocus:e=>e.preventDefault(),onMouseEnter:u,onMouseLeave:d,onOpenAutoFocus:e=>e.preventDefault(),children:(0,z.jsx)(`nav`,{"aria-label":`Table of contents navigation`,className:`max-h-[60vh] overflow-y-auto`,role:`navigation`,children:e.map(e=>(0,z.jsx)(`button`,{className:`line-clamp-2 block w-full cursor-pointer rounded py-1 text-left text-sm leading-tight ${t===e.id?`text-black dark:text-white`:`text-gray-700 dark:text-gray-600`} hover:bg-gray-100 hover:text-gray-900 dark:hover:bg-gray-950 dark:hover:text-white ${l(e.level)}`,type:`button`,onClick:()=>n(e.id),children:(0,z.jsx)(`span`,{className:`line-clamp-2`,children:e.text})},e.id))})})]})},we=()=>`<style>
|
|
2
2
|
|
|
3
3
|
/* Variables */
|
|
4
4
|
|
|
@@ -583,7 +583,7 @@ html.has-light-text .gh-paid-content-notice {
|
|
|
583
583
|
font-family: var(--font-serif-alt);
|
|
584
584
|
}
|
|
585
585
|
|
|
586
|
-
</style>`,Te=
|
|
586
|
+
</style>`,Te=e({default:()=>Ee}),Ee=`(function () {
|
|
587
587
|
const handleAudioPlayer = function (audioElementContainer) {
|
|
588
588
|
const audioPlayerContainer = audioElementContainer.querySelector('.kg-audio-player-container');
|
|
589
589
|
const playIconContainer = audioElementContainer.querySelector('.kg-audio-play-icon');
|
|
@@ -746,7 +746,7 @@ html.has-light-text .gh-paid-content-notice {
|
|
|
746
746
|
handleAudioPlayer(audioCardElements[i]);
|
|
747
747
|
}
|
|
748
748
|
})();
|
|
749
|
-
`,De=
|
|
749
|
+
`,De=e({default:()=>Oe}),Oe=`(function () {
|
|
750
750
|
const images = document.querySelectorAll('.kg-gallery-image img');
|
|
751
751
|
images.forEach(function (image) {
|
|
752
752
|
const container = image.closest('.kg-gallery-image');
|
|
@@ -756,7 +756,7 @@ html.has-light-text .gh-paid-content-notice {
|
|
|
756
756
|
container.style.flex = ratio + ' 1 0%';
|
|
757
757
|
});
|
|
758
758
|
})();
|
|
759
|
-
`,ke=
|
|
759
|
+
`,ke=e({default:()=>Ae}),Ae=`(function () {
|
|
760
760
|
const toggleHeadingElements = document.getElementsByClassName('kg-toggle-heading');
|
|
761
761
|
|
|
762
762
|
const toggleFn = function (event) {
|
|
@@ -774,7 +774,7 @@ html.has-light-text .gh-paid-content-notice {
|
|
|
774
774
|
toggleHeadingElements[i].addEventListener('click', toggleFn, false);
|
|
775
775
|
}
|
|
776
776
|
})();
|
|
777
|
-
`,je=
|
|
777
|
+
`,je=e({default:()=>Me}),Me=`(function () {
|
|
778
778
|
const handleVideoPlayer = function (videoElementContainer) {
|
|
779
779
|
const videoPlayer = videoElementContainer.querySelector('.kg-video-player');
|
|
780
780
|
const videoPlayerContainer = videoElementContainer.querySelector('.kg-video-player-container');
|
|
@@ -1043,7 +1043,7 @@ html.has-light-text .gh-paid-content-notice {
|
|
|
1043
1043
|
handleVideoPlayer(videoCardElements[i]);
|
|
1044
1044
|
}
|
|
1045
1045
|
})();
|
|
1046
|
-
`,G=
|
|
1046
|
+
`,G=e({default:()=>Ne}),Ne=`.kg-audio-card,
|
|
1047
1047
|
.kg-audio-card * {
|
|
1048
1048
|
box-sizing: border-box;
|
|
1049
1049
|
}
|
|
@@ -1383,7 +1383,7 @@ html.has-light-text .gh-paid-content-notice {
|
|
|
1383
1383
|
.kg-audio-player-container input[type='range']:active::-ms-thumb {
|
|
1384
1384
|
transform: scale(1.2);
|
|
1385
1385
|
}
|
|
1386
|
-
`,Pe=
|
|
1386
|
+
`,Pe=e({default:()=>Fe}),Fe=`.kg-blockquote-alt {
|
|
1387
1387
|
font-size: 1.5em;
|
|
1388
1388
|
font-style: italic;
|
|
1389
1389
|
line-height: 1.7em;
|
|
@@ -1406,7 +1406,7 @@ html.has-light-text .gh-paid-content-notice {
|
|
|
1406
1406
|
padding-right: 1.75em;
|
|
1407
1407
|
}
|
|
1408
1408
|
}
|
|
1409
|
-
`,Ie=
|
|
1409
|
+
`,Ie=e({default:()=>K}),K=`.kg-bookmark-card,
|
|
1410
1410
|
.kg-bookmark-card * {
|
|
1411
1411
|
box-sizing: border-box;
|
|
1412
1412
|
}
|
|
@@ -1524,7 +1524,7 @@ html.has-light-text .gh-paid-content-notice {
|
|
|
1524
1524
|
left: 0;
|
|
1525
1525
|
border-radius: 0 2px 2px 0;
|
|
1526
1526
|
}
|
|
1527
|
-
`,Le=
|
|
1527
|
+
`,Le=e({default:()=>Re}),Re=`.kg-button-card,
|
|
1528
1528
|
.kg-button-card * {
|
|
1529
1529
|
box-sizing: border-box;
|
|
1530
1530
|
}
|
|
@@ -1566,7 +1566,7 @@ html.has-light-text .gh-paid-content-notice {
|
|
|
1566
1566
|
background-color: var(--ghost-accent-color);
|
|
1567
1567
|
color: #fff;
|
|
1568
1568
|
}
|
|
1569
|
-
`,q=
|
|
1569
|
+
`,q=e({default:()=>ze}),ze=`.kg-callout-card,
|
|
1570
1570
|
.kg-callout-card * {
|
|
1571
1571
|
box-sizing: border-box;
|
|
1572
1572
|
}
|
|
@@ -1634,7 +1634,7 @@ html.has-light-text .gh-paid-content-notice {
|
|
|
1634
1634
|
.kg-callout-card + .kg-callout-card {
|
|
1635
1635
|
margin-top: 1em;
|
|
1636
1636
|
}
|
|
1637
|
-
`,J=
|
|
1637
|
+
`,J=e({default:()=>Y}),Y=`.kg-collection-card {
|
|
1638
1638
|
width: 100%;
|
|
1639
1639
|
margin-top: 6vmin;
|
|
1640
1640
|
}
|
|
@@ -1849,7 +1849,7 @@ p.kg-collection-card-post-excerpt {
|
|
|
1849
1849
|
font-size: 1.7rem;
|
|
1850
1850
|
}
|
|
1851
1851
|
}
|
|
1852
|
-
`,Be=
|
|
1852
|
+
`,Be=e({default:()=>Ve}),Ve=`.kg-cta-card,
|
|
1853
1853
|
.kg-cta-card * {
|
|
1854
1854
|
box-sizing: border-box;
|
|
1855
1855
|
}
|
|
@@ -2109,7 +2109,7 @@ a.kg-cta-button {
|
|
|
2109
2109
|
.kg-cta-immersive.kg-cta-has-img a.kg-cta-button {
|
|
2110
2110
|
width: 100%;
|
|
2111
2111
|
}
|
|
2112
|
-
`,He=
|
|
2112
|
+
`,He=e({default:()=>X}),X=`.kg-file-card,
|
|
2113
2113
|
.kg-file-card * {
|
|
2114
2114
|
box-sizing: border-box;
|
|
2115
2115
|
}
|
|
@@ -2254,7 +2254,7 @@ a.kg-cta-button {
|
|
|
2254
2254
|
.kg-file-card + .kg-file-card {
|
|
2255
2255
|
margin-top: 1em;
|
|
2256
2256
|
}
|
|
2257
|
-
`,Ue=
|
|
2257
|
+
`,Ue=e({default:()=>We}),We=`.kg-gallery-card,
|
|
2258
2258
|
.kg-gallery-card * {
|
|
2259
2259
|
box-sizing: border-box;
|
|
2260
2260
|
}
|
|
@@ -2302,7 +2302,7 @@ a.kg-cta-button {
|
|
|
2302
2302
|
--gap: 0.6rem;
|
|
2303
2303
|
}
|
|
2304
2304
|
}
|
|
2305
|
-
`,Ge=
|
|
2305
|
+
`,Ge=e({default:()=>Z}),Z=`.kg-header-card,
|
|
2306
2306
|
.kg-header-card * {
|
|
2307
2307
|
box-sizing: border-box;
|
|
2308
2308
|
}
|
|
@@ -2537,7 +2537,7 @@ a.kg-cta-button {
|
|
|
2537
2537
|
font-size: 1em;
|
|
2538
2538
|
}
|
|
2539
2539
|
}
|
|
2540
|
-
`,Ke=
|
|
2540
|
+
`,Ke=e({default:()=>qe}),qe=`.kg-header-card.kg-v2 {
|
|
2541
2541
|
position: relative;
|
|
2542
2542
|
padding: 0;
|
|
2543
2543
|
min-height: initial;
|
|
@@ -2802,7 +2802,7 @@ a.kg-cta-button {
|
|
|
2802
2802
|
font-size: 1em;
|
|
2803
2803
|
}
|
|
2804
2804
|
}
|
|
2805
|
-
`,Je=
|
|
2805
|
+
`,Je=e({default:()=>Ye}),Ye=`.kg-nft-card,
|
|
2806
2806
|
.kg-nft-card * {
|
|
2807
2807
|
box-sizing: border-box;
|
|
2808
2808
|
}
|
|
@@ -2895,7 +2895,7 @@ a.kg-cta-button {
|
|
|
2895
2895
|
margin: 20px 0 0;
|
|
2896
2896
|
color: #222;
|
|
2897
2897
|
}
|
|
2898
|
-
`,Xe=
|
|
2898
|
+
`,Xe=e({default:()=>Ze}),Ze=`.kg-product-card,
|
|
2899
2899
|
.kg-product-card * {
|
|
2900
2900
|
box-sizing: border-box;
|
|
2901
2901
|
}
|
|
@@ -3030,7 +3030,7 @@ a.kg-cta-button {
|
|
|
3030
3030
|
background-color: var(--ghost-accent-color);
|
|
3031
3031
|
color: #fff;
|
|
3032
3032
|
}
|
|
3033
|
-
`,Qe=
|
|
3033
|
+
`,Qe=e({default:()=>$e}),$e=`.kg-signup-card {
|
|
3034
3034
|
position: relative;
|
|
3035
3035
|
}
|
|
3036
3036
|
|
|
@@ -3414,7 +3414,7 @@ a.kg-cta-button {
|
|
|
3414
3414
|
font-size: 1em;
|
|
3415
3415
|
}
|
|
3416
3416
|
}
|
|
3417
|
-
`,et=
|
|
3417
|
+
`,et=e({default:()=>tt}),tt=`.kg-toggle-card,
|
|
3418
3418
|
.kg-toggle-card * {
|
|
3419
3419
|
box-sizing: border-box;
|
|
3420
3420
|
}
|
|
@@ -3515,7 +3515,7 @@ a.kg-cta-button {
|
|
|
3515
3515
|
.kg-toggle-card + .kg-toggle-card {
|
|
3516
3516
|
margin-top: 1em;
|
|
3517
3517
|
}
|
|
3518
|
-
`,nt=
|
|
3518
|
+
`,nt=e({default:()=>rt}),rt=`.kg-transistor-card {
|
|
3519
3519
|
display: flex;
|
|
3520
3520
|
justify-content: center;
|
|
3521
3521
|
}
|
|
@@ -3603,7 +3603,7 @@ a.kg-cta-button {
|
|
|
3603
3603
|
font-size: 1.45rem;
|
|
3604
3604
|
}
|
|
3605
3605
|
}
|
|
3606
|
-
`,it=
|
|
3606
|
+
`,it=e({default:()=>at}),at=`.kg-video-card,
|
|
3607
3607
|
.kg-video-card * {
|
|
3608
3608
|
box-sizing: border-box;
|
|
3609
3609
|
}
|
|
@@ -3975,10 +3975,10 @@ a.kg-cta-button {
|
|
|
3975
3975
|
|
|
3976
3976
|
`),lt=Object.values(st).map(e=>e.default).join(`
|
|
3977
3977
|
|
|
3978
|
-
`),Q=`gh-sensitive-media-hidden`,ut=`audio, canvas, embed, iframe, img, object, picture, source, svg, video`,dt=({postUrl:e,heading:t,image:n,excerpt:r,authors:i,html:a,hideMedia:o=!1,backgroundColor:s,fontSize:c,fontStyle:l,onHeadingsExtracted:u,onIframeLoad:f,onLoadingChange:p,isPopoverOpen:m})=>{let h=(0,R.useRef)(null),[_
|
|
3979
|
-
<html class="${o?`${Q} `:``}has-${
|
|
3978
|
+
`),Q=`gh-sensitive-media-hidden`,ut=`audio, canvas, embed, iframe, img, object, picture, source, svg, video`,dt=({postUrl:e,heading:t,image:n,excerpt:r,authors:i,html:a,hideMedia:o=!1,backgroundColor:s,fontSize:c,fontStyle:l,onHeadingsExtracted:u,onIframeLoad:f,onLoadingChange:p,isPopoverOpen:m})=>{let h=(0,R.useRef)(null),[g,_]=(0,R.useState)(!0),[v,ee]=(0,R.useState)(`0px`),S=(0,R.useRef)(null),C=document.documentElement.classList.contains(`dark`)&&s===`SYSTEM`||s===`DARK`,te=we(),w=typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(hover: none) and (pointer: coarse)`).matches,T=(0,R.useMemo)(()=>I(ne(w?y(a):a)),[a,w]),E=(0,R.useCallback)(()=>{let e=h.current,t=e?.contentDocument;if(!t)return;t.documentElement.classList.toggle(Q,o);let n=e.contentWindow;n&&typeof n.resizeIframe==`function`&&n.resizeIframe()},[o]),D=`
|
|
3979
|
+
<html class="${o?`${Q} `:``}has-${C?`light`:`dark`}-text has-${l}-body ${s===`SEPIA`&&`has-sepia-bg`}">
|
|
3980
3980
|
<head>
|
|
3981
|
-
${
|
|
3981
|
+
${te}
|
|
3982
3982
|
<style>
|
|
3983
3983
|
:root {
|
|
3984
3984
|
--font-size: ${c};
|
|
@@ -4073,14 +4073,14 @@ a.kg-cta-button {
|
|
|
4073
4073
|
</head>
|
|
4074
4074
|
<body>
|
|
4075
4075
|
<header class='gh-article-header gh-canvas'>
|
|
4076
|
-
<h1 class='gh-article-title is-title' data-test-article-heading>${
|
|
4077
|
-
${r?`<p class='gh-article-excerpt'>${
|
|
4078
|
-
<a href="${e&&
|
|
4076
|
+
<h1 class='gh-article-title is-title' data-test-article-heading>${b(t)}</h1>
|
|
4077
|
+
${r?`<p class='gh-article-excerpt'>${b(r)}</p>`:``}
|
|
4078
|
+
<a href="${e&&x(e)?b(e):`#`}" target="_blank" rel="noopener noreferrer" class="gh-article-meta">
|
|
4079
4079
|
${i&&i.length>0?`
|
|
4080
4080
|
<div class="gh-article-author-image">
|
|
4081
4081
|
${i.map(e=>`
|
|
4082
4082
|
<span>
|
|
4083
|
-
${e.profile_image?`<img src="${
|
|
4083
|
+
${e.profile_image?`<img src="${b(e.profile_image)}" alt="${b(e.name)}">`:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" height="24" width="24"><path d="M6.75 6a5.25 5.25 0 1 0 10.5 0 5.25 5.25 0 1 0 -10.5 0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M2.25 23.25a9.75 9.75 0 0 1 19.5 0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg>`}
|
|
4084
4084
|
</span>
|
|
4085
4085
|
`).join(``)}
|
|
4086
4086
|
</div>
|
|
@@ -4088,15 +4088,15 @@ a.kg-cta-button {
|
|
|
4088
4088
|
<div class="gh-article-meta-wrapper">
|
|
4089
4089
|
${i&&i.length>0?`
|
|
4090
4090
|
<span class="gh-article-author-name">
|
|
4091
|
-
${i.length>1?`${
|
|
4091
|
+
${i.length>1?`${b(i[0].name)} and ${i.length-1} ${i.length-1==1?`other`:`others`}`:b(i[0].name)}
|
|
4092
4092
|
</span>
|
|
4093
4093
|
`:``}
|
|
4094
|
-
<span class="gh-article-source">${e&&
|
|
4094
|
+
<span class="gh-article-source">${e&&x(e)?b(new URL(e).hostname):``} <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-external-link-icon lucide-external-link"><path d="M15 3h6v6"/><path d="M10 14 21 3"/><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/></svg></span>
|
|
4095
4095
|
</div>
|
|
4096
4096
|
</a>
|
|
4097
4097
|
${n?`
|
|
4098
4098
|
<figure class='gh-article-image'>
|
|
4099
|
-
<img src='${
|
|
4099
|
+
<img src='${b(n)}' alt='${b(t)}' />
|
|
4100
4100
|
</figure>
|
|
4101
4101
|
`:``}
|
|
4102
4102
|
</header>
|
|
@@ -4121,6 +4121,6 @@ a.kg-cta-button {
|
|
|
4121
4121
|
<\/script>
|
|
4122
4122
|
</body>
|
|
4123
4123
|
</html>
|
|
4124
|
-
`;return(0,R.useEffect)(()=>{let a=h.current;if(!a)return;let o=e=>{if(e.data.type===`resize`){let t=`${e.data.bodyHeight+24}px`;
|
|
4124
|
+
`;return(0,R.useEffect)(()=>{let a=h.current;if(!a)return;let o=e=>{if(e.data.type===`resize`){let t=`${e.data.bodyHeight+24}px`;ee(t),a.style.height=t,e.data.isLoaded&&(E(),_(!1))}},s=e=>{if(e.key===`Escape`){e.preventDefault(),e.stopPropagation();let t=new KeyboardEvent(`keydown`,{key:`Escape`,code:`Escape`,keyCode:27,which:27,bubbles:!0,cancelable:!0});document.dispatchEvent(t)}},c=()=>{let e=a.contentWindow;e&&e.addEventListener(`keydown`,s),E()};a.addEventListener(`load`,c),window.addEventListener(`message`,o);let l=[T,t,r??``,n??``,e??``,(i??[]).map(e=>`${e.name}\0${e.profile_image}`).join(`
|
|
4125
4125
|
`)].join(`
|
|
4126
|
-
`);return x.current!==l&&(x.current=l,v(!0),a.srcdoc=D),()=>{window.removeEventListener(`message`,o),a.removeEventListener(`load`,c);let e=a.contentWindow;e&&e.removeEventListener(`keydown`,s)}},[T,i,r,t,D,n,e,E]),(0,R.useEffect)(()=>{E()},[E]),(0,R.useEffect)(()=>{let e=h.current;if(!e)return;let t=e.contentDocument||e.contentWindow?.document;if(!t)return;let n=t.documentElement;n.style.setProperty(`--font-size`,c),n.classList.remove(`has-sans-body`,`has-serif-body`),n.classList.add(`has-${l}-body`),n.classList.remove(`has-dark-text`,`has-light-text`),n.classList.add(`has-${S?`light`:`dark`}-text`),s===`SEPIA`?n.classList.add(`has-sepia-bg`):n.classList.remove(`has-sepia-bg`);let r=e.contentWindow;if(r&&typeof r.resizeIframe==`function`)r.resizeIframe();else{let e=new Event(`resize`);t.dispatchEvent(e)}},[c,l,s,S]),(0,R.useEffect)(()=>{let e=h.current;if(!e)return;let t=()=>{if(!e.contentDocument)return;let t=Array.from(e.contentDocument.querySelectorAll(`.gh-content > :is(h2, h3, h4, h5, h6)[id]`));if(t.length===0)return;let n=Math.min(...t.map(e=>parseInt(e.tagName[1]))),r=t.map((e,t)=>{let r=`heading-${t}`;e.id=r;let i=parseInt(e.tagName[1])-n+1;return{id:r,text:e.textContent||``,level:i,element:e}});u?.(r),f?.(e)};return e.addEventListener(`load`,t),()=>e.removeEventListener(`load`,t)},[u,f]),(0,R.useEffect)(()=>{p?.(_)},[_,p]),(0,z.jsx)(`div`,{className:`w-full pb-6`,children:(0,z.jsxs)(`div`,{className:`relative -mx-6`,children:[_&&(0,z.jsxs)(`div`,{className:`mx-auto mt-6 w-full max-w-[640px] max-lg:px-4`,children:[(0,z.jsxs)(`div`,{className:`mb-6 flex flex-col gap-2`,children:[(0,z.jsx)(d,{className:`h-8`}),(0,z.jsx)(d,{className:`h-8 w-full max-w-md`})]}),(0,z.jsx)(d,{className:`mt-2 h-4`,count:4,randomize:!0}),(0,z.jsx)(d,{className:`mt-8 h-[400px]`}),(0,z.jsx)(d,{className:`mt-2 h-4`,containerClassName:`block mt-7 mb-4`,count:8,randomize:!0})]}),(0,z.jsx)(`iframe`,{ref:h,id:`gh-ap-article-iframe`,style:{width:`100%`,border:`none`,height:ee,overflow:`hidden`,opacity:+!_,transition:`opacity 0.2s ease-in-out`,pointerEvents:m?`none`:`auto`},title:`Embedded Content`})]})})},ft=()=>(0,z.jsx)(`div`,{className:`h-px bg-black/[8%] dark:bg-gray-950`});function pt(e){return new DOMParser().parseFromString(e,`text/html`).querySelector(ut)!==null}var $=new Map,mt=({postId:e=null,onClose:t})=>{let{backgroundColor:n,currentFontSizeIndex:r,fontStyle:i,fontSize:a,handleColorChange:o,setFontStyle:s,increaseFontSize:c,decreaseFontSize:l,resetFontSize:u}=ye(),f=(0,R.useRef)(null),[m,g]=(0,R.useState)(!1),[_,y]=(0,R.useState)(!1),[D,te]=(0,R.useState)(new Set),[O,ne]=(0,R.useState)(new Set),[ie,ae]=(0,R.useState)(new Set),[k,se]=(0,R.useState)(!1),A=(0,R.useRef)(null),j=(0,R.useRef)(null),{post:M,processedReplies:ce,isLoading:F,loadMoreChildren:fe,loadMoreChildReplies:pe,hasMoreChildren:I,hasMoreChildReplies:L}=ve(e??``,{includeAncestors:!1}),B=M,V=B?.object,U=B?.actor,Se=B?.object?.metadata?.ghostAuthors,Ce=V?.replyCount??0,W=V?.content??``,we=typeof V?.image==`string`?V.image:V?.image?.url,Te=(0,R.useMemo)(()=>pt(W),[W]),{contentWarning:Ee,shouldHideContentWarning:De,shouldHideSensitiveMedia:Oe,canHideSensitiveMedia:ke,revealSensitiveMedia:Ae,hideSensitiveMedia:je,revealContentWarning:Me}=T({contentWarning:V?.contentWarning,sensitive:V?.sensitive,hasMedia:!!we||(V?C(V)!==null:!1)||Te,resetKey:e??void 0});(0,R.useEffect)(()=>{if(!I)return;A.current&&A.current.disconnect();let e=f.current;if(e)return A.current=new IntersectionObserver(async e=>{if(e[0].isIntersecting&&I&&!k){se(!0);try{await fe()}catch(e){console.error(`Failed to load more top-level replies:`,e)}finally{se(!1)}}},{root:e,rootMargin:`200px`}),j.current&&A.current.observe(j.current),()=>{A.current&&A.current.disconnect()}},[I,k,fe]);function G(){}function Ne(e){te(t=>{let n=new Set(t);return n.has(e)?n.delete(e):(n.add(e),ne(t=>{let n=new Set(t);return n.add(e),n})),n})}async function Pe(e,t){if(!ie.has(e)){ae(t=>new Set(t).add(e));try{pe&&await pe(t)}catch(e){console.error(`Failed to load more replies for chain:`,e)}finally{ae(t=>{let n=new Set(t);return n.delete(e),n})}}}let Fe=()=>{},Ie=(0,R.useRef)(null),K=`640px`,[Le,Re]=(0,R.useState)(0),[q,ze]=(0,R.useState)(!0),[J]=oe(Re,100);(0,R.useEffect)(()=>{let e=f.current,t=document.getElementById(`object-content`),n=()=>{if(q||!e||!t)return;let n=t.getBoundingClientRect(),r=e.getBoundingClientRect();if(n.height<=r.height){J(100);return}let i=Math.max(0,r.top-n.top),a=t.offsetHeight-e.offsetHeight,o=Math.min(Math.max(i/a*100,0),100),s=Math.round(o/1)*1;J(s)};if(q)return;let r=new MutationObserver(n);return t&&r.observe(t,{childList:!0,subtree:!0,characterData:!0}),e?.addEventListener(`scroll`,n),n(),()=>{e?.removeEventListener(`scroll`,n),r.disconnect()}},[q,J]);let[Y,Be]=(0,R.useState)([]),[Ve,He]=(0,R.useState)(null),[X,Ue]=(0,R.useState)(null),We=(0,R.useCallback)(e=>{Be(e)},[]),Ge=(0,R.useCallback)(e=>{Ue(e)},[]);(0,R.useEffect)(()=>{if(!X?.contentDocument||!Y.length)return;let e=setTimeout(()=>{let e=f.current;if(!e)return;let t=()=>{let t=X.contentDocument;if(!t||!t.documentElement)return;let n=e.scrollTop,r=Y.map(e=>t.getElementById(e.id)).filter(e=>e!==null).map(e=>({element:e,id:e.id,top:e.offsetTop}));if(!r.length)return;let i=null;for(let e of r)if(e.top-100<=n)i=e;else break;He(i?.id||null)};return e.addEventListener(`scroll`,t),t(),()=>{e.removeEventListener(`scroll`,t)}},100);return()=>clearTimeout(e)},[X,Y,Ve]);let Z=p();return(0,R.useEffect)(()=>{let t=f.current;return()=>{t&&e&&$.set(e,t.scrollTop)}},[e]),(0,R.useEffect)(()=>{if(!q&&!F&&e&&f.current){let t=$.get(e);t!==void 0&&t>0&&setTimeout(()=>{f.current&&(f.current.scrollTop=t)},100)}},[q,F,e]),F?(0,z.jsx)(`div`,{className:`max-h-full overflow-auto rounded-md ${n===`DARK`&&`dark`} ${(n===`LIGHT`||n===`SEPIA`)&&`light`} ${H[n].background}`,children:(0,z.jsx)(`div`,{className:`flex h-full flex-col`,children:(0,z.jsxs)(`div`,{className:`relative flex-1`,children:[(0,z.jsx)(`div`,{className:`sticky top-0 z-50 flex h-[102px] items-center justify-center rounded-t-md border-b max-md:h-[68px] ${H[n].background} ${H[n].border}`,children:(0,z.jsxs)(`div`,{className:`grid w-full px-8 max-lg:px-4`,style:{gridTemplateColumns:`1fr minmax(0,${K}) 1fr`},children:[(0,z.jsx)(`div`,{className:`flex items-center`,children:(0,z.jsx)(S,{className:H[n].button,onClick:t})}),(0,z.jsxs)(`div`,{className:`col-[2/3] mx-auto flex w-full items-center gap-3 max-md:hidden`,children:[(0,z.jsx)(d,{className:`size-10 rounded-full`}),(0,z.jsxs)(`div`,{className:`grow pt-1`,children:[(0,z.jsx)(d,{className:`w-full`}),(0,z.jsx)(d,{className:`w-2/3`})]})]}),(0,z.jsx)(`div`,{className:`col-[3/4] flex items-center justify-end gap-2`,children:(0,z.jsx)(be,{backgroundColor:n,currentFontSizeIndex:r,fontStyle:i,onColorChange:o,onDecreaseFontSize:l,onFontStyleChange:s,onIncreaseFontSize:c,onOpenChange:g,onResetFontSize:u})})]})}),(0,z.jsx)(`div`,{className:`relative flex-1 max-lg:px-4`,children:(0,z.jsxs)(`div`,{className:`mx-auto mt-11 w-full max-w-[640px]`,children:[(0,z.jsxs)(`div`,{className:`mb-6 flex flex-col gap-2`,children:[(0,z.jsx)(d,{className:`h-8`}),(0,z.jsx)(d,{className:`h-8 w-full max-w-md`})]}),(0,z.jsx)(d,{className:`mt-2 h-4`,count:4,randomize:!0}),(0,z.jsx)(d,{className:`mt-8 h-[400px]`}),(0,z.jsx)(d,{className:`mt-2 h-4`,containerClassName:`block mt-7 mb-4`,count:8,randomize:!0})]})})]})})}):M?(0,z.jsx)(`div`,{ref:f,className:`max-h-full overflow-auto rounded-md ${n===`DARK`&&`dark`} ${(n===`LIGHT`||n===`SEPIA`)&&`light`} ${H[n].background}`,"data-scrollable-container":!0,children:(0,z.jsx)(z.Fragment,{children:(0,z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,z.jsxs)(`div`,{className:`relative flex-1`,children:[(0,z.jsx)(`div`,{className:`sticky top-0 z-50 flex h-[102px] items-center justify-center rounded-t-md border-b max-md:h-[68px] ${H[n].background} ${H[n].border}`,children:(0,z.jsxs)(`div`,{className:`grid w-full px-8 max-lg:px-4`,style:{gridTemplateColumns:`1fr minmax(0,${K}) 1fr`},children:[(0,z.jsx)(`div`,{className:`flex items-center`,children:(0,z.jsx)(S,{className:H[n].button,onClick:t})}),(0,z.jsxs)(`div`,{className:`col-[2/3] mx-auto flex w-full items-center justify-between gap-3 max-md:hidden`,children:[(0,z.jsx)(me,{actor:U,isCurrentUser:V.authored,children:(0,z.jsxs)(`div`,{className:`flex cursor-pointer items-center gap-3`,children:[(0,z.jsx)(`div`,{className:`relative z-10 pt-0.5`,children:(0,z.jsx)(re,{author:U})}),(0,z.jsxs)(`div`,{className:`relative z-10 mt-0.5 flex min-w-0 cursor-pointer flex-col overflow-visible text-[1.5rem]`,onClick:e=>ee(U,Z,e),children:[(0,z.jsx)(`div`,{className:`flex w-full`,children:(0,z.jsx)(`span`,{className:`min-w-0 truncate font-semibold whitespace-nowrap text-black hover:underline dark:text-white`,children:F?(0,z.jsx)(d,{className:`w-20`}):U.name})}),(0,z.jsxs)(`div`,{className:`flex w-full`,children:[!F&&(0,z.jsx)(`span`,{className:`truncate text-gray-700 after:mx-1 after:font-normal after:text-gray-700 after:content-["·"]`,children:le(U)}),(0,z.jsx)(`span`,{className:`text-gray-700`,children:F?(0,z.jsx)(d,{className:`w-[120px]`}):v(V,!V.authored)})]})]})]})}),!V.authored&&!F&&(0,z.jsx)(b,{following:U.followedByMe??!1,handle:le(U)})]}),(0,z.jsx)(`div`,{className:`col-[3/4] flex items-center justify-end gap-2`,children:(0,z.jsx)(be,{backgroundColor:n,currentFontSizeIndex:r,fontStyle:i,onColorChange:o,onDecreaseFontSize:l,onFontStyleChange:s,onIncreaseFontSize:c,onOpenChange:g,onResetFontSize:u})})]})}),(0,z.jsxs)(`div`,{className:`relative flex-1`,children:[(0,z.jsx)(xe,{iframeElement:X,modalRef:f,tocItems:Y,onOpenChange:y}),!F&&(0,z.jsx)(`div`,{className:`grow overflow-y-auto`,children:(0,z.jsxs)(`div`,{className:`mx-auto px-6 pt-5 pb-10`,style:{maxWidth:`904px`},children:[(0,z.jsxs)(`div`,{className:`flex flex-col items-center pb-8`,id:`object-content`,children:[De&&Ee?(0,z.jsx)(w,{className:`w-full`,label:Ee,onReveal:Me}):(0,z.jsxs)(z.Fragment,{children:[Oe&&(0,z.jsx)(ue,{className:`w-full`,onReveal:Ae}),ke&&(0,z.jsx)(`div`,{className:`mb-3 flex w-full justify-end`,children:(0,z.jsx)(h,{layout:`inline`,onHide:je})}),(0,z.jsx)(`div`,{className:`w-full`,children:(0,z.jsx)(dt,{authors:Se,backgroundColor:n,excerpt:V.summary??``,fontSize:a,fontStyle:i,heading:V.name,hideMedia:Oe,html:W,image:we,isPopoverOpen:m||_,postUrl:V?.url||``,onHeadingsExtracted:We,onIframeLoad:Ge,onLoadingChange:ze})})]}),(0,z.jsx)(`div`,{className:`-ml-3 w-full`,style:{maxWidth:K},children:(0,z.jsx)(E,{actor:U,commentCount:Ce,layout:`modal`,likeCount:V.likeCount??0,object:V,repostCount:V.repostCount??0,onLikeClick:Fe})})]}),V.type===`Tombstone`&&(0,z.jsx)(_e,{last:!0}),(0,z.jsxs)(`div`,{className:`mx-auto w-full border-t border-black/[8%] dark:border-gray-950`,style:{maxWidth:K},children:[(0,z.jsx)(he,{object:V}),(0,z.jsx)(ft,{})]}),F&&(0,z.jsx)(de,{size:`lg`}),(0,z.jsxs)(`div`,{ref:Ie,className:`mx-auto w-full`,style:{maxWidth:K},children:[ce.map((t,n)=>{let r=n===ce.length-1,i=t.mainReply.id,a=D.has(i),o=O.has(i),s=ie.has(i),c=t.chain.length>0;return(0,z.jsxs)(R.Fragment,{children:[(0,z.jsx)(P,{actor:t.mainReply.actor,allowDelete:t.mainReply.object.authored,commentCount:t.mainReply.object.replyCount??0,isChainParent:c,isPending:N(t.mainReply.id),last:!c,layout:`reply`,likeCount:t.mainReply.object.likeCount??0,object:t.mainReply.object,parentId:V.id,repostCount:t.mainReply.object.repostCount??0,type:`Note`,onClick:()=>{let n=f.current;n&&e&&$.set(e,n.scrollTop),Z(`/notes/${encodeURIComponent(t.mainReply.id)}`)},onDelete:G}),c&&t.chain[0]&&(0,z.jsx)(P,{actor:t.chain[0].actor,allowDelete:t.chain[0].object.authored,commentCount:t.chain[0].object.replyCount??0,isChainContinuation:!0,isPending:N(t.chain[0].id),last:t.chain.length===1,layout:`reply`,likeCount:t.chain[0].object.likeCount??0,object:t.chain[0].object,parentId:V.id,repostCount:t.chain[0].object.repostCount??0,type:`Note`,onClick:()=>{let n=f.current;n&&e&&$.set(e,n.scrollTop),Z(`/notes/${encodeURIComponent(t.chain[0].id)}`)},onDelete:G},t.chain[0].id),c&&a&&t.chain.slice(1).map((r,i)=>{let a=i===t.chain.slice(1).length-1,o=L&&L(n),s=a&&o;return(0,z.jsx)(P,{actor:r.actor,allowDelete:r.object.authored,commentCount:r.object.replyCount??0,isChainContinuation:!0,isPending:N(r.id),last:a&&!s,layout:`reply`,likeCount:r.object.likeCount??0,object:r.object,parentId:V.id,repostCount:r.object.repostCount??0,type:`Note`,onClick:()=>{let t=f.current;t&&e&&$.set(e,t.scrollTop),Z(`/notes/${encodeURIComponent(r.id)}`)},onDelete:G},r.id)}),c&&t.chain.length>1&&!a&&(0,z.jsx)(ge,{variant:`expand`,onClick:()=>Ne(i)}),c&&a&&o&&L&&L(n)&&(0,z.jsx)(ge,{loading:s,variant:`loadMore`,onClick:()=>Pe(i,n)}),!r&&(0,z.jsx)(ft,{})]},t.mainReply.id)}),k&&(0,z.jsx)(`div`,{className:`flex flex-col items-center justify-center text-center`,children:(0,z.jsx)(de,{size:`md`})})]}),I&&(0,z.jsx)(`div`,{ref:j,className:`h-1`})]})})]})]}),!F&&(0,z.jsxs)(`div`,{className:`pointer-events-none visible! sticky bottom-0 hidden items-end justify-between px-10 pb-[42px] lg:flex!`,children:[(0,z.jsx)(`div`,{className:`pointer-events-auto text-gray-600`,children:x(V.content??``)}),(0,z.jsxs)(`div`,{className:`pointer-events-auto min-w-10 text-right text-gray-600 transition-all duration-200 ease-out`,children:[Le,`%`]},Le)]})]})})}):(0,z.jsx)(`div`,{className:`max-h-full overflow-auto rounded-md ${n===`DARK`&&`dark`} ${(n===`LIGHT`||n===`SEPIA`)&&`light`} ${H[n].background}`,children:(0,z.jsx)(`div`,{className:`flex h-full flex-col`,children:(0,z.jsx)(`div`,{className:`relative flex-1`,children:(0,z.jsx)(`div`,{className:`sticky top-0 z-50 flex h-[102px] items-center justify-center rounded-t-md border-b max-md:h-[68px] ${H[n].background} ${H[n].border}`,children:(0,z.jsxs)(`div`,{className:`grid w-full px-8 max-lg:px-4`,style:{gridTemplateColumns:`1fr minmax(0,${K}) 1fr`},children:[(0,z.jsx)(`div`,{className:`flex items-center`,children:(0,z.jsx)(S,{className:H[n].button,onClick:t})}),(0,z.jsx)(`div`,{className:`col-[2/3] mx-auto flex w-full items-center gap-3 max-md:hidden`,children:(0,z.jsx)(`div`,{className:`grow text-center`,children:(0,z.jsx)(`span`,{children:`Error loading article.`})})})]})})})})})},ht=({isLoading:e,activities:t,currentTopic:n,fetchNextPage:r,hasNextPage:o,isFetchingNextPage:s,onTopicChange:c})=>{let d=p(),{canGoBack:m,goBack:h}=a(),[g,v]=(0,R.useState)(!1),y=i(),{topicsQuery:ee}=ae(),{data:b}=ee,x=b&&b.topics.length>0;(0,R.useEffect)(()=>{v(!!y.postId)},[y.postId]);let S=(0,R.useRef)(null),C=(0,R.useRef)(null),w=(0,R.useRef)(null);(0,R.useEffect)(()=>(S.current&&S.current.disconnect(),S.current=new IntersectionObserver(e=>{e[0].isIntersecting&&o&&!s&&r()}),C.current&&S.current.observe(C.current),w.current&&S.current.observe(w.current),()=>{S.current&&S.current.disconnect()}),[o,s,r]);let T=Math.max(0,Math.floor(t.length*.75)-1);return(0,z.jsxs)(pe,{children:[x&&(0,z.jsx)(L,{currentTopic:n,excludeTopics:[`top`],onTopicChange:c}),(0,z.jsx)(`div`,{className:`flex w-full flex-col`,children:(0,z.jsx)(`div`,{className:`w-full`,children:t.length>0?(0,z.jsx)(`div`,{className:`my-4`,children:(0,z.jsx)(`div`,{className:`mx-auto flex min-h-[calc(100dvh_-_117px)] items-start gap-11`,children:(0,z.jsx)(`div`,{className:`flex w-full min-w-0 flex-col items-center`,children:(0,z.jsxs)(`div`,{className:`flex w-full min-w-0 flex-col items-start`,children:[(0,z.jsxs)(`ul`,{className:`mx-auto flex w-full flex-col`,"data-testid":`inbox-list`,children:[t.map((n,r)=>(0,z.jsxs)(`li`,{"data-testid":`inbox-item`,"data-test-view-article":!0,children:[(0,z.jsx)(P,{actor:n.actor,allowDelete:n.object.authored,commentCount:n.object.replyCount??0,isLoading:e,isPending:N(n.id),layout:`inbox`,likeCount:n.object.likeCount??0,object:n.object,repostCount:n.object.repostCount??0,type:n.type,onClick:()=>{d(`/reader/${encodeURIComponent(n.id)}`)}}),r<t.length-1&&(0,z.jsx)(fe,{}),r===T&&(0,z.jsx)(`div`,{ref:C,className:`h-1`})]},`${n.id}-${n.type}-${r}`)),s&&(0,z.jsx)(`li`,{className:`flex flex-col items-center justify-center gap-4 text-center`,children:(0,z.jsx)(de,{size:`md`})})]}),(0,z.jsx)(`div`,{ref:w,className:`h-1`})]})})})}):n===`following`?(0,z.jsx)(`div`,{className:`mt-[24vh]`,children:(0,z.jsx)(f,{actions:x?(0,z.jsx)(u,{onClick:()=>d(`/explore`),children:`Find accounts to follow →`}):(0,z.jsx)(u,{asChild:!0,children:(0,z.jsx)(`a`,{href:`https://explore.ghost.org/social-web`,rel:`noopener noreferrer`,target:`_blank`,children:`Find accounts to follow →`})}),description:`Start following publishers to see their long-form posts here.`,title:`Your Reader is empty`,children:(0,z.jsx)(l,{})})}):(0,z.jsx)(`div`,{className:`mt-[24vh]`,children:(0,z.jsx)(f,{description:`Explore other topics for more content.`,title:`Nothing here yet`,children:(0,z.jsx)(l,{})})})})}),(0,z.jsx)(ie,{open:g,onOpenChange:e=>{e||(m?h():d(`/reader`)),v(e)},children:(0,z.jsxs)(I,{className:`inset-y-3 h-[calc(100vh-24px)] w-screen max-w-[calc(100vw-24px)] animate-none! p-0 focus:outline-hidden dark:bg-gray-950`,children:[(0,z.jsxs)(D,{className:`hidden`,children:[(0,z.jsx)(_,{children:`Reader`}),(0,z.jsx)(k,{children:`Ghost reader for long form articles`})]}),y.postId&&(0,z.jsx)(mt,{postId:y.postId,onClose:()=>{m?h():d(`/reader`)}})]})})]})},gt=()=>{let[e,t]=(0,R.useState)(`following`),{inboxQuery:n}=A({enabled:e===`following`}),{discoveryFeedQuery:r}=se({enabled:e!==`following`,topic:e}),{data:i,error:a,fetchNextPage:o,hasNextPage:s,isFetchingNextPage:c,isLoading:l}=e===`following`?n:r,u=a&&m(a)&&a.statusCode===404&&e!==`following`;return a&&m(a)&&!u?(0,z.jsx)(ce,{errorCode:a.code,statusCode:a.statusCode}):(0,z.jsx)(ht,{activities:u?[]:i?.pages.flatMap(e=>e.posts)??Array.from({length:5},(e,t)=>({id:`placeholder-${t}`,object:{}})),currentTopic:e,fetchNextPage:o,hasNextPage:s,isFetchingNextPage:c,isLoading:l,onTopicChange:t})};export{gt as default};
|
|
4126
|
+
`);return S.current!==l&&(S.current=l,_(!0),a.srcdoc=D),()=>{window.removeEventListener(`message`,o),a.removeEventListener(`load`,c);let e=a.contentWindow;e&&e.removeEventListener(`keydown`,s)}},[T,i,r,t,D,n,e,E]),(0,R.useEffect)(()=>{E()},[E]),(0,R.useEffect)(()=>{let e=h.current;if(!e)return;let t=e.contentDocument||e.contentWindow?.document;if(!t)return;let n=t.documentElement;n.style.setProperty(`--font-size`,c),n.classList.remove(`has-sans-body`,`has-serif-body`),n.classList.add(`has-${l}-body`),n.classList.remove(`has-dark-text`,`has-light-text`),n.classList.add(`has-${C?`light`:`dark`}-text`),s===`SEPIA`?n.classList.add(`has-sepia-bg`):n.classList.remove(`has-sepia-bg`);let r=e.contentWindow;if(r&&typeof r.resizeIframe==`function`)r.resizeIframe();else{let e=new Event(`resize`);t.dispatchEvent(e)}},[c,l,s,C]),(0,R.useEffect)(()=>{let e=h.current;if(!e)return;let t=()=>{if(!e.contentDocument)return;let t=Array.from(e.contentDocument.querySelectorAll(`.gh-content > :is(h2, h3, h4, h5, h6)[id]`));if(t.length===0)return;let n=Math.min(...t.map(e=>parseInt(e.tagName[1]))),r=t.map((e,t)=>{let r=`heading-${t}`;e.id=r;let i=parseInt(e.tagName[1])-n+1;return{id:r,text:e.textContent||``,level:i,element:e}});u?.(r),f?.(e)};return e.addEventListener(`load`,t),()=>e.removeEventListener(`load`,t)},[u,f]),(0,R.useEffect)(()=>{p?.(g)},[g,p]),(0,z.jsx)(`div`,{className:`w-full pb-6`,children:(0,z.jsxs)(`div`,{className:`relative -mx-6`,children:[g&&(0,z.jsxs)(`div`,{className:`mx-auto mt-6 w-full max-w-[640px] max-lg:px-4`,children:[(0,z.jsxs)(`div`,{className:`mb-6 flex flex-col gap-2`,children:[(0,z.jsx)(d,{className:`h-8`}),(0,z.jsx)(d,{className:`h-8 w-full max-w-md`})]}),(0,z.jsx)(d,{className:`mt-2 h-4`,count:4,randomize:!0}),(0,z.jsx)(d,{className:`mt-8 h-[400px]`}),(0,z.jsx)(d,{className:`mt-2 h-4`,containerClassName:`block mt-7 mb-4`,count:8,randomize:!0})]}),(0,z.jsx)(`iframe`,{ref:h,id:`gh-ap-article-iframe`,style:{width:`100%`,border:`none`,height:v,overflow:`hidden`,opacity:+!g,transition:`opacity 0.2s ease-in-out`,pointerEvents:m?`none`:`auto`},title:`Embedded Content`})]})})},ft=()=>(0,z.jsx)(`div`,{className:`h-px bg-black/[8%] dark:bg-gray-950`});function pt(e){return new DOMParser().parseFromString(e,`text/html`).querySelector(ut)!==null}var $=new Map,mt=({postId:e=null,onClose:t})=>{let{backgroundColor:n,currentFontSizeIndex:r,fontStyle:i,fontSize:a,handleColorChange:o,setFontStyle:s,increaseFontSize:c,decreaseFontSize:l,resetFontSize:u}=ye(),f=(0,R.useRef)(null),[y,b]=(0,R.useState)(!1),[x,ne]=(0,R.useState)(!1),[w,E]=(0,R.useState)(new Set),[ae,oe]=(0,R.useState)(new Set),[se,ce]=(0,R.useState)(new Set),[O,fe]=(0,R.useState)(!1),k=(0,R.useRef)(null),A=(0,R.useRef)(null),{post:pe,processedReplies:j,isLoading:M,loadMoreChildren:me,loadMoreChildReplies:N,hasMoreChildren:I,hasMoreChildReplies:L}=ve(e??``,{includeAncestors:!1}),B=pe,V=B?.object,U=B?.actor,Se=B?.object?.metadata?.ghostAuthors,Ce=V?.replyCount??0,W=V?.content??``,we=typeof V?.image==`string`?V.image:V?.image?.url,Te=(0,R.useMemo)(()=>pt(W),[W]),{contentWarning:Ee,shouldHideContentWarning:De,shouldHideSensitiveMedia:Oe,canHideSensitiveMedia:ke,revealSensitiveMedia:Ae,hideSensitiveMedia:je,revealContentWarning:Me}=de({contentWarning:V?.contentWarning,sensitive:V?.sensitive,hasMedia:!!we||(V?_(V)!==null:!1)||Te,resetKey:e??void 0});(0,R.useEffect)(()=>{if(!I)return;k.current&&k.current.disconnect();let e=f.current;if(e)return k.current=new IntersectionObserver(async e=>{if(e[0].isIntersecting&&I&&!O){fe(!0);try{await me()}catch(e){console.error(`Failed to load more top-level replies:`,e)}finally{fe(!1)}}},{root:e,rootMargin:`200px`}),A.current&&k.current.observe(A.current),()=>{k.current&&k.current.disconnect()}},[I,O,me]);function G(){}function Ne(e){E(t=>{let n=new Set(t);return n.has(e)?n.delete(e):(n.add(e),oe(t=>{let n=new Set(t);return n.add(e),n})),n})}async function Pe(e,t){if(!se.has(e)){ce(t=>new Set(t).add(e));try{N&&await N(t)}catch(e){console.error(`Failed to load more replies for chain:`,e)}finally{ce(t=>{let n=new Set(t);return n.delete(e),n})}}}let Fe=()=>{},Ie=(0,R.useRef)(null),K=`640px`,[Le,Re]=(0,R.useState)(0),[q,ze]=(0,R.useState)(!0),[J]=le(Re,100);(0,R.useEffect)(()=>{let e=f.current,t=document.getElementById(`object-content`),n=()=>{if(q||!e||!t)return;let n=t.getBoundingClientRect(),r=e.getBoundingClientRect();if(n.height<=r.height){J(100);return}let i=Math.max(0,r.top-n.top),a=t.offsetHeight-e.offsetHeight,o=Math.min(Math.max(i/a*100,0),100),s=Math.round(o/1)*1;J(s)};if(q)return;let r=new MutationObserver(n);return t&&r.observe(t,{childList:!0,subtree:!0,characterData:!0}),e?.addEventListener(`scroll`,n),n(),()=>{e?.removeEventListener(`scroll`,n),r.disconnect()}},[q,J]);let[Y,Be]=(0,R.useState)([]),[Ve,He]=(0,R.useState)(null),[X,Ue]=(0,R.useState)(null),We=(0,R.useCallback)(e=>{Be(e)},[]),Ge=(0,R.useCallback)(e=>{Ue(e)},[]);(0,R.useEffect)(()=>{if(!X?.contentDocument||!Y.length)return;let e=setTimeout(()=>{let e=f.current;if(!e)return;let t=()=>{let t=X.contentDocument;if(!t||!t.documentElement)return;let n=e.scrollTop,r=Y.map(e=>t.getElementById(e.id)).filter(e=>e!==null).map(e=>({element:e,id:e.id,top:e.offsetTop}));if(!r.length)return;let i=null;for(let e of r)if(e.top-100<=n)i=e;else break;He(i?.id||null)};return e.addEventListener(`scroll`,t),t(),()=>{e.removeEventListener(`scroll`,t)}},100);return()=>clearTimeout(e)},[X,Y,Ve]);let Z=p();return(0,R.useEffect)(()=>{let t=f.current;return()=>{t&&e&&$.set(e,t.scrollTop)}},[e]),(0,R.useEffect)(()=>{if(!q&&!M&&e&&f.current){let t=$.get(e);t!==void 0&&t>0&&setTimeout(()=>{f.current&&(f.current.scrollTop=t)},100)}},[q,M,e]),M?(0,z.jsx)(`div`,{className:`max-h-full overflow-auto rounded-md ${n===`DARK`&&`dark`} ${(n===`LIGHT`||n===`SEPIA`)&&`light`} ${H[n].background}`,children:(0,z.jsx)(`div`,{className:`flex h-full flex-col`,children:(0,z.jsxs)(`div`,{className:`relative flex-1`,children:[(0,z.jsx)(`div`,{className:`sticky top-0 z-50 flex h-[102px] items-center justify-center rounded-t-md border-b max-md:h-[68px] ${H[n].background} ${H[n].border}`,children:(0,z.jsxs)(`div`,{className:`grid w-full px-8 max-lg:px-4`,style:{gridTemplateColumns:`1fr minmax(0,${K}) 1fr`},children:[(0,z.jsx)(`div`,{className:`flex items-center`,children:(0,z.jsx)(g,{className:H[n].button,onClick:t})}),(0,z.jsxs)(`div`,{className:`col-[2/3] mx-auto flex w-full items-center gap-3 max-md:hidden`,children:[(0,z.jsx)(d,{className:`size-10 rounded-full`}),(0,z.jsxs)(`div`,{className:`grow pt-1`,children:[(0,z.jsx)(d,{className:`w-full`}),(0,z.jsx)(d,{className:`w-2/3`})]})]}),(0,z.jsx)(`div`,{className:`col-[3/4] flex items-center justify-end gap-2`,children:(0,z.jsx)(be,{backgroundColor:n,currentFontSizeIndex:r,fontStyle:i,onColorChange:o,onDecreaseFontSize:l,onFontStyleChange:s,onIncreaseFontSize:c,onOpenChange:b,onResetFontSize:u})})]})}),(0,z.jsx)(`div`,{className:`relative flex-1 max-lg:px-4`,children:(0,z.jsxs)(`div`,{className:`mx-auto mt-11 w-full max-w-[640px]`,children:[(0,z.jsxs)(`div`,{className:`mb-6 flex flex-col gap-2`,children:[(0,z.jsx)(d,{className:`h-8`}),(0,z.jsx)(d,{className:`h-8 w-full max-w-md`})]}),(0,z.jsx)(d,{className:`mt-2 h-4`,count:4,randomize:!0}),(0,z.jsx)(d,{className:`mt-8 h-[400px]`}),(0,z.jsx)(d,{className:`mt-2 h-4`,containerClassName:`block mt-7 mb-4`,count:8,randomize:!0})]})})]})})}):pe?(0,z.jsx)(`div`,{ref:f,className:`max-h-full overflow-auto rounded-md ${n===`DARK`&&`dark`} ${(n===`LIGHT`||n===`SEPIA`)&&`light`} ${H[n].background}`,"data-scrollable-container":!0,children:(0,z.jsx)(z.Fragment,{children:(0,z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,z.jsxs)(`div`,{className:`relative flex-1`,children:[(0,z.jsx)(`div`,{className:`sticky top-0 z-50 flex h-[102px] items-center justify-center rounded-t-md border-b max-md:h-[68px] ${H[n].background} ${H[n].border}`,children:(0,z.jsxs)(`div`,{className:`grid w-full px-8 max-lg:px-4`,style:{gridTemplateColumns:`1fr minmax(0,${K}) 1fr`},children:[(0,z.jsx)(`div`,{className:`flex items-center`,children:(0,z.jsx)(g,{className:H[n].button,onClick:t})}),(0,z.jsxs)(`div`,{className:`col-[2/3] mx-auto flex w-full items-center justify-between gap-3 max-md:hidden`,children:[(0,z.jsx)(te,{actor:U,isCurrentUser:V.authored,children:(0,z.jsxs)(`div`,{className:`flex cursor-pointer items-center gap-3`,children:[(0,z.jsx)(`div`,{className:`relative z-10 pt-0.5`,children:(0,z.jsx)(re,{author:U})}),(0,z.jsxs)(`div`,{className:`relative z-10 mt-0.5 flex min-w-0 cursor-pointer flex-col overflow-visible text-[1.5rem]`,onClick:e=>ue(U,Z,e),children:[(0,z.jsx)(`div`,{className:`flex w-full`,children:(0,z.jsx)(`span`,{className:`min-w-0 truncate font-semibold whitespace-nowrap text-black hover:underline dark:text-white`,children:M?(0,z.jsx)(d,{className:`w-20`}):U.name})}),(0,z.jsxs)(`div`,{className:`flex w-full`,children:[!M&&(0,z.jsx)(`span`,{className:`truncate text-gray-700 after:mx-1 after:font-normal after:text-gray-700 after:content-["·"]`,children:v(U)}),(0,z.jsx)(`span`,{className:`text-gray-700`,children:M?(0,z.jsx)(d,{className:`w-[120px]`}):m(V,!V.authored)})]})]})]})}),!V.authored&&!M&&(0,z.jsx)(D,{following:U.followedByMe??!1,handle:v(U)})]}),(0,z.jsx)(`div`,{className:`col-[3/4] flex items-center justify-end gap-2`,children:(0,z.jsx)(be,{backgroundColor:n,currentFontSizeIndex:r,fontStyle:i,onColorChange:o,onDecreaseFontSize:l,onFontStyleChange:s,onIncreaseFontSize:c,onOpenChange:b,onResetFontSize:u})})]})}),(0,z.jsxs)(`div`,{className:`relative flex-1`,children:[(0,z.jsx)(xe,{iframeElement:X,modalRef:f,tocItems:Y,onOpenChange:ne}),!M&&(0,z.jsx)(`div`,{className:`grow overflow-y-auto`,children:(0,z.jsxs)(`div`,{className:`mx-auto px-6 pt-5 pb-10`,style:{maxWidth:`904px`},children:[(0,z.jsxs)(`div`,{className:`flex flex-col items-center pb-8`,id:`object-content`,children:[De&&Ee?(0,z.jsx)(h,{className:`w-full`,label:Ee,onReveal:Me}):(0,z.jsxs)(z.Fragment,{children:[Oe&&(0,z.jsx)(ee,{className:`w-full`,onReveal:Ae}),ke&&(0,z.jsx)(`div`,{className:`mb-3 flex w-full justify-end`,children:(0,z.jsx)(T,{layout:`inline`,onHide:je})}),(0,z.jsx)(`div`,{className:`w-full`,children:(0,z.jsx)(dt,{authors:Se,backgroundColor:n,excerpt:V.summary??``,fontSize:a,fontStyle:i,heading:V.name,hideMedia:Oe,html:W,image:we,isPopoverOpen:y||x,postUrl:V?.url||``,onHeadingsExtracted:We,onIframeLoad:Ge,onLoadingChange:ze})})]}),(0,z.jsx)(`div`,{className:`-ml-3 w-full`,style:{maxWidth:K},children:(0,z.jsx)(C,{actor:U,commentCount:Ce,layout:`modal`,likeCount:V.likeCount??0,object:V,repostCount:V.repostCount??0,onLikeClick:Fe})})]}),V.type===`Tombstone`&&(0,z.jsx)(_e,{last:!0}),(0,z.jsxs)(`div`,{className:`mx-auto w-full border-t border-black/[8%] dark:border-gray-950`,style:{maxWidth:K},children:[(0,z.jsx)(he,{object:V}),(0,z.jsx)(ft,{})]}),M&&(0,z.jsx)(ie,{size:`lg`}),(0,z.jsxs)(`div`,{ref:Ie,className:`mx-auto w-full`,style:{maxWidth:K},children:[j.map((t,n)=>{let r=n===j.length-1,i=t.mainReply.id,a=w.has(i),o=ae.has(i),s=se.has(i),c=t.chain.length>0;return(0,z.jsxs)(R.Fragment,{children:[(0,z.jsx)(F,{actor:t.mainReply.actor,allowDelete:t.mainReply.object.authored,commentCount:t.mainReply.object.replyCount??0,isChainParent:c,isPending:P(t.mainReply.id),last:!c,layout:`reply`,likeCount:t.mainReply.object.likeCount??0,object:t.mainReply.object,parentId:V.id,repostCount:t.mainReply.object.repostCount??0,type:`Note`,onClick:()=>{let n=f.current;n&&e&&$.set(e,n.scrollTop),Z(`/notes/${encodeURIComponent(t.mainReply.id)}`)},onDelete:G}),c&&t.chain[0]&&(0,z.jsx)(F,{actor:t.chain[0].actor,allowDelete:t.chain[0].object.authored,commentCount:t.chain[0].object.replyCount??0,isChainContinuation:!0,isPending:P(t.chain[0].id),last:t.chain.length===1,layout:`reply`,likeCount:t.chain[0].object.likeCount??0,object:t.chain[0].object,parentId:V.id,repostCount:t.chain[0].object.repostCount??0,type:`Note`,onClick:()=>{let n=f.current;n&&e&&$.set(e,n.scrollTop),Z(`/notes/${encodeURIComponent(t.chain[0].id)}`)},onDelete:G},t.chain[0].id),c&&a&&t.chain.slice(1).map((r,i)=>{let a=i===t.chain.slice(1).length-1,o=L&&L(n),s=a&&o;return(0,z.jsx)(F,{actor:r.actor,allowDelete:r.object.authored,commentCount:r.object.replyCount??0,isChainContinuation:!0,isPending:P(r.id),last:a&&!s,layout:`reply`,likeCount:r.object.likeCount??0,object:r.object,parentId:V.id,repostCount:r.object.repostCount??0,type:`Note`,onClick:()=>{let t=f.current;t&&e&&$.set(e,t.scrollTop),Z(`/notes/${encodeURIComponent(r.id)}`)},onDelete:G},r.id)}),c&&t.chain.length>1&&!a&&(0,z.jsx)(ge,{variant:`expand`,onClick:()=>Ne(i)}),c&&a&&o&&L&&L(n)&&(0,z.jsx)(ge,{loading:s,variant:`loadMore`,onClick:()=>Pe(i,n)}),!r&&(0,z.jsx)(ft,{})]},t.mainReply.id)}),O&&(0,z.jsx)(`div`,{className:`flex flex-col items-center justify-center text-center`,children:(0,z.jsx)(ie,{size:`md`})})]}),I&&(0,z.jsx)(`div`,{ref:A,className:`h-1`})]})})]})]}),!M&&(0,z.jsxs)(`div`,{className:`pointer-events-none visible! sticky bottom-0 hidden items-end justify-between px-10 pb-[42px] lg:flex!`,children:[(0,z.jsx)(`div`,{className:`pointer-events-auto text-gray-600`,children:S(V.content??``)}),(0,z.jsxs)(`div`,{className:`pointer-events-auto min-w-10 text-right text-gray-600 transition-all duration-200 ease-out`,children:[Le,`%`]},Le)]})]})})}):(0,z.jsx)(`div`,{className:`max-h-full overflow-auto rounded-md ${n===`DARK`&&`dark`} ${(n===`LIGHT`||n===`SEPIA`)&&`light`} ${H[n].background}`,children:(0,z.jsx)(`div`,{className:`flex h-full flex-col`,children:(0,z.jsx)(`div`,{className:`relative flex-1`,children:(0,z.jsx)(`div`,{className:`sticky top-0 z-50 flex h-[102px] items-center justify-center rounded-t-md border-b max-md:h-[68px] ${H[n].background} ${H[n].border}`,children:(0,z.jsxs)(`div`,{className:`grid w-full px-8 max-lg:px-4`,style:{gridTemplateColumns:`1fr minmax(0,${K}) 1fr`},children:[(0,z.jsx)(`div`,{className:`flex items-center`,children:(0,z.jsx)(g,{className:H[n].button,onClick:t})}),(0,z.jsx)(`div`,{className:`col-[2/3] mx-auto flex w-full items-center gap-3 max-md:hidden`,children:(0,z.jsx)(`div`,{className:`grow text-center`,children:(0,z.jsx)(`span`,{children:`Error loading article.`})})})]})})})})})},ht=({isLoading:e,activities:t,currentTopic:n,fetchNextPage:r,hasNextPage:o,isFetchingNextPage:s,onTopicChange:c})=>{let d=p(),{canGoBack:m,goBack:h}=a(),[g,_]=(0,R.useState)(!1),v=i(),{topicsQuery:ee}=ce(),{data:y}=ee,b=y&&y.topics.length>0;(0,R.useEffect)(()=>{_(!!v.postId)},[v.postId]);let x=(0,R.useRef)(null),S=(0,R.useRef)(null),C=(0,R.useRef)(null);(0,R.useEffect)(()=>(x.current&&x.current.disconnect(),x.current=new IntersectionObserver(e=>{e[0].isIntersecting&&o&&!s&&r()}),S.current&&x.current.observe(S.current),C.current&&x.current.observe(C.current),()=>{x.current&&x.current.disconnect()}),[o,s,r]);let te=Math.max(0,Math.floor(t.length*.75)-1);return(0,z.jsxs)(k,{children:[b&&(0,z.jsx)(L,{currentTopic:n,excludeTopics:[`top`],onTopicChange:c}),(0,z.jsx)(`div`,{className:`flex w-full flex-col`,children:(0,z.jsx)(`div`,{className:`w-full`,children:t.length>0?(0,z.jsx)(`div`,{className:`my-4`,children:(0,z.jsx)(`div`,{className:`mx-auto flex min-h-[calc(100dvh_-_117px)] items-start gap-11`,children:(0,z.jsx)(`div`,{className:`flex w-full min-w-0 flex-col items-center`,children:(0,z.jsxs)(`div`,{className:`flex w-full min-w-0 flex-col items-start`,children:[(0,z.jsxs)(`ul`,{className:`mx-auto flex w-full flex-col`,"data-testid":`inbox-list`,children:[t.map((n,r)=>(0,z.jsxs)(`li`,{"data-testid":`inbox-item`,"data-test-view-article":!0,children:[(0,z.jsx)(F,{actor:n.actor,allowDelete:n.object.authored,commentCount:n.object.replyCount??0,isLoading:e,isPending:P(n.id),layout:`inbox`,likeCount:n.object.likeCount??0,object:n.object,repostCount:n.object.repostCount??0,type:n.type,onClick:()=>{d(`/reader/${encodeURIComponent(n.id)}`)}}),r<t.length-1&&(0,z.jsx)(E,{}),r===te&&(0,z.jsx)(`div`,{ref:S,className:`h-1`})]},`${n.id}-${n.type}-${r}`)),s&&(0,z.jsx)(`li`,{className:`flex flex-col items-center justify-center gap-4 text-center`,children:(0,z.jsx)(ie,{size:`md`})})]}),(0,z.jsx)(`div`,{ref:C,className:`h-1`})]})})})}):n===`following`?(0,z.jsx)(`div`,{className:`mt-[24vh]`,children:(0,z.jsx)(f,{actions:b?(0,z.jsx)(l,{onClick:()=>d(`/explore`),children:`Find accounts to follow →`}):(0,z.jsx)(l,{asChild:!0,children:(0,z.jsx)(`a`,{href:`https://explore.ghost.org/social-web`,rel:`noopener noreferrer`,target:`_blank`,children:`Find accounts to follow →`})}),description:`Start following publishers to see their long-form posts here.`,title:`Your Reader is empty`,children:(0,z.jsx)(u,{})})}):(0,z.jsx)(`div`,{className:`mt-[24vh]`,children:(0,z.jsx)(f,{description:`Explore other topics for more content.`,title:`Nothing here yet`,children:(0,z.jsx)(u,{})})})})}),(0,z.jsx)(se,{open:g,onOpenChange:e=>{e||(m?h():d(`/reader`)),_(e)},children:(0,z.jsxs)(fe,{className:`inset-y-3 h-[calc(100vh-24px)] w-screen max-w-[calc(100vw-24px)] animate-none! p-0 focus:outline-hidden dark:bg-gray-950`,children:[(0,z.jsxs)(ae,{className:`hidden`,children:[(0,z.jsx)(N,{children:`Reader`}),(0,z.jsx)(O,{children:`Ghost reader for long form articles`})]}),v.postId&&(0,z.jsx)(mt,{postId:v.postId,onClose:()=>{m?h():d(`/reader`)}})]})})]})},gt=()=>{let[e,t]=(0,R.useState)(`following`),{inboxQuery:n}=pe({enabled:e===`following`}),{discoveryFeedQuery:r}=A({enabled:e!==`following`,topic:e}),{data:i,error:a,fetchNextPage:o,hasNextPage:s,isFetchingNextPage:c,isLoading:l}=e===`following`?n:r,u=a&&w(a)&&a.statusCode===404&&e!==`following`;return a&&w(a)&&!u?(0,z.jsx)(me,{errorCode:a.code,statusCode:a.statusCode}):(0,z.jsx)(ht,{activities:u?[]:i?.pages.flatMap(e=>e.posts)??Array.from({length:5},(e,t)=>({id:`placeholder-${t}`,object:{}})),currentTopic:e,fetchNextPage:o,hasNextPage:s,isFetchingNextPage:c,isLoading:l,onTopicChange:t})};export{gt as default};
|