ghost 6.64.0 → 6.65.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/create-migration.js +15 -0
- package/components/tryghost-adapter-base-scheduling-0.2.4.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.6.tgz +0 -0
- package/components/tryghost-kg-lexical-html-renderer-1.5.1.tgz +0 -0
- package/components/tryghost-metafield-types-0.0.0.tgz +0 -0
- package/content/themes/casper/assets/built/casper.js +1 -1
- package/content/themes/casper/assets/built/screen.css +1 -1
- package/content/themes/casper/assets/css/screen.css +15 -2
- package/content/themes/casper/assets/js/init.js +37 -9
- package/content/themes/casper/package.json +8 -8
- package/content/themes/source/assets/built/screen.css +1 -1
- package/content/themes/source/assets/built/source.js +1 -1
- package/content/themes/source/assets/css/screen.css +14 -1
- package/content/themes/source/assets/js/main.js +24 -4
- package/content/themes/source/package.json +7 -7
- package/core/boot.js +22 -16
- package/core/bridge.js +1 -1
- package/core/built/admin/assets/Combination-DQ6f9A5P.js +41 -0
- package/core/built/admin/assets/{PolarAngleAxis-a81ieQUO.js → PolarAngleAxis-BBaU7PRV.js} +1 -1
- package/core/built/admin/assets/RadialBarChart-Bp20JPnA.js +1 -0
- package/core/built/admin/assets/{about-39CAfroa.js → about-Dp43j18M.js} +1 -1
- package/core/built/admin/assets/accordion-h62UzFhj.js +1 -0
- package/core/built/admin/assets/account-migration-CBTbtX6Q.js +1 -0
- package/core/built/admin/assets/action-list-DC9QpX-l.js +1 -0
- package/core/built/admin/assets/activitypub/{account-migration-KA6Jjf9L.js → account-migration-B1DUZS4Q.js} +8 -8
- package/core/built/admin/assets/activitypub/activitypub.js +24 -11
- package/core/built/admin/assets/activitypub/avatar-CRGud8yf.js +153 -0
- package/core/built/admin/assets/activitypub/{avatar-flipboard-csQaNeYK.js → avatar-flipboard-BZNFAXfm.js} +3 -3
- package/core/built/admin/assets/activitypub/{bluesky-sharing-C7nTDMvw.js → bluesky-sharing-Cg_v-LwS.js} +30 -31
- package/core/built/admin/assets/activitypub/{chunk-KS7C4IRE-Ck3O4oo2.js → chunk-KS7C4IRE-CTUL98Lc.js} +2498 -1885
- package/core/built/admin/assets/activitypub/{content-formatters-CLcjaBwV.js → content-formatters-D7GWP7nH.js} +23 -24
- package/core/built/admin/assets/activitypub/{copy-DcOh8kXw.js → copy-CgzTvoeR.js} +2 -2
- package/core/built/admin/assets/activitypub/{domain-fZ-X8i4-.js → domain-C3G_nkHU.js} +46 -46
- package/core/built/admin/assets/activitypub/{edit-profile-BqMLQV88.js → edit-profile-C8cCY-AK.js} +927 -928
- package/core/built/admin/assets/activitypub/{explore-B4yPoP8E.js → explore-NlDT4inq.js} +11 -11
- package/core/built/admin/assets/activitypub/{feed-BRC_mvAe.js → feed-DF22jCTV.js} +10 -10
- package/core/built/admin/assets/activitypub/{field-COacNgOt.js → field-95-iuTte.js} +4 -4
- package/core/built/admin/assets/activitypub/{hash-C7u-irQQ.js → hash-R7LMLnhY.js} +2 -2
- package/core/built/admin/assets/activitypub/{inbox-CbTTdDQ3.js → inbox-DUJUiV6x.js} +2 -2
- package/core/built/admin/assets/activitypub/{inbox-BW-yvUoN.js → inbox-DerExBzA.js} +416 -414
- package/core/built/admin/assets/activitypub/{label-kPMmYI7l.js → label-EwCn1QYc.js} +4 -4
- package/core/built/admin/assets/activitypub/layout-Dy6NnW1G.js +1 -0
- package/core/built/admin/assets/activitypub/{moderation-CuidJzc0.js → moderation-BSkfiVYo.js} +73 -75
- package/core/built/admin/assets/activitypub/{note-CAMRRSqD.js → note-DOnAJTXK.js} +9 -9
- package/core/built/admin/assets/activitypub/{notifications-BmNlXGgp.js → notifications-DZc6XTjG.js} +27 -27
- package/core/built/admin/assets/activitypub/{onboarding-Dmun9jr_.js → onboarding-8vEIwYTH.js} +3 -3
- package/core/built/admin/assets/activitypub/{onboarding-Bqg7fh_L.js → onboarding-DYVqbNmp.js} +2 -2
- package/core/built/admin/assets/activitypub/{preferences--oH19wf9.js → preferences-DDok6F2N.js} +1418 -1390
- package/core/built/admin/assets/activitypub/{profile-DH_tQx2D.js → profile-DjVa2hUk.js} +254 -255
- package/core/built/admin/assets/activitypub/{reply-Cap9PxSH.js → reply-DtXBpHxu.js} +2 -2
- package/core/built/admin/assets/activitypub/routes-Cw302e1c.js +4946 -0
- package/core/built/admin/assets/activitypub/{separator-CAxxu8VV.js → separator-FpRpVDd3.js} +8 -9
- package/core/built/admin/assets/activitypub/settings-yK-puALn.js +314 -0
- package/core/built/admin/assets/activitypub/{site-BYps63oh.js → site-CHw0R2PA.js} +2 -2
- package/core/built/admin/assets/activitypub/{step-1-CKjR2KAm.js → step-1-737bnvxk.js} +7 -7
- package/core/built/admin/assets/activitypub/{step-2-B6PKfOUQ.js → step-2-DBaIsAsM.js} +7 -7
- package/core/built/admin/assets/activitypub/{step-3-C-qBbcUo.js → step-3-BBmy9m9V.js} +23 -23
- package/core/built/admin/assets/activitypub/tabs-LQ2xirdm.js +1101 -0
- package/core/built/admin/assets/activitypub/{topic-filter-DsUOuu0k.js → topic-filter-75Nu0CKj.js} +4 -4
- package/core/built/admin/assets/activitypub/{use-activity-pub-queries-CX9snsLs.js → use-activity-pub-queries-CYI2QJMs.js} +58 -58
- package/core/built/admin/assets/activitypub/{use-navigate-with-base-path-DsJTGDSS.js → use-navigate-with-base-path-B4jZ8hyg.js} +3924 -1403
- package/core/built/admin/assets/activitypub/{use-reply-chain-data-AJi9zkzm.js → use-reply-chain-data-BHmFxc3U.js} +6 -6
- package/core/built/admin/assets/activitypub/users-CSjOwpT9.js +886 -0
- package/core/built/admin/assets/activitypub/{x-DR8AT3-4.js → x-B9ptWCds.js} +2 -2
- package/core/built/admin/assets/{add-integration-modal-B12oRifD.js → add-integration-modal-BwePhq95.js} +1 -1
- package/core/built/admin/assets/add-newsletter-modal-Zv0I7Msm.js +1 -0
- package/core/built/admin/assets/{add-recommendation-modal-CJf92edY.js → add-recommendation-modal-cdLv0wHy.js} +1 -1
- package/core/built/admin/assets/analytics-DY8_SaP7.js +1 -0
- package/core/built/admin/assets/announcement-bar-modal-C-2yWwag.js +1 -0
- package/core/built/admin/assets/api-keys-BHKATUqQ.js +1 -0
- package/core/built/admin/assets/{audience-6GXevic-.js → audience-wRcSN0jV.js} +1 -1
- package/core/built/admin/assets/{automated-emails-DJQ4uNZo.js → automated-emails-CzUa3v4d.js} +1 -1
- package/core/built/admin/assets/automations-DupSsSOr.js +1 -0
- package/core/built/admin/assets/badge-CI1Z0xyG.js +1 -0
- package/core/built/admin/assets/bluesky-sharing-B8PC1SBj.js +1 -0
- package/core/built/admin/assets/box-LUuYRT-1.js +1 -0
- package/core/built/admin/assets/brand-icon-CrmbX86T.js +1 -0
- package/core/built/admin/assets/breadcrumb-DDDpzLyo.js +1 -0
- package/core/built/admin/assets/button-D414TI3B.js +1 -0
- package/core/built/admin/assets/calendar-Cp_opo3i.js +1 -0
- package/core/built/admin/assets/card-C2dfd5u0.js +1 -0
- package/core/built/admin/assets/chart-B_UNLXse.js +63 -0
- package/core/built/admin/assets/chart-helpers-Czu_9QpJ.js +1 -0
- package/core/built/admin/assets/checkbox-CFFqf0Nh.js +1 -0
- package/core/built/admin/assets/{chunk.368.22ce1b732c0b40abd3f1.js → chunk.201.6961b57ed7a281ac193e.js} +23 -19
- package/core/built/admin/assets/chunk.524.0b850e72ec49a0fa3882.js +25 -0
- package/core/built/admin/assets/chunk.582.db2ae9e968256e8d58ac.js +27 -0
- package/core/built/admin/assets/code-editor-view-Bd_nnHKk.js +1 -0
- package/core/built/admin/assets/code-editor-view-BeU3Yf9M.js +1 -0
- package/core/built/admin/assets/color-picker-Bzm1V7qg.js +3 -0
- package/core/built/admin/assets/color-picker-field-DP0moHz9.js +1 -0
- package/core/built/admin/assets/combobox-6_ruuTuj.js +1 -0
- package/core/built/admin/assets/command-B5wfm6pd.js +1 -0
- package/core/built/admin/assets/comments-BB26dUSl.js +1 -0
- package/core/built/admin/assets/confirmation-context-znVJD4pX.js +1 -0
- package/core/built/admin/assets/container-CHHif8km.js +1 -0
- package/core/built/admin/assets/{content-api-modal-0ZjuLcQ8.js → content-api-modal-DOHwl0yZ.js} +1 -1
- package/core/built/admin/assets/context-menu-BpY46Dlb.js +1 -0
- package/core/built/admin/assets/copy-field-DRBx6Ady.js +1 -0
- package/core/built/admin/assets/create-ghost-browse-value-source-eIXo5Qws.js +1 -0
- package/core/built/admin/assets/custom-field-type-option-DrSlETOI.js +1 -0
- package/core/built/admin/assets/custom-integration-modal-Dgo425Ec.js +1 -0
- package/core/built/admin/assets/data-list-DM8yqpXi.js +1 -0
- package/core/built/admin/assets/date-range-select-DdC23c13.js +1 -0
- package/core/built/admin/assets/design-and-theme-modal-CbSu9IT4.js +2 -0
- package/core/built/admin/assets/detail-page-CN4NdhpV.js +1 -0
- package/core/built/admin/assets/dirty-confirm-dialog-BT_Vq9TD.js +1 -0
- package/core/built/admin/assets/{disabled-sources-indicator-CLZhMv8J.js → disabled-sources-indicator-C5xtW0Q2.js} +1 -1
- package/core/built/admin/assets/dist-B40T-RCQ.js +1 -0
- package/core/built/admin/assets/dist-CrlaEoaK.js +1 -0
- package/core/built/admin/assets/domain-BPReCZa8.js +1 -0
- package/core/built/admin/assets/dropzone-B2auMkf2.js +5 -0
- package/core/built/admin/assets/edit-profile-B7XTBzKe.js +1 -0
- package/core/built/admin/assets/editor-BcaC9dqm.js +8 -0
- package/core/built/admin/assets/editor-screen-FuMpItC8.js +27 -0
- package/core/built/admin/assets/email-sending-status-provider-9d81o1C2.js +1 -0
- package/core/built/admin/assets/embed-signup-form-modal-CbVbMsxl.js +8 -0
- package/core/built/admin/assets/empty-indicator-CSQts7GV.js +1 -0
- package/core/built/admin/assets/explore-DbSXFTJN.js +1 -0
- package/core/built/admin/assets/feature-image-placeholder-DFXA4vfJ.js +1 -0
- package/core/built/admin/assets/feed-W7RlF-Gp.js +1 -0
- package/core/built/admin/assets/field-BXEh3ptU.js +1 -0
- package/core/built/admin/assets/filter-sources-DHK2IoCk.js +1 -0
- package/core/built/admin/assets/filters-0SYNTqyQ.js +1 -0
- package/core/built/admin/assets/filters-DTtZKQyq.js +1 -0
- package/core/built/admin/assets/{first-promoter-modal-wr73Dldc.js → first-promoter-modal-DcoN_OXu.js} +1 -1
- package/core/built/admin/assets/{ghost-a1e6e172c6917e8ef8fa6b0007756d9b.js → ghost-25495154132af7305cb7b646fd83f48f.js} +562 -514
- package/core/built/admin/assets/gift-link-modal-BX-Q1TOk.js +1 -0
- package/core/built/admin/assets/grid-BEUIDQX7.js +1 -0
- package/core/built/admin/assets/growth-G6PLO4aF.js +1 -0
- package/core/built/admin/assets/growth-tkD-fBOY.js +3 -0
- package/core/built/admin/assets/heading-ih-fOVqF.js +1 -0
- package/core/built/admin/assets/history-modal-Ca-gStoq.js +1 -0
- package/core/built/admin/assets/html-field-B3CrKV9Y.js +1 -0
- package/core/built/admin/assets/images-H-BIm8OQ.js +1 -0
- package/core/built/admin/assets/{inbox-DgSZ6w2p.js → inbox-DBbDVMPz.js} +14 -14
- package/core/built/admin/assets/index-DOF2jDq0.js +4 -0
- package/core/built/admin/assets/index-JrrNchW1.css +2 -0
- package/core/built/admin/assets/input-group-CvH-3d3F.js +1 -0
- package/core/built/admin/assets/input-surface-CL23Mlh8.js +1 -0
- package/core/built/admin/assets/integration-header-C7GXGis_.js +1 -0
- package/core/built/admin/assets/invite-user-modal-EJ2_6RpV.js +1 -0
- package/core/built/admin/assets/isPlainObject-BzzgUf1E.js +1 -0
- package/core/built/admin/assets/{koenig-lexical-CXVgQFUk.js → koenig-lexical-Dkwee5FG.js} +1 -1
- package/core/built/admin/assets/koenig-loader-BzXCXHoA.js +2 -0
- package/core/built/admin/assets/kpi-card-iCDUTgOR.js +1 -0
- package/core/built/admin/assets/kpi-card-jTnpLKGr.js +1 -0
- package/core/built/admin/assets/kpi-helpers-Criu0YAf.js +1 -0
- package/core/built/admin/assets/kpi-tabs-DbOmmyOo.js +1 -0
- package/core/built/admin/assets/label-Du0yqMqL.js +1 -0
- package/core/built/admin/assets/label-picker-Bq1XXr1D.js +1 -0
- package/core/built/admin/assets/{labels-KMkFoRG6.js → labels-0x2NfLtC.js} +1 -1
- package/core/built/admin/assets/layout-Ckwzsnsu.js +1 -0
- package/core/built/admin/assets/lib-CCz2mjm8.js +2 -0
- package/core/built/admin/assets/link-helpers-o9GgBTni.js +1 -0
- package/core/built/admin/assets/{links-FwNCVyVe.js → links-Ctujreuh.js} +1 -1
- package/core/built/admin/assets/list-page-CH_wnDC3.js +1 -0
- package/core/built/admin/assets/member-activity-CsAh6MxK.js +1 -0
- package/core/built/admin/assets/member-activity-feed-0ytsQbtY.js +1 -0
- package/core/built/admin/assets/member-custom-fields-CTFGnnYv.js +1 -0
- package/core/built/admin/assets/member-detail-QU3vB1ML.js +1 -0
- package/core/built/admin/assets/members-CtMVO_AB.js +4 -0
- package/core/built/admin/assets/modal-page-8Ipfl51B.js +1 -0
- package/core/built/admin/assets/moderation-B8VtA-W0.js +1 -0
- package/core/built/admin/assets/multi-select-combobox-_9wEYmGv.js +1 -0
- package/core/built/admin/assets/navigation-modal-CGcjJvkc.js +1 -0
- package/core/built/admin/assets/newsletter-BpHjjqmq.js +1 -0
- package/core/built/admin/assets/newsletter-detail-modal-DzTbGOyo.js +1 -0
- package/core/built/admin/assets/newsletter-emails-BMKH4Osp.js +1 -0
- package/core/built/admin/assets/newsletters-BxC84_cL.js +1 -0
- package/core/built/admin/assets/note-BPtEzzZS.js +1 -0
- package/core/built/admin/assets/notifications-ng3ulEdp.js +1 -0
- package/core/built/admin/assets/offers-container-modal-CwqnRa3T.js +1 -0
- package/core/built/admin/assets/onboarding-route-CplZzd7F.js +1 -0
- package/core/built/admin/assets/overview-B0yD9OoX.js +1 -0
- package/core/built/admin/assets/overview-C4eJzQqi.js +1 -0
- package/core/built/admin/assets/page-header-CdCpekG9.js +1 -0
- package/core/built/admin/assets/pagemenu-CKQD9hoP.js +1 -0
- package/core/built/admin/assets/pages-route-CKsnxIvw.js +1 -0
- package/core/built/admin/assets/{pintura-modal-BljM7hf8.js → pintura-modal-C5jzeyGk.js} +1 -1
- package/core/built/admin/assets/portal-frame-DYo0bh0E.js +1 -0
- package/core/built/admin/assets/portal-modal-C0d8xjKa.js +1 -0
- package/core/built/admin/assets/post-analytics-C5C7IyAm.js +1 -0
- package/core/built/admin/assets/post-analytics-header-DKWHwoK2.js +1 -0
- package/core/built/admin/assets/{post-analytics-provider-CgreZDjS.js → post-analytics-provider-BqCPPxmW.js} +1 -1
- package/core/built/admin/assets/post-share-modal-wxmqbAv_.js +1 -0
- package/core/built/admin/assets/posts-list-screen-B978ZO0R.js +2 -0
- package/core/built/admin/assets/posts-route-CDqxKazl.js +1 -0
- package/core/built/admin/assets/preferences-CnejTRc4.js +5 -0
- package/core/built/admin/assets/preview-chrome-C7yZWVLZ.js +1 -0
- package/core/built/admin/assets/preview-modal-CFUxUGHp.js +1 -0
- package/core/built/admin/assets/profile-ClRGiOqA.js +1 -0
- package/core/built/admin/assets/radio-group-CTmLo0h9.js +1 -0
- package/core/built/admin/assets/router-provider-DDZvgS3V.js +1 -0
- package/core/built/admin/assets/select-D_4xWFYv.js +1 -0
- package/core/built/admin/assets/settings-BRl7-7a9.js +1 -0
- package/core/built/admin/assets/settings-BoQcPa-y.js +4 -0
- package/core/built/admin/assets/settings-breadcrumbs-C9Yxl81q.js +1 -0
- package/core/built/admin/assets/{dist-BXHrDV19.js → shade-scope-Cccj-c7I-D0XwkdKQ.js} +5 -3
- package/core/built/admin/assets/share-modal-DBqZobuR.js +1 -0
- package/core/built/admin/assets/simple-pagination-D5t_ox6x.js +1 -0
- package/core/built/admin/assets/skeleton-CPcTiTSX.js +1 -0
- package/core/built/admin/assets/{slack-modal-D7W_fNON.js → slack-modal-BF9ex8cd.js} +1 -1
- package/core/built/admin/assets/sort-button-C0EXGjnS.js +1 -0
- package/core/built/admin/assets/{source-icon-CQboPZQ3.js → source-icon-BzzftCQ2.js} +1 -1
- package/core/built/admin/assets/stats-view-CzpGoHzF.js +1 -0
- package/core/built/admin/assets/{step-1-BKhjy0PV.js → step-1-CBUYUPPF.js} +1 -1
- package/core/built/admin/assets/{step-2-PxA1OM7R.js → step-2-CEIXUwQa.js} +1 -1
- package/core/built/admin/assets/{step-3-BJbAiq16.js → step-3-C1HA5i1N.js} +2 -2
- package/core/built/admin/assets/stripe-button-DMFsLs80.js +1 -0
- package/core/built/admin/assets/stripe-connect-modal-CEvxCUTv.js +1 -0
- package/core/built/admin/assets/switch-DoOJF2yg.js +1 -0
- package/core/built/admin/assets/table-BDYbUHJz.js +1 -0
- package/core/built/admin/assets/tabs-BZyz4ZCH.js +1 -0
- package/core/built/admin/assets/tag-detail-CFzaz_9E.js +2 -0
- package/core/built/admin/assets/tag-picker-BKUCZuRc.js +1 -0
- package/core/built/admin/assets/tags-Bs1FiD7m.js +1 -0
- package/core/built/admin/assets/{testimonials-modal-Dkt6ODLW.js → testimonials-modal-CVm0_7E-.js} +1 -1
- package/core/built/admin/assets/text-BLI0C8Mc.js +1 -0
- package/core/built/admin/assets/textarea-C5qolByg.js +1 -0
- package/core/built/admin/assets/tier-detail-modal-Cmwzi-e7.js +1 -0
- package/core/built/admin/assets/toggle-group-BTL1QsWY.js +1 -0
- package/core/built/admin/assets/{topic-filter-DVOe3D-b.js → topic-filter-BMjhquv7.js} +1 -1
- package/core/built/admin/assets/transistor-modal-hMv53jF8.js +1 -0
- package/core/built/admin/assets/trend-badge-1w_HEzkG.js +1 -0
- package/core/built/admin/assets/{unsplash-modal-DXt7Brum.js → unsplash-modal-jzC8lEB2.js} +1 -1
- package/core/built/admin/assets/use-analytics-data-B3lGOxsC.js +1 -0
- package/core/built/admin/assets/use-availability-DnKqOyqd.js +1 -0
- package/core/built/admin/assets/{use-check-theme-limit-error-JD-J5aaZ.js → use-check-theme-limit-error-C1tc2P4N.js} +2 -2
- package/core/built/admin/assets/use-filter-params-DU-aiaTb.js +1 -0
- package/core/built/admin/assets/{use-filterable-api-CEMSAYPg.js → use-filterable-api-CxCrnPxG.js} +1 -1
- package/core/built/admin/assets/use-growth-stats-E13rMQUE.js +1 -0
- package/core/built/admin/assets/use-limiter-DlL7au90.js +19 -0
- package/core/built/admin/assets/{use-navigate-with-base-path-88EQpw2k.js → use-navigate-with-base-path-BzgNwMAx.js} +1 -1
- package/core/built/admin/assets/{use-pintura-config-BmU45Ruy.js → use-pintura-config-CtEV1JQY.js} +1 -1
- package/core/built/admin/assets/{use-pintura-editor-Bz2bZ4iT.js → use-pintura-editor-CaxE64kD.js} +1 -1
- package/core/built/admin/assets/use-reply-chain-data-BST2OgCM.js +1 -0
- package/core/built/admin/assets/use-sending-eta-DR9ueMH8.js +1 -0
- package/core/built/admin/assets/use-setting-group-ldtX1Vsk.js +1 -0
- package/core/built/admin/assets/use-settings-navigation-CzGU4sus.js +1 -0
- package/core/built/admin/assets/use-staff-users-DoeXaPsb.js +1 -0
- package/core/built/admin/assets/use-tinybird-query-BaBNCaj0.js +1 -0
- package/core/built/admin/assets/{use-tinybird-token-Lk1RSn0t.js → use-tinybird-token-CnZ19NDf.js} +1 -1
- package/core/built/admin/assets/{use-url-input-DpmbDppC.js → use-url-input-C5KHJw79.js} +1 -1
- package/core/built/admin/assets/user-detail-modal-Dm0KfPeR.js +1 -0
- package/core/built/admin/assets/{vendor-2dd263291938d407802568d3357ec69e.js → vendor-97e91ff8dd1457c668f9ef103ee1a77b.js} +2748 -2977
- package/core/built/admin/assets/virtual-list-tAuPUICw.js +1 -0
- package/core/built/admin/assets/web-BQlKcW2x.js +2 -0
- package/core/built/admin/assets/web-NTT5DkEz.js +1 -0
- package/core/built/admin/assets/{zapier-modal-BafLUO4R.js → zapier-modal-DsHG9Oev.js} +1 -1
- package/core/built/admin/index.html +22 -24
- package/core/frontend/apps/private-blogging/index.js +2 -2
- package/core/frontend/apps/private-blogging/lib/middleware.js +1 -1
- package/core/frontend/apps/private-blogging/lib/router.js +1 -1
- package/core/frontend/helpers/cancel_link.js +3 -3
- package/core/frontend/helpers/content.js +2 -2
- package/core/frontend/helpers/content_api_url.js +1 -1
- package/core/frontend/helpers/date.js +1 -1
- package/core/frontend/helpers/foreach.js +5 -5
- package/core/frontend/helpers/get.js +7 -4
- package/core/frontend/helpers/ghost_head.js +2 -2
- package/core/frontend/helpers/has.js +1 -3
- package/core/frontend/helpers/link.js +7 -7
- package/core/frontend/helpers/link_class.js +2 -2
- package/core/frontend/helpers/navigation.js +1 -2
- package/core/frontend/helpers/recommendations.js +5 -6
- package/core/frontend/helpers/tiers.js +1 -1
- package/core/frontend/helpers/total_members.js +1 -1
- package/core/frontend/helpers/total_paid_members.js +1 -1
- package/core/frontend/meta/author-url.js +1 -1
- package/core/frontend/meta/modified-date.js +1 -1
- package/core/frontend/meta/published-date.js +1 -1
- package/core/frontend/meta/schema.js +3 -8
- package/core/frontend/meta/structured-data.js +1 -2
- package/core/frontend/services/assets-minification/minifier.js +1 -1
- package/core/frontend/services/data/entry-lookup.js +1 -1
- package/core/frontend/services/data/fetch-data.js +2 -2
- package/core/frontend/services/rendering/format-response.js +1 -1
- package/core/frontend/services/rendering/renderer.js +3 -0
- package/core/frontend/services/rendering/templates.js +1 -1
- package/core/frontend/services/routing/controllers/static.js +1 -1
- package/core/frontend/services/routing/parent-router.js +1 -1
- package/core/frontend/services/routing/registry.js +1 -1
- package/core/frontend/services/sitemap/base-site-map-generator.js +68 -97
- package/core/frontend/services/sitemap/site-map-index-generator.js +16 -21
- package/core/frontend/services/sitemap/site-map-manager.js +82 -43
- package/core/frontend/services/sitemap/sitemap-xml.js +72 -0
- package/core/frontend/services/theme-engine/handlebars/utils.js +8 -8
- package/core/frontend/services/theme-engine/i18n/i18n.js +4 -5
- package/core/frontend/services/theme-engine/middleware/update-global-template-options.js +1 -1
- package/core/frontend/services/theme-engine/preview.js +1 -1
- package/core/frontend/utils/member-count.js +2 -2
- package/core/frontend/web/routers/serve-public-file.js +1 -1
- package/core/server/adapters/scheduling/README.md +4 -0
- package/core/server/adapters/scheduling/get-scheduler-idempotency-key.js +21 -0
- package/core/server/adapters/storage/LocalStorageBase.js +2 -1
- package/core/server/api/endpoints/automated-emails.js +8 -2
- package/core/server/api/endpoints/db.js +1 -1
- package/core/server/api/endpoints/emails.js +3 -3
- package/core/server/api/endpoints/mail.js +1 -1
- package/core/server/api/endpoints/member-signin-urls.js +1 -1
- package/core/server/api/endpoints/members.js +3 -3
- package/core/server/api/endpoints/oembed.js +1 -1
- package/core/server/api/endpoints/posts.js +1 -1
- package/core/server/api/endpoints/settings.js +2 -2
- package/core/server/api/endpoints/themes.js +5 -5
- package/core/server/api/endpoints/utils/serializers/input/pages.js +2 -2
- package/core/server/api/endpoints/utils/serializers/input/posts.js +2 -2
- package/core/server/api/endpoints/utils/serializers/input/tags.js +1 -1
- package/core/server/api/endpoints/utils/serializers/input/utils/slug-filter-order.js +4 -4
- package/core/server/api/endpoints/utils/serializers/output/mappers/comments.js +8 -5
- package/core/server/api/endpoints/utils/serializers/output/mappers/posts.js +1 -1
- package/core/server/api/endpoints/utils/serializers/output/pages.js +4 -4
- package/core/server/api/endpoints/utils/serializers/output/posts.js +4 -4
- package/core/server/api/endpoints/utils/serializers/output/search-index.js +11 -11
- package/core/server/api/endpoints/utils/serializers/output/settings.js +1 -1
- package/core/server/api/endpoints/utils/serializers/output/utils/extra-attrs.js +3 -3
- package/core/server/api/endpoints/utils/validators/input/automated_emails.js +23 -33
- package/core/server/api/endpoints/utils/validators/input/settings.js +3 -3
- package/core/server/data/exporter/exporter.js +1 -2
- package/core/server/data/exporter/table-lists.js +1 -0
- package/core/server/data/importer/handlers/image.js +1 -2
- package/core/server/data/importer/handlers/json.js +1 -3
- package/core/server/data/importer/handlers/markdown.js +4 -8
- package/core/server/data/importer/import-manager.js +1 -1
- package/core/server/data/importer/importers/content-file-importer.js +4 -8
- package/core/server/data/importer/importers/data/base.js +10 -10
- package/core/server/data/importer/importers/data/custom-theme-settings-importer.js +1 -1
- package/core/server/data/importer/importers/data/data-importer.js +3 -4
- package/core/server/data/importer/importers/data/posts-importer.js +10 -10
- package/core/server/data/importer/importers/data/products-importer.js +3 -3
- package/core/server/data/importer/importers/data/settings-importer.js +2 -2
- package/core/server/data/importer/importers/data/stripe-prices-importer.js +1 -1
- package/core/server/data/importer/importers/data/stripe-products-importer.js +1 -1
- package/core/server/data/importer/importers/data/tags-importer.js +1 -1
- package/core/server/data/importer/importers/data/users-importer.js +2 -2
- package/core/server/data/importer/importers/json-to-html.js +12 -9
- package/core/server/data/migrations/versions/5.0/2022-05-11-13-12-rename-settings.js +1 -1
- package/core/server/data/migrations/versions/6.65/2026-09-16-15-35-26-add-members-metafield-change-events.js +17 -0
- package/core/server/data/schema/fixtures/fixture-manager.js +3 -3
- package/core/server/data/schema/index.js +1 -1
- package/core/server/data/schema/schema.js +26 -0
- package/core/server/data/schema/validator.js +96 -123
- package/core/server/data/seeders/importers/email-recipients-importer.js +2 -2
- package/core/server/data/seeders/importers/members-login-events-importer.js +1 -1
- package/core/server/data/seeders/importers/members-newsletters-importer.js +1 -1
- package/core/server/data/seeders/importers/members-paid-subscription-events-importer.js +1 -1
- package/core/server/data/seeders/importers/members-status-events-importer.js +1 -1
- package/core/server/data/seeders/importers/members-stripe-customers-importer.js +1 -1
- package/core/server/data/seeders/importers/members-stripe-customers-subscriptions-importer.js +1 -1
- package/core/server/data/seeders/importers/members-subscribe-events-importer.js +2 -2
- package/core/server/data/seeders/importers/members-subscription-created-events-importer.js +1 -1
- package/core/server/data/tinybird/pipes/mv_hits.pipe +25 -20
- package/core/server/data/tinybird/scripts/docker-analytics-manager.js +2 -2
- package/core/server/ghost-server.js +1 -19
- package/core/server/lib/image/image-size.js +1 -3
- package/core/server/lib/request-external.js +53 -117
- package/core/server/models/base/plugins/actions.js +2 -3
- package/core/server/models/base/plugins/crud.js +1 -2
- package/core/server/models/base/plugins/events.js +4 -4
- package/core/server/models/base/plugins/raw-knex.js +3 -3
- package/core/server/models/base/plugins/sanitize.js +1 -1
- package/core/server/models/benefit.js +1 -1
- package/core/server/models/collection.js +1 -1
- package/core/server/models/comment.js +3 -3
- package/core/server/models/invite.js +2 -5
- package/core/server/models/label.js +3 -6
- package/core/server/models/member.js +7 -10
- package/core/server/models/newsletter.js +1 -1
- package/core/server/models/permission.js +3 -6
- package/core/server/models/post.js +20 -23
- package/core/server/models/product.js +4 -1
- package/core/server/models/relations/authors.js +9 -12
- package/core/server/models/role.js +2 -5
- package/core/server/models/settings.js +3 -3
- package/core/server/models/tag.js +2 -5
- package/core/server/models/user.js +8 -10
- package/core/server/models/webhook.js +2 -4
- package/core/server/notify.js +2 -2
- package/core/server/services/adapter-manager/utils.js +6 -1
- package/core/server/services/api-version-compatibility/legacy-api-path-match.js +2 -2
- package/core/server/services/auth/api-key/admin.js +2 -2
- package/core/server/services/auth/api-key/content.js +1 -1
- package/core/server/services/auth/passwordreset.js +1 -1
- package/core/server/services/auth/setup.js +1 -3
- package/core/server/services/automations/README.md +19 -0
- package/core/server/services/automations/poll.js +3 -1
- package/core/server/services/automations/service.js +2 -2
- package/core/server/services/automations/welcome-email-automation-poll.js +199 -293
- package/core/server/services/comments/comments-controller.js +9 -30
- package/core/server/services/comments/comments-service-email-renderer.js +1 -1
- package/core/server/services/comments/comments-service-emails.js +1 -1
- package/core/server/services/comments/comments-service.js +27 -58
- package/core/server/services/comments/comments-stats-service.js +1 -1
- package/core/server/services/content-import/import/staged-file.js +9 -9
- package/core/server/services/content-import/index.js +1 -1
- package/core/server/services/custom-redirects/validation.js +1 -1
- package/core/server/services/email-analytics/email-analytics-service-wrapper.js +23 -55
- package/core/server/services/email-analytics/index.js +35 -19
- package/core/server/services/email-analytics/jobs/email-analytics-job-scheduler.js +31 -60
- package/core/server/services/email-service/README.md +35 -0
- package/core/server/services/email-service/batch-sending-service.js +13 -14
- package/core/server/services/email-service/email-renderer.js +50 -14
- package/core/server/services/email-service/email-service-wrapper.js +3 -2
- package/core/server/services/email-service/email-service.js +33 -8
- package/core/server/services/email-service/email-templates/partials/feedback-button.hbs +2 -1
- package/core/server/services/email-service/email-templates/partials/styles.hbs +0 -6
- package/core/server/services/email-service/email-templates/template.hbs +1 -1
- package/core/server/services/email-service/jobs/send-email-job.js +12 -0
- package/core/server/services/email-service/mailgun-email-provider.js +7 -2
- package/core/server/services/email-service/sending-service.js +1 -1
- package/core/server/services/gifts/gift-service.js +12 -3
- package/core/server/services/gifts/index.js +0 -2
- package/core/server/services/gifts/jobs/index.js +12 -24
- package/core/server/services/gifts/jobs/send-gift-reminders-job.js +6 -46
- package/core/server/services/invitations/accept.js +2 -2
- package/core/server/services/jobs/job-service.js +0 -28
- package/core/server/services/jobs-service/jobs-service.js +5 -0
- package/core/server/services/jobs-service/register-job-handlers.js +17 -1
- package/core/server/services/lib/mailgun-client.js +16 -1
- package/core/server/services/lib/mailgun-recipient-message-id.js +49 -0
- package/core/server/services/limits.js +1 -1
- package/core/server/services/mail/ghost-mailer.js +1 -1
- package/core/server/services/member-attribution/member-attribution-service.js +1 -1
- package/core/server/services/member-attribution/referrer-translator.js +1 -1
- package/core/server/services/members/account-service.js +3 -3
- package/core/server/services/members/api.js +1 -1
- package/core/server/services/members/import-export/import/importer.js +25 -16
- package/core/server/services/members/import-export/import/spool.js +11 -15
- package/core/server/services/members/import-export/index.js +6 -4
- package/core/server/services/members/jobs/index.js +1 -1
- package/core/server/services/members/jobs/members-import-job.js +18 -0
- package/core/server/services/members/member-avatar.js +18 -0
- package/core/server/services/members/members-api/controllers/member-controller.js +2 -2
- package/core/server/services/members/members-api/members-api.js +4 -4
- package/core/server/services/members/members-api/repositories/event-repository.js +36 -1
- package/core/server/services/members/members-api/repositories/member-repository.js +55 -17
- package/core/server/services/members/members-api/repositories/product-repository.js +1 -1
- package/core/server/services/members/members-api/services/member-bread-service.js +4 -7
- package/core/server/services/members/service.js +7 -2
- package/core/server/services/members/stats/members-stats.js +2 -2
- package/core/server/services/members-events/event-storage.js +2 -2
- package/core/server/services/members-metafields/actions.js +23 -2
- package/core/server/services/members-metafields/bindings-service.js +5 -5
- package/core/server/services/members-metafields/definitions-service.js +2 -7
- package/core/server/services/members-metafields/index.js +2 -1
- package/core/server/services/members-metafields/queries.js +7 -1
- package/core/server/services/members-metafields/schema.js +49 -1
- package/core/server/services/members-metafields/values-service.js +112 -10
- package/core/server/services/mentions/mention-sending-service.js +2 -2
- package/core/server/services/mentions/mention.js +3 -4
- package/core/server/services/mentions/mentions-api.js +4 -1
- package/core/server/services/mentions-jobs/job-service.js +0 -28
- package/core/server/services/milestones/milestones-service.js +1 -1
- package/core/server/services/newsletters/newsletters-service.js +1 -1
- package/core/server/services/notifications/notifications.js +3 -3
- package/core/server/services/oembed/oembed-service.js +79 -3
- package/core/server/services/permissions/can-this.js +1 -2
- package/core/server/services/post-scheduling/post-scheduling.js +8 -1
- package/core/server/services/posts/post-scheduling.js +7 -0
- package/core/server/services/settings/settings-bread-service.js +3 -3
- package/core/server/services/settings/settings-utils.js +1 -1
- package/core/server/services/settings-helpers/settings-helpers.js +1 -1
- package/core/server/services/staff/staff-service-emails.js +9 -9
- package/core/server/services/stats/posts-stats-service.js +10 -10
- package/core/server/services/stats/referrers-stats-service.js +1 -1
- package/core/server/services/stats/subscription-stats-service.js +3 -3
- package/core/server/services/stats/utils/tinybird.js +8 -1
- package/core/server/services/stripe/stripe-api.js +3 -3
- package/core/server/services/stripe/stripe-migrations.js +6 -6
- package/core/server/services/themes/storage.js +21 -26
- package/core/server/services/themes/theme-storage.js +2 -2
- package/core/server/services/tiers/tier.js +15 -15
- package/core/server/services/tinybird-sync/index.js +3 -0
- package/core/server/services/tinybird-sync/tinybird-sync-service.js +7 -2
- package/core/server/services/update-check/update-check-service.js +3 -3
- package/core/server/services/webhooks/serialize.js +1 -1
- package/core/server/web/api/app.js +0 -5
- package/core/server/web/api/middleware/upload.js +29 -2
- package/core/server/web/parent/middleware/index.js +1 -1
- package/core/server/web/parent/middleware/log-request.js +5 -0
- package/core/server/web/parent/middleware/queue-request.js +104 -59
- package/core/server/web/shared/middleware/api/spam-prevention.js +2 -2
- package/core/shared/config/defaults.json +6 -1
- package/core/shared/custom-theme-settings-cache/custom-theme-settings-service.js +1 -1
- package/core/shared/labs.js +3 -2
- package/core/shared/settings-cache/cache-manager.js +1 -1
- package/nodemon.json +1 -1
- package/package.json +6 -7
- package/pnpm-lock.yaml +126 -728
- package/pnpm-workspace.yaml +4 -7
- package/tsconfig.json +1 -1
- package/components/tryghost-adapter-base-scheduling-0.2.3.tgz +0 -0
- package/core/built/admin/assets/Combination-DWfJPcz9.js +0 -41
- package/core/built/admin/assets/RadialBarChart-CHRBhiBN.js +0 -1
- package/core/built/admin/assets/_baseAssignValue-DcPokYW8.js +0 -1
- package/core/built/admin/assets/accordion-CJmRaqK7.js +0 -1
- package/core/built/admin/assets/account-migration-DYf7skbb.js +0 -1
- package/core/built/admin/assets/action-list-Crnh-_UI.js +0 -1
- package/core/built/admin/assets/activitypub/avatar-DVJF5bxP.js +0 -261
- package/core/built/admin/assets/activitypub/layout-BL4_jtuV.js +0 -1
- package/core/built/admin/assets/activitypub/routes-DdyY9uFF.js +0 -7181
- package/core/built/admin/assets/activitypub/settings-B6EEcVkW.js +0 -315
- package/core/built/admin/assets/activitypub/tabs-DLhZtVde.js +0 -1083
- package/core/built/admin/assets/activitypub/users-inweyKL5.js +0 -1499
- package/core/built/admin/assets/add-newsletter-modal-CTvXiIqY.js +0 -1
- package/core/built/admin/assets/analytics-PHR1Fggi.js +0 -1
- package/core/built/admin/assets/announcement-bar-modal-Bql0CXdp.js +0 -1
- package/core/built/admin/assets/api-keys-CubH-7_H.js +0 -1
- package/core/built/admin/assets/automations-DcZSLFDU.js +0 -1
- package/core/built/admin/assets/badge-qP06OT7C.js +0 -1
- package/core/built/admin/assets/bluesky-sharing-CJw4d4Mf.js +0 -1
- package/core/built/admin/assets/box-CZ_LSVSy.js +0 -1
- package/core/built/admin/assets/brand-icon-D3ffDYaC.js +0 -1
- package/core/built/admin/assets/breadcrumb-Chn1Ip_q.js +0 -1
- package/core/built/admin/assets/button-DvIh2Bq-.js +0 -1
- package/core/built/admin/assets/calendar-1QGoStFM.js +0 -1
- package/core/built/admin/assets/card-FHQ4D10L.js +0 -1
- package/core/built/admin/assets/chart-helpers-CNpA7re_.js +0 -1
- package/core/built/admin/assets/chart-jVz9Nf9t.js +0 -63
- package/core/built/admin/assets/checkbox-DKht9xMl.js +0 -1
- package/core/built/admin/assets/chunk.524.cc9be98e44890cedc8c8.js +0 -25
- package/core/built/admin/assets/chunk.582.e6fe742b3217207b11a6.js +0 -27
- package/core/built/admin/assets/code-editor-view-BLQIV85-.js +0 -1
- package/core/built/admin/assets/code-editor-view-Cg5eJxcr.js +0 -1
- package/core/built/admin/assets/color-picker-DQoghc0t.js +0 -3
- package/core/built/admin/assets/color-picker-field-BbeK5RRs.js +0 -1
- package/core/built/admin/assets/combobox-weO4FBbv.js +0 -1
- package/core/built/admin/assets/command-DlLrCm9V.js +0 -1
- package/core/built/admin/assets/comments-BjTitLmP.js +0 -1
- package/core/built/admin/assets/confirmation-context-IyqoXVk-.js +0 -1
- package/core/built/admin/assets/container-DAimjOF_.js +0 -1
- package/core/built/admin/assets/context-menu-BtioYFrg.js +0 -1
- package/core/built/admin/assets/copy-field-C6ujqJlP.js +0 -1
- package/core/built/admin/assets/create-ghost-browse-value-source-DAZMWZNq.js +0 -1
- package/core/built/admin/assets/custom-integration-modal-Dm8QI_J4.js +0 -1
- package/core/built/admin/assets/data-list-C0CKkeWW.js +0 -1
- package/core/built/admin/assets/date-range-select-DrjHQdgz.js +0 -1
- package/core/built/admin/assets/design-and-theme-modal-CXVOzBWu.js +0 -2
- package/core/built/admin/assets/detail-page-QpLIL-EO.js +0 -1
- package/core/built/admin/assets/dirty-confirm-dialog-DWwxREGh.js +0 -1
- package/core/built/admin/assets/dist-Bf-HQtVL.js +0 -1
- package/core/built/admin/assets/dist-CUwte9v_.js +0 -1
- package/core/built/admin/assets/dist-FEQQAwTe.js +0 -1
- package/core/built/admin/assets/domain-DBrBic6q.js +0 -1
- package/core/built/admin/assets/dropzone-D61QVcEY.js +0 -5
- package/core/built/admin/assets/edit-profile-jCqJBxqw.js +0 -1
- package/core/built/admin/assets/editor-8Fm4UBEd.js +0 -8
- package/core/built/admin/assets/editor-screen-BSX_uC2B.js +0 -27
- package/core/built/admin/assets/email-sending-status-provider-DnNhlIvt.js +0 -1
- package/core/built/admin/assets/embed-signup-form-modal-DqtBs1WE.js +0 -8
- package/core/built/admin/assets/empty-indicator-L4Ql5Db7.js +0 -1
- package/core/built/admin/assets/en-Cx75dJv5.js +0 -1
- package/core/built/admin/assets/explore-DXhDCtKw.js +0 -1
- package/core/built/admin/assets/feature-image-placeholder-e2q6TcH6.js +0 -1
- package/core/built/admin/assets/feed-mmt4noNL.js +0 -1
- package/core/built/admin/assets/field-p7KnP98B.js +0 -1
- package/core/built/admin/assets/filter-bar-CiIKBg3D.js +0 -1
- package/core/built/admin/assets/filter-sources-I-dRaQxl.js +0 -1
- package/core/built/admin/assets/filters-1injvyxJ.js +0 -1
- package/core/built/admin/assets/filters-DnpO6GWX.js +0 -1
- package/core/built/admin/assets/gift-link-modal-C3H7YFXO.js +0 -1
- package/core/built/admin/assets/grid-5vplBYri.js +0 -1
- package/core/built/admin/assets/growth-B1og1kQp.js +0 -1
- package/core/built/admin/assets/growth-Bf6OHZlK.js +0 -3
- package/core/built/admin/assets/heading-BB21QAbb.js +0 -1
- package/core/built/admin/assets/history-modal-t_qEnxPx.js +0 -1
- package/core/built/admin/assets/html-field-COLQbV4r.js +0 -1
- package/core/built/admin/assets/images-4mvoc3lB.js +0 -1
- package/core/built/admin/assets/index-B3HZU2i8.css +0 -2
- package/core/built/admin/assets/index-DDd-zhNL.js +0 -4
- package/core/built/admin/assets/inline-B8H6NzIw.js +0 -1
- package/core/built/admin/assets/input-group-CLIN2ykI.js +0 -1
- package/core/built/admin/assets/input-surface-wSO5CRy5.js +0 -1
- package/core/built/admin/assets/integration-header-CKGrXNVP.js +0 -1
- package/core/built/admin/assets/invite-user-modal-BaN2mdhI.js +0 -1
- package/core/built/admin/assets/koenig-loader-B1XPPY5C.js +0 -2
- package/core/built/admin/assets/kpi-card-CRLPVlFW.js +0 -1
- package/core/built/admin/assets/kpi-card-CRPbW8NZ.js +0 -1
- package/core/built/admin/assets/kpi-helpers-D7zT96bp.js +0 -1
- package/core/built/admin/assets/kpi-tabs-DE_yh9Go.js +0 -1
- package/core/built/admin/assets/label-CgeBxy4o.js +0 -1
- package/core/built/admin/assets/label-picker-DGDp4Vwr.js +0 -1
- package/core/built/admin/assets/layout-DWnOMly4.js +0 -1
- package/core/built/admin/assets/lib-_QYaUU89.js +0 -2
- package/core/built/admin/assets/link-helpers-8J7ixADV.js +0 -1
- package/core/built/admin/assets/list-page-DLMP0PxC.js +0 -1
- package/core/built/admin/assets/member-activity-ClMWFyvN.js +0 -1
- package/core/built/admin/assets/member-activity-feed-BQY5Rwaj.js +0 -1
- package/core/built/admin/assets/member-custom-fields-Dd_ie1zG.js +0 -1
- package/core/built/admin/assets/member-detail-DjwkGVne.js +0 -1
- package/core/built/admin/assets/members--N9lhk1N.js +0 -4
- package/core/built/admin/assets/modal-page-Dz-9TP4E.js +0 -1
- package/core/built/admin/assets/moderation-DfYBKq9s.js +0 -1
- package/core/built/admin/assets/multi-select-combobox-BcBEzUW_.js +0 -1
- package/core/built/admin/assets/navigation-modal-Cd-scywg.js +0 -1
- package/core/built/admin/assets/newsletter-detail-modal-CFRY6vg_.js +0 -1
- package/core/built/admin/assets/newsletter-emails-4ntck1AC.js +0 -1
- package/core/built/admin/assets/newsletter-o6eCJtab.js +0 -1
- package/core/built/admin/assets/newsletters-Bmlv0edG.js +0 -1
- package/core/built/admin/assets/note-CWs3LF-0.js +0 -1
- package/core/built/admin/assets/notifications-BjSvTJqh.js +0 -1
- package/core/built/admin/assets/offers-container-modal-Bc9A196w.js +0 -1
- package/core/built/admin/assets/onboarding-route-Di1LJYEE.js +0 -1
- package/core/built/admin/assets/overview-DE7NHZQN.js +0 -1
- package/core/built/admin/assets/overview-DEF-ZY6x.js +0 -1
- package/core/built/admin/assets/page-header-B-G_g42C.js +0 -1
- package/core/built/admin/assets/pagemenu-CnkTDO71.js +0 -1
- package/core/built/admin/assets/pages-route-VT7r7YhG.js +0 -1
- package/core/built/admin/assets/portal-frame-D9V8iq5x.js +0 -1
- package/core/built/admin/assets/portal-modal-B5OOR9ZD.js +0 -1
- package/core/built/admin/assets/post-analytics-header-J0WciLx6.js +0 -1
- package/core/built/admin/assets/post-analytics-rGb-PgD-.js +0 -1
- package/core/built/admin/assets/post-share-modal-D0BbTo4W.js +0 -1
- package/core/built/admin/assets/posts-list-screen-CO5jAWoU.js +0 -2
- package/core/built/admin/assets/posts-route-DV-CXWK9.js +0 -1
- package/core/built/admin/assets/preferences-Tac29oG6.js +0 -5
- package/core/built/admin/assets/preview-chrome-C2lQgZBZ.js +0 -1
- package/core/built/admin/assets/preview-modal-CjRbBr8U.js +0 -1
- package/core/built/admin/assets/profile-yiM1f_Og.js +0 -1
- package/core/built/admin/assets/radio-group-CKROWsw4.js +0 -1
- package/core/built/admin/assets/router-provider-CU87qxXw.js +0 -1
- package/core/built/admin/assets/select-CKaC4ggu.js +0 -1
- package/core/built/admin/assets/settings-81kxUa28.js +0 -1
- package/core/built/admin/assets/settings-BVXFqBVK.js +0 -4
- package/core/built/admin/assets/settings-breadcrumbs-czGRx-iu.js +0 -1
- package/core/built/admin/assets/shade-app-CcS3f8MZ-D5BnfHck.js +0 -3
- package/core/built/admin/assets/share-modal-BL-16PiB.js +0 -1
- package/core/built/admin/assets/skeleton-DwCva0-b.js +0 -1
- package/core/built/admin/assets/sort-button-Dquc83jY.js +0 -1
- package/core/built/admin/assets/stack-BURz77VS.js +0 -1
- package/core/built/admin/assets/stats-view-NDja_g96.js +0 -1
- package/core/built/admin/assets/stripe-button-C3cfCAou.js +0 -1
- package/core/built/admin/assets/stripe-connect-modal-FyE3Ey2c.js +0 -1
- package/core/built/admin/assets/switch-zfUUy9Jh.js +0 -1
- package/core/built/admin/assets/table-dE4GTIRT.js +0 -1
- package/core/built/admin/assets/tabs-B3XK93sR.js +0 -1
- package/core/built/admin/assets/tag-detail-D4P-tZdM.js +0 -2
- package/core/built/admin/assets/tag-picker-BNSZ6Qxw.js +0 -1
- package/core/built/admin/assets/tags-BsZcaJ6h.js +0 -1
- package/core/built/admin/assets/text-DC-ot6u2.js +0 -1
- package/core/built/admin/assets/textarea-B4FffFmE.js +0 -1
- package/core/built/admin/assets/tier-detail-modal-a77Z2VMH.js +0 -1
- package/core/built/admin/assets/toggle-group-D2p4okmJ.js +0 -1
- package/core/built/admin/assets/transistor-modal-C8RMkhOD.js +0 -1
- package/core/built/admin/assets/trend-badge-B9v7kMF8.js +0 -1
- package/core/built/admin/assets/types-uYQ1HgqL.js +0 -1
- package/core/built/admin/assets/use-analytics-data-ChHqiZXv.js +0 -1
- package/core/built/admin/assets/use-availability-hPdeG76y.js +0 -1
- package/core/built/admin/assets/use-filter-params-BSFigDIn.js +0 -1
- package/core/built/admin/assets/use-growth-stats-CqqdnESN.js +0 -1
- package/core/built/admin/assets/use-limiter-DBGjYqu7.js +0 -19
- package/core/built/admin/assets/use-reply-chain-data-DmD2yX5D.js +0 -1
- package/core/built/admin/assets/use-sending-eta-CQeG6OP_.js +0 -1
- package/core/built/admin/assets/use-setting-group-Dza6bQ7W.js +0 -1
- package/core/built/admin/assets/use-settings-navigation-BIjI5mL3.js +0 -1
- package/core/built/admin/assets/use-simple-pagination-DwVxe-Lo.js +0 -1
- package/core/built/admin/assets/use-staff-users-i_Mq9OGR.js +0 -1
- package/core/built/admin/assets/use-tinybird-query-DXoF74NM.js +0 -1
- package/core/built/admin/assets/user-detail-modal-BU4QCHE7.js +0 -1
- package/core/built/admin/assets/virtual-list-DScLNuU8.js +0 -1
- package/core/built/admin/assets/web-BZS-t4H0.js +0 -1
- package/core/built/admin/assets/web-DxAUxnK3.js +0 -2
- package/core/frontend/services/sitemap/utils.js +0 -17
- package/core/server/services/automations/get-scheduler-idempotency-key.js +0 -13
- package/core/server/web/api/testmode/index.js +0 -1
- package/core/server/web/api/testmode/jobs/cpu-hog.js +0 -15
- package/core/server/web/api/testmode/jobs/graceful-job.js +0 -50
- package/core/server/web/api/testmode/jobs/say-hello.js +0 -17
- package/core/server/web/api/testmode/routes.js +0 -120
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e,t}from"./react-BXwhMTuc.js";import{i as n}from"./currency-Dy4Tc2R2.js";import{C as r,S as i,h as a,m as o}from"./dist-BXHrDV19.js";import{i as s,p as c,r as l}from"./stats-Cvp8Ep5m.js";import{a as u,n as d}from"./chart-helpers-CNpA7re_.js";r();var f=e(t(),1),p=(e,t,n,r)=>{if(!e.length)return{totalMembers:0,freeMembers:0,paidMembers:0,mrr:0,percentChanges:{total:`0%`,free:`0%`,paid:`0%`,mrr:`0%`},directions:{total:`same`,free:`same`,paid:`same`,mrr:`same`}};let o=r||e[e.length-1],s=e.length>0?e[e.length-1]:{free:0,paid:0,comped:0,gift:0},c=t.length>0?t[t.length-1]:{mrr:0},l=o.free+o.paid+o.comped+(o.gift??0),u=c.mrr,d={total:`0%`,free:`0%`,paid:`0%`,mrr:`0%`},f={total:`same`,free:`same`,paid:`same`,mrr:`same`};if(e.length>1){let t=e[0],n=t.free+t.paid+t.comped+(t.gift??0);if(n>0){let e=(l-n)/n*100;d.total=a(e/100),f.total=e>0?`up`:e<0?`down`:`same`}if(t.free>0){let e=(s.free-t.free)/t.free*100;d.free=a(e/100),f.free=e>0?`up`:e<0?`down`:`same`}let r=t.paid+t.comped+(t.gift??0),i=s.paid+s.comped+(s.gift??0);if(r>0){let e=(i-r)/r*100;d.paid=a(e/100),f.paid=e>0?`up`:e<0?`down`:`same`}}if(t.length>1){let e=i(n).format(`YYYY-MM-DD`),r=t.find(t=>i(t.date).isSameOrAfter(e)),o=i(n).isSame(i().startOf(`year`),`day`)||i(n).year()<i().year(),s=0;if(s=r&&i(r.date).isSame(e,`day`)?r.mrr:o?0:u,s>=0){let e=s===0?u>0?100:0:(u-s)/s*100;d.mrr=a(e/100),f.mrr=e>0?`up`:e<0?`down`:`same`}}return{totalMembers:l,freeMembers:o.free,paidMembers:o.paid+o.comped+(o.gift??0),mrr:u,percentChanges:d,directions:f}},m=(e,t)=>{let n=[...e].sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),r=[...t].sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),i=n.map(e=>e.date),a=r.map(e=>e.date),s=[...new Set([...i,...a])].sort((e,t)=>new Date(e).getTime()-new Date(t).getTime()),c=null,l=null,u=new Map(n.map(e=>[e.date,e])),d=new Map(r.map(e=>[e.date,e]));return s.map(e=>{let t=u.get(e);t&&(c=t);let n=d.get(e);n&&(l=n);let r=c?.free??0,i=c?.paid??0,a=c?.comped??0,s=c?.gift??0,f=i+a+s,p=r+f;return{date:e,value:p,free:r,paid:f,comped:a,gift:s,mrr:l?.mrr??0,paid_subscribed:c?.paid_subscribed??0,paid_canceled:c?.paid_canceled??0,formattedValue:o(p),label:`Total members`}})},h=e=>{let{startDate:t,endDate:r}=(0,f.useMemo)(()=>u(e),[e]),a=d(t),o=e===1?i(a).subtract(1,`day`).format(`YYYY-MM-DD`):a,{data:h,isLoading:g}=l({searchParams:{date_from:o}}),{data:_,isLoading:v}=s({searchParams:{date_from:o}}),{data:y,isLoading:b}=c(),x=(0,f.useMemo)(()=>{let t=[];if(h?.stats?t=h.stats:Array.isArray(h)&&(t=h),e===1&&t.length>=2){let e=t[t.length-2],n=t[t.length-1],r=i(a).format(`YYYY-MM-DD`),o=i(a).add(1,`day`).format(`YYYY-MM-DD`);return[{...e,date:r},{...n,date:o}]}return t},[h,e,a]),{mrrData:S,selectedCurrency:C}=(0,f.useMemo)(()=>{let t=i(a),n=e===1?i().endOf(`day`):i().startOf(`day`);if(_?.stats&&_?.meta?.totals){let r=_.meta.totals,a=r[0];if(!a)return{mrrData:[],selectedCurrency:`usd`};for(let e of r)e.mrr>a.mrr&&(a=e);let o=a.currency,s=_.stats.filter(e=>e.currency===o),c=s.filter(e=>i(e.date).isSameOrAfter(t)),l=[...s].sort((e,t)=>new Date(t.date).getTime()-new Date(e.date).getTime()),u=[...c];if(!u.some(e=>i(e.date).isSame(t,`day`))){let e=l.find(e=>i(e.date).isBefore(t));if(e)u.unshift({...e,date:t.format(`YYYY-MM-DD`)});else if(u.length>0){let e=[...u].sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime())[0];u.unshift({...e,date:t.format(`YYYY-MM-DD`)})}}let d=e===1?i().startOf(`day`):n;if(!u.some(e=>i(e.date).isSame(d,`day`))&&u.length>0){let e=[...u].sort((e,t)=>new Date(t.date).getTime()-new Date(e.date).getTime())[0];u.push({...e,date:d.format(`YYYY-MM-DD`)})}return{mrrData:u.sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),selectedCurrency:o}}return{mrrData:[],selectedCurrency:`usd`}},[_,a,e]),w=(0,f.useMemo)(()=>p(x,S,a,h?.meta?.totals),[x,S,a,h?.meta?.totals]),T=(0,f.useMemo)(()=>m(x,S),[x,S]),E=(0,f.useMemo)(()=>n(C),[C]);return{isLoading:(0,f.useMemo)(()=>g||v||b,[g,v,b]),memberData:x,mrrData:S,dateFrom:a,endDate:r,totals:w,chartData:T,subscriptionData:(0,f.useMemo)(()=>{if(!y?.stats)return[];let e=y.stats.reduce((e,t)=>{let n=t.date;return e[n]||(e[n]={date:n,signups:0,cancellations:0}),e[n].signups+=t.signups,e[n].cancellations+=t.cancellations,e},{}),t=Object.values(e).sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),n=i(a),o=i(r);return t.filter(e=>{let t=i(e.date);return t.isSameOrAfter(n)&&t.isSameOrBefore(o)})},[y,a,r]),selectedCurrency:C,currencySymbol:E}};export{h as t};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import{i as e,n as t,s as n,t as r}from"./react-BXwhMTuc.js";import{g as i,n as a,r as o,t as s}from"./hooks-DYfTEQLk.js";import{n as c,t as l}from"./update-queries-C4CnvJaW.js";import{s as u}from"./config-BPljH6wF.js";import{A as d,C as f,_ as p,a as m,c as h,i as g,j as _,m as v,n as y,r as b,s as x,t as S,v as C}from"./_baseAssignValue-DcPokYW8.js";import{f as w}from"./users-C60_hpn6.js";import{r as T}from"./newsletters-Dz77m__5.js";import{n as E,t as D}from"./luxon-BXCsmep3.js";import{s as O}from"./index-DDd-zhNL.js";var k=t(((e,t)=>{function n(e,t){for(var n=-1,r=e==null?0:e.length;++n<r&&t(e[n],n,e)!==!1;);return e}t.exports=n})),A=t(((e,t)=>{var n=S(),r=f(),i=Object.prototype.hasOwnProperty;function a(e,t,a){var o=e[t];(!(i.call(e,t)&&r(o,a))||a===void 0&&!(t in e))&&n(e,t,a)}t.exports=a})),j=t(((e,t)=>{var n=A(),r=S();function i(e,t,i,a){var o=!i;i||={};for(var s=-1,c=t.length;++s<c;){var l=t[s],u=a?a(i[l],e[l],l,i,e):void 0;u===void 0&&(u=e[l]),o?r(i,l,u):n(i,l,u)}return i}t.exports=i})),M=`InvitesResponseType`,N=s({dataType:M,path:`/invites/`,permissions:[`Owner`,`Administrator`],defaultSearchParams:{limit:`100`,include:`roles`},defaultNextPageParams:(e,t)=>({...t,page:(e.meta?.pagination.next||1).toString()}),returnData:e=>{let{pages:t}=e,n=t.flatMap(e=>e.invites),r=t[t.length-1].meta;return{invites:n,meta:r,isEnd:r?r.pagination.pages===r.pagination.page:!0}}}),P=a({method:`POST`,path:()=>`/invites/`,body:({email:e,roleId:t})=>({invites:[{email:e,role_id:t,expires:null,status:null,token:null}]}),updateQueries:{dataType:M,emberUpdateType:`createOrUpdate`,update:c(`invites`)}}),F=a({path:e=>`/invites/${e}/`,method:`DELETE`,updateQueries:{dataType:M,emberUpdateType:`delete`,update:l(`invites`)}}),I=o({dataType:`RolesResponseType`,path:`/roles/`,defaultSearchParams:{limit:`100`}}),L=n(r(),1),R=globalThis.crypto,z=[];for(let e=0;e<256;e+=1)z.push((e+256).toString(16).slice(1));function ee(){let e=new Uint8Array(16);return R.getRandomValues(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128,z[e[0]]+z[e[1]]+z[e[2]]+z[e[3]]+`-`+z[e[4]]+z[e[5]]+`-`+z[e[6]]+z[e[7]]+`-`+z[e[8]]+z[e[9]]+`-`+z[e[10]]+z[e[11]]+z[e[12]]+z[e[13]]+z[e[14]]+z[e[15]]}function te(){if(R?.randomUUID)return R.randomUUID();if(R?.getRandomValues)return ee();throw Error(`No secure random number generator available to generate a UUID`)}function ne(e,t){let n=(e.stack?.split(/\n/g)||[])[1],[r,...i]=t.stack?.split(/\n/g)||[];return[r,n,...i].join(`
|
|
2
|
-
`)}var re=Object.defineProperty,ie=(e,t,n)=>t in e?re(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,B=(e,t,n)=>ie(e,typeof t==`symbol`?t:t+``,n),V=class extends Error{constructor(e={}){super(),B(this,`statusCode`),B(this,`errorType`),B(this,`level`),B(this,`id`),B(this,`context`),B(this,`help`),B(this,`errorDetails`),B(this,`code`),B(this,`property`),B(this,`redirect`),B(this,`hideStack`),this.statusCode=500,this.errorType=`InternalServerError`,this.level=`normal`,this.message=`The server has encountered an error.`,this.id=te(),this.id=e.id||this.id,this.statusCode=e.statusCode||this.statusCode,this.level=e.level||this.level,this.context=e.context,this.help=e.help,this.errorType=this.name=e.errorType||this.errorType,this.errorDetails=e.errorDetails,this.code=e.code||null,this.property=e.property||null,this.redirect=e.redirect||null,this.message=e.message||this.message,this.hideStack=e.hideStack||!1,e.err&&(typeof e.err==`string`&&(e.err=Error(e.err)),Object.getOwnPropertyNames(e.err).forEach(t=>{if([`errorType`,`name`,`statusCode`,`message`,`level`].indexOf(t)===-1){if(t===`code`){this[t]=this[t]||e.err[t];return}if(t===`stack`&&!this.hideStack){this[t]=ne(this,e.err);return}this[t]=e.err[t]||this[t]}}))}},ae=e({BadRequestError:()=>le,ConflictError:()=>Ne,DataExportError:()=>Se,DataImportError:()=>Ce,DisabledFeatureError:()=>Ee,EmailError:()=>we,HelperWarning:()=>ke,HostLimitError:()=>Oe,IncorrectUsageError:()=>se,InternalServerError:()=>oe,MaintenanceError:()=>he,MethodNotAllowedError:()=>ge,MigrationError:()=>Pe,NoContentError:()=>Me,NoPermissionError:()=>de,NotFoundError:()=>ce,PasswordResetRequiredError:()=>Ae,RangeNotSatisfiableError:()=>ve,RequestEntityTooLargeError:()=>ye,RequestNotAcceptableError:()=>_e,ThemeValidationError:()=>Te,TokenRevocationError:()=>be,TooManyRequestsError:()=>me,UnauthorizedError:()=>ue,UnhandledJobError:()=>je,UnsupportedMediaTypeError:()=>pe,UpdateCollisionError:()=>De,ValidationError:()=>fe,VersionMismatchError:()=>xe}),H=(e,t)=>{let n={...t};return Object.keys(e).forEach(t=>{e[t]!==void 0&&(n[t]=e[t])}),n},oe=class extends V{constructor(e={}){super(H(e,{statusCode:500,level:`critical`,errorType:`InternalServerError`,message:`The server has encountered an error.`}))}},se=class extends V{constructor(e={}){super(H(e,{statusCode:400,level:`critical`,errorType:`IncorrectUsageError`,message:`We detected a misuse. Please read the stack trace.`}))}},ce=class extends V{constructor(e={}){super(H(e,{statusCode:404,errorType:`NotFoundError`,message:`Resource could not be found.`,hideStack:!0}))}},le=class extends V{constructor(e={}){super(H(e,{statusCode:400,errorType:`BadRequestError`,message:`The request could not be understood.`}))}},ue=class extends V{constructor(e={}){super(H(e,{statusCode:401,errorType:`UnauthorizedError`,message:`You are not authorised to make this request.`}))}},de=class extends V{constructor(e={}){super(H(e,{statusCode:403,errorType:`NoPermissionError`,message:`You do not have permission to perform this request.`}))}},fe=class extends V{constructor(e={}){super(H(e,{statusCode:422,errorType:`ValidationError`,message:`The request failed validation.`}))}},pe=class extends V{constructor(e={}){super(H(e,{statusCode:415,errorType:`UnsupportedMediaTypeError`,message:`The media in the request is not supported by the server.`}))}},me=class extends V{constructor(e={}){super(H(e,{statusCode:429,errorType:`TooManyRequestsError`,message:`Server has received too many similar requests in a short space of time.`}))}},he=class extends V{constructor(e={}){super(H(e,{statusCode:503,errorType:`MaintenanceError`,message:`The server is temporarily down for maintenance.`}))}},ge=class extends V{constructor(e={}){super(H(e,{statusCode:405,errorType:`MethodNotAllowedError`,message:`Method not allowed for resource.`}))}},_e=class extends V{constructor(e={}){super(H(e,{statusCode:406,errorType:`RequestNotAcceptableError`,message:`Request not acceptable for provided Accept-Version header.`,hideStack:!0}))}},ve=class extends V{constructor(e={}){super(H(e,{statusCode:416,errorType:`RangeNotSatisfiableError`,message:`Range not satisfiable for provided Range header.`,hideStack:!0}))}},ye=class extends V{constructor(e={}){super(H(e,{statusCode:413,errorType:`RequestEntityTooLargeError`,message:`Request was too big for the server to handle.`}))}},be=class extends V{constructor(e={}){super(H(e,{statusCode:503,errorType:`TokenRevocationError`,message:`Token is no longer available.`}))}},xe=class extends V{constructor(e={}){super(H(e,{statusCode:400,errorType:`VersionMismatchError`,message:`Requested version does not match server version.`}))}},Se=class extends V{constructor(e={}){super(H(e,{statusCode:500,errorType:`DataExportError`,message:`The server encountered an error whilst exporting data.`}))}},Ce=class extends V{constructor(e={}){super(H(e,{statusCode:500,errorType:`DataImportError`,message:`The server encountered an error whilst importing data.`}))}},we=class extends V{constructor(e={}){super(H(e,{statusCode:500,errorType:`EmailError`,message:`The server encountered an error whilst sending email.`}))}},Te=class extends V{constructor(e={}){super(H(e,{statusCode:422,errorType:`ThemeValidationError`,message:`The theme has a validation error.`,errorDetails:{}}))}},Ee=class extends V{constructor(e={}){super(H(e,{statusCode:409,errorType:`DisabledFeatureError`,message:`Unable to complete the request, this feature is disabled.`}))}},De=class extends V{constructor(e={}){super(H(e,{statusCode:409,errorType:`UpdateCollisionError`,message:`Unable to complete the request, there was a conflict.`}))}},Oe=class extends V{constructor(e={}){super(H(e,{errorType:`HostLimitError`,hideStack:!0,statusCode:403,message:`Unable to complete the request, this resource is limited.`}))}},ke=class extends V{constructor(e={}){super(H(e,{errorType:`HelperWarning`,hideStack:!0,statusCode:400,message:`A theme helper has done something unexpected.`}))}},Ae=class extends V{constructor(e={}){super(H(e,{errorType:`PasswordResetRequiredError`,statusCode:401,message:`For security, you need to create a new password. An email has been sent to you with instructions!`}))}},je=class extends V{constructor(e={}){super(H(e,{errorType:`UnhandledJobError`,message:`Processed job threw an unhandled error`,level:`critical`}))}},Me=class extends V{constructor(e={}){super(H(e,{errorType:`NoContentError`,statusCode:204,hideStack:!0}))}},Ne=class extends V{constructor(e={}){super(H(e,{errorType:`ConflictError`,statusCode:409,message:`The server has encountered an conflict.`}))}},Pe=class extends V{constructor(e={}){super(H(e,{errorType:`MigrationError`,message:`An error has occurred applying a database migration.`,level:`critical`}))}},U=ae,Fe=t(((e,t)=>{var n=p(),r=v();function i(e){return r(n(e).toLowerCase())}t.exports=i})),Ie=t(((e,t)=>{function n(e,t,n,r){var i=-1,a=e==null?0:e.length;for(r&&a&&(n=e[++i]);++i<a;)n=t(n,e[i],i,e);return n}t.exports=n})),W=t(((e,t)=>{function n(e){return function(t){return e?.[t]}}t.exports=n})),Le=t(((e,t)=>{t.exports=W()({À:`A`,Á:`A`,Â:`A`,Ã:`A`,Ä:`A`,Å:`A`,à:`a`,á:`a`,â:`a`,ã:`a`,ä:`a`,å:`a`,Ç:`C`,ç:`c`,Ð:`D`,ð:`d`,È:`E`,É:`E`,Ê:`E`,Ë:`E`,è:`e`,é:`e`,ê:`e`,ë:`e`,Ì:`I`,Í:`I`,Î:`I`,Ï:`I`,ì:`i`,í:`i`,î:`i`,ï:`i`,Ñ:`N`,ñ:`n`,Ò:`O`,Ó:`O`,Ô:`O`,Õ:`O`,Ö:`O`,Ø:`O`,ò:`o`,ó:`o`,ô:`o`,õ:`o`,ö:`o`,ø:`o`,Ù:`U`,Ú:`U`,Û:`U`,Ü:`U`,ù:`u`,ú:`u`,û:`u`,ü:`u`,Ý:`Y`,ý:`y`,ÿ:`y`,Æ:`Ae`,æ:`ae`,Þ:`Th`,þ:`th`,ß:`ss`,Ā:`A`,Ă:`A`,Ą:`A`,ā:`a`,ă:`a`,ą:`a`,Ć:`C`,Ĉ:`C`,Ċ:`C`,Č:`C`,ć:`c`,ĉ:`c`,ċ:`c`,č:`c`,Ď:`D`,Đ:`D`,ď:`d`,đ:`d`,Ē:`E`,Ĕ:`E`,Ė:`E`,Ę:`E`,Ě:`E`,ē:`e`,ĕ:`e`,ė:`e`,ę:`e`,ě:`e`,Ĝ:`G`,Ğ:`G`,Ġ:`G`,Ģ:`G`,ĝ:`g`,ğ:`g`,ġ:`g`,ģ:`g`,Ĥ:`H`,Ħ:`H`,ĥ:`h`,ħ:`h`,Ĩ:`I`,Ī:`I`,Ĭ:`I`,Į:`I`,İ:`I`,ĩ:`i`,ī:`i`,ĭ:`i`,į:`i`,ı:`i`,Ĵ:`J`,ĵ:`j`,Ķ:`K`,ķ:`k`,ĸ:`k`,Ĺ:`L`,Ļ:`L`,Ľ:`L`,Ŀ:`L`,Ł:`L`,ĺ:`l`,ļ:`l`,ľ:`l`,ŀ:`l`,ł:`l`,Ń:`N`,Ņ:`N`,Ň:`N`,Ŋ:`N`,ń:`n`,ņ:`n`,ň:`n`,ŋ:`n`,Ō:`O`,Ŏ:`O`,Ő:`O`,ō:`o`,ŏ:`o`,ő:`o`,Ŕ:`R`,Ŗ:`R`,Ř:`R`,ŕ:`r`,ŗ:`r`,ř:`r`,Ś:`S`,Ŝ:`S`,Ş:`S`,Š:`S`,ś:`s`,ŝ:`s`,ş:`s`,š:`s`,Ţ:`T`,Ť:`T`,Ŧ:`T`,ţ:`t`,ť:`t`,ŧ:`t`,Ũ:`U`,Ū:`U`,Ŭ:`U`,Ů:`U`,Ű:`U`,Ų:`U`,ũ:`u`,ū:`u`,ŭ:`u`,ů:`u`,ű:`u`,ų:`u`,Ŵ:`W`,ŵ:`w`,Ŷ:`Y`,ŷ:`y`,Ÿ:`Y`,Ź:`Z`,Ż:`Z`,Ž:`Z`,ź:`z`,ż:`z`,ž:`z`,IJ:`IJ`,ij:`ij`,Œ:`Oe`,œ:`oe`,ʼn:`'n`,ſ:`s`})})),Re=t(((e,t)=>{var n=Le(),r=p(),i=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,a=RegExp(`[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]`,`g`);function o(e){return e=r(e),e&&e.replace(i,n).replace(a,``)}t.exports=o})),ze=t(((e,t)=>{var n=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function r(e){return e.match(n)||[]}t.exports=r})),Be=t(((e,t)=>{var n=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function r(e){return n.test(e)}t.exports=r})),Ve=t(((e,t)=>{var n=`\\ud800-\\udfff`,r=`\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff`,i=`\\u2700-\\u27bf`,a=`a-z\\xdf-\\xf6\\xf8-\\xff`,o=`\\xac\\xb1\\xd7\\xf7`,s=`\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf`,c=`\\u2000-\\u206f`,l=` \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000`,u=`A-Z\\xc0-\\xd6\\xd8-\\xde`,d=`\\ufe0e\\ufe0f`,f=o+s+c+l,p=`['’]`,m=`[`+f+`]`,h=`[`+r+`]`,g=`\\d+`,_=`[`+i+`]`,v=`[`+a+`]`,y=`[^`+n+f+g+i+a+u+`]`,b=`(?:`+h+`|\\ud83c[\\udffb-\\udfff])`,x=`[^`+n+`]`,S=`(?:\\ud83c[\\udde6-\\uddff]){2}`,C=`[\\ud800-\\udbff][\\udc00-\\udfff]`,w=`[`+u+`]`,T=`\\u200d`,E=`(?:`+v+`|`+y+`)`,D=`(?:`+w+`|`+y+`)`,O=`(?:`+p+`(?:d|ll|m|re|s|t|ve))?`,k=`(?:`+p+`(?:D|LL|M|RE|S|T|VE))?`,A=b+`?`,j=`[`+d+`]?`,M=`(?:`+T+`(?:`+[x,S,C].join(`|`)+`)`+j+A+`)*`,N=`\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])`,P=`\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])`,F=j+A+M,I=`(?:`+[_,S,C].join(`|`)+`)`+F,L=RegExp([w+`?`+v+`+`+O+`(?=`+[m,w,`$`].join(`|`)+`)`,D+`+`+k+`(?=`+[m,w+E,`$`].join(`|`)+`)`,w+`?`+E+`+`+O,w+`+`+k,P,N,g,I].join(`|`),`g`);function R(e){return e.match(L)||[]}t.exports=R})),He=t(((e,t)=>{var n=ze(),r=Be(),i=p(),a=Ve();function o(e,t,o){return e=i(e),t=o?void 0:t,t===void 0?r(e)?a(e):n(e):e.match(t)||[]}t.exports=o})),G=t(((e,t)=>{var n=Ie(),r=Re(),i=He(),a=RegExp(`['’]`,`g`);function o(e){return function(t){return n(i(r(t).replace(a,``)),e,``)}}t.exports=o})),Ue=t(((e,t)=>{var n=Fe();t.exports=G()(function(e,t,r){return t=t.toLowerCase(),e+(r?n(t):t)})})),We=t(((e,t)=>{var n=Object.prototype.hasOwnProperty;function r(e,t){return e!=null&&n.call(e,t)}t.exports=r})),Ge=t(((e,t)=>{var n=We(),r=x();function i(e,t){return e!=null&&r(e,t,n)}t.exports=i})),K=n(Ue(),1),q=n(Ge(),1),J={members:{currentCountQuery:async e=>(await e(`members`).count(`id`,{as:`count`}).first()).count},newsletters:{currentCountQuery:async e=>(await e(`newsletters`).count(`id`,{as:`count`}).where(`status`,`=`,`active`).first()).count},emails:{currentCountQuery:async(e,t)=>(await e(`emails`).sum(`email_count`,{as:`count`}).where(`created_at`,`>=`,t).first()).count},staff:{currentCountQuery:async e=>(await e(`users`).select(`users.id`).leftJoin(`roles_users`,`users.id`,`roles_users.user_id`).leftJoin(`roles`,`roles_users.role_id`,`roles.id`).whereNot(`roles.name`,`Contributor`).andWhereNot(`users.status`,`inactive`).union([e(`invites`).select(`invites.id`).leftJoin(`roles`,`invites.role_id`,`roles.id`).whereNot(`roles.name`,`Contributor`)])).length},customIntegrations:{},customThemes:{},uploads:{currentCountQuery:()=>void 0,formatter:e=>`${Number(e)/1e6}MB`},limitStripeConnect:{},limitAnalytics:{},limitSocialWeb:{},limitCustomFields:{},publicSiteAccess:{}},Ke=t(((e,t)=>{t.exports=G()(function(e,t,n){return e+(n?` `:``)+t.toLowerCase()})})),qe=t(((e,t)=>{var n=g(),r=b();function i(e){return n(function(t,n){var i=-1,a=n.length,o=a>1?n[a-1]:void 0,s=a>2?n[2]:void 0;for(o=e.length>3&&typeof o==`function`?(a--,o):void 0,s&&r(n[0],n[1],s)&&(o=a<3?void 0:o,a=1),t=Object(t);++i<a;){var c=n[i];c&&e(t,c,i,o)}return t})}t.exports=i})),Je=t(((e,t)=>{var n=j(),r=qe(),i=h();t.exports=r(function(e,t,r,a){n(t,i(t),e,a)})})),Y=t(((e,t)=>{var n=_(),r=d(),i=y(),a=`[object DOMException]`,o=`[object Error]`;function s(e){if(!r(e))return!1;var t=n(e);return t==o||t==a||typeof e.message==`string`&&typeof e.name==`string`&&!i(e)}t.exports=s})),Ye=t(((e,t)=>{var n=m(),r=g(),i=Y();t.exports=r(function(e,t){try{return n(e,void 0,t)}catch(e){return i(e)?e:Error(e)}})})),Xe=t(((e,t)=>{var n=C();function r(e,t){return n(t,function(t){return e[t]})}t.exports=r})),Ze=t(((e,t)=>{var n=f(),r=Object.prototype,i=r.hasOwnProperty;function a(e,t,a,o){return e===void 0||n(e,r[a])&&!i.call(o,a)?t:e}t.exports=a})),Qe=t(((e,t)=>{var n={"\\":`\\`,"'":`'`,"\n":`n`,"\r":`r`,"\u2028":`u2028`,"\u2029":`u2029`};function r(e){return`\\`+n[e]}t.exports=r})),X=t(((e,t)=>{t.exports=/<%=([\s\S]+?)%>/g})),$e=t(((e,t)=>{t.exports=W()({"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`})})),et=t(((e,t)=>{var n=$e(),r=p(),i=/[&<>"']/g,a=RegExp(i.source);function o(e){return e=r(e),e&&a.test(e)?e.replace(i,n):e}t.exports=o})),tt=t(((e,t)=>{t.exports=/<%-([\s\S]+?)%>/g})),nt=t(((e,t)=>{t.exports=/<%([\s\S]+?)%>/g})),rt=t(((e,t)=>{var n=et();t.exports={escape:tt(),evaluate:nt(),interpolate:X(),variable:``,imports:{_:{escape:n}}}})),it=t(((e,t)=>{var n=k(),r=Je(),i=Ye(),a=Xe(),o=Ze(),s=Qe(),c=Y(),l=b(),u=h(),d=X(),f=rt(),m=p(),g="Invalid `variable` option passed into `_.template`",_="Invalid `imports` option passed into `_.template`",v=/\b__p \+= '';/g,y=/\b(__p \+=) '' \+/g,x=/(__e\(.*?\)|\b__t\)) \+\n'';/g,S=/[()=,{}\[\]\/\s]/,C=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,w=/($^)/,T=/['\n\r\u2028\u2029\\]/g,E=Object.prototype.hasOwnProperty;function D(e,t,p){var h=f.imports._.templateSettings||f;p&&l(e,t,p)&&(t=void 0),e=m(e),t=r({},t,h,o);var b=r({},t.imports,h.imports,o),D=u(b),O=a(b,D);n(D,function(e){if(S.test(e))throw Error(_)});var k,A,j=0,M=t.interpolate||w,N=`__p += '`,P=RegExp((t.escape||w).source+`|`+M.source+`|`+(M===d?C:w).source+`|`+(t.evaluate||w).source+`|$`,`g`),F=E.call(t,`sourceURL`)?`//# sourceURL=`+(t.sourceURL+``).replace(/\s/g,` `)+`
|
|
3
|
-
`:``;e.replace(P,function(t,n,r,i,a,o){return r||=i,N+=e.slice(j,o).replace(T,s),n&&(k=!0,N+=`' +
|
|
4
|
-
__e(`+n+`) +
|
|
5
|
-
'`),a&&(A=!0,N+=`';
|
|
6
|
-
`+a+`;
|
|
7
|
-
__p += '`),r&&(N+=`' +
|
|
8
|
-
((__t = (`+r+`)) == null ? '' : __t) +
|
|
9
|
-
'`),j=o+t.length,t}),N+=`';
|
|
10
|
-
`;var I=E.call(t,`variable`)&&t.variable;if(!I)N=`with (obj) {
|
|
11
|
-
`+N+`
|
|
12
|
-
}
|
|
13
|
-
`;else if(S.test(I))throw Error(g);N=(A?N.replace(v,``):N).replace(y,`$1`).replace(x,`$1;`),N=`function(`+(I||`obj`)+`) {
|
|
14
|
-
`+(I?``:`obj || (obj = {});
|
|
15
|
-
`)+`var __t, __p = ''`+(k?`, __e = _.escape`:``)+(A?`, __j = Array.prototype.join;
|
|
16
|
-
function print() { __p += __j.call(arguments, '') }
|
|
17
|
-
`:`;
|
|
18
|
-
`)+N+`return __p
|
|
19
|
-
}`;var L=i(function(){return Function(D,F+`return `+N).apply(void 0,O)});if(L.source=N,c(L))throw L;return L}t.exports=D})),Z=n(Ke(),1),at=n(it(),1);E();var ot={invalidInterval:`Invalid interval specified. Only "month" value is accepted.`},st=[`month`],ct=(e,t)=>{if(t===`month`){let t=D.fromISO(e,{zone:`UTC`}),n=D.now().setZone(`UTC`),r=Math.floor(n.diff(t,`months`).months);return t.plus({months:r}).toISO()}throw new U.IncorrectUsageError({message:ot.invalidInterval})},lt=/{{([\s\S]+?)}}/g,ut=(e,t)=>Number(typeof e==`string`?e+t:Number(e)+t),Q=e=>{let t=Intl.NumberFormat().format;return t(e)},$=class{name;error;helpLink;db;errors;constructor({name:e,error:t,helpLink:n,db:r,errors:i}){this.name=e,this.error=t,this.helpLink=n,this.db=r,this.errors=i}generateError(e){let t={errorDetails:{name:this.name}};return this.helpLink&&(t.help=this.helpLink),t}},dt=class extends ${currentCountQueryFn;max;formatter;fallbackMessage;constructor({name:e,config:t,helpLink:n,db:r,errors:i}){if(super({name:e,error:t.error||``,helpLink:n,db:r,errors:i}),t.max===void 0)throw new i.IncorrectUsageError({message:`Attempted to setup a max limit without a limit`});if(!t.currentCountQuery)throw new i.IncorrectUsageError({message:`Attempted to setup a max limit without a current count query`});this.currentCountQueryFn=t.currentCountQuery,this.max=t.max,this.formatter=t.formatter,this.fallbackMessage=`This action would exceed the ${(0,Z.default)(this.name)} limit on your current plan.`}generateError(e){let t=super.generateError();if(t.message=this.fallbackMessage,this.error){let n=this.formatter||Q;try{t.message=(0,at.default)(this.error,{interpolate:lt})({max:n(this.max),count:n(e),name:this.name})}catch{t.message=this.fallbackMessage}}return t.errorDetails.limit=this.max,t.errorDetails.total=e,new this.errors.HostLimitError(t)}async currentCountQuery(e={}){return await this.currentCountQueryFn(e.transacting??this.db?.knex)}async errorIfWouldGoOverLimit(e={}){let{max:t,addedCount:n=1}=e,r=await this.currentCountQuery(e);if(ut(r,n)>(t||this.max))throw this.generateError(r)}async errorIfIsOverLimit(e={}){let t=e.currentCount||await this.currentCountQuery(e);if(Number(t)>(e.max||this.max))throw this.generateError(t)}},ft=class extends ${currentCountQueryFn;maxPeriodic;interval;startDate;fallbackMessage;constructor({name:e,config:t,helpLink:n,db:r,errors:i}){if(super({name:e,error:t.error||``,helpLink:n,db:r,errors:i}),t.maxPeriodic===void 0)throw new i.IncorrectUsageError({message:`Attempted to setup a periodic max limit without a limit`});if(!t.currentCountQuery)throw new i.IncorrectUsageError({message:`Attempted to setup a periodic max limit without a current count query`});if(!t.interval)throw new i.IncorrectUsageError({message:`Attempted to setup a periodic max limit without an interval`});if(!st.includes(t.interval))throw new i.IncorrectUsageError({message:`Attempted to setup a periodic max limit without unsupported interval. Please specify one of: ${st}`});if(!t.startDate)throw new i.IncorrectUsageError({message:`Attempted to setup a periodic max limit without a start date`});this.currentCountQueryFn=t.currentCountQuery,this.maxPeriodic=t.maxPeriodic,this.interval=t.interval,this.startDate=t.startDate,this.fallbackMessage=`This action would exceed the ${(0,Z.default)(this.name)} limit on your current plan.`}generateError(e){let t=super.generateError();if(t.message=this.fallbackMessage,this.error)try{t.message=(0,at.default)(this.error,{interpolate:lt})({max:Q(this.maxPeriodic),count:Q(e),name:this.name})}catch{t.message=this.fallbackMessage}return t.errorDetails.limit=this.maxPeriodic,t.errorDetails.total=e,new this.errors.HostLimitError(t)}async currentCountQuery(e={}){let t=ct(this.startDate,this.interval);return await this.currentCountQueryFn(e.transacting?e.transacting:this.db?this.db.knex:void 0,t)}async errorIfWouldGoOverLimit(e={}){let{max:t,addedCount:n=1}=e,r=await this.currentCountQuery(e);if(ut(r,n)>(t||this.maxPeriodic))throw this.generateError(r)}async errorIfIsOverLimit(e={}){let{max:t}=e,n=await this.currentCountQuery(e);if(Number(n)>(t||this.maxPeriodic))throw this.generateError(n)}},pt=class extends ${disabled;fallbackMessage;constructor({name:e,config:t,helpLink:n,db:r,errors:i}){super({name:e,error:t.error||``,helpLink:n,db:r,errors:i});let a=(0,Z.default)(e.replace(/^limit/,``));this.disabled=t.disabled,this.fallbackMessage=`Your plan does not support ${a}. Please upgrade to enable ${a}.`}generateError(){let e=super.generateError();return this.error?e.message=this.error:e.message=this.fallbackMessage,new this.errors.HostLimitError(e)}async errorIfWouldGoOverLimit(e){if(this.disabled)throw this.generateError()}async errorIfIsOverLimit(e){}isDisabled(){return!!this.disabled}},mt=class extends ${allowlist;fallbackMessage;constructor({name:e,config:t,helpLink:n,errors:r}){if(super({name:e,error:t.error||``,helpLink:n,errors:r}),!t.allowlist||!t.allowlist.length)throw new this.errors.IncorrectUsageError({message:`Attempted to setup an allowlist limit without an allowlist`});this.allowlist=t.allowlist,this.fallbackMessage=`This action would exceed the ${(0,Z.default)(this.name)} limit on your current plan.`}generateError(){let e=super.generateError();return this.error?e.message=this.error:e.message=this.fallbackMessage,new this.errors.HostLimitError(e)}async errorIfWouldGoOverLimit(e){if(!e||!e.value)throw new this.errors.IncorrectUsageError({message:`Attempted to check an allowlist limit without a value`});if(!this.allowlist.includes(e.value))throw this.generateError()}async errorIfIsOverLimit(e){if(!e||!e.value)throw new this.errors.IncorrectUsageError({message:`Attempted to check an allowlist limit without a value`});if(!this.allowlist.includes(e.value))throw this.generateError()}},ht={missingErrorsConfig:`Config Missing: 'errors' is required.`,noSubscriptionParameter:`Attempted to setup a periodic max limit without a subscription`},gt=class{limits;errors;constructor(){this.limits={}}loadLimits({limits:e={},subscription:t,helpLink:n,db:r,errors:i}){if(!i)throw new U.IncorrectUsageError({message:ht.missingErrorsConfig});this.errors=i,this.limits={},Object.keys(e).forEach(a=>{let o=(0,K.default)(a);if(J[o]){let a=Object.assign({},J[o],e[o]);if((0,q.default)(a,`allowlist`))this.limits[o]=new mt({name:o,config:a,helpLink:n,errors:i});else if((0,q.default)(a,`max`))this.limits[o]=new dt({name:o,config:a,helpLink:n,db:r,errors:i});else if((0,q.default)(a,`maxPeriodic`)){if(t===void 0)throw new U.IncorrectUsageError({message:ht.noSubscriptionParameter});let e=Object.assign({},a,t);this.limits[o]=new ft({name:o,config:e,helpLink:n,db:r,errors:i})}else this.limits[o]=new pt({name:o,config:a,helpLink:n,errors:i})}})}isLimited(e){return!!this.limits[(0,K.default)(e)]}isDisabled(e){let t=this.limits[(0,K.default)(e)];if(t){if(typeof t.isDisabled!=`function`)throw new U.IncorrectUsageError({message:`Limit ${e} does not support .isDisabled()`});return t.isDisabled()}}async checkIsOverLimit(e,t={}){if(this.isLimited(e))try{return await this.limits[e].errorIfIsOverLimit(t),!1}catch(e){if(e instanceof this.errors.HostLimitError)return!0;throw e}}async checkWouldGoOverLimit(e,t={}){if(this.isLimited(e))try{return await this.limits[e].errorIfWouldGoOverLimit(t),!1}catch(e){if(e instanceof this.errors.HostLimitError)return!0;throw e}}async errorIfIsOverLimit(e,t={}){this.isLimited(e)&&await this.limits[e].errorIfIsOverLimit(t)}async errorIfWouldGoOverLimit(e,t={}){this.isLimited(e)&&await this.limits[e].errorIfWouldGoOverLimit(t)}async checkIfAnyOverLimit(e={}){for(let t in this.limits)if(await this.checkIsOverLimit(t,e))return!0;return!1}},_t=class extends Error{constructor({message:e}){super(e)}},vt=()=>{let{data:e}=u({refetchOnMount:!1}),t=e?.config,{data:{users:n}={users:[]},isLoading:r}=w(),{data:{invites:a}={invites:[]},isLoading:o}=N(),{data:{roles:s}={},isLoading:c}=I(),l=r||o||c,{refetch:d}=O({searchParams:{limit:`1`},enabled:!1}),{refetch:f}=T({searchParams:{filter:`status:active`,limit:`1`},enabled:!1}),p=(0,L.useMemo)(()=>t?.hostSettings?.billing?.enabled===!0&&t.hostSettings.billing.url?t.hostSettings.billing.url:`https://ghost.org/help/`,[t?.hostSettings?.billing]);return(0,L.useMemo)(()=>{let e={isLimited:()=>!1,isDisabled:()=>!1,checkWouldGoOverLimit:()=>Promise.resolve(!1),errorIfWouldGoOverLimit:()=>Promise.resolve(),errorIfIsOverLimit:()=>Promise.resolve()};if(!t?.hostSettings?.limits||l)return e;let r={...t.hostSettings.limits},o=new gt;return r.staff&&(r.staff.currentCountQuery=()=>{let e=n.filter(e=>e.status!==`inactive`&&!e.roles.some(e=>e.name===`Contributor`)),t=a.filter(e=>s?.find(({id:t})=>t===e.role_id)?.name!==`Contributor`);return Promise.resolve(e.length+t.length)}),r.members&&(r.members.currentCountQuery=async()=>{let{data:e}=await d();return e?.meta?.pagination?.total||0}),r.newsletters&&(r.newsletters.currentCountQuery=async()=>{let{data:{pages:e}={pages:[]}}=await f();return e[0].meta?.pagination.total||0}),o.loadLimits({limits:r,helpLink:p,errors:{HostLimitError:i,IncorrectUsageError:_t}}),{isLimited:e=>o.isLimited(e),isDisabled:e=>o.isDisabled(e)??!1,checkWouldGoOverLimit:async e=>await o.checkWouldGoOverLimit(e)??!1,errorIfWouldGoOverLimit:(e,t={})=>o.errorIfWouldGoOverLimit(e,t),errorIfIsOverLimit:e=>o.errorIfIsOverLimit(e)}},[t,d,f,p,a,l,s,n])};export{F as a,N as i,I as n,P as r,vt as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e,t}from"./react-BXwhMTuc.js";import{t as n}from"./jsx-runtime-BlNNh7jY.js";import{E as r,t as i}from"./button-DvIh2Bq-.js";import{Cn as a,En as o,Wt as s,Xn as c,_t as l,pn as u,xn as d}from"./index-DDd-zhNL.js";var f=e(t(),1),p=n(),m=({object:e,onReply:t,onReplyError:n,className:r,...i})=>{let{data:a}=d(`index`),[c,u]=(0,f.useState)(!1);if(!a)return null;let m=e.attributedTo,h=`Reply...`;return m?.preferredUsername&&m?.id&&(h=`Reply to ${o(m)}...`),(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(`div`,{className:`flex w-full cursor-pointer gap-x-3 py-6 ${r||``}`,onClick:()=>u(!0),...i,children:[(0,p.jsx)(s,{author:a}),(0,p.jsx)(`div`,{className:`flex w-full items-center`,children:(0,p.jsx)(`div`,{className:`w-full text-[1.5rem] text-gray-500 transition-colors dark:text-gray-700`,children:h})})]}),c&&(0,p.jsx)(l,{open:c,replyTo:{object:e,actor:e.attributedTo},onOpenChange:e=>{u(e)},onReply:()=>{t?.(),u(!1)},onReplyError:()=>{n?.()}})]})},h=({last:e})=>(0,p.jsxs)(`div`,{className:`relative mt-[-5px] py-5`,children:[(0,p.jsxs)(`div`,{className:`flex h-12 grow items-center gap-2 rounded-lg border border-gray-200 p-2 px-[10px] text-gray-600`,children:[(0,p.jsx)(r,{size:18,strokeWidth:1.25}),`This post has been deleted`]}),!e&&(0,p.jsx)(`div`,{className:`absolute top-[70px] bottom-0 left-[18px] z-0 mb-[-13px] w-[2px] rounded-sm bg-gray-200`})]}),g=({count:e,onClick:t,variant:n=`default`,preserveScroll:r=!0,loading:a=!1})=>{let o=(0,f.useRef)(null),s=()=>{if(e&&e>0)return`Show ${e} more ${e===1?`reply`:`replies`}`;switch(n){case`expand`:return`Show replies`;case`loadMore`:return`Show more replies`;default:return`Show replies`}},l=()=>{if(r){let e=document.querySelector(`[data-scrollable-container]`),n=e?e.scrollTop:window.scrollY;t(),setTimeout(()=>{e?e.scrollTop=n:window.scrollTo(0,n)},0)}else t()};return(0,p.jsxs)(`div`,{ref:o,className:`mt-[-7px] flex items-center pb-3`,children:[(0,p.jsxs)(`div`,{className:`flex w-10 flex-col items-center justify-center gap-1`,children:[(0,p.jsx)(`div`,{className:`size-0.5 rounded-sm bg-gray-300`}),(0,p.jsx)(`div`,{className:`size-0.5 rounded-sm bg-gray-300`}),(0,p.jsx)(`div`,{className:`size-0.5 rounded-sm bg-gray-300`})]}),(0,p.jsx)(i,{className:`text-sm font-medium text-blue-600 hover:text-blue-800`,variant:`ghost`,onClick:e=>{e.preventDefault(),e.stopPropagation(),e.target.blur(),l()},children:a?(0,p.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,p.jsx)(c,{size:`sm`}),(0,p.jsx)(`span`,{children:`Loading...`})]}):s()})]})};function _(e,t={}){let{includeAncestors:n=!1}=t,{data:r,isLoading:i,loadMoreChildren:o,loadMoreChildReplies:s,hasMoreChildren:c,hasMoreChildReplies:l}=u(`index`,e);return{threadParents:n&&r?.ancestors?.chain?.map(a)||[],post:r?.post?a(r.post):void 0,processedReplies:(r?.children??[]).map(e=>({mainReply:a(e.post),chain:e.chain?e.chain.map(a):[]})),isLoading:i,loadMoreChildren:o,loadMoreChildReplies:s,hasMoreChildren:c,hasMoreChildReplies:l}}export{m as i,g as n,h as r,_ as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e,t}from"./react-BXwhMTuc.js";import{m as n}from"./dist-BXHrDV19.js";function r(e,t){let{completed:r,total:i}=e.progress,a=i===0?null:`${n(r)} of ${n(i)}`;return{title:e.status===`preparing`?`Preparing emails`:`Sending emails`,detail:[a,t].filter(Boolean).join(` · `)||null}}var i=e(t(),1),a=10,o=e=>e<=40?0:Math.round(e/60);function s(e,t){return t!==null&&o(e-a)<=t&&t<=o(e+a)?t:o(e)}function c(e){let t=e?.sending,r=e?`${e.id}:${e.sending.status}`:null,a=t?.status===`submitting`?t.progress.estimated_seconds_remaining:null,[o,c]=(0,i.useState)({key:null,minutes:null}),l=a===null?null:s(a,o.key===r?o.minutes:null);return(o.key!==r||o.minutes!==l)&&c({key:r,minutes:l}),l===null?null:l===0?`Less than 1 minute left`:`About ${n(l)} ${l===1?`minute`:`minutes`} left`}export{r as n,c as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e,t}from"./react-BXwhMTuc.js";import{p as n}from"./hooks-DYfTEQLk.js";import{t as r}from"./use-form-DJKZJhQh.js";import{S as i}from"./shade-app-CcS3f8MZ-D5BnfHck.js";import{hi as a}from"./index-DDd-zhNL.js";import{n as o}from"./global-data-context-3MItMry2.js";var s=e(t(),1),c=({savingDelay:e,onValidate:t}={})=>{let c=(0,s.useRef)(null),{siteData:l,settings:u}=o(),{mutateAsync:d}=a(),f=n(),[p,m]=(0,s.useState)(!1),{formState:h,saveState:g,handleSave:_,updateForm:v,setFormState:y,reset:b,validate:x,errors:S,clearError:C,okProps:w}=r({initialState:u||[],savingDelay:e,onSave:async()=>{await d?.(E())},onSaveError:f,onValidate:t}),{setGlobalDirtyState:T}=i();(0,s.useEffect)(()=>{T(h.some(e=>e.dirty))},[h,T]),(0,s.useEffect)(()=>{p&&c.current&&c.current.focus()},[p]),(0,s.useEffect)(()=>{(!p||g===`saving`)&&y(()=>u)},[u]);let E=()=>h?.filter(e=>e.dirty)?.map(e=>({key:e.key,value:e.value}));return{localSettings:h,isEditing:p,saveState:g,focusRef:c,siteData:l,handleSave:async()=>{let e=await _();return e&&m(!1),e},handleCancel:()=>{b(),m(!1)},updateSetting:(0,s.useCallback)((e,t)=>{v(n=>n.some(t=>t.key===e)?n.map(n=>n.key===e?{...n,value:t,dirty:!0}:n):[...n,{key:e,value:t,dirty:!0}])},[v]),handleEditingChange:e=>{m(e)},validate:x,errors:S,clearError:C,okProps:w}};export{c as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e,t}from"./react-BXwhMTuc.js";import{r as n}from"./framework-provider-DB-svAju.js";import{t as r}from"./jsx-runtime-BlNNh7jY.js";import{u as i}from"./chunk-KS7C4IRE-DhOcHQOU.js";import{a}from"./router-provider-CU87qxXw.js";import{l as o,o as s}from"./dist-BXHrDV19.js";import{t as c}from"./box-CZ_LSVSy.js";import{t as l}from"./inline-B8H6NzIw.js";import{t as u}from"./text-DC-ot6u2.js";import{S as d}from"./shade-app-CcS3f8MZ-D5BnfHck.js";import{a as f,t as p}from"./button-DvIh2Bq-.js";import{Xn as m}from"./index-DDd-zhNL.js";import{n as h,t as ee}from"./dirty-confirm-dialog-DWwxREGh.js";var g=r(),_=({shiftY:e,height:t=96,children:n,className:r,contentClassName:i,style:a,...s})=>(0,g.jsxs)(`div`,{className:o(`sticky z-[297] m-0 box-border w-full p-0`,r),style:{bottom:e?`calc(${e} - 24px)`:`-24px`,height:`${t+24}px`,...a},...s,children:[(0,g.jsx)(`div`,{className:`sticky bottom-0 z-[298] block h-6 bg-background`}),(0,g.jsx)(`div`,{className:o(`sticky bottom-0 z-[299] -mb-6 flex items-center justify-between bg-background`,i),style:{height:t},children:n}),(0,g.jsx)(`div`,{className:`sticky mx-2 block h-6 rounded-full shadow-[0_0_0_1px_color-mix(in_oklab,var(--color-border)_25%,transparent),0_-8px_16px_-3px_color-mix(in_oklab,var(--color-foreground)_8%,transparent)]`,style:{bottom:e?`calc(${e} + ${t-24}px)`:`${t-24}px`}})]}),v=e(t(),1),y=`bg-modal-backdrop backdrop-blur-[3px]`,b=s(`relative z-50 flex max-h-full w-full flex-col justify-between overflow-x-hidden bg-background text-foreground`,{variants:{size:{sm:`max-w-[480px] rounded-lg`,md:`max-w-[720px] rounded-lg`,lg:`max-w-[1020px] rounded-lg`,xl:`max-w-[1240px] rounded-lg`,full:`h-full rounded-lg`,bleed:`h-full`},align:{center:`mx-auto`,left:`mr-auto`,right:`ml-auto`},scrolling:{true:`overflow-y-auto`,false:`overflow-y-hidden`},formSheet:{true:`shadow-md`,false:`shadow-xl`}},defaultVariants:{size:`md`,align:`center`,scrolling:!0,formSheet:!1}}),te={sm:`p-4 md:p-[8vmin]`,md:`p-4 md:p-[8vmin]`,lg:`p-4 md:p-[4vmin]`,xl:`p-4 md:p-[3vmin]`,full:`p-4 md:p-[3vmin]`,bleed:``},ne={sm:`p-8`,md:`p-8`,lg:`p-7`,xl:`p-10`,full:`p-10`,bleed:`p-10`},re={sm:`-inset-x-8`,md:`-inset-x-8`,lg:`-inset-x-8`,xl:`-inset-x-10 -top-10`,full:`-inset-x-10`,bleed:`-inset-x-10`},x=(0,v.forwardRef)(({"aria-label":e,className:t,size:n=`md`,align:r=`center`,width:i,height:a,testId:s,title:x,okLabel:S=`OK`,okLoading:C=!1,cancelLabel:w=`Cancel`,footer:T,footerClassName:E,header:D,leftButton:ie,buttonsDisabled:O,okDisabled:ae,padding:oe=!0,onOk:k,okVariant:se=`default`,onCancel:A,topRightContent:j,hideXOnMobile:M=!1,onClose:N,afterClose:P,children:F,backDrop:I=!0,backDropClick:L=!0,stickyFooter:R=!1,stickyHeader:z=!1,scrolling:B=!0,dirty:V=!1,animate:H=!0,formSheet:U=!1,enableCMDS:W=!0,allowBackgroundInteraction:G=!1},ce)=>{let{setGlobalDirtyState:K}=d(),{confirm:le,dialogProps:ue}=h(),[q,de]=(0,v.useState)(!1);(0,v.useEffect)(()=>{K(V)},[V,K]);let J=()=>{le(V,()=>{N(),P?.()})};(0,v.useEffect)(()=>{let e=e=>{if(e.key!==`Escape`)return;let t=document.activeElement;t?.hasAttribute(`data-kg-link-input`)||setTimeout(()=>{e.defaultPrevented||(t instanceof HTMLElement&&document.activeElement===t&&t.blur(),A?A():J())})};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)}),(0,v.useEffect)(()=>{let e=setTimeout(()=>de(!0),250);return()=>clearTimeout(e)},[]),(0,v.useEffect)(()=>{if(!k||!W)return;let e=e=>{(e.metaKey||e.ctrlKey)&&e.key===`s`&&(e.preventDefault(),k())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[W,k]);let Y=oe?ne[n]:`p-0`,fe=o(b({size:n,align:r,scrolling:B,formSheet:U}),t,H&&!U&&!q&&r===`center`&&`animate-modal-in`,H&&!U&&!q&&r===`right`&&`animate-modal-in-from-right`,U&&!q&&`animate-modal-in-reverse`,i===`full`&&`w-full`,i===`toSidebar`&&`w-full max-w-[calc(100dvw_-_280px)] lg:max-w-full min-[1280px]:max-w-[calc(100dvw_-_320px)]`,a===`full`&&`h-full`,G&&`pointer-events-auto`),pe=o(`fixed inset-0 z-[1000] h-[100dvh] w-[100dvw] max-[800px]:pb-20`,te[n],G&&`pointer-events-none`),X=o(Y,`pb-0`,re[n],j&&j!==`close`&&`flex items-center justify-between gap-5`,z&&`sticky -top-px z-[300] -mb-4 bg-background pb-4`),me=o(Y,`py-0`,(n===`full`||n===`bleed`||a===`full`||typeof a==`number`)&&`grow`,T===!1&&`pb-0`),he=o(Y,`flex w-full items-center justify-between`,R&&`py-6`,E),Z={...typeof i==`number`?{width:`100%`,maxWidth:`${i}px`}:{},...typeof a==`number`?{height:`100%`,maxHeight:`${a}px`}:{}},ge=e=>{e.target===e.currentTarget&&L&&J()},Q;T?Q=T:T!==!1&&(Q=(0,g.jsxs)(l,{className:he,gap:`none`,justify:`between`,children:[(0,g.jsx)(c,{children:ie}),(0,g.jsxs)(l,{gap:`md`,children:[w&&(0,g.jsx)(p,{"data-testid":`cancel-modal`,disabled:O,type:`button`,variant:`outline`,onClick:A||J,children:w}),S&&(0,g.jsxs)(p,{"data-testid":`ok-modal`,disabled:O||ae||C,type:`button`,variant:se,onClick:()=>void k?.(),children:[C&&(0,g.jsx)(m,{size:`sm`}),S]})]})]})),R&&(Q=(0,g.jsx)(_,{height:84,children:Q}));let $=x&&(0,g.jsx)(u,{as:`h3`,className:`md:text-2xl`,leading:`heading`,size:`xl`,weight:`bold`,children:x}),_e=j&&j!==`close`?(0,g.jsxs)(l,{as:`header`,className:X,gap:`lg`,justify:`between`,children:[$,j]}):(0,g.jsxs)(`header`,{className:X,children:[$,(0,g.jsx)(c,{className:o(`absolute top-6 right-6`,j!==`close`&&`md:hidden`,M&&`hidden`),children:(0,g.jsx)(p,{"aria-label":`Close modal`,className:`-m-2 opacity-50 hover:opacity-100`,"data-testid":`close-modal`,size:`icon`,type:`button`,variant:`ghost`,onClick:J,children:(0,g.jsx)(f,{})})})]});return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)(c,{className:pe,id:`modal-backdrop`,onMouseDown:ge,children:[(0,g.jsx)(c,{className:o(`pointer-events-none fixed inset-0 z-0`,I&&!U&&y,U&&`bg-form-sheet-backdrop`)}),(0,g.jsxs)(`section`,{ref:ce,"aria-label":e,className:fe,"data-testid":s,style:Z,children:[D!==!1&&_e,(0,g.jsx)(c,{className:me,children:F}),Q]})]}),(0,g.jsx)(ee,{...ue})]})});x.displayName=`SettingsModal`;var S=(0,v.createContext)({updateSection:()=>{},updateNav:()=>{},currentSection:null,updateNavigatedSection:()=>{},scrollToSection:()=>{}}),C=()=>(0,v.useContext)(S),w=e=>{let{updateSection:t}=C(),n=(0,v.useRef)(null);return(0,v.useEffect)(()=>{e&&n.current&&t(e,n.current)},[e,t]),{ref:n}},T=e=>{let{updateNav:t}=C(),n=(0,v.useRef)(null);return(0,v.useEffect)(()=>{e&&n.current&&(Array.isArray(e)?e:[e]).forEach(e=>{t(e,n.current)})},[e,t]),{ref:n,props:{"data-setting-nav-item":!0}}};function E(){let e=a(),t=i(),{externalNavigate:r}=n(),{scrollToSection:o}=C();return{route:(0,v.useMemo)(()=>t.pathname.replace(/^\/settings\/?/,``),[t.pathname]),updateRoute:(0,v.useCallback)(n=>{if(typeof n==`object`&&n.isExternal){r(n);return}let i=typeof n==`string`?{route:n}:n,a=i.route.replace(/^\//,``),s=a.indexOf(`?`),c=s===-1?a:a.slice(0,s),l=s===-1?``:a.slice(s+1),u=c?`/settings/${c}`:`/settings`,d=l?`?${l}`:``;if(!i.replace&&t.pathname===u){if(t.search===d){o(c.split(`/`)[0]);return}e(u+d,{replace:i.replace}),o(c.split(`/`)[0]);return}e(u+d,{replace:i.replace})},[r,e,t.pathname,t.search,o])}}export{T as a,C as i,S as n,x as o,w as r,_ as s,E as t};
|
|
@@ -1 +0,0 @@
|
|
|
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{Ar as i,Or as a,t as o}from"./button-DvIh2Bq-.js";var s=e(t(),1),c=n(),l=s.forwardRef(({className:e,children:t,...n},i)=>(0,c.jsx)(`div`,{ref:i,className:r(`flex items-center justify-between gap-4 pb-6 text-sm`,e),...n,children:t}));l.displayName=`SimplePagination`;var u=s.forwardRef(({className:e,currentPage:t,totalPages:n,...i},a)=>(0,c.jsxs)(`span`,{ref:a,className:r(`text-muted-foreground`,e),...i,children:[`Pages `,t,` of `,n]}));u.displayName=`SimplePaginationPages`;var d=s.forwardRef(({className:e,children:t,...n},i)=>(0,c.jsx)(`div`,{ref:i,className:r(`flex items-center gap-1.5`,e),...n,children:t}));d.displayName=`SimplePaginationNavigation`;var f=s.forwardRef(({variant:e=`outline`,...t},n)=>(0,c.jsx)(o,{ref:n,size:`sm`,variant:e,...t,children:(0,c.jsx)(i,{})}));f.displayName=`SimplePaginationPreviousButton`;var p=s.forwardRef(({variant:e=`outline`,...t},n)=>(0,c.jsx)(o,{ref:n,size:`sm`,variant:e,...t,children:(0,c.jsx)(a,{})}));p.displayName=`SimplePaginationNextButton`;function m({data:e,itemsPerPage:t,initialPage:n=1}){let[r,i]=(0,s.useState)(n);if(t<=0)throw Error(`itemsPerPage must be a positive number`);let a=e=>{i(Math.max(1,Math.min(o,e)))},o=(0,s.useMemo)(()=>e?Math.ceil(e.length/t):1,[e,t]);return(0,s.useEffect)(()=>{r>o&&i(1)},[r,o]),{currentPage:r,setCurrentPage:a,totalPages:o,paginatedData:(0,s.useMemo)(()=>{if(!e)return null;let n=(r-1)*t;return e.slice(n,n+t)},[e,r,t]),nextPage:()=>{i(e=>Math.min(o,e+1))},previousPage:()=>{i(e=>Math.max(1,e-1))},hasNextPage:r<o,hasPreviousPage:r>1}}export{u as a,p as i,l as n,f as o,d as r,m as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e,t}from"./react-BXwhMTuc.js";import{t as n}from"./jsx-runtime-BlNNh7jY.js";import{l as r,o as i}from"./dist-BXHrDV19.js";import{t as a}from"./grid-5vplBYri.js";import{t as o}from"./inline-B8H6NzIw.js";import{t as s}from"./stack-BURz77VS.js";import{t as c}from"./text-DC-ot6u2.js";import{i as l,n as u}from"./use-limiter-DBGjYqu7.js";import{f as d}from"./users-C60_hpn6.js";import{t as f}from"./validator-DlFQP70j.js";import{n as p}from"./global-data-context-3MItMry2.js";var m=e(t(),1),h=n(),g=i(`group/setting-group relative flex flex-col gap-6 rounded-xl text-card-foreground transition-all`,{variants:{variant:{outline:`border border-border-default bg-card p-5 hover:shadow-sm md:p-7`,plain:`bg-transparent`},highlighted:{true:`shadow-sm`,false:``}},defaultVariants:{variant:`outline`,highlighted:!1}}),_=m.forwardRef(({className:e,variant:t,highlighted:n,editing:i=!1,...a},o)=>(0,h.jsx)(`div`,{ref:o,className:r(g({variant:t,highlighted:n,className:e})),"data-editing":i,...a}));_.displayName=`SettingGroup`;var v=m.forwardRef(({className:e,...t},n)=>(0,h.jsx)(o,{ref:n,align:`start`,as:`div`,className:r(`relative z-10 w-full`,e),gap:`lg`,justify:`between`,...t}));v.displayName=`SettingGroupHeader`;var y=m.forwardRef(({className:e,...t},n)=>(0,h.jsx)(s,{ref:n,className:r(`min-w-0`,e),gap:`xs`,...t}));y.displayName=`SettingGroupDetails`;var b=m.forwardRef(({className:e,...t},n)=>(0,h.jsx)(c,{ref:n,as:`h5`,className:r(`md:text-lg`,e),leading:`supertight`,weight:`semibold`,...t}));b.displayName=`SettingGroupTitle`;var x=m.forwardRef(({className:e,...t},n)=>(0,h.jsx)(c,{ref:n,className:r(`mr-5 hidden text-pretty group-data-[editing=false]/setting-group:block md:block`,e),...t}));x.displayName=`SettingGroupDescription`;var S=m.forwardRef(({className:e,...t},n)=>(0,h.jsx)(`div`,{ref:n,className:r(`shrink-0 [&_button]:text-control!`,e),...t}));S.displayName=`SettingGroupActions`;var C=m.forwardRef(({children:e,className:t,columns:n=1,...i},o)=>n===2?(0,h.jsx)(a,{ref:o,className:r(`grid-cols-1 gap-x-8 gap-y-6 md:grid-cols-2`,t),columns:1,gap:`none`,...i,children:e}):(0,h.jsx)(s,{ref:o,className:r(`gap-y-7`,t),gap:`none`,...i,children:e}));C.displayName=`SettingGroupContent`;var w=m.forwardRef(({className:e,...t},n)=>(0,h.jsx)(s,{ref:n,className:e,gap:`none`,...t}));w.displayName=`SettingGroupValue`;var T=m.forwardRef(({className:e,...t},n)=>(0,h.jsx)(c,{ref:n,as:`h6`,className:r(`text-base`,e),weight:`semibold`,...t}));T.displayName=`SettingGroupValueTitle`;var E=m.forwardRef(({className:e,...t},n)=>(0,h.jsx)(o,{ref:n,as:`div`,className:e,gap:`none`,...t}));E.displayName=`SettingGroupValueContent`;var D=e(f(),1),ee=e=>e.replace(/[\\\]^-]/g,`\\$&`),te=e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),O=e=>{if(e.patterns){let t=e.patterns;return e=>t.some(t=>t.test(e))}let t=`a-zA-Z0-9${e.unicode?`\\p{L}\\p{M}\\p{N}`:``}${ee(e.extra??``)}`,n=RegExp(`^[${t}]+$`,`u`),r=e.min??1,i=e.max??100;return t=>{let[a,...o]=e.nestedSegments?t.split(`/`):[t];if(!n.test(a))return!1;let s=[...a].length;if(s<r||s>i)return!1;for(let t of e.notAtBoundary??``)if(a.startsWith(t)||a.endsWith(t))return!1;for(let t of e.notConsecutive??``)if(a.includes(t+t))return!1;return o.every(e=>e===``||n.test(e))}},ne=e=>{try{return decodeURIComponent(e)}catch{return e}},k=e=>{let{domains:t,www:n,regionalSubdomain:r,pathTypes:i,fullPath:a,transformUsername:o,errors:s}=e,c=i.map(e=>({...e,check:O(e.rule)})),l=[...c].sort((e,t)=>t.urlPrefix.length-e.urlPrefix.length),u=c.flatMap(e=>[e.storagePrefix,...e.handleAliases??[]].filter(e=>e!==``).map(t=>({prefix:t,pathType:e}))).sort((e,t)=>t.prefix.length-e.prefix.length),d=t.map(e=>te(e)).join(`|`),f=`${r?`(?:(?<region>${r})\\.)?`:``}(?:[a-zA-Z0-9-]+\\.)*`,p=RegExp(`^(?:(?:https?:)?\\/\\/)?${f}(?:${d})\\/(?<rest>[\\s\\S]*)$`,`i`),m=RegExp(`^${f}(?:${d})(?:\\/|$)`,`i`),h=e=>/^(?:https?:\/\/|\/\/|www\.)/i.test(e)||m.test(e),g=(e,t)=>{let n=t?e:e.replace(/^@/,``);return n=n.replace(/\/$/,``),a||(n=ne(n)),n=n.normalize(`NFC`),o?o(n):n},_=e=>{let t=e.replace(/^\//,``),n=u.find(({prefix:e})=>t.startsWith(e));return n?{pathType:n.pathType,rawUsername:t.slice(n.prefix.length),atPrefixConsumed:!n.pathType.tolerateLeadingAt}:{pathType:c[0],rawUsername:t,atPrefixConsumed:!1}},v=e=>{if(!h(e))return _(e);let t=e.match(p);if(!t?.groups)throw Error(s.invalidUrl);let{region:n,rest:r}=t.groups,i=l.find(e=>r.startsWith(e.urlPrefix));if(!i||r.length<=i.urlPrefix.length)throw Error(s.invalidUrl);let o=r.slice(i.urlPrefix.length),c=!a&&!i.rule.nestedSegments?o.split(`/`)[0]:o;if(!a&&/[?#]/.test(c))throw Error(s.invalidUsername);return{region:n,pathType:i,rawUsername:c,atPrefixConsumed:i.urlPrefix!==``&&!i.tolerateLeadingAt}},y=(e,t)=>{if(!e.check(t))throw Error(s.invalidUsername)},b=(e,r,i)=>{let a=`https://${i?`${i.toLowerCase()}.`:n?`www.`:``}${t[0]}/${e.urlPrefix}${r}`;if(!D.default.isURL(a))throw Error(s.invalidUrl);return a};return{validate:e=>{if(!e)return``;let{region:t,pathType:n,rawUsername:r,atPrefixConsumed:i}=v(e.trim()),a=g(r,i);return y(n,a),b(n,a,t)},handleToUrl:e=>{if(!e)throw Error(s.invalidUsername);let{pathType:t,rawUsername:n,atPrefixConsumed:r}=_(e.trim()),i=g(n,r);return y(t,i),b(t,i)},urlToHandle:e=>{if(!e||!h(e.trim()))return null;try{let{pathType:t,rawUsername:n,atPrefixConsumed:r}=v(e.trim()),i=g(n,r);return y(t,i),`${t.storagePrefix}${i}`}catch{return null}}}},A=`The URL must be in a format like https://www.facebook.com/yourPage`,j=k({domains:[`facebook.com`],www:!0,fullPath:!0,pathTypes:[{urlPrefix:``,storagePrefix:``,rule:{patterns:[/^\S+$/]}}],errors:{invalidUrl:A,invalidUsername:A}}),M=j.validate,re=j.handleToUrl,ie=j.urlToHandle,N=k({domains:[`x.com`,`twitter.com`],www:!1,pathTypes:[{urlPrefix:``,storagePrefix:`@`,rule:{extra:`_`,min:1,max:15}}],errors:{invalidUrl:`The URL must be in a format like https://x.com/yourUsername`,invalidUsername:`Your Username is not a valid Twitter Username`}}),ae=N.validate,oe=N.handleToUrl,se=N.urlToHandle,P={extra:`._`,min:1,max:30,notAtBoundary:`.`,notConsecutive:`.`},F=k({domains:[`instagram.com`],www:!0,pathTypes:[{urlPrefix:``,storagePrefix:``,rule:P}],errors:{invalidUrl:`The URL must be in a format like https://www.instagram.com/yourUsername`,invalidUsername:`Your Username is not a valid Instagram Username`}}),ce=F.validate,le=F.handleToUrl,ue=F.urlToHandle,I=k({domains:[`threads.net`,`threads.com`],www:!0,pathTypes:[{urlPrefix:`@`,storagePrefix:`@`,rule:P},{urlPrefix:``,storagePrefix:`@`,rule:P}],errors:{invalidUrl:`The URL must be in a format like https://www.threads.net/@yourUsername`,invalidUsername:`The URL must be in a format like https://www.threads.net/@yourUsername`}}),L=I.validate,R=I.handleToUrl,z=I.urlToHandle,B=k({domains:[`bsky.app`],www:!1,pathTypes:[{urlPrefix:`profile/`,storagePrefix:``,tolerateLeadingAt:!0,rule:{patterns:[/^did:plc:[a-z2-7]{24}$/,/^[a-zA-Z0-9._]{1,15}$/,/^(?=.{1,191}$)[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+$/]}}],transformUsername:e=>/^did:plc:/i.test(e)?e.toLowerCase():e,errors:{invalidUrl:`The URL must be in a format like https://bsky.app/profile/yourUsername`,invalidUsername:`Your Username is not a valid Bluesky Username`}}),V=B.validate,H=B.handleToUrl,U=B.urlToHandle,W={unicode:!0,extra:`-`,min:3,max:100},G={...W,extra:`-_`},K=k({domains:[`linkedin.com`],www:!0,regionalSubdomain:`[a-z]{2}`,pathTypes:[{urlPrefix:`in/`,storagePrefix:``,handleAliases:[`in/`],rule:W},{urlPrefix:`pub/`,storagePrefix:`pub/`,rule:{...W,nestedSegments:!0}},{urlPrefix:`company/`,storagePrefix:`company/`,rule:G},{urlPrefix:`school/`,storagePrefix:`school/`,rule:G}],errors:{invalidUrl:`The URL must be in a format like https://www.linkedin.com/in/yourUsername`,invalidUsername:`Your Username is not a valid LinkedIn Username`}}),de=K.validate,fe=K.handleToUrl,pe=K.urlToHandle,q=k({domains:[`youtube.com`],www:!0,pathTypes:[{urlPrefix:`@`,storagePrefix:`@`,rule:{unicode:!0,extra:`._-`,min:3,max:30,notAtBoundary:`._-`,notConsecutive:`.`}},{urlPrefix:`user/`,storagePrefix:`user/`,rule:{extra:`._-`,min:1,max:50}},{urlPrefix:`channel/`,storagePrefix:`channel/`,rule:{patterns:[/^UC[a-zA-Z0-9_-]{22}$/]}}],errors:{invalidUrl:`The URL must be in a format like https://www.youtube.com/@yourUsername, https://www.youtube.com/user/yourUsername, or https://www.youtube.com/channel/yourChannelId`,invalidUsername:`Your Username is not a valid YouTube Username`}}),me=q.validate,he=q.handleToUrl,ge=q.urlToHandle,J=k({domains:[`tiktok.com`],www:!0,pathTypes:[{urlPrefix:`@`,storagePrefix:`@`,rule:{extra:`._`,min:2,max:24,notAtBoundary:`.`,notConsecutive:`.`}}],errors:{invalidUrl:`The URL must be in a format like https://www.tiktok.com/@yourUsername`,invalidUsername:`Your Username is not a valid TikTok Username`}}),_e=J.validate,ve=J.handleToUrl,ye=J.urlToHandle;function be(e){let t=`The URL must be in a format like @username@instance.tld or https://instance.tld/@username or https://website.com/@username@instance.tld`;if(!e)return``;let n=e;if(n=n.replace(/^https?:\/\//,``),n.match(/^@[^@]+@[^/]+$/)){let[e,r]=n.split(`@`).slice(1);if(!D.default.isFQDN(r))throw Error(t);return`https://${r}/@${e}`}if(n.match(/^[^/]+\.[^/]+\/@[^/]+(@[^/]+)?$/)){let[e,r]=n.split(`/@`);if(!D.default.isFQDN(e))throw Error(t);if(r.includes(`@`)){let[,e]=r.split(`@`);if(!D.default.isFQDN(e))throw Error(t)}return`https://${n}`}throw Error(t)}var xe=e=>{let t=`Your Username is not a valid Mastodon Username`;if(!e)throw Error(t);if(e.match(/^@[^@]+@[^/]+$/)){let[n,r]=e.split(`@`).slice(1);if(!D.default.isFQDN(r))throw Error(t);return`https://${r}/@${n}`}if(e.match(/^[^/]+\.[^/]+\/@[^/]+(@[^/]+)?$/)){let[n,r]=e.split(`/@`);if(!D.default.isFQDN(n))throw Error(t);if(r.includes(`@`)){let[,e]=r.split(`@`);if(!D.default.isFQDN(e))throw Error(t)}return`https://${e}`}throw Error(t)},Se=e=>e.replace(/^https?:\/\//,``),Ce=[`twitter`,`facebook`,`linkedin`,`bluesky`,`threads`,`mastodon`,`tiktok`,`youtube`,`instagram`],Y=(e,t)=>{if(!e)return``;try{return t(e)}catch{return e}},X=[{key:`twitter`,staffTitle:`X`,publicationTitle:`X`,placeholder:`https://x.com/username`,testId:`x-input`,validate:ae,toDisplayValue:e=>Y(e,oe),toStoredValue:e=>se(e)},{key:`facebook`,staffTitle:`Facebook`,publicationTitle:`Facebook`,placeholder:`https://www.facebook.com/username`,testId:`facebook-input`,validate:M,toDisplayValue:e=>Y(e,re),toStoredValue:e=>ie(e)},{key:`linkedin`,staffTitle:`LinkedIn`,publicationTitle:`LinkedIn`,placeholder:`https://www.linkedin.com/in/username`,testId:`linkedin-input`,validate:de,toDisplayValue:e=>Y(e,fe),toStoredValue:e=>pe(e)},{key:`bluesky`,staffTitle:`Bluesky`,publicationTitle:`Bluesky`,placeholder:`https://bsky.app/profile/username`,testId:`bluesky-input`,validate:V,toDisplayValue:e=>Y(e,H),toStoredValue:e=>U(e)},{key:`threads`,staffTitle:`Threads`,publicationTitle:`Threads`,placeholder:`https://threads.net/@username`,testId:`threads-input`,validate:L,toDisplayValue:e=>Y(e,R),toStoredValue:e=>z(e)},{key:`mastodon`,staffTitle:`Mastodon`,publicationTitle:`Mastodon`,placeholder:`https://mastodon.social/@username`,testId:`mastodon-input`,validate:be,toDisplayValue:e=>Y(e,xe),toStoredValue:e=>e?Se(e):null},{key:`tiktok`,staffTitle:`TikTok`,publicationTitle:`TikTok`,placeholder:`https://www.tiktok.com/@username`,testId:`tiktok-input`,validate:_e,toDisplayValue:e=>Y(e,ve),toStoredValue:e=>ye(e)},{key:`youtube`,staffTitle:`YouTube`,publicationTitle:`YouTube`,placeholder:`https://www.youtube.com/@channel`,testId:`youtube-input`,validate:me,toDisplayValue:e=>Y(e,he),toStoredValue:e=>ge(e)},{key:`instagram`,staffTitle:`Instagram`,publicationTitle:`Instagram`,placeholder:`https://www.instagram.com/username`,testId:`instagram-input`,validate:ce,toDisplayValue:e=>Y(e,le),toStoredValue:e=>ue(e)}],Z=Object.fromEntries(X.map(e=>[e.key,e])),we=(e,t)=>{let n=Z[e],r=n.validate(t),i=r?n.toStoredValue(r):null;return{displayValue:n.toDisplayValue(i),storedValue:i}},Q=(e,t)=>{try{return Z[e].validate(t||``),``}catch(e){return e instanceof Error?e.message:``}};function $(e,t){return e.filter(e=>e.roles.find(e=>e.name===t))}function Te(e,t){return e.filter(e=>e.roles.find(e=>t.includes(e.name)))}function Ee(e){return $(e,`Owner`)[0]}var De=()=>{let{currentUser:e}=p(),{data:{users:t,meta:n,isEnd:r}={users:[]},isLoading:i,fetchNextPage:a}=d(),{data:{invites:o,meta:s,isEnd:c}={invites:[]},isLoading:f,fetchNextPage:h}=l(),{data:{roles:g}={},isLoading:_}=u(),v=(0,m.useMemo)(()=>Ee(t),[t]),y=(0,m.useMemo)(()=>$(t,`Administrator`),[t]),b=(0,m.useMemo)(()=>Te(t,[`Editor`,`Super Editor`]),[t]),x=(0,m.useMemo)(()=>$(t,`Author`),[t]),S=(0,m.useMemo)(()=>$(t,`Contributor`),[t]),C=(0,m.useMemo)(()=>o.map(e=>{let t=g?.find(t=>e.role_id===t.id);return{...e,role:t?.name}}),[o,g]);return{totalUsers:n?.pagination.total||0,totalInvites:s?.pagination.total||0,users:t,ownerUser:v,adminUsers:y,editorUsers:b,authorUsers:x,contributorUsers:S,currentUser:e,invites:C,isLoading:i||f||_,hasNextPage:r===!1,invitesHasNextPage:c===!1,fetchNextPage:a,fetchNextInvitePage:h}};export{we as a,C as c,v as d,b as f,T as h,Q as i,x as l,E as m,X as n,_ as o,w as p,Ce as r,S as s,De as t,y as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{k as e}from"./hooks-DYfTEQLk.js";import{t}from"./use-tinybird-token-Lk1RSn0t.js";import{Ci as n}from"./index-DDd-zhNL.js";var r=(e,t,n=``)=>{if(!e)return``;let r;r=e.local?.enabled?e.local.endpoint||``:e.endpointBrowser?e.endpointBrowser:e.endpoint||``;let i=e.version?`${t}_${e.version}`:t;return`${r}/v0/pipes/${i}.json?${n}`},i=60*1e3,a=(e,t)=>{if(!e)return;let n;try{n=new URL(e)}catch{return}for(let[e,r]of Object.entries(t))n.searchParams.set(e,r);return n.toString()},o=async({url:e,token:t,refreshToken:n,signal:r})=>{let i=t=>fetch(e,{credentials:`omit`,headers:{Authorization:`Bearer ${t}`},signal:r}),a=await i(t);if(a.status===401||a.status===403){let e=await n();e&&e!==t&&(a=await i(e))}if(!a.ok){let e=await a.text();throw Error(`Tinybird request failed (${a.status}): ${e||a.statusText}`)}return s(await a.json())},s=e=>{if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Tinybird returned an unexpected response shape`);let{data:t,meta:n}=e,r=e=>Array.isArray(e)&&e.every(e=>typeof e==`object`&&!!e);if(t!=null&&!r(t)||n!=null&&!r(n))throw Error(`Tinybird returned an unexpected response shape`);return e},c=s=>{let{statsConfig:c,endpoint:l,params:u,enabled:d=!0,refetchInterval:f,refetchIntervalInBackground:p}=s,m=n(),h=!!(d&&m&&c&&l),g=t({enabled:h}),_=a(h&&c?r(c,l):void 0,u),v=g.token,y=g.refetch,b=e({queryKey:[`tinybird`,_],enabled:!!(h&&_&&v),staleTime:i,retry:!1,refetchOnWindowFocus:!0,refetchInterval:f,refetchIntervalInBackground:p,queryFn:({signal:e})=>o({url:_,token:v,refreshToken:y,signal:e})});return{data:h?b.data?.data??null:null,meta:h?b.data?.meta??null:null,loading:h?g.isLoading||b.isLoading:!1,error:h?b.error??g.error:null}};export{c as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e,t}from"./react-BXwhMTuc.js";import{T as n,g as r,m as i,n as a,p as o,r as s}from"./hooks-DYfTEQLk.js";import{t as c}from"./jsx-runtime-BlNNh7jY.js";import{n as l}from"./dist-DziNzWI2.js";import{t as u}from"./use-form-DJKZJhQh.js";import{h as d,u as f}from"./chunk-KS7C4IRE-DhOcHQOU.js";import{a as p}from"./router-provider-CU87qxXw.js";import{m,w as h}from"./dist-BXHrDV19.js";import{t as g}from"./text-DC-ot6u2.js";import{D as _,Pn as v,bt as y,g as b,t as x}from"./button-DvIh2Bq-.js";import{n as S,t as ee}from"./use-limiter-DBGjYqu7.js";import{i as C,n as w,r as te,t as ne}from"./tabs-B3XK93sR.js";import{t as T}from"./switch-zfUUy9Jh.js";import{t as E}from"./dropzone-D61QVcEY.js";import{i as D,n as O,o as k,s as A,t as j}from"./select-CKaC4ggu.js";import{o as re,t as ie}from"./use-settings-navigation-BIjI5mL3.js";import{i as M,n as N,o as P,r as F,t as I}from"./field-p7KnP98B.js";import{t as L}from"./textarea-B4FffFmE.js";import{_ as R,c as ae,d as z,g as oe,h as se,m as ce,o as B,p as le,s as ue,t as de,u as fe}from"./users-C60_hpn6.js";import{Ar as pe,Sr as me,Zn as V,br as he,ci as ge,ct as _e,t as ve,wr as H}from"./index-DDd-zhNL.js";import{a as ye,c as be,i as xe,n as Se,o as Ce,r as we,s as Te,t as Ee}from"./images-4mvoc3lB.js";import{a as U,c as W,i as De,n as G,o as K,r as Oe,t as ke}from"./use-staff-users-i_Mq9OGR.js";import{t as q}from"./validator-DlFQP70j.js";import{n as Ae}from"./confirmation-context-IyqoXVk-.js";import{n as J}from"./global-data-context-3MItMry2.js";import{t as je}from"./use-upgrade-route-CVjDlNSs.js";import{t as Y}from"./api-keys-CubH-7_H.js";import{t as Me}from"./use-pintura-editor-Bz2bZ4iT.js";var X=c(),Ne=({user:e,setUserData:t})=>{let{config:n,settings:r}=J(),i=ge(r||[],n||{});return(0,X.jsxs)(W,{children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`span`,{className:`text-sm font-medium tracking-wide text-gray-700 uppercase`,children:`Engagement`}),(0,X.jsxs)(`div`,{className:`mt-3 flex flex-col gap-4`,children:[(0,X.jsxs)(I,{orientation:`horizontal`,children:[(0,X.jsxs)(N,{children:[(0,X.jsx)(P,{htmlFor:`comment-notifications`,children:`Comments`}),(0,X.jsx)(F,{children:`Every time a member comments on one of your posts`})]}),(0,X.jsx)(T,{checked:!!e.comment_notifications,id:`comment-notifications`,onCheckedChange:n=>t({...e,comment_notifications:n})})]}),B(e)&&(0,X.jsxs)(I,{orientation:`horizontal`,children:[(0,X.jsxs)(N,{children:[(0,X.jsx)(P,{htmlFor:`recommendation-notifications`,children:`Recommendations`}),(0,X.jsx)(F,{children:`Every time another publisher recommends you to their audience`})]}),(0,X.jsx)(T,{checked:!!e.recommendation_notifications,id:`recommendation-notifications`,onCheckedChange:n=>t({...e,recommendation_notifications:n})})]})]})]}),B(e)&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`span`,{className:`text-sm font-medium tracking-wide text-gray-700 uppercase`,children:`Members`}),(0,X.jsxs)(`div`,{className:`mt-3 flex flex-col gap-4`,children:[(0,X.jsxs)(I,{orientation:`horizontal`,children:[(0,X.jsxs)(N,{children:[(0,X.jsx)(P,{htmlFor:`free-member-signup-notifications`,children:`New signups`}),(0,X.jsx)(F,{children:`Every time a new free member signs up`})]}),(0,X.jsx)(T,{checked:!!e.free_member_signup_notification,id:`free-member-signup-notifications`,onCheckedChange:n=>t({...e,free_member_signup_notification:n})})]}),i&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(I,{orientation:`horizontal`,children:[(0,X.jsxs)(N,{children:[(0,X.jsx)(P,{htmlFor:`paid-subscription-started-notifications`,children:`New paid members`}),(0,X.jsx)(F,{children:`Every time a member starts a new paid subscription`})]}),(0,X.jsx)(T,{checked:!!e.paid_subscription_started_notification,id:`paid-subscription-started-notifications`,onCheckedChange:n=>t({...e,paid_subscription_started_notification:n})})]}),(0,X.jsxs)(I,{orientation:`horizontal`,children:[(0,X.jsxs)(N,{children:[(0,X.jsx)(P,{htmlFor:`paid-subscription-canceled-notifications`,children:`Paid member cancellations`}),(0,X.jsx)(F,{children:`Every time a member cancels their paid subscription`})]}),(0,X.jsx)(T,{checked:!!e.paid_subscription_canceled_notification,id:`paid-subscription-canceled-notifications`,onCheckedChange:n=>t({...e,paid_subscription_canceled_notification:n})})]})]})]})]}),(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`span`,{className:`text-sm font-medium tracking-wide text-gray-700 uppercase`,children:`Revenue`}),(0,X.jsxs)(`div`,{className:`mt-3 flex flex-col gap-4`,children:[(0,X.jsxs)(I,{orientation:`horizontal`,children:[(0,X.jsxs)(N,{children:[(0,X.jsx)(P,{htmlFor:`milestone-notifications`,children:`Milestones`}),(0,X.jsx)(F,{children:i?`Occasional summaries of your audience & revenue growth`:`Occasional summaries of your audience growth`})]}),(0,X.jsx)(T,{checked:!!e.milestone_notifications,id:`milestone-notifications`,onCheckedChange:n=>t({...e,milestone_notifications:n})})]}),i&&(0,X.jsxs)(I,{orientation:`horizontal`,children:[(0,X.jsxs)(N,{children:[(0,X.jsx)(P,{htmlFor:`donation-notifications`,children:`Tips & donations`}),(0,X.jsx)(F,{children:`Every time you receive a one-time payment`})]}),(0,X.jsx)(T,{checked:!!e.donation_notifications,id:`donation-notifications`,onCheckedChange:n=>t({...e,donation_notifications:n})})]}),i&&(0,X.jsxs)(I,{orientation:`horizontal`,children:[(0,X.jsxs)(N,{children:[(0,X.jsx)(P,{htmlFor:`gift-subscription-notifications`,children:`Gift subscriptions`}),(0,X.jsx)(F,{children:`Every time someone purchases or redeems a gift subscription`})]}),(0,X.jsx)(T,{checked:!!e.gift_subscription_notifications,id:`gift-subscription-notifications`,onCheckedChange:n=>t({...e,gift_subscription_notifications:n})})]})]})]})]})]})},Pe=({user:e,setUserData:t})=>(0,X.jsx)(K,{variant:`plain`,children:(0,X.jsx)(Ne,{setUserData:t,user:e})}),Z=e(t(),1),Fe=[`1234567890`,`qwertyuiop`,`qwertzuiop`,`asdfghjkl;`,`abcdefghij`,`0987654321`,`1q2w3e4r5t`,`12345asdfg`],Ie=[`ghost`,`password`,`passw0rd`],Le=e=>{let t={},n=!0,r=e.length/2;for(let n=0;n<e.length;n+=1)t[e[n]]?t[e[n]]+=1:t[e[n]]=1;for(let e in t)if(t[e]>=r)return n=!1,n;return n},Q=({user:e})=>{let{currentUser:t,config:r,siteData:i}=J(),[a,s]=(0,Z.useState)(!1),[c,u]=(0,Z.useState)(``),[d,f]=(0,Z.useState)(``),[p,m]=(0,Z.useState)(``),[h,g]=(0,Z.useState)(``),[_,v]=(0,Z.useState)({}),y=(0,Z.useRef)(null),b=(0,Z.useRef)(null),S=(0,Z.useRef)(null),{mutateAsync:ee}=R(),C=o(),w=e.id===t.id,te=({password:t,confirmPassword:n})=>{if(w&&!c)return{oldPassword:`Your current password is required to set a new one`};if(t!==n)return{newPassword:`Your new passwords do not match`,confirmNewPassword:`Your new passwords do not match`};let a=r.blogUrl||window.location.host,o=i.title;a=a.replace(/^http(s?):\/\//,``);let s=a.match(/\/$/)?a:`${a}/`;if(o&&=o.trim().toLowerCase(),t.length<10)return{newPassword:`Password must be at least 10 characters long.`};t=t.toString();for(let e of Fe)if(e===t)return{newPassword:`Sorry, you cannot use an insecure password.`};if(t.toLowerCase()===e.email.toLowerCase())return{newPassword:`Sorry, you cannot use an insecure password.`};for(let e of Ie)if(t.toLowerCase().indexOf(e)>=0)return{newPassword:`Sorry, you cannot use an insecure password.`};return t.toLowerCase()===o||t.toLowerCase()===a||t.toLowerCase()===s||!Le(t)?{newPassword:`Sorry, you cannot use an insecure password.`}:{}};(0,Z.useEffect)(()=>{h===`saved`&&setTimeout(()=>{g(``),s(!1)},2500)},[h]),(0,Z.useEffect)(()=>{a&&setTimeout(()=>{w?S.current?.focus():y.current?.focus()},100)},[a,w]);let ne=()=>{s(!0)},T=async()=>{g(`saving`);let t=te({password:d,confirmPassword:p});if(v(t),Object.keys(t).length>0){g(``);return}try{await ee({newPassword:d,confirmNewPassword:p,oldPassword:c,userId:e?.id}),g(`saved`)}catch(e){g(``),l.error(e instanceof n?e.message:`Couldn't update password. Please try again.`),C(e,{withToast:!1})}},E=`Save password`;h===`saving`?E=`Saving...`:h===`saved`&&(E=`Saved`);let D=(0,X.jsxs)(X.Fragment,{children:[w&&(0,X.jsxs)(I,{"data-invalid":!!_.oldPassword||void 0,children:[(0,X.jsx)(P,{htmlFor:`old-password`,children:`Old password`}),(0,X.jsx)(V,{ref:S,"aria-invalid":!!_.oldPassword||void 0,"data-testid":`old-password`,id:`old-password`,type:`password`,value:c,onChange:e=>u(e.target.value)}),_.oldPassword&&(0,X.jsx)(M,{children:_.oldPassword})]}),(0,X.jsxs)(I,{"data-invalid":!!_.newPassword||void 0,children:[(0,X.jsx)(P,{htmlFor:`new-password`,children:`New password`}),(0,X.jsx)(V,{ref:y,"aria-invalid":!!_.newPassword||void 0,"data-testid":`new-password`,id:`new-password`,type:`password`,value:d,onChange:e=>f(e.target.value)}),_.newPassword&&(0,X.jsx)(M,{children:_.newPassword})]}),(0,X.jsxs)(I,{"data-invalid":!!_.confirmNewPassword||void 0,children:[(0,X.jsx)(P,{htmlFor:`confirm-password`,children:`Confirm new password`}),(0,X.jsx)(V,{ref:b,"aria-invalid":!!_.confirmNewPassword||void 0,"data-testid":`confirm-password`,id:`confirm-password`,type:`password`,value:p,onChange:e=>m(e.target.value)}),_.confirmNewPassword&&(0,X.jsx)(M,{children:_.confirmNewPassword})]}),(0,X.jsxs)(`div`,{className:`mt-1 flex items-center justify-end gap-3`,children:[(0,X.jsx)(x,{type:`button`,variant:`outline`,onClick:()=>{s(!1),u(``),f(``),m(``),v({})},children:`Cancel`}),(0,X.jsx)(x,{"data-testid":`save-password-button`,type:`button`,onClick:()=>void T(),children:E})]})]});return(0,X.jsx)(X.Fragment,{children:a?D:(0,X.jsxs)(`div`,{className:`relative flex flex-col`,children:[(0,X.jsxs)(I,{className:`grow`,"data-disabled":!0,children:[(0,X.jsx)(P,{htmlFor:`current-password`,children:`Password`}),(0,X.jsx)(V,{id:`current-password`,type:`password`,value:`••••••••••••`,disabled:!0})]}),(0,X.jsx)(x,{className:`absolute top-0 right-0 h-auto p-0 hover:bg-transparent`,"data-testid":`change-password-button`,size:`sm`,type:`button`,variant:`ghost`,onClick:ne,children:`Change`})]})})},Re=({user:e,setUserData:t})=>{let{data:{roles:n}={}}=S(),r=ve(`superEditors`),i=[{hint:`Can write and edit their own posts, but cannot publish them.`,label:`Contributor`,value:`contributor`},{hint:`Can create, edit and publish their own posts, but can’t modify others.`,label:`Author`,value:`author`},{hint:`Can edit and publish any posts, and manage Authors and Contributors.`,label:`Editor`,value:`editor`},{hint:`Trusted user who has full access to all content, settings, and user management.`,label:`Administrator`,value:`administrator`}];if(r&&(i=i.map(e=>e.value===`editor`?{...e,label:`Editor (beta mode)`,value:`super editor`,hint:`Can invite and manage other Authors and Contributors, as well as edit and publish any posts on the site. Can manage members and moderate comments.`}:e)),z(e)){let e={label:`Owner`,value:`owner`};return(0,X.jsxs)(I,{children:[(0,X.jsx)(P,{children:`Role`}),(0,X.jsxs)(j,{value:e.value,disabled:!0,children:[(0,X.jsx)(k,{"aria-label":`Role`,children:(0,X.jsx)(A,{})}),(0,X.jsx)(O,{children:(0,X.jsx)(D,{value:e.value,children:e.label})})]}),(0,X.jsxs)(F,{children:[`This user is the owner of the site.`,` `,(0,X.jsx)(`a`,{href:`https://ghost.org/help/transfer-publication-ownership/`,rel:`noopener noreferrer`,target:`_blank`,children:`Transfer ownership`}),` `,`first to change their role.`]})]})}let a=e.roles[0].name.toLowerCase(),o=i.find(e=>e.value.toLowerCase()===a)?.label;return(0,X.jsxs)(I,{children:[(0,X.jsx)(P,{children:`Role`}),(0,X.jsxs)(j,{value:a,onValueChange:r=>{let i=n?.find(e=>e.name.toLowerCase()===r.toLowerCase());i&&t?.({...e,roles:[i]})},children:[(0,X.jsx)(k,{"aria-label":`Role`,"data-testid":`role-select`,children:(0,X.jsx)(A,{children:o})}),(0,X.jsx)(O,{children:i.map(e=>(0,X.jsx)(D,{value:e.value,children:(0,X.jsxs)(`span`,{className:`flex flex-col`,children:[(0,X.jsx)(`span`,{children:e.label}),(0,X.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:e.hint})]})},e.value))})]})]})},$=s({dataType:`StaffTokenResponseType`,path:`/users/me/token/`}),ze=a({path:()=>`/users/me/token/`,method:`PUT`}),Be=()=>{let{refetch:e}=$({enabled:!1}),t=o(),{confirm:n}=Ae(),[r,i]=(0,Z.useState)(``),{mutateAsync:a}=ze();return(0,Z.useEffect)(()=>{(async()=>{let t=await e();t?.data?.apiKey&&i(`${t.data.apiKey.id}:${t.data.apiKey.secret}`)})()},[e]),(0,X.jsxs)(`div`,{children:[(0,X.jsx)(g,{as:`h6`,className:`mb-2 text-base`,weight:`semibold`,children:`Staff access token`}),(0,X.jsx)(Y,{hasLabel:!1,keys:[{id:`staff-access-token`,text:r||``,onRegenerate:()=>{n({title:`Regenerate your Staff Access Token`,prompt:`You can regenerate your Staff Access Token any time, but any scripts or applications using it will need to be updated.`,okLabel:`Regenerate your Staff Access Token`,okVariant:`destructive`,onOk:async e=>{try{let t=await a([]);i(`${t.apiKey.id}:${t.apiKey.secret}`),e?.remove()}catch(e){t(e)}}})}}]})]})},Ve=({errors:e,clearError:t,user:n,setUserData:r})=>{let{currentUser:i,siteData:a}=J(),o=_e(a);return(0,X.jsxs)(W,{children:[(0,X.jsxs)(I,{"data-invalid":!!e?.email||void 0,children:[(0,X.jsx)(P,{htmlFor:`staff-email`,children:`Email`}),(0,X.jsx)(V,{"aria-invalid":!!e?.email||void 0,id:`staff-email`,maxLength:191,value:n.email,onChange:e=>r({...n,email:e.target.value}),onKeyDown:()=>t(`email`)}),e?.email?(0,X.jsx)(M,{children:e.email}):(0,X.jsx)(F,{children:`Used for notifications`})]}),(0,X.jsx)(Q,{user:n}),B(i)&&(0,X.jsx)(Re,{setUserData:r,user:n}),(0,X.jsxs)(I,{"data-invalid":!!e?.name||void 0,children:[(0,X.jsx)(P,{htmlFor:`staff-name`,children:`Full name`}),(0,X.jsx)(V,{"aria-invalid":!!e?.name||void 0,id:`staff-name`,maxLength:191,value:n.name,onChange:e=>r({...n,name:e.target.value}),onKeyDown:()=>t(`name`)}),e?.name?(0,X.jsx)(M,{children:e.name}):(0,X.jsx)(F,{children:`Use your real name so people can recognize you`})]}),(0,X.jsxs)(I,{children:[(0,X.jsx)(P,{htmlFor:`staff-slug`,children:`Slug`}),(0,X.jsx)(V,{id:`staff-slug`,maxLength:191,value:n.slug,onChange:e=>r({...n,slug:e.target.value})}),(0,X.jsxs)(F,{children:[o,`author/`,n.slug]})]}),(0,X.jsxs)(I,{"data-invalid":!!e?.location||void 0,children:[(0,X.jsx)(P,{htmlFor:`staff-location`,children:`Location`}),(0,X.jsx)(V,{"aria-invalid":!!e?.location||void 0,id:`staff-location`,maxLength:65535,value:n.location||``,onChange:e=>r({...n,location:e.target.value}),onKeyDown:()=>t(`location`)}),e?.location?(0,X.jsx)(M,{children:e.location}):(0,X.jsx)(F,{children:`Where in the world do you live?`})]}),(0,X.jsxs)(I,{"data-invalid":!!e?.bio||void 0,children:[(0,X.jsx)(P,{htmlFor:`staff-bio`,children:`Bio`}),(0,X.jsx)(L,{"aria-invalid":!!e?.bio||void 0,id:`staff-bio`,maxLength:65535,value:n.bio||``,onChange:e=>{r({...n,bio:e.target.value})},onKeyDown:()=>t(`bio`)}),e?.bio?(0,X.jsx)(M,{children:e.bio}):(0,X.jsxs)(F,{children:[`Recommended: `,m(250),` characters. You‘ve used`,` `,(0,X.jsx)(`span`,{className:`font-bold`,children:m(n.bio?.length||0)})]})]}),n.id===i.id&&(0,X.jsx)(Be,{})]})},He=e=>(0,X.jsx)(K,{variant:`plain`,children:(0,X.jsx)(Ve,{...e})}),Ue=({errors:e,clearError:t,validateField:n,user:r,setUserData:i})=>{let[a,o]=(0,Z.useState)(()=>Object.fromEntries(G.map(e=>{let t=r[e.key];return[e.key,e.toDisplayValue(t)]})));return(0,X.jsxs)(W,{children:[(0,X.jsxs)(I,{"data-invalid":!!e?.website||void 0,children:[(0,X.jsx)(P,{htmlFor:`staff-website`,children:`Website`}),(0,X.jsx)(V,{"aria-invalid":!!e?.website||void 0,"data-testid":`website-input`,id:`staff-website`,maxLength:2e3,placeholder:`https://example.com`,value:r.website||``,onChange:e=>{i({...r,website:e.target.value})},onKeyDown:()=>t(`website`)}),e?.website&&(0,X.jsx)(M,{children:e.website})]}),G.map(s=>(0,X.jsxs)(I,{"data-invalid":!!e?.[s.key]||void 0,children:[(0,X.jsx)(P,{htmlFor:`staff-${s.key}`,children:s.staffTitle}),(0,X.jsx)(V,{"aria-invalid":!!e?.[s.key]||void 0,"data-testid":s.testId,id:`staff-${s.key}`,maxLength:2e3,placeholder:s.placeholder,value:a[s.key],onBlur:e=>{if(n(s.key,e.target.value)){let{displayValue:t,storedValue:n}=U(s.key,e.target.value);o(e=>({...e,[s.key]:t})),i({...r,[s.key]:n})}},onChange:e=>{o(t=>({...t,[s.key]:e.target.value}))},onKeyDown:()=>t(s.key)}),e?.[s.key]&&(0,X.jsx)(M,{children:e[s.key]})]},s.key))]})},We=e=>(0,X.jsx)(K,{variant:`plain`,children:(0,X.jsx)(Ue,{...e})}),Ge=e(q(),1),Ke={name:({name:e})=>{let t=``;return e||(t=`Name is required`),e&&e.length>191&&(t=`Name is too long`),t},email:({email:e})=>Ge.default.isEmail(e||``)?``:`Enter a valid email address`,url:({url:e})=>!e||Ge.default.isURL(e,{require_tld:!1})?``:`Enter a valid URL`,bio:({bio:e})=>!e||e.length<=250?``:`Bio is too long`,location:({location:e})=>!e||e.length<=150?``:`Location is too long`,website:({website:e})=>!e||Ge.default.isURL(e)&&e.length<=2e3?``:`Enter a valid URL`,...Object.fromEntries(G.map(e=>[e.key,t=>De(e.key,t[e.key])]))},qe=({user:e,onDeletingUserChange:t})=>{let{updateRoute:n}=ie(),i=p(),a=je(),s=f(),c=e=>{let t=e.split(`/`).pop()||``;return t===`social-links`||t===`email-notifications`?t:`profile`},{ownerUser:d}=ke(),{currentUser:m}=J(),S=o(),{confirm:T,showLimit:D}=Ae(),{formState:O,setFormState:k,saveState:A,handleSave:j,updateForm:M,errors:N,setErrors:P,clearError:F,okProps:I}=u({initialState:e,savingDelay:500,savedDelay:500,onValidate:t=>Object.entries(Ke).reduce((n,[r,i])=>{if(Oe.includes(r)&&t[r]===e[r])return n;let a=i(t);return a&&(n[r]=a),n},{}),onSave:async t=>{let r=(await V?.(t))?.users?.[0];if(r&&(k(()=>r),r.slug!==e.slug)){let e=c(s.pathname),t=e===`profile`?``:`/${e}`;n({route:`staff/${r.slug}${t}`,replace:!0})}},onSaveError:S}),L=e=>M(()=>e),R=(e,t)=>{let n=Ke[e]?.({[e]:t});return n?(P({...N,[e]:n}),!1):(F(e),!0)},{mutateAsync:se}=Se(),{mutateAsync:V}=ce(),{mutateAsync:ge}=le(),{mutateAsync:_e}=oe(),ve=ee(),U=Me(),W=(0,Z.useCallback)(()=>{de(m)?n(`staff`):i(`/`)},[m,i,n]),De=async e=>{if(e.status===`inactive`&&e.roles[0].name!==`Contributor`)try{await ve?.errorIfWouldGoOverLimit(`staff`)}catch(e){if(e instanceof r){D({formSheet:!0,prompt:e.message||`Your current plan doesn't support more users.`,onOk:()=>n({route:a,isExternal:!0})});return}else throw e}let t=`This user will no longer be able to log in but their posts will be kept.`;e.status===`inactive`&&(t=`This user will be able to log in again and will have the same permissions they had previously.`),T({title:`Are you sure you want to suspend this user?`,prompt:(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`strong`,{children:`WARNING:`}),` `,t]}),okLabel:e.status===`inactive`?`Un-suspend`:`Suspend`,okRunningLabel:e.status===`inactive`?`Un-suspending...`:`Suspending...`,okVariant:`destructive`,onOk:async t=>{let n={...e,status:e.status===`inactive`?`active`:`inactive`};try{await V(n),k(()=>n),t?.remove(),l.success(e.status===`inactive`?`User un-suspended`:`User suspended`)}catch(e){S(e)}}})},G=(n,{owner:r})=>{T({title:`Are you sure you want to delete this user?`,prompt:(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`p`,{className:`mb-3`,children:[(0,X.jsx)(`span`,{className:`font-bold`,children:n.name||n.email}),` will be permanently deleted and all their posts will be automatically assigned to`,` `,(0,X.jsx)(`span`,{className:`font-bold`,children:r.name}),`.`]}),(0,X.jsxs)(`p`,{children:[`To make these easy to find in the future, each post will be given an internal tag of`,` `,(0,X.jsxs)(`span`,{className:`font-bold`,children:[`#`,e.slug]})]})]}),okLabel:`Delete user`,okVariant:`destructive`,onOk:async e=>{t(!0);try{await ge(n?.id),e?.remove(),W(),setTimeout(()=>l.success(`User deleted`),100)}catch(e){t(!1),S(e)}}})},K=()=>{T({title:`Transfer Ownership`,prompt:`Are you sure you want to transfer the ownership of this blog? You will not be able to undo this action.`,okLabel:`Yep — I'm sure`,okVariant:`destructive`,onOk:async t=>{try{await _e(e.id),t?.remove(),l.success(`Ownership transferred`)}catch(e){S(e)}}})},q=async(e,t)=>{try{let n=Ee(await se({file:t}));switch(e){case`cover_image`:M(e=>({...e,cover_image:n}));break;case`profile_image`:M(e=>({...e,profile_image:n}));break}}catch(e){let t=e;t.response.status===415&&(t.message=`Unsupported file type`),S(t)}},Y=e=>{switch(e){case`cover_image`:M(e=>({...e,cover_image:``}));break;case`profile_image`:M(e=>({...e,profile_image:``}));break}},Ne=B(m)||fe(m)&&ae(e),Fe=z(m)&&ue(O)&&O.status!==`inactive`,Ie=O.id!==m.id&&(B(m)&&!z(e)||fe(m)&&ae(e)),Le=O.status===`inactive`?`Un-suspend user`:`Suspend user`,Q=`h-8 bg-surface-inverse px-3 text-surface-inverse-foreground opacity-80 hover:bg-surface-inverse/90 hover:text-surface-inverse-foreground hover:opacity-100`,Re=O.status===`inactive`?` (Suspended)`:``,$=!de(m),ze=`mx-auto w-full max-w-[536px]`,[Be,Ve]=(0,Z.useState)(c(s.pathname));return(0,X.jsx)(re,{animate:!$,backDrop:!$,buttonsDisabled:I.disabled,cancelLabel:`Close`,dirty:A===`unsaved`,footerClassName:$?`mx-auto w-full max-w-[calc(536px+5rem)]`:void 0,hideXOnMobile:!0,okLabel:I.label||`Save`,okVariant:I.variant,size:$?`bleed`:`md`,stickyFooter:!0,testId:`user-detail-modal`,width:$?`full`:600,onClose:W,onOk:async()=>{await j({fakeWhenUnchanged:!0})},children:(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`div`,{className:`relative ${$?`-mx-10 -mt-10`:`-mx-8 -mt-8 rounded-t`}`,children:(0,X.jsx)(`div`,{className:h(`flex flex-wrap items-end justify-between gap-8 p-8`,O.cover_image&&`bg-cover bg-center`,$&&O.cover_image&&`min-h-[30vmin]`),style:{backgroundImage:O.cover_image?`url(${O.cover_image})`:`none`},children:(0,X.jsxs)(`div`,{className:h(`flex w-full flex-col gap-2`,$&&ze),children:[(0,X.jsxs)(`div`,{className:`flex flex-nowrap items-start justify-between gap-3`,children:[(0,X.jsx)(`div`,{children:(0,X.jsx)(we,{className:`-ml-1 size-20 overflow-visible rounded-full`,children:O.profile_image?(0,X.jsxs)(be,{className:`rounded-full`,children:[(0,X.jsx)(Te,{"data-testid":`profile-image-preview`,id:`avatar`,src:O.profile_image}),(0,X.jsxs)(ye,{className:`top-1 right-1`,children:[U.isEnabled&&(0,X.jsx)(xe,{"aria-label":`Edit profile image`,className:`rounded-full`,onClick:()=>U.openEditor({image:O.profile_image||``,handleSave:async e=>q(`profile_image`,e)}),children:(0,X.jsx)(y,{})}),(0,X.jsx)(xe,{"aria-label":`Remove profile image`,className:`rounded-full`,onClick:()=>Y(`profile_image`),children:(0,X.jsx)(_,{})})]})]}):(0,X.jsx)(Ce,{className:`rounded-full bg-surface-inverse text-surface-inverse-foreground opacity-80 hover:opacity-100`,inputId:`avatar`,inputTestId:`profile-image-upload`,onDropAccepted:e=>void q(`profile_image`,e[0]),children:(0,X.jsx)(b,{className:`size-8 text-surface-inverse-foreground`})})})}),(0,X.jsxs)(`div`,{className:`flex flex-nowrap items-start gap-3`,children:[O.cover_image?(0,X.jsxs)(`div`,{className:`flex flex-nowrap items-end justify-end gap-4`,children:[(0,X.jsx)(`img`,{alt:``,className:`hidden`,"data-testid":`cover-image-preview`,src:O.cover_image}),U.isEnabled&&(0,X.jsx)(x,{className:Q,type:`button`,onClick:()=>U.openEditor({image:O.cover_image||``,handleSave:async e=>q(`cover_image`,e)}),children:`Edit cover image`}),(0,X.jsx)(x,{className:Q,type:`button`,onClick:()=>Y(`cover_image`),children:`Delete cover image`})]}):(0,X.jsx)(E,{className:`h-8`,inputId:`cover-image`,inputTestId:`cover-image-upload`,variant:`button`,onDropAccepted:e=>void q(`cover_image`,e[0]),children:`Upload cover image`}),Ne&&(0,X.jsx)(`div`,{className:`z-10`,children:(0,X.jsxs)(he,{children:[(0,X.jsx)(pe,{asChild:!0,children:(0,X.jsxs)(`button`,{className:h(`flex h-8 cursor-pointer items-center justify-center rounded px-3`,O.cover_image?`bg-[rgba(0,0,0,0.75)] opacity-80 hover:opacity-100`:`border border-gray-300 bg-transparent text-black dark:border-gray-800 dark:text-white`),type:`button`,children:[(0,X.jsx)(`span`,{className:`sr-only`,children:`Actions`}),(0,X.jsx)(v,{className:h(`size-5`,O.cover_image&&`text-white`)})]})}),(0,X.jsxs)(me,{align:`end`,className:`z-[9999]`,children:[Fe&&(0,X.jsx)(H,{onSelect:K,children:`Make owner`}),(0,X.jsx)(H,{onSelect:()=>{n(`history/view/${O.id}`)},children:`View user activity`}),Ie&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(H,{onSelect:()=>{De(O)},children:Le}),(0,X.jsx)(H,{className:`text-destructive focus:text-destructive`,onSelect:()=>{G(e,{owner:d})},children:`Delete user`})]})]})]})})]})]}),(0,X.jsxs)(`div`,{children:[(0,X.jsxs)(g,{as:`h3`,className:h(`break-words md:text-2xl md:break-normal`,O.cover_image?`text-white`:`text-foreground`),leading:`heading`,size:`xl`,weight:`bold`,children:[e.name,Re]}),(0,X.jsx)(`span`,{className:h(`text-md font-medium capitalize`,O.cover_image?`text-white`:`text-black dark:text-white`),children:e.roles[0].name.toLowerCase()})]})]})})}),(0,X.jsx)(`div`,{className:h(`mt-6 flex flex-col`,$&&ze),children:(0,X.jsxs)(ne,{value:Be,variant:`underline`,onValueChange:t=>{let r=t===`profile`?``:`/${t}`;n(`staff/${e.slug}${r}`),Ve(t)},children:[(0,X.jsxs)(te,{children:[(0,X.jsx)(C,{title:`Profile`,value:`profile`,children:`Profile`}),(0,X.jsx)(C,{title:`Social Links`,value:`social-links`,children:`Social Links`}),(0,X.jsx)(C,{title:`Email Notifications`,value:`email-notifications`,children:`Email Notifications`})]}),(0,X.jsx)(w,{className:`pt-4`,value:`profile`,children:(0,X.jsx)(He,{clearError:F,errors:N,setUserData:L,user:O,validateField:R})}),(0,X.jsx)(w,{className:`pt-4`,value:`social-links`,children:(0,X.jsx)(We,{clearError:F,errors:N,setUserData:L,user:O,validateField:R})}),(0,X.jsx)(w,{className:`pt-4`,value:`email-notifications`,children:(0,X.jsx)(Pe,{setUserData:L,user:O})})]})})]})})},Je=()=>{let{slug:e}=d(),{currentUser:t}=J(),{updateRoute:n}=ie(),r=p(),a=o(),[s,c]=(0,Z.useState)(!1),u=t.slug===e,{data:f,error:m}=se(e||``,{enabled:!u&&!!e,defaultErrorHandler:!1}),h=u?t:f?.users?.[0],g=m instanceof i&&m.response?.status===404;(0,Z.useEffect)(()=>{m&&!g&&a(m)},[m,g,a]);let _=!u&&!!e&&!h&&(g||f!==void 0),v=(0,Z.useRef)(void 0);h&&(v.current=h);let y=h||(_?void 0:v.current),b=_?e??null:null,x=(0,Z.useRef)(null);return(0,Z.useEffect)(()=>{!b||s||x.current===b||(x.current=b,l.error(`User not found`),de(t)?n({route:`staff`,replace:!0}):r(`/`))},[b,s,t,r,n]),y?(0,X.jsx)(qe,{user:y,onDeletingUserChange:c}):null};export{Je as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e,t}from"./react-BXwhMTuc.js";import{t as n}from"./react-dom-CMOtJ5MH.js";import{t as r}from"./jsx-runtime-BlNNh7jY.js";import{u as i}from"./chunk-KS7C4IRE-DhOcHQOU.js";import{_ as a}from"./dist-BXHrDV19.js";import{t as o}from"./button-DvIh2Bq-.js";var s=e(t(),1),c=e(n(),1);function l(e,t,n){let r=Array(e);return new Proxy(r,{get(r,i,a){if(typeof i==`string`){let a=i.charCodeAt(0);if(a>=48&&a<=57){let a=+i;if(Number.isInteger(a)&&a>=0&&a<e){let e=r[a];if(!e){let i=t[a*2];e=r[a]={index:a,key:n(a),start:i,size:t[a*2+1],end:i+t[a*2+1],lane:0}}return e}}if(i===`length`)return e}return Reflect.get(r,i,a)}})}function u(e,t,n){let r=n.initialDeps??[],i,a=!0;function o(){let o=e();return o.length!==r.length||o.some((e,t)=>r[t]!==e)?(r=o,i=t(...o),n?.onChange&&!(a&&n.skipInitialOnChange)&&n.onChange(i),a=!1,i):i}return o.updateDeps=e=>{r=e},o}function d(e,t){if(e===void 0)throw Error(`Unexpected undefined${t?`: ${t}`:``}`);return e}var f=(e,t)=>Math.abs(e-t)<1.01,p=(e,t,n)=>{let r;return function(...i){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,i),n)}},m,h=()=>{if(m!==void 0)return m;if(typeof navigator>`u`)return m=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return m=!0;let e=navigator.maxTouchPoints;return m=navigator.platform===`MacIntel`&&e!==void 0&&e>0},g=e=>{let{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},_=e=>e,v=e=>{let t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1)-t+1,r=Array(n);for(let e=0;e<n;e++)r[e]=t+e;return r},y=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let i=e=>{let{width:n,height:r}=e;t({width:Math.round(n),height:Math.round(r)})};if(i(g(n)),!r.ResizeObserver)return()=>{};let a=new r.ResizeObserver(t=>{let r=()=>{let e=t[0];if(e?.borderBoxSize){let t=e.borderBoxSize[0];if(t){i({width:t.inlineSize,height:t.blockSize});return}}i(g(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()});return a.observe(n,{box:`border-box`}),()=>{a.unobserve(n)}},b={passive:!0},x=typeof window>`u`?!0:`onscrollend`in window,S=(e,t,n)=>{let r=e.scrollElement;if(!r)return;let i=e.targetWindow;if(!i)return;let a=e.options.useScrollendEvent&&x,o=0,s=a?null:p(i,()=>t(o,!1),e.options.isScrollingResetDelay),c=e=>()=>{o=n(r),s?.(),t(o,e)},l=c(!0),u=c(!1);return r.addEventListener(`scroll`,l,b),a&&r.addEventListener(`scrollend`,u,b),()=>{r.removeEventListener(`scroll`,l),a&&r.removeEventListener(`scrollend`,u)}},C=(e,t)=>S(e,t,t=>{let{horizontal:n,isRtl:r}=e.options;return n?t.scrollLeft*(r&&-1||1):t.scrollTop}),w=(e,t,n)=>{if(n.options.useCachedMeasurements){let t=n.indexFromElement(e),r=n.options.getItemKey(t);return n.itemSizeCache.get(r)??n.options.estimateSize(t)}if(t?.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[n.options.horizontal?`inlineSize`:`blockSize`])}if(!t){let t=n.indexFromElement(e),r=n.options.getItemKey(t),i=n.itemSizeCache.get(r);if(i!==void 0)return i}return e[n.options.horizontal?`offsetWidth`:`offsetHeight`]},T=(e,{adjustments:t=0,behavior:n},r)=>{var i,a;(a=(i=r.scrollElement)?.scrollTo)==null||a.call(i,{[r.options.horizontal?`left`:`top`]:e+t,behavior:n})},E=class{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var e;return((e=this.targetWindow?.performance)?.now)?.call(e)??Date.now()},this.observer=(()=>{let e=null,t=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{let t=e.target,n=this.indexFromElement(t);if(!t.isConnected){this.observer.unobserve(t);for(let[e,n]of this.elementsCache)if(n===t){this.elementsCache.delete(e);break}return}this.shouldMeasureDuringScroll(n)&&this.resizeItem(n,this.options.measureElement(t,e,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}));return{disconnect:()=>{var n;(n=t())==null||n.disconnect(),e=null},observe:e=>t()?.observe(e,{box:`border-box`}),unobserve:e=>t()?.unobserve(e)}})(),this.range=null,this.setOptions=e=>{let t={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:_,rangeExtractor:v,onChange:()=>{},measureElement:w,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:`data-index`,initialMeasurementsCache:[],lanes:1,anchorTo:`start`,followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:`estimate`,useCachedMeasurements:!1};for(let n in e){let r=e[n];r!==void 0&&(t[n]=r)}let n=this.options,r=null,i=null,a=!1;if(n!==void 0&&n.enabled&&t.enabled&&t.anchorTo===`end`&&this.scrollElement!==null){let e=n.count,o=t.count,s=this.getMeasurements(),c=e>0?s[0]?.key??n.getItemKey(0):null,l=e>0?s[e-1]?.key??n.getItemKey(e-1):null;if(o!==e||e>0&&o>0&&(t.getItemKey(0)!==c||t.getItemKey(o-1)!==l)){a=!0;let c=e>0?this.getVirtualItemForOffset(this.getScrollOffset())??s[0]:null;c&&(r=[c.key,this.getScrollOffset()-c.start]);let u=t.followOnAppend===!0?`auto`:t.followOnAppend||null;u&&o>e&&this.isAtEnd(n.scrollEndThreshold)&&(e===0||t.getItemKey(o-1)!==l)&&(i=u)}}this.options=t,a&&(this.pendingMin=0,this.itemSizeCacheVersion++);let o=!1,s=0;if(r&&this.scrollOffset!==null){let[e,t]=r,n=this.getMeasurements(),{count:i,getItemKey:a}=this.options,c=0;for(;c<i&&a(c)!==e;)c++;if(c<i){let e=n[c];if(e){let n=Math.max(0,e.start+t);n!==this.scrollOffset&&(s=n-this.scrollOffset,this.scrollOffset=n,o=!0)}}}(o||i)&&(this.pendingScrollAnchor=[o?r[0]:null,o?r[1]:0,i,s])},this.notify=e=>{var t,n;(n=(t=this.options).onChange)==null||n.call(t,this,e)},this.maybeNotify=u(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{let e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}if(this.scrollElement=e,this.scrollElement&&`ownerDocument`in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=this.scrollElement?.window??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{if(t&&this._intendedScrollOffset===null&&e===this.scrollOffset)return;this._intendedScrollOffset!==null&&Math.abs(e-this._intendedScrollOffset)<1.5&&(e=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0;let n=this.getScrollOffset();this.scrollDirection=t?n===e?this.scrollDirection:n<e?`forward`:`backward`:null,this.scrollOffset=e,this.isScrolling=t,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),`addEventListener`in this.scrollElement){let e=this.scrollElement,t=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},n=()=>{this._iosTouching=!1,!(!h()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};e.addEventListener(`touchstart`,t,b),e.addEventListener(`touchend`,n,b),this.unsubs.push(()=>{e.removeEventListener(`touchstart`,t),e.removeEventListener(`touchend`,n),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}let t=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,t&&this.scrollElement&&this.options.enabled){let[e,n,r,i]=t;e!==null&&!r&&(h()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?i!==0&&(this._iosDeferredAdjustment+=i):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),r&&this.scrollToEnd({behavior:r})}},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;let e=this.getScrollOffset(),t=this.getMaxScrollOffset();if(e<0||e>t)return;if(this._iosDeferredAdjustment<0&&e>=t-1){this._iosDeferredAdjustment=0;return}let n=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(e,{adjustments:this.scrollAdjustments+=n,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?`width`:`height`]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset==`function`?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getMeasurementOptions=u(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode,this.options.gap],(e,t,n,r,i,a,o,s)=>(this.prevLanes!==void 0&&this.prevLanes!==a&&(this.lanesChangedFlag=!0),this.prevLanes=a,this.pendingMin=null,{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o,gap:s}),{key:!1}),this.getMeasurements=u(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o,gap:s},c)=>{let u=this.itemSizeCache;if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(let t of this.laneAssignments.keys())t>=e&&this.laneAssignments.delete(t);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let d=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1),a===1){let i=e*2,a=this._flatMeasurements;if(!a||a.length<i){let e=new Float64Array(i);a&&d>0&&e.set(a.subarray(0,d*2)),a=e,this._flatMeasurements=a}let o;if(d===0)o=t+n;else{let e=d-1;o=a[e*2]+a[e*2+1]+s}for(let t=d;t<e;t++){let e=r(t),n=u.get(e),i=typeof n==`number`?n:this.options.estimateSize(t);a[t*2]=o,a[t*2+1]=i,o+=i+s}let c=l(e,a,r);return this.measurementsCache=c,c}let f=this.measurementsCache.slice(0,d),p=Array(a).fill(void 0),m=new Float64Array(a),h=0;for(let e=0;e<d;e++){let t=f[e];t&&(p[t.lane]===void 0&&h++,p[t.lane]=e,m[t.lane]=t.end)}for(let i=d;i<e;i++){let e=r(i),c=this.laneAssignments.get(i),l,d,g=o===`estimate`||u.has(e);if(c!==void 0&&this.options.lanes>1){l=c;let e=p[l],r=e===void 0?void 0:f[e];d=r?r.end+s:t+n}else if(h===a){let e=0,t=m[0],n=p[0];for(let r=1;r<a;r++){let i=m[r];(i<t||i===t&&p[r]<n)&&(e=r,t=i,n=p[r])}l=e,d=t+s,g&&this.laneAssignments.set(i,l)}else l=i%this.options.lanes,d=t+n,g&&this.laneAssignments.set(i,l);let _=u.get(e),v=typeof _==`number`?_:this.options.estimateSize(i),y=d+v;f[i]={index:i,start:d,size:v,end:y,key:e,lane:l},p[l]===void 0&&h++,p[l]=i,m[l]=y}return this.measurementsCache=f,f},{key:!1,debug:()=>this.options.debug}),this.calculateRange=u(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,r)=>e.length===0||t===0?(this.range=null,null):(this.range=k(e,t,n,r,r===1&&this._flatMeasurements!=null?this._flatMeasurements:null),this.range),{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=u(()=>{let e=null,t=null,n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,r,i)=>r===null||i===null?[]:e({startIndex:r,endIndex:i,overscan:t,count:n}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{if(!this.scrollState||this.scrollState.behavior!==`smooth`)return!0;let t=this.scrollState.index??this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)?.index;if(t!==void 0&&this.range){let n=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),r=Math.max(0,t-n),i=Math.min(this.options.count-1,t+n);return e>=r&&e<=i}return!0},this.measureElement=e=>{if(!e){this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});return}let t=this.indexFromElement(e),n=this.options.getItemKey(t),r=this.elementsCache.get(n);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(n,e)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(t)&&this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{if(e<0||e>=this.options.count)return;let n,r,i,a=this._flatMeasurements;if(this.options.lanes===1&&a!==null)i=this.options.getItemKey(e),r=a[e*2],n=a[e*2+1];else{let t=this.measurementsCache[e];if(!t)return;i=t.key,r=t.start,n=t.size}let o=this.itemSizeCache.get(i)??n,s=t-o;if(s!==0){let a=this.options.anchorTo===`end`&&this.scrollState?.behavior!==`smooth`&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,c=a?this.getTotalSize():0,l=this.getScrollOffset()+this.scrollAdjustments,u=this.itemSizeCache.has(i)?r+o<=l&&this.scrollDirection!==`backward`:r<l,d=this.scrollState?.behavior!==`smooth`&&(this.shouldAdjustScrollPositionOnItemSizeChange===void 0?u:this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[e]??{index:e,key:i,start:r,size:n,end:r+n,lane:0},s,this));(this.pendingMin===null||e<this.pendingMin)&&(this.pendingMin=e),this.itemSizeCache.set(i,t),this.itemSizeCacheVersion++;let f=!1;a?f=this.applyScrollAdjustment(this.getTotalSize()-c):d&&(f=this.applyScrollAdjustment(s)),this.notify(f)}},this.getVirtualItems=u(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let n=[];for(let r=0,i=e.length;r<i;r++){let i=t[e[r]];n.push(i)}return n},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(t.length===0)return;let n=this._flatMeasurements,r=this.options.lanes===1&&n!=null;return d(t[D(0,t.length-1,r?e=>n[e*2]:e=>d(t[e]).start,e)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if(`scrollHeight`in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{let e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(e=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=e,this.getOffsetForAlignment=(e,t,n=0)=>{if(!this.scrollElement)return 0;let r=this.getSize(),i=this.getScrollOffset();t===`auto`&&(t=e>=i+r?`end`:`start`),t===`center`?e+=(n-r)/2:t===`end`&&(e-=r);let a=this.getMaxScrollOffset();return Math.max(Math.min(a,e),0)},this.getOffsetForIndex=(e,t=`auto`)=>{e=Math.max(0,Math.min(e,this.options.count-1));let n=this.getSize(),r=this.getScrollOffset(),i=this.measurementsCache[e];if(!i)return;if(t===`auto`)if(i.end>=r+n-this.options.scrollPaddingEnd)t=`end`;else if(i.start<=r+this.options.scrollPaddingStart)t=`start`;else return[r,t];if(t===`end`&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];let a=t===`end`?i.end+this.options.scrollPaddingEnd:i.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,t,i.size),t]},this.scrollToOffset=(e,{align:t=`start`,behavior:n=`auto`}={})=>{this._iosDeferredAdjustment=0;let r=this.getOffsetForAlignment(e,t),i=this.now();this.scrollState={index:null,align:t,behavior:n,startedAt:i,lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:t=`auto`,behavior:n=`auto`}={})=>{this._iosDeferredAdjustment=0,e=Math.max(0,Math.min(e,this.options.count-1));let r=this.getOffsetForIndex(e,t);if(!r)return;let[i,a]=r,o=this.now();this.scrollState={index:e,align:a,behavior:n,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:t=`auto`}={})=>{let n=this.getScrollOffset()+e,r=this.now();this.scrollState={index:null,align:`start`,behavior:t,startedAt:r,lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:e=`auto`}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:`end`,behavior:e});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:e})},this.getTotalSize=()=>{let e=this.getMeasurements(),t;if(e.length===0)t=this.options.paddingStart;else if(this.options.lanes===1){let n=e.length-1,r=this._flatMeasurements;t=r==null?e[n]?.end??0:r[n*2]+r[n*2+1]}else{let n=Array(this.options.lanes).fill(null),r=e.length-1;for(;r>=0&&n.some(e=>e===null);){let t=e[r];n[t.lane]===null&&(n[t.lane]=t.end),r--}t=Math.max(...n.filter(e=>e!==null))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{let e=[];if(this.itemSizeCache.size===0)return e;let t=this.getMeasurements();for(let n of t)n&&this.itemSizeCache.has(n.key)&&e.push({index:n.index,key:n.key,start:n.start,size:n.size,end:n.end,lane:n.lane});return e},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this._intendedScrollOffset=e+(t??0),this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(e)}applyScrollAdjustment(e,t){return e===0?!1:h()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?(this._iosDeferredAdjustment+=e,!1):(this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=e,behavior:t}),this.scrollOffset!==null&&(this.scrollOffset+=this.scrollAdjustments,this.scrollOffset<0&&(this.scrollOffset=0),this.scrollAdjustments=0),!0)}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId??=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()})}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}let e=this.scrollState.index==null?void 0:this.getOffsetForIndex(this.scrollState.index,this.scrollState.align),t=e?e[0]:this.scrollState.lastTargetOffset,n=t!==this.scrollState.lastTargetOffset;if(!n&&f(t,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1){this.getScrollOffset()!==t&&this._scrollToOffset(t,{adjustments:void 0,behavior:`auto`}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,n){let e=this.getSize()||600,n=Math.abs(t-this.getScrollOffset()),r=this.scrollState.behavior===`smooth`&&n>e;this.scrollState.lastTargetOffset=t,r||(this.scrollState.behavior=`auto`),this._scrollToOffset(t,{adjustments:void 0,behavior:r?`smooth`:`auto`})}this.scheduleScrollReconcile()}},D=(e,t,n,r)=>{for(;e<=t;){let i=(e+t)/2|0,a=n(i);if(a<r)e=i+1;else if(a>r)t=i-1;else return i}return e>0?e-1:0};function O(e,t,n){let r=0;for(;r<=t;){let i=(r+t)/2|0,a=e[i*2];if(a<n)r=i+1;else if(a>n)t=i-1;else return i}return r>0?r-1:0}function k(e,t,n,r,i){let a=e.length-1;if(e.length<=r)return{startIndex:0,endIndex:a};if(r===1&&i!==null){let e=O(i,a,n),r=e,o=n+t;for(;r<a&&i[r*2]+i[r*2+1]<o;)r++;return{startIndex:e,endIndex:r}}let o=D(0,a,t=>e[t].start,n),s=o;if(r===1)for(;s<a&&e[s].end<n+t;)s++;else if(r>1){let i=Array(r).fill(0);for(;s<a&&i.some(e=>e<n+t);){let t=e[s];i[t.lane]=t.end,s++}let c=Array(r).fill(n+t);for(;o>=0&&c.some(e=>e>=n);){let t=e[o];c[t.lane]=t.start,o--}o=Math.max(0,o-o%r),s=Math.min(a,s+(r-1-s%r))}return{startIndex:o,endIndex:s}}var A=typeof document<`u`?s.useLayoutEffect:s.useEffect;function j({useFlushSync:e=!0,directDomUpdates:t=!1,directDomUpdatesMode:n=`transform`,...r}){let i=s.useReducer(e=>e+1,0)[1],a=s.useRef({enabled:t,mode:n,container:null,lastSize:null,lastPositions:new WeakMap,prevRange:null});a.current.enabled=t,a.current.mode=n;let o=e=>{let t=a.current;if(!t.enabled||!t.container)return;let n=e.getTotalSize();if(n!==t.lastSize){t.lastSize=n;let r=e.options.horizontal?`width`:`height`;t.container.style[r]=`${n}px`}},l=e=>{let t=a.current;if(!t.enabled||!t.container)return;o(e);let n=!!e.options.horizontal,r=t.mode===`transform`,i=n?`left`:`top`,s=e.options.scrollMargin,c=e.getVirtualItems();for(let a of c){let o=a.start-s,c=e.elementsCache.get(a.key);c&&t.lastPositions.get(c)!==o&&(t.lastPositions.set(c,o),r?c.style.transform=n?`translate3d(${o}px, 0, 0)`:`translate3d(0, ${o}px, 0)`:c.style[i]=`${o}px`)}},u={...r,onChange:(t,n)=>{var o;let s=a.current,u=!0;if(s.enabled){l(t);let e=t.range,n=s.prevRange;u=!n||n.isScrolling!==t.isScrolling||n.startIndex!==e?.startIndex||n.endIndex!==e?.endIndex,u&&(s.prevRange=e?{startIndex:e.startIndex,endIndex:e.endIndex,isScrolling:t.isScrolling}:null)}u&&(e&&n?(0,c.flushSync)(i):i()),(o=r.onChange)==null||o.call(r,t,n)}},[d]=s.useState(()=>{let e=new E(u);return Object.assign(e,{containerRef:t=>{let n=a.current;if(n.container=t,n.lastSize=null,t&&n.enabled){let r=e.getTotalSize();n.lastSize=r;let i=e.options.horizontal?`width`:`height`;t.style[i]=`${r}px`}}})});return d.setOptions(u),A(()=>d._didMount(),[]),A(()=>(o(d),d._willUpdate())),A(()=>{l(d)}),d}function M(e){return j({observeElementRect:y,observeElementOffset:C,scrollToFn:T,...e})}function N({items:e,totalItems:t,parentRef:n,hasNextPage:r,isFetchingNextPage:i,fetchNextPage:o,estimateSize:c=()=>100,overscan:l=5,getScrollElement:u=a}){let d=M({count:t,getScrollElement:()=>u(n.current),estimateSize:c,overscan:l}),f=d.getVirtualItems(),p=f.length>0?(f.at(0)?.start??0)-d.options.scrollMargin:0,m=f.length>0?d.getTotalSize()-(f.at(-1)?.end??0):0,h=f.map(t=>({virtualItem:t,key:t.key,item:e[t.index],props:{ref:d.measureElement,"data-index":t.index}})),g=h.at(-1)&&!h.at(-1)?.item;return(0,s.useEffect)(()=>{r&&g&&!i&&o()},[r,g,i,o]),{visibleItems:h,virtualizer:d,spaceBefore:p,spaceAfter:m}}var P=1e3,F=`ghostVirtualListWindow`;function I({totalItems:e,unlockedItemCount:t}){let n=Math.min(e,t);return{visibleItemCount:n,canLoadMore:e>n}}function L(e,t){return e+t}function R(e,t){return`${e}::${t}`}function z(e,t,n){let r=e?.[F];if(!r||typeof r!=`object`)return n;let i=r[t];return typeof i!=`number`||!Number.isFinite(i)?n:Math.max(1,Math.floor(i))}function B(e,t,n){if(typeof window>`u`)return;let r=e?.[F],i={...e??{},[F]:{...r&&typeof r==`object`?r:{},[t]:n}};window.history.replaceState(i,``)}function V(){if(!(typeof window>`u`))return window.history.state}function H(e,{resetKey:t,windowSize:n=P}={}){let{key:r,pathname:a,search:o}=i(),c=R(a,t??o),[l,u]=(0,s.useState)(()=>z(V(),c,n)),d=(0,s.useRef)(c);(0,s.useEffect)(()=>{if(d.current!==c){d.current=c,u(z(V(),c,n));return}B(V(),c,l)},[c,r,l,n]);let{visibleItemCount:f,canLoadMore:p}=I({totalItems:e,unlockedItemCount:l});return{visibleItemCount:f,canLoadMore:p,loadMore:()=>u(e=>L(e,n))}}var U=new Map,W=`ghostVirtualListScrollPosition`,G=150,K=500;function q(){if(!(typeof window>`u`))return window.history.state}function J(e){let t=e?.key;if(typeof t==`string`||typeof t==`number`)return String(t);let n=e?.idx;if(typeof n==`number`)return String(n)}function Y(e,t){let n=J(e);if(n)return`${n}::${t}`}function X(e,t){let n=e?.[W];if(!n||typeof n!=`object`)return;let r=n[t];if(typeof r==`number`)return r}function Z(e,t,n){if(typeof window>`u`)return;let r=e?.[W],i={...e??{},[W]:{...r&&typeof r==`object`?r:{},[t]:n}};window.history.replaceState(i,``)}function Q({parentRef:e,enabled:t=!0,isLoading:n=!1,getScrollElement:r=a}){let o=i(),[c,l]=(0,s.useState)(null),u=(0,s.useRef)(null),d=(0,s.useRef)(0),f=(0,s.useRef)(0),p=(0,s.useRef)(0),m=(0,s.useRef)(null),h=(0,s.useRef)(new Set),g=o.pathname+o.search;(0,s.useEffect)(()=>{if(!t||!e.current)return;let n=r(e.current);l(n)},[t,e,r]),(0,s.useEffect)(()=>{if(!t||!c)return;let e=q(),n=J(e),r=Y(e,g),i=()=>{m.current!==null&&(window.clearTimeout(m.current),m.current=null)},a=e=>{r&&U.set(r,e);let t=q();J(t)===n&&Z(t,g,e),f.current=Date.now(),p.current=e},o=({persistToHistory:e=!0}={})=>{if(i(),!e){let e=d.current;r&&U.set(r,e),f.current=Date.now(),p.current=e;return}a(d.current)},s=()=>{let e=Date.now();if(Math.abs(d.current-p.current)>=K||e-f.current>=G){i(),a(d.current);return}m.current===null&&(m.current=window.setTimeout(()=>{m.current=null,a(d.current)},G))},l=()=>{d.current=c.scrollTop,s()},u=()=>{o()};return d.current=c.scrollTop,c.addEventListener(`scroll`,l),window.addEventListener(`pagehide`,u),()=>{o({persistToHistory:!1}),c.removeEventListener(`scroll`,l),window.removeEventListener(`pagehide`,u)}},[t,g,c]),(0,s.useEffect)(()=>{let e=q(),r=Y(e,g),i=(r?U.get(r):void 0)??X(e,g);if(!(!t||!c||n)){if(i!==void 0&&u.current!==g){u.current=g;let e=0,t=()=>{for(let e of h.current)window.clearTimeout(e);h.current.clear()},n=(e,t)=>{let n=window.setTimeout(()=>{h.current.delete(n),e()},t);h.current.add(n)},r=()=>{if(e+=1,!c)return;let t=c.scrollTop,a=c.scrollHeight-c.clientHeight;if(i>a&&e<20){n(r,100);return}Math.abs(i-t)>5&&(c.scrollTop=Math.min(i,a))};return n(r,150),()=>t()}u.current=g}},[t,g,c,n])}var $=r(),ee=({isLoading:e,onClick:t,label:n=`Load more`,loadingLabel:r=`Loading more...`,className:i=`flex justify-center px-4 py-6`})=>{let a=!!e;return(0,$.jsx)(`div`,{className:i,children:(0,$.jsx)(o,{disabled:a,variant:`outline`,onClick:t,children:a?r:n})})};export{N as i,Q as n,H as r,ee as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e,t}from"./react-BXwhMTuc.js";import{t as n}from"./jsx-runtime-BlNNh7jY.js";import{t as r}from"./use-tinybird-query-DXoF74NM.js";import{i}from"./pagemenu-CnkTDO71.js";import{_ as a,h as o}from"./chunk-KS7C4IRE-DhOcHQOU.js";import{a as s,t as c}from"./router-provider-CU87qxXw.js";import{_ as ee,h as l,m as u}from"./dist-BXHrDV19.js";import{a as d}from"./heading-BB21QAbb.js";import{C as f}from"./shade-app-CcS3f8MZ-D5BnfHck.js";import{L as p,t as m,vn as te}from"./button-DvIh2Bq-.js";import{r as h}from"./trend-badge-B9v7kMF8.js";import{r as g,t as _}from"./tabs-B3XK93sR.js";import{a as v,i as y,n as b,o as x,r as S,t as C}from"./card-FHQ4D10L.js";import{a as w,c as T,i as E,l as D,n as O,o as ne,r as k,s as A,t as j,u as M}from"./data-list-C0CKkeWW.js";import{t as re}from"./empty-indicator-L4Ql5Db7.js";import{a as N,i as ie,n as ae,r as oe}from"./use-filter-params-BSFigDIn.js";import{An as P,Ar as F,Ci as se,K as ce,Mn as I,Nn as L,Pn as R,Sr as z,Un as B,Y as le,Yn as ue,br as V,jn as H,kn as U,pi as de,q as fe,wr as W}from"./index-DDd-zhNL.js";import{t as G}from"./date-range-select-DrjHQdgz.js";import{a as K,c as pe,i as me,n as q,o as he,r as ge}from"./chart-helpers-CNpA7re_.js";import{n as J,r as Y,t as _e}from"./kpi-tabs-DE_yh9Go.js";import{a as ve}from"./filters-1injvyxJ.js";import{t as ye}from"./use-analytics-data-ChHqiZXv.js";import{n as be,t as xe}from"./audience-6GXevic-.js";import{n as Se,t as Ce}from"./en-Cx75dJv5.js";import{n as we}from"./post-analytics-context-bt2YTBAC.js";import{r as Te,t as Ee}from"./post-analytics-header-J0WciLx6.js";import{n as X,r as De,t as Z}from"./kpi-helpers-D7zT96bp.js";var Q=e(t(),1),$=n(),Oe=({data:e,range:t})=>{let[n]=a(),[r,i]=(0,Q.useState)(n.get(`tab`)||`visits`),o=X[r],s=pe(e||[],t,o.dataKey,`sum`)?.map(e=>{let t=Number(e[o.dataKey]);return{date:String(e.date),value:t,formattedValue:o.formatter(t),label:o.label}}),c=Z(e),ee=ge(t,e||[],{fieldName:o.dataKey});return(0,$.jsx)(C,{children:(0,$.jsx)(b,{children:(0,$.jsxs)(_,{defaultValue:r,variant:`kpis`,children:[(0,$.jsxs)(g,{className:`-mx-6 hidden grid-cols-2 md:visible! md:grid!`,children:[(0,$.jsx)(J,{value:`visits`,onClick:()=>{i(`visits`)},children:(0,$.jsx)(Y,{color:X.visits.color,label:`Unique visitors`,value:c.visits})}),(0,$.jsx)(J,{value:`views`,onClick:()=>{i(`views`)},children:(0,$.jsx)(Y,{color:X.views.color,label:`Total views`,value:c.views})})]}),(0,$.jsxs)(V,{children:[(0,$.jsx)(F,{className:`md:hidden`,asChild:!0,children:(0,$.jsxs)(_e,{children:[r===`visits`&&(0,$.jsx)(Y,{color:`var(--chart-blue)`,label:`Unique visitors`,value:c.visits}),r===`views`&&(0,$.jsx)(Y,{color:`var(--chart-teal)`,label:`Total views`,value:c.views})]})}),(0,$.jsxs)(z,{align:`end`,className:`w-56`,children:[(0,$.jsx)(W,{onClick:()=>i(`visits`),children:`Unique visitors`}),(0,$.jsx)(W,{onClick:()=>i(`views`),children:`Total views`})]})]}),(0,$.jsx)(`div`,{className:`my-4 [&_.recharts-cartesian-axis-tick-value]:fill-gray-500`,children:(0,$.jsx)(h,{className:`-mb-3 aspect-auto h-[16vw] max-h-[320px] min-h-[180px] w-full`,color:o.color,data:s,id:o.dataKey,range:ee,showHours:!0,syncId:`overview-charts`})})]})})})},ke=e(Se(),1);ke.registerLocale(Ce);var Ae=e=>ce[e]||ke.getName(e,`en`,{select:`alias`})||`Unknown`,je=e=>({"UNITED STATES":`US`,"UNITED STATES OF AMERICA":`US`,USA:`US`,"UNITED KINGDOM":`GB`,UK:`GB`,"GREAT BRITAIN":`GB`,NETHERLANDS:`NL`})[e.toUpperCase()]||(e.length>2?e.substring(0,2):e),Me=({tableHeader:e,data:t,onLocationClick:n})=>(0,$.jsxs)(j,{children:[e&&(0,$.jsxs)(w,{children:[(0,$.jsx)(E,{children:`Country`}),(0,$.jsx)(E,{children:`Visitors`})]}),(0,$.jsx)(k,{children:t.map(e=>{let t=Ae(`${e.location}`)||`Unknown`,r=n&&e.location!==`Unknown`,i=e.location?e.location.toLowerCase():`unknown`;return(0,$.jsxs)(M,{className:r?`cursor-pointer`:``,"data-testid":`location-row-${i}`,onClick:r?()=>n(e.location):void 0,children:[(0,$.jsx)(O,{style:{width:`${e.percentage?Math.round(e.percentage*100):0}%`}}),(0,$.jsx)(ne,{className:`group-hover/data:max-w-[calc(100%-140px)]`,children:(0,$.jsxs)(`div`,{className:`flex items-center space-x-3 overflow-hidden`,title:t||`Unknown`,children:[(0,$.jsx)(N,{countryCode:`${je(e.location)}`,fallback:(0,$.jsx)(`span`,{className:`flex h-[14px] w-[22px] items-center justify-center rounded-[2px] bg-black text-white`,children:(0,$.jsx)(f.SkullAndBones,{className:`size-3`})})}),(0,$.jsx)(`div`,{className:`truncate font-medium`,children:t})]})}),(0,$.jsxs)(A,{children:[(0,$.jsx)(T,{children:u(Number(e.visits))}),(0,$.jsx)(D,{children:l(e.percentage)})]})]},e.location||`unknown`)})})]}),Ne=({data:e,isLoading:t,onLocationClick:n})=>{let r=e.slice(0,10);return(0,$.jsx)($.Fragment,{children:t?``:(0,$.jsx)($.Fragment,{children:e&&e.length>0&&(0,$.jsxs)(C,{className:`group/datalist`,"data-testid":`locations-card`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between p-6`,children:[(0,$.jsxs)(v,{className:`p-0`,children:[(0,$.jsx)(x,{children:`Locations`}),(0,$.jsx)(S,{children:`Where are the readers of this post`})]}),(0,$.jsx)(d,{className:`mr-2`,children:`Visitors`})]}),(0,$.jsxs)(b,{className:`overflow-hidden`,children:[(0,$.jsx)(B,{}),(0,$.jsx)(Me,{data:r,tableHeader:!1,onLocationClick:n})]}),e.length>10&&(0,$.jsx)(y,{children:(0,$.jsxs)(U,{children:[(0,$.jsx)(R,{asChild:!0,children:(0,$.jsxs)(m,{variant:`outline`,children:[`View all `,(0,$.jsx)(p,{})]})}),(0,$.jsxs)(P,{className:`overflow-y-auto pt-0 sm:max-w-[420px]`,children:[(0,$.jsxs)(I,{className:`sticky top-0 z-40 -mx-6 bg-surface-elevated/60 p-6 backdrop-blur`,children:[(0,$.jsx)(L,{children:`Top locations`}),(0,$.jsx)(H,{children:`Where are the readers of this post`})]}),(0,$.jsx)(`div`,{className:`group/datalist`,children:(0,$.jsx)(Me,{data:e,tableHeader:!0,onLocationClick:n})})]})]})})]})})})},Pe=()=>{let e=s(),{postId:t}=o(),{statsConfig:n,isLoading:a,site:l}=ye(),{range:u,setRange:d,post:f,isPostLoading:p}=we(),{data:m}=de(),h=se(),g=(0,Q.useRef)(null),{filters:_,setFilters:v}=oe({supportedFields:ae,trackingSource:`post-analytics`}),y=(0,Q.useMemo)(()=>xe(_.find(e=>e.field===`audience`)?.values),[_]);(0,Q.useEffect)(()=>{!p&&f?.email_only&&e(`/posts/analytics/${t}`)},[p,f?.email_only,e,t]);let x=(0,Q.useMemo)(()=>{if(!f?.published_at)return fe.allTime.value;let e=he(f.published_at),{startDate:t,endDate:n}=K(u);return n.diff(t,`days`)+1>e?e:u},[f?.published_at,u]),{startDate:S,endDate:w,timezone:T}=K(x),E=(0,Q.useCallback)(()=>{let e=ee(g.current);e&&e.scrollTo({top:0,behavior:`smooth`})},[]),D=(0,Q.useMemo)(()=>{let e={};return _.forEach(t=>{let n=t.field,r=t.values;if(n===`audience`)return;let i=r&&r.length>0&&r[0]!==null&&r[0]!==void 0,a=n===`source`&&r?.[0]===``;if(i&&(r[0]!==``||a)){let t=String(r[0]);e[n]=t}}),e},[_]),O=(0,Q.useCallback)((e,t)=>{v(n=>n.find(t=>t.field===e)?n.map(n=>n.field===e?{...n,values:[t]}:n):[...n,ve(e,`is`,[t])]),E()},[v,E]),ne=(0,Q.useCallback)(e=>O(`location`,e),[O]),k=(0,Q.useCallback)(e=>O(`source`,e),[O]),A=(0,Q.useMemo)(()=>{let e={site_uuid:n?.id||``,date_from:q(S),date_to:q(w),timezone:T,member_status:be(y),post_uuid:``,...D};return!p&&f?.uuid?{...e,post_uuid:f.uuid}:e},[p,f,n?.id,S,w,T,y,D]),{data:j,loading:M}=r({endpoint:`api_kpis`,statsConfig:n,params:A}),{data:N,loading:P}=r({endpoint:`api_top_locations`,statsConfig:n,params:A}),{data:F,loading:ce}=r({endpoint:`api_top_sources`,statsConfig:n,params:A}),I=(0,Q.useMemo)(()=>N?.reduce((e,t)=>e+Number(t.visits),0)||0,[N]),L=(0,Q.useMemo)(()=>F?F.reduce((e,t)=>e+Number(t.visits||0),0):0,[F]),R=l.url,z=l.icon,B=(0,Q.useMemo)(()=>{let e=N?.map(e=>({location:String(e.location),visits:Number(e.visits),percentage:I>0?Number(e.visits)/I:0,isUnknown:le.includes(String(e.location))}))||[],t=e.filter(e=>!e.isUnknown),n=e.filter(e=>e.isUnknown),r=n.length>0?[{location:`Unknown`,visits:n.reduce((e,t)=>e+t.visits,0),percentage:n.reduce((e,t)=>e+t.percentage,0)}]:[];return[...t,...r]},[N,I]),V=a||p||M||P||ce,H=Z(j),U=_.length>0;return m?.settings&&!h?(0,$.jsx)(c,{to:`/posts/analytics/${t}`,replace:!0}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(Ee,{currentTab:`Web`,children:[U&&(0,$.jsx)(i,{children:(0,$.jsx)(G,{range:u,onRangeChange:d})}),(0,$.jsxs)(i,{className:`${U?`mt-0! [grid-area:subactions] lg:mt-[25px]!`:`[grid-area:actions]`}`,children:[(0,$.jsx)(ie,{filters:_,postUuid:f?.uuid,range:u,onChange:v}),!U&&(0,$.jsx)(G,{range:u,onRangeChange:d})]})]}),(0,$.jsx)(Te,{ref:g,children:V?(0,$.jsx)(C,{className:`size-full`,variant:`plain`,children:(0,$.jsx)(b,{className:`size-full items-center justify-center`,children:(0,$.jsx)(ue,{})})}):j&&j.length!==0&&H.visits!==`0`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Oe,{data:j,range:x}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-6 lg:grid lg:grid-cols-2`,children:[(0,$.jsx)(Ne,{data:B,isLoading:P,onLocationClick:ne}),(0,$.jsx)(De,{data:F,range:x,siteIcon:z,siteUrl:R,totalVisitors:L,onSourceClick:k})]})]}):(0,$.jsx)(`div`,{className:`grow`,children:(0,$.jsx)(re,{className:`h-full`,description:`Try adjusting filters to see more data.`,title:`No visitors ${me(u)}`,children:(0,$.jsx)(te,{strokeWidth:1.5})})})})]})};export{Pe as default};
|