ghost 6.63.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/bin/lib/duplicate-deps.js +204 -0
- package/bin/validate-adapters.js +50 -6
- package/components/tryghost-adapter-base-scheduling-0.2.4.tgz +0 -0
- package/components/tryghost-adapter-base-sso-0.1.3.tgz +0 -0
- package/components/tryghost-admin-api-schema-0.0.0.tgz +0 -0
- package/components/tryghost-api-framework-0.0.0.tgz +0 -0
- package/components/tryghost-i18n-0.0.0.tgz +0 -0
- package/components/{tryghost-kg-default-cards-10.3.5.tgz → tryghost-kg-default-cards-10.3.6.tgz} +0 -0
- package/components/tryghost-kg-default-nodes-2.2.1.tgz +0 -0
- package/components/tryghost-kg-html-to-lexical-1.4.0.tgz +0 -0
- package/components/{tryghost-kg-lexical-html-renderer-1.5.0.tgz → tryghost-kg-lexical-html-renderer-1.5.1.tgz} +0 -0
- package/components/tryghost-limit-service-0.0.0.tgz +0 -0
- package/components/tryghost-metafield-types-0.0.0.tgz +0 -0
- package/content/themes/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 +15 -2
- package/content/themes/source/assets/js/main.js +24 -4
- package/content/themes/source/package.json +8 -8
- package/core/boot.js +27 -15
- package/core/bridge.js +1 -1
- package/core/built/admin/assets/Combination-DQ6f9A5P.js +41 -0
- package/core/built/admin/assets/{PolarAngleAxis-pkMyqz8g.js → PolarAngleAxis-BBaU7PRV.js} +2 -2
- package/core/built/admin/assets/RadialBarChart-Bp20JPnA.js +1 -0
- package/core/built/admin/assets/about-Dp43j18M.js +1 -0
- 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-BwePhq95.js +1 -0
- package/core/built/admin/assets/add-newsletter-modal-Zv0I7Msm.js +1 -0
- package/core/built/admin/assets/add-recommendation-modal-cdLv0wHy.js +1 -0
- 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/{api-keys-BGPzLHzA.js → api-keys-omLA6iYn.js} +1 -1
- package/core/built/admin/assets/{audience-ceV3XVHq.js → audience-wRcSN0jV.js} +1 -1
- package/core/built/admin/assets/automated-emails-CzUa3v4d.js +1 -0
- package/core/built/admin/assets/automations-DupSsSOr.js +1 -0
- package/core/built/admin/assets/automations-hDVcRPjh.js +1 -0
- package/core/built/admin/assets/avatar-flipboard-DiAGgshK.js +1 -0
- package/core/built/admin/assets/badge-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-KS7C4IRE-DCsL4i4D.js → chunk-KS7C4IRE-DhOcHQOU.js} +1 -1
- package/core/built/admin/assets/{chunk.254.035b85ec456ebbd7336b.js → chunk.201.6961b57ed7a281ac193e.js} +165 -122
- 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/{chunk.901.4ccc639821020230bcca.js → chunk.972.4b8c97f93d66db15e751.js} +10625 -10088
- package/core/built/admin/assets/clean-tracked-url-dkN05vOf.js +1 -0
- package/core/built/admin/assets/code-editor-view-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/components-CwL6a6As-CCRaoCeP.js +1 -0
- package/core/built/admin/assets/{config-kSHvwdTG.js → config-BPljH6wF.js} +1 -1
- package/core/built/admin/assets/confirmation-context-znVJD4pX.js +1 -0
- package/core/built/admin/assets/container-CHHif8km.js +1 -0
- package/core/built/admin/assets/content-api-modal-DOHwl0yZ.js +1 -0
- 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-BAuW0F-E.js → custom-field-type-option-DrSlETOI.js} +1 -1
- 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-C5xtW0Q2.js +1 -0
- package/core/built/admin/assets/dist-B40T-RCQ.js +1 -0
- package/core/built/admin/assets/dist-BRQkNYN1.js +11 -0
- package/core/built/admin/assets/dist-Bm-PB47a.js +6 -0
- package/core/built/admin/assets/{dist-B6bJuxL3.js → dist-C2lYC76d.js} +1 -1
- package/core/built/admin/assets/dist-Cm2qbZKL.js +1 -0
- package/core/built/admin/assets/dist-CrlaEoaK.js +1 -0
- package/core/built/admin/assets/{dist-BtaTA7Ii.js → dist-D7yMk931.js} +1 -1
- package/core/built/admin/assets/{dist-zwwGt8Yf.js → dist-DNAdeRyr.js} +1 -1
- package/core/built/admin/assets/dist-DS6zpxid.js +1 -0
- package/core/built/admin/assets/dist-DVVKsyPh.js +23 -0
- package/core/built/admin/assets/dist-DxfQlAmn.js +1 -0
- package/core/built/admin/assets/dist-DziNzWI2.js +1 -0
- package/core/built/admin/assets/dist-nmRzULcD.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-previews-Bs-JDhIw.js +1 -0
- package/core/built/admin/assets/email-sending-status-context-C76KYL1V.js +1 -0
- package/core/built/admin/assets/email-sending-status-provider-9d81o1C2.js +1 -0
- package/core/built/admin/assets/{emails-vFMk4yYl.js → emails-CgvIIz3q.js} +1 -1
- package/core/built/admin/assets/embed-signup-form-modal-CbVbMsxl.js +8 -0
- package/core/built/admin/assets/empty-indicator-CSQts7GV.js +1 -0
- package/core/built/admin/assets/esm--rhhUGIG.js +2 -0
- package/core/built/admin/assets/explore-DbSXFTJN.js +1 -0
- package/core/built/admin/assets/feature-flag-overrides-context-CrcQKm9Z.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/feedback-BTPBQLT5.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-DcoN_OXu.js +1 -0
- package/core/built/admin/assets/focus-koenig-editor-on-bottom-click-CkFA8EkI.js +1 -0
- package/core/built/admin/assets/framework-provider-DB-svAju.js +4 -0
- package/core/built/admin/assets/{ghost-b4e8a403baba61905cd7560e30b9732d.js → ghost-25495154132af7305cb7b646fd83f48f.js} +580 -523
- package/core/built/admin/assets/gift-link-modal-BX-Q1TOk.js +1 -0
- package/core/built/admin/assets/{gift-links-CfLSnst2.js → gift-links-D8gl_yJS.js} +1 -1
- package/core/built/admin/assets/global-data-context-3MItMry2.js +1 -0
- package/core/built/admin/assets/grid-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/hooks-DYfTEQLk.js +2 -0
- package/core/built/admin/assets/html-field-B3CrKV9Y.js +1 -0
- package/core/built/admin/assets/iframe-buffering-Bq1el-gw.js +1 -0
- package/core/built/admin/assets/images-H-BIm8OQ.js +1 -0
- package/core/built/admin/assets/{inbox-gJHG7_xd.js → inbox-DBbDVMPz.js} +35 -35
- 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/index.es-Ct5XQNSj.js +1 -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/{integrations-B4kuRBFY.js → integrations-DnJrZnHv.js} +1 -1
- 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/jsx-runtime-BlNNh7jY.js +1 -0
- package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +3 -3
- package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +1 -1
- package/core/built/admin/assets/{koenig-lexical-CGXb0F8o.js → koenig-lexical-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-0x2NfLtC.js +1 -0
- 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-Ctujreuh.js +1 -0
- package/core/built/admin/assets/list-page-CH_wnDC3.js +1 -0
- package/core/built/admin/assets/luxon-BXCsmep3.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/{newsletters-Rq1M3GD-.js → newsletters-Dz77m__5.js} +1 -1
- 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/{nql-BLpCn7qX.js → nql-DnDc7UuU.js} +1 -1
- package/core/built/admin/assets/nql-lang-CeTB_Bhv.js +19 -0
- package/core/built/admin/assets/{offers--e2nGvkW.js → offers-ByWSK0rR.js} +1 -1
- package/core/built/admin/assets/offers-container-modal-CwqnRa3T.js +1 -0
- package/core/built/admin/assets/onboarding-B4hfBi9a.js +1 -0
- package/core/built/admin/assets/onboarding-DV_XbHts.js +1 -0
- package/core/built/admin/assets/onboarding-route-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-CjDY2CBI.js → pages-DZ_YGB1D.js} +1 -1
- package/core/built/admin/assets/pages-route-CKsnxIvw.js +1 -0
- package/core/built/admin/assets/papaparse.min-BlhnCUXn.js +10 -0
- package/core/built/admin/assets/pintura-modal-C5jzeyGk.js +1 -0
- 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-context-bt2YTBAC.js +1 -0
- package/core/built/admin/assets/post-analytics-header-DKWHwoK2.js +1 -0
- package/core/built/admin/assets/post-analytics-provider-BqCPPxmW.js +1 -0
- 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/{posts-pCPrhQeR.js → posts-tcoO3iRG.js} +1 -1
- 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/prop-types-6lTeqvom.js +1 -0
- package/core/built/admin/assets/radio-group-CTmLo0h9.js +1 -0
- package/core/built/admin/assets/react-BXwhMTuc.js +1 -0
- package/core/built/admin/assets/{jsx-runtime-DX3WBWVO.js → react-dom-CMOtJ5MH.js} +2 -2
- package/core/built/admin/assets/{referrers-D8oHPmDB.js → referrers-1R8bPpoV.js} +1 -1
- package/core/built/admin/assets/router-provider-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-B3keLvjj.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-BF9ex8cd.js +1 -0
- package/core/built/admin/assets/sort-button-C0EXGjnS.js +1 -0
- package/core/built/admin/assets/source-icon-BzzftCQ2.js +1 -0
- package/core/built/admin/assets/{stats-D9PDLS3x.js → stats-Cvp8Ep5m.js} +1 -1
- package/core/built/admin/assets/stats-view-CzpGoHzF.js +1 -0
- package/core/built/admin/assets/step-1-CBUYUPPF.js +1 -0
- package/core/built/admin/assets/step-2-CEIXUwQa.js +1 -0
- package/core/built/admin/assets/step-3-C1HA5i1N.js +2 -0
- 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/{tags-ChfdwJyS.js → tags-NwZ7BPK6.js} +1 -1
- package/core/built/admin/assets/testimonials-modal-CVm0_7E-.js +1 -0
- 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/themes-DtcEFQWm.js +1 -0
- package/core/built/admin/assets/tier-detail-modal-Cmwzi-e7.js +1 -0
- package/core/built/admin/assets/{tiers-BCpIOGQr.js → tiers-6mPzCXlM.js} +1 -1
- package/core/built/admin/assets/toggle-group-BTL1QsWY.js +1 -0
- package/core/built/admin/assets/topic-filter-BMjhquv7.js +1 -0
- 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-jzC8lEB2.js +1 -0
- 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-DRUjK4YM.js → use-check-theme-limit-error-C1tc2P4N.js} +2 -2
- package/core/built/admin/assets/use-email-sending-status-DNMtL5B9.js +1 -0
- package/core/built/admin/assets/use-filter-params-DU-aiaTb.js +1 -0
- package/core/built/admin/assets/use-filterable-api-CxCrnPxG.js +1 -0
- package/core/built/admin/assets/use-form-DJKZJhQh.js +1 -0
- package/core/built/admin/assets/use-growth-stats-E13rMQUE.js +1 -0
- package/core/built/admin/assets/use-host-limits-mpTkZIq8.js +1 -0
- package/core/built/admin/assets/use-limiter-DlL7au90.js +19 -0
- package/core/built/admin/assets/use-navigate-with-base-path-BzgNwMAx.js +1 -0
- package/core/built/admin/assets/use-pintura-config-CtEV1JQY.js +1 -0
- package/core/built/admin/assets/use-pintura-editor-CaxE64kD.js +1 -0
- package/core/built/admin/assets/use-post-referrers-DyPjyBSN.js +1 -0
- package/core/built/admin/assets/use-query-params-DlOHCo-R.js +1 -0
- package/core/built/admin/assets/use-reply-chain-data-BST2OgCM.js +1 -0
- package/core/built/admin/assets/use-router-history-entry-CKx9LhqD.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-CnZ19NDf.js +1 -0
- package/core/built/admin/assets/use-unsaved-changes-guard-CKVPWz_F.js +1 -0
- package/core/built/admin/assets/use-upgrade-route-CVjDlNSs.js +1 -0
- package/core/built/admin/assets/{use-url-input-fvp-TpPx.js → use-url-input-C5KHJw79.js} +1 -1
- package/core/built/admin/assets/user-detail-modal-Dm0KfPeR.js +1 -0
- package/core/built/admin/assets/{users-DVNWrqg9.js → users-C60_hpn6.js} +1 -1
- package/core/built/admin/assets/{validator-Cr0sMKuW.js → validator-DlFQP70j.js} +1 -1
- package/core/built/admin/assets/{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-DsHG9Oev.js +1 -0
- package/core/built/admin/index.html +35 -34
- package/core/cli/command.js +17 -2
- 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/asset-url.js +1 -16
- 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/asset-hash/index.js +32 -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/controllers/unsubscribe.js +2 -1
- package/core/frontend/services/routing/parent-router.js +1 -1
- package/core/frontend/services/routing/registry.js +1 -1
- package/core/frontend/services/rss/generate-feed.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/active.js +2 -4
- package/core/frontend/services/theme-engine/handlebars/utils.js +8 -8
- package/core/frontend/services/theme-engine/i18n/i18n.js +15 -6
- package/core/frontend/services/theme-engine/i18next/theme-i18n.js +1 -1
- 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/middleware/llms-discovery.js +34 -43
- package/core/frontend/web/routers/serve-public-file.js +1 -1
- package/core/server/adapters/route-settings/S3RouteSettingsStore.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/LocalFilesStorage.js +12 -2
- package/core/server/adapters/storage/LocalStorageBase.js +15 -1
- package/core/server/api/endpoints/actions.js +2 -1
- package/core/server/api/endpoints/automated-emails.js +11 -4
- package/core/server/api/endpoints/automations.js +77 -49
- package/core/server/api/endpoints/db.js +1 -1
- package/core/server/api/endpoints/emails.js +11 -6
- package/core/server/api/endpoints/index.js +1 -1
- package/core/server/api/endpoints/invites.js +2 -1
- package/core/server/api/endpoints/labels.js +6 -2
- package/core/server/api/endpoints/mail.js +1 -1
- package/core/server/api/endpoints/member-metafields.js +2 -2
- package/core/server/api/endpoints/member-signin-urls.js +1 -1
- package/core/server/api/endpoints/members.js +23 -7
- package/core/server/api/endpoints/oembed.js +1 -1
- package/core/server/api/endpoints/pages.js +2 -6
- package/core/server/api/endpoints/posts.js +4 -12
- package/core/server/api/endpoints/settings.js +2 -2
- package/core/server/api/endpoints/snippets.js +2 -1
- package/core/server/api/endpoints/tags.js +6 -2
- package/core/server/api/endpoints/themes.js +5 -5
- package/core/server/api/endpoints/users.js +2 -6
- package/core/server/api/endpoints/utils/api-filter-utils.js +62 -3
- package/core/server/api/endpoints/utils/serializers/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/clean.js +2 -0
- package/core/server/api/endpoints/utils/serializers/output/utils/extra-attrs.js +6 -3
- package/core/server/api/endpoints/utils/validators/input/automated_emails.js +23 -33
- package/core/server/api/endpoints/utils/validators/input/settings.js +18 -4
- package/core/server/data/exporter/exporter.js +3 -3
- package/core/server/data/exporter/table-lists.js +4 -5
- 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 +10 -4
- 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.64/2026-09-03-15-40-25-add-member-access-to-members-metafields.js +12 -0
- package/core/server/data/migrations/versions/6.64/2026-09-08-11-01-12-add-posts-auto-excerpt-and-reading-time-columns.js +17 -0
- package/core/server/data/migrations/versions/6.64/2026-09-09-13-56-18-add-automation-run-updated-at-indexes.js +6 -0
- package/core/server/data/migrations/versions/6.64/2026-09-09-13-56-18-add-tinybird-syncs-table.js +10 -0
- package/core/server/data/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 +54 -2
- package/core/server/data/schema/validator.js +96 -123
- package/core/server/data/seeders/importers/automations-importer.js +0 -1
- package/core/server/data/seeders/importers/comments-importer.js +1 -1
- package/core/server/data/seeders/importers/email-recipients-importer.js +3 -3
- package/core/server/data/seeders/importers/emails-importer.js +1 -1
- package/core/server/data/seeders/importers/members-importer.js +1 -1
- package/core/server/data/seeders/importers/members-login-events-importer.js +2 -2
- 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 +2 -2
- 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/seeders/utils/blog-info.js +4 -3
- package/core/server/data/seeders/utils/event-generator.js +72 -46
- package/core/server/data/tinybird/datasources/_mv_automation_run_steps.datasource +10 -0
- package/core/server/data/tinybird/datasources/_mv_automation_runs.datasource +10 -0
- package/core/server/data/tinybird/datasources/_mv_pending_automation_runs.datasource +10 -0
- package/core/server/data/tinybird/datasources/automation_run_events.datasource +12 -0
- package/core/server/data/tinybird/datasources/automation_run_step_events.datasource +12 -0
- package/core/server/data/tinybird/endpoints/api_automation_browse_stats.pipe +43 -0
- package/core/server/data/tinybird/fixtures/automation_run_events.ndjson +7 -0
- package/core/server/data/tinybird/fixtures/automation_run_step_events.ndjson +8 -0
- package/core/server/data/tinybird/pipes/mv_automation_run_steps.pipe +13 -0
- package/core/server/data/tinybird/pipes/mv_automation_runs.pipe +15 -0
- package/core/server/data/tinybird/pipes/mv_hits.pipe +25 -20
- package/core/server/data/tinybird/pipes/mv_pending_automation_runs.pipe +7 -0
- package/core/server/data/tinybird/scripts/docker-analytics-manager.js +2 -2
- package/core/server/data/tinybird/tests/api_automation_browse_stats.yaml +18 -0
- package/core/server/ghost-server.js +4 -22
- package/core/server/lib/generate-password.js +54 -0
- package/core/server/lib/image/image-size.js +1 -3
- package/core/server/lib/public-jwk.js +77 -0
- 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 +19 -19
- package/core/server/models/webhook.js +2 -4
- package/core/server/notify.js +2 -2
- package/core/server/services/adapter-manager/base-classes.js +21 -3
- 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/automations-api.js +46 -1
- package/core/server/services/automations/poll.js +3 -1
- package/core/server/services/automations/service.js +2 -2
- package/core/server/services/automations/tinybird-automation-stats.js +56 -0
- 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/media.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 +38 -84
- package/core/server/services/email-analytics/email-analytics-service.js +19 -3
- package/core/server/services/email-analytics/index.js +44 -23
- package/core/server/services/email-analytics/jobs/email-analytics-job-scheduler.js +31 -60
- package/core/server/services/email-rendering/finalize.js +7 -2
- package/core/server/services/email-service/README.md +38 -0
- package/core/server/services/email-service/batch-sending-service.js +13 -14
- package/core/server/services/email-service/email-renderer.js +57 -16
- package/core/server/services/email-service/email-service-wrapper.js +4 -3
- package/core/server/services/email-service/email-service.js +76 -42
- 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/email-service/sending-status.js +10 -4
- package/core/server/services/gifts/gift-email-service.js +10 -3
- package/core/server/services/gifts/gift-service.js +12 -3
- package/core/server/services/gifts/index.js +1 -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/i18n.js +1 -1
- package/core/server/services/identity-tokens/identity-token-service-wrapper.js +3 -4
- 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 +18 -2
- 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/member-welcome-emails/service.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 +11 -8
- 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/controllers/router-controller.js +7 -2
- package/core/server/services/members/members-api/controllers/well-known-controller.js +2 -1
- package/core/server/services/members/members-api/members-api.js +4 -4
- package/core/server/services/members/members-api/repositories/event-repository.js +40 -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 +19 -19
- package/core/server/services/members/members-api/services/token-service.js +11 -12
- package/core/server/services/members/middleware.js +9 -2
- package/core/server/services/members/request-integrity-token-provider.js +2 -1
- package/core/server/services/members/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/access.js +31 -20
- package/core/server/services/members-metafields/actions.js +24 -2
- package/core/server/services/members-metafields/bindings-service.js +5 -5
- package/core/server/services/members-metafields/codec.js +9 -2
- package/core/server/services/members-metafields/definitions-service.js +57 -52
- package/core/server/services/members-metafields/index.js +3 -2
- package/core/server/services/members-metafields/models.js +2 -0
- package/core/server/services/members-metafields/queries.js +45 -11
- package/core/server/services/members-metafields/schema.js +51 -1
- package/core/server/services/members-metafields/serializers.js +1 -0
- package/core/server/services/members-metafields/values-service.js +132 -21
- package/core/server/services/mentions/mention-discovery-service.js +1 -1
- package/core/server/services/mentions/mention-sending-service.js +3 -3
- package/core/server/services/mentions/mention.js +4 -5
- 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 +115 -14
- 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 +27 -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 +14 -10
- 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/stats-service.js +12 -3
- 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/tier-checkout-config/service.js +17 -1
- package/core/server/services/tiers/tier.js +15 -15
- package/core/server/services/tinybird/tinybird-service.js +1 -0
- package/core/server/services/tinybird-sync/get-ingest-config.js +39 -0
- package/core/server/services/tinybird-sync/index.js +31 -0
- package/core/server/services/tinybird-sync/sync-table-to-tinybird.js +149 -0
- package/core/server/services/tinybird-sync/tinybird-sync-service.js +67 -0
- 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/endpoints/admin/routes.js +33 -34
- 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/server/web/well-known.js +12 -16
- package/core/shared/config/defaults.json +7 -3
- package/core/shared/custom-theme-settings-cache/custom-theme-settings-service.js +1 -1
- package/core/shared/{flush-logs.js → flush.js} +7 -3
- package/core/shared/labs.js +5 -2
- package/core/shared/settings-cache/cache-manager.js +1 -1
- package/core/shared/timing-safe-string-equal.js +26 -0
- package/nodemon.json +1 -1
- package/package.json +47 -48
- package/patches/@elastic__elasticsearch@8.19.2.patch +67 -0
- package/patches/juice@11.1.1.patch +46 -0
- package/pnpm-lock.yaml +571 -2107
- package/pnpm-workspace.yaml +38 -28
- package/scripts/prune.mts +70 -3
- package/tsconfig.json +1 -1
- package/components/tryghost-adapter-base-scheduling-0.2.3.tgz +0 -0
- package/core/built/admin/assets/Combination-B0l4MKVh.js +0 -41
- package/core/built/admin/assets/RadialBarChart-JAKoS4KT.js +0 -1
- package/core/built/admin/assets/_baseAssignValue-C_vooEQc.js +0 -1
- package/core/built/admin/assets/about-C1C3s5-g.js +0 -1
- package/core/built/admin/assets/accordion-CxGsDKwa.js +0 -1
- package/core/built/admin/assets/account-migration-CbUhW6gk.js +0 -1
- package/core/built/admin/assets/action-list-C4v0-du8.js +0 -1
- package/core/built/admin/assets/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-integration-modal-BT_onDJy.js +0 -1
- package/core/built/admin/assets/add-newsletter-modal-Cx1kQpiY.js +0 -1
- package/core/built/admin/assets/add-recommendation-modal-B5nvAhvr.js +0 -1
- package/core/built/admin/assets/analytics-DjoJWPI7.js +0 -1
- package/core/built/admin/assets/announcement-bar-modal-Dwd0EGFP.js +0 -1
- package/core/built/admin/assets/api-keys-BoeacM-s.js +0 -1
- package/core/built/admin/assets/automated-emails-BLesE41L.js +0 -1
- package/core/built/admin/assets/automations-BN4u3GR8.js +0 -1
- package/core/built/admin/assets/automations-C-ZTUwW3.js +0 -1
- package/core/built/admin/assets/avatar-flipboard-C6Kj3Awu.js +0 -1
- package/core/built/admin/assets/bluesky-sharing-vzh-oPXL.js +0 -1
- package/core/built/admin/assets/box-CdfQAP_F.js +0 -1
- package/core/built/admin/assets/brand-icon-CrIGOA3Z.js +0 -1
- package/core/built/admin/assets/breadcrumb-CaLk2b7D.js +0 -1
- package/core/built/admin/assets/build-CsiH26uS.js +0 -1
- package/core/built/admin/assets/button-Dvcv1QSR.js +0 -1
- package/core/built/admin/assets/calendar-Bl9RLcZX.js +0 -1
- package/core/built/admin/assets/card--VNbfgo3.js +0 -1
- package/core/built/admin/assets/chart-BrhA41Zi.js +0 -63
- package/core/built/admin/assets/chart-helpers-FHywU0pj.js +0 -1
- package/core/built/admin/assets/checkbox-BtayFtjg.js +0 -1
- package/core/built/admin/assets/chunk.524.e6975095fccdf22d90f8.js +0 -32
- package/core/built/admin/assets/chunk.582.98b485f9b2802f540897.js +0 -34
- package/core/built/admin/assets/code-editor-view-C3ZfoF1X.js +0 -1
- package/core/built/admin/assets/code-editor-view-CAyRWy1s.js +0 -1
- package/core/built/admin/assets/color-picker-G4kGR7rp.js +0 -3
- package/core/built/admin/assets/color-picker-field-DQFVTNnT.js +0 -1
- package/core/built/admin/assets/combobox-BnYzgEB4.js +0 -1
- package/core/built/admin/assets/command-C_vyTikI.js +0 -1
- package/core/built/admin/assets/comments-aBrxfnZf.js +0 -1
- package/core/built/admin/assets/components-CwL6a6As-B0E0-NBJ.js +0 -1
- package/core/built/admin/assets/confirmation-context-DwXX_Y5h.js +0 -1
- package/core/built/admin/assets/container-BuQG1wuP.js +0 -1
- package/core/built/admin/assets/content-api-modal-D2G0nJP6.js +0 -1
- package/core/built/admin/assets/context-menu-DOVB6yaz.js +0 -1
- package/core/built/admin/assets/copy-field-DCJwh9qf.js +0 -1
- package/core/built/admin/assets/create-ghost-browse-value-source-5C53jJaX.js +0 -1
- package/core/built/admin/assets/custom-integration-modal-AbJGVyKc.js +0 -1
- package/core/built/admin/assets/data-list-CA2jYGPq.js +0 -1
- package/core/built/admin/assets/date-range-select-BY3K-ukj.js +0 -1
- package/core/built/admin/assets/design-and-theme-modal-BvEy4_pC.js +0 -2
- package/core/built/admin/assets/detail-page-Dnv-CdR1.js +0 -1
- package/core/built/admin/assets/dirty-confirm-dialog-DVPuGz3U.js +0 -1
- package/core/built/admin/assets/disabled-sources-indicator-Cy7Zp4c8.js +0 -1
- package/core/built/admin/assets/dist-4m6pHdc0.js +0 -23
- package/core/built/admin/assets/dist-8YJUlf3B.js +0 -1
- package/core/built/admin/assets/dist-CZgIBXQN.js +0 -1
- package/core/built/admin/assets/dist-CiHx7vA5.js +0 -6
- package/core/built/admin/assets/dist-DIC8yz5C.js +0 -1
- package/core/built/admin/assets/dist-Dcsslyo72.js +0 -1
- package/core/built/admin/assets/dist-Dgt2cr6a.js +0 -1
- package/core/built/admin/assets/dist-ECAUrdGc.js +0 -1
- package/core/built/admin/assets/dist-JLOy8o0Q.js +0 -1
- package/core/built/admin/assets/dist-Ndy-PuGN.js +0 -1
- package/core/built/admin/assets/dist-Z97pCNqS.js +0 -11
- package/core/built/admin/assets/domain-Dl61QGuk.js +0 -1
- package/core/built/admin/assets/dropzone-Dtz5Rmjt.js +0 -5
- package/core/built/admin/assets/edit-profile-DNJSMDwm.js +0 -1
- package/core/built/admin/assets/editor-DbAen9zf.js +0 -8
- package/core/built/admin/assets/editor-screen-BFWThIai.js +0 -26
- package/core/built/admin/assets/email-sending-status-context-CWDOD1FN.js +0 -1
- package/core/built/admin/assets/email-sending-status-provider-DCPkDICt.js +0 -1
- package/core/built/admin/assets/embed-signup-form-modal-DGqsORxS.js +0 -8
- package/core/built/admin/assets/empty-indicator-D9QdpuNX.js +0 -1
- package/core/built/admin/assets/en-B1jX3WMs.js +0 -1
- package/core/built/admin/assets/esm-CXo5SEPy.js +0 -2
- package/core/built/admin/assets/explore-nnRr1Fja.js +0 -1
- package/core/built/admin/assets/feature-flag-overrides-context-DQjdJFAk.js +0 -1
- package/core/built/admin/assets/feature-image-placeholder-BrIHmPs8.js +0 -1
- package/core/built/admin/assets/feed-BNUcNu-W.js +0 -1
- package/core/built/admin/assets/feedback-DJ4Zb9rZ.js +0 -1
- package/core/built/admin/assets/field-C93_Mg6j.js +0 -1
- package/core/built/admin/assets/filter-bar-Da1qxybu.js +0 -1
- package/core/built/admin/assets/filter-sources-CGJb4C5r.js +0 -1
- package/core/built/admin/assets/filters--kKP-EC8.js +0 -1
- package/core/built/admin/assets/filters-DxA_a4FP.js +0 -1
- package/core/built/admin/assets/first-promoter-modal-BYDtrz2S.js +0 -1
- package/core/built/admin/assets/focus-koenig-editor-on-bottom-click-BbSnGOtK.js +0 -1
- package/core/built/admin/assets/framework-provider-DqI25epG.js +0 -4
- package/core/built/admin/assets/gift-link-modal-B7u5bD4e.js +0 -1
- package/core/built/admin/assets/global-data-context-gAMDH9u1.js +0 -1
- package/core/built/admin/assets/grid-Dj29PY05.js +0 -1
- package/core/built/admin/assets/growth-Cd1uO9d2.js +0 -1
- package/core/built/admin/assets/growth-aG32xfdE.js +0 -3
- package/core/built/admin/assets/heading-Dh5SFVjL.js +0 -1
- package/core/built/admin/assets/history-modal-Df8lW8h-.js +0 -1
- package/core/built/admin/assets/hooks-Cy_-oZ4o.js +0 -2
- package/core/built/admin/assets/html-field-DA4eU7eq.js +0 -1
- package/core/built/admin/assets/iframe-buffering-B2OKJzbz.js +0 -1
- package/core/built/admin/assets/images-KXmyO3Ss.js +0 -1
- package/core/built/admin/assets/index-BHHXtR5C.css +0 -2
- package/core/built/admin/assets/index-CgMCwsxN.js +0 -4
- package/core/built/admin/assets/index.es-CY6-yuw9.js +0 -1
- package/core/built/admin/assets/inline-BWSs_VzR.js +0 -1
- package/core/built/admin/assets/input-group-BE8rM2y1.js +0 -1
- package/core/built/admin/assets/input-surface-BsrIZeSF.js +0 -1
- package/core/built/admin/assets/integration-header-Bm6IDb1A.js +0 -1
- package/core/built/admin/assets/invite-user-modal-B4CuNcx4.js +0 -1
- package/core/built/admin/assets/koenig-loader-BeM5rFPX.js +0 -2
- package/core/built/admin/assets/kpi-card-B21aToe8.js +0 -1
- package/core/built/admin/assets/kpi-card-pz6Wv4Ae.js +0 -1
- package/core/built/admin/assets/kpi-helpers-Dq5jelmP.js +0 -1
- package/core/built/admin/assets/kpi-tabs-DEZHpKUt.js +0 -1
- package/core/built/admin/assets/label-OLCzze8N.js +0 -1
- package/core/built/admin/assets/label-picker-BigOvMPV.js +0 -1
- package/core/built/admin/assets/labels-Dr0SgUQD.js +0 -1
- package/core/built/admin/assets/layout-DUTL8SH5.js +0 -1
- package/core/built/admin/assets/lib-7QPTI0FS.js +0 -1
- package/core/built/admin/assets/limit-service-BhiEvqcP.js +0 -20
- package/core/built/admin/assets/link-helpers-BRAg9SCj.js +0 -1
- package/core/built/admin/assets/links-BDHPTlyj.js +0 -1
- package/core/built/admin/assets/list-page-BucXJ0hi.js +0 -1
- package/core/built/admin/assets/luxon-D1RVjjpq.js +0 -1
- package/core/built/admin/assets/member-custom-fields-TRTHCAz9.js +0 -1
- package/core/built/admin/assets/member-detail-b6dRwc3C.js +0 -1
- package/core/built/admin/assets/members-Czt5lJSc.js +0 -4
- package/core/built/admin/assets/modal-page-xCivTMvI.js +0 -1
- package/core/built/admin/assets/moderation-ZWefD9uH.js +0 -1
- package/core/built/admin/assets/multi-select-combobox-CT13MTo-.js +0 -1
- package/core/built/admin/assets/navigation-modal-C8FEhBK5.js +0 -1
- package/core/built/admin/assets/newsletter-5VYW4RyJ.js +0 -1
- package/core/built/admin/assets/newsletter-detail-modal-ChjC0ZqH.js +0 -1
- package/core/built/admin/assets/newsletter-emails-DZH6I-PY.js +0 -1
- package/core/built/admin/assets/newsletters-DOC9KBcX.js +0 -1
- package/core/built/admin/assets/note-DIV-Pojr.js +0 -1
- package/core/built/admin/assets/notifications-s20-H49V.js +0 -1
- package/core/built/admin/assets/nql-lang-CaWrLesS.js +0 -19
- package/core/built/admin/assets/offers-container-modal-BmG5M5Tv.js +0 -1
- package/core/built/admin/assets/onboarding-CUuy9unR.js +0 -1
- package/core/built/admin/assets/onboarding-pXyct0Jm.js +0 -1
- package/core/built/admin/assets/onboarding-route-CK4pcXoR.js +0 -1
- package/core/built/admin/assets/overview-CaPsciMs.js +0 -1
- package/core/built/admin/assets/overview-a8GfcsKX.js +0 -1
- package/core/built/admin/assets/page-header-DM_KyoFI.js +0 -1
- package/core/built/admin/assets/pagemenu-vgZVUVKR.js +0 -1
- package/core/built/admin/assets/pages-route-BzKZYdV5.js +0 -1
- package/core/built/admin/assets/papaparse.min-cQwnxGCG.js +0 -10
- package/core/built/admin/assets/pintura-modal-DExCF1ii.js +0 -1
- package/core/built/admin/assets/portal-frame-Cqanidq4.js +0 -1
- package/core/built/admin/assets/portal-modal-oinBgA27.js +0 -1
- package/core/built/admin/assets/post-analytics-C5oJ1dWV.js +0 -1
- package/core/built/admin/assets/post-analytics-context-D0Mw-Pmv.js +0 -1
- package/core/built/admin/assets/post-analytics-header-OATo3X_r.js +0 -1
- package/core/built/admin/assets/post-analytics-provider-tOpIVGT5.js +0 -1
- package/core/built/admin/assets/post-share-modal-DvhC1XgV.js +0 -1
- package/core/built/admin/assets/posts-list-screen-o4ZjbgS3.js +0 -2
- package/core/built/admin/assets/posts-route-9F--xdIb.js +0 -1
- package/core/built/admin/assets/preferences--vNubsqD.js +0 -5
- package/core/built/admin/assets/preview-chrome-BljUBlOk.js +0 -1
- package/core/built/admin/assets/preview-modal-YYbzlYdO.js +0 -1
- package/core/built/admin/assets/profile-BllKV3dR.js +0 -1
- package/core/built/admin/assets/prop-types-DeUPn3oD.js +0 -1
- package/core/built/admin/assets/radio-group-DL8GI8rt.js +0 -1
- package/core/built/admin/assets/react-Bb3IsNbi.js +0 -1
- package/core/built/admin/assets/rolldown-runtime-DAXXjFlN.js +0 -1
- package/core/built/admin/assets/router-provider-BSvTXgZY.js +0 -1
- package/core/built/admin/assets/select-v5YbA3Mw.js +0 -1
- package/core/built/admin/assets/settings-PEsZupw1.js +0 -4
- package/core/built/admin/assets/settings-breadcrumbs-NwPnCTC7.js +0 -1
- package/core/built/admin/assets/settings-u_s1CRkr.js +0 -1
- package/core/built/admin/assets/shade-app-CcS3f8MZ-vwURazk8.js +0 -3
- package/core/built/admin/assets/share-modal-SskCmVGL.js +0 -1
- package/core/built/admin/assets/skeleton-Ce9GgUpf.js +0 -1
- package/core/built/admin/assets/slack-modal-XxSJiYgo.js +0 -1
- package/core/built/admin/assets/sort-button-Cx1KtINE.js +0 -1
- package/core/built/admin/assets/source-icon-Bdp9Im_5.js +0 -1
- package/core/built/admin/assets/stack-B2eszIiq.js +0 -1
- package/core/built/admin/assets/stats-view-W2g6Jsd-.js +0 -1
- package/core/built/admin/assets/step-1-BQYzvBzr.js +0 -1
- package/core/built/admin/assets/step-2-xES32xJV.js +0 -1
- package/core/built/admin/assets/step-3-DA_XK5kW.js +0 -2
- package/core/built/admin/assets/stripe-button-CVsLHelt.js +0 -1
- package/core/built/admin/assets/stripe-connect-modal-ClmLOMGS.js +0 -1
- package/core/built/admin/assets/switch-CI4gLWqb.js +0 -1
- package/core/built/admin/assets/table-BenqVupI.js +0 -1
- package/core/built/admin/assets/tabs-eBBlxPp8.js +0 -1
- package/core/built/admin/assets/tag-detail-Ce8Se2qd.js +0 -2
- package/core/built/admin/assets/tag-picker-C3UR-uJ-.js +0 -1
- package/core/built/admin/assets/tags-B-kJxCs7.js +0 -1
- package/core/built/admin/assets/testimonials-modal-9Q6fT06V.js +0 -1
- package/core/built/admin/assets/text-BQDSDsKs.js +0 -1
- package/core/built/admin/assets/textarea-DJ1Q5V39.js +0 -1
- package/core/built/admin/assets/tier-detail-modal-CDyYdqK7.js +0 -1
- package/core/built/admin/assets/toggle-group-CviIkyok.js +0 -1
- package/core/built/admin/assets/topic-filter-I2jCBGxm.js +0 -1
- package/core/built/admin/assets/transistor-modal-p53u3W8y.js +0 -1
- package/core/built/admin/assets/trend-badge-CideVzQd.js +0 -1
- package/core/built/admin/assets/types-uYQ1HgqL.js +0 -1
- package/core/built/admin/assets/unsplash-modal-DY8UcKcE.js +0 -1
- package/core/built/admin/assets/use-analytics-data-DAIGcr2f.js +0 -1
- package/core/built/admin/assets/use-filter-params-JkZhIS8L.js +0 -1
- package/core/built/admin/assets/use-filterable-api-BVEVMrhZ.js +0 -1
- package/core/built/admin/assets/use-form-vRjI0Kwk.js +0 -1
- package/core/built/admin/assets/use-growth-stats-937CUj6j.js +0 -1
- package/core/built/admin/assets/use-host-limits-D0Dv3tKA.js +0 -1
- package/core/built/admin/assets/use-limiter-CohWfzvK.js +0 -2
- package/core/built/admin/assets/use-navigate-with-base-path-BkxcPj5l.js +0 -1
- package/core/built/admin/assets/use-pintura-config-xgytjU35.js +0 -1
- package/core/built/admin/assets/use-pintura-editor-CaV1mbfO.js +0 -1
- package/core/built/admin/assets/use-post-referrers-BCQI7fDg.js +0 -1
- package/core/built/admin/assets/use-query-params-BfzuqbcD.js +0 -1
- package/core/built/admin/assets/use-reply-chain-data-CYRhoaxY.js +0 -1
- package/core/built/admin/assets/use-router-history-entry-NOKcd--l.js +0 -1
- package/core/built/admin/assets/use-setting-group-bLKMwoBT.js +0 -1
- package/core/built/admin/assets/use-settings-navigation-B-qrriKD.js +0 -1
- package/core/built/admin/assets/use-simple-pagination-CNPd6Rf6.js +0 -1
- package/core/built/admin/assets/use-staff-users-pRIMIyiW.js +0 -1
- package/core/built/admin/assets/use-tinybird-query-CmdbCS9X.js +0 -1
- package/core/built/admin/assets/use-tinybird-token-KLne235s.js +0 -1
- package/core/built/admin/assets/use-unsaved-changes-guard-7-ug0JdH.js +0 -1
- package/core/built/admin/assets/use-upgrade-route-Dm_qqKr0.js +0 -1
- package/core/built/admin/assets/user-detail-modal-D3KlGYv-.js +0 -1
- package/core/built/admin/assets/virtual-list-CZ3RK2Yf.js +0 -1
- package/core/built/admin/assets/web-ClEJsCAj.js +0 -2
- package/core/built/admin/assets/web-X9rdnrtq.js +0 -1
- package/core/built/admin/assets/zapier-modal-DfVhV17j.js +0 -1
- package/core/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
- /package/core/built/admin/assets/{chunk.901.4ccc639821020230bcca.js.LICENSE.txt → chunk.972.4b8c97f93d66db15e751.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./dist-nmRzULcD.js","./dist-BRQkNYN1.js","./dist-D7yMk931.js","./dist-Cm2qbZKL.js","./react-BXwhMTuc.js","./dist-DVVKsyPh.js","./esm--rhhUGIG.js","./jsx-runtime-BlNNh7jY.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{s as e,t}from"./react-BXwhMTuc.js";import{t as n}from"./react-dom-CMOtJ5MH.js";import{i as r,r as i,s as a}from"./framework-provider-DB-svAju.js";import{C as o,E as s,S as c,T as l,_ as u,b as d,c as f,g as p,l as m,m as h,n as g,o as _,p as v,r as y,v as b,x,y as S}from"./hooks-DYfTEQLk.js";import{t as C}from"./jsx-runtime-BlNNh7jY.js";import{n as w}from"./dist-DziNzWI2.js";import{i as T,n as E,r as D,t as O}from"./focus-koenig-editor-on-bottom-click-CkFA8EkI.js";import{c as k,l as A,m as j,n as ee,t as M,u as N}from"./posts-tcoO3iRG.js";import{s as P,t as te}from"./config-BPljH6wF.js";import{t as ne}from"./preload-helper-DYl5dUZ5.js";import{h as re,u as F}from"./chunk-KS7C4IRE-DhOcHQOU.js";import{a as I,t as ie}from"./router-provider-DDZvgS3V.js";import{H as L,J as R,L as z,i as ae,o as B,r as oe,s as se}from"./shade-scope-Cccj-c7I-D0XwkdKQ.js";import{t as V}from"./text-BLI0C8Mc.js";import{c as ce,d as H,f as le,l as ue,s as de,t as fe,u as pe}from"./users-C60_hpn6.js";import{_ as me,d as he,g as ge,i as _e,l as U,m as W,n as ve,r as ye,t as be,u as xe}from"./schemas-BoYdB6YU.js";import{r as Se}from"./newsletters-Dz77m__5.js";import{t as Ce}from"./use-pintura-config-CtEV1JQY.js";import{$t as we,C as Te,D as Ee,E as De,Ln as Oe,Nn as ke,Un as Ae,Vn as je,Y as Me,Yn as Ne,an as Pe,er as Fe,et as Ie,ft as Le,hn as Re,jn as ze,jr as Be,l as Ve,nr as He,nt as Ue,qt as We,rn as Ge,sn as Ke,t as G,wt as qe}from"./button-D414TI3B.js";import{a as Je,i as Ye}from"./Combination-DQ6f9A5P.js";import{a as Xe,i as Ze,n as Qe,o as $e,r as et,s as tt,t as nt}from"./select-D_4xWFYv.js";import{i as rt,r as it,t as at}from"./tabs-BZyz4ZCH.js";import{t as ot}from"./calendar-Cp_opo3i.js";import{t as st}from"./switch-DoOJF2yg.js";import{t as ct}from"./checkbox-CFFqf0Nh.js";import{a as lt,i as ut,n as dt,r as ft,t as pt}from"./lib-CCz2mjm8.js";import{t as mt}from"./empty-indicator-CSQts7GV.js";import{t as K}from"./label-Du0yqMqL.js";import{i as ht,o as gt,t as _t}from"./field-BXEh3ptU.js";import{t as vt}from"./preview-chrome-C7yZWVLZ.js";import{n as yt,t as bt}from"./radio-group-CTmLo0h9.js";import{t as xt}from"./textarea-C5qolByg.js";import{n as St,t as Ct}from"./toggle-group-BTL1QsWY.js";import{c as wt,l as Tt,o as Et}from"./themes-DtcEFQWm.js";import{$r as q,An as Dt,Ar as Ot,B as kt,Bn as At,Dn as jt,En as Mt,Fn as Nt,Gn as Pt,Hn as Ft,In as It,Jn as Lt,Kn as Rt,L as zt,Ln as Bt,Mn as Vt,Nn as Ht,Oi as Ut,On as Wt,Pn as Gt,Qr as J,Si as Kt,Sn as qt,V as Jt,Vn as Yt,Wn as Xt,Xn as Zt,Zn as Qt,Zr as $t,_i as en,a as tn,bt as nn,ci as rn,di as an,fi as on,jn as sn,ki as cn,kn as ln,li as un,mi as dn,oi as fn,p as pn,pi as mn,qn as hn,qr as gn,r as _n,si as vn,ui as yn,vi as Y,xn as bn,yi as xn,yn as Sn}from"./index-DOF2jDq0.js";import{t as Cn}from"./dirty-confirm-dialog-BT_Vq9TD.js";import{a as wn,c as Tn,i as En,n as Dn,o as On,r as kn,s as An,t as jn}from"./images-H-BIm8OQ.js";import{a as Mn,r as Nn}from"./tiers-6mPzCXlM.js";import{t as Pn}from"./validator-DlFQP70j.js";import{n as Fn,t as In}from"./use-unsaved-changes-guard-CKVPWz_F.js";import{t as Ln}from"./labels-0x2NfLtC.js";import{c as Rn,l as zn,n as Bn,t as Vn,u as Hn}from"./pages-DZ_YGB1D.js";import{n as Un,t as Wn}from"./email-previews-Bs-JDhIw.js";import{r as Gn}from"./emails-CgvIIz3q.js";import{a as Kn,c as qn,i as Jn,n as Yn,o as Xn,r as Zn,t as Qn}from"./tag-picker-BKUCZuRc.js";import{n as $n,t as er}from"./koenig-loader-BzXCXHoA.js";import{t as tr}from"./index.es-Ct5XQNSj.js";import{t as nr}from"./brand-icon-CrmbX86T.js";var X=e(t(),1),rr=`post-editor`,ir=`editor-title-input`,ar=`editor-body`,or=`editor-secondary-instance`,sr=`editor-word-count`,cr=`editor-load-error`,lr=`editor-reauth-banner`,ur=`editor-conflict-banner`,dr=`editor-conflict-reload-confirm`,fr=`editor-status`,pr=`editor-schedule-countdown`,mr=`editor-feature-image`,hr=`editor-feature-image-caption`,gr=`editor-save-error-banner`,_r=`post-preview-modal`,vr=`post-preview-browser`,yr=`post-preview-browser-frame`,br=`post-preview-email`,xr=`post-preview-email-frame`,Sr=`post-preview-email-from`,Cr=`post-preview-email-subject`,wr=`post-preview-test-email-input`,Tr=`post-preview-unavailable`,Er=`post-preview-newsletter-missing`,Dr=`post-preview-newsletters-error`,Or=`post-preview-save-failed`,kr=`editor-leave-dialog`,Ar=`editor-header-actions`,jr=`editor-publish-inputs-error`,Mr=`snippet-confirm-modal`,Nr=`post-settings-sidebar`,Pr=`settings-menu-toggle`,Fr=`settings-load-error`,Ir=`settings-excerpt-input`,Lr=`settings-featured-toggle`,Rr=`settings-show-title-toggle`,zr=`settings-show-title-warning`,Br=`settings-slug-input`,Vr=`settings-slug-error`,Hr=`settings-url-preview`,Ur=`settings-visibility-select`,Wr=`settings-tiers-picker`,Gr=`settings-tiers-error`,Kr=`settings-tags-field`,qr=`settings-tags-input`,Jr=`settings-tags-list`,Yr=`settings-tags-token`,Xr=`settings-template-select`,Zr=`settings-template-slug-match`,Qr=`settings-publish-date`,$r=`settings-publish-time`,ei=`settings-publish-date-error`,ti=`settings-publish-date-note`,ni=`settings-authors-picker`,ri=`settings-authors-list`,ii=`settings-authors-error`,ai=`settings-author-chip`,oi=`settings-delete-button`,si=`settings-delete-dialog`,ci=`settings-delete-error`,li=`settings-subview-pane`,ui=`settings-meta-title-input`,di=`settings-meta-description-input`,fi=`settings-serp-preview`,pi=`settings-x-image`,mi=`settings-x-title-input`,hi=`settings-x-description-input`,gi=`settings-x-preview`,_i=`settings-x-preview-image`,vi=`settings-facebook-title-input`,yi=`settings-facebook-description-input`,bi=`settings-facebook-preview`,xi=`settings-facebook-preview-image`,Si=`settings-post-history-button`,Ci=`settings-shortcut-row`,wi=`post-history-modal`,Ti=`post-history-revision-list`,Ei=`post-history-preview`,Di=`post-history-preview-title`,Oi=`post-history-preview-excerpt`,ki=`post-history-preview-feature-image`,Ai=`post-history-preview-body`,ji=`post-history-restore-confirm`,Mi=`publish-flow-modal`,Ni=`publish-flow-options`,Pi=`publish-flow-confirm`,Fi=`publish-flow-complete`,Ii=`publish-flow-preview`,Li=`publish-setting-publish-type`,Ri=`publish-setting-email-recipients`,zi=`publish-setting-publish-at`,Bi=`publish-already-sent`,Vi=`publish-type-error`,Hi=`publish-email-size-warning`,Ui=`publish-newsletter-select`,Wi=`publish-recipient-free`,Gi=`publish-recipient-paid`,Ki=`publish-recipient-specific`,qi=`publish-recipient-segments`,Ji=`publish-schedule-date`,Yi=`publish-schedule-time`,Xi=`publish-continue`,Zi=`publish-confirm`,Qi=`publish-confirm-error`,$i=`publish-limits-error`,ea=`publish-back-to-settings`,ta=`publish-complete-bookmark`,na=`publish-complete-note`,ra=`publish-back-to-dashboard`,ia=`publish-revert-to-draft`,aa=`publish-email-error-step`,oa=`publish-retry-email`,sa=`publish-retry-error`,ca=`tk-reminder-dialog`,la=`public-preview-warning-dialog`,ua=`update-flow-modal`,da=`update-flow-title`,fa=`update-flow-confirmation`,pa=`update-flow-previous-email`;function ma(e,t){if(e)return{displayName:e.displayName,isPage:e.displayName===`page`,showTitleAndFeatureImage:e.showTitleAndFeatureImage??!0,visibility:e.visibility||t}}function ha(e){return e?.isPage||e?.displayName===`page`?`web only`:`web and email`}function ga(e,t){let n=Y(e,t);return typeof n==`string`?n:null}function _a(e,t){let{settings:n,config:r,site:i,currentUser:a}=e;return{unsplash:Y(n,`unsplash`)?e.unsplashHeaders:null,klipy:r.klipy?.apiKey?r.klipy:null,pinturaConfig:e.pinturaConfig,fetchAutocompleteLinks:t.fetchAutocompleteLinks,fetchEmbed:t.fetchEmbed,fetchLabels:t.fetchLabels,renderLabels:!ue(a),feature:{transistor:Y(n,`transistor`)===!0,paywallImprovements:r.labs?.paywallImprovements===!0},deprecated:{headerV1:!0},membersEnabled:Y(n,`members_signup_access`)===`all`,searchLinks:t.searchLinks,siteTitle:Y(n,`title`)??``,siteDescription:Y(n,`description`)??``,siteOgImage:ga(n,`og_image`),siteTwitterImage:ga(n,`twitter_image`),siteCoverImage:ga(n,`cover_image`),siteUrl:kt(i),siteUuid:i.site_uuid,stripeEnabled:en(n,r),post:e.post,snippets:e.snippets,createSnippet:t.createSnippet,deleteSnippet:t.deleteSnippet,visibilitySettings:ha(e.post)}}function va(e,t){return e.post?{...e,post:{...e.post,visibility:t.visibility||e.post.visibility,showTitleAndFeatureImage:t.showTitleAndFeatureImage??!0}}:e}var Z={sessionExpiryRedirect:!1},ya={filter:`type:paid`,limit:`all`},ba={limit:`all`},xa=`Etc/UTC`;function Sa(){return Kt({defaultErrorHandler:!1,requestOptions:Z})}function Ca(){let{data:e}=Sa(),t=Y(e?.settings??null,`timezone`);return typeof t==`string`?t:xa}var Q=C(),wa=`top-0 left-0 h-dvh w-full max-w-none translate-0 gap-0 rounded-none border-0 p-0 shadow-none sm:rounded-none`,Ta={header:`grid-rows-[auto_1fr]`,plain:`grid-rows-[1fr] overflow-y-auto`};function Ea({open:e,onOpenChange:t,modal:n=!0,title:r,layout:i=`plain`,headerActions:a,className:o,children:s,onCloseAutoFocus:c,...l}){let u=(0,X.useRef)(null),d=(0,X.useRef)(!1);return(0,X.useLayoutEffect)(()=>{if(e&&!d.current){let e=document.activeElement;u.current=e instanceof HTMLElement&&e!==document.body?e:null}d.current=e},[e]),(0,Q.jsx)(Ft,{modal:n,open:e,onOpenChange:t,children:(0,Q.jsxs)(Xt,{className:z(wa,Ta[i],o),onCloseAutoFocus:e=>{c?.(e);let t=u.current;u.current=null,!(e.defaultPrevented||!t?.isConnected)&&(e.preventDefault(),t.focus())},onInteractOutside:e=>e.preventDefault(),...l,children:[i===`header`?(0,Q.jsxs)(hn,{className:`flex-row items-center justify-between gap-4 border-b border-border-default p-4`,children:[(0,Q.jsx)(Lt,{className:`text-lg`,children:r}),a]}):(0,Q.jsx)(Lt,{className:`sr-only`,children:r}),s]})})}function Da(e,t){return t?`${e.replace(/\/+$/,``)}/p/${t}/`:``}function Oa(e,t){if(!e)return``;let n=new URL(e);return n.searchParams.set(`member_status`,t.segment===`tier`?`paid`:t.segment),t.segment===`tier`&&t.tierSlug?n.searchParams.set(`member_tier`,t.tierSlug):n.searchParams.delete(`member_tier`),n.toString()}function ka(e){let t=e.segment===`paid`||e.segment===`tier`?`paid`:`free`;return e.segment===`tier`&&e.tierSlug?{memberStatus:t,memberTier:e.tierSlug}:{memberStatus:t}}function Aa(e,t){return e.segment===`tier`&&t?`${t} tier member`:`${e.segment} member`}function ja({previewUrl:e,audience:t,device:n}){return e?(0,Q.jsx)(vt,{"data-testid":vr,device:n,children:(0,Q.jsx)(`iframe`,{className:`size-full border-0`,"data-testid":yr,src:Oa(e,t),title:`Post preview`})}):(0,Q.jsx)(mt,{className:`grow justify-center`,"data-testid":Tr,description:`A post gets its preview link the first time it is saved.`,title:`Nothing to preview yet`,children:(0,Q.jsx)(ze,{})})}var Ma=e(Pn(),1);function Na({postId:e,audience:t,audienceLabel:n,newsletterSlug:r,disabled:i=!1}){let a=(0,X.useId)(),{data:o}=_({requestOptions:Z}),{data:s}=P({requestOptions:Z}),{data:c}=Sa(),{mutateAsync:l,isPending:u}=Un(),d=v(),[f,p]=(0,X.useState)(null),m=f??o?.email??``,[h,g,y]=xn(c?.settings??[],[`mailgun_api_key`,`mailgun_domain`,`mailgun_base_url`]),b=!!s?.config.mailgunIsConfigured||!!(h&&g&&y),x=async()=>{let n=m.trim();if(!i){if(!Ma.default.isEmail(n)){w.error(`Please enter a valid email`);return}if(!b){w.error(`Please verify your email settings`);return}try{await l({postId:e,emails:[n],newsletter:r,...ka(t)}),w.success(`Test email sent to ${n}`)}catch(e){d(e)}}};return(0,Q.jsxs)(Bt,{children:[(0,Q.jsx)(Yt,{asChild:!0,children:(0,Q.jsxs)(G,{disabled:i,variant:`outline`,children:[(0,Q.jsx)(Ie,{}),`Test`]})}),(0,Q.jsx)(At,{align:`end`,className:`w-80`,children:(0,Q.jsx)(`form`,{noValidate:!0,onSubmit:e=>{e.preventDefault(),x()},children:(0,Q.jsxs)(J,{gap:`md`,children:[(0,Q.jsx)(K,{htmlFor:a,children:`Send test email`}),(0,Q.jsx)(jt,{"data-testid":wr,id:a,placeholder:`you@yoursite.com`,type:`email`,value:m,onChange:e=>p(e.target.value)}),(0,Q.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`You’ll receive this as a `,n,`.`]}),(0,Q.jsx)(G,{disabled:i||u,type:`submit`,children:u?`Sending...`:`Send`})]})})})]})}var Pa=`
|
|
3
|
+
html {
|
|
4
|
+
scrollbar-width: thin;
|
|
5
|
+
scrollbar-color: rgba(0, 0, 0, 0.2) transparent;
|
|
6
|
+
}
|
|
7
|
+
html::-webkit-scrollbar {
|
|
8
|
+
width: 8px;
|
|
9
|
+
background: transparent;
|
|
10
|
+
}
|
|
11
|
+
html::-webkit-scrollbar-thumb {
|
|
12
|
+
border-radius: 4px;
|
|
13
|
+
background-color: rgba(0, 0, 0, 0.2);
|
|
14
|
+
}
|
|
15
|
+
html::-webkit-scrollbar-thumb:hover {
|
|
16
|
+
background-color: rgba(0, 0, 0, 0.3);
|
|
17
|
+
}
|
|
18
|
+
`;function Fa(e){let t=`<style>${Pa}</style>`;return e.includes(`</head>`)?e.replace(`</head>`,`${t}</head>`):`${e}${t}`}function Ia({postId:e,audience:t,tierName:n,canSendTestEmail:r,device:i,newsletters:a,newsletterSlug:o,newsletterLookupError:s=!1,newsletterLookupPending:c=!1,newsletterMissing:l=!1,onNewsletterChange:u,onRetryNewsletterLookup:d}){let{data:f}=Sa(),[p]=xn(f?.settings??[],[`default_email_address`]),{data:m,isError:h,isFetching:g,refetch:_}=Wn(e,{...ka(t),enabled:!s&&!c&&!l,newsletter:o,requestOptions:Z,staleTime:0}),v=m?.email_previews[0],y=a.find(e=>e.slug===o),b=e=>e??p??``;return(0,Q.jsx)(vt,{"data-testid":br,device:i,children:(0,Q.jsxs)(J,{className:`size-full bg-background`,gap:`none`,children:[(0,Q.jsxs)(J,{className:`border-b border-border-default p-4`,gap:`md`,children:[(0,Q.jsxs)(q,{gap:`lg`,justify:`between`,children:[(0,Q.jsx)(q,{className:`min-w-0`,gap:`md`,children:c?(0,Q.jsx)(Mt,{size:`sm`}):s?(0,Q.jsx)(`p`,{className:`min-w-0 truncate text-sm text-muted-foreground`,children:`Couldn’t load newsletters`}):l?(0,Q.jsx)(`p`,{className:`min-w-0 truncate text-sm text-muted-foreground`,"data-testid":Er,children:`This newsletter no longer exists`}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{className:`shrink-0 text-sm text-muted-foreground`,children:`From`}),a.length>1?(0,Q.jsxs)(nt,{value:y?.slug,onValueChange:u,children:[(0,Q.jsx)($e,{"aria-label":`Newsletter`,className:`w-auto`,children:(0,Q.jsx)(tt,{})}),(0,Q.jsx)(Qe,{children:a.map(e=>(0,Q.jsxs)(Ze,{value:e.slug,children:[e.name,` <`,b(e.sender_email),`>`]},e.id))})]}):(0,Q.jsxs)(`p`,{className:`min-w-0 truncate text-sm`,"data-testid":Sr,children:[y?.name,` `,(0,Q.jsxs)(`span`,{className:`text-muted-foreground`,children:[`<`,b(y?.sender_email??null),`>`]})]})]})}),r&&(0,Q.jsx)(Na,{audience:t,audienceLabel:Aa(t,n),disabled:s||c||l,newsletterSlug:o,postId:e})]}),(0,Q.jsxs)(q,{className:`min-w-0`,gap:`md`,children:[(0,Q.jsx)(`span`,{className:`shrink-0 text-sm text-muted-foreground`,children:`Subject`}),(0,Q.jsx)(`p`,{className:`min-w-0 truncate text-sm`,"data-testid":Cr,children:!g&&v?.subject})]})]}),c||g?(0,Q.jsx)(q,{className:`grow`,gap:`none`,justify:`center`,children:(0,Q.jsx)(Mt,{size:`md`})}):s?(0,Q.jsx)(mt,{actions:(0,Q.jsx)(G,{variant:`outline`,onClick:d,children:`Retry`}),className:`grow justify-center`,"data-testid":Dr,description:`The newsletters could not be loaded.`,title:`Couldn’t load newsletters`,children:(0,Q.jsx)(Te,{})}):h?(0,Q.jsx)(mt,{actions:(0,Q.jsx)(G,{variant:`outline`,onClick:()=>void _(),children:`Retry`}),className:`grow justify-center`,description:`The email preview could not be loaded.`,title:`Couldn’t load the email preview`,children:(0,Q.jsx)(Te,{})}):l?(0,Q.jsx)(mt,{className:`grow justify-center`,description:`Choose an active newsletter before sending this post.`,title:`Newsletter unavailable`,children:(0,Q.jsx)(We,{})}):(0,Q.jsx)(`iframe`,{className:`min-h-0 grow border-0`,"data-testid":xr,sandbox:`allow-popups allow-popups-to-escape-sandbox`,srcDoc:Fa(v?.html??``),title:`Email preview`})]})})}function La({open:e,postId:t,previewUrl:n,isPost:r=!0,newsletterSlug:i,onBeforeOpen:a,onReturnToPublish:o,onOpenChange:s}){let[c,l]=(0,X.useState)(`browser`),[u,d]=(0,X.useState)(`desktop`),[f,p]=(0,X.useState)(`free`),[m,h]=(0,X.useState)(null),[g,y]=(0,X.useState)(null),[b,x]=(0,X.useState)(()=>a&&e?`preparing`:`ready`),[S,C]=(0,X.useState)(e),T=v(),{data:E}=_({requestOptions:Z}),{data:D}=Sa(),O=cn({requestOptions:Z}),k=Ut({requestOptions:Z}),A=Y(D?.settings??[],`members_enabled`)===!0,j=r&&A&&!!k&&!!E&&!ue(E),ee=!!E&&(H(E)||de(E)||pe(E)),{data:M}=Mn({searchParams:ya,enabled:e&&b===`ready`&&O===!0,requestOptions:Z}),N=(0,X.useMemo)(()=>M?.tiers??[],[M]),{data:P,fetchNextPage:te,hasNextPage:ne,isError:re,isFetching:F,isFetchingNextPage:I,refetch:ie}=Se({searchParams:ba,enabled:e&&b===`ready`&&j,requestOptions:Z});(0,X.useEffect)(()=>{ne&&!I&&!re&&te()},[re,te,ne,I]);let L=F||ne||I,R=(0,X.useMemo)(()=>(P?.newsletters??[]).filter(e=>e.status===`active`),[P]),z=!!P&&!re&&!L&&!!i&&!R.some(e=>e.slug===i),{data:ae,isError:B,isFetching:oe,refetch:se}=Se({searchParams:{filter:`slug:${i??``}`,limit:`1`},enabled:e&&b===`ready`&&j&&z,requestOptions:Z,staleTime:0}),V=z&&ae?ae.newsletters.find(e=>e.slug===i):void 0,ce=z&&!B&&!!ae&&!V,le=re||z&&B,fe=j&&(L||!P&&!re)||z&&(oe||!ae&&!B),me=(0,X.useMemo)(()=>V?[V,...R]:R,[R,V]),he=(0,X.useRef)(a),ge=(0,X.useRef)(null);he.current=a,e!==S&&(C(e),ge.current=null,x(e&&a?`preparing`:`ready`)),(0,X.useEffect)(()=>{if(!e||b!==`preparing`)return;let t=he.current;if(!t){x(`ready`);return}let n=ge.current??=Promise.resolve().then(t),r=!1;return n.then(()=>{r||x(`ready`)},e=>{r||(T(e),x(`failed`))}),()=>{r=!0}},[T,e,b]);let _e=(0,X.useMemo)(()=>{let e=c===`email`?[{label:`Free member`,value:`free`}]:[{label:`Public visitor`,value:`anonymous`},{label:`Free member`,value:`free`}];return O&&(e.push({label:`Paid member`,value:`paid`}),N.length>0&&e.push({label:`Specific tier`,value:`tier`})),e},[c,O,N.length]),U=N.find(e=>e.active)??N[0],W=m??U?.slug,ve=N.find(e=>e.slug===W),ye=N.filter(e=>e.active),be=N.filter(e=>!e.active),xe=g??i??me[0]?.slug,Ce=()=>{re&&ie(),B&&se()},we={segment:f,tierSlug:W},Ee=Oa(n,we),De=b===`ready`&&!!Ee,Oe=c===`browser`||_e.length>1,Ae=f===`tier`&&N.length>0,je=c===`email`&&j,Ne=e=>{l(e),e===`email`&&f===`anonymous`&&p(`free`)},Fe=async()=>{try{await navigator.clipboard.writeText(Ee),w.success(`Preview link copied`)}catch{w.error(`Could not copy the preview link`)}};return(0,Q.jsx)(Ea,{"aria-describedby":void 0,"data-testid":_r,headerActions:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(q,{gap:`md`,children:[j&&(0,Q.jsx)(at,{value:c,variant:`segmented`,onValueChange:e=>Ne(e),children:(0,Q.jsxs)(it,{children:[(0,Q.jsx)(rt,{value:`browser`,children:`Web`}),(0,Q.jsx)(rt,{value:`email`,children:`Email`})]})}),(0,Q.jsxs)(Ct,{type:`single`,value:u,onValueChange:e=>{(e===`desktop`||e===`mobile`)&&d(e)},children:[(0,Q.jsx)(St,{"aria-label":`Desktop`,value:`desktop`,children:(0,Q.jsx)(Pe,{})}),(0,Q.jsx)(St,{"aria-label":`Mobile`,value:`mobile`,children:(0,Q.jsx)(Me,{})})]}),Oe&&(0,Q.jsxs)(nt,{value:f,onValueChange:e=>p(e),children:[(0,Q.jsx)($e,{"aria-label":`Preview as`,className:`w-auto`,children:(0,Q.jsx)(tt,{})}),(0,Q.jsx)(Qe,{children:_e.map(e=>(0,Q.jsx)(Ze,{value:e.value,children:e.label},e.value))})]}),Ae&&(0,Q.jsxs)(nt,{value:W,onValueChange:h,children:[(0,Q.jsx)($e,{"aria-label":`Tier`,className:`w-auto`,children:(0,Q.jsx)(tt,{})}),(0,Q.jsxs)(Qe,{children:[ye.length>0&&(0,Q.jsxs)(et,{children:[(0,Q.jsx)(Xe,{children:`Active tiers`}),ye.map(e=>(0,Q.jsx)(Ze,{value:e.slug,children:e.name},e.id))]}),be.length>0&&(0,Q.jsxs)(et,{children:[(0,Q.jsx)(Xe,{children:`Archived tiers`}),be.map(e=>(0,Q.jsx)(Ze,{value:e.slug,children:e.name},e.id))]})]})]})]}),(0,Q.jsxs)(q,{gap:`sm`,children:[(0,Q.jsx)(G,{"aria-label":`Copy preview link`,disabled:!De,variant:`outline`,onClick:()=>void Fe(),children:(0,Q.jsx)(Ge,{})}),De?(0,Q.jsx)(G,{variant:`outline`,asChild:!0,children:(0,Q.jsxs)(`a`,{href:Ee,rel:`noopener noreferrer`,target:`_blank`,children:[(0,Q.jsx)(ke,{}),`Open in new tab`]})}):(0,Q.jsxs)(G,{variant:`outline`,disabled:!0,children:[(0,Q.jsx)(ke,{}),`Open in new tab`]}),(0,Q.jsx)(G,{variant:o?`outline`:`default`,onClick:()=>s(!1),children:`Close`}),o?(0,Q.jsx)(G,{onClick:o,children:`Publish`}):null]})]}),layout:`header`,open:e,title:`Preview`,onOpenChange:s,children:(0,Q.jsx)(q,{className:`min-h-0 overflow-auto bg-surface-panel p-6`,gap:`none`,justify:`center`,children:b===`preparing`?(0,Q.jsx)(q,{align:`center`,className:`grow`,gap:`none`,justify:`center`,children:(0,Q.jsx)(Mt,{size:`lg`})}):b===`failed`?(0,Q.jsx)(mt,{actions:(0,Q.jsx)(G,{variant:`outline`,onClick:()=>{ge.current=null,x(`preparing`)},children:`Retry`}),className:`grow justify-center`,"data-testid":Or,description:`Saving the post failed, so there is nothing new to preview.`,title:`Couldn’t preview this post`,children:(0,Q.jsx)(Te,{})}):je?(0,Q.jsx)(Ia,{audience:we,canSendTestEmail:ee,device:u,newsletterLookupError:le,newsletterLookupPending:fe,newsletterMissing:ce&&xe===i,newsletters:me,newsletterSlug:xe,postId:t,tierName:ve?.name,onNewsletterChange:y,onRetryNewsletterLookup:Ce}):(0,Q.jsx)(ja,{audience:we,device:u,previewUrl:n})})})}function Ra({post:e,siteTitle:t}){return(0,Q.jsxs)(`a`,{className:`block overflow-hidden rounded-lg border border-border-default`,"data-testid":ta,href:e.url??`#`,rel:`noopener noreferrer`,target:`_blank`,children:[e.featureImage?(0,Q.jsx)(`div`,{className:`aspect-video bg-cover bg-center`,style:{backgroundImage:`url(${e.featureImage})`}}):null,(0,Q.jsxs)(J,{className:`p-5`,gap:`xs`,children:[(0,Q.jsx)(V,{size:`lg`,weight:`bold`,children:e.title}),e.excerpt?(0,Q.jsx)(V,{className:`line-clamp-2`,tone:`secondary`,children:e.excerpt}):null,t?(0,Q.jsx)(V,{size:`sm`,tone:`tertiary`,children:t}):null]})]})}var za=e(R(),1);function Ba(e){return e===1?`subscriber`:`subscribers`}function Va(e){return e.charAt(0).toUpperCase()+e.slice(1)}function Ha(e){return e.filter(e=>!!e).join(` `)}function Ua({recipientType:e,count:t,newsletterName:n}){let r=t==null,i=e===`all`;return Ha([i&&(r||t>1)?`All`:null,r?null:L(t),i?null:r?Va(e):e,Ba(t),n?`of ${n}`:null])}function Wa({recipientType:e,count:t}){let n=t==null,r=e===`all`;return Ha([r?`all`:null,n?null:L(t),r?null:e,Ba(t)])}var Ga={"publish+send":{idle:`Publish & send`,running:`Publishing & sending`},send:{idle:`Send email`,running:`Sending`},publish:{idle:`Publish`,running:`Publishing`},schedule:{running:`Scheduling`}};function Ka({publishType:e,isScheduled:t,scheduledAt:n,displayName:r,timezone:i}){let a=Ga[e].idle;return e===`publish`&&(a+=` ${r}`),t?a+=`, on ${za.default.tz(n,i).format(`MMMM Do`)}`:a+=`, right now`,a}function qa(e,t){return Ga[t?`schedule`:e].running}function Ja({willPublish:e,willEmail:t,willOnlyEmail:n}){return e&&t?`publish+send`:n?`send`:`publish`}function Ya(e,t){let n=za.default.tz(e,t);return new Date(n.year(),n.month(),n.date())}function Xa(e,t){return(0,za.default)(e).from(t?(0,za.default)(t):za.default.utc())}function Za(e,t){return za.default.tz(e,t).format(`D MMM YYYY [at] HH:mm`)}function Qa(e,t){let n=za.default.tz(e,t);return`${n.isSame(za.default.tz(t),`day`)?`today`:`on ${n.format(`MMMM Do`)}`} at ${n.format(`HH:mm`)}`}function $a({onRevertToDraft:e}){return e?(0,Q.jsxs)(V,{children:[`Need to make a change?`,` `,(0,Q.jsx)(G,{className:`h-auto p-0`,"data-testid":ia,variant:`link`,onClick:e,children:`Unschedule and revert to draft →`})]}):null}function eo({post:e,state:t,captured:n,timezone:r,siteTitle:i,postCount:a,completedAt:o,note:s,onRevertToDraft:c}){let{count:l}=gn(t.fullRecipientFilter,{requestOptions:Z}),u=n.willOnlyEmail,d=n.isScheduled?t.scheduledAt:o??e.publishedAt??t.scheduledAt,f=u?`sent`:n.willEmail?`published and sent`:`published`,p=!!s;return(0,Q.jsxs)(J,{"data-testid":Fi,gap:`xl`,children:[s?(0,Q.jsx)(bn,{"data-testid":na,role:`status`,variant:`warning`,children:s}):null,(0,Q.jsx)(V,{as:`h2`,size:`3xl`,weight:`bold`,children:n.isScheduled?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{className:`text-state-success`,children:`All set!`}),` Your`,` `,u?`email`:e.displayName,` will be `,f,` `,Qa(d,r),`.`]}):(0,Q.jsxs)(Q.Fragment,{children:[u&&p?null:(0,Q.jsx)(`span`,{className:`text-state-success`,children:`Boom. It’s out there. `}),u?p?(0,Q.jsxs)(Q.Fragment,{children:[`Your `,e.displayName,` has been created.`]}):`Your email has been sent.`:e.displayName===`post`&&a?(0,Q.jsxs)(Q.Fragment,{children:[`That’s `,L(a),` `,a===1?`post`:`posts`,` published, keep going!`]}):(0,Q.jsxs)(Q.Fragment,{children:[`Your `,e.displayName,` has been published.`]})]})}),u?(0,Q.jsxs)(J,{gap:`md`,children:[p?null:(0,Q.jsxs)(V,{children:[`Your post `,n.isScheduled?`will be`:`was`,` sent to`,` `,(0,Q.jsx)(`strong`,{children:Wa({recipientType:on(t.recipientFilter),count:l})}),t.onlyDefaultNewsletter?null:(0,Q.jsxs)(Q.Fragment,{children:[` `,`of `,(0,Q.jsx)(`strong`,{children:t.newsletter?.name})]}),` `,`on `,Za(d,r),`.`]}),n.isScheduled?(0,Q.jsx)($a,{onRevertToDraft:c}):null]}):(0,Q.jsxs)(J,{gap:`md`,children:[(0,Q.jsx)(Ra,{post:e,siteTitle:i}),n.isScheduled?(0,Q.jsx)($a,{onRevertToDraft:c}):(0,Q.jsx)(V,{children:(0,Q.jsx)(`a`,{className:`underline`,"data-testid":ra,href:`#/analytics`,children:`Back to dashboard`})})]})]})}var to=1e3,no=15*1e3;function ro(e){return!!e&&e.includes(`partially`)}function io(e){let t=e?.error??null;return{kind:`failed`,error:t,partial:ro(t)}}function ao(e){let{reload:t,retry:n}=e,r=e.setTimeout??((e,t)=>setTimeout(e,t)),i=e.clearTimeout??(e=>clearTimeout(e)),a=null;function o(e,t){return new Promise(n=>{let i=!1,a=()=>{i||(i=!0,e.timer=null,e.release=null,n())};e.release=a;let o=r(a,t);i||(e.timer=o)})}function s(e){e.cancelled=!0,e.timer!==null&&(i(e.timer),e.timer=null),e.release?.(),e.release=null,e.settleCancelled()}function c(){a&&=(s(a.state),null)}async function l(e,{stopWhenUnpublished:n}){let r=0;for(;r<no;){if(await o(e,to),e.cancelled)return{kind:`cancelled`};r+=to;let i=await t(e.postId);if(e.cancelled)return{kind:`cancelled`};if(n&&i.status!==`sent`&&i.status!==`published`)return{kind:`unpublished`};if(!i.email)return{kind:`not-needed`};if(i.email.status===`submitted`)return{kind:`submitted`};if(i.email.status===`failed`)return io(i.email)}return{kind:`timeout`}}function u(e,t,n){if(a){if(a.state.operation===e&&a.state.postId===t)return a.promise;s(a.state),a=null}let r=()=>{},i=new Promise(e=>{r=()=>e({kind:`cancelled`})}),o={operation:e,postId:t,cancelled:!1,timer:null,release:null,settleCancelled:r},c=Promise.race([n(o),i]),l=()=>{a?.state===o&&(a=null)};return a={state:o,promise:c},c.then(l,l),c}return{confirm(e,t){return u(`confirm`,e,e=>t&&!t.email?Promise.resolve({kind:`not-needed`}):t?.email?.status===`submitted`?Promise.resolve({kind:`submitted`}):l(e,{stopWhenUnpublished:!0}))},retryAndConfirm(e,t){return u(`retry`,e,async e=>(await n(t),e.cancelled?{kind:`cancelled`}:l(e,{stopWhenUnpublished:!1})))},cancel:c}}function oo({post:e,emailErrorMessage:t,willOnlyEmail:n,mailgunConfigured:r,status:i,retryFailure:a,onRetry:o}){let s=ro(t);return(0,Q.jsxs)(J,{"data-testid":aa,gap:`xl`,children:[(0,Q.jsxs)(V,{as:`h2`,size:`3xl`,weight:`bold`,children:[(0,Q.jsx)(`span`,{className:`text-state-error`,children:`Uh-oh.`}),` `,n?`Your post has been created but the email failed to send.`:`Your ${e.displayName} has been published but the email failed to send.`]}),(0,Q.jsxs)(V,{children:[t,r?null:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`br`,{}),(0,Q.jsx)(`br`,{}),`If the error persists, please verify your email settings.`]})]}),a?(0,Q.jsx)(bn,{"data-testid":sa,role:`alert`,variant:`destructive`,children:a}):null,(0,Q.jsx)(`div`,{children:(0,Q.jsx)(G,{"data-testid":oa,disabled:i===`running`,size:`lg`,variant:`destructive`,onClick:o,children:i===`running`?`Sending`:s?`Send remaining emails`:`Retry sending email`})})]})}var so=U({config:U({hostSettings:U({billing:U({upgradeUrl:W().min(1).regex(/^(?:#?\/|https?:\/\/)/).optional()}).optional()}).optional()})});function co(e){return e.startsWith(`/`)?`#${e}`:e}function lo(e){let t=so.safeParse(e),n=t.success?t.data.config.hostSettings?.billing?.upgradeUrl:void 0;return co(n?n.replace(/^#/,``):te)}function uo({parts:e}){let{data:t}=P({defaultErrorHandler:!1,requestOptions:Z}),n=lo(t);return(0,Q.jsx)(Q.Fragment,{children:e.map(e=>e.kind===`upgrade`?(0,Q.jsx)(`a`,{className:`underline`,href:n,children:e.text},`${e.kind}:${e.text}`):(0,Q.jsx)(`span`,{children:e.text},`${e.kind}:${e.text}`))})}function fo({failure:e}){return e.parts?(0,Q.jsx)(uo,{parts:e.parts}):(0,Q.jsx)(Q.Fragment,{children:e.message})}function po({post:e,state:t,captured:n,timezone:r,status:i,failure:a,onConfirm:o,onBack:s}){let{count:c}=gn(t.fullRecipientFilter,{requestOptions:Z}),l=Ja(n),u=!t.onlyDefaultNewsletter&&t.newsletter?.name,d=Wa({recipientType:on(t.recipientFilter),count:c}),f={idle:Ka({publishType:l,isScheduled:t.isScheduled,scheduledAt:t.scheduledAt,displayName:e.displayName,timezone:r}),running:qa(l,t.isScheduled)};return(0,Q.jsxs)(J,{"data-testid":Pi,gap:`xl`,children:[(0,Q.jsxs)(J,{gap:`none`,children:[(0,Q.jsx)(V,{as:`h2`,className:`text-state-success`,size:`3xl`,weight:`bold`,children:`Ready, set, publish.`}),(0,Q.jsx)(V,{size:`3xl`,weight:`bold`,children:`Share it with the world.`})]}),(0,Q.jsxs)(V,{children:[t.isScheduled?(0,Q.jsxs)(Q.Fragment,{children:[`On `,(0,Q.jsx)(`strong`,{children:Za(t.scheduledAt,r)}),` your`]}):`Your`,` `,e.displayName,n.willPublish?(0,Q.jsxs)(Q.Fragment,{children:[` will be published on your site`,n.willEmail?`, and delivered to`:`.`]}):null,n.willEmail?(0,Q.jsxs)(Q.Fragment,{children:[n.willPublish?` `:` will be delivered to `,(0,Q.jsx)(`strong`,{children:d}),u?(0,Q.jsxs)(Q.Fragment,{children:[` `,`of `,(0,Q.jsx)(`strong`,{children:t.newsletter?.name})]}):null,n.willPublish?`.`:`,`,n.willPublish?null:(0,Q.jsxs)(Q.Fragment,{children:[` `,`and will `,(0,Q.jsx)(`strong`,{children:`not`}),` be published on your site.`]})]}):null]}),a?(0,Q.jsx)(bn,{"data-testid":Qi,role:`alert`,variant:`destructive`,children:(0,Q.jsx)(fo,{failure:a})}):null,(0,Q.jsxs)(J,{align:`start`,gap:`sm`,children:[(0,Q.jsx)(G,{"data-testid":Zi,disabled:i===`running`,size:`lg`,onClick:o,children:i===`running`?f.running:f.idle}),(0,Q.jsx)(G,{"data-testid":ea,disabled:i===`running`,size:`lg`,variant:`link`,onClick:s,children:`Back to settings`})]})]})}function mo({testId:e,title:t,children:n,onContinue:r,onBack:i}){return(0,Q.jsx)(Ft,{open:!0,onOpenChange:e=>!e&&i(),children:(0,Q.jsxs)(Xt,{"data-testid":e,children:[(0,Q.jsxs)(hn,{children:[(0,Q.jsx)(Lt,{children:t}),(0,Q.jsx)(Pt,{children:n})]}),(0,Q.jsxs)(Rt,{children:[(0,Q.jsx)(G,{variant:`outline`,onClick:r,children:`Continue to publish`}),(0,Q.jsx)(G,{onClick:i,children:`Back to editor`})]})]})})}var ho=U({tiers:ye(U({slug:W(),name:W(),active:_e()}))}),go=U({labels:ye(U({slug:W(),name:W()}))});function _o(e,t){let n=ho.safeParse(e),r=go.safeParse(t);return{tiers:n.success?n.data.tiers:[],labels:r.success?r.data.labels:[]}}function vo({filter:e}){let{count:t}=gn(e,{requestOptions:Z});return t===null?null:(0,Q.jsxs)(V,{as:`span`,size:`sm`,tone:`secondary`,children:[`(`,L(t),`)`]})}function yo({filter:e,newsletterRecipientFilter:t,paidAvailable:n,segmentOptions:r,onChange:i}){let a=(0,X.useId)(),o=dn(e),[s,c]=(0,X.useState)(!1),[l,u]=(0,X.useState)(null),d=s||o.specific.length>0,f=(e,t)=>{i(un({base:e,specific:t},{paidAvailable:n}))},p=e=>{let t=o.base.includes(e)?o.base.filter(t=>t!==e):[...o.base,e];f(t,o.specific)},m=()=>{if(s&&o.specific.length===0){c(!1);return}if(c(!1),d){u(o.specific),f(o.base,[]);return}if(l){f(o.base,l);return}c(!0)},h=e=>{let t=o.specific.includes(e)?o.specific.filter(t=>t!==e):[...o.specific,e];t.length===0&&(u(null),c(!0)),f(o.base,t)},g=e=>t?`${t}+${e}`:e;return(0,Q.jsxs)(J,{gap:`md`,children:[(0,Q.jsxs)(J,{gap:`sm`,children:[(0,Q.jsxs)(q,{gap:`sm`,children:[(0,Q.jsx)(ct,{checked:o.free,"data-testid":Wi,id:`${a}-free`,onCheckedChange:()=>p(vn)}),(0,Q.jsxs)(K,{htmlFor:`${a}-free`,children:[`Free `,(0,Q.jsx)(vo,{filter:g(vn)})]})]}),n?(0,Q.jsxs)(q,{gap:`sm`,children:[(0,Q.jsx)(ct,{checked:o.paid,"data-testid":Gi,id:`${a}-paid`,onCheckedChange:()=>p(rn)}),(0,Q.jsxs)(K,{htmlFor:`${a}-paid`,children:[`Paid `,(0,Q.jsx)(vo,{filter:g(rn)})]})]}):null,r.length>0?(0,Q.jsxs)(q,{gap:`sm`,children:[(0,Q.jsx)(ct,{checked:d,"data-testid":Ki,id:`${a}-specific`,onCheckedChange:m}),(0,Q.jsx)(K,{htmlFor:`${a}-specific`,children:`Specific people`})]}):null]}),d?(0,Q.jsxs)(J,{"data-testid":qi,gap:`sm`,children:[(0,Q.jsx)(V,{size:`sm`,weight:`medium`,children:`Selection`}),r.map(e=>(0,Q.jsxs)(q,{gap:`sm`,children:[(0,Q.jsx)(ct,{checked:o.specific.includes(e.segment),id:`${a}-${e.segment}`,onCheckedChange:()=>h(e.segment)}),(0,Q.jsx)(K,{htmlFor:`${a}-${e.segment}`,children:e.name})]},e.segment))]}):null]})}var bo=he({settingsData:U({settings:ye(U({key:W(),value:me()}))}),configData:U({config:U({stripeDirect:_e()})})});function xo({state:e,onSetNewsletter:t,onSetRecipientFilter:n}){let r=(0,X.useId)(),{data:i}=Sa(),{data:a}=P({defaultErrorHandler:!1,requestOptions:Z}),o=Mn({defaultErrorHandler:!1,requestOptions:Z,searchParams:ya}),s=Ln({defaultErrorHandler:!1,requestOptions:Z,searchParams:{limit:`all`}}),{data:c,fetchNextPage:l,hasNextPage:u,isError:d,isFetchingNextPage:f}=s,{data:p,fetchNextPage:m,hasNextPage:h,isError:g,isFetchingNextPage:_}=o;(0,X.useEffect)(()=>{u&&!f&&!d&&l()},[l,u,f,d]),(0,X.useEffect)(()=>{h&&!_&&!g&&m()},[m,h,_,g]);let v=!s.isLoading&&!f&&(!u||d),y=!o.isLoading&&!_&&(!h||g),b=bo.safeParse({settingsData:i,configData:a}),x=b.success?(()=>{let{settings:e,config:t}={settings:b.data.settingsData.settings,config:b.data.configData.config},n=t=>e.some(e=>e.key===t&&!!e.value),r=n(`stripe_secret_key`)&&n(`stripe_publishable_key`),i=n(`stripe_connect_secret_key`)&&n(`stripe_connect_publishable_key`);return t.stripeDirect?r:i||r})():!1,S=(0,X.useMemo)(()=>{if(!v||!y)return[];let{tiers:e,labels:t}=_o(g?void 0:p,d?void 0:c);return[...e.length>1?[...e].sort((e,t)=>Number(t.active)-Number(e.active)).map(e=>({segment:`tier:${e.slug}`,name:e.name})):[],...t.map(e=>({segment:`label:${e.slug}`,name:e.name}))]},[c,d,v,p,g,y]),C=e.newsletter?an({slug:e.newsletter.slug,visibility:e.newsletter.visibility}):null;return(0,Q.jsxs)(J,{gap:`lg`,children:[(0,Q.jsx)(yo,{filter:e.recipientFilter,newsletterRecipientFilter:C,paidAvailable:x,segmentOptions:S,onChange:n}),e.newsletters.length>1?(0,Q.jsxs)(J,{gap:`sm`,children:[(0,Q.jsx)(K,{htmlFor:r,children:`Newsletter`}),(0,Q.jsxs)(nt,{value:e.newsletter?.slug??``,onValueChange:n=>t(e.newsletters.find(e=>e.slug===n)??null),children:[(0,Q.jsx)($e,{"data-testid":Ui,id:r,children:(0,Q.jsx)(tt,{placeholder:`Select a newsletter`})}),(0,Q.jsx)(Qe,{children:e.newsletters.map(e=>(0,Q.jsx)(Ze,{value:e.slug,children:e.name??e.slug},e.slug))})]})]}):null]})}var So=`YYYY-MM-DD`,Co=`HH:mm`;function wo({value:e,timezone:t,minDate:n,maxDate:r,disabled:i=!1,dateLabel:a,timeLabel:o,dateTestId:s,timeTestId:c,invalid:l=!1,describedBy:u,labelledBy:d,onChange:f}){let p=za.default.tz(e,t),[m,h]=(0,X.useState)(null),[g,_]=(0,X.useState)(!1),v=e=>{if(!e)return;let t=p.clone().set({year:e.getFullYear(),month:e.getMonth(),date:e.getDate(),second:0,millisecond:0});_(!1),t.isSame(p,`minute`)||f(t.toDate())},y=e=>{if(m===null)return;let t=/^\d:\d\d$/.test(e)?`0${e}`:e,[n,r]=t.split(`:`).map(e=>parseInt(e,10));h(null),!(!/^\d\d:\d\d$/.test(t)||n>23||r>59||t===p.format(Co))&&f(p.clone().set({hour:n,minute:r,second:0,millisecond:0}).toDate())},b=l?{"aria-invalid":!0}:{},x=u?{"aria-describedby":u}:{};return(0,Q.jsxs)(q,{"aria-labelledby":d,gap:`sm`,role:d?`group`:void 0,children:[(0,Q.jsxs)(Bt,{open:g&&!i,onOpenChange:_,children:[(0,Q.jsx)(Yt,{asChild:!0,children:(0,Q.jsx)(jt,{"aria-label":a,"data-testid":s,disabled:i,value:p.format(So),readOnly:!0,...b,...x})}),(0,Q.jsx)(At,{className:`w-auto p-0`,children:(0,Q.jsx)(ot,{captionLayout:`dropdown-months`,defaultMonth:Ya(e,t),disabled:[...n?[{before:Ya(n,t)}]:[],...r?[{after:Ya(r,t)}]:[]],mode:`single`,selected:Ya(e,t),onSelect:v})})]}),(0,Q.jsx)(jt,{"aria-label":o,"data-testid":c,disabled:i,value:m??p.format(Co),onBlur:e=>y(e.target.value),onChange:e=>h(e.target.value),...b,...x}),(0,Q.jsxs)(q,{className:`shrink-0`,gap:`xs`,children:[(0,Q.jsx)(Ae,{className:`size-4`}),(0,Q.jsx)(V,{size:`sm`,tone:`secondary`,children:p.format(`z`)})]})]})}function To({state:e,timezone:t,onToggleScheduled:n,onSetScheduledAt:r}){let i=(0,X.useId)();return(0,Q.jsxs)(J,{gap:`md`,children:[(0,Q.jsxs)(bt,{value:e.isScheduled?`schedule`:`now`,onValueChange:e=>n(e===`schedule`),children:[(0,Q.jsxs)(q,{gap:`sm`,children:[(0,Q.jsx)(yt,{id:`${i}-now`,value:`now`}),(0,Q.jsx)(K,{htmlFor:`${i}-now`,children:`Set it live now`})]}),(0,Q.jsxs)(q,{gap:`sm`,children:[(0,Q.jsx)(yt,{id:`${i}-schedule`,value:`schedule`}),(0,Q.jsx)(K,{htmlFor:`${i}-schedule`,children:`Schedule for later`})]})]}),e.isScheduled?(0,Q.jsx)(wo,{dateLabel:`Publish date`,dateTestId:Ji,minDate:e.minScheduledAt,timeLabel:`Publish time`,timeTestId:Yi,timezone:t,value:e.scheduledAt,onChange:r}):null]})}function Eo({testId:e,icon:t,title:n,open:r=!1,disabled:i=!1,onToggle:a,children:o,footer:s}){let c=!i&&!!a;return(0,Q.jsxs)(J,{className:`border-b border-border-default last:border-b-0`,"data-testid":e,gap:`none`,children:[(0,Q.jsxs)(`button`,{"aria-expanded":c?r:void 0,className:z(`flex w-full items-center gap-3 px-1 py-4 text-left`,i&&`cursor-default text-foreground/40`),disabled:!c,type:`button`,onClick:a,children:[(0,Q.jsx)(`span`,{className:`shrink-0`,children:t}),(0,Q.jsx)(V,{className:`grow`,weight:`medium`,children:n}),(0,Q.jsx)(He,{className:z(`size-4 shrink-0 transition-transform`,r&&`rotate-180`)})]}),r&&o?(0,Q.jsx)(`div`,{className:`pb-5`,children:o}):null,s]})}function Do({children:e,testId:t}){return(0,Q.jsx)(q,{align:`start`,className:`mb-4 rounded-md bg-surface-elevated p-3`,"data-testid":t,gap:`sm`,children:(0,Q.jsx)(V,{size:`sm`,children:e})})}var Oo=`https://docs.ghost.org/newsletters/#bulk-email-configuration`;function ko({state:e}){let t=e.emailDisabledReason;return t===`sending-limit`||t===`email-verification`?(0,Q.jsx)(V,{"data-testid":Vi,size:`sm`,children:e.emailBlock?.message}):t===`no-members`?(0,Q.jsxs)(V,{"data-testid":Vi,size:`sm`,children:[(0,Q.jsx)(`a`,{className:`underline`,href:`#/members`,children:`Add members`}),` `,`to start sending newsletters!`]}):t===`no-mailgun`?(0,Q.jsxs)(V,{"data-testid":Vi,size:`sm`,children:[`Set up`,` `,(0,Q.jsx)(`a`,{className:`underline`,href:Oo,rel:`noreferrer noopener`,target:`_blank`,children:`Mailgun`}),` `,`to start sending newsletters!`]}):null}function Ao({state:e,onChange:t}){return(0,Q.jsxs)(J,{gap:`md`,children:[(0,Q.jsx)(bt,{value:e.publishType,onValueChange:e=>t(e),children:e.publishTypeOptions.map(e=>(0,Q.jsxs)(q,{gap:`sm`,children:[(0,Q.jsx)(yt,{disabled:e.disabled,id:`publish-type-${e.value}`,value:e.value}),(0,Q.jsx)(K,{htmlFor:`publish-type-${e.value}`,children:e.label})]},e.value))}),(0,Q.jsx)(ko,{state:e})]})}function jo(e){return e.charAt(0).toUpperCase()+e.slice(1)}function Mo({state:e}){let{count:t}=gn(e.fullRecipientFilter,{requestOptions:Z});return e.recipientFilter?(0,Q.jsx)(Q.Fragment,{children:Ua({recipientType:on(e.recipientFilter),count:t,newsletterName:e.onlyDefaultNewsletter?null:e.newsletter?.name??null})}):(0,Q.jsx)(Q.Fragment,{children:`Not sent as newsletter`})}function No({post:e,state:t,timezone:n,emailDisabledInSettings:r,limitsChecked:i,limitsFailure:a,onSetPublishType:o,onSetNewsletter:s,onSetRecipientFilter:c,onToggleScheduled:l,onSetScheduledAt:u,onContinue:d,onRetryLimits:f}){let[p,m]=(0,X.useState)(null),h=e=>()=>m(t=>t===e?null:e),g=t.publishBlock!==null,_=t.publishTypeOptions.find(e=>e.value===t.publishType),v=e.email,y=on(mn(e.emailSegment));return(0,Q.jsxs)(J,{"data-testid":Ni,gap:`xl`,children:[(0,Q.jsxs)(J,{gap:`none`,children:[(0,Q.jsx)(V,{as:`h2`,className:`text-state-success`,size:`3xl`,weight:`bold`,children:`Ready, set, publish.`}),(0,Q.jsx)(V,{size:`3xl`,weight:`bold`,children:`Share it with the world.`})]}),a?(0,Q.jsx)(bn,{"data-testid":$i,role:`alert`,variant:`destructive`,children:(0,Q.jsxs)(J,{align:`start`,gap:`sm`,children:[(0,Q.jsx)(V,{children:a}),(0,Q.jsx)(G,{size:`sm`,variant:`outline`,onClick:f,children:`Try again`})]})}):null,(0,Q.jsxs)(J,{gap:`none`,children:[(0,Q.jsx)(Eo,{disabled:t.emailUnavailable||g,footer:t.willEmail?(0,Q.jsx)(`div`,{"data-testid":Hi,hidden:!0}):null,icon:(0,Q.jsx)(Ie,{className:`size-4`}),open:p===`publishType`,testId:Li,title:t.emailUnavailable||g?`Publish on site`:_?.display??`Publish`,onToggle:h(`publishType`),children:(0,Q.jsx)(Ao,{state:t,onChange:o})}),t.publishBlock?(0,Q.jsx)(Do,{children:(0,Q.jsx)(uo,{parts:t.publishBlock.parts})}):null,t.emailUnavailable?null:(0,Q.jsx)(Eo,{disabled:t.publishType===`publish`||g,icon:(0,Q.jsx)(Ve,{className:`size-4`}),open:p===`emailRecipients`,testId:Ri,title:t.publishType===`publish`||g?`Not sent as newsletter`:(0,Q.jsx)(Mo,{state:t}),onToggle:h(`emailRecipients`),children:(0,Q.jsx)(xo,{state:t,onSetNewsletter:s,onSetRecipientFilter:c})}),v&&!r?(0,Q.jsx)(Eo,{icon:(0,Q.jsx)(Ve,{className:`size-4`}),testId:Bi,title:[v.status===`failed`?`Retry sending to`:`Already sent to`,L(v.email_count??0),y===`all`||y===`none`?null:y,v.email_count===1?`subscriber`:`subscribers`,t.onlyDefaultNewsletter||!e.newsletterName?null:`of ${e.newsletterName}`].filter(Boolean).join(` `),disabled:!0}):null,(0,Q.jsx)(Eo,{disabled:g,icon:(0,Q.jsx)(Ae,{className:`size-4`}),open:p===`publishAt`,testId:zi,title:t.isScheduled?jo(Xa(t.scheduledAt)):`Right now`,onToggle:h(`publishAt`),children:(0,Q.jsx)(To,{state:t,timezone:n,onSetScheduledAt:u,onToggleScheduled:l})})]}),g?null:(0,Q.jsx)(`div`,{children:(0,Q.jsx)(G,{"data-testid":Xi,disabled:!i||!t.canPublish,size:`lg`,onClick:d,children:`Continue, final review →`})})]})}var Po=U({type:W(),text:me().optional(),children:ye(me()).optional()}),Fo=U({root:U({children:ye(me())})});function Io(e){if(!e)return null;try{let t=typeof e==`string`?JSON.parse(e):e,n=Fo.safeParse(t);return n.success?n.data:null}catch{return null}}function Lo(e){let t=Po.safeParse(e);if(!t.success)return!1;let n=t.data;return n.type===`paywall`||n.type===`linebreak`?!1:typeof n.text==`string`?!!n.text.trim():n.type===`text`||n.type===`extended-text`?!1:Array.isArray(n.children)?n.children.some(Lo):n.type!==`paragraph`&&n.type!==`root`}function Ro(e){let t=Io(e.lexical)?.root?.children;if(!t)return null;let n=t.findIndex(e=>{let t=Po.safeParse(e);return t.success&&t.data.type===`paywall`});return n===-1?null:e.visibility===`public`?`public-access`:t.slice(0,n).some(Lo)?t.slice(n+1).some(Lo)?null:`no-content-after`:`no-content-before`}var zo={"no-content-before":{title:`Nothing above the public preview`,body:`Add some content above the public preview so everyone has something to read before the paywall.`},"no-content-after":{title:`Nothing below the public preview`,body:`Add some content below the public preview for subscribers who have access to the full post.`},"public-access":{title:`Public preview has no effect`,body:`This post is public, so everyone can read the full post and the public preview won’t have any effect.`}},Bo=U({id:W(),opened_count:xe().int().nonnegative(),email_count:xe().int().nonnegative(),status:be([`pending`,`submitting`,`submitted`,`failed`]),error:W().nullable().optional(),track_opens:_e().optional(),track_clicks:_e().optional()}),Vo=U({posts:ye(U({status:be([`published`,`draft`,`scheduled`,`sent`]),email:Bo.nullable().optional()})).min(1)}),Ho=U({meta:U({pagination:U({total:xe().int().nonnegative()})})}),Uo=5*1e3,Wo=600*1e3,Go=/please upgrade/i;function Ko(e){return new Date(e-e%1e3).toISOString()}function qo(e,t){return Date.parse(e)<Date.parse(t)}function Jo(e){return e.filter(e=>e.status===`active`).sort((e,t)=>(e.sortOrder??0)-(t.sortOrder??0))}function Yo(e){return e.map(e=>`tier:${e.slug}`).join(`,`)||null}function Xo(e,t){let n=t.editorDefaultEmailRecipients,r=mn(t.editorDefaultEmailRecipientsFilter),i=n===`filter`&&r===null;if(n===`disabled`)return null;if(n===`visibility`||i)switch(e.visibility){case`public`:case`members`:return fn;case`paid`:return rn;case`tiers`:return Yo(e.tiers??[]);default:return e.visibility??null}return r}function Zo(e,t){return e.isPage?`page`:e.email?`already-emailed`:t.editorDefaultEmailRecipients===`disabled`||!t.membersEnabled?`disabled-in-settings`:null}function Qo({mailgunConfigured:e,memberCount:t},n,r){return e?t===0?`no-members`:r?n?.kind??null:`no-newsletter`:`no-mailgun`}function $o(e,t,{emailUnavailable:n,emailDisabled:r}){let i=`publish+send`;return(n||r)&&(i=`publish`),t.editorDefaultEmailRecipients===`filter`&&mn(t.editorDefaultEmailRecipientsFilter)===null&&(i=`publish`),e.status===`sent`&&(i=`send`),i}function es(e){let t=Go.exec(e);if(!t)return[{text:e,kind:`text`}];let n=[],r=e.slice(0,t.index),i=e.slice(t.index+t[0].length);return r&&n.push({text:r,kind:`text`}),n.push({text:t[0],kind:`upgrade`}),i&&n.push({text:i,kind:`text`}),n}function ts(e){return e instanceof Error?e.message:String(e)}function ns({post:e,site:t,user:n,limits:r={},now:i=()=>new Date}){let a=Jo(t.newsletters),o=a[0]??null,s=e.status===`draft`,c=s&&e.email?.status===`failed`,l=e.newsletter?t.newsletters.find(t=>t.slug===e.newsletter)??(c?{slug:e.newsletter}:null):null,u=l&&(l.status===`active`||c)?l:o,d=n.isAdmin?t.memberCount:null,f=Zo(e,t),p=f!==null,m=null,h=null,g=u,_=()=>Qo({...t,memberCount:d},m,g!==null),v=()=>_()!==null,y=()=>Ko(i().getTime()+Uo),b=()=>Ko(i().getTime()+Wo),x=$o(e,t,{emailUnavailable:p,emailDisabled:v()}),S=!1,C=!1,w=y(),T=!1,E,D=()=>E===void 0?e.newsletter&&mn(e.emailSegment)||Xo(e,t)||null:E,O={publishType:x,isScheduled:C,scheduledAt:w,newsletterSlug:g?.slug??null,recipientFilter:D()},k=()=>g?yn(an({slug:g.slug,visibility:g.visibility}),D()):null,A=()=>{if(!g||v()||p&&!c)return!1;let t=!!e.email,n=e.email?.status===`failed`;return x!==`publish`&&!!D()&&s&&!t||s&&t&&n},j=()=>{let e=v();return[{value:`publish+send`,label:`Publish and email`,display:`Publish and email`,disabled:e},{value:`publish`,label:`Publish only`,display:`Publish`,disabled:!1},{value:`send`,label:`Email only`,display:`Email`,disabled:e}]},ee=()=>x!==O.publishType||C!==O.isScheduled||(C||T)&&w!==O.scheduledAt||(g?.slug??null)!==O.newsletterSlug||D()!==O.recipientFilter,M=()=>{let e=j(),t=A();return{publishType:x,publishTypeOptions:e,availablePublishTypes:p?[`publish`]:e.filter(e=>!e.disabled).map(e=>e.value),isScheduled:C,scheduledAt:w,minScheduledAt:y(),newsletter:g,newsletters:a,onlyDefaultNewsletter:a.length===1,recipientFilter:D(),fullRecipientFilter:k(),willEmail:t,willEmailImmediately:t&&!C,willPublish:x!==`send`,willOnlyEmail:x===`send`,emailUnavailable:p,emailUnavailableReason:f,emailDisabled:v(),emailDisabledReason:_(),emailBlock:m,publishBlock:h,canPublish:s&&(x!==`send`||t),isDirty:ee()}},N=e=>{let t=e instanceof Date?e.getTime():Date.parse(e);if(Number.isNaN(t))return;let n=Ko(t),r=y();w=qo(n,r)?r:n,T=!0},P=async()=>{await r.refreshSettings?.();try{n.isAuthorOrContributor||await r.checkSendingLimit?.();let e=r.getEmailVerification?.();e?.required&&(m={kind:`email-verification`,message:e.message||`Email sending is temporarily disabled because your account is currently in review. You should have an email about this from us already, but you can also reach us any time at support@ghost.org.`})}catch(e){m={kind:`sending-limit`,message:ts(e)}}},te=async()=>{if(n.isAdmin)try{await r.checkPublishingLimit?.()}catch(e){let t=ts(e);h={kind:`host-limit`,message:t,parts:es(t)}}};return{getState:M,setPublishType(e){x=e,S=!0},setIsScheduled(e){C=e===void 0?!C:e,C&&qo(w,b())&&(w=b())},setScheduledAt:N,resetPastScheduledAt(){qo(w,y())&&(C=!1)},setNewsletter(e){g=e},setRecipientFilter(e){E=mn(e)},reset(){x=O.publishType,S=!1,C=O.isScheduled,w=y(),T=!1,g=u,E=void 0},async checkLimits(){m=null,h=null;let[n]=await Promise.allSettled([P(),te()]);if((!S||v())&&(x=$o(e,t,{emailUnavailable:p,emailDisabled:v()}),O={...O,publishType:x}),n.status===`rejected`)throw n.reason;return{emailBlock:m,publishBlock:h}},toDispatch(){if(!s)return null;let e=A();if(x===`send`&&!e)return null;let t={};if(e&&(t.emailOnly=x===`send`,!c)){let e=D();g&&(t.newsletter=g.slug),e&&(t.emailSegment=e)}return C?{kind:`schedule`,options:{...t,publishedAt:w}}:{kind:`publish`,options:t}},toRevertDispatch(){return{kind:`revert`}}}}var rs=`Unable to connect, please check your internet connection and try again.`,is=`Someone else has edited this post since you opened it. Reload the editor to get their changes before publishing.`,as=`Your session expired. Sign in again in a new tab, then try publishing again.`,os=`Unknown Error`,ss=`This post can no longer be published from here. Reload the editor.`;function cs(e){return e instanceof Error&&e.message?{message:e.message}:typeof e==`string`&&e?{message:e}:{message:os}}function ls(e){if(e.kind===`saved`)return null;if(e.kind===`needs-retry`)return{message:as};if(e.kind===`dropped`||e.kind===`superseded`)return{message:ss};let{error:t}=e;switch(t.kind){case`validation`:return{message:`Validation failed: ${t.message||`Unknown Error`}`};case`transport`:return{message:rs};case`conflict`:return{message:is};case`session-invalid`:return{message:as};case`host-limit`:return{message:t.message||`Unknown Error`,parts:es(t.message||`Unknown Error`)};default:return{message:t.message||`Unknown Error`}}}var us={published:`ghost-last-published-post`,scheduled:`ghost-last-scheduled-post`};function ds({postId:e,displayName:t,isScheduled:n}){try{localStorage.setItem(n?us.scheduled:us.published,JSON.stringify({id:e,type:t}))}catch{}}var fs=`Unknown error`,ps=`Unknown Error occurred when attempting to resend`,ms=`We couldn’t confirm the newsletter was sent. Check the post’s email status from the posts list.`;function hs(e){return e.displayName===`post`&&(e.status===`published`||e.status===`sent`)&&e.email?.status===`failed`?e.email?.error??fs:null}function gs({post:e,site:t,user:n,limits:r,now:i,dispatch:a,onBeforePublish:o,onCompleted:s}){let c=m(),{mutateAsync:l}=Gn(),[,u]=(0,X.useReducer)(e=>e+1,0),d=(0,X.useRef)({post:e,site:t,user:n,limits:r,now:i});d.current={post:e,site:t,user:n,limits:r,now:i};let p=(0,X.useMemo)(()=>{let e=d.current;return ns({post:{...e.post,isPage:e.post.displayName===`page`},site:e.site,user:e.user,limits:e.limits,now:e.now})},[e.id]),h=(0,X.useMemo)(()=>({setPublishType:e=>{p.setPublishType(e),u()},setNewsletter:e=>{p.setNewsletter(e),u()},setRecipientFilter:e=>{p.setRecipientFilter(e),u()},setScheduledAt:e=>{p.setScheduledAt(e),u()},setIsScheduled:e=>{p.setIsScheduled(e),u()}}),[p]),g=(0,X.useRef)(e.email?.id??null),_=(0,X.useMemo)(()=>ao({reload:async e=>{let t=Vo.parse(await c(f(`/posts/${e}/`,{include:`email`}),Z)).posts.at(0);if(!t)throw Error(`The published post was missing from its reload response.`);return g.current=t.email?.id??g.current,{status:t.status,email:t.email??null}},retry:async e=>{await l({id:e,sessionExpiryRedirect:!1})}}),[c,l]),[v,y]=(0,X.useState)(()=>hs(e)?`email-error`:`options`),[b,x]=(0,X.useState)(`idle`),[S,C]=(0,X.useState)(null),[w,T]=(0,X.useState)(()=>hs(e)),[E,D]=(0,X.useState)(null),[O,k]=(0,X.useState)(null),[A,j]=(0,X.useState)(null),[ee,M]=(0,X.useState)(null),[N,P]=(0,X.useState)(null),[te,ne]=(0,X.useState)(`idle`),[re,F]=(0,X.useState)(null),[I,ie]=(0,X.useState)(()=>{if(hs(e))return{willPublish:e.status===`published`&&e.emailOnly!==!0,willEmail:!0,willOnlyEmail:e.emailOnly===!0||e.status===`sent`,isScheduled:!1};let t=p.getState();return{willPublish:t.willPublish,willEmail:t.willEmail,willOnlyEmail:t.willOnlyEmail,isScheduled:t.isScheduled}}),L=(0,X.useRef)(!0),R=(0,X.useRef)(!1),z=(0,X.useRef)(!1),ae=(0,X.useRef)(!1),B=(0,X.useRef)(0),oe=(0,X.useRef)(null),se=(0,X.useCallback)(async()=>{let e=B.current+1;B.current=e,j(null),M(null);let t=oe.current,n=t?.machine===p?t:{machine:p,promise:p.checkLimits().then(()=>void 0)};oe.current=n;try{await n.promise}catch(t){if(L.current&&e===B.current){let{message:e}=cs(t);M(`Couldn’t check publishing limits. ${e}`),u()}return}finally{oe.current===n&&(oe.current=null)}L.current&&e===B.current&&(j(p),u())},[p]);(0,X.useEffect)(()=>(p.resetPastScheduledAt(),se(),()=>{B.current+=1}),[se,p]);let V=(0,X.useRef)(_);V.current=_;let ce=(0,X.useCallback)(()=>{L.current=!1,V.current.cancel(),B.current+=1},[]);(0,X.useEffect)(()=>(L.current=!0,ce),[ce]);let H=p.getState(),le=A===p,ue=(0,X.useCallback)(async()=>{if(e.displayName===`page`||H.isScheduled||!H.willPublish){D(null);return}try{let t=Ho.parse(await c(f(`/posts/`,{filter:`status:published+id:-'${e.id}'`,limit:`1`}),Z));L.current&&D(t.meta.pagination.total+1)}catch{L.current&&D(null)}},[c,e.displayName,e.id,H.isScheduled,H.willPublish]),de=(0,X.useCallback)(()=>{!le||!H.canPublish||(ie({willPublish:H.willPublish,willEmail:H.willEmail,willOnlyEmail:H.willOnlyEmail,isScheduled:H.isScheduled}),C(null),x(`idle`),y(`confirm`),ue())},[ue,le,H]),fe=(0,X.useCallback)(()=>{z.current||(y(`options`),x(`idle`))},[]),pe=(0,X.useCallback)((t,n)=>{if(!(!L.current||R.current)){R.current=!0,T(null),x(`success`),y(`complete`),k(new Date().toISOString());try{ds({postId:e.id,displayName:e.displayName,isScheduled:t})}finally{s?.({postId:e.id,isScheduled:t,hasEmail:n})}}},[s,e.displayName,e.id]),me=(0,X.useCallback)((e,t)=>{if(L.current){if(e.kind===`failed`){T(e.error??fs),y(`email-error`),x(`idle`);return}if(e.kind===`cancelled`){x(`idle`);return}e.kind!==`submitted`&&P(ms),pe(t,e.kind!==`not-needed`)}},[pe]),he=(0,X.useCallback)(async()=>{if(z.current)return;z.current=!0,C(null),x(`running`);let t=p.toDispatch();if(!t){z.current=!1,C({message:`This post can no longer be published from here. Reload the editor.`}),x(`failure`);return}let{isScheduled:n,willEmailImmediately:r,willEmail:i}=H;try{await o?.()}catch(e){L.current&&(z.current=!1,C(cs(e)),x(`failure`));return}if(!L.current)return;let s;try{s=await a(t)}catch(e){L.current&&(z.current=!1,C(cs(e)),x(`failure`));return}if(!L.current)return;let c=ls(s);if(c){z.current=!1,C(c),x(`failure`),y(`confirm`);return}if(r){let t;try{t=await _.confirm(e.id)}catch{if(!L.current)return;P(ms),pe(n,!0);return}me(t,n);return}pe(n,i)},[me,pe,_,a,p,o,e.id,H]),ge=(0,X.useCallback)(async()=>{let t=g.current;if(!ae.current){if(!t){F(ps),ne(`failure`);return}ae.current=!0,F(null),ne(`running`);try{let n=await _.retryAndConfirm(e.id,t);if(!L.current)return;if(n.kind===`failed`||n.kind===`cancelled`){ae.current=!1,n.kind===`failed`&&T(n.error??fs),ne(`idle`);return}n.kind!==`submitted`&&P(ms),ne(`success`),pe(!1,n.kind!==`not-needed`)}catch(e){L.current&&(ae.current=!1,F(e instanceof Error?e.message:ps),ne(`failure`))}}},[pe,_,e.id]);return{...h,state:H,step:v,confirmStatus:b,failure:S,emailErrorMessage:w,postCount:E,completedAt:O,limitsChecked:le,limitsFailure:ee,emailNote:N,captured:I,retryLimits:()=>void se(),toConfirm:de,toOptions:fe,confirmPublish:he,retryEmail:ge,retryStatus:te,retryFailure:re,cancel:ce}}function _s({post:e,...t}){return(0,Q.jsx)(vs,{post:e,...t},e.id)}function vs({post:e,site:t,user:n,limits:r,now:i,timezone:a,siteTitle:o,tkCount:s=0,paywallImprovements:c=!1,dispatch:l,onBeforePublish:u,onClose:d,onPreview:f,onRevertToDraft:p,onCompleted:m}){let[h,g]=(0,X.useState)(!1),_=c?Ro(e):null;return!h&&s>0?(0,Q.jsxs)(mo,{testId:ca,title:`Forget something?`,onBack:d,onContinue:()=>g(!0),children:[`Looks like you’ve got some unfinished business. There `,s===1?`is`:`are`,` `,(0,Q.jsxs)(`strong`,{children:[L(s),` TK `,s===1?`reminder`:`reminders`]}),` `,`left in your post.`]}):!h&&_?(0,Q.jsx)(mo,{testId:la,title:zo[_].title,onBack:d,onContinue:()=>g(!0),children:zo[_].body}):(0,Q.jsx)(ys,{dispatch:l,limits:r,now:i,post:e,site:t,siteTitle:o,timezone:a,user:n,onBeforePublish:u,onClose:d,onCompleted:m,onPreview:f,onRevertToDraft:p})}function ys({post:e,site:t,user:n,limits:r,now:i,timezone:a,siteTitle:o,dispatch:s,onBeforePublish:c,onClose:l,onPreview:u,onRevertToDraft:d,onCompleted:f}){let p=gs({post:e,site:t,user:n,limits:r,now:i,dispatch:s,onBeforePublish:c,onCompleted:f}),{state:m,step:h}=p,g=()=>{p.cancel(),l()};return(0,Q.jsx)(Ea,{"data-testid":Mi,modal:!1,title:`Publish`,open:!0,onOpenChange:e=>!e&&g(),children:(0,Q.jsxs)(J,{className:`mx-auto w-full max-w-2xl px-6 pb-16`,gap:`xl`,children:[(0,Q.jsx)(q,{className:`py-4`,justify:`end`,children:h===`complete`?null:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(G,{variant:`outline`,onClick:g,children:`Close`}),p.emailErrorMessage||!u?null:(0,Q.jsx)(G,{"data-testid":Ii,variant:`outline`,onClick:u,children:`Preview`})]})}),h===`email-error`&&p.emailErrorMessage?(0,Q.jsx)(oo,{emailErrorMessage:p.emailErrorMessage,mailgunConfigured:t.mailgunConfigured,post:e,retryFailure:p.retryFailure,status:p.retryStatus,willOnlyEmail:m.willOnlyEmail,onRetry:()=>void p.retryEmail()}):h===`complete`?(0,Q.jsx)(eo,{captured:p.captured,completedAt:p.completedAt,note:p.emailNote,post:e,postCount:p.postCount,siteTitle:o,state:m,timezone:a,onRevertToDraft:d}):h===`confirm`?(0,Q.jsx)(po,{captured:p.captured,failure:p.failure,post:e,state:m,status:p.confirmStatus,timezone:a,onBack:p.toOptions,onConfirm:()=>void p.confirmPublish()}):(0,Q.jsx)(No,{emailDisabledInSettings:t.editorDefaultEmailRecipients===`disabled`,limitsChecked:p.limitsChecked,limitsFailure:p.limitsFailure,post:e,state:m,timezone:a,onContinue:p.toConfirm,onRetryLimits:p.retryLimits,onSetNewsletter:p.setNewsletter,onSetPublishType:p.setPublishType,onSetRecipientFilter:p.setRecipientFilter,onSetScheduledAt:p.setScheduledAt,onToggleScheduled:p.setIsScheduled})]})})}function bs(e){return e==null?`subscribers`:`${L(e)} ${e===1?`subscriber`:`subscribers`}`}function xs({post:e,...t}){return(0,Q.jsx)(Ss,{post:e,...t},e.id)}function Ss({post:e,site:t,user:n,timezone:r,dispatch:i,onClose:a,onReverted:o}){let s=(0,X.useRef)({post:e,site:t,user:n});s.current={post:e,site:t,user:n};let c=(0,X.useMemo)(()=>{let e=s.current;return ns({post:{...e.post,isPage:e.post.displayName===`page`},site:e.site,user:e.user})},[e.id]),l=c.getState(),u=e.status===`scheduled`,d=e.status===`sent`,f=e.emailOnly===!0||d,p=u&&!!e.newsletter&&!e.email,m=e.displayName===`post`&&(e.status===`sent`||e.status===`published`)&&!!(e.email&&e.email.status!==`failed`),h=t.newsletters.find(t=>t.slug===e.newsletter),g=mn(e.emailSegment),_=p&&h&&g?yn(an(h),g):null,{count:v}=gn(_,{requestOptions:Z}),y=_?v:null,[b,x]=(0,X.useState)(null),[S,C]=(0,X.useState)(!1),w=(0,X.useRef)(!1),T=(0,X.useRef)(!0),E=!l.onlyDefaultNewsletter||e.newsletterStatus===`archived`,D=()=>{T.current&&(T.current=!1,a())};(0,X.useEffect)(()=>(T.current=!0,()=>{T.current=!1}),[]);let O=async()=>{if(w.current)return;w.current=!0,x(null),C(!0);let e;try{e=await i(c.toRevertDispatch())}catch(e){T.current&&(x(cs(e)),C(!1)),w.current=!1;return}if(!T.current){w.current=!1;return}let t=ls(e);if(t){x(t),C(!1),w.current=!1;return}C(!1),w.current=!1,o?.(),T.current&&D()},k=e.publishedAt;return(0,Q.jsx)(Ea,{"data-testid":ua,modal:!1,title:u?`Unschedule`:`Unpublish`,open:!0,onOpenChange:e=>!e&&D(),children:(0,Q.jsxs)(J,{className:`mx-auto w-full max-w-2xl px-6 pb-16`,gap:`xl`,children:[(0,Q.jsx)(q,{className:`py-4`,justify:`end`,children:d?null:(0,Q.jsx)(G,{variant:`outline`,onClick:D,children:`Close`})}),(0,Q.jsxs)(V,{as:`h2`,"data-testid":da,size:`3xl`,weight:`bold`,children:[`This `,e.displayName,` `,d?`was`:`has been`,` `,(0,Q.jsxs)(`span`,{className:`text-state-success`,children:[e.status,d?` by email`:``]})]}),(0,Q.jsxs)(V,{"data-testid":fa,children:[`Your `,e.displayName,` `,u?`will be`:`was`,` `,m||p?(0,Q.jsxs)(Q.Fragment,{children:[f?`sent to`:`published and sent to`,` `,(0,Q.jsx)(`strong`,{children:bs(u?y:e.email?.email_count??null)}),E&&e.newsletterName?(0,Q.jsxs)(Q.Fragment,{children:[` `,`of `,(0,Q.jsx)(`strong`,{children:e.newsletterName})]}):null]}):`published on your site`,k?(0,Q.jsxs)(Q.Fragment,{children:[` on `,Za(k,r),`.`]}):`.`]}),u&&e.email?(0,Q.jsxs)(V,{"data-testid":pa,children:[`This post was previously emailed to`,` `,(0,Q.jsx)(`strong`,{children:bs(e.email.email_count??null)}),E&&e.newsletterName?(0,Q.jsxs)(Q.Fragment,{children:[` `,`of `,(0,Q.jsx)(`strong`,{children:e.newsletterName})]}):null,e.emailCreatedAt?(0,Q.jsxs)(Q.Fragment,{children:[` on `,Za(e.emailCreatedAt,r),`.`]}):`.`]}):null,b?(0,Q.jsx)(bn,{role:`alert`,variant:`destructive`,children:b.message}):null,u||!f?(0,Q.jsx)(`div`,{children:(0,Q.jsx)(G,{"data-testid":ia,disabled:S,size:`lg`,variant:`outline`,onClick:()=>void O(),children:u?`Unschedule and revert to draft →`:`Unpublish and revert to private draft →`})}):null]})})}function Cs({snapshot:e,record:t,displayName:n,lexical:r}){let i=t&&`email`in t?t.email??null:null,a=t&&`newsletter`in t?t.newsletter??null:null;return{id:e.id??t?.id??``,displayName:n,status:e.status,title:e.title,excerpt:t?.custom_excerpt??null,url:t?.url??null,featureImage:t?.feature_image??null,publishedAt:e.publishedAt,visibility:t?.visibility??null,tiers:(t?.tiers??[]).flatMap(e=>e.slug?[{slug:e.slug}]:[]),newsletter:a?.slug??null,newsletterName:a?.name??null,newsletterStatus:a?.status??null,emailSegment:t&&`email_segment`in t?t.email_segment??null:null,emailOnly:t&&`email_only`in t?t.email_only===!0:!1,email:i,emailCreatedAt:i?.created_at??null,lexical:r??t?.lexical??null}}var ws=ge([W(),_e(),xe(),ve(),ye(W())]),Ts=U({key:W(),value:ws}),Es=be([`disabled`,`visibility`,`filter`]),Ds=U({slug:W(),name:W(),status:W(),visibility:W(),sort_order:xe().optional()}).transform(({sort_order:e,...t})=>({...t,sortOrder:e})),Os=he({settingsData:U({settings:ye(Ts)}),configData:U({config:U({mailgunIsConfigured:_e().optional()})}),newslettersData:U({newsletters:ye(Ds)}),currentUser:U({roles:ye(U({name:W()}))}),memberCount:xe().int().nonnegative().nullable()}),ks={membersEnabled:!0,mailgunConfigured:!1,editorDefaultEmailRecipients:`visibility`,editorDefaultEmailRecipientsFilter:null,memberCount:null,newsletters:[]},As={isAdmin:!1,isAuthorOrContributor:!1};function js(e,t){let n=e.find(e=>e.key===t)?.value;return typeof n==`string`?n:null}function Ms(e){let t=Os.safeParse(e);if(!t.success)return{site:ks,user:As,isValid:!1};let{settingsData:n,configData:r,newslettersData:i,currentUser:a,memberCount:o}=t.data,s=n.settings,c=s.find(e=>e.key===`editor_default_email_recipients`)?.value,l=c==null?Es.safeParse(`visibility`):Es.safeParse(c);if(!l.success)return{site:ks,user:As,isValid:!1};let u=new Set(a.roles.map(e=>e.name)),d=!!(js(s,`mailgun_api_key`)&&js(s,`mailgun_domain`)&&js(s,`mailgun_base_url`));return{site:{membersEnabled:js(s,`members_signup_access`)!==`none`,mailgunConfigured:d||r.config.mailgunIsConfigured===!0,editorDefaultEmailRecipients:l.data,editorDefaultEmailRecipientsFilter:js(s,`editor_default_email_recipients_filter`),memberCount:o,newsletters:i.newsletters},user:{isAdmin:u.has(`Owner`)||u.has(`Administrator`),isAuthorOrContributor:u.has(`Author`)||u.has(`Contributor`)},isValid:!0}}function Ns(e){return e?e instanceof Error?e:Error(`The publish settings could not be loaded.`):null}function Ps(){let e=Sa(),t=Ca(),n=P({defaultErrorHandler:!1,requestOptions:Z}),r=Se({defaultErrorHandler:!1,requestOptions:Z,searchParams:ba}),{fetchNextPage:i,hasNextPage:a,isError:o,isFetchingNextPage:s}=r;(0,X.useEffect)(()=>{a&&!s&&!o&&i()},[i,a,s,o]);let c=_({requestOptions:Z}),{count:l,isLoading:u,isFetching:d,error:f,refetch:p}=gn(``,{requestOptions:Z}),m=e.data,h=n.data,g=r.data,v=c.data,y=(0,X.useMemo)(()=>Ms({settingsData:m,configData:h,newslettersData:g,currentUser:v,memberCount:l}),[m,h,g,v,l]),b=e.isLoading||e.isFetching||n.isLoading||n.isFetching||r.isLoading||r.isFetching||r.hasNextPage||r.isFetchingNextPage||c.isLoading||c.isFetching||u||d,x=(0,X.useMemo)(()=>{let t=e.error??n.error??r.error??c.error??f;return t?Ns(t):!b&&!y.isValid?Error(`The publish settings response was invalid.`):null},[y.isValid,n.error,c.error,b,f,r.error,e.error]),S=(0,X.useCallback)(()=>{Promise.all([e.refetch(),n.refetch(),r.refetch(),c.refetch(),p()])},[n,c,r,p,e]);return{site:y.site,user:y.user,timezone:t,isReady:y.isValid&&!b&&!x,error:x,retry:S}}function Fs(e,t,n,r=!0){let i=(0,X.useRef)({onPress:n,enabled:r});i.current={onPress:n,enabled:r},(0,X.useEffect)(()=>{let n=n=>{!i.current.enabled||n.key.toLowerCase()!==e||!(n.metaKey||n.ctrlKey)||n.altKey||t!==void 0&&n.shiftKey!==t||(n.preventDefault(),n.repeat||i.current.onPress())};return document.addEventListener(`keydown`,n),()=>document.removeEventListener(`keydown`,n)},[e,t])}function Is(e,t=!0){Fs(`p`,!1,e,t)}function Ls(e,t=!0){Fs(`p`,!0,e,t)}function Rs(e){let t=(0,X.useRef)(e);t.current=e;let n=(0,X.useRef)(new Set);(0,X.useEffect)(()=>{let e=n.current;return()=>{e.forEach(clearTimeout),e.clear()}},[]),Fs(`s`,void 0,()=>{let e=document.activeElement;e instanceof HTMLInputElement&&e.type===`text`&&e.blur();let r=setTimeout(()=>{n.current.delete(r),t.current()});n.current.add(r)})}async function zs(e){let t=await e;if(t.kind===`dropped`&&t.reason===`clean`)return;let n=ls(t);if(n)throw Error(n.message)}function Bs({session:e,postType:t,currentUser:n,siteUrl:r,tkCount:i}){let{persistedId:a,publishTime:o,title:s}=e,c=e.loadedRecord,[l,u]=(0,X.useState)(!1),[d,f]=(0,X.useState)(`none`),p=(0,X.useCallback)(()=>u(!0),[]),m=(0,X.useCallback)(()=>u(!1),[]),h=Cs({snapshot:{id:a,status:o.status,publishedAt:o.publishedAt,title:s},record:c,displayName:t,lexical:e.getLiveLexical()}),g=h.status===`draft`;Is((0,X.useCallback)(()=>u(e=>!e),[]),g&&a!==null);let _=(0,X.useCallback)(async()=>{e.publishTime.status!==`draft`||!e.isDirty()||await zs(e.saveExplicit())},[e]),v=e.state.kind===`saving`||e.state.kind===`pending-coalesced`,y=!!n&&ue(n);return a?(0,Q.jsxs)(q,{"data-testid":Ar,gap:`sm`,children:[g?(0,Q.jsx)(G,{size:`sm`,variant:`outline`,onClick:p,children:`Preview`}):null,y?(0,Q.jsx)(G,{disabled:v,size:`sm`,onClick:e.dispatchExplicit,children:`Save`}):(0,Q.jsx)(Vs,{isDraft:g,isSaving:v,openFlow:d,post:h,previewOpen:l,session:e,tkCount:i,onOpenFlow:f,onPreview:p}),g?(0,Q.jsx)(La,{isPost:t===`post`,newsletterSlug:h.newsletter??void 0,open:l,postId:a,previewUrl:Da(r,c?.uuid),onBeforeOpen:_,onOpenChange:u,onReturnToPublish:d===`publish`?m:void 0}):null]}):null}function Vs({session:e,post:t,tkCount:n,isDraft:r,isSaving:i,openFlow:a,previewOpen:o,onOpenFlow:s,onPreview:c}){let l=Ps(),{data:u}=Sa(),d=Y(u?.settings??null,`title`)??void 0,f=$t(`paywallImprovements`,{defaultErrorHandler:!1,requestOptions:Z}),[p,m]=(0,X.useState)(!1);l.isReady&&!p&&m(!0);let h=(0,X.useCallback)(async()=>{e.isDirty()&&await zs(e.saveExplicit())},[e]),g=(0,X.useCallback)(()=>{s(`none`),e.dispatchPublish({kind:`revert`})},[s,e]),_=(0,X.useCallback)(()=>s(`none`),[s]),v=(0,X.useCallback)(()=>s(`publish`),[s]);return Ls(v,r&&l.isReady&&!o),(0,Q.jsxs)(Q.Fragment,{children:[r?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(G,{disabled:!l.isReady,size:`sm`,onClick:v,children:`Publish`}),l.error?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(V,{className:`text-destructive`,"data-testid":jr,role:`alert`,size:`sm`,children:l.error.message}),(0,Q.jsx)(G,{size:`sm`,variant:`ghost`,onClick:l.retry,children:`Retry`})]}):null]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(G,{disabled:!e.isDirty()||i,size:`sm`,onClick:e.dispatchExplicit,children:`Update`}),t.status===`sent`?null:(0,Q.jsx)(G,{size:`sm`,variant:`outline`,onClick:()=>s(`update`),children:t.status===`scheduled`?`Unschedule`:`Unpublish`})]}),a===`publish`&&p?(0,Q.jsx)(_s,{dispatch:e.dispatchPublish,paywallImprovements:f,post:t,site:l.site,siteTitle:d,timezone:l.timezone,tkCount:n,user:l.user,onBeforePublish:h,onClose:_,onPreview:c,onRevertToDraft:g}):null,a===`update`&&p?(0,Q.jsx)(xs,{dispatch:e.dispatchPublish,post:t,site:l.site,timezone:l.timezone,user:l.user,onClose:_}):null]})}var Hs=3e3;function Us(e){return e===`submitting`||e===`pending`?`sending`:e===`submitted`?`sent`:e===`failed`?`failed`:`none`}function Ws(e){if(!e.newsletter||e.hasEmail||e.emailSegment===`none`)return null;let t=mn(e.emailSegment),n=t??(e.newsletter.visibility===`paid`?`status:-free`:fn);return{filter:yn(an(e.newsletter),t),segment:n}}function Gs(e,t){if(e.status!==`scheduled`||!e.publishedAt)return!1;let n=Date.parse(e.publishedAt);return!Number.isNaN(n)&&n<=t.getTime()}function Ks({state:e,record:t,isDirty:n,isSaving:r,now:i=new Date}){if(e.kind===`error`)return{kind:`problem`,message:e.error.message};let a=t?.status??`draft`;if(r&&a===`draft`)return{kind:`saving`};if(!t)return{kind:`new`};let o=t.emailCount??0,s=a===`scheduled`?Ws(t):null;return a===`sent`?{kind:`sent`,failed:t.emailStatus===`failed`,count:o}:t.emailOnly&&a===`scheduled`?{kind:`scheduled`,publishedAt:t.publishedAt??null,emailOnly:!0,recipientFilter:s?.filter??null,recipientSegment:s?.segment??null}:a===`published`||Gs(t,i)?{kind:`published`,url:t.url,email:Us(t.emailStatus),count:o}:a===`scheduled`?{kind:`scheduled`,publishedAt:t.publishedAt??null,emailOnly:!1,recipientFilter:s?.filter??null,recipientSegment:s?.segment??null}:{kind:`draft`,saved:!n}}var qs=2147483647;function Js(e,t){let[n,r]=(0,X.useState)(0);(0,X.useEffect)(()=>{if(!t||!e)return;let n=Date.parse(e)-Date.now();if(!Number.isFinite(n)||n<=0)return;let i=setTimeout(()=>r(e=>e+1),Math.min(n,qs));return()=>clearTimeout(i)},[t,n,e])}function Ys(e,t=Hs){let[n,r]=(0,X.useState)(!1),i=(0,X.useRef)(void 0);return(0,X.useEffect)(()=>{!e||i.current||(r(!0),i.current=setTimeout(()=>{i.current=void 0,r(!1)},t))},[e,n,t]),(0,X.useEffect)(()=>()=>clearTimeout(i.current),[]),n}function Xs(e){return`${L(e)} ${e===1?`member`:`members`}`}function Zs({filter:e,segment:t}){let{count:n}=gn(e,{requestOptions:Z});return(0,Q.jsx)(Q.Fragment,{children:typeof n==`number`?Xs(n):Ot(t,{count:n})})}function Qs({publishedAt:e,emailOnly:t,recipientFilter:n,recipientSegment:r,timezone:i}){return(0,Q.jsxs)(`time`,{className:`text-state-success`,"data-testid":pr,dateTime:e??void 0,children:[t?`to be sent`:`to be published`,n&&r&&(0,Q.jsxs)(Q.Fragment,{children:[t?` to `:` and sent to `,(0,Q.jsx)(Zs,{filter:n,segment:r})]}),` `,qn(e,{timezone:i,scheduled:!0})]})}function $s({view:e,timezone:t,isHovered:n}){switch(e.kind){case`problem`:return(0,Q.jsx)(V,{className:`text-destructive`,children:e.message});case`saving`:return(0,Q.jsx)(V,{tone:`secondary`,children:`Saving…`});case`new`:return(0,Q.jsx)(V,{tone:`secondary`,children:`New`});case`draft`:return(0,Q.jsx)(V,{tone:`secondary`,children:e.saved?`Draft - Saved`:`Draft`});case`sent`:return e.failed?(0,Q.jsx)(V,{tone:`secondary`,children:`Failed to send newsletter.`}):(0,Q.jsxs)(V,{tone:`secondary`,children:[`Sent to `,Xs(e.count)]});case`scheduled`:return(0,Q.jsxs)(V,{tone:`secondary`,children:[`Scheduled`,n&&(0,Q.jsxs)(Q.Fragment,{children:[` `,(0,Q.jsx)(Qs,{emailOnly:e.emailOnly,publishedAt:e.publishedAt,recipientFilter:e.recipientFilter,recipientSegment:e.recipientSegment,timezone:t})]})]});default:return(0,Q.jsxs)(V,{tone:`secondary`,children:[e.url?(0,Q.jsx)(`a`,{className:`hover:text-foreground`,href:e.url,rel:`noopener noreferrer`,target:`_blank`,children:`Published`}):`Published`,e.email===`sending`&&` and sending to ${Xs(e.count)}`,e.email===`sent`&&` and sent to ${Xs(e.count)}`,e.email===`failed`&&` but failed to send newsletter.`]})}}function ec({state:e,record:t,isDirty:n}){let r=Ca(),i=Ys(e.kind===`saving`||e.kind===`pending-coalesced`),[a,o]=(0,X.useState)(!1),[,s]=(0,X.useState)(0);return Js(t?.publishedAt,t?.status===`scheduled`&&t.emailOnly!==!0),(0,X.useEffect)(()=>{if(!a)return;let e=setInterval(()=>s(e=>e+1),1e3);return()=>clearInterval(e)},[a]),(0,Q.jsx)(q,{align:`center`,className:`text-sm`,"data-testid":fr,gap:`xs`,onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),children:(0,Q.jsx)($s,{isHovered:a,timezone:r,view:Ks({state:e,record:t,isDirty:n,isSaving:i})})})}function tc(e,t){console.error(e),r(e,t)}function nc(e){tc(e,{tags:{lexical:!0},contexts:{koenig:{version:window[`@tryghost/koenig-lexical`]?.version}}})}function rc({editor:e,html:t,placeholder:n,darkMode:r,searchLinks:i,onChangeHtml:a,onFocus:o,onBlur:s,onTkCountChange:c,registerAPI:l}){let{KoenigComposer:u,KoenigComposableEditor:d,HtmlOutputPlugin:f,EmojiPickerPlugin:p,TKCountPlugin:m,MINIMAL_NODES:h,MINIMAL_TRANSFORMERS:g}=e.read();return(0,Q.jsx)(u,{cardConfig:{searchLinks:i},isTKEnabled:!0,nodes:h,onError:nc,children:(0,Q.jsxs)(d,{className:`koenig-lexical-editor-input`,darkMode:r,isSnippetsEnabled:!1,markdownTransformers:g,placeholderClassName:`koenig-lexical-editor-input-placeholder`,placeholderText:n,registerAPI:l,singleParagraph:!0,onBlur:s,onFocus:o,children:[(0,Q.jsx)(f,{html:t??void 0,setHtml:a}),(0,Q.jsx)(p,{}),(0,Q.jsx)(m,{onChange:c})]})})}function ic(e){let t=er();return(0,Q.jsx)(`div`,{className:`koenig-react-editor koenig-lexical flex-1`,children:(0,Q.jsx)($n,{name:`the feature image caption`,children:(0,Q.jsx)(X.Suspense,{fallback:null,children:(0,Q.jsx)(rc,{...e,editor:t})})})})}var ac=e(n(),1);function oc({enabled:e,label:t,disabled:n,className:r,onSelect:a}){let{unsplashConfig:o}=i(),s=(0,X.useRef)(null),[c,l]=(0,X.useState)(!1),[u,d]=(0,X.useState)(null);return(0,X.useEffect)(()=>{e||l(!1)},[e]),(0,X.useEffect)(()=>{if(!u)return;let e=e=>{e.key===`Escape`&&e.preventDefault()};return u.addEventListener(`keydown`,e,!0),()=>u.removeEventListener(`keydown`,e,!0)},[u]),e?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(wn,{className:z(`top-1 right-1 opacity-100`,r),children:(0,Q.jsx)(G,{ref:s,"aria-label":t,className:`group/unsplash hover:bg-button-hover`,disabled:n,size:`icon`,type:`button`,variant:`ghost`,onClick:()=>l(!0),children:(0,Q.jsx)(nr,{className:`size-4 text-muted-foreground transition-colors group-hover/unsplash:text-foreground`,name:`unsplash`})})}),c&&(0,ac.createPortal)((0,Q.jsx)(Je,{children:(0,Q.jsx)(Ye,{asChild:!0,loop:!0,trapped:!0,onUnmountAutoFocus:e=>{e.preventDefault(),s.current?.focus()},children:(0,Q.jsx)(`div`,{ref:d,"data-testid":`unsplash-search-modal`,tabIndex:-1,children:(0,Q.jsx)(tr,{unsplashProviderConfig:o,onClose:()=>l(!1),onImageInsert:e=>{e.src&&a({src:e.src,caption:e.caption??``}),l(!1)}})})})}),document.body)]}):null}var sc={bar:{empty:`h-14`,dropzone:`group/dropzone border-transparent bg-transparent transition-colors hover:bg-interactive-hover`,prompt:`transition-colors group-hover/dropzone:text-foreground`,unsplash:`top-1/2 right-2 -translate-y-1/2`},panel:{empty:`h-[120px]`,dropzone:``,prompt:``,unsplash:``}};function cc({src:e,subject:t,unsplashEnabled:n,upload:r,variant:i=`panel`,className:a,testId:o,alt:s=null,onChange:c,onUnsplashSelect:l,children:u}){let{isUploading:d,onUpload:f}=r,p=sc[i],m=`Add ${t}`;if(!e)return(0,Q.jsxs)(kn,{className:z(p.empty,a),"data-testid":o,children:[(0,Q.jsx)(On,{accept:dt,className:p.dropzone,disabled:d,inputAriaLabel:m,noDragEventsBubbling:!0,onDropAccepted:e=>e[0]&&void f(e[0]),onDropRejected:()=>w.error(ft),children:d?(0,Q.jsx)(Mt,{size:`sm`}):(0,Q.jsxs)(q,{gap:`sm`,children:[(0,Q.jsx)(Le,{"aria-hidden":`true`,className:z(`size-4 text-muted-foreground`,p.prompt)}),(0,Q.jsx)(`span`,{className:z(`text-sm text-muted-foreground`,p.prompt),children:m})]})}),(0,Q.jsx)(oc,{className:p.unsplash,disabled:d,enabled:n,label:`Select ${t} from Unsplash`,onSelect:e=>l?l(e):c(e.src)})]});let h=(0,Q.jsxs)(Tn,{children:[(0,Q.jsx)(An,{alt:s??``,role:s?`img`:`presentation`,src:e}),(0,Q.jsx)(wn,{children:(0,Q.jsx)(En,{"aria-label":`Remove ${t}`,onClick:()=>c(null),children:(0,Q.jsx)(Ee,{})})})]});return u?(0,Q.jsxs)(J,{className:a,"data-testid":o,gap:`sm`,children:[(0,Q.jsx)(kn,{className:`max-h-[480px]`,children:h}),u]}):(0,Q.jsx)(kn,{className:z(`max-h-[480px]`,a),"data-testid":o,children:h})}function lc(e,t){let{mutateAsync:n,isPending:r}=Dn();return{isUploading:r,onUpload:(0,X.useCallback)(async r=>{try{t(jn(await n({file:r,...Z})))}catch(t){w.error(ut(t,e))}},[t,e,n])}}var uc=191,dc=`feature image`;function fc({image:e,alt:t,caption:n,cardConfig:r,darkMode:i,onImageChange:a,onImageClear:o,onAltChange:s,onCaptionChange:c,onCaptionBlur:l,onTkCountChange:u}){let[d,f]=(0,X.useState)(!1),[p,m]=(0,X.useState)(!1),[h,g]=(0,X.useState)(0),_=(0,X.useRef)(null),v=(0,X.useCallback)(e=>{g(e),u(e)},[u]),y=(0,X.useCallback)(e=>{_.current=e},[]),b=(0,X.useCallback)(()=>{_.current?.focusEditor({position:`bottom`})},[]),x=(0,X.useCallback)(()=>m(!0),[]),S=(0,X.useCallback)(()=>{m(!1),l()},[l]),C=(0,X.useCallback)(e=>{if(e===null){f(!1),v(0),o();return}a(e)},[a,o,v]),w=lc(dc,C),T=(0,X.useCallback)(e=>{a(e.src),c(e.caption)},[c,a]);return(0,Q.jsx)(cc,{alt:t,className:`mb-4`,src:e,subject:dc,testId:mr,unsplashEnabled:!!r.unsplash,upload:w,variant:`bar`,onChange:C,onUnsplashSelect:T,children:(0,Q.jsxs)(q,{align:`center`,className:`relative`,gap:`sm`,children:[d?(0,Q.jsx)(`input`,{"aria-label":`Alt text for feature image`,className:`flex-1 border-0 bg-transparent p-0 text-sm text-text-secondary outline-none placeholder:text-muted-foreground`,maxLength:uc,name:`alt`,placeholder:`Add alt text to the feature image`,type:`text`,value:t??``,autoFocus:!0,onChange:e=>s(e.target.value)}):(0,Q.jsx)(`div`,{className:`flex-1 text-sm`,"data-testid":hr,children:(0,Q.jsx)(ic,{darkMode:i,html:n,placeholder:p?``:`Add a caption to the feature image`,registerAPI:y,searchLinks:r.searchLinks,onBlur:S,onChangeHtml:c,onFocus:x,onTkCountChange:v})}),h>0&&!d&&(0,Q.jsx)(`button`,{className:`rounded-sm bg-state-warning px-1.5 py-0.5 text-2xs font-bold text-foreground`,"data-testid":`feature-image-tk-indicator`,type:`button`,onClick:b,children:`TK`}),(0,Q.jsx)(`button`,{"aria-label":`Toggle between editing alt text and caption`,className:z(`rounded-md border px-1.5 py-0.5 text-2xs font-medium tracking-wide`,d?`border-state-success bg-state-success text-state-success-foreground`:`border-border-default bg-transparent text-text-tertiary`),type:`button`,onClick:()=>f(!d),children:`Alt`})]})})}var pc={useFileUpload:(e=`image`)=>T(e,Z),fileTypes:D},mc=()=>{};function hc({editor:e,isSecondary:t,onError:n,initialLexical:r,placeholder:i,cardConfig:a,darkMode:o,cursorDidExitAtTop:s,onChange:c,onSecondaryChange:l,registerAPI:u,registerSecondaryAPI:d,onWordCountChange:f,onTkCountChange:p}){let{KoenigComposer:m,KoenigEditor:h,WordCountPlugin:g,TKCountPlugin:_}=e.read();return(0,Q.jsx)(`div`,{"data-secondary-instance":t?`true`:`false`,"data-testid":t?or:ar,hidden:t,children:(0,Q.jsxs)(m,{cardConfig:a,darkMode:o,fileUploader:pc,initialEditorState:r??void 0,isTKEnabled:!0,onError:n,children:[(0,Q.jsx)(h,{cursorDidExitAtTop:t?void 0:s,darkMode:t?void 0:o,placeholderText:t?void 0:i,registerAPI:t?d:u,onChange:t?l:c}),(0,Q.jsx)(g,{onChange:t?mc:f}),(0,Q.jsx)(_,{onChange:t?mc:p})]})})}var gc=(0,X.memo)(function(e){let t=er(),{onSecondaryError:n}=e,r=(0,X.useCallback)(e=>{nc(e),n?.(e)},[n]);return(0,Q.jsx)(`div`,{className:`koenig-react-editor koenig-lexical mx-auto w-full max-w-[740px]`,children:(0,Q.jsx)($n,{name:`the editor`,children:(0,Q.jsxs)(X.Suspense,{fallback:(0,Q.jsx)(`div`,{className:`flex justify-center py-10`,children:(0,Q.jsx)(Mt,{size:`lg`})}),children:[(0,Q.jsx)(hc,{...e,editor:t,isSecondary:!1,onError:nc}),(0,Q.jsx)(hc,{...e,editor:t,isSecondary:!0,onError:r})]})})})}),_c=/(^|.)([^\p{L}\p{N}\s]*(TK)+[^\p{L}\p{N}\s]*)(.)?/u,vc=/\p{L}|\p{N}/u;function yc(e){return!(e[1]&&e[1].trim()&&vc.test(e[1])||e[4]&&e[4].trim()&&vc.test(e[4]))}function bc(e){let t=e,n=_c.exec(t);for(;n!==null&&!yc(n);)t=t.slice(n.index+n[0].length-1),n=_c.exec(t);return n!==null}var xc=e=>e.charAt(0).toUpperCase()+e.slice(1),Sc=`block w-full resize-none overflow-hidden border-0 bg-transparent p-0 outline-none`;function Cc(e,t){let n=(0,X.useCallback)(()=>{let t=e.current;t&&(t.style.height=`auto`,t.style.height=`${t.scrollHeight}px`)},[e]);(0,X.useLayoutEffect)(n,[n,t]),(0,X.useEffect)(()=>{let t=e.current;if(!t)return;let r=0,i=new ResizeObserver(()=>{cancelAnimationFrame(r),r=requestAnimationFrame(n)});return i.observe(t),()=>{cancelAnimationFrame(r),i.disconnect()}},[e,n])}function wc({onClick:e,testId:t}){return(0,Q.jsx)(`button`,{className:`absolute top-1 -left-12 rounded-sm bg-state-warning px-1.5 py-0.5 text-2xs font-bold text-foreground`,"data-testid":t,type:`button`,onClick:e,children:`TK`})}function Tc({postType:e,title:t,excerpt:n,featureImage:r,initialLexical:i,cardConfig:a,showExcerpt:o,autofocusTitle:s=!1,onTitleChange:c,onTitleBlur:l,onExcerptChange:u,onExcerptBlur:d,onLexicalChange:f,onSecondaryChange:p,onSecondaryError:m,registerEditorApi:h,registerSecondaryApi:g,onTkCountChange:_}){let{darkMode:v}=se(),y=(0,X.useRef)(null),b=(0,X.useRef)(null),x=(0,X.useRef)(null),S=(0,X.useRef)(!1),[C,w]=(0,X.useState)(0),[T,E]=(0,X.useState)(0),[D,k]=(0,X.useState)(0);Cc(y,t),Cc(b,n);let A=bc(t),j=o&&bc(n);(0,X.useEffect)(()=>{_?.(+!!A+ +!!j+T+D)},[_,A,j,T,D]);let ee=(0,X.useCallback)(()=>{y.current?.focus()},[]),M=(0,X.useCallback)(()=>{b.current?.focus(),setTimeout(()=>b.current?.setSelectionRange(-1,-1),0)},[]),N=(0,X.useCallback)(e=>{x.current=e,h?.(e)},[h]),P=(0,X.useCallback)(e=>{g?.(e)},[g]),te=e=>{let t=x.current;t&&(e===`Enter`&&!t.editorIsEmpty()?t.insertParagraphAtTop({focus:!0}):t.focusEditor({position:`top`}))};return(0,Q.jsxs)(`div`,{className:`relative h-full min-h-0`,"data-testid":rr,children:[(0,Q.jsx)(`div`,{className:`h-full overflow-y-auto`,children:(0,Q.jsxs)(J,{className:`min-h-full px-6 pt-12 pb-24`,gap:`none`,onDragOver:e=>e.preventDefault(),onDrop:e=>{e.dataTransfer.files.length>0&&(e.preventDefault(),x.current?.insertFiles(Array.from(e.dataTransfer.files)))},onMouseDown:e=>{S.current=e.nativeEvent.composedPath().some(e=>e instanceof Element&&e.matches(`[data-lexical-decorator], [data-kg-slash-menu]`))},onMouseUp:e=>{!S.current&&e.target===e.currentTarget&&x.current&&O(x.current,e),S.current=!1},children:[(0,Q.jsxs)(`div`,{className:`relative mx-auto w-full max-w-[740px]`,children:[(0,Q.jsx)(fc,{alt:r.featureImageAlt,caption:r.featureImageCaption,cardConfig:a,darkMode:v,image:r.featureImage,onAltChange:r.onFeatureImageAltChange,onCaptionBlur:r.onFeatureImageCaptionBlur,onCaptionChange:r.onFeatureImageCaptionChange,onImageChange:r.onFeatureImageChange,onImageClear:r.onFeatureImageClear,onTkCountChange:k}),A&&(0,Q.jsx)(wc,{testId:`tk-indicator`,onClick:ee}),(0,Q.jsx)(`textarea`,{ref:y,"aria-label":`${xc(e)} title`,autoFocus:s,className:z(Sc,`heading-font-features mb-4 text-4xl leading-tight font-bold tracking-tight text-foreground placeholder:font-bold placeholder:text-muted-foreground`),"data-testid":ir,placeholder:`${xc(e)} title`,rows:1,value:t,onBlur:l,onChange:e=>c(e.target.value),onKeyDown:e=>{let{key:t}=e,{value:n,selectionStart:r}=e.currentTarget,i=!n||r===n.length;if(o){t===`Enter`&&(e.preventDefault(),M()),(t===`ArrowDown`||t===`ArrowRight`)&&!e.shiftKey&&i&&(e.preventDefault(),M());return}!x.current||e.nativeEvent.isComposing||(t===`Enter`||t===`Tab`||(t===`ArrowDown`||t===`ArrowRight`)&&i)&&(e.preventDefault(),te(t))},onPaste:e=>{let t=e.clipboardData.getData(`text`);t&&(e.preventDefault(),document.execCommand(`insertText`,!1,t.replace(/(\n|\r)+/g,` `).trim()))}}),o&&(0,Q.jsxs)(`div`,{className:`relative`,children:[j&&(0,Q.jsx)(wc,{testId:`tk-indicator-excerpt`,onClick:M}),(0,Q.jsx)(`textarea`,{ref:b,"aria-label":`Excerpt`,className:z(Sc,`text-xl leading-normal tracking-tight text-text-secondary placeholder:text-muted-foreground`),"data-testid":`editor-excerpt-input`,placeholder:`Add an excerpt`,rows:1,value:n,onBlur:d,onChange:e=>u(e.target.value),onKeyDown:e=>{let{key:t}=e,{value:n,selectionStart:r}=e.currentTarget;if((t===`ArrowUp`||t===`ArrowLeft`)&&!e.shiftKey&&(!n||r===0)){e.preventDefault(),ee();return}let i=!n||r===n.length,a=(t===`ArrowRight`||t===`ArrowDown`)&&i;(t===`Enter`||t===`Tab`&&!e.shiftKey||a)&&(e.preventDefault(),te(t))}}),(0,Q.jsx)(`hr`,{className:`mt-4 mb-6 border-border`})]})]}),(0,Q.jsx)(gc,{cardConfig:a,cursorDidExitAtTop:o?M:ee,darkMode:v,initialLexical:i,placeholder:`Begin writing your ${e}...`,registerAPI:N,registerSecondaryAPI:P,onChange:f,onSecondaryChange:p,onSecondaryError:m,onTkCountChange:E,onWordCountChange:w})]})}),(0,Q.jsxs)(q,{className:`absolute right-0 bottom-0 px-4 py-3`,gap:`sm`,children:[(0,Q.jsxs)(V,{"data-testid":sr,size:`xs`,tone:`secondary`,children:[L(C),` `,C===1?`word`:`words`]}),(0,Q.jsx)(`a`,{"aria-label":`Editor help`,className:`text-text-secondary hover:text-foreground`,href:`https://ghost.org/help/using-the-editor/`,rel:`noopener noreferrer`,target:`_blank`,children:(0,Q.jsx)(Ne,{className:`size-4`})})]})]})}var Ec=`z-[1100]`,Dc=`Your session expired. Sign in again in a new tab, then retry.`,Oc=`Someone else is editing this post. Reloading replaces what you have with their version, so copy your content first if you need it.`,kc=`This post has been deleted. Copy your content and paste it into a new post to keep it.`;function Ac(e){switch(e.kind){case`session-invalid`:return Dc;case`transport`:return`Couldn’t reach the server. Your changes are still here.`;default:return e.message}}function jc({hasUnsavedContent:e,contentText:t,onReload:n,deleted:r=!1}){let[i,a]=(0,X.useState)(!1),[o,s]=(0,X.useState)(!1),[c,l]=(0,X.useState)(!1),u=r||c,d=async()=>{a(!1),s(!0);let e=await n();s(!1),e===`gone`&&l(!0),e===`failed`&&w.error(`Couldn’t reload this post`)},f=async()=>{try{await navigator.clipboard.writeText(t()),w.success(`Content copied`)}catch{w.error(`Couldn’t copy your content`)}};return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(bn,{className:`mx-4 mb-2 shrink-0 bg-destructive text-destructive-foreground`,"data-testid":ur,role:`alert`,size:`sm`,variant:`destructive`,children:(0,Q.jsxs)(q,{align:`center`,gap:`sm`,justify:`center`,wrap:!0,children:[(0,Q.jsx)(V,{className:`text-center text-inherit`,children:u?kc:Oc}),(0,Q.jsxs)(q,{align:`center`,gap:`sm`,justify:`center`,children:[!u&&(0,Q.jsx)(G,{className:`border-destructive-foreground/40 text-destructive-foreground hover:bg-destructive-foreground/10 hover:text-destructive-foreground`,disabled:o,size:`sm`,variant:`outline`,onClick:()=>e()?a(!0):void d(),children:`Reload`}),(0,Q.jsx)(G,{className:`text-destructive-foreground hover:bg-destructive-foreground/10 hover:text-destructive-foreground`,size:`sm`,variant:`ghost`,onClick:()=>void f(),children:`Copy content`})]})]})}),(0,Q.jsx)(Wt,{open:i,onOpenChange:a,children:(0,Q.jsxs)(sn,{className:Ec,"data-testid":dr,overlayClassName:Ec,children:[(0,Q.jsxs)(Gt,{children:[(0,Q.jsx)(Nt,{children:`Discard your unsaved changes?`}),(0,Q.jsx)(Vt,{children:`Reloading replaces this post with the version on the server. Anything you have not saved is lost.`})]}),(0,Q.jsxs)(Ht,{children:[(0,Q.jsx)(Dt,{asChild:!0,children:(0,Q.jsx)(G,{variant:`outline`,children:`Cancel`})}),(0,Q.jsx)(ln,{asChild:!0,children:(0,Q.jsx)(G,{variant:`destructive`,onClick:()=>void d(),children:`Discard and reload`})})]})]})})]})}function Mc({state:e,hasUnsavedContent:t,contentText:n,onRetryReauth:r,onDismissReauth:i,onRetrySave:a,onReload:o}){return e.kind===`reauth-pending`?(0,Q.jsx)(bn,{className:`mx-4 mb-2 shrink-0`,"data-testid":lr,role:`alert`,size:`sm`,variant:`warning`,children:(0,Q.jsxs)(q,{align:`center`,gap:`sm`,children:[(0,Q.jsx)(V,{children:Dc}),(0,Q.jsx)(G,{size:`sm`,variant:`outline`,onClick:r,children:`Retry`}),(0,Q.jsx)(G,{size:`sm`,variant:`ghost`,onClick:i,children:`Dismiss`})]})}):e.kind===`conflict`||e.kind===`halted`?(0,Q.jsx)(jc,{contentText:n,deleted:e.kind===`halted`,hasUnsavedContent:t,onReload:o}):e.kind===`error`?(0,Q.jsx)(bn,{className:`mx-4 mb-2 shrink-0`,"data-testid":gr,role:`alert`,size:`sm`,variant:`destructive`,children:(0,Q.jsxs)(q,{align:`center`,gap:`sm`,children:[(0,Q.jsx)(V,{children:Ac(e.error)}),(0,Q.jsx)(G,{size:`sm`,variant:`outline`,onClick:a,children:`Retry`})]})}):null}function Nc(e,t){let n={};for(let r of t)n[r]=e[r];return n}var Pc=[`tags`,`authors`,`custom_excerpt`,`featured`,`visibility`,`tiers`,`meta_title`,`meta_description`,`canonical_url`,`custom_template`,`codeinjection_head`,`codeinjection_foot`,`og_image`,`og_title`,`og_description`,`twitter_image`,`twitter_title`,`twitter_description`,`show_title_and_feature_image`],Fc=`Please select at least one tier.`,Ic=`At least one author is required.`;function Lc(e,t){return e===`authors`?t.authors.map(({id:e})=>({id:e})):e===`tags`?Xn(t.tags):e===`tiers`?[...t.tiers]:e===`show_title_and_feature_image`?t.show_title_and_feature_image??void 0:t[e]}var Rc=`Meta title cannot be longer than 300 characters.`,zc=`Meta description cannot be longer than 500 characters.`,Bc=`Facebook title cannot be longer than 300 characters.`,Vc=`Facebook description cannot be longer than 500 characters.`,Hc=`X title cannot be longer than 300 characters.`,Uc=`X description cannot be longer than 500 characters.`;function Wc(e){return e.visibility===`tiers`&&e.tiers.length===0}var Gc=`Please choose a past date and time.`;function Kc(e,t,n=Date.now()){if(t===null||e!==`draft`&&e!==`published`)return!1;let r=Date.parse(t);return!Number.isNaN(r)&&r>=n}function qc(e,t){return Array.from(e??``).length>t}var Jc=[`visibility`,`tiers`,`meta_title`,`meta_description`,`og_title`,`og_description`,`twitter_title`,`twitter_description`];function Yc(e){return Nc(e,Jc)}var Xc={meta_title:{max:300,message:Rc},meta_description:{max:500,message:zc},og_title:{max:300,message:Bc},og_description:{max:500,message:Vc},twitter_title:{max:300,message:Hc},twitter_description:{max:500,message:Uc}};function Zc(e,t){if(e===`visibility`)return null;if(e===`tiers`)return Wc(t)?Fc:null;let{max:n,message:r}=Xc[e];return qc(t[e],n)?r:null}function Qc(e){for(let t of Jc){let n=Zc(t,e);if(n)return n}return null}function $c({message:e,onRetry:t}){return(0,Q.jsxs)(J,{align:`start`,className:`p-2`,"data-testid":Fr,gap:`sm`,children:[(0,Q.jsx)(V,{role:`alert`,size:`sm`,children:e}),(0,Q.jsx)(G,{size:`sm`,variant:`outline`,onClick:t,children:`Retry`})]})}function el({children:e}){return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(J,{className:`px-5 py-4`,gap:`sm`,children:e}),(0,Q.jsx)(Sn,{})]})}var tl=[{value:`public`,label:`Public`},{value:`members`,label:`Members only`},{value:`paid`,label:`Paid-members only`},{value:`tiers`,label:`Specific tier(s)`}];function nl(e,t){return e||t||`public`}function rl(e){let t=(e??[]).filter(e=>e.type===`paid`),n=Nn(t),r=t.filter(e=>!e.active);return[...n,...r].map(e=>({id:e.id,name:e.name,archived:!e.active}))}function il(e){return e.filter(e=>e.type!==`free`).map(e=>e.id).filter(e=>!!e)}function al(e){return il(e).map(e=>({id:e}))}function ol(e,t){let n=new Set(e.map(e=>e.id)),r=e.filter(e=>t.has(e.id)).map(e=>e.id),i=[...t].filter(e=>!n.has(e));return[...r,...i].map(e=>({id:e}))}function sl({option:e,checked:t,onToggle:n}){let r=(0,X.useId)();return(0,Q.jsxs)(q,{gap:`sm`,children:[(0,Q.jsx)(ct,{checked:t,id:r,onCheckedChange:n}),(0,Q.jsx)(K,{htmlFor:r,children:e.name})]})}function cl({heading:e,options:t,selected:n,onToggle:r}){return t.length===0?null:(0,Q.jsxs)(J,{gap:`sm`,children:[(0,Q.jsx)(V,{size:`sm`,tone:`secondary`,weight:`medium`,children:e}),t.map(e=>(0,Q.jsx)(sl,{checked:n.has(e.id),option:e,onToggle:()=>r(e.id)},e.id))]})}function ll({session:e,postType:t}){let n=(0,X.useId)(),r=(0,X.useId)(),{data:i}=Sa(),a=Y(i?.settings??null,`default_content_visibility`),o=nl(e.settings.visibility,a),s=new Set(il(e.settings.tiers)),c=Wc(e.settings),{data:l,isError:u,refetch:d}=Mn({defaultErrorHandler:!1,enabled:o===`tiers`,requestOptions:Z,searchParams:ya}),f=rl(l?.tiers),p=t=>e.editSettings({visibility:t,tiers:t===`tiers`?al(e.settings.tiers):[]}),m=t=>{let n=new Set(s);n.delete(t)||n.add(t),e.editSettings({visibility:`tiers`,tiers:ol(f,n)})};return(0,Q.jsxs)(el,{children:[(0,Q.jsxs)(K,{htmlFor:n,children:[t===`page`?`Page`:`Post`,` access`]}),(0,Q.jsxs)(nt,{value:o,onValueChange:p,children:[(0,Q.jsx)($e,{"data-testid":Ur,id:n,children:(0,Q.jsx)(tt,{})}),(0,Q.jsx)(Qe,{children:tl.map(e=>(0,Q.jsx)(Ze,{value:e.value,children:e.label},e.value))})]}),o===`tiers`?(0,Q.jsxs)(J,{"aria-describedby":c?r:void 0,"aria-invalid":c,"aria-label":`Tiers`,"data-testid":Wr,gap:`md`,role:`group`,children:[u?(0,Q.jsx)($c,{message:`Couldn’t load tiers.`,onRetry:()=>void d()}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(cl,{heading:`Active tiers`,options:f.filter(e=>!e.archived),selected:s,onToggle:m}),(0,Q.jsx)(cl,{heading:`Archived tiers`,options:f.filter(e=>e.archived),selected:s,onToggle:m})]}),c?(0,Q.jsx)(ht,{"data-testid":Gr,id:r,children:Fc}):null]}):null]})}var ul=`Use the publish menu to re-schedule`;function dl({session:e}){let t=(0,X.useId)(),n=(0,X.useId)(),r=Ca(),{status:i,publishedAt:a}=e.publishTime,o=new Date().toISOString(),s=a??o,c=i===`scheduled`,l=c&&!!a&&Date.parse(a)<Date.now(),u=Kc(i,a);return(0,Q.jsxs)(el,{children:[(0,Q.jsx)(K,{id:n,children:c&&!l?`Scheduled date`:`Publish date`}),(0,Q.jsx)(wo,{dateLabel:`Publish date`,dateTestId:Qr,describedBy:u?t:void 0,disabled:c,invalid:u,labelledBy:n,maxDate:o,timeLabel:`Publish time`,timeTestId:$r,timezone:r,value:s,onChange:t=>e.editPublishedAt(t.toISOString())}),u?(0,Q.jsx)(ht,{"data-testid":ei,id:t,children:Gc}):null,c&&!l?(0,Q.jsx)(V,{"data-testid":ti,size:`sm`,tone:`secondary`,children:ul}):null]})}var fl={include:`count.posts`,limit:`all`,order:`count.posts desc, name asc`};function pl(e){return e.normalize(`NFD`).replace(/\p{Diacritic}/gu,``).toLowerCase()}function ml(e){return e.name||e.email}function hl(e){return{id:e.id,name:ml(e),email:e.email}}function gl(e,t){let n=pl(t);return[e.name,e.slug,e.email].some(e=>pl(e??``).includes(n))}function _l(e,t){let n=new Map((t??[]).map(e=>[e.id,e])),r=[];for(let t of e){if(!t.id)continue;let e=n.get(t.id);r.push(e?hl(e):{id:t.id,name:t.name||t.email||t.id,email:t.email??``})}return r}function vl({inputId:e,describedBy:t,invalid:n,selected:r,staff:i,loading:a,loadError:o,onRetry:s,onChange:c,onOpen:l}){let u=(0,X.useRef)(null),d=o&&!a,f=(0,X.useCallback)(e=>{e&&l()},[l]);return(0,Q.jsx)(Yn,{describedBy:t,emptyMessage:a?`Loading authors...`:`No authors found`,getKey:e=>e.id,getLabel:ml,inputId:e,inputLabel:`Authors`,inputRef:u,invalid:n,matches:gl,notice:d?(0,Q.jsx)($c,{message:`Couldn’t load authors.`,onRetry:()=>{u.current?.focus(),s()}}):null,options:i,placeholder:`Select authors...`,renderOption:e=>(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{className:`truncate`,children:ml(e)}),(0,Q.jsx)(`span`,{className:`ms-auto truncate text-xs text-muted-foreground`,children:e.email})]}),selected:r,testIds:{field:ni,list:ri,chip:ai},hideSelected:!0,reopenOnRemove:!0,onAdd:e=>c([...r,hl(e)]),onOpenChange:f,onRemove:e=>c(r.filter(t=>t.id!==e))})}function yl({session:e,currentUser:t}){let n=(0,X.useId)(),r=(0,X.useId)(),[i,a]=(0,X.useState)(!1),o=(0,X.useCallback)(()=>a(!0),[]),{data:s,fetchNextPage:c,hasNextPage:l,isFetching:u,isFetchingNextPage:d,isError:f,refetch:p}=le({defaultErrorHandler:!1,enabled:i,requestOptions:Z,searchParams:fl});(0,X.useEffect)(()=>{l&&!d&&!f&&c()},[c,l,d,f]);let m=e.settings.authors,h=_l(m,[...s?.users??[],...t?[t]:[]]),g=h.length===0;return(0,Q.jsxs)(el,{children:[(0,Q.jsx)(K,{htmlFor:n,children:`Authors`}),(0,Q.jsx)(vl,{describedBy:g?r:void 0,inputId:n,invalid:g,loadError:f,loading:u||l,selected:h,staff:s?.users??[],onChange:t=>e.editSettings({authors:t}),onOpen:o,onRetry:()=>void p()}),g?(0,Q.jsx)(ht,{"data-testid":ii,id:r,children:Ic}):null]})}var bl=(0,X.createContext)(null);function xl(){let[e,t]=(0,X.useState)(null),n=(0,X.useCallback)(()=>{let e=document.activeElement;e instanceof HTMLElement&&e.blur(),t(null)},[]);return(0,X.useEffect)(()=>{if(!e)return;let t=e=>{e.key===`Escape`&&!e.defaultPrevented&&n()};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[n,e]),(0,X.useMemo)(()=>({open:e,show:t,close:n}),[n,e])}function Sl(){let e=(0,X.useContext)(bl);if(!e)throw Error(`A settings subview must be rendered inside the settings panel.`);return e}function Cl({id:e,icon:t,label:n,title:r,closeLabel:i,wide:a=!1,contentClassName:o,children:s}){let{open:c,show:l,close:u}=Sl(),d=c?.id===e,f=(0,X.useRef)(null),p=(0,X.useRef)(null),m=(0,X.useRef)(!1);return(0,X.useEffect)(()=>{d?f.current?.focus():m.current&&p.current?.focus(),m.current=d},[d]),d?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`div`,{className:`sticky top-0 z-10 bg-background`,children:[(0,Q.jsxs)(q,{align:`center`,className:`p-3`,gap:`sm`,children:[(0,Q.jsx)(G,{ref:f,"aria-label":i,size:`sm`,variant:`ghost`,onClick:u,children:(0,Q.jsx)(Be,{})}),(0,Q.jsx)(V,{as:`h2`,size:`md`,weight:`semibold`,children:r})]}),(0,Q.jsx)(Sn,{})]}),(0,Q.jsx)(J,{className:z(`px-5 py-4`,o),"data-testid":li,gap:`lg`,children:s})]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`button`,{ref:p,className:`flex w-full items-center gap-2 px-5 py-3 text-left hover:bg-interactive-hover focus-visible:ring-1 focus-visible:ring-focus-ring focus-visible:outline-hidden [&>svg]:size-4 [&>svg]:shrink-0`,type:`button`,onClick:()=>l({id:e,title:r,wide:a}),children:[t,(0,Q.jsx)(V,{as:`span`,className:`flex-1`,size:`sm`,children:n}),(0,Q.jsx)(Fe,{className:`size-4 shrink-0 text-text-tertiary`})]}),(0,Q.jsx)(Sn,{})]})}var wl=[()=>ne(()=>import(`./dist-nmRzULcD.js`).then(e=>e.html()),__vite__mapDeps([0,1,2,3,4,5]),import.meta.url),()=>ne(async()=>{let{Prec:e,keymap:t}=await import(`./esm--rhhUGIG.js`).then(e=>e.n);return{Prec:e,keymap:t}},__vite__mapDeps([6,4,7,1]),import.meta.url).then(({Prec:e,keymap:t})=>e.lowest(t.of([{key:`Escape`,run:e=>(e.setTabFocusMode(2e3),!0)}])))],Tl=`240px`;function El({text:e,helper:t}){return(0,Q.jsxs)(Q.Fragment,{children:[e,` `,(0,Q.jsx)(`code`,{className:`ml-1 font-normal`,children:t})]})}function Dl({session:e,postType:t}){let n=t===`page`?`Page`:`Post`;return(0,Q.jsxs)(Cl,{closeLabel:`Close code injection panel`,icon:(0,Q.jsx)(je,{}),id:`code-injection`,label:`Code injection`,title:`Code injection`,wide:!0,children:[(0,Q.jsx)(lt,{extensions:wl,height:Tl,title:(0,Q.jsx)(El,{helper:`{{ghost_head}}`,text:`${n} header`}),value:e.settings.codeinjection_head??``,onBlur:e.commitSettings,onChange:t=>e.stageSettings({codeinjection_head:t||null})}),(0,Q.jsx)(lt,{extensions:wl,height:Tl,title:(0,Q.jsx)(El,{helper:`{{ghost_foot}}`,text:`${n} footer`}),value:e.settings.codeinjection_foot??``,onBlur:e.commitSettings,onChange:t=>e.stageSettings({codeinjection_foot:t||null})})]})}var Ol=6e4,kl=`(Untitled)`,Al={autosave:0,timed:1,field:2,leave:3,explicit:4,publish:5,schedule:5,revert:5};function jl(e){return e===`autosave`||e===`timed`||e===`field`}function Ml(e){return e===`publish`||e===`schedule`||e===`revert`}function Nl(e){if(e===null)return null;let t=Date.parse(e);return Number.isNaN(t)?e:new Date(t-t%1e3).toISOString()}function Pl(e,t){return t.emailOnly!==void 0&&(e.emailOnly=t.emailOnly),t.newsletter!==void 0&&(e.newsletter=t.newsletter),t.emailSegment!==void 0&&(e.emailSegment=t.emailSegment),e}function Fl(e,t,n={}){switch(e){case`publish`:return Pl({status:`published`,publishedAt:Nl(n.publishedAt===void 0?t.publishedAt:n.publishedAt)},n);case`schedule`:return Pl({status:`scheduled`,publishedAt:Nl(n.publishedAt??null)},n);case`revert`:return{status:`draft`,publishedAt:t.status===`scheduled`?null:Nl(t.publishedAt),emailOnly:!1}}}function Il(e,t){return e.target?e.target:{status:jl(e.kind)?`draft`:t.status,publishedAt:Nl(t.publishedAt)}}function Ll(e,t){return Il(e,t).status!==t.status}var Rl={kind:`autosave`,requiresRevision:!1,requiresReconfirmation:!1},zl={kind:`timed`,requiresRevision:!1,requiresReconfirmation:!1};function Bl(e){return{kind:`dropped`,reason:e}}function Vl(e,t){return{kind:`failed`,error:e,executedAs:t}}function Hl(e,t){for(let n of e)n.resolve(t)}function Ul(e,t){let n=e.requiresRevision||t.some(e=>e.command.requiresRevision);return n===e.requiresRevision?e:{...e,requiresRevision:n}}function Wl(e){return{kind:`unknown`,message:e instanceof Error?e.message:`Save failed`,cause:e}}function Gl(e){return typeof e==`string`&&!Number.isNaN(Date.parse(e))}function Kl(e,t){if(e.kind!==t.kind)return!1;let n=e,r=t;return n.intent===r.intent&&n.pending===r.pending&&n.error===r.error}function ql(e){queueMicrotask(()=>{throw e})}function Jl(e){let t=()=>e.autosaveDebounceMs?.()??3e3,n=e.setTimeout??((e,t)=>globalThis.setTimeout(e,t)),r=e.clearTimeout??(e=>globalThis.clearTimeout(e)),i=e.onListenerError??ql,a=new Set,o=new Set,s={kind:`idle`},c=null,l=null,u=null,d=null,f=null,p=null,m=null,h=null,g=null,_=!1;function v(t){if(!Kl(s,t)){s=t;for(let n of[e.onStateChange,...a]){if(s!==t)break;try{n?.(t)}catch(e){i(e)}}for(let e of[...o])e()}}function y(){return s.kind===`halted`||s.kind===`crashed`}function b({keepHalt:e=!0}={}){return d||y()||_?s:c?u?{kind:`pending-coalesced`,intent:c.command.kind,pending:u.command.kind}:{kind:`saving`,intent:c.command.kind}:e&&(s.kind===`error`||s.kind===`conflict`)?s:f||p?{kind:`debouncing`}:{kind:`idle`}}function x(e){return m!==null&&e.version===m}function S(e){return h!==null&&e.updatedAt===h}function C(e){return e.status===`draft`?x(e)?`suppressed`:S(e)?`conflict`:null:`not-draft`}function w(e){for(let t of[f,p])t&&(r(t.handle),e.push(...t.waiters));f=null,p=null}function T(e){let i=f?f.waiters:[];f&&r(f.handle),e&&i.push(e),f={handle:n(()=>{f=null,O(Rl,i)},t()),waiters:i},v(b())}function E(){if(p)return;let e=[];p={handle:n(()=>{p=null,O(zl,e)},Ol),waiters:e},v(b())}function D(e,t){if(!u){u={command:Ul(e,t),waiters:t};return}let n=u.command;if(Ml(e.kind)&&Ml(u.command.kind)){let t=u.waiters.filter(e=>Ml(e.command.kind));u.waiters=u.waiters.filter(e=>!Ml(e.command.kind)),Hl(t,{kind:`superseded`,by:e.kind}),n=e}else Al[e.kind]>Al[u.command.kind]&&(n=e);u.waiters.push(...t),u.command=Ul(n,u.waiters)}function O(e,t){if(c||d){D(e,t),v(b());return}te({command:e,waiters:t})}function k(){if(c)return;let e=u;u=null,e?te(e):v(b())}function A(e,t){Hl(e.waiters,Vl(t,e.command.kind)),v({kind:`error`,intent:e.command.kind,error:t}),k()}function j(e){return e.trim()?e:kl}function ee(t,n){return t.slug&&t.status!==`draft`?Promise.resolve(null):e.slug.fromTitle(j(t.title),t.id,n)}function M(e,t,n){return{command:e,snapshot:t,title:j(t.title),slug:n?.source===`generated`?n.slug:t.slug,target:Il(e,t),saveRevision:e.requiresRevision}}function N(e,t){let n=P(e,t);return n?(c=null,l=null,Hl(e.waiters,Bl(n)),k(),!0):!1}function P(e,t){return jl(e.command.kind)?t.status===`draft`?t.isDirty?C(t):`clean`:`not-draft`:null}async function te(t){w(t.waiters),t.command=Ul(t.command,t.waiters);let n;try{n=e.getSnapshot()}catch(e){A(t,Wl(e));return}let r=P(t,n);if(r){Hl(t.waiters,Bl(r)),k();return}c=t;let i=new AbortController;l=i,v(b());let a;try{if(await e.slug.settled(),_||(n=e.getSnapshot(),N(t,n)))return;let r=await ee(n,i.signal);if(_||r&&(n=e.getSnapshot(),N(t,n)))return;let o=await e.prepare(M(t.command,n,r),i.signal);if(_)return;if(!o.ok)a={ok:!1,error:o.error};else{if(a=await e.execute(o.prepared,i.signal),_)return;a.ok&&await e.reconcile(o.prepared,a.result)}}catch(e){a={ok:!1,error:Wl(e)}}if(!_){if(c=null,l=null,a.ok){m=null,h=null,Hl(t.waiters,{kind:`saved`,result:a.result,executedAs:t.command.kind}),k();return}ne(t,n,a.error)}}function ne(e,t,n){let r=e.command.kind;if(n.kind===`session-invalid`){d={slot:e,error:n},v({kind:`reauth-pending`,intent:r});return}if(n.kind===`not-found`){let i=[];w(i),u&&=(i.push(...u.waiters),null),Hl(i,Bl(`halted`)),Hl(e.waiters,Vl(n,r)),v({kind:t.id?`halted`:`crashed`});return}if(n.kind===`conflict`){h=t.updatedAt;let i=[];w(i),u&&=(i.push(...u.waiters),null),Hl(i,Bl(`conflict`)),Hl(e.waiters,Vl(n,r)),v({kind:`conflict`,intent:r,error:n});return}n.kind===`validation`&&(m=t.version),n.kind===`host-limit`&&!Ll(e.command,t)&&(m=t.version),A(e,n)}function re(e,t,n){if(Ml(e)&&t){let r=Fl(e,t,n);return{kind:e,target:r,requiresRevision:!1,requiresReconfirmation:r.status!==t.status}}return{kind:e,requiresRevision:e===`explicit`||e===`leave`,requiresReconfirmation:!1}}function F(t,n){return new Promise(r=>{if(_){r(Bl(`disposed`));return}if(y()){r(Bl(`halted`));return}let i=null;if(jl(t)||Ml(t))try{i=e.getSnapshot()}catch(e){r(Vl(Wl(e),t));return}let a={command:re(t,i,n),resolve:r};if(!jl(t)||!i){let e=[a];w(e),O(a.command,e);return}let o=C(i);if(o){r(Bl(o));return}if(t===`field`){O(a.command,[a]);return}if(E(),i.id===null){O(a.command,[a]);return}T(a)})}function I(){try{return e.getSnapshot()}catch{return null}}function ie(e,t){return t?Ll(e,t):e.requiresReconfirmation}function L(){if(!d||_)return;let e=u?[d.slot,u]:[d.slot];d=null,u=null;let t=I(),n=!1;for(let r of e)for(let e of r.waiters)ie(e.command,t)?(e.resolve({kind:`needs-retry`}),n=!0):D(e.command,[e]);n&&!u&&R(t),k()}function R(e){if(!e){E(),T();return}if(!(e.status!==`draft`||!e.isDirty||C(e))){if(E(),e.id===null){O(Rl,[]);return}T()}}function z(){if(!d||_)return;let{slot:e,error:t}=d;d=null,Hl(e.waiters,Vl(t,e.command.kind));let n=[];w(n),u&&=(n.push(...u.waiters),null);for(let e of n)e.resolve(Vl(t,e.command.kind));v({kind:`error`,intent:e.command.kind,error:t})}function ae(e){let t=e??I()?.updatedAt;return _||s.kind!==`conflict`||!Gl(t)||h!==null&&t===h?!1:(h=null,v(b({keepHalt:!1})),!0)}function B(){return new Promise(e=>{let t=()=>{(!c&&!u||d||_||y())&&(o.delete(t),e())};o.add(t),t()})}function oe(){return g||=se().finally(()=>{g=null}),g}async function se(){let e=!1;for(;;){if(_)return`proceed`;let t=I();if(!t||d)return`confirm`;if(y())return t.isDirty?`confirm`:`proceed`;let n=!e&&t.isDirty&&t.status===`draft`&&!S(t);if(n&&t.changedSinceLastRevision){e=!0,await F(`leave`);continue}if(c||u){await B();continue}if(!t.isDirty)return`proceed`;if(n&&(f||p)){e=!0,await F(`leave`);continue}return`confirm`}}function V(e){return a.add(e),()=>{a.delete(e)}}function ce(){if(_)return;_=!0,l?.abort(),l=null;let e=[];w(e);for(let t of[c,u,d?.slot??null])t&&e.push(...t.waiters);c=null,u=null,d=null,Hl(e,Bl(`disposed`)),v({kind:`disposed`}),a.clear()}return{dispatch:F,getState:()=>s,subscribe:V,reauthSucceeded:L,reauthAbandoned:z,contentReloaded:ae,leaveRequested:oe,dispose:ce}}function Yl({session:e,postType:t}){let n=I(),r=a(),{mutateAsync:i}=k(),{mutateAsync:o}=Rn(),[c,l]=(0,X.useState)(!1),[u,d]=(0,X.useState)(!1),[f,p]=(0,X.useState)(null),m=e.loadedRecord?.id??e.createdId,h=t===`page`?`page`:`post`;if(!m)return null;let g=e.bind.title.trim()||e.loadedRecord?.title||`(Untitled)`,_=e=>{u||(l(e),p(null))},v=async()=>{d(!0),p(null);try{await(t===`page`?o({id:m,sessionExpiryRedirect:!1}):i({id:m,sessionExpiryRedirect:!1}))}catch(e){p(e instanceof x?`Your session expired. Sign in again in a new tab, then try deleting again.`:s(e,`Couldn’t delete this ${h}.`)),d(!1);return}e.dispose(),r.invalidateQueries({queryKey:[t===`page`?Vn:M],refetchType:`none`}),n(t===`page`?`/pages`:`/posts`,{replace:!0})};return(0,Q.jsx)(el,{children:(0,Q.jsxs)(Wt,{open:c,onOpenChange:_,children:[(0,Q.jsx)(It,{asChild:!0,children:(0,Q.jsxs)(G,{className:`w-full border-destructive text-destructive hover:bg-destructive hover:text-destructive-foreground`,"data-testid":oi,variant:`outline`,children:[(0,Q.jsx)(De,{}),`Delete `,h]})}),(0,Q.jsxs)(sn,{"data-testid":si,children:[(0,Q.jsxs)(Gt,{children:[(0,Q.jsxs)(Nt,{children:[`Are you sure you want to delete this `,h,`?`]}),(0,Q.jsxs)(Vt,{children:[`You’re about to delete "`,(0,Q.jsx)(`strong`,{children:g}),`". This is permanent! We warned you, k?`]})]}),f?(0,Q.jsx)(V,{className:`text-destructive`,"data-testid":ci,role:`alert`,size:`sm`,children:f}):null,(0,Q.jsxs)(Ht,{children:[(0,Q.jsx)(Dt,{disabled:u,children:`Cancel`}),(0,Q.jsx)(G,{disabled:u,variant:`destructive`,onClick:()=>void v(),children:`Delete`})]})]})]})})}function Xl(e){let{title:t,excerpt:n,onExcerptChange:r}=e.bind,{commitSettings:i,createdId:a,dispose:o,editPublishedAt:s,editSettings:c,editSlug:l,loadedRecord:u,publishTime:d,restoreRevision:f,settings:p,slug:m,stageSettings:h}=e,g=(0,X.useMemo)(()=>({title:t,excerpt:n,onExcerptChange:r}),[t,n,r]);return(0,X.useMemo)(()=>({bind:g,commitSettings:i,createdId:a,dispose:o,editPublishedAt:s,editSettings:c,editSlug:l,loadedRecord:u,publishTime:d,restoreRevision:f,settings:p,slug:m,stageSettings:h}),[g,i,a,o,s,c,l,u,d,f,p,m,h])}function $(e){return{text:e,mono:!0}}function Zl(e){let t=e?{text:`⌘`,tooltip:`Command`}:{text:`Ctrl`,mono:!0},n=e?{text:`⌃`,tooltip:`Control`}:{text:`Ctrl`,mono:!0},r=e?{text:`⌥`,tooltip:`Option`}:{text:`Alt`,mono:!0},i=e?{text:`⇧`,tooltip:`Shift`}:$(`Shift`),a=e?{text:`↩`,tooltip:`Return`}:$(`Enter`);return[{title:`Formatting`,shortcuts:[{label:`Bold`,style:`bold`,keys:[t,$(`B`)]},{label:`Emphasize`,style:`italic`,keys:[t,$(`I`)]},{label:`Underline`,style:`underline`,keys:[t,$(`U`)]},{label:`Strike through`,style:`strikethrough`,keys:[n,r,$(`U`)]},{label:`Highlight`,style:`highlight`,keys:[t,r,$(`H`)]},{label:`Link`,style:`link`,keys:[t,$(`K`)]},{label:`Inline code`,style:`code`,keys:[n,i,$(`K`)]},{label:`List`,keys:[n,$(`L`)]},{label:`Ordered list`,keys:[n,r,$(`L`)]},{label:`Quote`,keys:[n,$(`Q`)]},{label:`H2`,keys:[n,r,$(`2`)]},{label:`H3`,keys:[n,r,$(`3`)]}]},{title:`Editing`,shortcuts:[{label:`Toggle card edit mode`,keys:[t,a]},{label:`Paste without formatting`,keys:[t,i,$(`V`)]},{label:`Indent`,keys:[$(`tab`)]},{label:`Unindent`,keys:[i,$(`tab`)]},{label:`Line break`,keys:[i,a]},{label:`Undo`,keys:[t,$(`Z`)]},{label:`Redo`,keys:[t,i,$(`Z`)]}]},{title:`Application`,shortcuts:[{label:`Save`,keys:[t,$(`S`)]},{label:`Preview`,keys:[t,$(`P`)]},{label:`Publish`,keys:[t,i,$(`P`)]}]},{title:`Inserting`,shortcuts:[{label:`Code block`,keys:[$("```"),a]},{label:`Language code block`,keys:[$("```html"),a]},{label:`Emoji`,keys:[$(`:emoji_name:`)]},{label:`Image`,keys:[$(`/image`)]},{label:`Markdown`,keys:[$(`/md`)]},{label:`HTML`,keys:[$(`/html`)]},{label:`Gallery`,keys:[$(`/gallery`)]},{label:`Divider`,keys:[$(`---`),{text:`or`,mono:!0,plain:!0},$(`/hr`)]},{label:`Bookmark`,keys:[$(`/bookmark [url]`)]},{label:`Public preview`,keys:[$(`/paywall`)]},{label:`Button`,keys:[$(`/button`)]},{label:`Callout`,keys:[$(`/callout`)]},{label:`Toggle`,keys:[$(`/toggle`)]},{label:`Video`,keys:[$(`/video`)]},{label:`Audio`,keys:[$(`/audio`)]},{label:`File`,keys:[$(`/file`)]},{label:`Product`,keys:[$(`/product`)]},{label:`Header`,keys:[$(`/header`)]},{label:`GIF`,keys:[$(`/gif`)]},{label:`Signup`,keys:[$(`/signup`)]},{label:`YouTube`,keys:[$(`/youtube [url]`)]},{label:`X (Twitter)`,keys:[$(`/twitter [url]`)]},{label:`Unsplash`,keys:[$(`/unsplash`)]},{label:`Vimeo`,keys:[$(`/vimeo [url]`)]},{label:`CodePen`,keys:[$(`/codepen [url]`)]},{label:`Spotify`,keys:[$(`/spotify [url]`)]},{label:`SoundCloud`,keys:[$(`/soundcloud [url]`)]},{label:`Other embed`,keys:[$(`/embed [url]`)]}]}]}var Ql={bold:`font-semibold`,italic:`italic`,underline:`underline`,strikethrough:`line-through`,highlight:`bg-yellow-200 text-black`,link:`text-ghostaccent`,code:`font-mono`};function $l({token:e}){let t=(0,Q.jsx)(Zt,{"aria-label":e.tooltip,className:z(e.mono&&`font-mono`,e.plain&&`bg-transparent`,e.tooltip&&`pointer-events-auto`),role:e.tooltip?`img`:void 0,children:e.text});return e.tooltip?(0,Q.jsxs)(oe,{children:[(0,Q.jsx)(B,{asChild:!0,children:(0,Q.jsx)(`span`,{className:`inline-flex`,children:t})}),(0,Q.jsx)(ae,{children:e.tooltip})]}):t}function eu({shortcut:e}){return(0,Q.jsxs)(q,{"data-testid":Ci,gap:`sm`,justify:`between`,children:[(0,Q.jsx)(`dt`,{children:(0,Q.jsx)(V,{as:`span`,className:e.style&&Ql[e.style],size:`sm`,children:e.label})}),(0,Q.jsx)(`dd`,{children:(0,Q.jsx)(Qt,{children:e.keys.map(e=>(0,Q.jsx)($l,{token:e},e.text))})})]})}function tu(){let e=(0,X.useMemo)(()=>Zl(zt()),[]);return(0,Q.jsx)(Cl,{closeLabel:`Close keyboard shortcuts panel`,icon:(0,Q.jsx)(Ke,{}),id:`keyboard-shortcuts`,label:`Keyboard shortcuts`,title:`Keyboard shortcuts`,children:e.map(e=>(0,Q.jsxs)(J,{gap:`sm`,children:[(0,Q.jsx)(V,{as:`h3`,size:`sm`,weight:`medium`,children:e.title}),(0,Q.jsx)(`dl`,{className:`flex flex-col gap-2`,children:e.shortcuts.map(e=>(0,Q.jsx)(eu,{shortcut:e},e.label))})]},e.title))})}var nu=60,ru=149,iu=150,au=`(Untitled)`,ou=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],su=`Search engines will automatically show a custom preview of content related to the search term here if no custom meta description is set.`;function cu(e){return Array.from(e).length}function lu(e,t){let n=t-3,r=Array.from(e);return r.length>n?`${r.slice(0,n).join(``)}...`:e}function uu(e,t){return e||t||au}function du(e,t){return e||t||``}function fu({siteUrl:e,slug:t,canonicalUrl:n}){let r=[];if(n)try{let e=new URL(n);r.push(e.host,...e.pathname.split(`/`).filter(Boolean))}catch{return``}else{let n=new URL(e);r.push(n.host,...n.pathname.split(`/`).filter(Boolean),t)}return r.join(` › `)}function pu(e){return lu(e,nu)}function mu(e){return e?lu(e,ru):su}function hu(e){return lu(e,iu)}function gu(e){return`${String(e.getDate()).padStart(2,`0`)} ${ou[e.getMonth()]} ${e.getFullYear()}`}function _u(e,t,n){let r=(0,X.useId)(),i=(0,X.useId)(),a=e.settings[t]??``,o=Zc(t,e.settings),s=[n,o?i:void 0].filter(Boolean).join(` `);return{value:a,error:o,fieldProps:{id:r,value:a,"aria-invalid":!!o,"aria-describedby":s||void 0,onChange:n=>e.stageSettings({[t]:n.target.value||null}),onBlur:e.commitSettings},errorProps:{id:i}}}function vu({id:e,value:t,recommended:n}){let r=cu(t);return(0,Q.jsxs)(V,{id:e,size:`sm`,tone:`secondary`,children:[`Recommended: `,(0,Q.jsx)(`b`,{children:L(n)}),` characters. You've used`,` `,(0,Q.jsx)(`span`,{className:z(`font-bold`,r>n?`text-destructive`:`text-state-success`),children:L(r)})]})}function yu({url:e,title:t,description:n}){return(0,Q.jsxs)(J,{className:`rounded-md border border-border p-4`,"data-testid":fi,gap:`xs`,children:[(0,Q.jsx)(V,{size:`sm`,tone:`secondary`,children:e}),(0,Q.jsx)(V,{size:`md`,weight:`medium`,children:pu(t)}),(0,Q.jsxs)(V,{size:`sm`,tone:`secondary`,children:[gu(new Date),` — `,mu(n)]})]})}function bu({session:e,siteUrl:t}){let n=(0,X.useId)(),r=(0,X.useId)(),i=_u(e,`meta_title`,n),a=_u(e,`meta_description`,r),o=uu(i.value,e.bind.title),s=du(a.value,e.settings.custom_excerpt??``),c=fu({siteUrl:t,slug:e.slug,canonicalUrl:e.settings.canonical_url??``});return(0,Q.jsxs)(Cl,{closeLabel:`Close meta data panel`,icon:(0,Q.jsx)(Ue,{}),id:`meta-data`,label:`Meta data`,title:`Meta data`,wide:!0,children:[(0,Q.jsxs)(_t,{children:[(0,Q.jsx)(gt,{htmlFor:i.fieldProps.id,children:`Meta title`}),(0,Q.jsx)(jt,{"data-testid":ui,placeholder:o,...i.fieldProps}),(0,Q.jsx)(vu,{id:n,recommended:60,value:i.value}),(0,Q.jsx)(ht,{...i.errorProps,children:i.error})]}),(0,Q.jsxs)(_t,{children:[(0,Q.jsx)(gt,{htmlFor:a.fieldProps.id,children:`Meta description`}),(0,Q.jsx)(xt,{"data-testid":di,placeholder:hu(s),rows:3,...a.fieldProps}),(0,Q.jsx)(vu,{id:r,recommended:145,value:a.value}),(0,Q.jsx)(ht,{...a.errorProps,children:a.error})]}),(0,Q.jsxs)(J,{gap:`sm`,children:[(0,Q.jsx)(V,{size:`sm`,weight:`medium`,children:`Search Engine Result Preview`}),(0,Q.jsx)(yu,{description:s,title:o,url:c})]})]})}var xu=ye(he({id:W().optional(),lexical:W().nullish(),title:W().nullish(),custom_excerpt:W().nullish(),feature_image:W().nullish(),feature_image_alt:W().nullish(),feature_image_caption:W().nullish(),post_status:W().nullish(),reason:W().nullish(),created_at:W().optional(),author:he({name:W().nullish(),profile_image:W().nullish()}).nullish()}));function Su(e){let t=xu.safeParse(e);return t.success?t.data:[]}function Cu(e){let t=Date.parse(e.created_at??``);return Number.isNaN(t)?0:t}function wu(e){return!e||e.lexical===null||e.lexical===void 0?!1:e.status!==`published`&&e.status!==`sent`?!0:!(`email_only`in e&&e.email_only)}function Tu(e=[]){let t=Su(e).sort((e,t)=>Cu(t)-Cu(e));return t.map((e,n)=>{let r=e.post_status===`published`&&t[n+1]?.post_status===`draft`,i=[];return n===0&&i.push(`latest`),r&&i.push(`published`),e.reason===`unpublished`&&i.push(`unpublished`),{id:e.id??String(n),lexical:e.lexical??null,title:e.title??``,customExcerpt:e.custom_excerpt??null,featureImage:e.feature_image??null,featureImageAlt:e.feature_image_alt??null,featureImageCaption:e.feature_image_caption??null,authorName:e.author?.name||`Deleted staff user`,authorImage:e.author?.profile_image??null,createdAt:e.created_at??``,tags:i}})}function Eu(e,t){let n=typeof t==`string`&&za.default.tz.zone(t)?t:`Etc/UTC`,r=za.default.tz(e,n);return r.isValid()?r.format(`D MMM YYYY, HH:mm`):``}function Du(e){return nn.sanitize(e??``,{ALLOWED_TAGS:[`a`,`b`,`i`,`span`],ALLOWED_ATTR:[`href`,`style`],ALLOW_DATA_ATTR:!1,ALLOW_ARIA_ATTR:!1})}function Ou({editor:e,lexical:t,cardConfig:n,darkMode:r}){let{KoenigComposer:i,KoenigEditor:a}=e.read(),o=(0,X.useCallback)(e=>{(e?.editorInstance)?.setEditable(!1)},[]);return(0,Q.jsx)(`div`,{className:`koenig-react-editor koenig-lexical`,"data-testid":Ai,children:(0,Q.jsx)(i,{cardConfig:n,darkMode:r,fileUploader:pc,initialEditorState:t??void 0,onError:nc,children:(0,Q.jsx)(a,{darkMode:r,placeholderText:``,registerAPI:o,readOnly:!0})})})}function ku({revision:e,cardConfig:t,darkMode:n,showExcerpt:r,currentTitle:i,currentExcerpt:a}){let o=er(),s=Du(e.featureImageCaption),c=e.title||i,l=e.customExcerpt??a;return(0,Q.jsx)(`div`,{className:`mx-auto w-full max-w-[740px]`,"data-testid":Ei,children:(0,Q.jsx)($n,{name:`this version`,children:(0,Q.jsxs)(X.Suspense,{fallback:(0,Q.jsx)(q,{className:`py-10`,justify:`center`,children:(0,Q.jsx)(Mt,{size:`lg`})}),children:[e.featureImage?(0,Q.jsxs)(`figure`,{className:`mb-6`,children:[(0,Q.jsx)(`img`,{alt:e.featureImageAlt??``,className:`w-full`,"data-testid":ki,src:e.featureImage}),s?(0,Q.jsx)(`figcaption`,{dangerouslySetInnerHTML:{__html:s},className:`mt-2 text-center text-sm text-text-secondary`}):null]}):null,(0,Q.jsx)(`div`,{className:`heading-font-features mb-4 text-4xl leading-tight font-bold tracking-tight text-foreground`,"data-testid":Di,children:c}),r?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{className:`text-xl leading-normal tracking-tight text-text-secondary`,"data-testid":Oi,children:l}),l?(0,Q.jsx)(`hr`,{className:`mt-4 mb-6 border-border`}):null]}):null,e.lexical===null?(0,Q.jsx)(V,{tone:`secondary`,children:`This version has no body content to restore.`}):(0,Q.jsx)(Ou,{cardConfig:t,darkMode:n,editor:o,lexical:e.lexical},e.id)]})})})}var Au={latest:`Latest`,published:`Published`,unpublished:`Unpublished`},ju={latest:`bg-surface-elevated-2 text-text-secondary`,published:`bg-state-success text-foreground`,unpublished:`bg-state-warning text-foreground`};function Mu({revision:e,timezone:t,selected:n,restorable:r,onSelect:i,onRestore:a}){return(0,Q.jsxs)(`li`,{className:z(`rounded-md px-3 py-2`,n&&`bg-surface-elevated-2`),children:[(0,Q.jsxs)(`button`,{"aria-current":n,className:`w-full text-left`,type:`button`,onClick:i,children:[(0,Q.jsxs)(q,{gap:`sm`,children:[(0,Q.jsx)(V,{size:`sm`,weight:`medium`,children:Eu(e.createdAt,t)}),e.tags.map(e=>(0,Q.jsx)(`span`,{className:z(`rounded-sm px-1.5 py-0.5 text-2xs font-medium`,ju[e]),children:Au[e]},e))]}),(0,Q.jsxs)(q,{className:`mt-1`,gap:`sm`,children:[(0,Q.jsx)(qt,{className:`size-6`,...pn({name:e.authorName}),src:e.authorImage}),(0,Q.jsx)(V,{size:`sm`,tone:`secondary`,children:e.authorName})]})]}),n&&r?(0,Q.jsx)(G,{className:`mt-2 w-full`,size:`sm`,variant:`outline`,onClick:a,children:`Restore`}):null]})}function Nu({open:e,revisions:t,postType:n,isPublished:r,timezone:i,cardConfig:a,darkMode:o,showExcerpt:s,currentTitle:c,currentExcerpt:l,onRestore:u,onOpenChange:d,onCloseAutoFocus:f,restoreError:p}){let[m,h]=(0,X.useState)(0),[g,_]=(0,X.useState)(null),[v,y]=(0,X.useState)(!1),b=t[m],x=async e=>{if(e.preventDefault(),!g||v)return;y(!0);let t=await u(g);if(y(!1),_(null),t){w.success(`Revision restored.`),d(!1);return}w.error(`Failed to restore revision.`)};return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(Ea,{"data-testid":wi,layout:`header`,open:e,title:`${n===`page`?`Page`:`Post`} history`,onCloseAutoFocus:f,onOpenChange:e=>!v&&d(e),children:(0,Q.jsxs)(q,{align:`stretch`,className:`min-h-0`,gap:`none`,children:[(0,Q.jsx)(`div`,{className:`min-w-0 flex-1 overflow-y-auto bg-surface-panel p-8`,children:b?(0,Q.jsx)(ku,{cardConfig:a,currentExcerpt:l,currentTitle:c,darkMode:o,revision:b,showExcerpt:s}):(0,Q.jsxs)(V,{"data-testid":Ei,tone:`secondary`,children:[`This `,n,` has no saved versions yet.`]})}),(0,Q.jsxs)(J,{className:`w-[320px] shrink-0 overflow-y-auto border-l border-border p-3`,gap:`none`,children:[p?(0,Q.jsx)(V,{className:`mb-3 text-destructive`,role:`alert`,size:`sm`,children:p}):null,(0,Q.jsx)(`ul`,{"data-testid":Ti,children:t.map((e,t)=>(0,Q.jsx)(Mu,{restorable:t!==0&&e.lexical!==null,revision:e,selected:t===m,timezone:i,onRestore:()=>_(e),onSelect:()=>h(t)},e.id))})]})]})}),(0,Q.jsx)(Wt,{open:!!g,onOpenChange:e=>!e&&!v&&_(null),children:(0,Q.jsxs)(sn,{className:Ec,"data-testid":ji,overlayClassName:Ec,children:[(0,Q.jsxs)(Gt,{children:[(0,Q.jsx)(Nt,{children:r?`Restore version for published ${n}?`:`Restore this version?`}),(0,Q.jsx)(Vt,{children:r?`Heads up! This ${n} has already been published, restoring a previous version will automatically update the ${n} on your site.`:`Replace your existing draft with this version of the ${n}.`})]}),(0,Q.jsxs)(Ht,{children:[(0,Q.jsx)(Dt,{asChild:!0,children:(0,Q.jsx)(G,{disabled:v,variant:`outline`,children:`Cancel`})}),(0,Q.jsx)(ln,{asChild:!0,children:(0,Q.jsx)(G,{disabled:v,onClick:e=>void x(e),children:`Restore`})})]})]})})]})}function Pu({session:e,postType:t,cardConfig:n,showExcerpt:r,state:i}){let[a,o]=(0,X.useState)(!1),s=(0,X.useRef)(null),{darkMode:c}=se(),l=Ca(),u=e.loadedRecord,d=(0,X.useMemo)(()=>Tu(u?.post_revisions),[u]);return wu(u)?(0,Q.jsxs)(el,{children:[(0,Q.jsx)(`button`,{ref:s,className:`-mx-2 rounded-md px-2 py-1 text-left hover:bg-surface-elevated-2`,"data-testid":Si,type:`button`,onClick:()=>o(!0),children:(0,Q.jsxs)(q,{gap:`sm`,justify:`between`,children:[(0,Q.jsxs)(q,{gap:`sm`,children:[(0,Q.jsx)(Re,{className:`size-4 text-text-secondary`}),(0,Q.jsxs)(V,{size:`sm`,children:[t===`page`?`Page`:`Post`,` history`]})]}),(0,Q.jsx)(Fe,{className:`size-4 text-text-secondary`})]})}),a?(0,Q.jsx)(Nu,{cardConfig:n,currentExcerpt:e.settings.custom_excerpt??null,currentTitle:u?.title??``,darkMode:c,isPublished:u?.status===`published`,open:a,postType:t,restoreError:i.kind===`error`&&i.error.kind===`session-invalid`||i.kind===`reauth-pending`?`Your session expired. Sign in again in a new tab, then try restoring again.`:void 0,revisions:d,showExcerpt:r,timezone:l,onCloseAutoFocus:e=>{e.preventDefault(),s.current?.focus()},onOpenChange:o,onRestore:t=>e.restoreRevision({lexical:t.lexical,title:t.title,custom_excerpt:r?t.customExcerpt??e.settings.custom_excerpt:e.settings.custom_excerpt,feature_image:t.featureImage,feature_image_alt:t.featureImageAlt,feature_image_caption:t.featureImageCaption})}):null]}):null}var Fu=[`url`,`publish-date`,`tags`,`access`,`excerpt`,`authors`,`template`,`show-title-and-feature-image`,`featured`,`post-history`,`code-injection`,`meta-data`,`x-card`,`facebook-card`,`keyboard-shortcuts`,`delete`],Iu=`show_title_and_feature_image`,Lu=`Uh-oh. Looks like your theme doesn't support this feature.`,Ru=`https://docs.ghost.org/themes/helpers/`;function zu({session:e,currentUser:t}){let n=(0,X.useId)(),r=e.settings.show_title_and_feature_image??!0,{data:i}=wt({enabled:!(t&&ue(t))&&!r,defaultErrorHandler:!1,requestOptions:Z}),a=i?.themes?.[0],o=!!a&&[...a.errors??[],...a.warnings??[]].some(e=>Et(e,Iu));return(0,Q.jsxs)(el,{children:[(0,Q.jsxs)(q,{gap:`sm`,justify:`between`,children:[(0,Q.jsx)(K,{htmlFor:n,children:`Show title and feature image`}),(0,Q.jsx)(st,{checked:r,"data-testid":Rr,id:n,onCheckedChange:t=>e.editSettings({show_title_and_feature_image:t})})]}),!r&&o?(0,Q.jsxs)(V,{"data-testid":zr,size:`sm`,tone:`secondary`,children:[Lu,` `,(0,Q.jsx)(`a`,{className:`underline`,href:Ru,rel:`noopener noreferrer`,target:`_blank`,children:`Learn more`})]}):null]})}var Bu={id:`x-card`,name:`X`,icon:`twitter-x`,titleKey:`twitter_title`,descriptionKey:`twitter_description`,imageKey:`twitter_image`,siteImageKey:`siteTwitterImage`,titleTestId:mi,descriptionTestId:hi,previewTestId:gi,previewImageTestId:_i,imageTestId:pi,previewRows:[`title`,`description`,`domain`],truncatesPreviewTitle:!1},Vu={id:`facebook-card`,name:`Facebook`,icon:`facebook`,titleKey:`og_title`,descriptionKey:`og_description`,imageKey:`og_image`,siteImageKey:`siteOgImage`,titleTestId:vi,descriptionTestId:yi,previewTestId:bi,previewImageTestId:xi,previewRows:[`domain`,`title`,`description`],truncatesPreviewTitle:!0};function Hu({own:e,metaTitle:t,title:n}){return e||uu(t,n)}function Uu({own:e,customExcerpt:t,metaDescription:n,postExcerpt:r,siteDescription:i}){return e||t||n||r||i||``}function Wu({own:e,featureImage:t,siteSocialImage:n,siteCoverImage:r}){return e||t||n||r||``}function Gu(e){return e.replace(/^https?:\/\//,``).replace(/\/$/,``)}function Ku({network:e,session:t,siteUrl:n,featureImage:r,cardConfig:i}){let a=_u(t,e.titleKey),o=_u(t,e.descriptionKey),s=t.settings[e.imageKey]??``,c=`${e.name} image`,l=Hu({own:a.value,metaTitle:t.settings.meta_title??``,title:t.bind.title}),u=Uu({own:o.value,customExcerpt:t.settings.custom_excerpt??``,metaDescription:t.settings.meta_description??``,postExcerpt:t.loadedRecord?.excerpt??``,siteDescription:i.siteDescription}),d=Wu({own:s,featureImage:r??``,siteSocialImage:i[e.siteImageKey]??``,siteCoverImage:i.siteCoverImage??``}),f=(0,X.useCallback)(n=>t.editSettings({[e.imageKey]:n}),[e.imageKey,t]),p=lc(c,f),m=t=>t===`title`?(0,Q.jsx)(V,{size:`md`,weight:`medium`,children:e.truncatesPreviewTitle?lu(l,140):l},t):t===`description`?(0,Q.jsx)(V,{size:`sm`,tone:`secondary`,children:lu(u,140)},t):(0,Q.jsx)(V,{size:`sm`,tone:`secondary`,children:Gu(n)},t);return(0,Q.jsxs)(Cl,{closeLabel:`Close ${e.name} card panel`,icon:(0,Q.jsx)(nr,{className:`size-4`,name:e.icon}),id:e.id,label:`${e.name} card`,title:`${e.name} card`,wide:!0,children:[(0,Q.jsx)(cc,{src:s||null,subject:c,testId:e.imageTestId,unsplashEnabled:!!i.unsplash,upload:p,onChange:f}),(0,Q.jsxs)(_t,{children:[(0,Q.jsxs)(gt,{htmlFor:a.fieldProps.id,children:[e.name,` title`]}),(0,Q.jsx)(jt,{"data-testid":e.titleTestId,placeholder:lu(l,40),...a.fieldProps}),(0,Q.jsx)(ht,{...a.errorProps,children:a.error})]}),(0,Q.jsxs)(_t,{children:[(0,Q.jsxs)(gt,{htmlFor:o.fieldProps.id,children:[e.name,` description`]}),(0,Q.jsx)(xt,{"data-testid":e.descriptionTestId,placeholder:lu(u,150),rows:3,...o.fieldProps}),(0,Q.jsx)(ht,{...o.errorProps,children:o.error})]}),(0,Q.jsxs)(J,{gap:`sm`,children:[(0,Q.jsxs)(V,{size:`sm`,weight:`medium`,children:[e.name,` preview`]}),(0,Q.jsxs)(J,{className:`overflow-hidden rounded-md border border-border`,"data-testid":e.previewTestId,gap:`none`,children:[d?(0,Q.jsx)(`img`,{alt:``,className:`h-[220px] w-full object-cover`,"data-testid":e.previewImageTestId,src:d}):null,(0,Q.jsx)(J,{className:`bg-surface-elevated p-4`,gap:`xs`,children:e.previewRows.map(m)})]})]})]})}var qu=191;function Ju({session:e}){let t=(0,X.useId)(),n=e.settings.tags,r=t=>{t!==n&&e.editSettings({tags:t})};return(0,Q.jsxs)(el,{children:[(0,Q.jsx)(K,{htmlFor:t,children:`Tags`}),(0,Q.jsx)(Qn,{defaultErrorHandler:!1,inputId:t,inputLabel:`Tags`,maxLength:qu,requestOptions:Z,selected:n,testIds:{field:Kr,input:qr,list:Jr,chip:Yr},deferSearch:!0,hideSelected:!0,onAdd:e=>{r(Zn(n,e))},onRemove:e=>{r(Jn(n,e))}})]})}var Yu=`default`,Xu=`Default`;function Zu(e){return e?.find(e=>e.active)?.templates??[]}function Qu(e,t){return!e.for||e.for.includes(t)}function $u(e){return e.filter(e=>!e.slug).sort((e,t)=>e.name.localeCompare(t.name))}function ed(e,t,n){return n?e.find(e=>!!e.slug&&Qu(e,t)&&e.slug===n):void 0}function td(e,t){return e.some(e=>e.filename===t)&&t?t:Yu}function nd({session:e,postType:t}){let n=(0,X.useId)(),{data:r,isError:i,refetch:a}=Tt({defaultErrorHandler:!1,requestOptions:Z}),o=Zu(r?.themes),s=$u(o),c=ed(o,t,e.slug);return i?(0,Q.jsx)(el,{children:(0,Q.jsx)($c,{message:`Couldn’t load templates.`,onRetry:()=>void a()})}):s.length===0?null:(0,Q.jsxs)(el,{children:[(0,Q.jsx)(K,{htmlFor:n,children:`Template`}),(0,Q.jsxs)(nt,{disabled:!!c,value:td(s,e.settings.custom_template),onValueChange:t=>e.editSettings({custom_template:t==="default"?null:t}),children:[(0,Q.jsx)($e,{"data-testid":Xr,id:n,children:(0,Q.jsx)(tt,{})}),(0,Q.jsxs)(Qe,{children:[(0,Q.jsx)(Ze,{value:Yu,children:Xu}),s.map(e=>(0,Q.jsx)(Ze,{value:e.filename,children:e.name},e.filename))]})]}),c?(0,Q.jsxs)(V,{"data-testid":Zr,size:`sm`,tone:`secondary`,children:[t===`page`?`Page`:`Post`,` URL matches `,c.filename]}):null]})}var rd=pt();function id(e,t){return!e||t===`(Untitled)`||t.endsWith(`(Copy)`)?!1:(0,rd.slugify)(t)!==e}function ad(e,t){if(e.mode===`custom`)return!1;let n=t.trim();return!(!n||n===`(Untitled)`&&e.slug)}function od(e,t){let n=(e||t).trim();return!n||n===t?null:n}function sd(e,t,n){if(e===n)return n;let r=e.split(`-`);return Number(r.pop())>0&&r.join(`-`)===n&&e!==(0,rd.slugify)(t)?n:e}function cd({generateSlug:e,onListenerError:t}){let n=`derived`,r=new Set,i=``,a=``,o=``,s=0,c=0,l=0,u=new Set,d=new Set,f=0,p=0,m=null,h=null,g=()=>r.has(l)?`custom`:n,_=()=>{let e=g();return{status:e===`custom`?`custom`:ad({mode:e,slug:i},o)?`derived`:`frozen`,mode:e,slug:i,title:a,lastCommittedTitle:o,pending:u.has(c)||u.has(l)}},v=e=>{let n=_();for(let r of d)try{r(n,e)}catch(e){try{t(e)}catch{}}},y=e=>(v(e),e),b=(e,t)=>y({slug:i,source:`unchanged`,reason:e,...t!==void 0&&{error:t}}),x=e=>({slug:e,source:`unchanged`,reason:`stale`}),S=()=>{u.delete(c),c=0},C=()=>{u.delete(l),r.delete(l),l=0},w=e=>{let t=_();u.delete(e),r.delete(e);let n=_();return t.pending!==n.pending||t.mode!==n.mode||t.status!==n.status},T=async(t,n)=>{s+=1;let a=s,o=i;n?(S(),C(),l=a):(S(),c=a),u.add(a),n&&r.add(a),v(null);let d,f;try{d=await e(t)}catch(e){f=e}return{ticket:a,result:d,error:f,slugAtRequest:o}},E=async e=>{let t=e.trim();if(o=t,g()===`custom`)return b(`custom`);if(t===a&&i)return S(),b(`same-title`);if(!ad({mode:`derived`,slug:i},t))return S(),b(`frozen`);let{ticket:n,result:r,error:s,slugAtRequest:l}=await T(t,!1),u=w(n);return n===c?s===void 0?r?.trim()?(i=r,a=t,y({slug:i,source:`generated`})):b(`empty-result`):b(`error`,s):(u&&v(null),x(l))},D=async e=>{let t=od(e,i);if(t===null)return C(),b(`reverted`);let{ticket:r,result:a,error:o,slugAtRequest:s}=await T(t,!0),c=w(r);if(r!==l)return c&&v(null),x(s);if(o!==void 0)return b(`error`,o);if(!a?.trim())return b(`empty-result`);let u=sd(a,t,i);return u===i?b(`reverted`):(i=u,n=`custom`,y({slug:i,source:`manual`}))},O=e=>e.kind===`title`?E(e.value):D(e.value),k=e=>{if(e!==p)return;let t=h;if(h=null,!t){p=0,m=null;return}A(t.submission).then(t.resolve,t.reject)},A=e=>{f+=1;let t=f;p=t,m=e.kind;let n=O(e);return n.then(()=>k(t),()=>k(t)),n},j=e=>{if(!p)return A(e);if(e.kind===`manual`&&od(e.value,i)===null)return h?.submission.kind===`manual`&&(h.resolve(x(h.slugAtSubmission)),h=null),m===`manual`&&C(),Promise.resolve(b(`reverted`));if(e.kind===`title`&&m===`title`){let t=e.value.trim();if(o=t,t===a&&i)return h&&=(h.resolve(x(h.slugAtSubmission)),null),S(),Promise.resolve(b(`same-title`));if(!ad({mode:`derived`,slug:i},t))return h&&=(h.resolve(x(h.slugAtSubmission)),null),S(),Promise.resolve(b(`frozen`))}return h&&h.resolve(x(h.slugAtSubmission)),new Promise((t,n)=>{h={submission:e,slugAtSubmission:i,resolve:t,reject:n}})};return{loaded(e){p=0,m=null,h&&=(h.resolve(x(h.slugAtSubmission)),null),c=0,l=0,u.clear(),r.clear(),i=e.slug,a=e.title,o=e.title,n=id(e.slug,e.title)?`custom`:`derived`,v(null)},saveAcknowledged(e,t){let n=!1;i===e.slug&&i!==t.slug&&(i=t.slug,n=!0),a===e.title&&a!==t.title&&(a=t.title,o===e.title&&(o=t.title),n=!0),n&&v(null)},titleCommitted(e){return j({kind:`title`,value:e})},slugEdited(e){return j({kind:`manual`,value:e})},getState:_,subscribe(e){return d.add(e),()=>{d.delete(e)}}}}function ld(e,t){return`${e.replace(/^[a-z][a-z\d+.-]*:\/\//i,``).replace(/\/+$/,``)}/${t?`${t}/`:``}`}var ud=`Couldn’t update the URL. Try again.`;function dd({session:e,postType:t,siteUrl:n}){let r=(0,X.useId)(),i=(0,X.useId)(),[a,o]=(0,X.useState)(null),[s,c]=(0,X.useState)(!1),[l,u]=(0,X.useState)(!1),{slug:d,editSlug:f}=e,p=a??d,m=(0,X.useCallback)(()=>{if(u(!1),od(p,d)===null){o(null);return}c(!0),f(p).then(e=>u(e===`failed`)).finally(()=>{c(!1),o(null)})},[f,d,p]),h=(0,X.useCallback)(e=>{e.key===`Enter`&&e.currentTarget.blur()},[]);return(0,Q.jsxs)(el,{children:[(0,Q.jsxs)(K,{htmlFor:r,children:[t===`page`?`Page`:`Post`,` URL`]}),(0,Q.jsx)(jt,{"aria-describedby":l?i:void 0,"aria-invalid":l,"data-testid":Br,disabled:s,id:r,value:p,onBlur:m,onChange:e=>o(e.target.value),onKeyDown:h}),l?(0,Q.jsx)(ht,{"data-testid":Vr,id:i,children:ud}):null,(0,Q.jsx)(V,{"data-testid":Hr,size:`sm`,tone:`secondary`,children:ld(n,p)})]})}var fd=(0,X.memo)(ll),pd=(0,X.memo)(yl),md=(0,X.memo)(Dl),hd=(0,X.memo)(Yl),gd=(0,X.memo)(tu),_d=(0,X.memo)(bu),vd=(0,X.memo)(Pu),yd=(0,X.memo)(dl),bd=(0,X.memo)(zu),xd=(0,X.memo)(Ku),Sd=(0,X.memo)(Ju),Cd=(0,X.memo)(nd),wd=(0,X.memo)(dd),Td=(0,X.memo)(function({session:e}){let t=(0,X.useId)();return(0,Q.jsxs)(el,{children:[(0,Q.jsx)(K,{htmlFor:t,children:`Excerpt`}),(0,Q.jsx)(xt,{"data-testid":Ir,id:t,rows:3,value:e.bind.excerpt,onBlur:e.commitSettings,onChange:t=>e.bind.onExcerptChange(t.target.value)})]})}),Ed=(0,X.memo)(function({session:e,postType:t}){let n=(0,X.useId)();return(0,Q.jsx)(el,{children:(0,Q.jsxs)(q,{gap:`sm`,justify:`between`,children:[(0,Q.jsxs)(K,{htmlFor:n,children:[`Feature this `,t]}),(0,Q.jsx)(st,{checked:e.settings.featured,"data-testid":Lr,id:n,onCheckedChange:t=>e.editSettings({featured:t})})]})})});function Dd({session:e,postType:t,siteUrl:n,cardConfig:r,featureImage:i,currentUser:a,hasInlineExcerpt:o=!1}){let s=Xl(e),c=!!a&&fe(a),l=!!a&&!ue(a),u=!!a&&!ce(a),d=xl(),f={url:(0,Q.jsx)(wd,{postType:t,session:s,siteUrl:n}),"publish-date":(0,Q.jsx)(yd,{session:s}),tags:l?(0,Q.jsx)(Sd,{session:s}):null,excerpt:o?null:(0,Q.jsx)(Td,{session:s}),featured:c?(0,Q.jsx)(Ed,{postType:t,session:s}):null,access:c?(0,Q.jsx)(fd,{postType:t,session:s}):null,authors:u?(0,Q.jsx)(pd,{currentUser:a,session:s}):null,"show-title-and-feature-image":t===`page`?(0,Q.jsx)(bd,{currentUser:a,session:s}):null,template:(0,Q.jsx)(Cd,{postType:t,session:s}),delete:(0,Q.jsx)(hd,{postType:t,session:s}),"code-injection":(0,Q.jsx)(md,{postType:t,session:s}),"meta-data":(0,Q.jsx)(_d,{session:s,siteUrl:n}),"keyboard-shortcuts":(0,Q.jsx)(gd,{}),"x-card":(0,Q.jsx)(xd,{cardConfig:r,featureImage:i,network:Bu,session:s,siteUrl:n}),"facebook-card":(0,Q.jsx)(xd,{cardConfig:r,featureImage:i,network:Vu,session:s,siteUrl:n}),"post-history":(0,Q.jsx)(vd,{cardConfig:r,postType:t,session:s,showExcerpt:o,state:e.state})},p=d.open&&f[d.open.id]?d.open:null;(0,X.useEffect)(()=>{d.open&&!p&&d.close()},[p,d]);let m=`${t===`page`?`Page`:`Post`} settings`;return(0,Q.jsx)(bl.Provider,{value:d,children:(0,Q.jsxs)(`aside`,{"aria-label":p?.title??m,className:z(`absolute inset-y-0 right-0 z-10 w-[350px] overflow-y-auto border-l border-border bg-background shadow-lg max-[500px]:w-screen lg:static lg:shrink-0 lg:shadow-none`,p?.wide&&`w-[500px]`),"data-testid":Nr,children:[p?null:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(V,{as:`h2`,className:`px-5 py-4`,size:`md`,weight:`semibold`,children:m}),(0,Q.jsx)(Sn,{})]}),Fu.map(e=>(0,Q.jsx)(X.Fragment,{children:p&&p.id!==e?null:f[e]},e))]})})}function Od(e){return e.replace(/<code\b[^>]*>((.*?){.*?}(.*?))<\/code>/gi,`$1`)}function kd(e=``,t={}){let n=Object.assign({},{},t);if(!n.createDocument){let e=typeof DOMParser<`u`&&DOMParser||typeof window<`u`&&window.DOMParser;if(!e)throw Error("cleanBasicHtml() must be passed a `createDocument` function as an option when used in a non-browser environment");n.createDocument=function(t){return new e().parseFromString(t,`text/html`)}}let r=e;if((!n.allowBr||r===`<br>`)&&(r=r.replace(/<br\s?\/?>/g,` `)),n.removeCodeWrappers&&(r=Od(r)),r=r.replace(/(\s| ){2,}/g,` `).trim().replace(/^ | $/g,``).trim(),r){let e=n.createDocument(r);if(e.body.textContent===``)return``;e.body.querySelectorAll(`*`).forEach(t=>{if(!t.textContent?.trim().replace(/\u200c+/g,``)){if(n.allowBr&&t.tagName===`BR`)return;if(n.allowBr&&t.querySelector(`br`))return t.replaceWith(e.createElement(`br`));if(t.textContent&&t.textContent.length>0){let n=e.createTextNode(` `);return t.replaceWith(n)}return t.remove()}}),r=n.firstChildInnerContent&&e.body.firstElementChild?e.body.firstElementChild.innerHTML.trim():e.body.innerHTML.trim()}return r}function Ad(e){return kd(e??``,{firstChildInnerContent:!0})}function jd(e){if(e.tagName!==`SPAN`||e.attributes.length!==1)return!1;let t=(e.getAttribute(`style`)??``).split(`;`).map(e=>e.trim()).filter(Boolean);return t.length===1&&/^white-space\s*:\s*pre-wrap$/i.test(t[0])}function Md(e){return e?new DOMParser().parseFromString(e,`text/html`).body.firstElementChild?.tagName===`P`?e:`<p>${e}</p>`:null}function Nd(e){let t=Ad(Md(e)),n=new DOMParser().parseFromString(t,`text/html`);return n.body.querySelectorAll(`span`).forEach(e=>{jd(e)&&e.replaceWith(...e.childNodes)}),n.body.innerHTML.trim()}function Pd(e,t,n=0){let r=(0,X.useRef)(e);r.current=e;let[i,a]=(0,X.useState)(t?.feature_image??null),[o,s]=(0,X.useState)(t?.feature_image_alt??null),[c,l]=(0,X.useState)(t?.feature_image_caption??null),[u,d]=(0,X.useState)(n),f=(0,X.useRef)(c);f.current=c,u!==n&&(d(n),a(t?.feature_image??null),s(t?.feature_image_alt??null),l(t?.feature_image_caption??null));let p=(0,X.useCallback)(e=>{a(e),r.current.patchFeatureImage({feature_image:e}),r.current.dispatchField()},[]),m=(0,X.useCallback)(()=>{a(null),s(null),l(null),r.current.patchFeatureImage({feature_image:null,feature_image_alt:null,feature_image_caption:null}),r.current.dispatchField()},[]),h=(0,X.useCallback)(e=>{s(e),r.current.patchFeatureImage({feature_image_alt:e}),r.current.dispatchField()},[]),g=(0,X.useCallback)(e=>{let t=Ad(e);Nd(t)!==Nd(f.current)&&(l(t),r.current.patchFeatureImage({feature_image_caption:t}))},[]),_=(0,X.useCallback)(()=>r.current.dispatchField(),[]);return{featureImage:i,featureImageAlt:o,featureImageCaption:Md(c),onFeatureImageChange:p,onFeatureImageClear:m,onFeatureImageAltChange:h,onFeatureImageCaptionChange:g,onFeatureImageCaptionBlur:_}}function Fd(e,t){return t?!0:e.kind===`saving`||e.kind===`pending-coalesced`||e.kind===`reauth-pending`}function Id(e,t,n,r){let i=`/editor/${n}`;if(e.pathname!==i||!t.pathname.startsWith(`${i}/`))return!1;let a=t.pathname.slice(i.length+1);return!a||a.includes(`/`)?!1:t.state?.editorSession===r}var Ld=()=>{let e=m();return(0,X.useCallback)(async({type:t,text:n,id:r,sessionExpiryRedirect:i})=>{if(!n)return``;let a=encodeURIComponent((0,rd.slugify)(n)),o=r?`/slugs/${t}/${a}/${r}/`:`/slugs/${t}/${a}/`;return(await e(f(o),{sessionExpiryRedirect:i})).slugs[0].slug},[e])},Rd={Date:!0,RegExp:!0,String:!0,Number:!0};function zd(e,t,n={cyclesFix:!0},r=[]){let i=[],a=Array.isArray(e);for(let o in e){let s=e[o],c=a?+o:o;if(!(o in t)){i.push({type:`REMOVE`,path:[c],oldValue:e[o]});continue}let l=t[o],u=typeof s==`object`&&typeof l==`object`&&Array.isArray(s)===Array.isArray(l);s&&l&&u&&!Rd[Object.getPrototypeOf(s)?.constructor?.name]&&(!n.cyclesFix||!r.includes(s))?i.push.apply(i,zd(s,l,n,n.cyclesFix?r.concat([s]):[]).map(e=>(e.path.unshift(c),e))):s!==l&&!(Number.isNaN(s)&&Number.isNaN(l))&&!(u&&(isNaN(s)?s+``==l+``:+s==+l))&&i.push({path:[c],type:`CHANGE`,value:l,oldValue:s})}let o=Array.isArray(t);for(let n in t)n in e||i.push({type:`CREATE`,path:[o?+n:n],value:t[n]});return i}var Bd=class extends Error{constructor(e,t){super(e,t),this.name=`LexicalParseError`}};function Vd(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Hd(e){if(e==null||e===``)return null;let t=e;if(typeof e==`string`)try{t=JSON.parse(e)}catch(e){throw new Bd(e instanceof Error?e.message:`invalid JSON`,{cause:e})}if(!Vd(t)||!Vd(t.root)||!Array.isArray(t.root.children))throw new Bd(`lexical root must be an object with a children array`);return t}function Ud(e){if(Array.isArray(e))return e.map(Ud);if(Vd(e)&&Array.isArray(e.children)){let t={};for(let n of Object.keys(e))n!==`direction`&&(t[n]=n===`children`?Ud(e.children):e[n]);return t}return e}var Wd={audio:{src:`url`},bookmark:{url:`url`,"metadata.icon":`url`,"metadata.thumbnail":`url`},button:{buttonUrl:`url`},"email-cta":{buttonUrl:`url`},embed:{url:`url`},file:{src:`url`},gallery:{images:{src:`url`}},header:{buttonUrl:`url`,backgroundImageSrc:`url`},image:{src:`url`,href:`url`},product:{productImageSrc:`url`},video:{src:`url`,thumbnailSrc:`url`,customThumbnailSrc:`url`}};function Gd(e){if(!e)return null;try{return new URL(e)}catch{return null}}function Kd(e,t){let n=t.endsWith(`/`)?t.slice(0,-1):t;return e===n||e.startsWith(`${n}/`)}function qd(e,t){let n;try{n=new URL(e.startsWith(`//`)?`${t.protocol}${e}`:e)}catch{return e}return n.username||n.password||n.host!==t.host||!Kd(n.pathname,t.pathname)?e:`${n.pathname}${n.search}${n.hash}`}function Jd(e,[t,...n],r){if(t===void 0||!(t in e))return e;let i=e[t];return n.length===0?{...e,[t]:r(i)}:Vd(i)?{...e,[t]:Jd(i,n,r)}:e}function Yd(e,t,n){return t===`url`?typeof e==`string`?qd(e,n):e:Array.isArray(e)?e.map(e=>Vd(e)?Xd(e,t,n):e):e}function Xd(e,t,n){let r=e;for(let[e,i]of Object.entries(t))r=Jd(r,e.split(`.`),e=>Yd(e,i,n));return r}function Zd(e,t){if(Array.isArray(e))return e.map(e=>Zd(e,t));if(!Vd(e))return e;let n=typeof e.type==`string`?Wd[e.type]:void 0,r=n?Xd(e,n,t):e;return!n&&typeof e.url==`string`&&(r={...r,url:qd(e.url,t)}),Array.isArray(e.children)&&(r={...r,children:Zd(e.children,t)}),r}function Qd(e,t){let n=Gd(t);return n?Zd(e,n):e}function $d(e){return Array.isArray(e)?`[${e.map($d).join(`,`)}]`:Vd(e)?`{${Object.keys(e).sort().filter(t=>e[t]!==void 0).map(t=>`${JSON.stringify(t)}:${$d(e[t])}`).join(`,`)}}`:JSON.stringify(e)??`null`}function ef(e){let t=e?.root;return Vd(t)&&Array.isArray(t.children)?t.children:[]}function tf(e,t){return Ud(Qd(ef(Hd(e)),t))}var nf=4,rf=[];function af(e,t=``){if(typeof e!=`string`)return $d(tf(e,t));let n=rf.findIndex(n=>n.input===e&&n.siteUrl===t);if(n!==-1){let[e]=rf.splice(n,1);return rf.unshift(e),e.normalized}let r=$d(tf(e,t));return rf.unshift({input:e,siteUrl:t,normalized:r}),rf.length=Math.min(rf.length,nf),r}function of(e,t,n=``){return af(e,n)===af(t,n)}function sf(e,t){let n=e;for(let e of t)if(Array.isArray(n))n=n[Number(e)];else if(Vd(n))n=n[String(e)];else return;return n}function cf(e,t){return e.map((n,r)=>{if(typeof n!=`number`)return n;let i=sf(t,e.slice(0,r+1)),a=Vd(i)?i.type:void 0;return typeof a==`string`?`${n}[${a}]`:String(n)}).join(`.`)}function lf(e,t){let n=Hd(e);if(!n)return{};let r=n.root,i={...n,root:{...r,children:Qd(ef(n),t)}};return Object.fromEntries(Object.entries(i).map(([e,t])=>[e,Ud(t)]))}function uf(e,t,n=``){let r=lf(e,n);return zd(r,lf(t,n),{cyclesFix:!1}).map(e=>{let t={type:e.type,path:cf(e.path,r)};return`value`in e&&(t.value=e.value),`oldValue`in e&&(t.oldValue=e.oldValue),t})}var df={h1:`# `,h2:`## `,h3:`### `,h4:`#### `,h5:`##### `,h6:`###### `},ff={bookmark:[`title`,`description`,`url`,`caption`],"call-to-action":[`textValue`],callout:[`calloutText`],codeblock:[`code`,`caption`],embed:[`caption`],file:[`fileTitle`,`fileCaption`],gallery:[`caption`],header:[`header`,`subheader`],html:[`html`],image:[`caption`],markdown:[`markdown`],product:[`productTitle`,`productDescription`],signup:[`disclaimer`,`header`,`subheader`],toggle:[`heading`,`content`],video:[`caption`]},pf=new Set([`bookmark.caption`,`call-to-action.textValue`,`callout.calloutText`,`codeblock.caption`,`embed.caption`,`gallery.caption`,`header.header`,`header.subheader`,`html.html`,`image.caption`,`product.productTitle`,`product.productDescription`,`signup.disclaimer`,`signup.header`,`signup.subheader`,`toggle.heading`,`toggle.content`,`video.caption`]),mf=new Set(`ADDRESS.ARTICLE.ASIDE.BLOCKQUOTE.DD.DIV.DL.DT.FIELDSET.FIGCAPTION.FIGURE.FOOTER.FORM.H1.H2.H3.H4.H5.H6.HEADER.LI.MAIN.NAV.OL.P.PRE.SECTION.TABLE.TBODY.TD.TFOOT.TH.THEAD.TR.UL`.split(`.`)),hf=``,gf=``,_f=new Set([`heading`,`extended-heading`]),vf=new Set([`quote`,`extended-quote`,`aside`]);function yf(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function bf(e,t){let n=e[t];return typeof n==`string`?n:null}function xf(e){return Array.isArray(e.children)?e.children.filter(yf):[]}function Sf(e){return e?.nodeType===Node.ELEMENT_NODE&&mf.has(e.tagName)}function Cf(e,t=!1){if(e.nodeType===Node.TEXT_NODE){let n=e.textContent??``;return t?n:!n.trim()&&(Sf(e.previousSibling)||Sf(e.nextSibling))?``:n.replace(/\s+/g,` `)}if(e.nodeType!==Node.ELEMENT_NODE)return``;let n=e;if(n.matches(`script, style, template`))return``;if(n.tagName===`BR`)return gf;let r=[...n.childNodes].map(e=>Cf(e,t||n.tagName===`PRE`)).join(``);if(!mf.has(n.tagName)||!r)return r;let i=r.replace(/^ +/,``),a=r.replace(/ +$/,``),o=i.startsWith(hf)||i.startsWith(gf),s=a.endsWith(hf)||a.endsWith(gf);return`${o?``:hf}${r}${s?``:hf}`}function wf(e){let{body:t}=new DOMParser().parseFromString(e,`text/html`);return Cf(t).replace(RegExp(`${hf}(?: *${hf})+`,`g`),hf).replace(RegExp(`^ *${hf}|${hf} *$`,`g`),``).replace(RegExp(` *${hf} *`,`g`),`
|
|
19
|
+
`).replace(new RegExp(gf,`g`),`
|
|
20
|
+
`)}function Tf(e){return e.map(Ef).join(``)}function Ef(e){let t=bf(e,`text`);return t===null?e.type===`linebreak`?`
|
|
21
|
+
`:Tf(xf(e)):t}function Df(e,t){let n=bf(e,`type`),r=t.map(t=>{let r=bf(e,t);return r?n&&pf.has(`${n}.${t}`)?wf(r):r:``}).filter(Boolean);return r.length>0?[r.join(`
|
|
22
|
+
`)]:[]}function Of(e,t){let n=e.listType===`number`,r=` `.repeat(t);return xf(e).flatMap((e,i)=>{let a=xf(e).filter(e=>e.type===`list`),o=Tf(xf(e).filter(e=>e.type!==`list`)),s=a.flatMap(e=>Of(e,t+1)),c=n?`${i+1}. `:`- `;return o?[`${r}${c}${o}`,...s]:s})}function kf(e){let t=typeof e.type==`string`?ff[e.type]:void 0;if(t)return Df(e,t);if(e.type===`list`){let t=Of(e,0);return t.length>0?[t.join(`
|
|
23
|
+
`)]:[]}let n=Ef(e);return n?typeof e.type==`string`&&_f.has(e.type)?[`${df[bf(e,`tag`)??``]??``}${n}`]:typeof e.type==`string`&&vf.has(e.type)?[`> ${n}`]:[n]:[]}function Af(e){try{let t=Hd(e)?.root;return yf(t)?xf(t).flatMap(kf).join(`
|
|
24
|
+
|
|
25
|
+
`):``}catch{return``}}function jf(e,t){return[e.trim(),Af(t)].filter(Boolean).join(`
|
|
26
|
+
|
|
27
|
+
`)}var Mf=`title.slug.lexical.tags.custom_excerpt.feature_image.feature_image_alt.feature_image_caption.featured.visibility.tiers.authors.meta_title.meta_description.canonical_url.custom_template.codeinjection_head.codeinjection_foot.og_image.og_title.og_description.twitter_image.twitter_title.twitter_description.show_title_and_feature_image.updated_at`.split(`.`),Nf=new Set([`tiers`,`authors`]),Pf=new Set([`title`,`lexical`,`tags`,`updated_at`]);function Ff(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function If(e){return Array.isArray(e)?e.map(If):Ff(e)?Object.fromEntries(Object.entries(e).map(([e,t])=>[e,If(t)])):e}function Lf(e){return If(Nc(e,Mf))}function Rf(e){return If(Nc(e,Mf.filter(t=>t in e&&e[t]!==void 0)))}function zf(e){return e instanceof Error?e.message:String(e)}function Bf(e){return e==null?null:typeof e==`string`?e:JSON.stringify(e)}function Vf(e){return(e??[]).map(e=>e.name??``)}function Hf(e,t){let n=e??[],r=t??[];return n.length===r.length&&n.every((e,t)=>Kn(e,r[t]))}function Uf(e){return(e??[]).map(e=>e.id??``)}function Wf(e,t,n){return e===`tags`?Hf(t,n):Nf.has(e)?Fn(Uf(t),Uf(n)):Fn(t,n)}function Gf(e,t){if(e===null||t===null)return!1;let n=Date.parse(e),r=Date.parse(t);return!Number.isNaN(n)&&!Number.isNaN(r)&&n<r}function Kf(e={}){let t=e.siteUrl??``,n=null,r=!1,i=new Set,a=null,o=null,s={status:`pending`},c=null,l=!1;function u(e,n){return of(e,n,t)}function d(e,t,n){if(e===`lexical`)try{return u(t,n)}catch{return!1}return Wf(e,t,n)}function f(e){return!l&&a!==null&&e===n}function p(e){return f(e)||e===null&&r&&!l&&a!==null}function m(){let e={};if(!a||!o)return e;for(let t of Mf)!Pf.has(t)&&!d(t,a[t],o[t])&&(e[t]=[a[t],o[t]]);return e}function h(){if(!a||!o)return[];let e=[];if(c&&e.push({code:`POST_HAS_ERROR`,reason:`isError`,context:{messages:c.messages}}),!Hf(a.tags,o.tags)){let t=Vf(o.tags),n=Vf(a.tags);e.push({code:`POST_TAGS_DIVERGED`,reason:`tags are different`,context:{currentTags:t,previousTags:n}})}o.title.trim()!==a.title.trim()&&e.push({code:`POST_TITLE_DIVERGED`,reason:`title is different`,context:{current:a.title,scratch:o.title}});let t=o.lexical;try{u(a.lexical,t)||(s.status===`pending`?e.push({code:`BASELINE_PENDING`,reason:`main editor content has diverged from saved content before the hidden editor reported`,context:{lexical:a.lexical,scratch:t}}):s.status===`failed`?e.push({code:`BASELINE_FAILED`,reason:`main editor content has diverged from saved content and the hidden editor failed`,context:{lexical:a.lexical,scratch:t,error:s.error}}):u(s.lexical,t)||e.push({code:`SCRATCH_DIVERGED_FROM_SECONDARY`,reason:`main editor content has diverged from both hidden editor and saved content`,context:{secondaryLexical:s.lexical,lexical:a.lexical,scratch:t}}))}catch(t){e.push({code:`LEXICAL_PARSE_FAILED`,reason:`lexical state could not be parsed for comparison`,context:{error:zf(t)}})}let r=m();return Object.keys(r).length>0&&e.push(n===null?{code:`NEW_POST_HAS_CHANGED_ATTRIBUTES`,reason:`post.changedAttributes.length > 0`,context:r}:{code:`POST_HAS_DIRTY_ATTRIBUTES`,reason:`post.hasDirtyAttributes === true`,context:r}),e}return{load(e,t){l||(n=e,r=!1,e!==null&&i.add(e),a=Lf(t),o=Lf(t),s={status:`pending`},c=null)},setSaved(e,t){if(!f(e)||!a||!o)return;let n=Lf(t);Gf(n.updated_at,a.updated_at)||(a=n,o={...o,updated_at:n.updated_at})},saveAcknowledged(e,t,u){if(l||!a||!o||n!==null&&e!==n||n===null&&e!==null&&i.has(e))return;let f=Lf(u),p=[];for(let e of Mf){let n=t[e]===void 0?a[e]:t[e];(e===`updated_at`||d(e,o[e],n))&&p.push(e)}n===null&&e!==null&&(r=!0,i.add(e)),n=e,d(`lexical`,a.lexical,f.lexical)||(s={status:`ready`,lexical:f.lexical}),a=f,o={...o,...Nc(f,p)},c=null},setBaseline(e,t){p(e)&&(s={status:`ready`,lexical:Bf(t)})},baselineFailed(e,t){p(e)&&(s={status:`failed`,error:zf(t)})},setLive(e,t){if(!p(e)||!o)return;let n=Rf(t);delete n.updated_at,o={...o,...n}},markSaveError(e){l||(c={messages:e})},clearSaveError(){l||(c=null)},revisionRestored(e,t){if(!f(e)||!a||!o)return;let n=If({lexical:t.lexical,title:t.title,custom_excerpt:t.custom_excerpt,feature_image:t.feature_image,feature_image_alt:t.feature_image_alt,feature_image_caption:t.feature_image_caption});a={...a,...n},o={...o,...n},s={status:`pending`},c=null},verdict({includeDiff:e=!1}={}){let n=h(),r={dirty:n.length>0,reasons:n};return e&&s.status===`ready`&&n.some(e=>e.code===`SCRATCH_DIVERGED_FROM_SECONDARY`)&&(r.diff=uf(s.lexical,o?.lexical,t)),r},isFieldDirty(e){return!!a&&!!o&&e!==`updated_at`&&!d(e,a[e],o[e])},hasChangedSinceRevision(e){if(l||!a)return!1;if(!e)return!0;if(n===null)return!1;if(a.title!==e.title||a.custom_excerpt!==(e.custom_excerpt??null)||a.feature_image!==(e.feature_image??null))return!0;try{return!u(a.lexical,e.lexical)}catch{return!0}},dispose(){l=!0,n=null,r=!1,i.clear(),a=null,o=null,s={status:`pending`},c=null}}}var qf=`UPDATE_COLLISION`;function Jf(e){return e instanceof u?e.data?.errors?.[0]?.code??void 0:void 0}function Yf(e){return e instanceof h?e.response?.status:void 0}function Xf(e,t){return e instanceof Error&&e.message?e.message:t}function Zf(e,t){return{kind:(()=>{if(Jf(e)===qf)return`conflict`;if(e instanceof x||e instanceof o)return`session-invalid`;if(e instanceof p)return`host-limit`;if(e instanceof d||e instanceof b||e instanceof c)return`transport`;if(e instanceof l||e instanceof S)return`validation`;let t=Yf(e);return t===401?`session-invalid`:t===404?`not-found`:t===422?`validation`:`unknown`})(),message:Xf(e,t),cause:e}}var Qf=function(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}};function $f(e){let t=Promise.resolve(),n=Qf();function r(e){return t=e.catch(()=>void 0),e}async function i(){let e;do e=t,await Promise.race([e,n.promise]);while(e!==t)}async function a(t){let n=await r(e.titleCommitted(t));return n.source===`generated`?{slug:n.slug,source:`generated`}:{slug:e.getState().slug,source:`unchanged`}}function o(){t=Promise.resolve();let e=n;n=Qf(),e.resolve()}return{port:{settled:i,fromTitle:a},commitTitle:t=>void r(e.titleCommitted(t)),editSlug:t=>{let i=e.getState().slug,a=n.promise;return Promise.race([r(e.slugEdited(t)),a.then(()=>({slug:i,source:`unchanged`,reason:`stale`}))])},titleReplaced:t=>{o(),e.loaded({slug:e.getState().slug,title:t})},reset:o}}function ep({identity:e,status:t,publishedAt:n,publishedAtDirty:r,title:i,slug:a,slugIsCustom:o,verdict:s,changedSinceLastRevision:c,version:l}){let u={status:t,publishedAt:n,title:i,slug:a,slugIsCustom:o,isDirty:s.dirty||r,titleDirty:s.reasons.some(e=>e.code===`POST_TITLE_DIVERGED`),changedSinceLastRevision:c,version:l};return e.id===null?{id:null,updatedAt:null,...u}:{id:e.id,updatedAt:e.updatedAt,...u}}function tp(e){return{title:``,slug:``,lexical:null,tags:[],custom_excerpt:null,feature_image:null,feature_image_alt:null,feature_image_caption:null,featured:!1,visibility:null,tiers:[],authors:e?[{id:e}]:[],meta_title:null,meta_description:null,canonical_url:null,custom_template:null,codeinjection_head:null,codeinjection_foot:null,og_image:null,og_title:null,og_description:null,twitter_image:null,twitter_title:null,twitter_description:null,show_title_and_feature_image:null,updated_at:null}}function np(e){return{title:e.title,slug:e.slug,lexical:e.lexical??null,tags:e.tags??[],custom_excerpt:e.custom_excerpt??null,feature_image:e.feature_image??null,feature_image_alt:e.feature_image_alt??null,feature_image_caption:e.feature_image_caption??null,featured:e.featured??!1,visibility:e.visibility??null,tiers:e.tiers??[],authors:e.authors??[],meta_title:e.meta_title??null,meta_description:e.meta_description??null,canonical_url:e.canonical_url??null,custom_template:e.custom_template??null,codeinjection_head:e.codeinjection_head??null,codeinjection_foot:e.codeinjection_foot??null,og_image:e.og_image??null,og_title:e.og_title??null,og_description:e.og_description??null,twitter_image:e.twitter_image??null,twitter_title:e.twitter_title??null,twitter_description:e.twitter_description??null,show_title_and_feature_image:`show_title_and_feature_image`in e?e.show_title_and_feature_image??null:null,updated_at:e.updated_at}}function rp(e){let t=Su(e?.post_revisions);if(t.length===0)return null;let n=t.reduce((e,t)=>Cu(t)>=Cu(e)?t:e);return{lexical:n.lexical??null,title:n.title??``,custom_excerpt:n.custom_excerpt??null,feature_image:n.feature_image??null}}var ip=[`title`,`slug`],ap=`Cannot save without the version this post was loaded at.`;function op(e,t){return t?{ok:!1,error:{kind:`validation`,message:t}}:{ok:!0,prepared:e}}function sp(e,t,n,r){n[e]=t[e],r[e]=Lc(e,t)}function cp(e,t){if(e===null||t===null)return e===t;let n=Date.parse(e),r=Date.parse(t);return!Number.isNaN(n)&&!Number.isNaN(r)&&Math.floor(n/6e4)===Math.floor(r/6e4)}function lp(e,t){if(!t)return!1;let n=Date.parse(e),r=Date.parse(t);return!Number.isNaN(n)&&!Number.isNaN(r)&&n<r}function up({record:e,siteUrl:t,currentUserId:n,saveFailureMessage:r,autosaveDebounceMs:i,transport:a,onIdAcquired:o,onError:s}){let c=e?{id:e.id,updatedAt:e.updated_at??``}:{id:null,updatedAt:null},l=e?.status??`draft`,u=e?.published_at??null,d=null,f=0,p=e?np(e):tp(n),m=rp(e),h=0,g=!1,_=new Set,v=new Map,y=null;function b(){return d??u}function x(){cp(d,u)&&(y===null||f<=y)&&(d=null)}let S=Kf({siteUrl:t});S.load(c.id,p);let C=cd({generateSlug:e=>a.generateSlug(e,c.id),onListenerError:s});C.loaded({slug:p.slug,title:p.title});let w=$f(C),T=new Set,E;function D(){if(g)return;let e=F.getState(),t=M().isDirty,n=C.getState().slug,r=b(),i=E&&Pc.every(e=>E.settings[e]===p[e])?E.settings:Nc(p,Pc),a=E&&E.publishTime.status===l&&E.publishTime.publishedAt===r?E.publishTime:{status:l,publishedAt:r};if(!(E&&E.state===e&&E.isDirty===t&&E.title===p.title&&E.slug===n&&E.settings===i&&E.publishTime===a)){E={state:e,isDirty:t,title:p.title,slug:n,settings:i,publishTime:a};for(let e of T)try{e()}catch(e){s(e)}}}function O(e){let t=p;p={...p,...e},h+=1;for(let n of Pc)e[n]!==void 0&&!Wf(n,t[n],e[n])&&v.set(n,h);S.setLive(c.id,e),D()}function k(e,t){for(let n of ip){let r=t[n];r===void 0||r===e[n]||p[n]!==e[n]||(p={...p,[n]:r},S.setLive(c.id,{[n]:r}))}}function A(e){return S.isFieldDirty(e)?!1:y===null||(v.get(e)??0)<=y}function j(e,t){let n={};for(let r of Pc)t(r)&&p[r]!==e[r]&&(n[r]=e[r]);Object.keys(n).length!==0&&(p={...p,...n},S.setLive(c.id,n))}function ee(){return p.authors.length===0&&S.isFieldDirty(`authors`)}function M(){let e=S.verdict();return ep({identity:c,status:l,publishedAt:b(),publishedAtDirty:d!==null,title:p.title,slug:C.getState().slug,slugIsCustom:C.getState().mode===`custom`,verdict:{...e,dirty:e.dirty||_.size>0},changedSinceLastRevision:S.hasChangedSinceRevision(m),version:h})}let N=C.subscribe(D);function P(e,t){return Qc(Yc(p))||(e.target.publishedAt!==u&&Kc(e.target.status,e.target.publishedAt)?Gc:t.authors?.length===0?Ic:null)}function te(e){let t=e.snapshot.id,r={title:e.title,slug:e.slug,lexical:p.lexical,feature_image:p.feature_image,feature_image_alt:p.feature_image_alt,feature_image_caption:p.feature_image_caption,updated_at:e.snapshot.updatedAt},i={title:e.title,slug:e.slug,lexical:r.lexical,feature_image:r.feature_image,feature_image_alt:r.feature_image_alt,feature_image_caption:r.feature_image_caption,status:e.target.status,published_at:e.target.publishedAt};t===null&&n&&(i.authors=[{id:n}]);for(let e of Pc)S.isFieldDirty(e)&&sp(e,p,r,i);p.visibility===`tiers`&&(`visibility`in i||`tiers`in i)&&(r.visibility=p.visibility,i.visibility=p.visibility,r.tiers=p.tiers,i.tiers=Lc(`tiers`,p)),e.target.emailOnly!==void 0&&(i.email_only=e.target.emailOnly);let a={...e,projection:r,authoredFrom:{title:p.title,slug:p.slug},builtAtVersion:h,options:{saveRevision:e.saveRevision,newsletter:e.target.newsletter,emailSegment:e.target.emailSegment}},o=P(e,r);return t===null?Promise.resolve(op({...a,isCreate:!0,payload:i},o)):r.updated_at?Promise.resolve(op({...a,isCreate:!1,payload:{...i,id:t,updated_at:r.updated_at}},o)):Promise.resolve({ok:!1,error:{kind:`unknown`,message:ap}})}async function ne(e){y=e.builtAtVersion;try{let t=e.isCreate?await a.create(e.payload):await a.update(e.payload,e.options);return t?{ok:!0,result:{id:t.id,status:t.status??`draft`,updatedAt:t.updated_at??``,post:t}}:(y=null,x(),{ok:!1,error:{kind:`unknown`,message:r}})}catch(e){return y=null,x(),{ok:!1,error:Zf(e,r)}}}function re(e,t){let n={title:e.projection.title??e.authoredFrom.title,slug:e.projection.slug??e.authoredFrom.slug};k(e.authoredFrom,n);let r=Object.fromEntries(Pc.filter(t=>e.projection[t]===void 0&&(v.get(t)??0)>e.builtAtVersion).map(e=>[e,p[e]])),i=np(t.post);S.saveAcknowledged(t.id,e.projection,i),S.setLive(t.id,r),k(n,{title:i.title,slug:i.slug}),y=null,j(i,A),C.saveAcknowledged(n,{title:i.title,slug:i.slug});let a=c.id===null;c={id:t.id,updatedAt:t.updatedAt},l=t.status,u=t.post.published_at??null,f<=e.builtAtVersion&&(d=null),x(),m=rp(t.post),p={...p,updated_at:t.updatedAt},a&&o(t.id),D()}let F=Jl({getSnapshot:M,slug:w.port,prepare:te,execute:ne,reconcile:re,autosaveDebounceMs:i,onStateChange:e=>{(e.kind===`error`||e.kind===`conflict`)&&S.markSaveError(e.error.message),D()},onListenerError:s});D();function I(){l!==`draft`||Qc(Yc(p))||ee()||Kc(l,b())||F.dispatch(`field`)}async function ie(e){if(g)return`unchanged`;let t=Symbol();_.add(t);let n=w.editSlug(e);D();try{let e=await n;return g||!_.has(t)?`unchanged`:e.source===`unchanged`?e.reason===`error`?(s(e.error),`failed`):e.reason===`empty-result`?`failed`:`unchanged`:(O({slug:e.slug}),I(),`applied`)}finally{_.delete(t),g||D()}}return{getState:()=>F.getState(),getView:()=>E,subscribe:e=>(T.add(e),()=>{T.delete(e)}),getSaveSnapshot:M,isDirty:()=>M().isDirty,hasUnsavedContent:()=>d!==null||_.size>0||S.verdict().reasons.some(e=>e.code!==`POST_HAS_ERROR`),patchTitle:e=>O({title:e.trim()?e:kl}),patchExcerpt:e=>O({custom_excerpt:e===``?null:e}),patchFeatureImage:e=>O(e),patchFields:O,getFields:()=>p,commitField:I,getSlug:()=>C.getState().slug,editSlug:ie,editPublishedAt:e=>{cp(e,b())||(d=cp(e,u)?u:Nl(e),h+=1,f=h,x(),D())},getPublishedAt:b,patchLexical:e=>O({lexical:JSON.stringify(e)}),restoreRevision:async e=>{if(g||e.lexical===null||F.getState().kind===`reauth-pending`)return!1;let t={...e,title:e.title.trim()?e.title:kl},n={lexical:p.lexical,title:p.title,custom_excerpt:p.custom_excerpt,feature_image:p.feature_image,feature_image_alt:p.feature_image_alt,feature_image_caption:p.feature_image_caption};O(t),w.titleReplaced(t.title);let r=F.subscribe(()=>{F.getState().kind===`reauth-pending`&&F.reauthAbandoned()});return(await F.dispatch(`explicit`).finally(r)).kind===`saved`?(S.revisionRestored(c.id,t),D(),!0):(O(n),w.titleReplaced(n.title),!1)},setBaseline:e=>{S.setBaseline(c.id,e),D()},baselineFailed:e=>{S.baselineFailed(c.id,e),D()},commitTitle:e=>{l===`draft`&&w.commitTitle(e)},dispatchField:()=>void F.dispatch(`field`),dispatchAutosave:()=>void F.dispatch(`autosave`),dispatchExplicit:()=>F.dispatch(`explicit`),dispatchPublish:e=>F.dispatch(`publish`,e),dispatchSchedule:e=>F.dispatch(`schedule`,e),dispatchRevert:()=>F.dispatch(`revert`),getLiveLexical:()=>p.lexical,recordRefetched:e=>{let t=e.updated_at??``;if(g||c.id!==e.id||!Gl(t)||lp(t,c.updatedAt))return!1;let n=new Set(Pc.filter(A)),r=np(e);return S.setSaved(e.id,r),j(r,e=>n.has(e)),c={id:e.id,updatedAt:t},l=e.status??l,u=e.published_at??null,x(),m=rp(e),D(),!0},recordReloaded:e=>{let t=e.updated_at??``;return g||c.id!==e.id||!Gl(t)||lp(t,c.updatedAt)||F.getState().kind!==`conflict`||!F.contentReloaded(t)?!1:(c={id:e.id,updatedAt:t},l=e.status??`draft`,u=e.published_at??null,m=rp(e),p=np(e),d=null,f=0,_.clear(),v.clear(),y=null,h+=1,S.load(c.id,p),C.loaded({slug:p.slug,title:p.title}),w.reset(),D(),!0)},reauthSucceeded:()=>F.reauthSucceeded(),reauthAbandoned:()=>F.reauthAbandoned(),leaveRequested:()=>F.leaveRequested(),dispose:()=>{g=!0,_.clear(),N(),w.reset(),F.dispose(),S.dispose(),T.clear()}}}function dp(e){return t=>{switch(t.kind){case`publish`:return e.publish(t.options);case`schedule`:return e.schedule(t.options);default:return e.revert()}}}function fp(){let e=F();return e.state?.editorSession??e.key}function pp(e){return e===`sent`?void 0:e}function mp(e){return typeof e==`number`&&Number.isFinite(e)&&e>0?e:void 0}function hp({postType:e,record:t,siteUrl:n,currentUserId:r}){let i=m(),o=a(),{data:s}=P({requestOptions:Z}),c=Ld(),{mutateAsync:l}=ee(),{mutateAsync:u}=A(),{mutateAsync:d}=Bn(),{mutateAsync:p}=zn(),[g,_]=(0,X.useState)(t?.id??null),[v,y]=(0,X.useState)(()=>t?.title===`(Untitled)`?``:t?.title??``),[b,x]=(0,X.useState)(()=>t?.lexical??null),[S,C]=(0,X.useState)(t),[w,T]=(0,X.useState)(0),E=(0,X.useRef)({addPost:l,editPost:u,addPage:d,editPage:p,generateSlug:c,postType:e});(0,X.useEffect)(()=>{E.current={addPost:l,editPost:u,addPage:d,editPage:p,generateSlug:c,postType:e}});let D=(0,X.useRef)(void 0);(0,X.useEffect)(()=>{D.current=mp(s?.config.editorAutosaveDebounceMs)});let[O]=(0,X.useState)(()=>up({record:t,siteUrl:n,currentUserId:r,saveFailureMessage:`Couldn’t save this ${e}.`,autosaveDebounceMs:()=>D.current,onIdAcquired:_,onError:tc,transport:{create:async e=>{let t=E.current;if(t.postType===`page`){let{pages:n}=await t.addPage({page:{...e,status:pp(e.status)},sessionExpiryRedirect:!1});return n[0]}let{posts:n}=await t.addPost({post:e,sessionExpiryRedirect:!1});return n[0]},update:async(e,t)=>{let n=E.current;if(n.postType===`page`){let{pages:r}=await n.editPage({page:{...e,status:pp(e.status)},options:t,sessionExpiryRedirect:!1});return r[0]}let{posts:r}=await n.editPost({post:e,options:t,sessionExpiryRedirect:!1});return r[0]},generateSlug:(e,t)=>E.current.generateSlug({type:`post`,text:e,id:t??void 0,sessionExpiryRedirect:!1})}})),k=(0,X.useRef)(void 0);(0,X.useEffect)(()=>(clearTimeout(k.current),()=>{k.current=setTimeout(()=>O.dispose())}),[O]);let te=(0,X.useSyncExternalStore)(O.subscribe,O.getView),{state:ne,title:re,slug:F,settings:I,publishTime:ie}=te,L=(0,X.useCallback)(()=>te.isDirty,[te]),R=O.patchFields,z=(0,X.useCallback)(e=>{let t=O.getPublishedAt();O.editPublishedAt(e),t!==O.getPublishedAt()&&O.commitField()},[O]),ae=(0,X.useCallback)(()=>O.commitField(),[O]),B=(0,X.useCallback)(e=>{R(e),O.commitField()},[O,R]),oe=N(g??``,{enabled:e===`post`&&!!g,defaultErrorHandler:!1,requestOptions:Z}),se=Hn(g??``,{enabled:e===`page`&&!!g,defaultErrorHandler:!1,requestOptions:Z}),V=e===`page`?se.data?.pages[0]:oe.data?.posts[0];(0,X.useEffect)(()=>{V&&O.recordRefetched(V)&&C(V)},[V,O]);let ce=(0,X.useCallback)(async()=>{if(!g)return`failed`;let t=f(e===`page`?`/pages/${g}/`:`/posts/${g}/`,j()),n=[e===`page`?Vn:M,t],r;try{r=await i(t,Z)}catch(e){return e instanceof h&&e.response?.status===404?`gone`:`failed`}let a=e===`page`?r.pages?.[0]:r.posts?.[0];if(!a)return`gone`;let s=o.getQueryData(n),c=e===`page`?s?.pages?.[0]:s?.posts?.[0];return s&&c&&c.id===a.id&&Gl(c.updated_at)&&Gl(a.updated_at)&&Date.parse(c.updated_at)>Date.parse(a.updated_at)&&(r=s,a=c),O.recordReloaded(a)?(await o.cancelQueries({queryKey:n,exact:!0}),o.setQueryData(n,r),y(a.title===`(Untitled)`?``:a.title),x(a.lexical??null),C(a),T(e=>e+1),`reloaded`):`failed`},[i,g,e,o,O]),H=(0,X.useCallback)(async e=>{if(!await O.restoreRevision(e))return!1;let t=O.getFields();return y(t.title===`(Untitled)`?``:t.title),x(e.lexical),C(n=>n&&{...n,...e,title:t.title}),T(e=>e+1),!0},[O]),le=(0,X.useCallback)(()=>jf(v,O.getLiveLexical()),[O,v]),ue=!t,de=(0,X.useCallback)(e=>{y(e),O.patchTitle(e)},[O]),fe=(0,X.useCallback)(e=>{R({custom_excerpt:e||null})},[R]),pe=(0,X.useCallback)(()=>{O.commitTitle(v),O.dispatchField()},[O,v]),me=(0,X.useCallback)(e=>{O.patchLexical(e),O.dispatchAutosave()},[O]),he=(0,X.useCallback)(e=>O.setBaseline(e),[O]),ge=(0,X.useCallback)(e=>O.baselineFailed(e),[O]),_e=(0,X.useMemo)(()=>dp({publish:O.dispatchPublish,schedule:O.dispatchSchedule,revert:O.dispatchRevert}),[O]),U=(0,X.useCallback)(()=>void O.dispatchExplicit(),[O]),W=I.custom_excerpt??``,ve=(0,X.useMemo)(()=>({title:v,excerpt:W,initialLexical:b,onTitleChange:de,onTitleBlur:pe,onExcerptChange:fe,onLexicalChange:me,onSecondaryChange:he,onSecondaryError:ge}),[W,b,fe,me,he,ge,pe,de,v]);return(0,X.useMemo)(()=>({bind:ve,state:ne,persistedId:g,createdId:ue?g:null,isDirty:L,contentKey:w,loadedRecord:S,hasUnsavedContent:O.hasUnsavedContent,contentText:le,reload:ce,restoreRevision:H,patchFeatureImage:O.patchFeatureImage,settings:I,editSettings:B,stageSettings:R,commitSettings:ae,title:re,slug:F,editSlug:O.editSlug,publishTime:ie,editPublishedAt:z,getSaveSnapshot:O.getSaveSnapshot,getLiveLexical:O.getLiveLexical,dispatchField:O.dispatchField,dispatchExplicit:U,saveExplicit:O.dispatchExplicit,dispatchPublish:_e,reauthSucceeded:O.reauthSucceeded,reauthAbandoned:O.reauthAbandoned,leaveRequested:O.leaveRequested,dispose:O.dispose}),[ve,ae,w,le,U,_e,z,B,re,L,ue,S,g,ie,ce,H,O,I,F,R,ne])}function gp(e,t){let n=F(),r=I(),i=fp(),a=e.isDirty(),o=Fd(e.state,a),[s,c]=(0,X.useState)(!1),l=In({when:o,confirmUnloadWhen:o,interceptNavigation:({currentLocation:e,nextLocation:n})=>Id(e,n,t,i)}),u=(0,X.useRef)(l);u.current=l;let d=(0,X.useRef)(!1),f=(0,X.useRef)(!0);(0,X.useEffect)(()=>(f.current=!0,()=>{f.current=!1}),[]);let p=l.interceptedNavigation.isBlocked,m=e.createdId;(0,X.useEffect)(()=>{if(!m||l.isBlocked||p||d.current)return;let e=`/editor/${t}/${m}`;n.pathname!==e&&r(e,{replace:!0,state:{editorSession:i}})},[m,l.isBlocked,p,n.pathname,r,t,i]),(0,X.useEffect)(()=>{p&&u.current.interceptedNavigation.proceed()},[p]);let{isBlocked:h}=l,{leaveRequested:g}=e,_=(0,X.useRef)(!1);(0,X.useEffect)(()=>{if(!h){_.current=!1,d.current||c(!1);return}_.current||(_.current=!0,g().then(e=>{if(f.current){if(e===`confirm`){c(!0);return}d.current=!0,u.current.dialogProps.onConfirm()}}))},[h,g]);let v=l.dialogProps;return{dialogProps:{open:s,onConfirm:()=>{d.current||(d.current=!0,v.onConfirm())},onOpenChange:e=>{d.current||(e||c(!1),v.onOpenChange(e))}}}}function _p(e,t){return e.map(e=>({label:`Offer — ${e.name}`,value:`${t}${e.code.replace(/^\//,``)}`}))}function vp(e,t){let n=[{label:`Homepage`,value:e.homepageUrl},{label:`Free signup`,value:`#/portal/signup/free`}],r=[{label:`Share ${e.postType}`,value:`#/share`}],i=e.paidMembersEnabled?[{label:`Paid signup`,value:`#/portal/signup`},{label:`Upgrade or change plan`,value:`#/portal/account/plans`}]:[],a=e.donationsEnabled?[{label:`Tips and donations`,value:`#/portal/support`}]:[],o=e.recommendationsEnabled?[{label:`Recommendations`,value:`#/portal/recommendations`}]:[],s=e.paidMembersEnabled?[{label:`Gift subscriptions`,value:`#/portal/gift`}]:[];return[...n,...i,...a,...s,...r,...o,...t]}function yp(e,t){let n=new Intl.DateTimeFormat(`en-US`,{day:`numeric`,month:`short`,year:`numeric`,timeZone:t}).formatToParts(new Date(e)),r=e=>n.find(t=>t.type===e)?.value??``;return`${r(`day`)} ${r(`month`)} ${r(`year`)}`}function bp(e,t){let n={...e};return e.publishedAt&&(n.metaText=yp(e.publishedAt,t.timezone)),t.membersEnabled&&e.visibility&&(e.visibility===`members`?(n.MetaIcon=we,n.metaIconTitle=`Members only`):e.visibility===`paid`?(n.MetaIcon=Oe,n.metaIconTitle=`Paid-members only`):e.visibility===`tiers`&&(n.MetaIcon=Oe,n.metaIconTitle=`Specific tiers only`)),n}function xp(e,t){let n=[];return e.forEach(e=>{let r=e.options.filter(e=>e.url);(e.groupName===`Posts`||e.groupName===`Pages`)&&(r=r.filter(e=>e.status===`published`)),e.groupName===`Staff`&&(r=r.filter(e=>!/\/404\//.test(e.url??``))),r.length!==0&&((e.groupName===`Posts`||e.groupName===`Pages`)&&(r=r.map(e=>bp(e,t))),n.push({label:e.groupName,items:r}))}),n}function Sp(e,t){return[{label:`Latest posts`,items:e.map(e=>bp({id:e.id,title:e.title,url:e.url,visibility:e.visibility,publishedAt:e.published_at},t))}]}function Cp(e,t,n){return{groupName:e,options:Tp(t,n,e=>e.title).map(t=>({id:`${e===`Posts`?`post`:`page`}.${t.id}`,title:t.title,url:t.url,status:t.status,visibility:t.visibility,publishedAt:t.published_at}))}}function wp(e,t,n){return{groupName:e,options:Tp(t,n,e=>e.name).map(t=>({id:`${e===`Staff`?`user`:`tag`}.${t.id}`,title:t.name,url:t.url}))}}function Tp(e,t,n){let r=t.trim().toLowerCase();return r?e.filter(e=>n(e).toLowerCase().includes(r)):[]}function Ep({postType:e,homepageUrl:t,paidMembersEnabled:n,donationsEnabled:r,recommendationsEnabled:i,membersEnabled:a,timezone:o}){let s=m(),c=(0,X.useRef)({index:{}}),l=(0,X.useCallback)(e=>{let t=c.current.index[e];if(t)return t;let n=s(f(`/search-index/${e}/`),Z).then(t=>t[e]).catch(()=>(delete c.current.index[e],[]));return c.current.index[e]=n,n},[s]),u=(0,X.useCallback)(async()=>{c.current.offerLinks??=s(f(`/offers/`,{filter:`status:active+redemption_type:signup`}),Z).then(e=>_p(e.offers??[],t)).catch(()=>(delete c.current.offerLinks,[]));let a=await c.current.offerLinks;return vp({postType:e,homepageUrl:t,paidMembersEnabled:n,donationsEnabled:r,recommendationsEnabled:i},a)},[s,e,t,n,r,i]),d=(0,X.useMemo)(()=>({timezone:o,membersEnabled:a}),[o,a]);return{fetchAutocompleteLinks:u,searchLinks:(0,X.useCallback)(async e=>{if(!e)return c.current.latestPosts??=s(f(`/posts/`,{filter:`status:published`,fields:`id,url,title,visibility,published_at`,order:`published_at desc`,limit:`5`}),Z).then(e=>Sp(e.posts,d)).catch(e=>{throw delete c.current.latestPosts,e}),c.current.latestPosts;let[t,n,r,i]=await Promise.all([l(`users`),l(`tags`),l(`posts`),l(`pages`)]);return xp([wp(`Staff`,t,e),wp(`Tags`,n,e),Cp(`Posts`,r,e),Cp(`Pages`,i,e)],d)},[s,l,d])}}function Dp({post:e,snippets:t,createSnippet:n,deleteSnippet:r}){let{data:a}=Sa(),o=Ca(),{data:s}=P({requestOptions:Z}),{data:c}=Jt({requestOptions:Z}),{data:l}=_({requestOptions:Z}),{unsplashConfig:u}=i(),d=Ce({requestOptions:Z}),p=E(Z),h=m(),g=a?.settings??null,v=s?.config,y=c?.site,b=(0,X.useRef)(null),x=(0,X.useCallback)(()=>(b.current??=h(f(`/labels/`,{limit:`all`,fields:`id,name`}),Z).then(e=>e.labels.map(e=>e.name)).catch(e=>{throw b.current=null,e}),b.current),[h]),{fetchAutocompleteLinks:S,searchLinks:C}=Ep({postType:e.displayName,homepageUrl:y?kt(y):`/`,paidMembersEnabled:Y(g,`paid_members_enabled`)===!0,donationsEnabled:Y(g,`donations_enabled`)===!0,recommendationsEnabled:Y(g,`recommendations_enabled`)===!0,membersEnabled:Y(g,`members_signup_access`)!==`none`,timezone:o}),w=Y(g,`default_content_visibility`)??`public`,T=(0,X.useMemo)(()=>ma(e,w),[e,w]);return(0,X.useMemo)(()=>!g||!v||!y||!l?null:_a({settings:g,config:v,site:y,currentUser:l,unsplashHeaders:u,pinturaConfig:d,post:T,snippets:t},{fetchEmbed:p,fetchAutocompleteLinks:S,searchLinks:C,fetchLabels:x,createSnippet:n,deleteSnippet:r}),[g,v,y,l,u,d,T,t,p,S,C,x,n,r])}var Op=`SnippetsResponseType`,kp=`mobiledoc,lexical`,Ap=y({dataType:Op,path:`/snippets/`,defaultSearchParams:{limit:`all`,formats:kp}}),jp=({searchParams:e,...t}={})=>Ap({...t,searchParams:{limit:`all`,...e,formats:kp}}),Mp=!1,Np=g({method:`POST`,sessionExpiryRedirect:Mp,path:()=>`/snippets/`,searchParams:()=>({formats:kp}),body:e=>({snippets:[e]}),invalidateQueries:{dataType:Op}}),Pp=g({method:`PUT`,sessionExpiryRedirect:Mp,path:({id:e})=>`/snippets/${e}/`,searchParams:()=>({formats:kp}),body:({id:e,...t})=>({snippets:[t]}),invalidateQueries:{dataType:Op}}),Fp=g({method:`DELETE`,sessionExpiryRedirect:Mp,path:e=>`/snippets/${e}/`,invalidateQueries:{dataType:Op}});function Ip({canManage:e}){let{data:t}=jp({requestOptions:Z}),n=Np(),r=Pp(),i=Fp(),[a,o]=(0,X.useState)(null),[s,c]=(0,X.useState)(!1),l=(0,X.useMemo)(()=>(t?.snippets??[]).filter(e=>e.lexical!==null).sort((e,t)=>e.name.localeCompare(t.name)),[t?.snippets]),u=(0,X.useMemo)(()=>l.map(e=>({id:e.id,name:e.name,value:e.lexical??``})),[l]),d=(0,X.useCallback)(e=>{let t=e.name.trim().toLowerCase(),r=l.find(e=>e.name.toLowerCase()===t);if(r){o({kind:`update`,snippet:r,value:e.value});return}n.mutateAsync({name:e.name,lexical:e.value,mobiledoc:`{}`}).then(()=>w.success(`Snippet saved as "${e.name}"`)).catch(()=>w.error(`Snippet save failed`))},[n,l]),f=(0,X.useCallback)(({name:e})=>{let t=l.find(t=>t.name===e);t&&o({kind:`delete`,snippet:t})},[l]),p=()=>o(null),m=async()=>{if(a){c(!0);try{a.kind===`update`?(await r.mutateAsync({id:a.snippet.id,name:a.snippet.name,lexical:a.value,mobiledoc:a.snippet.mobiledoc||`{}`}),w.success(`Snippet "${a.snippet.name}" updated`)):await i.mutateAsync(a.snippet.id)}catch{w.error(a.kind===`update`?`Snippet save failed`:`Snippet delete failed`)}finally{c(!1),p()}}},h=(0,Q.jsx)(Wt,{open:a!==null,onOpenChange:e=>!e&&!s&&p(),children:(0,Q.jsxs)(sn,{"data-testid":Mr,children:[(0,Q.jsxs)(Gt,{children:[(0,Q.jsx)(Nt,{children:a?.kind===`delete`?`Confirm snippet deletion`:`Update this snippet?`}),(0,Q.jsx)(Vt,{children:a?.kind===`delete`?(0,Q.jsxs)(Q.Fragment,{children:[`You’re about to delete the “`,(0,Q.jsx)(`strong`,{children:a.snippet.name}),`” snippet. This is permanent, and will delete the snippet for all staff users. It will`,` `,(0,Q.jsx)(`strong`,{children:`not`}),` change any posts where you’ve used this snippet in the past.`]}):(0,Q.jsxs)(Q.Fragment,{children:[`“`,(0,Q.jsx)(`strong`,{children:a?.snippet.name}),`” will be overwritten. Don’t worry, this will only affect using the snippet in the future. Any older posts using this snippet will stay the same.`]})})]}),(0,Q.jsxs)(Ht,{children:[(0,Q.jsx)(G,{disabled:s,variant:`outline`,onClick:p,children:`Cancel`}),(0,Q.jsx)(G,{disabled:s,variant:a?.kind===`delete`?`destructive`:`default`,onClick:()=>void m(),children:a?.kind===`delete`?`Delete snippet`:`Update`})]})]})});return{snippets:u,createSnippet:e?d:void 0,deleteSnippet:e?f:void 0,snippetDialog:h}}function Lp(){return(0,Q.jsx)(J,{align:`center`,className:`h-full`,justify:`center`,children:(0,Q.jsx)(Mt,{size:`lg`})})}function Rp({message:e,onRetry:t}){return(0,Q.jsxs)(J,{align:`center`,className:`h-full`,"data-testid":cr,justify:`center`,children:[(0,Q.jsx)(V,{tone:`secondary`,children:e}),(0,Q.jsx)(G,{variant:`outline`,onClick:t,children:`Retry`})]})}function zp({postType:e,children:t}){let n=e===`page`?`Pages`:`Posts`;return(0,Q.jsxs)(q,{className:`shrink-0 px-4 py-3`,gap:`sm`,children:[(0,Q.jsx)(G,{size:`sm`,variant:`ghost`,asChild:!0,children:(0,Q.jsxs)(_n,{to:e===`page`?`/pages`:`/posts`,children:[(0,Q.jsx)(Be,{}),n]})}),t]})}function Bp(e,t){if(!e)return t?{status:`draft`}:void 0;let n=`email`in e?e.email:null,r=`newsletter`in e?e.newsletter??null:null;return{status:e.status,publishedAt:e.published_at,url:e.url,emailOnly:`email_only`in e?e.email_only:!1,newsletter:r,emailSegment:`email_segment`in e?e.email_segment:null,hasEmail:!!n,emailStatus:n?.status??null,emailCount:n?.email_count??0}}function Vp({postType:e,record:t,createdId:n,cardConfig:r,currentUser:i,showExcerpt:a,snippetDialog:o}){let s=hp({postType:e,record:t,siteUrl:r.siteUrl,currentUserId:i?.id}),[c,l]=(0,X.useState)(0),[u,d]=(0,X.useState)(!1),f=(0,X.useCallback)(()=>d(e=>!e),[]),p=Pd(s,s.loadedRecord,s.contentKey),m=gp(s,e),h=s.settings.visibility,g=s.settings.show_title_and_feature_image,_=(0,X.useMemo)(()=>va(r,{visibility:h,showTitleAndFeatureImage:g}),[r,g,h]);return Rs(s.dispatchExplicit),(0,Q.jsxs)(J,{className:`h-full`,gap:`none`,children:[(0,Q.jsxs)(zp,{postType:e,children:[(0,Q.jsx)(ec,{isDirty:s.isDirty(),record:Bp(s.loadedRecord??t,n),state:s.state}),(0,Q.jsxs)(q,{className:`ml-auto`,gap:`sm`,children:[(0,Q.jsx)(Bs,{currentUser:i,postType:e,session:s,siteUrl:r.siteUrl,tkCount:c}),(0,Q.jsx)(G,{"aria-expanded":u,"aria-label":`Settings`,"data-testid":Pr,size:`sm`,variant:`ghost`,onClick:f,children:(0,Q.jsx)(qe,{})})]})]}),(0,Q.jsx)(Mc,{contentText:s.contentText,hasUnsavedContent:s.hasUnsavedContent,state:s.state,onDismissReauth:s.reauthAbandoned,onReload:s.reload,onRetryReauth:s.reauthSucceeded,onRetrySave:s.dispatchExplicit}),(0,Q.jsxs)(q,{align:`stretch`,className:`relative min-h-0 flex-1`,gap:`none`,children:[(0,Q.jsx)(`div`,{className:`min-h-0 min-w-0 flex-1`,children:(0,Q.jsx)(Tc,{...s.bind,autofocusTitle:!t,cardConfig:_,featureImage:p,postType:e,showExcerpt:a,onExcerptBlur:s.commitSettings,onTkCountChange:l},s.contentKey)}),u?(0,Q.jsx)(Dd,{cardConfig:_,currentUser:i,featureImage:p.featureImage,hasInlineExcerpt:a,postType:e,session:s,siteUrl:r.siteUrl}):null]}),o,(0,Q.jsx)(Cn,{testId:kr,...m.dialogProps})]})}function Hp({postType:e,record:t,createdId:n}){let{data:r}=_({requestOptions:Z}),i=$t(`editorExcerpt`,{requestOptions:Z}),{snippets:a,createSnippet:o,deleteSnippet:s,snippetDialog:c}=Ip({canManage:!!r&&(H(r)||de(r)||pe(r))}),[l]=(0,X.useState)(()=>({displayName:e,showTitleAndFeatureImage:t&&`show_title_and_feature_image`in t?t.show_title_and_feature_image:void 0,visibility:t?.visibility})),u=Dp({post:l,snippets:a,createSnippet:o,deleteSnippet:s});return u?(0,Q.jsx)(Vp,{cardConfig:u,createdId:n,currentUser:r,postType:e,record:t,showExcerpt:i,snippetDialog:c}):(0,Q.jsx)(Lp,{})}function Up(e,t){let n=t.authors?.some(t=>t.id===e.id)??!1;return ce(e)&&!n?!0:ue(e)&&t.status!==`draft`}function Wp(e){let{mutateAsync:t}=A(),{mutateAsync:n}=zn(),[r,i]=(0,X.useState)(null);return{state:r,convert:(0,X.useCallback)(async r=>{let a={id:r.id,updated_at:r.updated_at},o={convertToLexical:!0};i({id:r.id});try{let s=e===`page`?(await n({page:a,options:o,...Z})).pages[0]:(await t({post:a,options:o,...Z})).posts[0];i(s?{id:r.id,record:s}:{id:r.id,error:!0})}catch(e){i({id:r.id,error:e})}},[n,t,e])}}function Gp({postType:e,id:t}){let[n]=(0,X.useState)(t),r=I(),{data:i}=_({requestOptions:Z}),a=N(n??``,{enabled:e===`post`&&!!n,defaultErrorHandler:!1,requestOptions:Z}),o=Hn(n??``,{enabled:e===`page`&&!!n,defaultErrorHandler:!1,requestOptions:Z}),s=e===`page`?o:a,c=e===`page`?o.data?.pages[0]:a.data?.posts[0],{state:l,convert:u}=Wp(e),d=e===`page`?`/pages`:`/posts`,f=!!i&&!!c&&Up(i,c);(0,X.useEffect)(()=>{f&&r(d,{replace:!0})},[f,r,d]);let p=!!i&&!!c?.mobiledoc&&!c.lexical&&!f;if((0,X.useEffect)(()=>{p&&c&&l?.id!==c.id&&u(c)},[p,c,l?.id,u]),!n)return(0,Q.jsx)(Hp,{createdId:t,postType:e});if(s.error instanceof h&&s.error.response?.status===404)return(0,Q.jsx)(tn,{});if(s.error)return(0,Q.jsx)(Rp,{message:`Couldn’t load this ${e}.`,onRetry:()=>void s.refetch()});if(s.isPending||!i||f)return(0,Q.jsx)(Lp,{});if(!c)return(0,Q.jsx)(tn,{});let m=c;if(p){let t=l?.id===c.id?l:void 0;if(t?.error)return(0,Q.jsx)(Rp,{message:`Couldn’t convert this ${e} for editing.`,onRetry:()=>void u(c)});if(!t?.record)return(0,Q.jsx)(Lp,{});m=t.record}return(0,Q.jsx)(Hp,{postType:e,record:m})}function Kp(){let e=re()[`*`]??``,t=fp(),[n,r,...i]=e.split(`/`).filter(Boolean);return n?n!==`post`&&n!==`page`||i.length>0?(0,Q.jsx)(tn,{}):(0,Q.jsx)(Gp,{id:r,postType:n},t):(0,Q.jsx)(ie,{to:`/editor/post`,replace:!0})}export{Kp as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e,n as t}from"./hooks-DYfTEQLk.js";import{d as n,m as r,r as i}from"./schemas-BoYdB6YU.js";var a=n({email_previews:i(n({html:r(),plaintext:r(),subject:r()})).min(1)}),o=e({dataType:`EmailPreviewResponseType`,path:e=>`/email_previews/posts/${e}/`,parseResponse:e=>a.parse(e)}),s=(e,t={})=>{let{memberStatus:n,memberTier:r,newsletter:i,searchParams:a,...s}=t,c={...a};return n&&(c.member_status=n),r&&(c.member_tier=r),i&&(c.newsletter=i),o(e,{...s,searchParams:c})},c=t({method:`POST`,sessionExpiryRedirect:!1,path:({postId:e})=>`/email_previews/posts/${e}/`,body:({emails:e,memberStatus:t,memberTier:n,newsletter:r})=>({emails:e,...r&&{newsletter:r},...t&&{member_status:t},...n&&{member_tier:n}})});export{c as n,s as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as e,t}from"./react-BXwhMTuc.js";var n=e(t(),1),r=(0,n.createContext)(void 0),i=()=>{let e=(0,n.useContext)(r);if(!e)throw Error(`useEmailSendingStatusContext must be used within an EmailSendingStatusProvider`);return e};export{i as n,r as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as e,t}from"./react-BXwhMTuc.js";import{s as n}from"./framework-provider-DB-svAju.js";import{p as r}from"./hooks-DYfTEQLk.js";import{t as i}from"./jsx-runtime-BlNNh7jY.js";import{t as a}from"./posts-tcoO3iRG.js";import{n as o}from"./post-utils-DKF4mfuo.js";import{Zr as s}from"./index-DOF2jDq0.js";import{n as c,t as l}from"./stats-Cvp8Ep5m.js";import{r as u,t as d}from"./emails-CgvIIz3q.js";import{t as f}from"./email-sending-status-context-C76KYL1V.js";import{t as p}from"./feedback-BTPBQLT5.js";import{t as m}from"./links-Ctujreuh.js";import{n as h}from"./post-analytics-context-bt2YTBAC.js";import{t as g}from"./use-email-sending-status-DNMtL5B9.js";var _=e(t(),1),v=i(),y=new Set([a,m,l,c,p]),b=({children:e})=>{let{post:t,refetchPost:i}=h(),a=n(),c=s(`improveSendingUI`),l=t?.email?.id,p=t?.email?.status,m=!!l&&(t?.status===`published`||t?.status===`sent`),b=c&&m&&!!p,x=g({emailId:l,emailStatus:p,enabled:b}),{mutateAsync:S,isPending:C}=u(),{refetch:w}=x,T=r(),[E,D]=(0,_.useState)(!1),O=x.status,k=O?.sending.status,A=!!(c&&l&&k===`failed`),j=d(l??``,{enabled:A,searchParams:{filter:`status:submitting`,fields:`id,status`,limit:`1`},defaultErrorHandler:!1,refetchOnWindowFocus:!0,retry:!1,staleTime:0}),M=!!(A&&(j.isFetching||j.isError||!j.data||j.data.batches.some(e=>e.status===`submitting`))),N=(0,_.useRef)(null),P=(0,_.useRef)(!1),[F,I]=(0,_.useState)(null);(0,_.useEffect)(()=>{if(!l||!k)return;let e=`${l}:${k}`;if(N.current!==e){if(N.current=e,k!==`submitted`&&I(e=>e===l?null:e),k===`failed`){i();return}k===`submitted`&&Promise.all([...y].map(e=>a.invalidateQueries({queryKey:[e]}))).then(()=>I(l))}},[l,a,i,k]);let L=b&&x.isLoading&&!O,R=!!(l&&k===`submitted`&&F!==l),z=!!(c&&O&&(O.sending.status!==`submitted`||R)),B=z?O?.sending.status===`failed`?`failed`:`sending`:null,V=!!(t&&(t.status===`published`||t.status===`sent`)&&(o(t)||c&&O&&t.email)),H=(0,_.useCallback)(async()=>{if(!(!l||P.current)){P.current=!0,D(!0);try{await S({id:l}),await w({throwOnError:!0})}catch(e){T(e)}finally{P.current=!1,D(!1)}}},[l,T,w,S]),U=C||E,W=(0,_.useMemo)(()=>({status:O,isStatusLoading:L,isNewsletterDataHidden:z,newsletterDataHiddenReason:B,hasNewsletterAnalytics:V,hasUnknownDeliveryOutcome:M,isRetrying:U,retrySending:H}),[O,L,z,B,V,M,U,H]);return(0,v.jsx)(f.Provider,{value:W,children:e})};export{b as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e,n as t}from"./hooks-
|
|
1
|
+
import{i as e,n as t}from"./hooks-DYfTEQLk.js";import{t as n}from"./posts-tcoO3iRG.js";import{c as r,d as i,m as a,r as o,s,t as c,u as l}from"./schemas-BoYdB6YU.js";var u=c([`pending`,`submitting`,`submitted`,`failed`]),d=i({batches:o(i({id:a(),status:u}))}),f=c([`preparing`,`submitting`]),p=i({completed:l().int().nonnegative(),total:l().int().nonnegative(),estimated_seconds_remaining:l().int().nonnegative().nullable()}),m=s(`status`,[i({status:f,progress:p}),i({status:r(`submitted`),progress:p}),i({status:r(`failed`),progress:p,failed_during:f})]),h=i({email_statuses:o(i({id:a(),sending:m}))}),g=`EmailStatusesResponseType`,_=e({dataType:`EmailBatchesResponseType`,path:e=>`/emails/${e}/batches/`,parseResponse:e=>d.parse(e)}),v=e({dataType:g,path:e=>`/emails/${e}/status/`,parseResponse:e=>h.parse(e)}),y=t({method:`PUT`,path:({id:e})=>`/emails/${e}/retry/`,body:()=>({}),requestOptions:({sessionExpiryRedirect:e})=>({sessionExpiryRedirect:e}),invalidateQueries:{dataType:n}});export{v as n,y as r,_ as t};
|
|
@@ -0,0 +1,8 @@
|
|
|
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-filterable-api-CxCrnPxG.js";import{t as i}from"./text-BLI0C8Mc.js";import{ft as a,t as o}from"./button-D414TI3B.js";import{t as s}from"./multi-select-combobox-_9wEYmGv.js";import{o as c,t as l}from"./use-settings-navigation-CzGU4sus.js";import{i as u,n as d,r as f,t as p}from"./combobox-6_ruuTuj.js";import{a as m,o as h,r as g,t as _}from"./field-BXEh3ptU.js";import{t as v}from"./textarea-C5qolByg.js";import{n as y,t as b}from"./toggle-group-BTL1QsWY.js";import{$r as x,Qr as S,yi as C}from"./index-DOF2jDq0.js";import{n as w}from"./global-data-context-3MItMry2.js";import{t as T}from"./use-setting-group-ldtX1Vsk.js";import{t as E}from"./color-picker-field-DP0moHz9.js";import{t as D}from"./color-utils-Dzeeuj1F.js";import{t as O}from"./iframe-buffering-Bq1el-gw.js";var k=e(t(),1);function A(e){return e?e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`):``}var j=e=>`data-preview-layout="${A(e)}"`,M=({preview:e,config:t,settings:n,labels:r,backgroundColor:i,layout:a})=>{let o=t.blogUrl,s=t.signupForm.url.replace(`{version}`,t.signupForm.version),c={site:o,locale:n.locale,"button-color":n.accentColor,"button-text-color":D(n.accentColor).hex()};for(let[e,t]of r.entries())c[`label-${e+1}`]=t.name;let l=`min-height: 58px;max-width: 440px;margin: 0 auto;width: 100%`;a===`all-in-one`&&(n.icon&&n.icon!==``&&(c.icon=n.icon.replace(/\/content\/images\/(?:size\/[^/]+\/)*/,`/content/images/size/w192h192/`)),c.title=n.title??``,c.description=n.description??``,c[`background-color`]=i,c[`text-color`]=D(i).hex(),l=`height: 40vmin;min-height: 360px`),e&&(l=a===`minimal`?`min-height:58px;width:calc(100% - 48px);position:absolute;left:50%;top:50%;transform:translate(-50%, -50%)`:`height: 100vh`);let u=``,d=[`background-color`,`text-color`,`button-color`,`button-text-color`,`title`,`description`,`icon`,`site`,`locale`],f=Object.keys(c).sort((e,t)=>d.indexOf(e)-d.indexOf(t));for(let e of f){let t=c[e];u+=` data-${e}="${A(t)}"`}let p=`<div${e?` ${j(a)}`:``} style="${A(l)}"><script src="${encodeURI(s)}"${u} async><\/script></div>`;return e&&a===`minimal`?`<div style="position: absolute; z-index: -1; top: 0; left: 0; width: 100%; height: 100%; background-image: linear-gradient(45deg, #eee 25%, transparent 25%, transparent 75%, #eee 75%), linear-gradient(45deg, #eee 25%, transparent 25%, transparent 75%, #eee 75%);background-size: 16px 16px;background-position: 0 0, 8px 8px;;"></div>${p}`:p},N=n(),P=({backgroundColor:e,html:t,style:n})=>{let r=(0,k.useRef)(e),i=(0,k.useRef)(t),a=t.includes(j(n));return r.current=e,i.current=t,(0,N.jsx)(O,{className:`absolute size-full overflow-hidden transition-opacity duration-500`,generateContent:(0,k.useCallback)(e=>{if(!a)return;let t=e.contentDocument||e.contentWindow?.document;if(!t)return;e.dataset.previewLayout=n;let o=`
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<style>body, html {height: 100%; padding: 0; margin: 0; overflow: hidden; background: ${r.current}; transition: background-color 200ms ease;}</style>
|
|
5
|
+
</head>
|
|
6
|
+
<body>${i.current}</body>
|
|
7
|
+
</html>
|
|
8
|
+
`;t.open(),t.write(o),t.close()},[a,n]),height:`100%`,parentClassName:`relative h-full min-h-[400px] w-full`,updateContent:(0,k.useCallback)(r=>{if(r.dataset.previewLayout!==n)return;let i=r.contentDocument||r.contentWindow?.document;if(!i)return;[i.documentElement,i.body].forEach(t=>{t.style.backgroundColor=e,t.style.transition=`background-color 200ms ease`});let a=new DOMParser().parseFromString(t,`text/html`).querySelector(`script`),o=i.querySelector(`script`);if(!a||!o)return;let s=new Map(Array.from(a.attributes).filter(e=>e.name.startsWith(`data-`)).map(e=>[e.name,e.value]));Array.from(o.attributes).filter(e=>e.name.startsWith(`data-`)&&!s.has(e.name)).forEach(e=>o.removeAttribute(e.name)),s.forEach((e,t)=>{o.getAttribute(t)!==e&&o.setAttribute(t,e)})},[e,t,n]),width:`100%`})},F=({selectedLayout:e,accentColor:t,handleColorToggle:n,selectedColor:c,selectedLabels:l,handleLabelClick:C,embedScript:w,handleLayoutSelect:T,handleCopyClick:D,isCopied:O,handleClose:A})=>{let{loadData:j}=r({path:`/labels/`,filterKey:`name`,responseKey:`labels`}),[M,P]=(0,k.useState)(l||[]),[F,I]=(0,k.useState)(!1),[L,R]=(0,k.useState)(!1),z=(0,k.useRef)(0),B=(0,k.useRef)(null),V=(0,k.useRef)(j),H=(0,k.useRef)(l);V.current=j,H.current=l;let U=(0,k.useCallback)(async(e,t)=>{let n=H.current||[];try{let r=(await V.current(e)).map(e=>({label:e.name,value:e.name}));t===z.current&&P([...n,...r.filter(e=>!n.some(t=>t.value===e.value))])}catch{t===z.current&&P(n)}finally{t===z.current&&R(!1)}},[]),W=(0,k.useCallback)((e,t=!1)=>{z.current+=1;let n=z.current;R(!0),B.current&&clearTimeout(B.current),t?B.current=setTimeout(()=>void U(e,n),500):U(e,n)},[U]);return(0,k.useEffect)(()=>{P(e=>[...l||[],...e.filter(e=>!l?.some(t=>t.value===e.value))])},[l]),(0,k.useEffect)(()=>()=>{z.current+=1,B.current&&clearTimeout(B.current)},[]),(0,N.jsx)(S,{className:`h-auto border-border p-6 max-lg:border-t lg:h-[calc(100vh-16vmin)] lg:max-h-[645px] lg:overflow-y-scroll lg:border-l`,gap:`none`,children:(0,N.jsxs)(`div`,{children:[(0,N.jsx)(i,{as:`h4`,className:`mb-8 md:text-xl`,leading:`heading`,size:`lg`,weight:`bold`,children:`Embed signup form`}),(0,N.jsxs)(m,{className:`gap-6`,children:[(0,N.jsxs)(`div`,{className:`flex w-full items-center justify-between`,children:[(0,N.jsx)(`div`,{children:`Layout`}),(0,N.jsxs)(b,{type:`single`,value:e,onValueChange:e=>{(e===`all-in-one`||e===`minimal`)&&T(e)},children:[(0,N.jsx)(y,{value:`all-in-one`,children:`Branded`}),(0,N.jsx)(y,{value:`minimal`,children:`Minimal`})]})]}),e===`all-in-one`&&(0,N.jsx)(E,{debounceMs:200,direction:`rtl`,eyedropper:!0,swatches:[{hex:`#08090c`,title:`Dark`,value:`#08090c`},{hex:`#ffffff`,title:`Light`,value:`#ffffff`},{hex:t||`#d74780`,title:`Accent`,value:t||`#d74780`}],title:`Background color`,value:c,onChange:e=>{e&&n(e)}}),(0,N.jsxs)(_,{children:[(0,N.jsx)(h,{children:`Labels at signup`}),(0,N.jsxs)(p,{open:F,onOpenChange:e=>{I(e),e&&W(``)},children:[(0,N.jsx)(f,{"aria-label":`Labels at signup`,children:(0,N.jsx)(u,{placeholder:!l?.length,children:l?.length?l.map(e=>e.label).join(`, `):`Pick one or more labels (optional)`})}),(0,N.jsx)(d,{children:(0,N.jsx)(s,{footer:({searchInput:e,clearSearch:t})=>{let n=e.trim();return L||!n||M.some(e=>e.label.toLowerCase()===n.toLowerCase())?null:(0,N.jsx)(`div`,{className:`border-t p-1`,children:(0,N.jsxs)(`button`,{className:`flex h-8 w-full items-center justify-start gap-2 rounded-xs px-2 text-sm hover:bg-interactive-hover`,type:`button`,onClick:()=>{let e={label:n,value:n};P(t=>[...t,e]),C([...(l||[]).map(e=>e.value),n]),t()},children:[(0,N.jsx)(a,{className:`size-4`}),`Create “`,n,`”`]})})},isLoading:L,options:M,values:(l||[]).map(e=>e.value),onChange:C,onSearchChange:e=>W(e,!0)})})]}),(0,N.jsx)(g,{children:`Will be applied to all members signing up via this form`})]}),(0,N.jsxs)(_,{children:[(0,N.jsx)(h,{htmlFor:`embed-signup-code`,children:`Embed code`}),(0,N.jsx)(v,{className:`resize-none font-mono`,id:`embed-signup-code`,value:`${w}`,readOnly:!0}),(0,N.jsx)(g,{children:`Paste this code onto any website where you'd like your signup to appear.`}),(0,N.jsxs)(x,{className:`mt-2 lg:justify-start`,gap:`md`,justify:`end`,children:[(0,N.jsx)(o,{className:`font-semibold lg:hidden`,type:`button`,variant:`outline`,onClick:A,children:`Close`}),(0,N.jsx)(o,{type:`button`,onClick:D,children:O?`Copied!`:`Copy code`})]})]})]})]})})},I=()=>{let[e,t]=(0,k.useState)(`#08090c`),[n,r]=(0,k.useState)([]),[i,a]=(0,k.useState)(`all-in-one`),[o,s]=(0,k.useState)(``),[u,d]=(0,k.useState)(``),[f,p]=(0,k.useState)(!1),{updateRoute:m}=l(),{config:h}=w(),{localSettings:g,siteData:_}=T(),[v,y,b,x,S]=C(g,[`accent_color`,`title`,`description`,`locale`,`icon`]),[E,D]=(0,k.useState)({active:!1});(0,k.useEffect)(()=>{if(!_)return;let t={config:{blogUrl:_.url,signupForm:{url:h?.signupForm?.url,version:h?.signupForm?.version}},settings:{accentColor:v||`#d74780`,title:y||``,locale:x||`en`,icon:S||``,description:b||``},labels:n.map(({label:e})=>({name:e})),backgroundColor:e||`#08090c`,layout:i},r=M({preview:!0,...t});s(r);let a=M({preview:!1,...t});d(a)},[_,v,n,h,y,e,i,x,S,b]);let O=async()=>{try{await navigator.clipboard.writeText(u),p(!0),setTimeout(()=>p(!1),2e3)}catch(e){console.error(`Failed to copy text: `,e)}},A=e=>{t(e)},j=()=>{m(`embed-signup-form`)};return(0,N.jsx)(c,{cancelLabel:``,className:`max-lg:h-auto!`,footer:!1,height:645,padding:!1,testId:`embed-signup-form`,title:``,topRightContent:`close`,width:1120,onClose:j,children:(0,N.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-[5.2fr_2.8fr]`,children:[(0,N.jsx)(P,{backgroundColor:e,html:o,style:i}),(0,N.jsx)(F,{accentColor:v,customColor:E,embedScript:u,handleClose:j,handleColorToggle:A,handleCopyClick:()=>void O(),handleLabelClick:e=>{if(e.length){let t=e.map(e=>({label:e,value:e}));r(t)}else r([])},handleLayoutSelect:a,isCopied:f,selectedColor:e,selectedLabels:n,selectedLayout:i,setCustomColor:D})]})})};export{I as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as e,t}from"./react-BXwhMTuc.js";import{t as n}from"./jsx-runtime-BlNNh7jY.js";import{L as r}from"./shade-scope-Cccj-c7I-D0XwkdKQ.js";var i=e(t(),1),a=n(),o=i.forwardRef(({children:e,className:t,...n},i)=>(0,a.jsx)(`div`,{ref:i,className:r(`flex size-12 max-h-12 max-w-12 items-center justify-center rounded-full bg-muted [&_svg]:size-4 [&_svg]:shrink-0 [&_svg]:text-muted-foreground`,t),...n,children:e}));o.displayName=`EmptyBadge`;var s=i.forwardRef(({children:e,className:t,title:n,description:i,actions:s,...c},l)=>(0,a.jsxs)(`div`,{ref:l,className:r(`flex flex-col items-center justify-center gap-3 text-center`,t),...c,children:[(0,a.jsx)(o,{children:e}),(0,a.jsxs)(`div`,{className:`flex max-w-[320px] flex-col gap-1.5`,children:[(0,a.jsx)(`h3`,{className:`text-md font-medium tracking-normal text-pretty text-foreground`,children:n}),i&&(0,a.jsx)(`p`,{className:`text-sm leading-tight text-pretty text-muted-foreground`,children:i})]}),s&&(0,a.jsx)(`div`,{className:`flex items-center gap-2`,children:s})]}));s.displayName=`EmptyIndicator`;export{s as t};
|