ghost 6.63.0 → 6.64.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/lib/duplicate-deps.js +204 -0
- package/bin/validate-adapters.js +50 -6
- package/components/tryghost-adapter-base-scheduling-0.2.3.tgz +0 -0
- package/components/tryghost-adapter-base-sso-0.1.3.tgz +0 -0
- package/components/tryghost-admin-api-schema-0.0.0.tgz +0 -0
- package/components/tryghost-api-framework-0.0.0.tgz +0 -0
- package/components/tryghost-i18n-0.0.0.tgz +0 -0
- package/components/{tryghost-kg-default-cards-10.3.5.tgz → tryghost-kg-default-cards-10.3.6.tgz} +0 -0
- package/components/tryghost-kg-default-nodes-2.2.1.tgz +0 -0
- package/components/tryghost-kg-html-to-lexical-1.4.0.tgz +0 -0
- package/components/tryghost-kg-lexical-html-renderer-1.5.1.tgz +0 -0
- package/components/tryghost-limit-service-0.0.0.tgz +0 -0
- package/components/tryghost-metafield-types-0.0.0.tgz +0 -0
- package/content/themes/source/assets/built/screen.css +1 -1
- package/content/themes/source/assets/css/screen.css +1 -1
- package/content/themes/source/package.json +7 -7
- package/core/boot.js +10 -4
- package/core/built/admin/assets/Combination-DWfJPcz9.js +41 -0
- package/core/built/admin/assets/{PolarAngleAxis-pkMyqz8g.js → PolarAngleAxis-a81ieQUO.js} +2 -2
- package/core/built/admin/assets/RadialBarChart-CHRBhiBN.js +1 -0
- package/core/built/admin/assets/_baseAssignValue-DcPokYW8.js +1 -0
- package/core/built/admin/assets/about-39CAfroa.js +1 -0
- package/core/built/admin/assets/accordion-CJmRaqK7.js +1 -0
- package/core/built/admin/assets/account-migration-DYf7skbb.js +1 -0
- package/core/built/admin/assets/action-list-Crnh-_UI.js +1 -0
- package/core/built/admin/assets/add-integration-modal-B12oRifD.js +1 -0
- package/core/built/admin/assets/add-newsletter-modal-CTvXiIqY.js +1 -0
- package/core/built/admin/assets/add-recommendation-modal-CJf92edY.js +1 -0
- package/core/built/admin/assets/analytics-PHR1Fggi.js +1 -0
- package/core/built/admin/assets/announcement-bar-modal-Bql0CXdp.js +1 -0
- package/core/built/admin/assets/api-keys-CubH-7_H.js +1 -0
- package/core/built/admin/assets/{api-keys-BGPzLHzA.js → api-keys-omLA6iYn.js} +1 -1
- package/core/built/admin/assets/{audience-ceV3XVHq.js → audience-6GXevic-.js} +1 -1
- package/core/built/admin/assets/automated-emails-DJQ4uNZo.js +1 -0
- package/core/built/admin/assets/automations-DcZSLFDU.js +1 -0
- package/core/built/admin/assets/automations-hDVcRPjh.js +1 -0
- package/core/built/admin/assets/avatar-flipboard-DiAGgshK.js +1 -0
- package/core/built/admin/assets/badge-qP06OT7C.js +1 -0
- package/core/built/admin/assets/bluesky-sharing-CJw4d4Mf.js +1 -0
- package/core/built/admin/assets/box-CZ_LSVSy.js +1 -0
- package/core/built/admin/assets/brand-icon-D3ffDYaC.js +1 -0
- package/core/built/admin/assets/breadcrumb-Chn1Ip_q.js +1 -0
- package/core/built/admin/assets/button-DvIh2Bq-.js +1 -0
- package/core/built/admin/assets/calendar-1QGoStFM.js +1 -0
- package/core/built/admin/assets/card-FHQ4D10L.js +1 -0
- package/core/built/admin/assets/chart-helpers-CNpA7re_.js +1 -0
- package/core/built/admin/assets/{chart-BrhA41Zi.js → chart-jVz9Nf9t.js} +9 -9
- package/core/built/admin/assets/checkbox-DKht9xMl.js +1 -0
- package/core/built/admin/assets/{chunk-KS7C4IRE-DCsL4i4D.js → chunk-KS7C4IRE-DhOcHQOU.js} +1 -1
- package/core/built/admin/assets/{chunk.254.035b85ec456ebbd7336b.js → chunk.368.22ce1b732c0b40abd3f1.js} +159 -120
- package/core/built/admin/assets/chunk.524.cc9be98e44890cedc8c8.js +25 -0
- package/core/built/admin/assets/{chunk.582.98b485f9b2802f540897.js → chunk.582.e6fe742b3217207b11a6.js} +23 -30
- package/core/built/admin/assets/{chunk.901.4ccc639821020230bcca.js → chunk.972.4b8c97f93d66db15e751.js} +10625 -10088
- package/core/built/admin/assets/clean-tracked-url-dkN05vOf.js +1 -0
- package/core/built/admin/assets/code-editor-view-BLQIV85-.js +1 -0
- package/core/built/admin/assets/code-editor-view-Cg5eJxcr.js +1 -0
- package/core/built/admin/assets/color-picker-DQoghc0t.js +3 -0
- package/core/built/admin/assets/color-picker-field-BbeK5RRs.js +1 -0
- package/core/built/admin/assets/combobox-weO4FBbv.js +1 -0
- package/core/built/admin/assets/command-DlLrCm9V.js +1 -0
- package/core/built/admin/assets/comments-BjTitLmP.js +1 -0
- package/core/built/admin/assets/components-CwL6a6As-CCRaoCeP.js +1 -0
- package/core/built/admin/assets/{config-kSHvwdTG.js → config-BPljH6wF.js} +1 -1
- package/core/built/admin/assets/confirmation-context-IyqoXVk-.js +1 -0
- package/core/built/admin/assets/container-DAimjOF_.js +1 -0
- package/core/built/admin/assets/content-api-modal-0ZjuLcQ8.js +1 -0
- package/core/built/admin/assets/context-menu-BtioYFrg.js +1 -0
- package/core/built/admin/assets/copy-field-C6ujqJlP.js +1 -0
- package/core/built/admin/assets/create-ghost-browse-value-source-DAZMWZNq.js +1 -0
- package/core/built/admin/assets/custom-integration-modal-Dm8QI_J4.js +1 -0
- package/core/built/admin/assets/data-list-C0CKkeWW.js +1 -0
- package/core/built/admin/assets/date-range-select-DrjHQdgz.js +1 -0
- package/core/built/admin/assets/design-and-theme-modal-CXVOzBWu.js +2 -0
- package/core/built/admin/assets/detail-page-QpLIL-EO.js +1 -0
- package/core/built/admin/assets/dirty-confirm-dialog-DWwxREGh.js +1 -0
- package/core/built/admin/assets/disabled-sources-indicator-CLZhMv8J.js +1 -0
- package/core/built/admin/assets/dist-BRQkNYN1.js +11 -0
- package/core/built/admin/assets/{dist-B3keLvjj.js → dist-BXHrDV19.js} +2 -2
- package/core/built/admin/assets/dist-Bf-HQtVL.js +1 -0
- package/core/built/admin/assets/dist-Bm-PB47a.js +6 -0
- package/core/built/admin/assets/{dist-B6bJuxL3.js → dist-C2lYC76d.js} +1 -1
- package/core/built/admin/assets/dist-CUwte9v_.js +1 -0
- package/core/built/admin/assets/dist-Cm2qbZKL.js +1 -0
- package/core/built/admin/assets/{dist-BtaTA7Ii.js → dist-D7yMk931.js} +1 -1
- package/core/built/admin/assets/{dist-zwwGt8Yf.js → dist-DNAdeRyr.js} +1 -1
- package/core/built/admin/assets/dist-DS6zpxid.js +1 -0
- package/core/built/admin/assets/dist-DVVKsyPh.js +23 -0
- package/core/built/admin/assets/dist-DxfQlAmn.js +1 -0
- package/core/built/admin/assets/dist-DziNzWI2.js +1 -0
- package/core/built/admin/assets/dist-FEQQAwTe.js +1 -0
- package/core/built/admin/assets/dist-nmRzULcD.js +1 -0
- package/core/built/admin/assets/domain-DBrBic6q.js +1 -0
- package/core/built/admin/assets/dropzone-D61QVcEY.js +5 -0
- package/core/built/admin/assets/edit-profile-jCqJBxqw.js +1 -0
- package/core/built/admin/assets/editor-8Fm4UBEd.js +8 -0
- package/core/built/admin/assets/editor-screen-BSX_uC2B.js +27 -0
- package/core/built/admin/assets/email-previews-Bs-JDhIw.js +1 -0
- package/core/built/admin/assets/email-sending-status-context-C76KYL1V.js +1 -0
- package/core/built/admin/assets/email-sending-status-provider-DnNhlIvt.js +1 -0
- package/core/built/admin/assets/{emails-vFMk4yYl.js → emails-CgvIIz3q.js} +1 -1
- package/core/built/admin/assets/{embed-signup-form-modal-DGqsORxS.js → embed-signup-form-modal-DqtBs1WE.js} +1 -1
- package/core/built/admin/assets/empty-indicator-L4Ql5Db7.js +1 -0
- package/core/built/admin/assets/en-Cx75dJv5.js +1 -0
- package/core/built/admin/assets/esm--rhhUGIG.js +2 -0
- package/core/built/admin/assets/explore-DXhDCtKw.js +1 -0
- package/core/built/admin/assets/feature-flag-overrides-context-CrcQKm9Z.js +1 -0
- package/core/built/admin/assets/feature-image-placeholder-e2q6TcH6.js +1 -0
- package/core/built/admin/assets/feed-mmt4noNL.js +1 -0
- package/core/built/admin/assets/feedback-BTPBQLT5.js +1 -0
- package/core/built/admin/assets/field-p7KnP98B.js +1 -0
- package/core/built/admin/assets/filter-bar-CiIKBg3D.js +1 -0
- package/core/built/admin/assets/filter-sources-I-dRaQxl.js +1 -0
- package/core/built/admin/assets/filters-1injvyxJ.js +1 -0
- package/core/built/admin/assets/filters-DnpO6GWX.js +1 -0
- package/core/built/admin/assets/first-promoter-modal-wr73Dldc.js +1 -0
- package/core/built/admin/assets/focus-koenig-editor-on-bottom-click-CkFA8EkI.js +1 -0
- package/core/built/admin/assets/framework-provider-DB-svAju.js +4 -0
- package/core/built/admin/assets/{ghost-b4e8a403baba61905cd7560e30b9732d.js → ghost-a1e6e172c6917e8ef8fa6b0007756d9b.js} +39 -30
- package/core/built/admin/assets/gift-link-modal-C3H7YFXO.js +1 -0
- package/core/built/admin/assets/{gift-links-CfLSnst2.js → gift-links-D8gl_yJS.js} +1 -1
- package/core/built/admin/assets/global-data-context-3MItMry2.js +1 -0
- package/core/built/admin/assets/grid-5vplBYri.js +1 -0
- package/core/built/admin/assets/growth-B1og1kQp.js +1 -0
- package/core/built/admin/assets/growth-Bf6OHZlK.js +3 -0
- package/core/built/admin/assets/heading-BB21QAbb.js +1 -0
- package/core/built/admin/assets/history-modal-t_qEnxPx.js +1 -0
- package/core/built/admin/assets/hooks-DYfTEQLk.js +2 -0
- package/core/built/admin/assets/html-field-COLQbV4r.js +1 -0
- package/core/built/admin/assets/iframe-buffering-Bq1el-gw.js +1 -0
- package/core/built/admin/assets/images-4mvoc3lB.js +1 -0
- package/core/built/admin/assets/{inbox-gJHG7_xd.js → inbox-DgSZ6w2p.js} +34 -34
- package/core/built/admin/assets/index-B3HZU2i8.css +2 -0
- package/core/built/admin/assets/index-DDd-zhNL.js +4 -0
- package/core/built/admin/assets/index.es-Ct5XQNSj.js +1 -0
- package/core/built/admin/assets/inline-B8H6NzIw.js +1 -0
- package/core/built/admin/assets/input-group-CLIN2ykI.js +1 -0
- package/core/built/admin/assets/{input-surface-BsrIZeSF.js → input-surface-wSO5CRy5.js} +1 -1
- package/core/built/admin/assets/integration-header-CKGrXNVP.js +1 -0
- package/core/built/admin/assets/{integrations-B4kuRBFY.js → integrations-DnJrZnHv.js} +1 -1
- package/core/built/admin/assets/invite-user-modal-BaN2mdhI.js +1 -0
- package/core/built/admin/assets/jsx-runtime-BlNNh7jY.js +1 -0
- package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +3 -3
- package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +1 -1
- package/core/built/admin/assets/{koenig-lexical-CGXb0F8o.js → koenig-lexical-CXVgQFUk.js} +1 -1
- package/core/built/admin/assets/koenig-loader-B1XPPY5C.js +2 -0
- package/core/built/admin/assets/kpi-card-CRLPVlFW.js +1 -0
- package/core/built/admin/assets/kpi-card-CRPbW8NZ.js +1 -0
- package/core/built/admin/assets/kpi-helpers-D7zT96bp.js +1 -0
- package/core/built/admin/assets/kpi-tabs-DE_yh9Go.js +1 -0
- package/core/built/admin/assets/label-CgeBxy4o.js +1 -0
- package/core/built/admin/assets/label-picker-DGDp4Vwr.js +1 -0
- package/core/built/admin/assets/labels-KMkFoRG6.js +1 -0
- package/core/built/admin/assets/layout-DWnOMly4.js +1 -0
- package/core/built/admin/assets/lib-_QYaUU89.js +2 -0
- package/core/built/admin/assets/link-helpers-8J7ixADV.js +1 -0
- package/core/built/admin/assets/links-FwNCVyVe.js +1 -0
- package/core/built/admin/assets/list-page-DLMP0PxC.js +1 -0
- package/core/built/admin/assets/luxon-BXCsmep3.js +1 -0
- package/core/built/admin/assets/member-activity-ClMWFyvN.js +1 -0
- package/core/built/admin/assets/member-activity-feed-BQY5Rwaj.js +1 -0
- package/core/built/admin/assets/member-custom-fields-Dd_ie1zG.js +1 -0
- package/core/built/admin/assets/member-detail-DjwkGVne.js +1 -0
- package/core/built/admin/assets/members--N9lhk1N.js +4 -0
- package/core/built/admin/assets/modal-page-Dz-9TP4E.js +1 -0
- package/core/built/admin/assets/moderation-DfYBKq9s.js +1 -0
- package/core/built/admin/assets/multi-select-combobox-BcBEzUW_.js +1 -0
- package/core/built/admin/assets/navigation-modal-Cd-scywg.js +1 -0
- package/core/built/admin/assets/newsletter-detail-modal-CFRY6vg_.js +1 -0
- package/core/built/admin/assets/newsletter-emails-4ntck1AC.js +1 -0
- package/core/built/admin/assets/newsletter-o6eCJtab.js +1 -0
- package/core/built/admin/assets/newsletters-Bmlv0edG.js +1 -0
- package/core/built/admin/assets/{newsletters-Rq1M3GD-.js → newsletters-Dz77m__5.js} +1 -1
- package/core/built/admin/assets/note-CWs3LF-0.js +1 -0
- package/core/built/admin/assets/notifications-BjSvTJqh.js +1 -0
- package/core/built/admin/assets/{nql-BLpCn7qX.js → nql-DnDc7UuU.js} +1 -1
- package/core/built/admin/assets/nql-lang-CeTB_Bhv.js +19 -0
- package/core/built/admin/assets/{offers--e2nGvkW.js → offers-ByWSK0rR.js} +1 -1
- package/core/built/admin/assets/offers-container-modal-Bc9A196w.js +1 -0
- package/core/built/admin/assets/onboarding-B4hfBi9a.js +1 -0
- package/core/built/admin/assets/onboarding-DV_XbHts.js +1 -0
- package/core/built/admin/assets/onboarding-route-Di1LJYEE.js +1 -0
- package/core/built/admin/assets/overview-DE7NHZQN.js +1 -0
- package/core/built/admin/assets/overview-DEF-ZY6x.js +1 -0
- package/core/built/admin/assets/page-header-B-G_g42C.js +1 -0
- package/core/built/admin/assets/pagemenu-CnkTDO71.js +1 -0
- package/core/built/admin/assets/{pages-CjDY2CBI.js → pages-DZ_YGB1D.js} +1 -1
- package/core/built/admin/assets/pages-route-VT7r7YhG.js +1 -0
- package/core/built/admin/assets/papaparse.min-BlhnCUXn.js +10 -0
- package/core/built/admin/assets/pintura-modal-BljM7hf8.js +1 -0
- package/core/built/admin/assets/portal-frame-D9V8iq5x.js +1 -0
- package/core/built/admin/assets/portal-modal-B5OOR9ZD.js +1 -0
- package/core/built/admin/assets/post-analytics-context-bt2YTBAC.js +1 -0
- package/core/built/admin/assets/post-analytics-header-J0WciLx6.js +1 -0
- package/core/built/admin/assets/post-analytics-provider-CgreZDjS.js +1 -0
- package/core/built/admin/assets/post-analytics-rGb-PgD-.js +1 -0
- package/core/built/admin/assets/post-share-modal-D0BbTo4W.js +1 -0
- package/core/built/admin/assets/posts-list-screen-CO5jAWoU.js +2 -0
- package/core/built/admin/assets/posts-route-DV-CXWK9.js +1 -0
- package/core/built/admin/assets/{posts-pCPrhQeR.js → posts-tcoO3iRG.js} +1 -1
- package/core/built/admin/assets/preferences-Tac29oG6.js +5 -0
- package/core/built/admin/assets/preview-chrome-C2lQgZBZ.js +1 -0
- package/core/built/admin/assets/preview-modal-CjRbBr8U.js +1 -0
- package/core/built/admin/assets/profile-yiM1f_Og.js +1 -0
- package/core/built/admin/assets/prop-types-6lTeqvom.js +1 -0
- package/core/built/admin/assets/radio-group-CKROWsw4.js +1 -0
- package/core/built/admin/assets/react-BXwhMTuc.js +1 -0
- package/core/built/admin/assets/{jsx-runtime-DX3WBWVO.js → react-dom-CMOtJ5MH.js} +2 -2
- package/core/built/admin/assets/{referrers-D8oHPmDB.js → referrers-1R8bPpoV.js} +1 -1
- package/core/built/admin/assets/router-provider-CU87qxXw.js +1 -0
- package/core/built/admin/assets/select-CKaC4ggu.js +1 -0
- package/core/built/admin/assets/settings-81kxUa28.js +1 -0
- package/core/built/admin/assets/settings-BVXFqBVK.js +4 -0
- package/core/built/admin/assets/settings-breadcrumbs-czGRx-iu.js +1 -0
- package/core/built/admin/assets/{shade-app-CcS3f8MZ-vwURazk8.js → shade-app-CcS3f8MZ-D5BnfHck.js} +1 -1
- package/core/built/admin/assets/share-modal-BL-16PiB.js +1 -0
- package/core/built/admin/assets/skeleton-DwCva0-b.js +1 -0
- package/core/built/admin/assets/slack-modal-D7W_fNON.js +1 -0
- package/core/built/admin/assets/sort-button-Dquc83jY.js +1 -0
- package/core/built/admin/assets/source-icon-CQboPZQ3.js +1 -0
- package/core/built/admin/assets/stack-BURz77VS.js +1 -0
- package/core/built/admin/assets/{stats-D9PDLS3x.js → stats-Cvp8Ep5m.js} +1 -1
- package/core/built/admin/assets/stats-view-NDja_g96.js +1 -0
- package/core/built/admin/assets/step-1-BKhjy0PV.js +1 -0
- package/core/built/admin/assets/step-2-PxA1OM7R.js +1 -0
- package/core/built/admin/assets/step-3-BJbAiq16.js +2 -0
- package/core/built/admin/assets/stripe-button-C3cfCAou.js +1 -0
- package/core/built/admin/assets/stripe-connect-modal-FyE3Ey2c.js +1 -0
- package/core/built/admin/assets/switch-zfUUy9Jh.js +1 -0
- package/core/built/admin/assets/table-dE4GTIRT.js +1 -0
- package/core/built/admin/assets/tabs-B3XK93sR.js +1 -0
- package/core/built/admin/assets/tag-detail-D4P-tZdM.js +2 -0
- package/core/built/admin/assets/tag-picker-BNSZ6Qxw.js +1 -0
- package/core/built/admin/assets/tags-BsZcaJ6h.js +1 -0
- package/core/built/admin/assets/{tags-ChfdwJyS.js → tags-NwZ7BPK6.js} +1 -1
- package/core/built/admin/assets/testimonials-modal-Dkt6ODLW.js +1 -0
- package/core/built/admin/assets/text-DC-ot6u2.js +1 -0
- package/core/built/admin/assets/textarea-B4FffFmE.js +1 -0
- package/core/built/admin/assets/themes-DtcEFQWm.js +1 -0
- package/core/built/admin/assets/tier-detail-modal-a77Z2VMH.js +1 -0
- package/core/built/admin/assets/{tiers-BCpIOGQr.js → tiers-6mPzCXlM.js} +1 -1
- package/core/built/admin/assets/toggle-group-D2p4okmJ.js +1 -0
- package/core/built/admin/assets/topic-filter-DVOe3D-b.js +1 -0
- package/core/built/admin/assets/transistor-modal-C8RMkhOD.js +1 -0
- package/core/built/admin/assets/trend-badge-B9v7kMF8.js +1 -0
- package/core/built/admin/assets/unsplash-modal-DXt7Brum.js +1 -0
- package/core/built/admin/assets/use-analytics-data-ChHqiZXv.js +1 -0
- package/core/built/admin/assets/use-availability-hPdeG76y.js +1 -0
- package/core/built/admin/assets/{use-check-theme-limit-error-DRUjK4YM.js → use-check-theme-limit-error-JD-J5aaZ.js} +2 -2
- package/core/built/admin/assets/use-email-sending-status-DNMtL5B9.js +1 -0
- package/core/built/admin/assets/use-filter-params-BSFigDIn.js +1 -0
- package/core/built/admin/assets/use-filterable-api-CEMSAYPg.js +1 -0
- package/core/built/admin/assets/use-form-DJKZJhQh.js +1 -0
- package/core/built/admin/assets/use-growth-stats-CqqdnESN.js +1 -0
- package/core/built/admin/assets/use-host-limits-mpTkZIq8.js +1 -0
- package/core/built/admin/assets/use-limiter-DBGjYqu7.js +19 -0
- package/core/built/admin/assets/use-navigate-with-base-path-88EQpw2k.js +1 -0
- package/core/built/admin/assets/use-pintura-config-BmU45Ruy.js +1 -0
- package/core/built/admin/assets/use-pintura-editor-Bz2bZ4iT.js +1 -0
- package/core/built/admin/assets/use-post-referrers-DyPjyBSN.js +1 -0
- package/core/built/admin/assets/use-query-params-DlOHCo-R.js +1 -0
- package/core/built/admin/assets/use-reply-chain-data-DmD2yX5D.js +1 -0
- package/core/built/admin/assets/use-router-history-entry-CKx9LhqD.js +1 -0
- package/core/built/admin/assets/use-sending-eta-CQeG6OP_.js +1 -0
- package/core/built/admin/assets/use-setting-group-Dza6bQ7W.js +1 -0
- package/core/built/admin/assets/use-settings-navigation-BIjI5mL3.js +1 -0
- package/core/built/admin/assets/use-simple-pagination-DwVxe-Lo.js +1 -0
- package/core/built/admin/assets/use-staff-users-i_Mq9OGR.js +1 -0
- package/core/built/admin/assets/{use-tinybird-query-CmdbCS9X.js → use-tinybird-query-DXoF74NM.js} +1 -1
- package/core/built/admin/assets/use-tinybird-token-Lk1RSn0t.js +1 -0
- package/core/built/admin/assets/use-unsaved-changes-guard-CKVPWz_F.js +1 -0
- package/core/built/admin/assets/use-upgrade-route-CVjDlNSs.js +1 -0
- package/core/built/admin/assets/{use-url-input-fvp-TpPx.js → use-url-input-DpmbDppC.js} +1 -1
- package/core/built/admin/assets/user-detail-modal-BU4QCHE7.js +1 -0
- package/core/built/admin/assets/{users-DVNWrqg9.js → users-C60_hpn6.js} +1 -1
- package/core/built/admin/assets/{validator-Cr0sMKuW.js → validator-DlFQP70j.js} +1 -1
- package/core/built/admin/assets/virtual-list-DScLNuU8.js +1 -0
- package/core/built/admin/assets/web-BZS-t4H0.js +1 -0
- package/core/built/admin/assets/web-DxAUxnK3.js +2 -0
- package/core/built/admin/assets/zapier-modal-BafLUO4R.js +1 -0
- package/core/built/admin/index.html +35 -32
- package/core/cli/command.js +17 -2
- package/core/frontend/meta/asset-url.js +1 -16
- package/core/frontend/services/asset-hash/index.js +32 -2
- package/core/frontend/services/routing/controllers/unsubscribe.js +2 -1
- package/core/frontend/services/rss/generate-feed.js +1 -1
- package/core/frontend/services/theme-engine/active.js +2 -4
- package/core/frontend/services/theme-engine/i18n/i18n.js +11 -1
- package/core/frontend/services/theme-engine/i18next/theme-i18n.js +1 -1
- package/core/frontend/web/middleware/llms-discovery.js +34 -43
- package/core/server/adapters/route-settings/S3RouteSettingsStore.js +1 -1
- package/core/server/adapters/storage/LocalFilesStorage.js +12 -2
- package/core/server/adapters/storage/LocalStorageBase.js +13 -0
- package/core/server/api/endpoints/actions.js +2 -1
- package/core/server/api/endpoints/automated-emails.js +3 -2
- package/core/server/api/endpoints/automations.js +77 -49
- package/core/server/api/endpoints/emails.js +8 -3
- package/core/server/api/endpoints/index.js +1 -1
- package/core/server/api/endpoints/invites.js +2 -1
- package/core/server/api/endpoints/labels.js +6 -2
- package/core/server/api/endpoints/member-metafields.js +2 -2
- package/core/server/api/endpoints/members.js +22 -6
- package/core/server/api/endpoints/pages.js +2 -6
- package/core/server/api/endpoints/posts.js +3 -11
- package/core/server/api/endpoints/snippets.js +2 -1
- package/core/server/api/endpoints/tags.js +6 -2
- package/core/server/api/endpoints/users.js +2 -6
- package/core/server/api/endpoints/utils/api-filter-utils.js +62 -3
- package/core/server/api/endpoints/utils/serializers/output/utils/clean.js +2 -0
- package/core/server/api/endpoints/utils/serializers/output/utils/extra-attrs.js +3 -0
- package/core/server/api/endpoints/utils/validators/input/settings.js +15 -1
- package/core/server/data/exporter/exporter.js +2 -1
- package/core/server/data/exporter/table-lists.js +3 -5
- package/core/server/data/importer/importers/data/settings-importer.js +8 -2
- package/core/server/data/migrations/versions/6.64/2026-09-03-15-40-25-add-member-access-to-members-metafields.js +12 -0
- package/core/server/data/migrations/versions/6.64/2026-09-08-11-01-12-add-posts-auto-excerpt-and-reading-time-columns.js +17 -0
- package/core/server/data/migrations/versions/6.64/2026-09-09-13-56-18-add-automation-run-updated-at-indexes.js +6 -0
- package/core/server/data/migrations/versions/6.64/2026-09-09-13-56-18-add-tinybird-syncs-table.js +10 -0
- package/core/server/data/schema/schema.js +28 -2
- package/core/server/data/seeders/importers/automations-importer.js +0 -1
- package/core/server/data/seeders/importers/comments-importer.js +1 -1
- package/core/server/data/seeders/importers/email-recipients-importer.js +1 -1
- package/core/server/data/seeders/importers/emails-importer.js +1 -1
- package/core/server/data/seeders/importers/members-importer.js +1 -1
- package/core/server/data/seeders/importers/members-login-events-importer.js +1 -1
- package/core/server/data/seeders/importers/members-stripe-customers-subscriptions-importer.js +1 -1
- package/core/server/data/seeders/utils/blog-info.js +4 -3
- package/core/server/data/seeders/utils/event-generator.js +72 -46
- package/core/server/data/tinybird/datasources/_mv_automation_run_steps.datasource +10 -0
- package/core/server/data/tinybird/datasources/_mv_automation_runs.datasource +10 -0
- package/core/server/data/tinybird/datasources/_mv_pending_automation_runs.datasource +10 -0
- package/core/server/data/tinybird/datasources/automation_run_events.datasource +12 -0
- package/core/server/data/tinybird/datasources/automation_run_step_events.datasource +12 -0
- package/core/server/data/tinybird/endpoints/api_automation_browse_stats.pipe +43 -0
- package/core/server/data/tinybird/fixtures/automation_run_events.ndjson +7 -0
- package/core/server/data/tinybird/fixtures/automation_run_step_events.ndjson +8 -0
- package/core/server/data/tinybird/pipes/mv_automation_run_steps.pipe +13 -0
- package/core/server/data/tinybird/pipes/mv_automation_runs.pipe +15 -0
- package/core/server/data/tinybird/pipes/mv_pending_automation_runs.pipe +7 -0
- package/core/server/data/tinybird/tests/api_automation_browse_stats.yaml +18 -0
- package/core/server/ghost-server.js +3 -3
- package/core/server/lib/generate-password.js +54 -0
- package/core/server/lib/public-jwk.js +77 -0
- package/core/server/models/user.js +11 -9
- package/core/server/services/adapter-manager/base-classes.js +21 -3
- package/core/server/services/automations/automations-api.js +46 -1
- package/core/server/services/automations/tinybird-automation-stats.js +56 -0
- package/core/server/services/content-import/import/media.js +1 -1
- package/core/server/services/email-analytics/email-analytics-service-wrapper.js +15 -29
- package/core/server/services/email-analytics/email-analytics-service.js +19 -3
- package/core/server/services/email-analytics/index.js +9 -4
- package/core/server/services/email-rendering/finalize.js +7 -2
- package/core/server/services/email-service/README.md +3 -0
- package/core/server/services/email-service/email-renderer.js +7 -2
- package/core/server/services/email-service/email-service-wrapper.js +1 -1
- package/core/server/services/email-service/email-service.js +43 -34
- package/core/server/services/email-service/sending-status.js +10 -4
- package/core/server/services/gifts/gift-email-service.js +10 -3
- package/core/server/services/gifts/index.js +1 -0
- package/core/server/services/i18n.js +1 -1
- package/core/server/services/identity-tokens/identity-token-service-wrapper.js +3 -4
- package/core/server/services/limits.js +17 -1
- package/core/server/services/member-welcome-emails/service.js +1 -1
- package/core/server/services/members/import-export/index.js +5 -4
- package/core/server/services/members/members-api/controllers/router-controller.js +7 -2
- package/core/server/services/members/members-api/controllers/well-known-controller.js +2 -1
- package/core/server/services/members/members-api/repositories/event-repository.js +4 -0
- package/core/server/services/members/members-api/services/member-bread-service.js +15 -12
- package/core/server/services/members/members-api/services/token-service.js +11 -12
- package/core/server/services/members/middleware.js +9 -2
- package/core/server/services/members/request-integrity-token-provider.js +2 -1
- package/core/server/services/members-metafields/access.js +31 -20
- package/core/server/services/members-metafields/actions.js +1 -0
- package/core/server/services/members-metafields/codec.js +9 -2
- package/core/server/services/members-metafields/definitions-service.js +56 -46
- package/core/server/services/members-metafields/index.js +2 -2
- package/core/server/services/members-metafields/models.js +2 -0
- package/core/server/services/members-metafields/queries.js +39 -11
- package/core/server/services/members-metafields/schema.js +2 -0
- package/core/server/services/members-metafields/serializers.js +1 -0
- package/core/server/services/members-metafields/values-service.js +20 -11
- package/core/server/services/mentions/mention-discovery-service.js +1 -1
- package/core/server/services/mentions/mention-sending-service.js +1 -1
- package/core/server/services/mentions/mention.js +1 -1
- package/core/server/services/oembed/oembed-service.js +36 -11
- package/core/server/services/posts/post-scheduling.js +20 -0
- package/core/server/services/staff/staff-service-emails.js +5 -1
- package/core/server/services/stats/stats-service.js +12 -3
- package/core/server/services/tier-checkout-config/service.js +17 -1
- package/core/server/services/tinybird/tinybird-service.js +1 -0
- package/core/server/services/tinybird-sync/get-ingest-config.js +39 -0
- package/core/server/services/tinybird-sync/index.js +28 -0
- package/core/server/services/tinybird-sync/sync-table-to-tinybird.js +149 -0
- package/core/server/services/tinybird-sync/tinybird-sync-service.js +62 -0
- package/core/server/web/api/endpoints/admin/routes.js +33 -34
- package/core/server/web/well-known.js +12 -16
- package/core/shared/config/defaults.json +1 -2
- package/core/shared/{flush-logs.js → flush.js} +7 -3
- package/core/shared/labs.js +2 -0
- package/core/shared/timing-safe-string-equal.js +26 -0
- package/package.json +42 -42
- package/patches/@elastic__elasticsearch@8.19.2.patch +67 -0
- package/patches/juice@11.1.1.patch +46 -0
- package/pnpm-lock.yaml +457 -1391
- package/pnpm-workspace.yaml +34 -21
- package/scripts/prune.mts +70 -3
- package/components/tryghost-kg-lexical-html-renderer-1.5.0.tgz +0 -0
- package/core/built/admin/assets/Combination-B0l4MKVh.js +0 -41
- package/core/built/admin/assets/RadialBarChart-JAKoS4KT.js +0 -1
- package/core/built/admin/assets/_baseAssignValue-C_vooEQc.js +0 -1
- package/core/built/admin/assets/about-C1C3s5-g.js +0 -1
- package/core/built/admin/assets/accordion-CxGsDKwa.js +0 -1
- package/core/built/admin/assets/account-migration-CbUhW6gk.js +0 -1
- package/core/built/admin/assets/action-list-C4v0-du8.js +0 -1
- package/core/built/admin/assets/add-integration-modal-BT_onDJy.js +0 -1
- package/core/built/admin/assets/add-newsletter-modal-Cx1kQpiY.js +0 -1
- package/core/built/admin/assets/add-recommendation-modal-B5nvAhvr.js +0 -1
- package/core/built/admin/assets/analytics-DjoJWPI7.js +0 -1
- package/core/built/admin/assets/announcement-bar-modal-Dwd0EGFP.js +0 -1
- package/core/built/admin/assets/api-keys-BoeacM-s.js +0 -1
- package/core/built/admin/assets/automated-emails-BLesE41L.js +0 -1
- package/core/built/admin/assets/automations-BN4u3GR8.js +0 -1
- package/core/built/admin/assets/automations-C-ZTUwW3.js +0 -1
- package/core/built/admin/assets/avatar-flipboard-C6Kj3Awu.js +0 -1
- package/core/built/admin/assets/bluesky-sharing-vzh-oPXL.js +0 -1
- package/core/built/admin/assets/box-CdfQAP_F.js +0 -1
- package/core/built/admin/assets/brand-icon-CrIGOA3Z.js +0 -1
- package/core/built/admin/assets/breadcrumb-CaLk2b7D.js +0 -1
- package/core/built/admin/assets/build-CsiH26uS.js +0 -1
- package/core/built/admin/assets/button-Dvcv1QSR.js +0 -1
- package/core/built/admin/assets/calendar-Bl9RLcZX.js +0 -1
- package/core/built/admin/assets/card--VNbfgo3.js +0 -1
- package/core/built/admin/assets/chart-helpers-FHywU0pj.js +0 -1
- package/core/built/admin/assets/checkbox-BtayFtjg.js +0 -1
- package/core/built/admin/assets/chunk.524.e6975095fccdf22d90f8.js +0 -32
- package/core/built/admin/assets/code-editor-view-C3ZfoF1X.js +0 -1
- package/core/built/admin/assets/code-editor-view-CAyRWy1s.js +0 -1
- package/core/built/admin/assets/color-picker-G4kGR7rp.js +0 -3
- package/core/built/admin/assets/color-picker-field-DQFVTNnT.js +0 -1
- package/core/built/admin/assets/combobox-BnYzgEB4.js +0 -1
- package/core/built/admin/assets/command-C_vyTikI.js +0 -1
- package/core/built/admin/assets/comments-aBrxfnZf.js +0 -1
- package/core/built/admin/assets/components-CwL6a6As-B0E0-NBJ.js +0 -1
- package/core/built/admin/assets/confirmation-context-DwXX_Y5h.js +0 -1
- package/core/built/admin/assets/container-BuQG1wuP.js +0 -1
- package/core/built/admin/assets/content-api-modal-D2G0nJP6.js +0 -1
- package/core/built/admin/assets/context-menu-DOVB6yaz.js +0 -1
- package/core/built/admin/assets/copy-field-DCJwh9qf.js +0 -1
- package/core/built/admin/assets/create-ghost-browse-value-source-5C53jJaX.js +0 -1
- package/core/built/admin/assets/custom-field-type-option-BAuW0F-E.js +0 -1
- package/core/built/admin/assets/custom-integration-modal-AbJGVyKc.js +0 -1
- package/core/built/admin/assets/data-list-CA2jYGPq.js +0 -1
- package/core/built/admin/assets/date-range-select-BY3K-ukj.js +0 -1
- package/core/built/admin/assets/design-and-theme-modal-BvEy4_pC.js +0 -2
- package/core/built/admin/assets/detail-page-Dnv-CdR1.js +0 -1
- package/core/built/admin/assets/dirty-confirm-dialog-DVPuGz3U.js +0 -1
- package/core/built/admin/assets/disabled-sources-indicator-Cy7Zp4c8.js +0 -1
- package/core/built/admin/assets/dist-4m6pHdc0.js +0 -23
- package/core/built/admin/assets/dist-8YJUlf3B.js +0 -1
- package/core/built/admin/assets/dist-CZgIBXQN.js +0 -1
- package/core/built/admin/assets/dist-CiHx7vA5.js +0 -6
- package/core/built/admin/assets/dist-DIC8yz5C.js +0 -1
- package/core/built/admin/assets/dist-Dcsslyo72.js +0 -1
- package/core/built/admin/assets/dist-Dgt2cr6a.js +0 -1
- package/core/built/admin/assets/dist-ECAUrdGc.js +0 -1
- package/core/built/admin/assets/dist-JLOy8o0Q.js +0 -1
- package/core/built/admin/assets/dist-Ndy-PuGN.js +0 -1
- package/core/built/admin/assets/dist-Z97pCNqS.js +0 -11
- package/core/built/admin/assets/domain-Dl61QGuk.js +0 -1
- package/core/built/admin/assets/dropzone-Dtz5Rmjt.js +0 -5
- package/core/built/admin/assets/edit-profile-DNJSMDwm.js +0 -1
- package/core/built/admin/assets/editor-DbAen9zf.js +0 -8
- package/core/built/admin/assets/editor-screen-BFWThIai.js +0 -26
- package/core/built/admin/assets/email-sending-status-context-CWDOD1FN.js +0 -1
- package/core/built/admin/assets/email-sending-status-provider-DCPkDICt.js +0 -1
- package/core/built/admin/assets/empty-indicator-D9QdpuNX.js +0 -1
- package/core/built/admin/assets/en-B1jX3WMs.js +0 -1
- package/core/built/admin/assets/esm-CXo5SEPy.js +0 -2
- package/core/built/admin/assets/explore-nnRr1Fja.js +0 -1
- package/core/built/admin/assets/feature-flag-overrides-context-DQjdJFAk.js +0 -1
- package/core/built/admin/assets/feature-image-placeholder-BrIHmPs8.js +0 -1
- package/core/built/admin/assets/feed-BNUcNu-W.js +0 -1
- package/core/built/admin/assets/feedback-DJ4Zb9rZ.js +0 -1
- package/core/built/admin/assets/field-C93_Mg6j.js +0 -1
- package/core/built/admin/assets/filter-bar-Da1qxybu.js +0 -1
- package/core/built/admin/assets/filter-sources-CGJb4C5r.js +0 -1
- package/core/built/admin/assets/filters--kKP-EC8.js +0 -1
- package/core/built/admin/assets/filters-DxA_a4FP.js +0 -1
- package/core/built/admin/assets/first-promoter-modal-BYDtrz2S.js +0 -1
- package/core/built/admin/assets/focus-koenig-editor-on-bottom-click-BbSnGOtK.js +0 -1
- package/core/built/admin/assets/framework-provider-DqI25epG.js +0 -4
- package/core/built/admin/assets/gift-link-modal-B7u5bD4e.js +0 -1
- package/core/built/admin/assets/global-data-context-gAMDH9u1.js +0 -1
- package/core/built/admin/assets/grid-Dj29PY05.js +0 -1
- package/core/built/admin/assets/growth-Cd1uO9d2.js +0 -1
- package/core/built/admin/assets/growth-aG32xfdE.js +0 -3
- package/core/built/admin/assets/heading-Dh5SFVjL.js +0 -1
- package/core/built/admin/assets/history-modal-Df8lW8h-.js +0 -1
- package/core/built/admin/assets/hooks-Cy_-oZ4o.js +0 -2
- package/core/built/admin/assets/html-field-DA4eU7eq.js +0 -1
- package/core/built/admin/assets/iframe-buffering-B2OKJzbz.js +0 -1
- package/core/built/admin/assets/images-KXmyO3Ss.js +0 -1
- package/core/built/admin/assets/index-BHHXtR5C.css +0 -2
- package/core/built/admin/assets/index-CgMCwsxN.js +0 -4
- package/core/built/admin/assets/index.es-CY6-yuw9.js +0 -1
- package/core/built/admin/assets/inline-BWSs_VzR.js +0 -1
- package/core/built/admin/assets/input-group-BE8rM2y1.js +0 -1
- package/core/built/admin/assets/integration-header-Bm6IDb1A.js +0 -1
- package/core/built/admin/assets/invite-user-modal-B4CuNcx4.js +0 -1
- package/core/built/admin/assets/koenig-loader-BeM5rFPX.js +0 -2
- package/core/built/admin/assets/kpi-card-B21aToe8.js +0 -1
- package/core/built/admin/assets/kpi-card-pz6Wv4Ae.js +0 -1
- package/core/built/admin/assets/kpi-helpers-Dq5jelmP.js +0 -1
- package/core/built/admin/assets/kpi-tabs-DEZHpKUt.js +0 -1
- package/core/built/admin/assets/label-OLCzze8N.js +0 -1
- package/core/built/admin/assets/label-picker-BigOvMPV.js +0 -1
- package/core/built/admin/assets/labels-Dr0SgUQD.js +0 -1
- package/core/built/admin/assets/layout-DUTL8SH5.js +0 -1
- package/core/built/admin/assets/lib-7QPTI0FS.js +0 -1
- package/core/built/admin/assets/limit-service-BhiEvqcP.js +0 -20
- package/core/built/admin/assets/link-helpers-BRAg9SCj.js +0 -1
- package/core/built/admin/assets/links-BDHPTlyj.js +0 -1
- package/core/built/admin/assets/list-page-BucXJ0hi.js +0 -1
- package/core/built/admin/assets/luxon-D1RVjjpq.js +0 -1
- package/core/built/admin/assets/member-custom-fields-TRTHCAz9.js +0 -1
- package/core/built/admin/assets/member-detail-b6dRwc3C.js +0 -1
- package/core/built/admin/assets/members-Czt5lJSc.js +0 -4
- package/core/built/admin/assets/modal-page-xCivTMvI.js +0 -1
- package/core/built/admin/assets/moderation-ZWefD9uH.js +0 -1
- package/core/built/admin/assets/multi-select-combobox-CT13MTo-.js +0 -1
- package/core/built/admin/assets/navigation-modal-C8FEhBK5.js +0 -1
- package/core/built/admin/assets/newsletter-5VYW4RyJ.js +0 -1
- package/core/built/admin/assets/newsletter-detail-modal-ChjC0ZqH.js +0 -1
- package/core/built/admin/assets/newsletter-emails-DZH6I-PY.js +0 -1
- package/core/built/admin/assets/newsletters-DOC9KBcX.js +0 -1
- package/core/built/admin/assets/note-DIV-Pojr.js +0 -1
- package/core/built/admin/assets/notifications-s20-H49V.js +0 -1
- package/core/built/admin/assets/nql-lang-CaWrLesS.js +0 -19
- package/core/built/admin/assets/offers-container-modal-BmG5M5Tv.js +0 -1
- package/core/built/admin/assets/onboarding-CUuy9unR.js +0 -1
- package/core/built/admin/assets/onboarding-pXyct0Jm.js +0 -1
- package/core/built/admin/assets/onboarding-route-CK4pcXoR.js +0 -1
- package/core/built/admin/assets/overview-CaPsciMs.js +0 -1
- package/core/built/admin/assets/overview-a8GfcsKX.js +0 -1
- package/core/built/admin/assets/page-header-DM_KyoFI.js +0 -1
- package/core/built/admin/assets/pagemenu-vgZVUVKR.js +0 -1
- package/core/built/admin/assets/pages-route-BzKZYdV5.js +0 -1
- package/core/built/admin/assets/papaparse.min-cQwnxGCG.js +0 -10
- package/core/built/admin/assets/pintura-modal-DExCF1ii.js +0 -1
- package/core/built/admin/assets/portal-frame-Cqanidq4.js +0 -1
- package/core/built/admin/assets/portal-modal-oinBgA27.js +0 -1
- package/core/built/admin/assets/post-analytics-C5oJ1dWV.js +0 -1
- package/core/built/admin/assets/post-analytics-context-D0Mw-Pmv.js +0 -1
- package/core/built/admin/assets/post-analytics-header-OATo3X_r.js +0 -1
- package/core/built/admin/assets/post-analytics-provider-tOpIVGT5.js +0 -1
- package/core/built/admin/assets/post-share-modal-DvhC1XgV.js +0 -1
- package/core/built/admin/assets/posts-list-screen-o4ZjbgS3.js +0 -2
- package/core/built/admin/assets/posts-route-9F--xdIb.js +0 -1
- package/core/built/admin/assets/preferences--vNubsqD.js +0 -5
- package/core/built/admin/assets/preview-chrome-BljUBlOk.js +0 -1
- package/core/built/admin/assets/preview-modal-YYbzlYdO.js +0 -1
- package/core/built/admin/assets/profile-BllKV3dR.js +0 -1
- package/core/built/admin/assets/prop-types-DeUPn3oD.js +0 -1
- package/core/built/admin/assets/radio-group-DL8GI8rt.js +0 -1
- package/core/built/admin/assets/react-Bb3IsNbi.js +0 -1
- package/core/built/admin/assets/rolldown-runtime-DAXXjFlN.js +0 -1
- package/core/built/admin/assets/router-provider-BSvTXgZY.js +0 -1
- package/core/built/admin/assets/select-v5YbA3Mw.js +0 -1
- package/core/built/admin/assets/settings-PEsZupw1.js +0 -4
- package/core/built/admin/assets/settings-breadcrumbs-NwPnCTC7.js +0 -1
- package/core/built/admin/assets/settings-u_s1CRkr.js +0 -1
- package/core/built/admin/assets/share-modal-SskCmVGL.js +0 -1
- package/core/built/admin/assets/skeleton-Ce9GgUpf.js +0 -1
- package/core/built/admin/assets/slack-modal-XxSJiYgo.js +0 -1
- package/core/built/admin/assets/sort-button-Cx1KtINE.js +0 -1
- package/core/built/admin/assets/source-icon-Bdp9Im_5.js +0 -1
- package/core/built/admin/assets/stack-B2eszIiq.js +0 -1
- package/core/built/admin/assets/stats-view-W2g6Jsd-.js +0 -1
- package/core/built/admin/assets/step-1-BQYzvBzr.js +0 -1
- package/core/built/admin/assets/step-2-xES32xJV.js +0 -1
- package/core/built/admin/assets/step-3-DA_XK5kW.js +0 -2
- package/core/built/admin/assets/stripe-button-CVsLHelt.js +0 -1
- package/core/built/admin/assets/stripe-connect-modal-ClmLOMGS.js +0 -1
- package/core/built/admin/assets/switch-CI4gLWqb.js +0 -1
- package/core/built/admin/assets/table-BenqVupI.js +0 -1
- package/core/built/admin/assets/tabs-eBBlxPp8.js +0 -1
- package/core/built/admin/assets/tag-detail-Ce8Se2qd.js +0 -2
- package/core/built/admin/assets/tag-picker-C3UR-uJ-.js +0 -1
- package/core/built/admin/assets/tags-B-kJxCs7.js +0 -1
- package/core/built/admin/assets/testimonials-modal-9Q6fT06V.js +0 -1
- package/core/built/admin/assets/text-BQDSDsKs.js +0 -1
- package/core/built/admin/assets/textarea-DJ1Q5V39.js +0 -1
- package/core/built/admin/assets/tier-detail-modal-CDyYdqK7.js +0 -1
- package/core/built/admin/assets/toggle-group-CviIkyok.js +0 -1
- package/core/built/admin/assets/topic-filter-I2jCBGxm.js +0 -1
- package/core/built/admin/assets/transistor-modal-p53u3W8y.js +0 -1
- package/core/built/admin/assets/trend-badge-CideVzQd.js +0 -1
- package/core/built/admin/assets/unsplash-modal-DY8UcKcE.js +0 -1
- package/core/built/admin/assets/use-analytics-data-DAIGcr2f.js +0 -1
- package/core/built/admin/assets/use-filter-params-JkZhIS8L.js +0 -1
- package/core/built/admin/assets/use-filterable-api-BVEVMrhZ.js +0 -1
- package/core/built/admin/assets/use-form-vRjI0Kwk.js +0 -1
- package/core/built/admin/assets/use-growth-stats-937CUj6j.js +0 -1
- package/core/built/admin/assets/use-host-limits-D0Dv3tKA.js +0 -1
- package/core/built/admin/assets/use-limiter-CohWfzvK.js +0 -2
- package/core/built/admin/assets/use-navigate-with-base-path-BkxcPj5l.js +0 -1
- package/core/built/admin/assets/use-pintura-config-xgytjU35.js +0 -1
- package/core/built/admin/assets/use-pintura-editor-CaV1mbfO.js +0 -1
- package/core/built/admin/assets/use-post-referrers-BCQI7fDg.js +0 -1
- package/core/built/admin/assets/use-query-params-BfzuqbcD.js +0 -1
- package/core/built/admin/assets/use-reply-chain-data-CYRhoaxY.js +0 -1
- package/core/built/admin/assets/use-router-history-entry-NOKcd--l.js +0 -1
- package/core/built/admin/assets/use-setting-group-bLKMwoBT.js +0 -1
- package/core/built/admin/assets/use-settings-navigation-B-qrriKD.js +0 -1
- package/core/built/admin/assets/use-simple-pagination-CNPd6Rf6.js +0 -1
- package/core/built/admin/assets/use-staff-users-pRIMIyiW.js +0 -1
- package/core/built/admin/assets/use-tinybird-token-KLne235s.js +0 -1
- package/core/built/admin/assets/use-unsaved-changes-guard-7-ug0JdH.js +0 -1
- package/core/built/admin/assets/use-upgrade-route-Dm_qqKr0.js +0 -1
- package/core/built/admin/assets/user-detail-modal-D3KlGYv-.js +0 -1
- package/core/built/admin/assets/virtual-list-CZ3RK2Yf.js +0 -1
- package/core/built/admin/assets/web-ClEJsCAj.js +0 -2
- package/core/built/admin/assets/web-X9rdnrtq.js +0 -1
- package/core/built/admin/assets/zapier-modal-DfVhV17j.js +0 -1
- /package/core/built/admin/assets/{chunk.901.4ccc639821020230bcca.js.LICENSE.txt → chunk.972.4b8c97f93d66db15e751.js.LICENSE.txt} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";var n=e(t(),1),r=({initialState:e,savingDelay:t,savedDelay:r=2e3,onSave:i,onSaveError:a,onSavedStateReset:o,onValidate:s})=>{let[c,l]=(0,n.useState)(e),[u,d]=(0,n.useState)(``),[f,p]=(0,n.useState)({});(0,n.useEffect)(()=>{u===`saved`&&setTimeout(()=>{o?.(),d(e=>e===`saved`?``:e)},r)},[u,r]);let m=e=>Object.values(e).filter(Boolean).length===0,h=(0,n.useCallback)(()=>{if(!s)return!0;let e=s(c);return p(e),m(e)},[c,s]),g=(0,n.useCallback)(async(e={})=>{if(!h())return d(`error`),!1;if(u!==`unsaved`&&!e.force&&!e.fakeWhenUnchanged)return!0;let n=Date.now();d(`saving`);try{(u===`unsaved`||e.force)&&await i(c);let r=Date.now()-n;return t&&r<t&&await new Promise(e=>{setTimeout(e,t-r)}),d(`saved`),!0}catch(e){throw await a?.(e),d(`unsaved`),e}},[c,u,t,i,a,h]),_=(0,n.useCallback)(e=>{l(e),d(`unsaved`)},[]),v=`default`;u===`saved`?v=`default`:u===`error`&&(v=`destructive`);let y=``;u===`saved`?y=`Saved`:u===`saving`?y=`Saving...`:u===`error`&&(y=`Retry`);let b={disabled:u===`saving`,variant:v,label:y||void 0};return{formState:c,saveState:u,handleSave:g,updateForm:_,setFormState:l,reset(){l(e),d(``)},validate:h,isValid:m(f),clearError:e=>{p(t=>({...t,[e]:``}))},errors:f,setErrors:p,okProps:b}};export{r as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{i as n}from"./currency-Dy4Tc2R2.js";import{C as r,S as i,h as a,m as o}from"./dist-B3keLvjj.js";import{i as s,p as c,r as l}from"./stats-D9PDLS3x.js";import{a as u,n as d}from"./chart-helpers-FHywU0pj.js";r();var f=e(t(),1),p=(e,t,n,r)=>{if(!e.length)return{totalMembers:0,freeMembers:0,paidMembers:0,mrr:0,percentChanges:{total:`0%`,free:`0%`,paid:`0%`,mrr:`0%`},directions:{total:`same`,free:`same`,paid:`same`,mrr:`same`}};let o=r||e[e.length-1],s=e.length>0?e[e.length-1]:{free:0,paid:0,comped:0,gift:0},c=t.length>0?t[t.length-1]:{mrr:0},l=o.free+o.paid+o.comped+(o.gift??0),u=c.mrr,d={total:`0%`,free:`0%`,paid:`0%`,mrr:`0%`},f={total:`same`,free:`same`,paid:`same`,mrr:`same`};if(e.length>1){let t=e[0],n=t.free+t.paid+t.comped+(t.gift??0);if(n>0){let e=(l-n)/n*100;d.total=a(e/100),f.total=e>0?`up`:e<0?`down`:`same`}if(t.free>0){let e=(s.free-t.free)/t.free*100;d.free=a(e/100),f.free=e>0?`up`:e<0?`down`:`same`}let r=t.paid+t.comped+(t.gift??0),i=s.paid+s.comped+(s.gift??0);if(r>0){let e=(i-r)/r*100;d.paid=a(e/100),f.paid=e>0?`up`:e<0?`down`:`same`}}if(t.length>1){let e=i(n).format(`YYYY-MM-DD`),r=t.find(t=>i(t.date).isSameOrAfter(e)),o=i(n).isSame(i().startOf(`year`),`day`)||i(n).year()<i().year(),s=0;if(s=r&&i(r.date).isSame(e,`day`)?r.mrr:o?0:u,s>=0){let e=s===0?u>0?100:0:(u-s)/s*100;d.mrr=a(e/100),f.mrr=e>0?`up`:e<0?`down`:`same`}}return{totalMembers:l,freeMembers:o.free,paidMembers:o.paid+o.comped+(o.gift??0),mrr:u,percentChanges:d,directions:f}},m=(e,t)=>{let n=[...e].sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),r=[...t].sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),i=n.map(e=>e.date),a=r.map(e=>e.date),s=[...new Set([...i,...a])].sort((e,t)=>new Date(e).getTime()-new Date(t).getTime()),c=null,l=null,u=new Map(n.map(e=>[e.date,e])),d=new Map(r.map(e=>[e.date,e]));return s.map(e=>{let t=u.get(e);t&&(c=t);let n=d.get(e);n&&(l=n);let r=c?.free??0,i=c?.paid??0,a=c?.comped??0,s=c?.gift??0,f=i+a+s,p=r+f;return{date:e,value:p,free:r,paid:f,comped:a,gift:s,mrr:l?.mrr??0,paid_subscribed:c?.paid_subscribed??0,paid_canceled:c?.paid_canceled??0,formattedValue:o(p),label:`Total members`}})},h=e=>{let{startDate:t,endDate:r}=(0,f.useMemo)(()=>u(e),[e]),a=d(t),o=e===1?i(a).subtract(1,`day`).format(`YYYY-MM-DD`):a,{data:h,isLoading:g}=l({searchParams:{date_from:o}}),{data:_,isLoading:v}=s({searchParams:{date_from:o}}),{data:y,isLoading:b}=c(),x=(0,f.useMemo)(()=>{let t=[];if(h?.stats?t=h.stats:Array.isArray(h)&&(t=h),e===1&&t.length>=2){let e=t[t.length-2],n=t[t.length-1],r=i(a).format(`YYYY-MM-DD`),o=i(a).add(1,`day`).format(`YYYY-MM-DD`);return[{...e,date:r},{...n,date:o}]}return t},[h,e,a]),{mrrData:S,selectedCurrency:C}=(0,f.useMemo)(()=>{let t=i(a),n=e===1?i().endOf(`day`):i().startOf(`day`);if(_?.stats&&_?.meta?.totals){let r=_.meta.totals,a=r[0];if(!a)return{mrrData:[],selectedCurrency:`usd`};for(let e of r)e.mrr>a.mrr&&(a=e);let o=a.currency,s=_.stats.filter(e=>e.currency===o),c=s.filter(e=>i(e.date).isSameOrAfter(t)),l=[...s].sort((e,t)=>new Date(t.date).getTime()-new Date(e.date).getTime()),u=[...c];if(!u.some(e=>i(e.date).isSame(t,`day`))){let e=l.find(e=>i(e.date).isBefore(t));if(e)u.unshift({...e,date:t.format(`YYYY-MM-DD`)});else if(u.length>0){let e=[...u].sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime())[0];u.unshift({...e,date:t.format(`YYYY-MM-DD`)})}}let d=e===1?i().startOf(`day`):n;if(!u.some(e=>i(e.date).isSame(d,`day`))&&u.length>0){let e=[...u].sort((e,t)=>new Date(t.date).getTime()-new Date(e.date).getTime())[0];u.push({...e,date:d.format(`YYYY-MM-DD`)})}return{mrrData:u.sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),selectedCurrency:o}}return{mrrData:[],selectedCurrency:`usd`}},[_,a,e]),w=(0,f.useMemo)(()=>p(x,S,a,h?.meta?.totals),[x,S,a,h?.meta?.totals]),T=(0,f.useMemo)(()=>m(x,S),[x,S]),E=(0,f.useMemo)(()=>n(C),[C]);return{isLoading:(0,f.useMemo)(()=>g||v||b,[g,v,b]),memberData:x,mrrData:S,dateFrom:a,endDate:r,totals:w,chartData:T,subscriptionData:(0,f.useMemo)(()=>{if(!y?.stats)return[];let e=y.stats.reduce((e,t)=>{let n=t.date;return e[n]||(e[n]={date:n,signups:0,cancellations:0}),e[n].signups+=t.signups,e[n].cancellations+=t.cancellations,e},{}),t=Object.values(e).sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),n=i(a),o=i(r);return t.filter(e=>{let t=i(e.date);return t.isSameOrAfter(n)&&t.isSameOrBefore(o)})},[y,a,r]),selectedCurrency:C,currencySymbol:E}};export{h as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e}from"./config-kSHvwdTG.js";var t=()=>{let{data:t}=e({refetchOnMount:!1});return t?.config.hostSettings?.limits};export{t};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./limit-service-BhiEvqcP.js","./rolldown-runtime-DAXXjFlN.js","./_baseAssignValue-C_vooEQc.js","./luxon-D1RVjjpq.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{g as n,n as r,r as i,t as a}from"./hooks-Cy_-oZ4o.js";import{n as o,t as s}from"./update-queries-C4CnvJaW.js";import{s as c}from"./config-kSHvwdTG.js";import{t as l}from"./preload-helper-DYl5dUZ5.js";import{f as u}from"./users-DVNWrqg9.js";import{r as d}from"./newsletters-Rq1M3GD-.js";import{s as f}from"./index-CgMCwsxN.js";var p=`InvitesResponseType`,m=a({dataType:p,path:`/invites/`,permissions:[`Owner`,`Administrator`],defaultSearchParams:{limit:`100`,include:`roles`},defaultNextPageParams:(e,t)=>({...t,page:(e.meta?.pagination.next||1).toString()}),returnData:e=>{let{pages:t}=e,n=t.flatMap(e=>e.invites),r=t[t.length-1].meta;return{invites:n,meta:r,isEnd:r?r.pagination.pages===r.pagination.page:!0}}}),h=r({method:`POST`,path:()=>`/invites/`,body:({email:e,roleId:t})=>({invites:[{email:e,role_id:t,expires:null,status:null,token:null}]}),updateQueries:{dataType:p,emberUpdateType:`createOrUpdate`,update:o(`invites`)}}),g=r({path:e=>`/invites/${e}/`,method:`DELETE`,updateQueries:{dataType:p,emberUpdateType:`delete`,update:s(`invites`)}}),_=i({dataType:`RolesResponseType`,path:`/roles/`,defaultSearchParams:{limit:`100`}}),v=e(t(),1),y=l(()=>import(`./limit-service-BhiEvqcP.js`).then(t=>e(t.default,1)),__vite__mapDeps([0,1,2,3]),import.meta.url),b=class extends Error{constructor({message:e}){super(e)}},x=()=>{let{data:e}=c({refetchOnMount:!1}),t=e?.config,[r,i]=(0,v.useState)(null);(0,v.useEffect)(()=>{y.then(e=>i(()=>e.default))},[]);let{data:{users:a}={users:[]},isLoading:o}=u(),{data:{invites:s}={invites:[]},isLoading:l}=m(),{data:{roles:p}={},isLoading:h}=_(),g=o||l||h,{refetch:x}=f({searchParams:{limit:`1`},enabled:!1}),{refetch:S}=d({searchParams:{filter:`status:active`,limit:`1`},enabled:!1}),C=(0,v.useMemo)(()=>t?.hostSettings?.billing?.enabled===!0&&t.hostSettings.billing.url?t.hostSettings.billing.url:`https://ghost.org/help/`,[t?.hostSettings?.billing]);return(0,v.useMemo)(()=>{let e={isLimited:()=>!1,isDisabled:()=>!1,checkWouldGoOverLimit:()=>Promise.resolve(!1),errorIfWouldGoOverLimit:()=>Promise.resolve(),errorIfIsOverLimit:()=>Promise.resolve()};if(!r||!t?.hostSettings?.limits||g)return e;let i={...t.hostSettings.limits},o=new r;return i.staff&&(i.staff.currentCountQuery=()=>{let e=a.filter(e=>e.status!==`inactive`&&!e.roles.some(e=>e.name===`Contributor`)),t=s.filter(e=>p?.find(({id:t})=>t===e.role_id)?.name!==`Contributor`);return Promise.resolve(e.length+t.length)}),i.members&&(i.members.currentCountQuery=async()=>{let{data:e}=await x();return e?.meta?.pagination?.total||0}),i.newsletters&&(i.newsletters.currentCountQuery=async()=>{let{data:{pages:e}={pages:[]}}=await S();return e[0].meta?.pagination.total||0}),o.loadLimits({limits:i,helpLink:C,errors:{HostLimitError:n,IncorrectUsageError:b}}),{isLimited:e=>o.isLimited(e),isDisabled:e=>o.isDisabled(e),checkWouldGoOverLimit:e=>o.checkWouldGoOverLimit(e),errorIfWouldGoOverLimit:(e,t={})=>o.errorIfWouldGoOverLimit(e,t),errorIfIsOverLimit:e=>o.errorIfIsOverLimit(e)}},[r,t,x,S,C,s,g,p,a])};export{g as a,m as i,_ as n,h as r,x as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{f as n}from"./chunk-KS7C4IRE-DCsL4i4D.js";import{a as r}from"./router-provider-BSvTXgZY.js";function i(){let e=n().find(e=>e.handle===`activitypub-basepath`)?.pathname??``;return e.endsWith(`/`)?e.slice(0,-1):e}var a=e(t(),1);function o(){let e=r(),t=i();return(0,a.useCallback)((n,r)=>{if(typeof n==`number`){e(n,r);return}n.startsWith(`/`)?e(`${t}${n}`,r):e(n,r)},[e,t])}export{i as n,o as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{f as n}from"./hooks-Cy_-oZ4o.js";import{s as r}from"./config-kSHvwdTG.js";import{_i as i,mi as a}from"./index-CgMCwsxN.js";var o=e(t(),1),s=e=>{if(e!=null){if(typeof e==`string`)return e;throw TypeError(`Expected value to be null, undefined, or a string`)}},c=e=>{if(e.startsWith(`/`)){let{adminRoot:t}=n();return window.location.origin+t.replace(/\/$/,``)+e}return e};function l({requestOptions:e}={}){let{data:t}=r({requestOptions:e}),{data:n}=i({requestOptions:e}),l=t?.config?.pintura,[u,d,f]=a(n?.settings??null,[`pintura`,`pintura_js_url`,`pintura_css_url`]),p,m;return u&&(p=l?.js||s(d),m=l?.css||s(f)),(0,o.useMemo)(()=>!p||!m?null:{jsUrl:c(p),cssUrl:c(m)},[p,m])}export{l as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{a as n,i as r}from"./framework-provider-DqI25epG.js";import{f as i,p as a}from"./hooks-Cy_-oZ4o.js";import{t as o}from"./preload-helper-DYl5dUZ5.js";import{mi as s}from"./index-CgMCwsxN.js";import{n as c}from"./global-data-context-gAMDH9u1.js";var l=e(t(),1);function u(){let{config:e,settings:t}=c(),u=a(),[d]=s(t,[`pintura`]),[f,p]=(0,l.useState)(!1),[m,h]=(0,l.useState)(!1),[g,_]=(0,l.useState)(!1),v=(0,l.useRef)(!1),[y]=s(t,[`pintura_js_url`]),[b]=s(t,[`pintura_css_url`]),x=d&&f&&m||!1,S=e?.pintura;(0,l.useEffect)(()=>{let e=S?.js?S?.js:y||null;if(e){if(e.startsWith(`/`)){let{adminRoot:t}=i();e=window.location.origin+t.replace(/\/$/,``)+e}if(window.pintura){p(!0);return}try{let t=new URL(e),n=`${t.protocol}//${t.host}${t.pathname}`;o(()=>import(n),[],import.meta.url).then(()=>{p(!0)}).catch(e=>{r(e)})}catch(e){r(e)}}},[y,S?.js]),(0,l.useEffect)(()=>{let e=S?.css?S?.css:b||null;if(e){if(e.startsWith(`/`)){let{adminRoot:t}=i();e=window.location.origin+t.replace(/\/$/,``)+e}try{if(document.querySelector(`link[href="${e}"]`))h(!0);else{let t=document.createElement(`link`);t.rel=`stylesheet`,t.type=`text/css`,t.href=e,t.onload=()=>{h(!0)},document.head.appendChild(t)}}catch(e){r(e)}}},[b,S?.css]);let C=(0,l.useCallback)(({image:e,handleSave:t})=>{if(e&&x){let r=new URL(e);r.searchParams.has(`v`)||r.searchParams.set(`v`,Date.now().toString());let i=r.href,a=window.pintura.openDefaultEditor({src:i,enableTransparencyGrid:!0,util:`crop`,utils:[`crop`,`filter`,`finetune`,`redact`,`annotate`,`trim`,`frame`,`resize`],frameOptions:[[void 0,e=>e.labelNone],[`solidSharp`,e=>e.frameLabelMatSharp],[`solidRound`,e=>e.frameLabelMatRound],[`lineSingle`,e=>e.frameLabelLineSingle],[`hook`,e=>e.frameLabelCornerHooks],[`polaroid`,e=>e.frameLabelPolaroid]],cropSelectPresetFilter:`landscape`,cropSelectPresetOptions:[[void 0,`Custom`],[1,`Square`],[2/1,`2:1`],[3/2,`3:2`],[4/3,`4:3`],[16/10,`16:10`],[16/9,`16:9`],[1/2,`1:2`],[2/3,`2:3`],[3/4,`3:4`],[10/16,`10:16`],[9/16,`9:16`]],locale:{labelButtonExport:`Save and close`},previewPad:!0,willClose:()=>v.current?(_(!1),!0):!1});a.on(`loaderror`,()=>{n(`Pintura editor failed to load`)}),a.on(`process`,e=>{Promise.resolve(t(e.dest)).catch(u)}),_(!0)}},[u,x]);return(0,l.useEffect)(()=>{let e=e=>{e.key===`Escape`&&e.stopPropagation()};if(!g)return;let t=e=>{e.target instanceof Element&&e.target.closest(`.PinturaModal button[title="Close"]`)&&(v.current=!0)};return window.addEventListener(`click`,t,{capture:!0}),window.addEventListener(`keydown`,e,{capture:!0}),()=>{window.removeEventListener(`click`,t,{capture:!0}),window.removeEventListener(`keydown`,e,{capture:!0})}},[g]),{isEnabled:x,openEditor:C}}export{u as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{i as n}from"./currency-Dy4Tc2R2.js";import{i as r,l as i,s as a}from"./stats-D9PDLS3x.js";var o=e(t(),1),s=e=>{let{data:t,isLoading:s}=i(e),{data:c,isLoading:l}=a(e),{data:u,isLoading:d}=r(),f=(0,o.useMemo)(()=>t?.stats||[],[t]),p=(0,o.useMemo)(()=>c?.stats.length===0?{free_members:0,paid_members:0,mrr:0}:c?.stats[0],[c]),{selectedCurrency:m,currencySymbol:h}=(0,o.useMemo)(()=>{if(u?.stats&&u?.meta?.totals){let e=u.meta.totals,t=e[0];if(!t)return{selectedCurrency:`usd`,currencySymbol:n(`usd`)};for(let n of e)n.mrr>t.mrr&&(t=n);let r=t.currency;return{selectedCurrency:r,currencySymbol:n(r)}}return{selectedCurrency:`usd`,currencySymbol:n(`usd`)}},[u]);return{isLoading:(0,o.useMemo)(()=>s||l||d,[s,l,d]),stats:f,totals:p,selectedCurrency:m,currencySymbol:h}};export{s as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as e}from"./chunk-KS7C4IRE-DCsL4i4D.js";var t=()=>{let[t]=e();return{getParam:e=>t.get(e)}};export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{E as r,t as i}from"./button-Dvcv1QSR.js";import{En as a,On as o,St as s,Yt as c,jn as l,nr as u,vn as d}from"./index-CgMCwsxN.js";var f=e(t(),1),p=n(),m=({object:e,onReply:t,onReplyError:n,className:r,...i})=>{let{data:o}=a(`index`),[u,d]=(0,f.useState)(!1);if(!o)return null;let m=e.attributedTo,h=`Reply...`;return m?.preferredUsername&&m?.id&&(h=`Reply to ${l(m)}...`),(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(`div`,{className:`flex w-full cursor-pointer gap-x-3 py-6 ${r||``}`,onClick:()=>d(!0),...i,children:[(0,p.jsx)(c,{author:o}),(0,p.jsx)(`div`,{className:`flex w-full items-center`,children:(0,p.jsx)(`div`,{className:`w-full text-[1.5rem] text-gray-500 transition-colors dark:text-gray-700`,children:h})})]}),u&&(0,p.jsx)(s,{open:u,replyTo:{object:e,actor:e.attributedTo},onOpenChange:e=>{d(e)},onReply:()=>{t?.(),d(!1)},onReplyError:()=>{n?.()}})]})},h=({last:e})=>(0,p.jsxs)(`div`,{className:`relative mt-[-5px] py-5`,children:[(0,p.jsxs)(`div`,{className:`flex h-12 grow items-center gap-2 rounded-lg border border-gray-200 p-2 px-[10px] text-gray-600`,children:[(0,p.jsx)(r,{size:18,strokeWidth:1.25}),`This post has been deleted`]}),!e&&(0,p.jsx)(`div`,{className:`absolute top-[70px] bottom-0 left-[18px] z-0 mb-[-13px] w-[2px] rounded-sm bg-gray-200`})]}),g=({count:e,onClick:t,variant:n=`default`,preserveScroll:r=!0,loading:a=!1})=>{let o=(0,f.useRef)(null),s=()=>{if(e&&e>0)return`Show ${e} more ${e===1?`reply`:`replies`}`;switch(n){case`expand`:return`Show replies`;case`loadMore`:return`Show more replies`;default:return`Show replies`}},c=()=>{if(r){let e=document.querySelector(`[data-scrollable-container]`),n=e?e.scrollTop:window.scrollY;t(),setTimeout(()=>{e?e.scrollTop=n:window.scrollTo(0,n)},0)}else t()};return(0,p.jsxs)(`div`,{ref:o,className:`mt-[-7px] flex items-center pb-3`,children:[(0,p.jsxs)(`div`,{className:`flex w-10 flex-col items-center justify-center gap-1`,children:[(0,p.jsx)(`div`,{className:`size-0.5 rounded-sm bg-gray-300`}),(0,p.jsx)(`div`,{className:`size-0.5 rounded-sm bg-gray-300`}),(0,p.jsx)(`div`,{className:`size-0.5 rounded-sm bg-gray-300`})]}),(0,p.jsx)(i,{className:`text-sm font-medium text-blue-600 hover:text-blue-800`,variant:`ghost`,onClick:e=>{e.preventDefault(),e.stopPropagation(),e.target.blur(),c()},children:a?(0,p.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,p.jsx)(u,{size:`sm`}),(0,p.jsx)(`span`,{children:`Loading...`})]}):s()})]})};function _(e,t={}){let{includeAncestors:n=!1}=t,{data:r,isLoading:i,loadMoreChildren:a,loadMoreChildReplies:s,hasMoreChildren:c,hasMoreChildReplies:l}=d(`index`,e);return{threadParents:n&&r?.ancestors?.chain?.map(o)||[],post:r?.post?o(r.post):void 0,processedReplies:(r?.children??[]).map(e=>({mainReply:o(e.post),chain:e.chain?e.chain.map(o):[]})),isLoading:i,loadMoreChildren:a,loadMoreChildReplies:s,hasMoreChildren:c,hasMoreChildReplies:l}}export{m as i,g as n,h as r,_ as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{l as n,u as r}from"./schemas-BoYdB6YU.js";var i=e(t(),1);function a(e){i.useEffect(()=>{if(!e)return;let t=e=>{e.preventDefault(),e.returnValue=``};return window.addEventListener(`beforeunload`,t),()=>{window.removeEventListener(`beforeunload`,t)}},[e])}var o=n({idx:r().int().nonnegative().optional()}).nullable();function s(){let e=o.safeParse(window.history.state);return e.success&&e.data?.idx!==void 0}export{a as n,s as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{p as n}from"./hooks-Cy_-oZ4o.js";import{t as r}from"./use-form-vRjI0Kwk.js";import{S as i}from"./shade-app-CcS3f8MZ-vwURazk8.js";import{yi as a}from"./index-CgMCwsxN.js";import{n as o}from"./global-data-context-gAMDH9u1.js";var s=e(t(),1),c=({savingDelay:e,onValidate:t}={})=>{let c=(0,s.useRef)(null),{siteData:l,settings:u}=o(),{mutateAsync:d}=a(),f=n(),[p,m]=(0,s.useState)(!1),{formState:h,saveState:g,handleSave:_,updateForm:v,setFormState:y,reset:b,validate:x,errors:S,clearError:C,okProps:w}=r({initialState:u||[],savingDelay:e,onSave:async()=>{await d?.(E())},onSaveError:f,onValidate:t}),{setGlobalDirtyState:T}=i();(0,s.useEffect)(()=>{T(h.some(e=>e.dirty))},[h,T]),(0,s.useEffect)(()=>{p&&c.current&&c.current.focus()},[p]),(0,s.useEffect)(()=>{(!p||g===`saving`)&&y(()=>u)},[u]);let E=()=>h?.filter(e=>e.dirty)?.map(e=>({key:e.key,value:e.value}));return{localSettings:h,isEditing:p,saveState:g,focusRef:c,siteData:l,handleSave:async()=>{let e=await _();return e&&m(!1),e},handleCancel:()=>{b(),m(!1)},updateSetting:(0,s.useCallback)((e,t)=>{v(n=>n.some(t=>t.key===e)?n.map(n=>n.key===e?{...n,value:t,dirty:!0}:n):[...n,{key:e,value:t,dirty:!0}])},[v]),handleEditingChange:e=>{m(e)},validate:x,errors:S,clearError:C,okProps:w}};export{c as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{r}from"./framework-provider-DqI25epG.js";import{u as i}from"./chunk-KS7C4IRE-DCsL4i4D.js";import{a}from"./router-provider-BSvTXgZY.js";import{l as o,o as s}from"./dist-B3keLvjj.js";import{t as c}from"./box-CdfQAP_F.js";import{t as l}from"./inline-BWSs_VzR.js";import{t as u}from"./text-BQDSDsKs.js";import{S as d}from"./shade-app-CcS3f8MZ-vwURazk8.js";import{a as f,t as p}from"./button-Dvcv1QSR.js";import{nr as m}from"./index-CgMCwsxN.js";import{n as h,t as ee}from"./dirty-confirm-dialog-DVPuGz3U.js";var g=n(),_=({shiftY:e,height:t=96,children:n,className:r,contentClassName:i,style:a,...s})=>(0,g.jsxs)(`div`,{className:o(`sticky z-[297] m-0 box-border w-full p-0`,r),style:{bottom:e?`calc(${e} - 24px)`:`-24px`,height:`${t+24}px`,...a},...s,children:[(0,g.jsx)(`div`,{className:`sticky bottom-0 z-[298] block h-6 bg-background`}),(0,g.jsx)(`div`,{className:o(`sticky bottom-0 z-[299] -mb-6 flex items-center justify-between bg-background`,i),style:{height:t},children:n}),(0,g.jsx)(`div`,{className:`sticky mx-2 block h-6 rounded-full shadow-[0_0_0_1px_color-mix(in_oklab,var(--color-border)_25%,transparent),0_-8px_16px_-3px_color-mix(in_oklab,var(--color-foreground)_8%,transparent)]`,style:{bottom:e?`calc(${e} + ${t-24}px)`:`${t-24}px`}})]}),v=e(t(),1),y=`bg-modal-backdrop backdrop-blur-[3px]`,b=s(`relative z-50 flex max-h-full w-full flex-col justify-between overflow-x-hidden bg-background text-foreground`,{variants:{size:{sm:`max-w-[480px] rounded-lg`,md:`max-w-[720px] rounded-lg`,lg:`max-w-[1020px] rounded-lg`,xl:`max-w-[1240px] rounded-lg`,full:`h-full rounded-lg`,bleed:`h-full`},align:{center:`mx-auto`,left:`mr-auto`,right:`ml-auto`},scrolling:{true:`overflow-y-auto`,false:`overflow-y-hidden`},formSheet:{true:`shadow-md`,false:`shadow-xl`}},defaultVariants:{size:`md`,align:`center`,scrolling:!0,formSheet:!1}}),te={sm:`p-4 md:p-[8vmin]`,md:`p-4 md:p-[8vmin]`,lg:`p-4 md:p-[4vmin]`,xl:`p-4 md:p-[3vmin]`,full:`p-4 md:p-[3vmin]`,bleed:``},ne={sm:`p-8`,md:`p-8`,lg:`p-7`,xl:`p-10`,full:`p-10`,bleed:`p-10`},re={sm:`-inset-x-8`,md:`-inset-x-8`,lg:`-inset-x-8`,xl:`-inset-x-10 -top-10`,full:`-inset-x-10`,bleed:`-inset-x-10`},x=(0,v.forwardRef)(({"aria-label":e,className:t,size:n=`md`,align:r=`center`,width:i,height:a,testId:s,title:x,okLabel:S=`OK`,okLoading:C=!1,cancelLabel:w=`Cancel`,footer:T,footerClassName:E,header:D,leftButton:ie,buttonsDisabled:O,okDisabled:ae,padding:oe=!0,onOk:k,okVariant:se=`default`,onCancel:A,topRightContent:j,hideXOnMobile:M=!1,onClose:N,afterClose:P,children:F,backDrop:I=!0,backDropClick:L=!0,stickyFooter:R=!1,stickyHeader:z=!1,scrolling:B=!0,dirty:V=!1,animate:H=!0,formSheet:U=!1,enableCMDS:W=!0,allowBackgroundInteraction:G=!1},ce)=>{let{setGlobalDirtyState:K}=d(),{confirm:le,dialogProps:ue}=h(),[q,de]=(0,v.useState)(!1);(0,v.useEffect)(()=>{K(V)},[V,K]);let J=()=>{le(V,()=>{N(),P?.()})};(0,v.useEffect)(()=>{let e=e=>{if(e.key!==`Escape`)return;let t=document.activeElement;t?.hasAttribute(`data-kg-link-input`)||setTimeout(()=>{e.defaultPrevented||(t instanceof HTMLElement&&document.activeElement===t&&t.blur(),A?A():J())})};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)}),(0,v.useEffect)(()=>{let e=setTimeout(()=>de(!0),250);return()=>clearTimeout(e)},[]),(0,v.useEffect)(()=>{if(!k||!W)return;let e=e=>{(e.metaKey||e.ctrlKey)&&e.key===`s`&&(e.preventDefault(),k())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[W,k]);let Y=oe?ne[n]:`p-0`,fe=o(b({size:n,align:r,scrolling:B,formSheet:U}),t,H&&!U&&!q&&r===`center`&&`animate-modal-in`,H&&!U&&!q&&r===`right`&&`animate-modal-in-from-right`,U&&!q&&`animate-modal-in-reverse`,i===`full`&&`w-full`,i===`toSidebar`&&`w-full max-w-[calc(100dvw_-_280px)] lg:max-w-full min-[1280px]:max-w-[calc(100dvw_-_320px)]`,a===`full`&&`h-full`,G&&`pointer-events-auto`),pe=o(`fixed inset-0 z-[1000] h-[100dvh] w-[100dvw] max-[800px]:pb-20`,te[n],G&&`pointer-events-none`),X=o(Y,`pb-0`,re[n],j&&j!==`close`&&`flex items-center justify-between gap-5`,z&&`sticky -top-px z-[300] -mb-4 bg-background pb-4`),me=o(Y,`py-0`,(n===`full`||n===`bleed`||a===`full`||typeof a==`number`)&&`grow`,T===!1&&`pb-0`),he=o(Y,`flex w-full items-center justify-between`,R&&`py-6`,E),Z={...typeof i==`number`?{width:`100%`,maxWidth:`${i}px`}:{},...typeof a==`number`?{height:`100%`,maxHeight:`${a}px`}:{}},ge=e=>{e.target===e.currentTarget&&L&&J()},Q;T?Q=T:T!==!1&&(Q=(0,g.jsxs)(l,{className:he,gap:`none`,justify:`between`,children:[(0,g.jsx)(c,{children:ie}),(0,g.jsxs)(l,{gap:`md`,children:[w&&(0,g.jsx)(p,{"data-testid":`cancel-modal`,disabled:O,type:`button`,variant:`outline`,onClick:A||J,children:w}),S&&(0,g.jsxs)(p,{"data-testid":`ok-modal`,disabled:O||ae||C,type:`button`,variant:se,onClick:()=>void k?.(),children:[C&&(0,g.jsx)(m,{size:`sm`}),S]})]})]})),R&&(Q=(0,g.jsx)(_,{height:84,children:Q}));let $=x&&(0,g.jsx)(u,{as:`h3`,className:`md:text-2xl`,leading:`heading`,size:`xl`,weight:`bold`,children:x}),_e=j&&j!==`close`?(0,g.jsxs)(l,{as:`header`,className:X,gap:`lg`,justify:`between`,children:[$,j]}):(0,g.jsxs)(`header`,{className:X,children:[$,(0,g.jsx)(c,{className:o(`absolute top-6 right-6`,j!==`close`&&`md:hidden`,M&&`hidden`),children:(0,g.jsx)(p,{"aria-label":`Close modal`,className:`-m-2 opacity-50 hover:opacity-100`,"data-testid":`close-modal`,size:`icon`,type:`button`,variant:`ghost`,onClick:J,children:(0,g.jsx)(f,{})})})]});return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)(c,{className:pe,id:`modal-backdrop`,onMouseDown:ge,children:[(0,g.jsx)(c,{className:o(`pointer-events-none fixed inset-0 z-0`,I&&!U&&y,U&&`bg-form-sheet-backdrop`)}),(0,g.jsxs)(`section`,{ref:ce,"aria-label":e,className:fe,"data-testid":s,style:Z,children:[D!==!1&&_e,(0,g.jsx)(c,{className:me,children:F}),Q]})]}),(0,g.jsx)(ee,{...ue})]})});x.displayName=`SettingsModal`;var S=(0,v.createContext)({updateSection:()=>{},updateNav:()=>{},currentSection:null,updateNavigatedSection:()=>{},scrollToSection:()=>{}}),C=()=>(0,v.useContext)(S),w=e=>{let{updateSection:t}=C(),n=(0,v.useRef)(null);return(0,v.useEffect)(()=>{e&&n.current&&t(e,n.current)},[e,t]),{ref:n}},T=e=>{let{updateNav:t}=C(),n=(0,v.useRef)(null);return(0,v.useEffect)(()=>{e&&n.current&&(Array.isArray(e)?e:[e]).forEach(e=>{t(e,n.current)})},[e,t]),{ref:n,props:{"data-setting-nav-item":!0}}};function E(){let e=a(),t=i(),{externalNavigate:n}=r(),{scrollToSection:o}=C();return{route:(0,v.useMemo)(()=>t.pathname.replace(/^\/settings\/?/,``),[t.pathname]),updateRoute:(0,v.useCallback)(r=>{if(typeof r==`object`&&r.isExternal){n(r);return}let i=typeof r==`string`?{route:r}:r,a=i.route.replace(/^\//,``),s=a.indexOf(`?`),c=s===-1?a:a.slice(0,s),l=s===-1?``:a.slice(s+1),u=c?`/settings/${c}`:`/settings`,d=l?`?${l}`:``;if(!i.replace&&t.pathname===u){if(t.search===d){o(c.split(`/`)[0]);return}e(u+d,{replace:i.replace}),o(c.split(`/`)[0]);return}e(u+d,{replace:i.replace})},[n,e,t.pathname,t.search,o])}}export{T as a,C as i,S as n,x as o,w as r,_ as s,E as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{l as r}from"./dist-B3keLvjj.js";import{Dr as i,kr as a,t as o}from"./button-Dvcv1QSR.js";var s=e(t(),1),c=n(),l=s.forwardRef(({className:e,children:t,...n},i)=>(0,c.jsx)(`div`,{ref:i,className:r(`flex items-center justify-between gap-4 pb-6 text-sm`,e),...n,children:t}));l.displayName=`SimplePagination`;var u=s.forwardRef(({className:e,currentPage:t,totalPages:n,...i},a)=>(0,c.jsxs)(`span`,{ref:a,className:r(`text-muted-foreground`,e),...i,children:[`Pages `,t,` of `,n]}));u.displayName=`SimplePaginationPages`;var d=s.forwardRef(({className:e,children:t,...n},i)=>(0,c.jsx)(`div`,{ref:i,className:r(`flex items-center gap-1.5`,e),...n,children:t}));d.displayName=`SimplePaginationNavigation`;var f=s.forwardRef(({variant:e=`outline`,...t},n)=>(0,c.jsx)(o,{ref:n,size:`sm`,variant:e,...t,children:(0,c.jsx)(a,{})}));f.displayName=`SimplePaginationPreviousButton`;var p=s.forwardRef(({variant:e=`outline`,...t},n)=>(0,c.jsx)(o,{ref:n,size:`sm`,variant:e,...t,children:(0,c.jsx)(i,{})}));p.displayName=`SimplePaginationNextButton`;function m({data:e,itemsPerPage:t,initialPage:n=1}){let[r,i]=(0,s.useState)(n);if(t<=0)throw Error(`itemsPerPage must be a positive number`);let a=e=>{i(Math.max(1,Math.min(o,e)))},o=(0,s.useMemo)(()=>e?Math.ceil(e.length/t):1,[e,t]);return(0,s.useEffect)(()=>{r>o&&i(1)},[r,o]),{currentPage:r,setCurrentPage:a,totalPages:o,paginatedData:(0,s.useMemo)(()=>{if(!e)return null;let n=(r-1)*t;return e.slice(n,n+t)},[e,r,t]),nextPage:()=>{i(e=>Math.min(o,e+1))},previousPage:()=>{i(e=>Math.max(1,e-1))},hasNextPage:r<o,hasPreviousPage:r>1}}export{u as a,p as i,l as n,f as o,d as r,m as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{l as r,o as i}from"./dist-B3keLvjj.js";import{t as a}from"./grid-Dj29PY05.js";import{t as o}from"./inline-BWSs_VzR.js";import{t as s}from"./stack-B2eszIiq.js";import{t as c}from"./text-BQDSDsKs.js";import{f as l}from"./users-DVNWrqg9.js";import{i as u,n as d}from"./use-limiter-CohWfzvK.js";import{t as f}from"./validator-Cr0sMKuW.js";import{n as p}from"./global-data-context-gAMDH9u1.js";var m=e(t(),1),h=n(),g=i(`group/setting-group relative flex flex-col gap-6 rounded-xl text-card-foreground transition-all`,{variants:{variant:{outline:`border border-border-default bg-card p-5 hover:shadow-sm md:p-7`,plain:`bg-transparent`},highlighted:{true:`shadow-sm`,false:``}},defaultVariants:{variant:`outline`,highlighted:!1}}),_=m.forwardRef(({className:e,variant:t,highlighted:n,editing:i=!1,...a},o)=>(0,h.jsx)(`div`,{ref:o,className:r(g({variant:t,highlighted:n,className:e})),"data-editing":i,...a}));_.displayName=`SettingGroup`;var v=m.forwardRef(({className:e,...t},n)=>(0,h.jsx)(o,{ref:n,align:`start`,as:`div`,className:r(`relative z-10 w-full`,e),gap:`lg`,justify:`between`,...t}));v.displayName=`SettingGroupHeader`;var y=m.forwardRef(({className:e,...t},n)=>(0,h.jsx)(s,{ref:n,className:r(`min-w-0`,e),gap:`xs`,...t}));y.displayName=`SettingGroupDetails`;var b=m.forwardRef(({className:e,...t},n)=>(0,h.jsx)(c,{ref:n,as:`h5`,className:r(`md:text-lg`,e),leading:`supertight`,weight:`semibold`,...t}));b.displayName=`SettingGroupTitle`;var x=m.forwardRef(({className:e,...t},n)=>(0,h.jsx)(c,{ref:n,className:r(`mr-5 hidden text-pretty group-data-[editing=false]/setting-group:block md:block`,e),...t}));x.displayName=`SettingGroupDescription`;var S=m.forwardRef(({className:e,...t},n)=>(0,h.jsx)(`div`,{ref:n,className:r(`shrink-0 [&_button]:text-control!`,e),...t}));S.displayName=`SettingGroupActions`;var C=m.forwardRef(({children:e,className:t,columns:n=1,...i},o)=>n===2?(0,h.jsx)(a,{ref:o,className:r(`grid-cols-1 gap-x-8 gap-y-6 md:grid-cols-2`,t),columns:1,gap:`none`,...i,children:e}):(0,h.jsx)(s,{ref:o,className:r(`gap-y-7`,t),gap:`none`,...i,children:e}));C.displayName=`SettingGroupContent`;var w=m.forwardRef(({className:e,...t},n)=>(0,h.jsx)(s,{ref:n,className:e,gap:`none`,...t}));w.displayName=`SettingGroupValue`;var T=m.forwardRef(({className:e,...t},n)=>(0,h.jsx)(c,{ref:n,as:`h6`,className:r(`text-base`,e),weight:`semibold`,...t}));T.displayName=`SettingGroupValueTitle`;var E=m.forwardRef(({className:e,...t},n)=>(0,h.jsx)(o,{ref:n,as:`div`,className:e,gap:`none`,...t}));E.displayName=`SettingGroupValueContent`;var D=e(f(),1),ee=e=>e.replace(/[\\\]^-]/g,`\\$&`),te=e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),O=e=>{if(e.patterns){let t=e.patterns;return e=>t.some(t=>t.test(e))}let t=`a-zA-Z0-9${e.unicode?`\\p{L}\\p{M}\\p{N}`:``}${ee(e.extra??``)}`,n=RegExp(`^[${t}]+$`,`u`),r=e.min??1,i=e.max??100;return t=>{let[a,...o]=e.nestedSegments?t.split(`/`):[t];if(!n.test(a))return!1;let s=[...a].length;if(s<r||s>i)return!1;for(let t of e.notAtBoundary??``)if(a.startsWith(t)||a.endsWith(t))return!1;for(let t of e.notConsecutive??``)if(a.includes(t+t))return!1;return o.every(e=>e===``||n.test(e))}},ne=e=>{try{return decodeURIComponent(e)}catch{return e}},k=e=>{let{domains:t,www:n,regionalSubdomain:r,pathTypes:i,fullPath:a,transformUsername:o,errors:s}=e,c=i.map(e=>({...e,check:O(e.rule)})),l=[...c].sort((e,t)=>t.urlPrefix.length-e.urlPrefix.length),u=c.flatMap(e=>[e.storagePrefix,...e.handleAliases??[]].filter(e=>e!==``).map(t=>({prefix:t,pathType:e}))).sort((e,t)=>t.prefix.length-e.prefix.length),d=t.map(e=>te(e)).join(`|`),f=`${r?`(?:(?<region>${r})\\.)?`:``}(?:[a-zA-Z0-9-]+\\.)*`,p=RegExp(`^(?:(?:https?:)?\\/\\/)?${f}(?:${d})\\/(?<rest>[\\s\\S]*)$`,`i`),m=RegExp(`^${f}(?:${d})(?:\\/|$)`,`i`),h=e=>/^(?:https?:\/\/|\/\/|www\.)/i.test(e)||m.test(e),g=(e,t)=>{let n=t?e:e.replace(/^@/,``);return n=n.replace(/\/$/,``),a||(n=ne(n)),n=n.normalize(`NFC`),o?o(n):n},_=e=>{let t=e.replace(/^\//,``),n=u.find(({prefix:e})=>t.startsWith(e));return n?{pathType:n.pathType,rawUsername:t.slice(n.prefix.length),atPrefixConsumed:!n.pathType.tolerateLeadingAt}:{pathType:c[0],rawUsername:t,atPrefixConsumed:!1}},v=e=>{if(!h(e))return _(e);let t=e.match(p);if(!t?.groups)throw Error(s.invalidUrl);let{region:n,rest:r}=t.groups,i=l.find(e=>r.startsWith(e.urlPrefix));if(!i||r.length<=i.urlPrefix.length)throw Error(s.invalidUrl);let o=r.slice(i.urlPrefix.length),c=!a&&!i.rule.nestedSegments?o.split(`/`)[0]:o;if(!a&&/[?#]/.test(c))throw Error(s.invalidUsername);return{region:n,pathType:i,rawUsername:c,atPrefixConsumed:i.urlPrefix!==``&&!i.tolerateLeadingAt}},y=(e,t)=>{if(!e.check(t))throw Error(s.invalidUsername)},b=(e,r,i)=>{let a=`https://${i?`${i.toLowerCase()}.`:n?`www.`:``}${t[0]}/${e.urlPrefix}${r}`;if(!D.default.isURL(a))throw Error(s.invalidUrl);return a};return{validate:e=>{if(!e)return``;let{region:t,pathType:n,rawUsername:r,atPrefixConsumed:i}=v(e.trim()),a=g(r,i);return y(n,a),b(n,a,t)},handleToUrl:e=>{if(!e)throw Error(s.invalidUsername);let{pathType:t,rawUsername:n,atPrefixConsumed:r}=_(e.trim()),i=g(n,r);return y(t,i),b(t,i)},urlToHandle:e=>{if(!e||!h(e.trim()))return null;try{let{pathType:t,rawUsername:n,atPrefixConsumed:r}=v(e.trim()),i=g(n,r);return y(t,i),`${t.storagePrefix}${i}`}catch{return null}}}},A=`The URL must be in a format like https://www.facebook.com/yourPage`,j=k({domains:[`facebook.com`],www:!0,fullPath:!0,pathTypes:[{urlPrefix:``,storagePrefix:``,rule:{patterns:[/^\S+$/]}}],errors:{invalidUrl:A,invalidUsername:A}}),M=j.validate,re=j.handleToUrl,ie=j.urlToHandle,N=k({domains:[`x.com`,`twitter.com`],www:!1,pathTypes:[{urlPrefix:``,storagePrefix:`@`,rule:{extra:`_`,min:1,max:15}}],errors:{invalidUrl:`The URL must be in a format like https://x.com/yourUsername`,invalidUsername:`Your Username is not a valid Twitter Username`}}),ae=N.validate,oe=N.handleToUrl,se=N.urlToHandle,P={extra:`._`,min:1,max:30,notAtBoundary:`.`,notConsecutive:`.`},F=k({domains:[`instagram.com`],www:!0,pathTypes:[{urlPrefix:``,storagePrefix:``,rule:P}],errors:{invalidUrl:`The URL must be in a format like https://www.instagram.com/yourUsername`,invalidUsername:`Your Username is not a valid Instagram Username`}}),ce=F.validate,le=F.handleToUrl,ue=F.urlToHandle,I=k({domains:[`threads.net`,`threads.com`],www:!0,pathTypes:[{urlPrefix:`@`,storagePrefix:`@`,rule:P},{urlPrefix:``,storagePrefix:`@`,rule:P}],errors:{invalidUrl:`The URL must be in a format like https://www.threads.net/@yourUsername`,invalidUsername:`The URL must be in a format like https://www.threads.net/@yourUsername`}}),L=I.validate,R=I.handleToUrl,z=I.urlToHandle,B=k({domains:[`bsky.app`],www:!1,pathTypes:[{urlPrefix:`profile/`,storagePrefix:``,tolerateLeadingAt:!0,rule:{patterns:[/^did:plc:[a-z2-7]{24}$/,/^[a-zA-Z0-9._]{1,15}$/,/^(?=.{1,191}$)[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+$/]}}],transformUsername:e=>/^did:plc:/i.test(e)?e.toLowerCase():e,errors:{invalidUrl:`The URL must be in a format like https://bsky.app/profile/yourUsername`,invalidUsername:`Your Username is not a valid Bluesky Username`}}),V=B.validate,H=B.handleToUrl,U=B.urlToHandle,W={unicode:!0,extra:`-`,min:3,max:100},G={...W,extra:`-_`},K=k({domains:[`linkedin.com`],www:!0,regionalSubdomain:`[a-z]{2}`,pathTypes:[{urlPrefix:`in/`,storagePrefix:``,handleAliases:[`in/`],rule:W},{urlPrefix:`pub/`,storagePrefix:`pub/`,rule:{...W,nestedSegments:!0}},{urlPrefix:`company/`,storagePrefix:`company/`,rule:G},{urlPrefix:`school/`,storagePrefix:`school/`,rule:G}],errors:{invalidUrl:`The URL must be in a format like https://www.linkedin.com/in/yourUsername`,invalidUsername:`Your Username is not a valid LinkedIn Username`}}),de=K.validate,fe=K.handleToUrl,pe=K.urlToHandle,q=k({domains:[`youtube.com`],www:!0,pathTypes:[{urlPrefix:`@`,storagePrefix:`@`,rule:{unicode:!0,extra:`._-`,min:3,max:30,notAtBoundary:`._-`,notConsecutive:`.`}},{urlPrefix:`user/`,storagePrefix:`user/`,rule:{extra:`._-`,min:1,max:50}},{urlPrefix:`channel/`,storagePrefix:`channel/`,rule:{patterns:[/^UC[a-zA-Z0-9_-]{22}$/]}}],errors:{invalidUrl:`The URL must be in a format like https://www.youtube.com/@yourUsername, https://www.youtube.com/user/yourUsername, or https://www.youtube.com/channel/yourChannelId`,invalidUsername:`Your Username is not a valid YouTube Username`}}),me=q.validate,he=q.handleToUrl,ge=q.urlToHandle,J=k({domains:[`tiktok.com`],www:!0,pathTypes:[{urlPrefix:`@`,storagePrefix:`@`,rule:{extra:`._`,min:2,max:24,notAtBoundary:`.`,notConsecutive:`.`}}],errors:{invalidUrl:`The URL must be in a format like https://www.tiktok.com/@yourUsername`,invalidUsername:`Your Username is not a valid TikTok Username`}}),_e=J.validate,ve=J.handleToUrl,ye=J.urlToHandle;function be(e){let t=`The URL must be in a format like @username@instance.tld or https://instance.tld/@username or https://website.com/@username@instance.tld`;if(!e)return``;let n=e;if(n=n.replace(/^https?:\/\//,``),n.match(/^@[^@]+@[^/]+$/)){let[e,r]=n.split(`@`).slice(1);if(!D.default.isFQDN(r))throw Error(t);return`https://${r}/@${e}`}if(n.match(/^[^/]+\.[^/]+\/@[^/]+(@[^/]+)?$/)){let[e,r]=n.split(`/@`);if(!D.default.isFQDN(e))throw Error(t);if(r.includes(`@`)){let[,e]=r.split(`@`);if(!D.default.isFQDN(e))throw Error(t)}return`https://${n}`}throw Error(t)}var xe=e=>{let t=`Your Username is not a valid Mastodon Username`;if(!e)throw Error(t);if(e.match(/^@[^@]+@[^/]+$/)){let[n,r]=e.split(`@`).slice(1);if(!D.default.isFQDN(r))throw Error(t);return`https://${r}/@${n}`}if(e.match(/^[^/]+\.[^/]+\/@[^/]+(@[^/]+)?$/)){let[n,r]=e.split(`/@`);if(!D.default.isFQDN(n))throw Error(t);if(r.includes(`@`)){let[,e]=r.split(`@`);if(!D.default.isFQDN(e))throw Error(t)}return`https://${e}`}throw Error(t)},Se=e=>e.replace(/^https?:\/\//,``),Ce=[`twitter`,`facebook`,`linkedin`,`bluesky`,`threads`,`mastodon`,`tiktok`,`youtube`,`instagram`],Y=(e,t)=>{if(!e)return``;try{return t(e)}catch{return e}},X=[{key:`twitter`,staffTitle:`X`,publicationTitle:`X`,placeholder:`https://x.com/username`,testId:`x-input`,validate:ae,toDisplayValue:e=>Y(e,oe),toStoredValue:e=>se(e)},{key:`facebook`,staffTitle:`Facebook`,publicationTitle:`Facebook`,placeholder:`https://www.facebook.com/username`,testId:`facebook-input`,validate:M,toDisplayValue:e=>Y(e,re),toStoredValue:e=>ie(e)},{key:`linkedin`,staffTitle:`LinkedIn`,publicationTitle:`LinkedIn`,placeholder:`https://www.linkedin.com/in/username`,testId:`linkedin-input`,validate:de,toDisplayValue:e=>Y(e,fe),toStoredValue:e=>pe(e)},{key:`bluesky`,staffTitle:`Bluesky`,publicationTitle:`Bluesky`,placeholder:`https://bsky.app/profile/username`,testId:`bluesky-input`,validate:V,toDisplayValue:e=>Y(e,H),toStoredValue:e=>U(e)},{key:`threads`,staffTitle:`Threads`,publicationTitle:`Threads`,placeholder:`https://threads.net/@username`,testId:`threads-input`,validate:L,toDisplayValue:e=>Y(e,R),toStoredValue:e=>z(e)},{key:`mastodon`,staffTitle:`Mastodon`,publicationTitle:`Mastodon`,placeholder:`https://mastodon.social/@username`,testId:`mastodon-input`,validate:be,toDisplayValue:e=>Y(e,xe),toStoredValue:e=>e?Se(e):null},{key:`tiktok`,staffTitle:`TikTok`,publicationTitle:`TikTok`,placeholder:`https://www.tiktok.com/@username`,testId:`tiktok-input`,validate:_e,toDisplayValue:e=>Y(e,ve),toStoredValue:e=>ye(e)},{key:`youtube`,staffTitle:`YouTube`,publicationTitle:`YouTube`,placeholder:`https://www.youtube.com/@channel`,testId:`youtube-input`,validate:me,toDisplayValue:e=>Y(e,he),toStoredValue:e=>ge(e)},{key:`instagram`,staffTitle:`Instagram`,publicationTitle:`Instagram`,placeholder:`https://www.instagram.com/username`,testId:`instagram-input`,validate:ce,toDisplayValue:e=>Y(e,le),toStoredValue:e=>ue(e)}],Z=Object.fromEntries(X.map(e=>[e.key,e])),we=(e,t)=>{let n=Z[e],r=n.validate(t),i=r?n.toStoredValue(r):null;return{displayValue:n.toDisplayValue(i),storedValue:i}},Q=(e,t)=>{try{return Z[e].validate(t||``),``}catch(e){return e instanceof Error?e.message:``}};function $(e,t){return e.filter(e=>e.roles.find(e=>e.name===t))}function Te(e,t){return e.filter(e=>e.roles.find(e=>t.includes(e.name)))}function Ee(e){return $(e,`Owner`)[0]}var De=()=>{let{currentUser:e}=p(),{data:{users:t,meta:n,isEnd:r}={users:[]},isLoading:i,fetchNextPage:a}=l(),{data:{invites:o,meta:s,isEnd:c}={invites:[]},isLoading:f,fetchNextPage:h}=u(),{data:{roles:g}={},isLoading:_}=d(),v=(0,m.useMemo)(()=>Ee(t),[t]),y=(0,m.useMemo)(()=>$(t,`Administrator`),[t]),b=(0,m.useMemo)(()=>Te(t,[`Editor`,`Super Editor`]),[t]),x=(0,m.useMemo)(()=>$(t,`Author`),[t]),S=(0,m.useMemo)(()=>$(t,`Contributor`),[t]),C=(0,m.useMemo)(()=>o.map(e=>{let t=g?.find(t=>e.role_id===t.id);return{...e,role:t?.name}}),[o,g]);return{totalUsers:n?.pagination.total||0,totalInvites:s?.pagination.total||0,users:t,ownerUser:v,adminUsers:y,editorUsers:b,authorUsers:x,contributorUsers:S,currentUser:e,invites:C,isLoading:i||f||_,hasNextPage:r===!1,invitesHasNextPage:c===!1,fetchNextPage:a,fetchNextInvitePage:h}};export{we as a,C as c,v as d,b as f,T as h,Q as i,x as l,E as m,X as n,_ as o,w as p,Ce as r,S as s,De as t,y as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{r as n}from"./hooks-Cy_-oZ4o.js";import{Di as r}from"./index-CgMCwsxN.js";var i=`TinybirdTokenResponseType`,a={refetchInterval:7200*1e3,refetchIntervalInBackground:!0,staleTime:6600*1e3},o=n({dataType:i,path:`/tinybird/token/`}),s=(e={})=>o({...a,...e}),c=e(t(),1),l=!1,u=(e={})=>{let{enabled:t=!0}=e,n=r(),i=t&&n,a=s({enabled:i}),o=a.refetch,u=(0,c.useCallback)(async()=>{let e=(await o()).data?.tinybird?.token;return typeof e==`string`&&e?e:void 0},[o]);if(!i)return{token:void 0,isLoading:!1,error:null,refetch:u};let d=a.data?.tinybird?.token,f=a.error;return!a.isLoading&&a.data&&!d&&!l&&(console.warn(`Tinybird analytics: No valid token received. Check your Tinybird configuration (workspaceId and adminToken must be non-empty strings).`),l=!0),{token:d&&typeof d==`string`?d:void 0,isLoading:a.isLoading,error:f,refetch:u}};export{u as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{n,t as r}from"./use-router-history-entry-NOKcd--l.js";import{l as i,t as a,u as o}from"./chunk-KS7C4IRE-DCsL4i4D.js";var s=Object.prototype.hasOwnProperty;function c(e,t,n){for(n of e.keys())if(l(n,t))return n}function l(e,t){var n,r,i;if(e===t)return!0;if(e&&t&&(n=e.constructor)===t.constructor){if(n===Date)return e.getTime()===t.getTime();if(n===RegExp)return e.toString()===t.toString();if(n===Array){if((r=e.length)===t.length)for(;r--&&l(e[r],t[r]););return r===-1}if(n===Set){if(e.size!==t.size)return!1;for(r of e)if(i=r,i&&typeof i==`object`&&(i=c(t,i),!i)||!t.has(i))return!1;return!0}if(n===Map){if(e.size!==t.size)return!1;for(r of e)if(i=r[0],i&&typeof i==`object`&&(i=c(t,i),!i)||!l(r[1],t.get(i)))return!1;return!0}if(n===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(n===DataView){if((r=e.byteLength)===t.byteLength)for(;r--&&e.getInt8(r)===t.getInt8(r););return r===-1}if(ArrayBuffer.isView(e)){if((r=e.byteLength)===t.byteLength)for(;r--&&e[r]===t[r];);return r===-1}if(!n||typeof e==`object`){for(n in r=0,e)if(s.call(e,n)&&++r&&!s.call(t,n)||!(n in t)||!l(e[n],t[n]))return!1;return Object.keys(t).length===r}}return e!==e&&t!==t}var u=e(t(),1);function d(e,t){let[n,r]=u.useState(null),i=u.useRef(null),a=u.useRef(e);a.current=e;let o=u.useRef(t);return o.current=t,u.useEffect(()=>{let e=e=>{if(!a.current||e.defaultPrevented||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.button!==0)return;let t=e.target.closest?.(`a[href^="#/"]`);if(!t||t.hasAttribute(`data-discover`))return;e.preventDefault(),e.stopPropagation();let n=t.getAttribute(`href`);i.current=n,o.current?.(),r(n)};return document.addEventListener(`click`,e,!0),()=>document.removeEventListener(`click`,e,!0)},[]),{blockedHref:n,isBlocked:n!==null,proceed:()=>{let e=i.current;e&&(i.current=null,r(null),window.location.hash=e)},reset:()=>{i.current=null,r(null)}}}function f({when:e,confirmUnloadWhen:t,isSaving:s=!1,interceptNavigation:c}){let l=o(),f=u.useRef(!1),p=u.useRef(!1),m=u.useRef(!1),h=u.useRef(!1),g=u.useRef(!1),_=u.useRef(c);_.current=c,n(t??e);let v=i(t=>{if(t.historyAction===a.Pop&&!r())return!1;if(f.current)return f.current=!1,!1;if(_.current?.(t))return g.current=!0,!0;g.current=!1;let n=e&&t.currentLocation.pathname!==t.nextLocation.pathname;return n&&(p.current=!0),n}),y=d(e,()=>{p.current=!0}),b=v.state===`blocked`&&g.current,x=v.state===`blocked`&&!g.current||y.isBlocked;x&&(p.current=!0),u.useEffect(()=>{f.current=!1,p.current=!1,m.current=!1},[l.pathname]),u.useEffect(()=>{!m.current||s||!x||(m.current=!1,p.current=!1,y.isBlocked?y.proceed():v.proceed?.())},[s,x,y,v]);let S=u.useCallback(()=>{f.current=!0},[]),C=u.useCallback(()=>p.current?(m.current=!0,!0):!1,[]);return{isBlocked:x,dialogProps:{open:x&&!s,onConfirm:()=>{h.current=!0,p.current=!1,m.current=!1,y.isBlocked?y.proceed():v.proceed?.()},onOpenChange:e=>{if(!e){if(h.current){h.current=!1;return}x&&(p.current=!1,m.current=!1,v.reset?.(),y.reset())}}},bypassNextNavigation:S,resumeBlockedNavigationAfterSave:C,interceptedNavigation:{isBlocked:b,proceed:()=>v.proceed?.(),reset:()=>v.reset?.()}}}export{l as n,f as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./config-kSHvwdTG.js";import{n as t}from"./global-data-context-gAMDH9u1.js";function n(){let{config:n}=t();return e(n)}export{n as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{T as r,g as i,m as a,n as o,p as s,r as c}from"./hooks-Cy_-oZ4o.js";import{n as l}from"./dist-Ndy-PuGN.js";import{t as u}from"./use-form-vRjI0Kwk.js";import{h as d,u as f}from"./chunk-KS7C4IRE-DCsL4i4D.js";import{a as p}from"./router-provider-BSvTXgZY.js";import{m,w as h}from"./dist-B3keLvjj.js";import{t as g}from"./text-BQDSDsKs.js";import{D as _,Nn as v,bt as y,g as b,t as x}from"./button-Dvcv1QSR.js";import{i as S,n as C,r as ee,t as w}from"./tabs-eBBlxPp8.js";import{t as T}from"./switch-CI4gLWqb.js";import{t as te}from"./dropzone-Dtz5Rmjt.js";import{i as E,n as D,o as O,s as k,t as ne}from"./select-v5YbA3Mw.js";import{o as re,t as ie}from"./use-settings-navigation-B-qrriKD.js";import{i as A,n as j,o as M,r as N,t as P}from"./field-C93_Mg6j.js";import{t as F}from"./textarea-DJ1Q5V39.js";import{_ as I,c as ae,d as L,g as oe,h as R,m as se,o as z,p as ce,s as le,t as B,u as ue}from"./users-DVNWrqg9.js";import{n as de,t as fe}from"./use-limiter-CohWfzvK.js";import{Dr as pe,Fr as me,Tr as he,fi as V,kr as H,pt as ge,rr as U,t as _e}from"./index-CgMCwsxN.js";import{a as ve,c as ye,i as be,n as xe,o as Se,r as Ce,s as we,t as Te}from"./images-KXmyO3Ss.js";import{a as W,c as G,i as Ee,n as K,o as q,r as De,t as Oe}from"./use-staff-users-pRIMIyiW.js";import{t as J}from"./validator-Cr0sMKuW.js";import{n as ke}from"./confirmation-context-DwXX_Y5h.js";import{n as Y}from"./global-data-context-gAMDH9u1.js";import{t as Ae}from"./use-upgrade-route-Dm_qqKr0.js";import{t as X}from"./api-keys-BoeacM-s.js";import{t as je}from"./use-pintura-editor-CaV1mbfO.js";var Z=n(),Me=({user:e,setUserData:t})=>{let{config:n,settings:r}=Y(),i=V(r||[],n||{});return(0,Z.jsxs)(G,{children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium tracking-wide text-gray-700 uppercase`,children:`Engagement`}),(0,Z.jsxs)(`div`,{className:`mt-3 flex flex-col gap-4`,children:[(0,Z.jsxs)(P,{orientation:`horizontal`,children:[(0,Z.jsxs)(j,{children:[(0,Z.jsx)(M,{htmlFor:`comment-notifications`,children:`Comments`}),(0,Z.jsx)(N,{children:`Every time a member comments on one of your posts`})]}),(0,Z.jsx)(T,{checked:!!e.comment_notifications,id:`comment-notifications`,onCheckedChange:n=>t({...e,comment_notifications:n})})]}),z(e)&&(0,Z.jsxs)(P,{orientation:`horizontal`,children:[(0,Z.jsxs)(j,{children:[(0,Z.jsx)(M,{htmlFor:`recommendation-notifications`,children:`Recommendations`}),(0,Z.jsx)(N,{children:`Every time another publisher recommends you to their audience`})]}),(0,Z.jsx)(T,{checked:!!e.recommendation_notifications,id:`recommendation-notifications`,onCheckedChange:n=>t({...e,recommendation_notifications:n})})]})]})]}),z(e)&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium tracking-wide text-gray-700 uppercase`,children:`Members`}),(0,Z.jsxs)(`div`,{className:`mt-3 flex flex-col gap-4`,children:[(0,Z.jsxs)(P,{orientation:`horizontal`,children:[(0,Z.jsxs)(j,{children:[(0,Z.jsx)(M,{htmlFor:`free-member-signup-notifications`,children:`New signups`}),(0,Z.jsx)(N,{children:`Every time a new free member signs up`})]}),(0,Z.jsx)(T,{checked:!!e.free_member_signup_notification,id:`free-member-signup-notifications`,onCheckedChange:n=>t({...e,free_member_signup_notification:n})})]}),i&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(P,{orientation:`horizontal`,children:[(0,Z.jsxs)(j,{children:[(0,Z.jsx)(M,{htmlFor:`paid-subscription-started-notifications`,children:`New paid members`}),(0,Z.jsx)(N,{children:`Every time a member starts a new paid subscription`})]}),(0,Z.jsx)(T,{checked:!!e.paid_subscription_started_notification,id:`paid-subscription-started-notifications`,onCheckedChange:n=>t({...e,paid_subscription_started_notification:n})})]}),(0,Z.jsxs)(P,{orientation:`horizontal`,children:[(0,Z.jsxs)(j,{children:[(0,Z.jsx)(M,{htmlFor:`paid-subscription-canceled-notifications`,children:`Paid member cancellations`}),(0,Z.jsx)(N,{children:`Every time a member cancels their paid subscription`})]}),(0,Z.jsx)(T,{checked:!!e.paid_subscription_canceled_notification,id:`paid-subscription-canceled-notifications`,onCheckedChange:n=>t({...e,paid_subscription_canceled_notification:n})})]})]})]})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium tracking-wide text-gray-700 uppercase`,children:`Revenue`}),(0,Z.jsxs)(`div`,{className:`mt-3 flex flex-col gap-4`,children:[(0,Z.jsxs)(P,{orientation:`horizontal`,children:[(0,Z.jsxs)(j,{children:[(0,Z.jsx)(M,{htmlFor:`milestone-notifications`,children:`Milestones`}),(0,Z.jsx)(N,{children:i?`Occasional summaries of your audience & revenue growth`:`Occasional summaries of your audience growth`})]}),(0,Z.jsx)(T,{checked:!!e.milestone_notifications,id:`milestone-notifications`,onCheckedChange:n=>t({...e,milestone_notifications:n})})]}),i&&(0,Z.jsxs)(P,{orientation:`horizontal`,children:[(0,Z.jsxs)(j,{children:[(0,Z.jsx)(M,{htmlFor:`donation-notifications`,children:`Tips & donations`}),(0,Z.jsx)(N,{children:`Every time you receive a one-time payment`})]}),(0,Z.jsx)(T,{checked:!!e.donation_notifications,id:`donation-notifications`,onCheckedChange:n=>t({...e,donation_notifications:n})})]}),i&&(0,Z.jsxs)(P,{orientation:`horizontal`,children:[(0,Z.jsxs)(j,{children:[(0,Z.jsx)(M,{htmlFor:`gift-subscription-notifications`,children:`Gift subscriptions`}),(0,Z.jsx)(N,{children:`Every time someone purchases or redeems a gift subscription`})]}),(0,Z.jsx)(T,{checked:!!e.gift_subscription_notifications,id:`gift-subscription-notifications`,onCheckedChange:n=>t({...e,gift_subscription_notifications:n})})]})]})]})]})]})},Ne=({user:e,setUserData:t})=>(0,Z.jsx)(q,{variant:`plain`,children:(0,Z.jsx)(Me,{setUserData:t,user:e})}),Q=e(t(),1),Pe=[`1234567890`,`qwertyuiop`,`qwertzuiop`,`asdfghjkl;`,`abcdefghij`,`0987654321`,`1q2w3e4r5t`,`12345asdfg`],Fe=[`ghost`,`password`,`passw0rd`],Ie=e=>{let t={},n=!0,r=e.length/2;for(let n=0;n<e.length;n+=1)t[e[n]]?t[e[n]]+=1:t[e[n]]=1;for(let e in t)if(t[e]>=r)return n=!1,n;return n},Le=({user:e})=>{let{currentUser:t,config:n,siteData:i}=Y(),[a,o]=(0,Q.useState)(!1),[c,u]=(0,Q.useState)(``),[d,f]=(0,Q.useState)(``),[p,m]=(0,Q.useState)(``),[h,g]=(0,Q.useState)(``),[_,v]=(0,Q.useState)({}),y=(0,Q.useRef)(null),b=(0,Q.useRef)(null),S=(0,Q.useRef)(null),{mutateAsync:C}=I(),ee=s(),w=e.id===t.id,T=({password:t,confirmPassword:r})=>{if(w&&!c)return{oldPassword:`Your current password is required to set a new one`};if(t!==r)return{newPassword:`Your new passwords do not match`,confirmNewPassword:`Your new passwords do not match`};let a=n.blogUrl||window.location.host,o=i.title;a=a.replace(/^http(s?):\/\//,``);let s=a.match(/\/$/)?a:`${a}/`;if(o&&=o.trim().toLowerCase(),t.length<10)return{newPassword:`Password must be at least 10 characters long.`};t=t.toString();for(let e of Pe)if(e===t)return{newPassword:`Sorry, you cannot use an insecure password.`};if(t.toLowerCase()===e.email.toLowerCase())return{newPassword:`Sorry, you cannot use an insecure password.`};for(let e of Fe)if(t.toLowerCase().indexOf(e)>=0)return{newPassword:`Sorry, you cannot use an insecure password.`};return t.toLowerCase()===o||t.toLowerCase()===a||t.toLowerCase()===s||!Ie(t)?{newPassword:`Sorry, you cannot use an insecure password.`}:{}};(0,Q.useEffect)(()=>{h===`saved`&&setTimeout(()=>{g(``),o(!1)},2500)},[h]),(0,Q.useEffect)(()=>{a&&setTimeout(()=>{w?S.current?.focus():y.current?.focus()},100)},[a,w]);let te=()=>{o(!0)},E=async()=>{g(`saving`);let t=T({password:d,confirmPassword:p});if(v(t),Object.keys(t).length>0){g(``);return}try{await C({newPassword:d,confirmNewPassword:p,oldPassword:c,userId:e?.id}),g(`saved`)}catch(e){g(``),l.error(e instanceof r?e.message:`Couldn't update password. Please try again.`),ee(e,{withToast:!1})}},D=`Save password`;h===`saving`?D=`Saving...`:h===`saved`&&(D=`Saved`);let O=(0,Z.jsxs)(Z.Fragment,{children:[w&&(0,Z.jsxs)(P,{"data-invalid":!!_.oldPassword||void 0,children:[(0,Z.jsx)(M,{htmlFor:`old-password`,children:`Old password`}),(0,Z.jsx)(U,{ref:S,"aria-invalid":!!_.oldPassword||void 0,"data-testid":`old-password`,id:`old-password`,type:`password`,value:c,onChange:e=>u(e.target.value)}),_.oldPassword&&(0,Z.jsx)(A,{children:_.oldPassword})]}),(0,Z.jsxs)(P,{"data-invalid":!!_.newPassword||void 0,children:[(0,Z.jsx)(M,{htmlFor:`new-password`,children:`New password`}),(0,Z.jsx)(U,{ref:y,"aria-invalid":!!_.newPassword||void 0,"data-testid":`new-password`,id:`new-password`,type:`password`,value:d,onChange:e=>f(e.target.value)}),_.newPassword&&(0,Z.jsx)(A,{children:_.newPassword})]}),(0,Z.jsxs)(P,{"data-invalid":!!_.confirmNewPassword||void 0,children:[(0,Z.jsx)(M,{htmlFor:`confirm-password`,children:`Confirm new password`}),(0,Z.jsx)(U,{ref:b,"aria-invalid":!!_.confirmNewPassword||void 0,"data-testid":`confirm-password`,id:`confirm-password`,type:`password`,value:p,onChange:e=>m(e.target.value)}),_.confirmNewPassword&&(0,Z.jsx)(A,{children:_.confirmNewPassword})]}),(0,Z.jsxs)(`div`,{className:`mt-1 flex items-center justify-end gap-3`,children:[(0,Z.jsx)(x,{type:`button`,variant:`outline`,onClick:()=>{o(!1),u(``),f(``),m(``),v({})},children:`Cancel`}),(0,Z.jsx)(x,{"data-testid":`save-password-button`,type:`button`,onClick:()=>void E(),children:D})]})]});return(0,Z.jsx)(Z.Fragment,{children:a?O:(0,Z.jsxs)(`div`,{className:`relative flex flex-col`,children:[(0,Z.jsxs)(P,{className:`grow`,"data-disabled":!0,children:[(0,Z.jsx)(M,{htmlFor:`current-password`,children:`Password`}),(0,Z.jsx)(U,{id:`current-password`,type:`password`,value:`••••••••••••`,disabled:!0})]}),(0,Z.jsx)(x,{className:`absolute top-0 right-0 h-auto p-0 hover:bg-transparent`,"data-testid":`change-password-button`,size:`sm`,type:`button`,variant:`ghost`,onClick:te,children:`Change`})]})})},Re=({user:e,setUserData:t})=>{let{data:{roles:n}={}}=de(),r=_e(`superEditors`),i=[{hint:`Can write and edit their own posts, but cannot publish them.`,label:`Contributor`,value:`contributor`},{hint:`Can create, edit and publish their own posts, but can’t modify others.`,label:`Author`,value:`author`},{hint:`Can edit and publish any posts, and manage Authors and Contributors.`,label:`Editor`,value:`editor`},{hint:`Trusted user who has full access to all content, settings, and user management.`,label:`Administrator`,value:`administrator`}];if(r&&(i=i.map(e=>e.value===`editor`?{...e,label:`Editor (beta mode)`,value:`super editor`,hint:`Can invite and manage other Authors and Contributors, as well as edit and publish any posts on the site. Can manage members and moderate comments.`}:e)),L(e)){let e={label:`Owner`,value:`owner`};return(0,Z.jsxs)(P,{children:[(0,Z.jsx)(M,{children:`Role`}),(0,Z.jsxs)(ne,{value:e.value,disabled:!0,children:[(0,Z.jsx)(O,{"aria-label":`Role`,children:(0,Z.jsx)(k,{})}),(0,Z.jsx)(D,{children:(0,Z.jsx)(E,{value:e.value,children:e.label})})]}),(0,Z.jsxs)(N,{children:[`This user is the owner of the site.`,` `,(0,Z.jsx)(`a`,{href:`https://ghost.org/help/transfer-publication-ownership/`,rel:`noopener noreferrer`,target:`_blank`,children:`Transfer ownership`}),` `,`first to change their role.`]})]})}let a=e.roles[0].name.toLowerCase(),o=i.find(e=>e.value.toLowerCase()===a)?.label;return(0,Z.jsxs)(P,{children:[(0,Z.jsx)(M,{children:`Role`}),(0,Z.jsxs)(ne,{value:a,onValueChange:r=>{let i=n?.find(e=>e.name.toLowerCase()===r.toLowerCase());i&&t?.({...e,roles:[i]})},children:[(0,Z.jsx)(O,{"aria-label":`Role`,"data-testid":`role-select`,children:(0,Z.jsx)(k,{children:o})}),(0,Z.jsx)(D,{children:i.map(e=>(0,Z.jsx)(E,{value:e.value,children:(0,Z.jsxs)(`span`,{className:`flex flex-col`,children:[(0,Z.jsx)(`span`,{children:e.label}),(0,Z.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:e.hint})]})},e.value))})]})]})},$=c({dataType:`StaffTokenResponseType`,path:`/users/me/token/`}),ze=o({path:()=>`/users/me/token/`,method:`PUT`}),Be=()=>{let{refetch:e}=$({enabled:!1}),t=s(),{confirm:n}=ke(),[r,i]=(0,Q.useState)(``),{mutateAsync:a}=ze();return(0,Q.useEffect)(()=>{(async()=>{let t=await e();t?.data?.apiKey&&i(`${t.data.apiKey.id}:${t.data.apiKey.secret}`)})()},[e]),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(g,{as:`h6`,className:`mb-2 text-base`,weight:`semibold`,children:`Staff access token`}),(0,Z.jsx)(X,{hasLabel:!1,keys:[{id:`staff-access-token`,text:r||``,onRegenerate:()=>{n({title:`Regenerate your Staff Access Token`,prompt:`You can regenerate your Staff Access Token any time, but any scripts or applications using it will need to be updated.`,okLabel:`Regenerate your Staff Access Token`,okVariant:`destructive`,onOk:async e=>{try{let t=await a([]);i(`${t.apiKey.id}:${t.apiKey.secret}`),e?.remove()}catch(e){t(e)}}})}}]})]})},Ve=({errors:e,clearError:t,user:n,setUserData:r})=>{let{currentUser:i,siteData:a}=Y(),o=ge(a);return(0,Z.jsxs)(G,{children:[(0,Z.jsxs)(P,{"data-invalid":!!e?.email||void 0,children:[(0,Z.jsx)(M,{htmlFor:`staff-email`,children:`Email`}),(0,Z.jsx)(U,{"aria-invalid":!!e?.email||void 0,id:`staff-email`,maxLength:191,value:n.email,onChange:e=>r({...n,email:e.target.value}),onKeyDown:()=>t(`email`)}),e?.email?(0,Z.jsx)(A,{children:e.email}):(0,Z.jsx)(N,{children:`Used for notifications`})]}),(0,Z.jsx)(Le,{user:n}),z(i)&&(0,Z.jsx)(Re,{setUserData:r,user:n}),(0,Z.jsxs)(P,{"data-invalid":!!e?.name||void 0,children:[(0,Z.jsx)(M,{htmlFor:`staff-name`,children:`Full name`}),(0,Z.jsx)(U,{"aria-invalid":!!e?.name||void 0,id:`staff-name`,maxLength:191,value:n.name,onChange:e=>r({...n,name:e.target.value}),onKeyDown:()=>t(`name`)}),e?.name?(0,Z.jsx)(A,{children:e.name}):(0,Z.jsx)(N,{children:`Use your real name so people can recognize you`})]}),(0,Z.jsxs)(P,{children:[(0,Z.jsx)(M,{htmlFor:`staff-slug`,children:`Slug`}),(0,Z.jsx)(U,{id:`staff-slug`,maxLength:191,value:n.slug,onChange:e=>r({...n,slug:e.target.value})}),(0,Z.jsxs)(N,{children:[o,`author/`,n.slug]})]}),(0,Z.jsxs)(P,{"data-invalid":!!e?.location||void 0,children:[(0,Z.jsx)(M,{htmlFor:`staff-location`,children:`Location`}),(0,Z.jsx)(U,{"aria-invalid":!!e?.location||void 0,id:`staff-location`,maxLength:65535,value:n.location||``,onChange:e=>r({...n,location:e.target.value}),onKeyDown:()=>t(`location`)}),e?.location?(0,Z.jsx)(A,{children:e.location}):(0,Z.jsx)(N,{children:`Where in the world do you live?`})]}),(0,Z.jsxs)(P,{"data-invalid":!!e?.bio||void 0,children:[(0,Z.jsx)(M,{htmlFor:`staff-bio`,children:`Bio`}),(0,Z.jsx)(F,{"aria-invalid":!!e?.bio||void 0,id:`staff-bio`,maxLength:65535,value:n.bio||``,onChange:e=>{r({...n,bio:e.target.value})},onKeyDown:()=>t(`bio`)}),e?.bio?(0,Z.jsx)(A,{children:e.bio}):(0,Z.jsxs)(N,{children:[`Recommended: `,m(250),` characters. You‘ve used`,` `,(0,Z.jsx)(`span`,{className:`font-bold`,children:m(n.bio?.length||0)})]})]}),n.id===i.id&&(0,Z.jsx)(Be,{})]})},He=e=>(0,Z.jsx)(q,{variant:`plain`,children:(0,Z.jsx)(Ve,{...e})}),Ue=({errors:e,clearError:t,validateField:n,user:r,setUserData:i})=>{let[a,o]=(0,Q.useState)(()=>Object.fromEntries(K.map(e=>{let t=r[e.key];return[e.key,e.toDisplayValue(t)]})));return(0,Z.jsxs)(G,{children:[(0,Z.jsxs)(P,{"data-invalid":!!e?.website||void 0,children:[(0,Z.jsx)(M,{htmlFor:`staff-website`,children:`Website`}),(0,Z.jsx)(U,{"aria-invalid":!!e?.website||void 0,"data-testid":`website-input`,id:`staff-website`,maxLength:2e3,placeholder:`https://example.com`,value:r.website||``,onChange:e=>{i({...r,website:e.target.value})},onKeyDown:()=>t(`website`)}),e?.website&&(0,Z.jsx)(A,{children:e.website})]}),K.map(s=>(0,Z.jsxs)(P,{"data-invalid":!!e?.[s.key]||void 0,children:[(0,Z.jsx)(M,{htmlFor:`staff-${s.key}`,children:s.staffTitle}),(0,Z.jsx)(U,{"aria-invalid":!!e?.[s.key]||void 0,"data-testid":s.testId,id:`staff-${s.key}`,maxLength:2e3,placeholder:s.placeholder,value:a[s.key],onBlur:e=>{if(n(s.key,e.target.value)){let{displayValue:t,storedValue:n}=W(s.key,e.target.value);o(e=>({...e,[s.key]:t})),i({...r,[s.key]:n})}},onChange:e=>{o(t=>({...t,[s.key]:e.target.value}))},onKeyDown:()=>t(s.key)}),e?.[s.key]&&(0,Z.jsx)(A,{children:e[s.key]})]},s.key))]})},We=e=>(0,Z.jsx)(q,{variant:`plain`,children:(0,Z.jsx)(Ue,{...e})}),Ge=e(J(),1),Ke={name:({name:e})=>{let t=``;return e||(t=`Name is required`),e&&e.length>191&&(t=`Name is too long`),t},email:({email:e})=>Ge.default.isEmail(e||``)?``:`Enter a valid email address`,url:({url:e})=>!e||Ge.default.isURL(e,{require_tld:!1})?``:`Enter a valid URL`,bio:({bio:e})=>!e||e.length<=250?``:`Bio is too long`,location:({location:e})=>!e||e.length<=150?``:`Location is too long`,website:({website:e})=>!e||Ge.default.isURL(e)&&e.length<=2e3?``:`Enter a valid URL`,...Object.fromEntries(K.map(e=>[e.key,t=>Ee(e.key,t[e.key])]))},qe=({user:e,onDeletingUserChange:t})=>{let{updateRoute:n}=ie(),r=p(),a=Ae(),o=f(),c=e=>{let t=e.split(`/`).pop()||``;return t===`social-links`||t===`email-notifications`?t:`profile`},{ownerUser:d}=Oe(),{currentUser:m}=Y(),T=s(),{confirm:E,showLimit:D}=ke(),{formState:O,setFormState:k,saveState:ne,handleSave:A,updateForm:j,errors:M,setErrors:N,clearError:P,okProps:F}=u({initialState:e,savingDelay:500,savedDelay:500,onValidate:t=>Object.entries(Ke).reduce((n,[r,i])=>{if(De.includes(r)&&t[r]===e[r])return n;let a=i(t);return a&&(n[r]=a),n},{}),onSave:async t=>{let r=(await V?.(t))?.users?.[0];if(r&&(k(()=>r),r.slug!==e.slug)){let e=c(o.pathname),t=e===`profile`?``:`/${e}`;n({route:`staff/${r.slug}${t}`,replace:!0})}},onSaveError:T}),I=e=>j(()=>e),R=(e,t)=>{let n=Ke[e]?.({[e]:t});return n?(N({...M,[e]:n}),!1):(P(e),!0)},{mutateAsync:de}=xe(),{mutateAsync:V}=se(),{mutateAsync:ge}=ce(),{mutateAsync:U}=oe(),_e=fe(),W=je(),G=(0,Q.useCallback)(()=>{B(m)?n(`staff`):r(`/`)},[m,r,n]),Ee=async e=>{if(e.status===`inactive`&&e.roles[0].name!==`Contributor`)try{await _e?.errorIfWouldGoOverLimit(`staff`)}catch(e){if(e instanceof i){D({formSheet:!0,prompt:e.message||`Your current plan doesn't support more users.`,onOk:()=>n({route:a,isExternal:!0})});return}else throw e}let t=`This user will no longer be able to log in but their posts will be kept.`;e.status===`inactive`&&(t=`This user will be able to log in again and will have the same permissions they had previously.`),E({title:`Are you sure you want to suspend this user?`,prompt:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`strong`,{children:`WARNING:`}),` `,t]}),okLabel:e.status===`inactive`?`Un-suspend`:`Suspend`,okRunningLabel:e.status===`inactive`?`Un-suspending...`:`Suspending...`,okVariant:`destructive`,onOk:async t=>{let n={...e,status:e.status===`inactive`?`active`:`inactive`};try{await V(n),k(()=>n),t?.remove(),l.success(e.status===`inactive`?`User un-suspended`:`User suspended`)}catch(e){T(e)}}})},K=(n,{owner:r})=>{E({title:`Are you sure you want to delete this user?`,prompt:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`p`,{className:`mb-3`,children:[(0,Z.jsx)(`span`,{className:`font-bold`,children:n.name||n.email}),` will be permanently deleted and all their posts will be automatically assigned to`,` `,(0,Z.jsx)(`span`,{className:`font-bold`,children:r.name}),`.`]}),(0,Z.jsxs)(`p`,{children:[`To make these easy to find in the future, each post will be given an internal tag of`,` `,(0,Z.jsxs)(`span`,{className:`font-bold`,children:[`#`,e.slug]})]})]}),okLabel:`Delete user`,okVariant:`destructive`,onOk:async e=>{t(!0);try{await ge(n?.id),e?.remove(),G(),setTimeout(()=>l.success(`User deleted`),100)}catch(e){t(!1),T(e)}}})},q=()=>{E({title:`Transfer Ownership`,prompt:`Are you sure you want to transfer the ownership of this blog? You will not be able to undo this action.`,okLabel:`Yep — I'm sure`,okVariant:`destructive`,onOk:async t=>{try{await U(e.id),t?.remove(),l.success(`Ownership transferred`)}catch(e){T(e)}}})},J=async(e,t)=>{try{let n=Te(await de({file:t}));switch(e){case`cover_image`:j(e=>({...e,cover_image:n}));break;case`profile_image`:j(e=>({...e,profile_image:n}));break}}catch(e){let t=e;t.response.status===415&&(t.message=`Unsupported file type`),T(t)}},X=e=>{switch(e){case`cover_image`:j(e=>({...e,cover_image:``}));break;case`profile_image`:j(e=>({...e,profile_image:``}));break}},Me=z(m)||ue(m)&&ae(e),Pe=L(m)&&le(O)&&O.status!==`inactive`,Fe=O.id!==m.id&&(z(m)&&!L(e)||ue(m)&&ae(e)),Ie=O.status===`inactive`?`Un-suspend user`:`Suspend user`,Le=`h-8 bg-surface-inverse px-3 text-surface-inverse-foreground opacity-80 hover:bg-surface-inverse/90 hover:text-surface-inverse-foreground hover:opacity-100`,Re=O.status===`inactive`?` (Suspended)`:``,$=!B(m),ze=`mx-auto w-full max-w-[536px]`,[Be,Ve]=(0,Q.useState)(c(o.pathname));return(0,Z.jsx)(re,{animate:!$,backDrop:!$,buttonsDisabled:F.disabled,cancelLabel:`Close`,dirty:ne===`unsaved`,footerClassName:$?`mx-auto w-full max-w-[calc(536px+5rem)]`:void 0,hideXOnMobile:!0,okLabel:F.label||`Save`,okVariant:F.variant,size:$?`bleed`:`md`,stickyFooter:!0,testId:`user-detail-modal`,width:$?`full`:600,onClose:G,onOk:async()=>{await A({fakeWhenUnchanged:!0})},children:(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`div`,{className:`relative ${$?`-mx-10 -mt-10`:`-mx-8 -mt-8 rounded-t`}`,children:(0,Z.jsx)(`div`,{className:h(`flex flex-wrap items-end justify-between gap-8 p-8`,O.cover_image&&`bg-cover bg-center`,$&&O.cover_image&&`min-h-[30vmin]`),style:{backgroundImage:O.cover_image?`url(${O.cover_image})`:`none`},children:(0,Z.jsxs)(`div`,{className:h(`flex w-full flex-col gap-2`,$&&ze),children:[(0,Z.jsxs)(`div`,{className:`flex flex-nowrap items-start justify-between gap-3`,children:[(0,Z.jsx)(`div`,{children:(0,Z.jsx)(Ce,{className:`-ml-1 size-20 overflow-visible rounded-full`,children:O.profile_image?(0,Z.jsxs)(ye,{className:`rounded-full`,children:[(0,Z.jsx)(we,{"data-testid":`profile-image-preview`,id:`avatar`,src:O.profile_image}),(0,Z.jsxs)(ve,{className:`top-1 right-1`,children:[W.isEnabled&&(0,Z.jsx)(be,{"aria-label":`Edit profile image`,className:`rounded-full`,onClick:()=>W.openEditor({image:O.profile_image||``,handleSave:async e=>J(`profile_image`,e)}),children:(0,Z.jsx)(y,{})}),(0,Z.jsx)(be,{"aria-label":`Remove profile image`,className:`rounded-full`,onClick:()=>X(`profile_image`),children:(0,Z.jsx)(_,{})})]})]}):(0,Z.jsx)(Se,{className:`rounded-full bg-surface-inverse text-surface-inverse-foreground opacity-80 hover:opacity-100`,inputId:`avatar`,inputTestId:`profile-image-upload`,onDropAccepted:e=>void J(`profile_image`,e[0]),children:(0,Z.jsx)(b,{className:`size-8 text-surface-inverse-foreground`})})})}),(0,Z.jsxs)(`div`,{className:`flex flex-nowrap items-start gap-3`,children:[O.cover_image?(0,Z.jsxs)(`div`,{className:`flex flex-nowrap items-end justify-end gap-4`,children:[(0,Z.jsx)(`img`,{alt:``,className:`hidden`,"data-testid":`cover-image-preview`,src:O.cover_image}),W.isEnabled&&(0,Z.jsx)(x,{className:Le,type:`button`,onClick:()=>W.openEditor({image:O.cover_image||``,handleSave:async e=>J(`cover_image`,e)}),children:`Edit cover image`}),(0,Z.jsx)(x,{className:Le,type:`button`,onClick:()=>X(`cover_image`),children:`Delete cover image`})]}):(0,Z.jsx)(te,{className:`h-8`,inputId:`cover-image`,inputTestId:`cover-image-upload`,variant:`button`,onDropAccepted:e=>void J(`cover_image`,e[0]),children:`Upload cover image`}),Me&&(0,Z.jsx)(`div`,{className:`z-10`,children:(0,Z.jsxs)(he,{children:[(0,Z.jsx)(me,{asChild:!0,children:(0,Z.jsxs)(`button`,{className:h(`flex h-8 cursor-pointer items-center justify-center rounded px-3`,O.cover_image?`bg-[rgba(0,0,0,0.75)] opacity-80 hover:opacity-100`:`border border-gray-300 bg-transparent text-black dark:border-gray-800 dark:text-white`),type:`button`,children:[(0,Z.jsx)(`span`,{className:`sr-only`,children:`Actions`}),(0,Z.jsx)(v,{className:h(`size-5`,O.cover_image&&`text-white`)})]})}),(0,Z.jsxs)(pe,{align:`end`,className:`z-[9999]`,children:[Pe&&(0,Z.jsx)(H,{onSelect:q,children:`Make owner`}),(0,Z.jsx)(H,{onSelect:()=>{n(`history/view/${O.id}`)},children:`View user activity`}),Fe&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(H,{onSelect:()=>{Ee(O)},children:Ie}),(0,Z.jsx)(H,{className:`text-destructive focus:text-destructive`,onSelect:()=>{K(e,{owner:d})},children:`Delete user`})]})]})]})})]})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsxs)(g,{as:`h3`,className:h(`break-words md:text-2xl md:break-normal`,O.cover_image?`text-white`:`text-foreground`),leading:`heading`,size:`xl`,weight:`bold`,children:[e.name,Re]}),(0,Z.jsx)(`span`,{className:h(`text-md font-medium capitalize`,O.cover_image?`text-white`:`text-black dark:text-white`),children:e.roles[0].name.toLowerCase()})]})]})})}),(0,Z.jsx)(`div`,{className:h(`mt-6 flex flex-col`,$&&ze),children:(0,Z.jsxs)(w,{value:Be,variant:`underline`,onValueChange:t=>{let r=t===`profile`?``:`/${t}`;n(`staff/${e.slug}${r}`),Ve(t)},children:[(0,Z.jsxs)(ee,{children:[(0,Z.jsx)(S,{title:`Profile`,value:`profile`,children:`Profile`}),(0,Z.jsx)(S,{title:`Social Links`,value:`social-links`,children:`Social Links`}),(0,Z.jsx)(S,{title:`Email Notifications`,value:`email-notifications`,children:`Email Notifications`})]}),(0,Z.jsx)(C,{className:`pt-4`,value:`profile`,children:(0,Z.jsx)(He,{clearError:P,errors:M,setUserData:I,user:O,validateField:R})}),(0,Z.jsx)(C,{className:`pt-4`,value:`social-links`,children:(0,Z.jsx)(We,{clearError:P,errors:M,setUserData:I,user:O,validateField:R})}),(0,Z.jsx)(C,{className:`pt-4`,value:`email-notifications`,children:(0,Z.jsx)(Ne,{setUserData:I,user:O})})]})})]})})},Je=()=>{let{slug:e}=d(),{currentUser:t}=Y(),{updateRoute:n}=ie(),r=p(),i=s(),[o,c]=(0,Q.useState)(!1),u=t.slug===e,{data:f,error:m}=R(e||``,{enabled:!u&&!!e,defaultErrorHandler:!1}),h=u?t:f?.users?.[0],g=m instanceof a&&m.response?.status===404;(0,Q.useEffect)(()=>{m&&!g&&i(m)},[m,g,i]);let _=!u&&!!e&&!h&&(g||f!==void 0),v=(0,Q.useRef)(void 0);h&&(v.current=h);let y=h||(_?void 0:v.current),b=_?e??null:null,x=(0,Q.useRef)(null);return(0,Q.useEffect)(()=>{!b||o||x.current===b||(x.current=b,l.error(`User not found`),B(t)?n({route:`staff`,replace:!0}):r(`/`))},[b,o,t,r,n]),y?(0,Z.jsx)(qe,{user:y,onDeletingUserChange:c}):null};export{Je as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{n,t as r}from"./jsx-runtime-DX3WBWVO.js";import{u as i}from"./chunk-KS7C4IRE-DCsL4i4D.js";import{_ as a}from"./dist-B3keLvjj.js";import{t as o}from"./button-Dvcv1QSR.js";var s=e(t(),1),c=e(n(),1);function l(e,t,n){let r=Array(e);return new Proxy(r,{get(r,i,a){if(typeof i==`string`){let a=i.charCodeAt(0);if(a>=48&&a<=57){let a=+i;if(Number.isInteger(a)&&a>=0&&a<e){let e=r[a];if(!e){let i=t[a*2];e=r[a]={index:a,key:n(a),start:i,size:t[a*2+1],end:i+t[a*2+1],lane:0}}return e}}if(i===`length`)return e}return Reflect.get(r,i,a)}})}function u(e,t,n){let r=n.initialDeps??[],i,a=!0;function o(){let o=e();return o.length!==r.length||o.some((e,t)=>r[t]!==e)?(r=o,i=t(...o),n?.onChange&&!(a&&n.skipInitialOnChange)&&n.onChange(i),a=!1,i):i}return o.updateDeps=e=>{r=e},o}function d(e,t){if(e===void 0)throw Error(`Unexpected undefined${t?`: ${t}`:``}`);return e}var f=(e,t)=>Math.abs(e-t)<1.01,p=(e,t,n)=>{let r;return function(...i){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,i),n)}},m,h=()=>{if(m!==void 0)return m;if(typeof navigator>`u`)return m=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return m=!0;let e=navigator.maxTouchPoints;return m=navigator.platform===`MacIntel`&&e!==void 0&&e>0},g=e=>{let{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},_=e=>e,v=e=>{let t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1)-t+1,r=Array(n);for(let e=0;e<n;e++)r[e]=t+e;return r},y=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let i=e=>{let{width:n,height:r}=e;t({width:Math.round(n),height:Math.round(r)})};if(i(g(n)),!r.ResizeObserver)return()=>{};let a=new r.ResizeObserver(t=>{let r=()=>{let e=t[0];if(e?.borderBoxSize){let t=e.borderBoxSize[0];if(t){i({width:t.inlineSize,height:t.blockSize});return}}i(g(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()});return a.observe(n,{box:`border-box`}),()=>{a.unobserve(n)}},b={passive:!0},x=typeof window>`u`?!0:`onscrollend`in window,S=(e,t,n)=>{let r=e.scrollElement;if(!r)return;let i=e.targetWindow;if(!i)return;let a=e.options.useScrollendEvent&&x,o=0,s=a?null:p(i,()=>t(o,!1),e.options.isScrollingResetDelay),c=e=>()=>{o=n(r),s?.(),t(o,e)},l=c(!0),u=c(!1);return r.addEventListener(`scroll`,l,b),a&&r.addEventListener(`scrollend`,u,b),()=>{r.removeEventListener(`scroll`,l),a&&r.removeEventListener(`scrollend`,u)}},C=(e,t)=>S(e,t,t=>{let{horizontal:n,isRtl:r}=e.options;return n?t.scrollLeft*(r&&-1||1):t.scrollTop}),w=(e,t,n)=>{if(n.options.useCachedMeasurements){let t=n.indexFromElement(e),r=n.options.getItemKey(t);return n.itemSizeCache.get(r)??n.options.estimateSize(t)}if(t?.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[n.options.horizontal?`inlineSize`:`blockSize`])}if(!t){let t=n.indexFromElement(e),r=n.options.getItemKey(t),i=n.itemSizeCache.get(r);if(i!==void 0)return i}return e[n.options.horizontal?`offsetWidth`:`offsetHeight`]},T=(e,{adjustments:t=0,behavior:n},r)=>{var i,a;(a=(i=r.scrollElement)?.scrollTo)==null||a.call(i,{[r.options.horizontal?`left`:`top`]:e+t,behavior:n})},E=class{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var e;return((e=this.targetWindow?.performance)?.now)?.call(e)??Date.now()},this.observer=(()=>{let e=null,t=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{let t=e.target,n=this.indexFromElement(t);if(!t.isConnected){this.observer.unobserve(t);for(let[e,n]of this.elementsCache)if(n===t){this.elementsCache.delete(e);break}return}this.shouldMeasureDuringScroll(n)&&this.resizeItem(n,this.options.measureElement(t,e,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}));return{disconnect:()=>{var n;(n=t())==null||n.disconnect(),e=null},observe:e=>t()?.observe(e,{box:`border-box`}),unobserve:e=>t()?.unobserve(e)}})(),this.range=null,this.setOptions=e=>{let t={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:_,rangeExtractor:v,onChange:()=>{},measureElement:w,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:`data-index`,initialMeasurementsCache:[],lanes:1,anchorTo:`start`,followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:`estimate`,useCachedMeasurements:!1};for(let n in e){let r=e[n];r!==void 0&&(t[n]=r)}let n=this.options,r=null,i=null,a=!1;if(n!==void 0&&n.enabled&&t.enabled&&t.anchorTo===`end`&&this.scrollElement!==null){let e=n.count,o=t.count,s=this.getMeasurements(),c=e>0?s[0]?.key??n.getItemKey(0):null,l=e>0?s[e-1]?.key??n.getItemKey(e-1):null;if(o!==e||e>0&&o>0&&(t.getItemKey(0)!==c||t.getItemKey(o-1)!==l)){a=!0;let c=e>0?this.getVirtualItemForOffset(this.getScrollOffset())??s[0]:null;c&&(r=[c.key,this.getScrollOffset()-c.start]);let u=t.followOnAppend===!0?`auto`:t.followOnAppend||null;u&&o>e&&this.isAtEnd(n.scrollEndThreshold)&&(e===0||t.getItemKey(o-1)!==l)&&(i=u)}}this.options=t,a&&(this.pendingMin=0,this.itemSizeCacheVersion++);let o=!1,s=0;if(r&&this.scrollOffset!==null){let[e,t]=r,n=this.getMeasurements(),{count:i,getItemKey:a}=this.options,c=0;for(;c<i&&a(c)!==e;)c++;if(c<i){let e=n[c];if(e){let n=Math.max(0,e.start+t);n!==this.scrollOffset&&(s=n-this.scrollOffset,this.scrollOffset=n,o=!0)}}}(o||i)&&(this.pendingScrollAnchor=[o?r[0]:null,o?r[1]:0,i,s])},this.notify=e=>{var t,n;(n=(t=this.options).onChange)==null||n.call(t,this,e)},this.maybeNotify=u(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{let e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}if(this.scrollElement=e,this.scrollElement&&`ownerDocument`in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=this.scrollElement?.window??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{if(t&&this._intendedScrollOffset===null&&e===this.scrollOffset)return;this._intendedScrollOffset!==null&&Math.abs(e-this._intendedScrollOffset)<1.5&&(e=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0;let n=this.getScrollOffset();this.scrollDirection=t?n===e?this.scrollDirection:n<e?`forward`:`backward`:null,this.scrollOffset=e,this.isScrolling=t,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),`addEventListener`in this.scrollElement){let e=this.scrollElement,t=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},n=()=>{this._iosTouching=!1,!(!h()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};e.addEventListener(`touchstart`,t,b),e.addEventListener(`touchend`,n,b),this.unsubs.push(()=>{e.removeEventListener(`touchstart`,t),e.removeEventListener(`touchend`,n),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}let t=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,t&&this.scrollElement&&this.options.enabled){let[e,n,r,i]=t;e!==null&&!r&&(h()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?i!==0&&(this._iosDeferredAdjustment+=i):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),r&&this.scrollToEnd({behavior:r})}},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;let e=this.getScrollOffset(),t=this.getMaxScrollOffset();if(e<0||e>t)return;if(this._iosDeferredAdjustment<0&&e>=t-1){this._iosDeferredAdjustment=0;return}let n=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(e,{adjustments:this.scrollAdjustments+=n,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?`width`:`height`]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset==`function`?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getMeasurementOptions=u(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode,this.options.gap],(e,t,n,r,i,a,o,s)=>(this.prevLanes!==void 0&&this.prevLanes!==a&&(this.lanesChangedFlag=!0),this.prevLanes=a,this.pendingMin=null,{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o,gap:s}),{key:!1}),this.getMeasurements=u(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o,gap:s},c)=>{let u=this.itemSizeCache;if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(let t of this.laneAssignments.keys())t>=e&&this.laneAssignments.delete(t);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let d=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1),a===1){let i=e*2,a=this._flatMeasurements;if(!a||a.length<i){let e=new Float64Array(i);a&&d>0&&e.set(a.subarray(0,d*2)),a=e,this._flatMeasurements=a}let o;if(d===0)o=t+n;else{let e=d-1;o=a[e*2]+a[e*2+1]+s}for(let t=d;t<e;t++){let e=r(t),n=u.get(e),i=typeof n==`number`?n:this.options.estimateSize(t);a[t*2]=o,a[t*2+1]=i,o+=i+s}let c=l(e,a,r);return this.measurementsCache=c,c}let f=this.measurementsCache.slice(0,d),p=Array(a).fill(void 0),m=new Float64Array(a),h=0;for(let e=0;e<d;e++){let t=f[e];t&&(p[t.lane]===void 0&&h++,p[t.lane]=e,m[t.lane]=t.end)}for(let i=d;i<e;i++){let e=r(i),c=this.laneAssignments.get(i),l,d,g=o===`estimate`||u.has(e);if(c!==void 0&&this.options.lanes>1){l=c;let e=p[l],r=e===void 0?void 0:f[e];d=r?r.end+s:t+n}else if(h===a){let e=0,t=m[0],n=p[0];for(let r=1;r<a;r++){let i=m[r];(i<t||i===t&&p[r]<n)&&(e=r,t=i,n=p[r])}l=e,d=t+s,g&&this.laneAssignments.set(i,l)}else l=i%this.options.lanes,d=t+n,g&&this.laneAssignments.set(i,l);let _=u.get(e),v=typeof _==`number`?_:this.options.estimateSize(i),y=d+v;f[i]={index:i,start:d,size:v,end:y,key:e,lane:l},p[l]===void 0&&h++,p[l]=i,m[l]=y}return this.measurementsCache=f,f},{key:!1,debug:()=>this.options.debug}),this.calculateRange=u(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,r)=>e.length===0||t===0?(this.range=null,null):(this.range=k(e,t,n,r,r===1&&this._flatMeasurements!=null?this._flatMeasurements:null),this.range),{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=u(()=>{let e=null,t=null,n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,r,i)=>r===null||i===null?[]:e({startIndex:r,endIndex:i,overscan:t,count:n}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{if(!this.scrollState||this.scrollState.behavior!==`smooth`)return!0;let t=this.scrollState.index??this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)?.index;if(t!==void 0&&this.range){let n=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),r=Math.max(0,t-n),i=Math.min(this.options.count-1,t+n);return e>=r&&e<=i}return!0},this.measureElement=e=>{if(!e){this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});return}let t=this.indexFromElement(e),n=this.options.getItemKey(t),r=this.elementsCache.get(n);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(n,e)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(t)&&this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{if(e<0||e>=this.options.count)return;let n,r,i,a=this._flatMeasurements;if(this.options.lanes===1&&a!==null)i=this.options.getItemKey(e),r=a[e*2],n=a[e*2+1];else{let t=this.measurementsCache[e];if(!t)return;i=t.key,r=t.start,n=t.size}let o=this.itemSizeCache.get(i)??n,s=t-o;if(s!==0){let a=this.options.anchorTo===`end`&&this.scrollState?.behavior!==`smooth`&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,c=a?this.getTotalSize():0,l=this.getScrollOffset()+this.scrollAdjustments,u=this.itemSizeCache.has(i)?r+o<=l&&this.scrollDirection!==`backward`:r<l,d=this.scrollState?.behavior!==`smooth`&&(this.shouldAdjustScrollPositionOnItemSizeChange===void 0?u:this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[e]??{index:e,key:i,start:r,size:n,end:r+n,lane:0},s,this));(this.pendingMin===null||e<this.pendingMin)&&(this.pendingMin=e),this.itemSizeCache.set(i,t),this.itemSizeCacheVersion++;let f=!1;a?f=this.applyScrollAdjustment(this.getTotalSize()-c):d&&(f=this.applyScrollAdjustment(s)),this.notify(f)}},this.getVirtualItems=u(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let n=[];for(let r=0,i=e.length;r<i;r++){let i=t[e[r]];n.push(i)}return n},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(t.length===0)return;let n=this._flatMeasurements,r=this.options.lanes===1&&n!=null;return d(t[D(0,t.length-1,r?e=>n[e*2]:e=>d(t[e]).start,e)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if(`scrollHeight`in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{let e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(e=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=e,this.getOffsetForAlignment=(e,t,n=0)=>{if(!this.scrollElement)return 0;let r=this.getSize(),i=this.getScrollOffset();t===`auto`&&(t=e>=i+r?`end`:`start`),t===`center`?e+=(n-r)/2:t===`end`&&(e-=r);let a=this.getMaxScrollOffset();return Math.max(Math.min(a,e),0)},this.getOffsetForIndex=(e,t=`auto`)=>{e=Math.max(0,Math.min(e,this.options.count-1));let n=this.getSize(),r=this.getScrollOffset(),i=this.measurementsCache[e];if(!i)return;if(t===`auto`)if(i.end>=r+n-this.options.scrollPaddingEnd)t=`end`;else if(i.start<=r+this.options.scrollPaddingStart)t=`start`;else return[r,t];if(t===`end`&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];let a=t===`end`?i.end+this.options.scrollPaddingEnd:i.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,t,i.size),t]},this.scrollToOffset=(e,{align:t=`start`,behavior:n=`auto`}={})=>{this._iosDeferredAdjustment=0;let r=this.getOffsetForAlignment(e,t),i=this.now();this.scrollState={index:null,align:t,behavior:n,startedAt:i,lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:t=`auto`,behavior:n=`auto`}={})=>{this._iosDeferredAdjustment=0,e=Math.max(0,Math.min(e,this.options.count-1));let r=this.getOffsetForIndex(e,t);if(!r)return;let[i,a]=r,o=this.now();this.scrollState={index:e,align:a,behavior:n,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:t=`auto`}={})=>{let n=this.getScrollOffset()+e,r=this.now();this.scrollState={index:null,align:`start`,behavior:t,startedAt:r,lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:e=`auto`}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:`end`,behavior:e});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:e})},this.getTotalSize=()=>{let e=this.getMeasurements(),t;if(e.length===0)t=this.options.paddingStart;else if(this.options.lanes===1){let n=e.length-1,r=this._flatMeasurements;t=r==null?e[n]?.end??0:r[n*2]+r[n*2+1]}else{let n=Array(this.options.lanes).fill(null),r=e.length-1;for(;r>=0&&n.some(e=>e===null);){let t=e[r];n[t.lane]===null&&(n[t.lane]=t.end),r--}t=Math.max(...n.filter(e=>e!==null))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{let e=[];if(this.itemSizeCache.size===0)return e;let t=this.getMeasurements();for(let n of t)n&&this.itemSizeCache.has(n.key)&&e.push({index:n.index,key:n.key,start:n.start,size:n.size,end:n.end,lane:n.lane});return e},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this._intendedScrollOffset=e+(t??0),this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(e)}applyScrollAdjustment(e,t){return e===0?!1:h()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?(this._iosDeferredAdjustment+=e,!1):(this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=e,behavior:t}),this.scrollOffset!==null&&(this.scrollOffset+=this.scrollAdjustments,this.scrollOffset<0&&(this.scrollOffset=0),this.scrollAdjustments=0),!0)}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId??=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()})}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}let e=this.scrollState.index==null?void 0:this.getOffsetForIndex(this.scrollState.index,this.scrollState.align),t=e?e[0]:this.scrollState.lastTargetOffset,n=t!==this.scrollState.lastTargetOffset;if(!n&&f(t,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1){this.getScrollOffset()!==t&&this._scrollToOffset(t,{adjustments:void 0,behavior:`auto`}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,n){let e=this.getSize()||600,n=Math.abs(t-this.getScrollOffset()),r=this.scrollState.behavior===`smooth`&&n>e;this.scrollState.lastTargetOffset=t,r||(this.scrollState.behavior=`auto`),this._scrollToOffset(t,{adjustments:void 0,behavior:r?`smooth`:`auto`})}this.scheduleScrollReconcile()}},D=(e,t,n,r)=>{for(;e<=t;){let i=(e+t)/2|0,a=n(i);if(a<r)e=i+1;else if(a>r)t=i-1;else return i}return e>0?e-1:0};function O(e,t,n){let r=0;for(;r<=t;){let i=(r+t)/2|0,a=e[i*2];if(a<n)r=i+1;else if(a>n)t=i-1;else return i}return r>0?r-1:0}function k(e,t,n,r,i){let a=e.length-1;if(e.length<=r)return{startIndex:0,endIndex:a};if(r===1&&i!==null){let e=O(i,a,n),r=e,o=n+t;for(;r<a&&i[r*2]+i[r*2+1]<o;)r++;return{startIndex:e,endIndex:r}}let o=D(0,a,t=>e[t].start,n),s=o;if(r===1)for(;s<a&&e[s].end<n+t;)s++;else if(r>1){let i=Array(r).fill(0);for(;s<a&&i.some(e=>e<n+t);){let t=e[s];i[t.lane]=t.end,s++}let c=Array(r).fill(n+t);for(;o>=0&&c.some(e=>e>=n);){let t=e[o];c[t.lane]=t.start,o--}o=Math.max(0,o-o%r),s=Math.min(a,s+(r-1-s%r))}return{startIndex:o,endIndex:s}}var A=typeof document<`u`?s.useLayoutEffect:s.useEffect;function j({useFlushSync:e=!0,directDomUpdates:t=!1,directDomUpdatesMode:n=`transform`,...r}){let i=s.useReducer(e=>e+1,0)[1],a=s.useRef({enabled:t,mode:n,container:null,lastSize:null,lastPositions:new WeakMap,prevRange:null});a.current.enabled=t,a.current.mode=n;let o=e=>{let t=a.current;if(!t.enabled||!t.container)return;let n=e.getTotalSize();if(n!==t.lastSize){t.lastSize=n;let r=e.options.horizontal?`width`:`height`;t.container.style[r]=`${n}px`}},l=e=>{let t=a.current;if(!t.enabled||!t.container)return;o(e);let n=!!e.options.horizontal,r=t.mode===`transform`,i=n?`left`:`top`,s=e.options.scrollMargin,c=e.getVirtualItems();for(let a of c){let o=a.start-s,c=e.elementsCache.get(a.key);c&&t.lastPositions.get(c)!==o&&(t.lastPositions.set(c,o),r?c.style.transform=n?`translate3d(${o}px, 0, 0)`:`translate3d(0, ${o}px, 0)`:c.style[i]=`${o}px`)}},u={...r,onChange:(t,n)=>{var o;let s=a.current,u=!0;if(s.enabled){l(t);let e=t.range,n=s.prevRange;u=!n||n.isScrolling!==t.isScrolling||n.startIndex!==e?.startIndex||n.endIndex!==e?.endIndex,u&&(s.prevRange=e?{startIndex:e.startIndex,endIndex:e.endIndex,isScrolling:t.isScrolling}:null)}u&&(e&&n?(0,c.flushSync)(i):i()),(o=r.onChange)==null||o.call(r,t,n)}},[d]=s.useState(()=>{let e=new E(u);return Object.assign(e,{containerRef:t=>{let n=a.current;if(n.container=t,n.lastSize=null,t&&n.enabled){let r=e.getTotalSize();n.lastSize=r;let i=e.options.horizontal?`width`:`height`;t.style[i]=`${r}px`}}})});return d.setOptions(u),A(()=>d._didMount(),[]),A(()=>(o(d),d._willUpdate())),A(()=>{l(d)}),d}function M(e){return j({observeElementRect:y,observeElementOffset:C,scrollToFn:T,...e})}function N({items:e,totalItems:t,parentRef:n,hasNextPage:r,isFetchingNextPage:i,fetchNextPage:o,estimateSize:c=()=>100,overscan:l=5,getScrollElement:u=a}){let d=M({count:t,getScrollElement:()=>u(n.current),estimateSize:c,overscan:l}),f=d.getVirtualItems(),p=f.length>0?(f.at(0)?.start??0)-d.options.scrollMargin:0,m=f.length>0?d.getTotalSize()-(f.at(-1)?.end??0):0,h=f.map(t=>({virtualItem:t,key:t.key,item:e[t.index],props:{ref:d.measureElement,"data-index":t.index}})),g=h.at(-1)&&!h.at(-1)?.item;return(0,s.useEffect)(()=>{r&&g&&!i&&o()},[r,g,i,o]),{visibleItems:h,virtualizer:d,spaceBefore:p,spaceAfter:m}}var P=1e3,F=`ghostVirtualListWindow`;function I({totalItems:e,unlockedItemCount:t}){let n=Math.min(e,t);return{visibleItemCount:n,canLoadMore:e>n}}function L(e,t){return e+t}function R(e,t){return`${e}::${t}`}function z(e,t,n){let r=e?.[F];if(!r||typeof r!=`object`)return n;let i=r[t];return typeof i!=`number`||!Number.isFinite(i)?n:Math.max(1,Math.floor(i))}function B(e,t,n){if(typeof window>`u`)return;let r=e?.[F],i={...e??{},[F]:{...r&&typeof r==`object`?r:{},[t]:n}};window.history.replaceState(i,``)}function V(){if(!(typeof window>`u`))return window.history.state}function H(e,{resetKey:t,windowSize:n=P}={}){let{key:r,pathname:a,search:o}=i(),c=R(a,t??o),[l,u]=(0,s.useState)(()=>z(V(),c,n)),d=(0,s.useRef)(c);(0,s.useEffect)(()=>{if(d.current!==c){d.current=c,u(z(V(),c,n));return}B(V(),c,l)},[c,r,l,n]);let{visibleItemCount:f,canLoadMore:p}=I({totalItems:e,unlockedItemCount:l});return{visibleItemCount:f,canLoadMore:p,loadMore:()=>u(e=>L(e,n))}}var U=new Map,W=`ghostVirtualListScrollPosition`,G=150,K=500;function q(){if(!(typeof window>`u`))return window.history.state}function J(e){let t=e?.key;if(typeof t==`string`||typeof t==`number`)return String(t);let n=e?.idx;if(typeof n==`number`)return String(n)}function Y(e,t){let n=J(e);if(n)return`${n}::${t}`}function X(e,t){let n=e?.[W];if(!n||typeof n!=`object`)return;let r=n[t];if(typeof r==`number`)return r}function Z(e,t,n){if(typeof window>`u`)return;let r=e?.[W],i={...e??{},[W]:{...r&&typeof r==`object`?r:{},[t]:n}};window.history.replaceState(i,``)}function Q({parentRef:e,enabled:t=!0,isLoading:n=!1,getScrollElement:r=a}){let o=i(),[c,l]=(0,s.useState)(null),u=(0,s.useRef)(null),d=(0,s.useRef)(0),f=(0,s.useRef)(0),p=(0,s.useRef)(0),m=(0,s.useRef)(null),h=(0,s.useRef)(new Set),g=o.pathname+o.search;(0,s.useEffect)(()=>{if(!t||!e.current)return;let n=r(e.current);l(n)},[t,e,r]),(0,s.useEffect)(()=>{if(!t||!c)return;let e=q(),n=J(e),r=Y(e,g),i=()=>{m.current!==null&&(window.clearTimeout(m.current),m.current=null)},a=e=>{r&&U.set(r,e);let t=q();J(t)===n&&Z(t,g,e),f.current=Date.now(),p.current=e},o=({persistToHistory:e=!0}={})=>{if(i(),!e){let e=d.current;r&&U.set(r,e),f.current=Date.now(),p.current=e;return}a(d.current)},s=()=>{let e=Date.now();if(Math.abs(d.current-p.current)>=K||e-f.current>=G){i(),a(d.current);return}m.current===null&&(m.current=window.setTimeout(()=>{m.current=null,a(d.current)},G))},l=()=>{d.current=c.scrollTop,s()},u=()=>{o()};return d.current=c.scrollTop,c.addEventListener(`scroll`,l),window.addEventListener(`pagehide`,u),()=>{o({persistToHistory:!1}),c.removeEventListener(`scroll`,l),window.removeEventListener(`pagehide`,u)}},[t,g,c]),(0,s.useEffect)(()=>{let e=q(),r=Y(e,g),i=(r?U.get(r):void 0)??X(e,g);if(!(!t||!c||n)){if(i!==void 0&&u.current!==g){u.current=g;let e=0,t=()=>{for(let e of h.current)window.clearTimeout(e);h.current.clear()},n=(e,t)=>{let n=window.setTimeout(()=>{h.current.delete(n),e()},t);h.current.add(n)},r=()=>{if(e+=1,!c)return;let t=c.scrollTop,a=c.scrollHeight-c.clientHeight;if(i>a&&e<20){n(r,100);return}Math.abs(i-t)>5&&(c.scrollTop=Math.min(i,a))};return n(r,150),()=>t()}u.current=g}},[t,g,c,n])}var $=r(),ee=({isLoading:e,onClick:t,label:n=`Load more`,loadingLabel:r=`Loading more...`,className:i=`flex justify-center px-4 py-6`})=>{let a=!!e;return(0,$.jsx)(`div`,{className:i,children:(0,$.jsx)(o,{disabled:a,variant:`outline`,onClick:t,children:a?r:n})})};export{N as i,Q as n,H as r,ee as t};
|