ghost 6.54.1 → 6.56.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/tryghost-adapter-base-scheduling-0.2.0.tgz +0 -0
- package/components/tryghost-custom-field-types-0.0.0.tgz +0 -0
- package/components/tryghost-kg-default-nodes-2.1.4.tgz +0 -0
- package/components/tryghost-kg-default-transforms-1.3.3.tgz +0 -0
- package/components/tryghost-kg-html-to-lexical-1.3.3.tgz +0 -0
- package/components/tryghost-kg-lexical-html-renderer-1.4.3.tgz +0 -0
- package/components/tryghost-nql-string-0.0.0.tgz +0 -0
- package/core/boot.js +3 -6
- package/core/built/admin/assets/{Combination-CJG7Flp-.js → Combination-BCm9FL4o.js} +1 -1
- package/core/built/admin/assets/{PolarAngleAxis-BGjf7sBu.js → PolarAngleAxis-C4qtHy1B.js} +1 -1
- package/core/built/admin/assets/{RadialBarChart-zeFf9mBz.js → RadialBarChart-Bh09Stsj.js} +1 -1
- package/core/built/admin/assets/{account-migration-BklF2I_I.js → account-migration-D3O_yVck.js} +1 -1
- package/core/built/admin/assets/activitypub/{account-migration-CNovr6W-.js → account-migration-D8FbP-Z-.js} +7 -7
- package/core/built/admin/assets/activitypub/activitypub.js +6 -6
- package/core/built/admin/assets/activitypub/{avatar-B3DEDB1l.js → avatar-11EA1VSs.js} +2 -2
- package/core/built/admin/assets/activitypub/{avatar-flipboard-Cqrg0XMx.js → avatar-flipboard-jfbLG-xe.js} +2 -2
- package/core/built/admin/assets/activitypub/{bluesky-sharing-Ceslb1_M.js → bluesky-sharing-f1jTQe2P.js} +16 -16
- package/core/built/admin/assets/activitypub/{content-formatters-BpQARh28.js → content-formatters-nmTOPY9M.js} +3 -3
- package/core/built/admin/assets/activitypub/{copy-D9UWIAan.js → copy-BCwo9ep3.js} +2 -2
- package/core/built/admin/assets/activitypub/{dist-DHAjBcV3.js → dist-BEfX-0aW.js} +12 -12
- package/core/built/admin/assets/activitypub/{domain-C1qQvJ8C.js → domain-AaDlZlrA.js} +9 -9
- package/core/built/admin/assets/activitypub/{edit-profile-BcH-jEfM.js → edit-profile-DPi8Tl5M.js} +945 -945
- package/core/built/admin/assets/activitypub/{explore-AxwBh9dI.js → explore-CxTzjILQ.js} +8 -8
- package/core/built/admin/assets/activitypub/{feed-BaOlbh7a.js → feed-DPv5x2MX.js} +33 -33
- package/core/built/admin/assets/activitypub/{field-B7mYYQpN.js → field-DbgA8lat.js} +3 -3
- package/core/built/admin/assets/activitypub/{hash-BC9Q0N4c.js → hash-BWuZoYkA.js} +2 -2
- package/core/built/admin/assets/activitypub/{inbox-DQ4ZnC1m.js → inbox-35VDQ2K2.js} +2 -2
- package/core/built/admin/assets/activitypub/{inbox-vXez-5uJ.js → inbox-DSrF_i1O.js} +85 -85
- package/core/built/admin/assets/activitypub/{label-Chv5T8bw.js → label-CPjFBbo7.js} +3 -3
- package/core/built/admin/assets/activitypub/layout-CTgrezN7.js +1 -0
- package/core/built/admin/assets/activitypub/{moderation-DtSM2i1I.js → moderation-BkDC1XVZ.js} +11 -11
- package/core/built/admin/assets/activitypub/{note-Dckp4S-2.js → note-xEyH4xT-.js} +7 -7
- package/core/built/admin/assets/activitypub/{notifications-CG5T22vg.js → notifications-DClaL3ui.js} +9 -9
- package/core/built/admin/assets/activitypub/{preferences-D_799jdl.js → preferences-DpnOa-4Z.js} +20 -20
- package/core/built/admin/assets/activitypub/{profile-D2JfXBQl.js → profile-Dvi9mz-6.js} +237 -237
- package/core/built/admin/assets/activitypub/{reply-CpdMeAO5.js → reply-Cs9ySd6Z.js} +2 -2
- package/core/built/admin/assets/activitypub/{routes-CCHe2dQp.js → routes-DFBeTnfn.js} +1139 -1150
- package/core/built/admin/assets/activitypub/{separator-BI1FLsYM.js → separator-C5u_VjzY.js} +3 -3
- package/core/built/admin/assets/activitypub/{settings-kx-9Enkz.js → settings-CV2fFu6D.js} +13 -13
- package/core/built/admin/assets/activitypub/{site-x4_IjVJ0.js → site-_TgDd_EM.js} +81 -81
- package/core/built/admin/assets/activitypub/{step-1-DIDg4aHb.js → step-1-BfnNL2oF.js} +5 -5
- package/core/built/admin/assets/activitypub/{step-2-BfGe8BYt.js → step-2-DLndZkO-.js} +6 -6
- package/core/built/admin/assets/activitypub/{step-3-mE9spAqw.js → step-3-A-PZTtRE.js} +10 -10
- package/core/built/admin/assets/activitypub/{tabs-CyPRQQ1N.js → tabs-BUbz7tea.js} +321 -319
- package/core/built/admin/assets/activitypub/{topic-filter-DLHBZT93.js → topic-filter-BdX_xYYT.js} +3 -3
- package/core/built/admin/assets/activitypub/{use-activity-pub-queries-VzbN99u_.js → use-activity-pub-queries-EwuRemHh.js} +2 -2
- package/core/built/admin/assets/activitypub/{use-navigate-with-base-path-CAwXTmqH.js → use-navigate-with-base-path-cy4ACBc4.js} +92 -90
- package/core/built/admin/assets/activitypub/{use-reply-chain-data-BAB6fNGt.js → use-reply-chain-data-CyFcGfan.js} +5 -5
- package/core/built/admin/assets/activitypub/{x-C8tAnXly.js → x-7zk8mV2p.js} +2 -2
- package/core/built/admin/assets/audience-CkBb2LlO.js +1 -0
- package/core/built/admin/assets/{automated-emails-of1MvVsv.js → automated-emails-6t2bIRWf.js} +2 -2
- package/core/built/admin/assets/{automations-B7-y3dXt.js → automations-DhKeS_U5.js} +1 -1
- package/core/built/admin/assets/{automations-DRFjW5fw.js → automations-cMllU545.js} +1 -1
- package/core/built/admin/assets/{bluesky-sharing-BbbjWdzs.js → bluesky-sharing-DPGpyD-G.js} +1 -1
- package/core/built/admin/assets/{box-BWbhXh21.js → box-By_EgGtm.js} +1 -1
- package/core/built/admin/assets/{breadcrumb-B-M9Ip_2.js → breadcrumb-DIfcF5ow.js} +1 -1
- package/core/built/admin/assets/build-CsiH26uS.js +1 -0
- package/core/built/admin/assets/{card-DGoDJzrn.js → card-aUHX0hyR.js} +1 -1
- package/core/built/admin/assets/{chart-BuRT2Y6p.js → chart-BnXyfH11.js} +1 -1
- package/core/built/admin/assets/{chart-helpers-xiSsW8r0.js → chart-helpers-DV0FkdcD.js} +1 -1
- package/core/built/admin/assets/{checkbox-EhJKHFdZ.js → checkbox-BIl077a0.js} +1 -1
- package/core/built/admin/assets/{chunk.361.3cdb584b973959e52ccc.js → chunk.332.05991a101d67f732dec3.js} +16 -12
- package/core/built/admin/assets/chunk.524.87b52f4fada529df2c4c.js +25 -0
- package/core/built/admin/assets/chunk.582.340bcca873e806cbd4bb.js +27 -0
- package/core/built/admin/assets/{code-editor-view-CZtJFGhR.js → code-editor-view-C0aWNwdl.js} +1 -1
- package/core/built/admin/assets/comments-qwhIjH3c.js +1 -0
- package/core/built/admin/assets/{container-BYz2Ed39.js → container-LiZf3XdY.js} +1 -1
- package/core/built/admin/assets/{data-list-16rkJYYi.js → data-list-CupF7bjM.js} +1 -1
- package/core/built/admin/assets/{date-range-select-CTlyo8zW.js → date-range-select-dXc-GsVe.js} +1 -1
- package/core/built/admin/assets/{disabled-sources-indicator-qs2GfLvl.js → disabled-sources-indicator-DYAXW-6V.js} +1 -1
- package/core/built/admin/assets/dist-BUKmD51u.js +1 -0
- package/core/built/admin/assets/{dist-2Tnz2Yfq.js → dist-CNlMj7ML.js} +1 -1
- package/core/built/admin/assets/{dist-DGzPJ_bO.js → dist-Cb5RSHSg.js} +1 -1
- package/core/built/admin/assets/{dist-P_ohUlTi.js → dist-CqO2lWS0.js} +1 -1
- package/core/built/admin/assets/{domain-CPNXKVOV.js → domain-B5ogXUBa.js} +1 -1
- package/core/built/admin/assets/{dropzone-BmCXnw6J.js → dropzone-BnFG7dDP.js} +1 -1
- package/core/built/admin/assets/{edit-profile-SGrJve5M.js → edit-profile-B07jCZy9.js} +1 -1
- package/core/built/admin/assets/editor-DDYSOXGN.js +8 -0
- package/core/built/admin/assets/{empty-indicator-oX1u1Pkn.js → empty-indicator-WB1WgT9h.js} +1 -1
- package/core/built/admin/assets/{explore-CUYLv9G9.js → explore-Ca1y8HW_.js} +1 -1
- package/core/built/admin/assets/{feed-CPdJMttL.js → feed-x4iFMBP4.js} +1 -1
- package/core/built/admin/assets/field-ChCAabZg.js +1 -0
- package/core/built/admin/assets/filter-sources-LdtH1e-T.js +1 -0
- package/core/built/admin/assets/{filters-bXkkWro8.js → filters-CLehPo_D.js} +1 -1
- package/core/built/admin/assets/filters-CjVKRP8U.js +1 -0
- package/core/built/admin/assets/{ghost-05f9a7182ed56903dba05878a5b8422b.js → ghost-7f01131115186d1af84ead76e79646dd.js} +275 -255
- package/core/built/admin/assets/{ghost-3063eae29e6c9cc6d6e7131928a27da0.css → ghost-d38c30b866e59f2e06a357b5eb844fe5.css} +1 -1
- package/core/built/admin/assets/{ghost-dark-c8d0ab7f515b2010c173e23e9b32ea8a.css → ghost-dark-1bffd5099ba7a749303133efacf8480b.css} +1 -1
- package/core/built/admin/assets/gift-link-modal-Buqh2vXh.js +1 -0
- package/core/built/admin/assets/{gift-links-nBxJjZiQ.js → gift-links-CsUhefWG.js} +1 -1
- package/core/built/admin/assets/growth-DajOBdN0.js +1 -0
- package/core/built/admin/assets/growth-Dy2UOSay.js +3 -0
- package/core/built/admin/assets/{hooks-BApwwBE0.js → hooks-CixO01lL.js} +1 -1
- package/core/built/admin/assets/{inbox-Xx1CdnfO.js → inbox-BUOLDoji.js} +13 -13
- package/core/built/admin/assets/index-08n05-rc.js +67 -0
- package/core/built/admin/assets/index-DgUzgFvS.css +1 -0
- package/core/built/admin/assets/{inline-EMAm3okk.js → inline-Cw-gigDW.js} +1 -1
- package/core/built/admin/assets/input-group-uSK3XT7b.js +1 -0
- package/core/built/admin/assets/{input-surface-BpAjZXY5.js → input-surface-BdOe4KzO.js} +1 -1
- package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +9132 -9087
- package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +121 -121
- package/core/built/admin/assets/koenig-lexical/style.css +1 -1
- package/core/built/admin/assets/{koenig-lexical-B61IALf5.js → koenig-lexical-BFc4yFed.js} +82 -82
- package/core/built/admin/assets/{kpi-card-DCdlyaSS.js → kpi-card-BN-E6WYX.js} +1 -1
- package/core/built/admin/assets/{kpi-card-BlZaG1Lo.js → kpi-card-CCt-qeWD.js} +1 -1
- package/core/built/admin/assets/{kpi-helpers-DpAuS1Nb.js → kpi-helpers-DlxTbTs4.js} +1 -1
- package/core/built/admin/assets/{kpi-tabs-Dme44bQS.js → kpi-tabs-BlcUttpn.js} +1 -1
- package/core/built/admin/assets/{label-dSs5aepE.js → label-AVrxwmsz.js} +1 -1
- package/core/built/admin/assets/label-picker-DVnpu_IF.js +1 -0
- package/core/built/admin/assets/labels-DAIqKed7.js +1 -0
- package/core/built/admin/assets/layout-B0YLh7R9.js +1 -0
- package/core/built/admin/assets/link-helpers-D9LsDOkG.js +1 -0
- package/core/built/admin/assets/{list-page-B6ANtzkd.js → list-page-CdsnQR9N.js} +1 -1
- package/core/built/admin/assets/member-custom-fields-C8NpZYza.js +1 -0
- package/core/built/admin/assets/member-detail-CIVAdKXf.js +1 -0
- package/core/built/admin/assets/members-oLPiSkXD.js +10 -0
- package/core/built/admin/assets/modals-CB7v-k3T.js +31 -0
- package/core/built/admin/assets/moderation-CQ3urTFE.js +1 -0
- package/core/built/admin/assets/newsletter-rbeDX9Wk.js +1 -0
- package/core/built/admin/assets/{newsletters-D1jbtV-h.js → newsletters-BXJbJgA-.js} +1 -1
- package/core/built/admin/assets/newsletters-vt3Ni1Ov.js +1 -0
- package/core/built/admin/assets/note-Dk877BTv.js +1 -0
- package/core/built/admin/assets/notifications-CPlLjPxO.js +1 -0
- package/core/built/admin/assets/{offers-CrY6nSRR.js → offers-DEniVRD5.js} +1 -1
- package/core/built/admin/assets/onboarding-route-DdStOtjy.js +1 -0
- package/core/built/admin/assets/overview--4V-kx9c.js +1 -0
- package/core/built/admin/assets/overview-DSLv30oz.js +1 -0
- package/core/built/admin/assets/{page-header-op0eN36I.js → page-header-pp4dWmOS.js} +1 -1
- package/core/built/admin/assets/{pages-BbNWFcGj.js → pages-B4goRPUn.js} +1 -1
- package/core/built/admin/assets/{post-analytics-WwRDEnrV.js → post-analytics-BMJrI81R.js} +1 -1
- package/core/built/admin/assets/post-analytics-header-pU2m9ZuV.js +1 -0
- package/core/built/admin/assets/post-analytics-provider-Btml5vJI.js +1 -0
- package/core/built/admin/assets/{post-share-modal-Dx-MEjhI.js → post-share-modal-AcUZkbfL.js} +1 -1
- package/core/built/admin/assets/{posts-EWpZIjkr.js → posts-DhXE7b6r.js} +1 -1
- package/core/built/admin/assets/preferences-Ru4CRPHC.js +5 -0
- package/core/built/admin/assets/profile-BNb1oj7D.js +1 -0
- package/core/built/admin/assets/{referrers-BCfFYSHc.js → referrers-pmJT4k3-.js} +1 -1
- package/core/built/admin/assets/{router-provider-C1R4AZ2o.js → router-provider-BmEZf6c6.js} +1 -1
- package/core/built/admin/assets/select-B0HteHrp.js +1 -0
- package/core/built/admin/assets/settings-B1C9Q3wo.js +4 -0
- package/core/built/admin/assets/{settings-H6HxFgfI.js → settings-BGgk7oCI.js} +1 -1
- package/core/built/admin/assets/{shade-app-B3heOAfz-CGXQwWeO.js → shade-app-B3heOAfz-BhQXxNkT.js} +1 -1
- package/core/built/admin/assets/{share-modal-BJCadJyp.js → share-modal-BeuydaBf.js} +1 -1
- package/core/built/admin/assets/social-urls-DA2lXrhW.js +8 -0
- package/core/built/admin/assets/{sort-button-DyYlfYp7.js → sort-button-Df4t2AL8.js} +1 -1
- package/core/built/admin/assets/{source-icon-_ubRDbg_.js → source-icon-ajoaKb41.js} +1 -1
- package/core/built/admin/assets/{stack-xiN0eQ6Z.js → stack-CIfOAAVf.js} +1 -1
- package/core/built/admin/assets/{stats-BQZMGMvn.js → stats-C_lfxZAw.js} +1 -1
- package/core/built/admin/assets/{stats-view-Doei-qCX.js → stats-view-Cxot1iD8.js} +1 -1
- package/core/built/admin/assets/{step-1-IKiLBPoC.js → step-1-ogAA4lDr.js} +1 -1
- package/core/built/admin/assets/{step-2-jJ41PsDN.js → step-2-C5Xini-7.js} +1 -1
- package/core/built/admin/assets/{step-3-CaqFAEqf.js → step-3-CZv1FV81.js} +2 -2
- package/core/built/admin/assets/{switch-t-WyENU2.js → switch-CyQcwMAv.js} +1 -1
- package/core/built/admin/assets/{table-DxUL78jU.js → table-DFj1wiYv.js} +1 -1
- package/core/built/admin/assets/tabs-D4y1gqUd.js +1 -0
- package/core/built/admin/assets/{tags-CNujGwkT.js → tags-Dmft-Y4O.js} +1 -1
- package/core/built/admin/assets/{text-DwtjwGkh.js → text-DU9Hv33_.js} +1 -1
- package/core/built/admin/assets/textarea-d9qEkMOP.js +1 -0
- package/core/built/admin/assets/{tiers-BgYLWRJv.js → tiers-DYsa4DCo.js} +1 -1
- package/core/built/admin/assets/{toggle-group-BeEpQ69p.js → toggle-group-R2QMFvXW.js} +1 -1
- package/core/built/admin/assets/{topic-filter-Bb5MOD-1.js → topic-filter-DGDxDalo.js} +1 -1
- package/core/built/admin/assets/{use-analytics-data-Cds6XDjg.js → use-analytics-data-C76v4LIp.js} +1 -1
- package/core/built/admin/assets/use-filter-params-WrdhAISv.js +1 -0
- package/core/built/admin/assets/{use-growth-stats-D8uf98-G.js → use-growth-stats-aNXJOmQr.js} +1 -1
- package/core/built/admin/assets/{use-post-referrers-CRtgyuXB.js → use-post-referrers-CG0SZioj.js} +1 -1
- package/core/built/admin/assets/{use-reply-chain-data-DbKYX50v.js → use-reply-chain-data-RLdPKRmS.js} +1 -1
- package/core/built/admin/assets/{use-simple-pagination-DC01kpo0.js → use-simple-pagination-DgcF69KI.js} +1 -1
- package/core/built/admin/assets/{use-tinybird-query-C7bQRJWw.js → use-tinybird-query-C1R_Kbmy.js} +1 -1
- package/core/built/admin/assets/{use-tinybird-token-Az4tam7_.js → use-tinybird-token-C9fPjVM_.js} +1 -1
- package/core/built/admin/assets/{users-CcSCQFcQ.js → users-Dkv8NQZe.js} +1 -1
- package/core/built/admin/assets/{virtual-list-Dhuh9fGx.js → virtual-list-BmTUzeoF.js} +1 -1
- package/core/built/admin/assets/web-BqW0b0_C.js +1 -0
- package/core/built/admin/assets/web-Cy5GKMWM.js +2 -0
- package/core/built/admin/index.html +18 -18
- package/core/frontend/services/data/fetch-data.js +10 -5
- package/core/frontend/services/proxy.js +7 -8
- package/core/frontend/services/routing/api-adapter.js +115 -0
- package/core/frontend/services/routing/api-adapter.ts +157 -0
- package/core/frontend/services/routing/collection-router.js +5 -3
- package/core/frontend/services/routing/controllers/index.js +1 -1
- package/core/frontend/services/routing/controllers/rss.js +26 -31
- package/core/frontend/services/routing/controllers/rss.ts +66 -0
- package/core/frontend/services/routing/controllers/static.js +8 -7
- package/core/frontend/services/routing/parent-router.js +17 -4
- package/core/frontend/services/routing/permalink-adapter.js +26 -0
- package/core/frontend/services/routing/permalink-adapter.ts +23 -0
- package/core/frontend/services/routing/registry.js +59 -33
- package/core/frontend/services/routing/router-manager.js +14 -18
- package/core/frontend/services/routing/static-routes-router.js +11 -13
- package/core/frontend/services/routing/taxonomy-router.js +6 -2
- package/core/server/api/endpoints/automation-action-links.js +68 -0
- package/core/server/api/endpoints/automation-action-links.ts +46 -0
- package/core/server/api/endpoints/index.js +4 -0
- package/core/server/api/endpoints/settings.js +0 -2
- package/core/server/api/endpoints/utils/serializers/output/utils/url.js +11 -1
- package/core/server/data/migrations/versions/6.55/2026-07-27-11-25-44-add-to-hash-to-redirects.js +51 -0
- package/core/server/data/migrations/versions/6.55/2026-07-28-12-08-00-remove-routes-hash-from-settings.js +5 -0
- package/core/server/data/migrations/versions/6.56/2026-08-03-19-27-51-add-automation-run-step-id-to-automated-email-recipients.js +8 -0
- package/core/server/data/migrations/versions/6.56/2026-08-04-14-42-39-restrict-notification-add-permission-to-administrators.js +12 -0
- package/core/server/data/schema/commands.js +5 -0
- package/core/server/data/schema/default-settings/default-settings.json +0 -4
- package/core/server/data/schema/fixtures/fixtures.json +2 -2
- package/core/server/data/schema/schema.js +6 -1
- package/core/server/models/post.js +10 -1
- package/core/server/services/automations/automations-api.js +15 -0
- package/core/server/services/automations/automations-api.ts +19 -0
- package/core/server/services/automations/automations-repository.ts +20 -0
- package/core/server/services/automations/database-automations-repository.js +132 -30
- package/core/server/services/automations/database-automations-repository.ts +141 -12
- package/core/server/services/automations/database-date.js +10 -0
- package/core/server/services/automations/database-date.ts +5 -0
- package/core/server/services/automations/get-scheduler-idempotency-key.js +13 -0
- package/core/server/services/automations/get-scheduler-idempotency-key.ts +8 -0
- package/core/server/services/automations/poll.js +7 -2
- package/core/server/services/automations/poll.ts +10 -2
- package/core/server/services/automations/scheduler-poll-time.js +40 -0
- package/core/server/services/automations/scheduler-poll-time.ts +38 -0
- package/core/server/services/automations/service.js +19 -3
- package/core/server/services/automations/service.ts +20 -3
- package/core/server/services/comments/comments-service-emails.js +10 -7
- package/core/server/services/comments/comments-service.js +9 -4
- package/core/server/services/email-rendering/partials/email-wrapper.hbs +3 -1
- package/core/server/services/email-service/email-service-wrapper.js +6 -1
- package/core/server/services/email-service/email-templates/partials/styles.hbs +8 -0
- package/core/server/services/email-service/newsletter-email-event-storage.js +41 -10
- package/core/server/services/gift-links/CONTEXT.md +9 -0
- package/core/server/services/gifts/CONTEXT.md +55 -0
- package/core/server/services/gifts/README.md +28 -0
- package/core/server/services/gifts/gift-bookshelf-repository.js +65 -45
- package/core/server/services/gifts/gift-bookshelf-repository.ts +203 -74
- package/core/server/services/gifts/gift-checkout-adapter.js +59 -0
- package/core/server/services/gifts/gift-checkout-offer.js +74 -0
- package/core/server/services/gifts/gift-checkout-offer.ts +127 -0
- package/core/server/services/gifts/gift-codec.js +63 -0
- package/core/server/services/gifts/gift-codec.ts +62 -0
- package/core/server/services/gifts/gift-controller.js +6 -31
- package/core/server/services/gifts/gift-controller.ts +6 -69
- package/core/server/services/gifts/gift-email-service.ts +3 -2
- package/core/server/services/gifts/gift-schema.js +34 -0
- package/core/server/services/gifts/gift-schema.ts +39 -0
- package/core/server/services/gifts/gift-service-wrapper.js +13 -11
- package/core/server/services/gifts/gift-service.js +265 -52
- package/core/server/services/gifts/gift-service.ts +431 -97
- package/core/server/services/gifts/gift.ts +16 -39
- package/core/server/services/lib/dynamic-redirect-manager.js +12 -3
- package/core/server/services/link-redirection/link-redirect-repository.js +41 -4
- package/core/server/services/link-redirection/link-redirect.js +2 -0
- package/core/server/services/link-redirection/link-redirect.ts +3 -1
- package/core/server/services/link-redirection/link-redirects-service.js +38 -2
- package/core/server/services/link-tracking/click-event.js +3 -0
- package/core/server/services/link-tracking/index.js +38 -6
- package/core/server/services/link-tracking/link-click-repository.js +35 -9
- package/core/server/services/link-tracking/link-click-tracking-service.js +54 -4
- package/core/server/services/member-attribution/outbound-link-tagger.js +3 -1
- package/core/server/services/member-welcome-emails/member-welcome-email-renderer.js +20 -4
- package/core/server/services/member-welcome-emails/service.js +15 -3
- package/core/server/services/members/api.js +1 -2
- package/core/server/services/members/import-export/csv/formula.js +16 -0
- package/core/server/services/members/import-export/csv/formula.ts +14 -0
- package/core/server/services/members/import-export/csv/index.js +3 -1
- package/core/server/services/members/import-export/csv/index.ts +1 -0
- package/core/server/services/members/import-export/import/completion-email.js +22 -3
- package/core/server/services/members/import-export/import/completion-email.ts +29 -7
- package/core/server/services/members/import-export/import/importer.js +25 -4
- package/core/server/services/members/import-export/import/importer.ts +44 -5
- package/core/server/services/members/import-export/index.js +18 -1
- package/core/server/services/members/import-export/index.ts +32 -3
- package/core/server/services/members/members-api/controllers/router-controller.js +38 -36
- package/core/server/services/members/members-api/members-api.js +13 -7
- package/core/server/services/members/members-api/repositories/event-repository.js +4 -94
- package/core/server/services/members/members-api/services/member-bread-service.js +3 -3
- package/core/server/services/members/members-api/services/payments-service.js +6 -68
- package/core/server/services/members/service.js +8 -1
- package/core/server/services/members-custom-fields/schema.js +8 -1
- package/core/server/services/members-custom-fields/schema.ts +8 -0
- package/core/server/services/members-custom-fields/values-service.js +136 -8
- package/core/server/services/members-custom-fields/values-service.ts +152 -10
- package/core/server/services/mentions/service.js +5 -1
- package/core/server/services/oembed/oembed-service.js +44 -3
- package/core/server/services/posts/posts-service.js +11 -0
- package/core/server/services/route-settings/dynamic-routing-service.js +21 -52
- package/core/server/services/route-settings/index.js +1 -16
- package/core/server/services/route-settings/route-settings-parser.js +25 -25
- package/core/server/services/route-settings/route-settings-parser.ts +27 -27
- package/core/server/services/route-settings/validation-errors.js +68 -4
- package/core/server/services/route-settings/validation-errors.ts +79 -4
- package/core/server/services/settings/settings-service.js +0 -18
- package/core/server/services/stats/posts-stats-service.js +27 -23
- package/core/server/services/stripe/services/webhook/charge-refunded-event-service.js +1 -1
- package/core/server/services/stripe/services/webhook/checkout-session-event-service.js +16 -4
- package/core/server/services/stripe/stripe-api.js +10 -0
- package/core/server/services/url/url-service-facade.js +1 -1
- package/core/server/services/url/url-service-facade.ts +8 -1
- package/core/server/web/api/endpoints/admin/routes.js +1 -0
- package/core/server/web/gift-preview/controller.js +10 -25
- package/core/shared/labs.js +2 -2
- package/package.json +8 -7
- package/pnpm-lock.yaml +28 -18
- package/pnpm-workspace.yaml +6 -4
- package/components/tryghost-kg-default-nodes-2.1.3.tgz +0 -0
- package/core/built/admin/assets/Growth-BTP1LthE.js +0 -3
- package/core/built/admin/assets/Newsletters-CSEX0myc.js +0 -1
- package/core/built/admin/assets/Overview-BjACEsJF.js +0 -1
- package/core/built/admin/assets/Web-CxxxjCcv.js +0 -2
- package/core/built/admin/assets/activitypub/layout-CziktJXo.js +0 -1
- package/core/built/admin/assets/audience-X_XsZivI.js +0 -1
- package/core/built/admin/assets/chunk.524.8365cd9280405c0f6216.js +0 -25
- package/core/built/admin/assets/chunk.582.61d078937e6102769f2c.js +0 -27
- package/core/built/admin/assets/comments-CvyXxOyN.js +0 -1
- package/core/built/admin/assets/constants-c-JNF9c2.js +0 -1
- package/core/built/admin/assets/dist-CjY-f5Z1.js +0 -1
- package/core/built/admin/assets/editor-BOG2YPUm.js +0 -8
- package/core/built/admin/assets/field-D0XISCK2.js +0 -1
- package/core/built/admin/assets/filter-sources-Bieps75g.js +0 -1
- package/core/built/admin/assets/filters-CuB-A7ma.js +0 -1
- package/core/built/admin/assets/gift-link-modal-su8MsRdg.js +0 -1
- package/core/built/admin/assets/growth-Ba6S5FQX.js +0 -1
- package/core/built/admin/assets/index-D8PbzuT9.css +0 -1
- package/core/built/admin/assets/index-ukW_0Uie.js +0 -67
- package/core/built/admin/assets/input-group-CGOXcy4l.js +0 -1
- package/core/built/admin/assets/label-picker-Uq91atex.js +0 -1
- package/core/built/admin/assets/labels-Cyayfd-e.js +0 -1
- package/core/built/admin/assets/layout-WUcz6tu1.js +0 -1
- package/core/built/admin/assets/link-helpers-tOlxmuH5.js +0 -1
- package/core/built/admin/assets/member-custom-fields-NCzrMuba.js +0 -1
- package/core/built/admin/assets/member-detail-DPWDtYnN.js +0 -1
- package/core/built/admin/assets/members-B9rO7qr4.js +0 -10
- package/core/built/admin/assets/modals-CxRaan1J.js +0 -31
- package/core/built/admin/assets/moderation-D8zon60E.js +0 -1
- package/core/built/admin/assets/multi-select-combobox-1wYm3nle.js +0 -1
- package/core/built/admin/assets/newsletter-DbYMRxRS.js +0 -1
- package/core/built/admin/assets/note-PiWPnnrh.js +0 -1
- package/core/built/admin/assets/notifications-DEgqqB9G.js +0 -1
- package/core/built/admin/assets/nql-BsgFMd93.js +0 -1
- package/core/built/admin/assets/onboarding-route-BzF6HeVn.js +0 -1
- package/core/built/admin/assets/overview-DixLeIqY.js +0 -1
- package/core/built/admin/assets/post-analytics-header-DsMoLx0R.js +0 -1
- package/core/built/admin/assets/post-analytics-provider-BJCPLMIb.js +0 -1
- package/core/built/admin/assets/preferences-D7-j6A4C.js +0 -5
- package/core/built/admin/assets/profile-Dl69QPp0.js +0 -1
- package/core/built/admin/assets/select-C1qDZnW4.js +0 -1
- package/core/built/admin/assets/settings-BbmC_Iqq.js +0 -4
- package/core/built/admin/assets/social-urls-BPL1nADp.js +0 -8
- package/core/built/admin/assets/tabs-BQcJQ1ke.js +0 -1
- package/core/built/admin/assets/textarea-Bjccvh_E.js +0 -1
- package/core/built/admin/assets/use-filter-params-DjXkhO54.js +0 -1
- package/core/built/admin/assets/web-LtHNiNBV.js +0 -1
- package/core/server/services/gifts/gift-repository.js +0 -2
- package/core/server/services/gifts/gift-repository.ts +0 -29
- package/core/server/services/route-settings/activation-bridge.js +0 -164
- package/core/server/services/route-settings/activation-bridge.ts +0 -210
- package/core/server/services/route-settings/default-settings-manager.js +0 -63
- package/core/server/services/route-settings/route-settings.js +0 -170
- package/core/server/services/route-settings/settings-loader.js +0 -60
- package/core/server/services/route-settings/settings-path-manager.js +0 -47
- package/core/server/services/route-settings/validate.js +0 -440
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{n as r}from"./dist-Ndy-PuGN.js";import{l as i,m as a}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{s as o}from"./router-provider-C1R4AZ2o.js";import{s}from"./dist-DGzPJ_bO.js";import{a as c,i as l,n as u,r as d,t as f}from"./tabs-BQcJQ1ke.js";import{t as p}from"./edit-profile-SGrJve5M.js";import{Ai as m,As as h,At as g,Cr as _,Dr as v,Er as ee,F as y,Ft as te,Gn as b,I as x,It as ne,Jn as re,Kt as S,L as ie,Mi as ae,Ni as C,Nr as w,Or as oe,Os as se,Po as ce,Pr as le,Q as T,R as ue,Rn as E,Ro as de,Ut as fe,V as D,Wt as O,Y as k,_o as A,_t as pe,ar as me,at as he,cr as j,ct as ge,dr as M,er as N,es as _e,fr as ve,gr as ye,gs as be,hr as xe,ht as P,ir as F,ja as I,kt as L,lr as R,lt as Se,mr as z,mt as B,or as V,pr as H,sr as U,st as Ce,tr as W,tt as G,ur as K,ut as we,vt as Te,xr as Ee,yo as q,zn as J}from"./index-ukW_0Uie.js";import"./layout-WUcz6tu1.js";import{t as De}from"./settings-H6HxFgfI.js";var Y=e(t(),1);function Oe(e){return typeof e.name==`string`?e.name:typeof e.preferredUsername==`string`?e.preferredUsername:typeof e.preferredUsername==`object`&&e.preferredUsername!==null&&`@value`in e.preferredUsername&&typeof e.preferredUsername[`@value`]==`string`?e.preferredUsername[`@value`]:`Unknown`}var X=n(),ke=({noResultsMessage:e,actors:t,isLoading:n,fetchNextPage:r,hasNextPage:i,isFetchingNextPage:a})=>{let{data:o}=P(`index`,`me`),s=(0,Y.useRef)(null),c=(0,Y.useRef)(null);(0,Y.useEffect)(()=>(s.current&&s.current.disconnect(),s.current=new IntersectionObserver(e=>{e[0].isIntersecting&&i&&!a&&r()}),c.current&&s.current.observe(c.current),()=>{s.current&&s.current.disconnect()}),[i,a,r]);let l=S();return(0,X.jsxs)(`div`,{className:`pt-3`,"data-testid":`actor-list`,children:[i===!1&&t.length===0?(0,X.jsxs)(E,{children:[(0,X.jsx)(J,{children:(0,X.jsx)(C,{})}),e]}):(0,X.jsx)(`div`,{className:`flex flex-col`,children:t.map(({actor:e,isFollowing:t,blockedByMe:n,domainBlockedByMe:r})=>{let i=O(e),a=i===o?.handle;return(0,X.jsx)(Y.Fragment,{children:(0,X.jsx)(G,{actor:e,align:`center`,isCurrentUser:a,side:`left`,children:(0,X.jsx)(`div`,{children:(0,X.jsxs)(D,{"data-testid":`actor-item`,onClick:()=>{T(e,l)},children:[(0,X.jsx)(we,{author:e}),(0,X.jsx)(`div`,{children:(0,X.jsxs)(`div`,{className:`break-anywhere text-gray-600`,children:[(0,X.jsx)(`span`,{className:`mr-1 line-clamp-1 font-bold text-black dark:text-white`,children:Oe(e)}),(0,X.jsx)(`div`,{className:`line-clamp-1 text-sm`,children:i})]})}),n||r?(0,X.jsx)(w,{className:`pointer-events-none ml-auto min-w-[90px]`,variant:`destructive`,children:`Blocked`}):a?null:(0,X.jsx)(Se,{className:`ml-auto`,"data-testid":`follow-button`,following:t,handle:i,type:`secondary`})]},e.id)})})},e.id)})}),(0,X.jsx)(`div`,{ref:c,className:`h-1`}),(a||n)&&(0,X.jsx)(`div`,{className:`mt-6 flex flex-col items-center justify-center gap-4 text-center`,children:(0,X.jsx)(N,{size:`md`})})]})},Z=({posts:e,fetchNextPage:t,hasNextPage:n,isFetchingNextPage:r,isLoading:i})=>{let a=(0,Y.useRef)(null),o=(0,Y.useRef)(null),s=(0,Y.useRef)(null),c=Math.max(0,Math.floor(e.length*.75)-1);(0,Y.useEffect)(()=>(a.current&&a.current.disconnect(),a.current=new IntersectionObserver(e=>{e[0].isIntersecting&&n&&!r&&t()}),o.current&&a.current.observe(o.current),s.current&&a.current.observe(s.current),()=>{a.current&&a.current.disconnect()}),[n,r,t]);let l=S();return(0,X.jsxs)(X.Fragment,{children:[n===!1&&e.length===0&&(0,X.jsxs)(E,{children:[(0,X.jsx)(J,{children:(0,X.jsx)(A,{})}),`You haven't liked anything yet.`]}),(0,X.jsxs)(`ul`,{className:`mx-auto flex max-w-[640px] flex-col`,"data-testid":`profile-likes-list`,children:[e.map((t,n)=>(0,X.jsxs)(`li`,{"data-testid":`profile-like-item`,"data-test-view-article":!0,children:[(0,X.jsx)(k,{actor:t.actor,allowDelete:t.object.authored,commentCount:t.object.replyCount,isLoading:i,layout:`feed`,likeCount:t.object.likeCount,object:t.object,repostCount:t.object.repostCount,type:t.type,onClick:()=>{t.object.type===`Note`?l(`/notes/${encodeURIComponent(t.object.id)}`):t.object.type===`Article`&&l(`/reader/${encodeURIComponent(t.object.id)}`)}}),n<e.length-1&&(0,X.jsx)(b,{}),n===c&&(0,X.jsx)(`div`,{ref:o,className:`h-1`})]},`likes-${t.id}`)),r&&(0,X.jsx)(`li`,{className:`flex flex-col items-center justify-center gap-4 text-center`,children:(0,X.jsx)(N,{size:`md`})})]}),(0,X.jsx)(`div`,{ref:s,className:`h-1`})]})},Ae=({posts:e,fetchNextPage:t,hasNextPage:n,isFetchingNextPage:r,isLoading:i,noResultsMessage:a})=>{let o=(0,Y.useRef)(null),s=(0,Y.useRef)(null),c=(0,Y.useRef)(null),l=Math.max(0,Math.floor(e.length*.75)-1);(0,Y.useEffect)(()=>(o.current&&o.current.disconnect(),o.current=new IntersectionObserver(e=>{e[0].isIntersecting&&n&&!r&&t()}),s.current&&o.current.observe(s.current),c.current&&o.current.observe(c.current),()=>{o.current&&o.current.disconnect()}),[n,r,t]);let u=S();return(0,X.jsxs)(X.Fragment,{children:[n===!1&&e.length===0&&(0,X.jsxs)(E,{children:[(0,X.jsx)(J,{children:(0,X.jsx)(I,{})}),a]}),(0,X.jsxs)(`ul`,{className:`mx-auto flex max-w-[640px] flex-col`,"data-testid":`profile-posts-list`,children:[e.map((t,n)=>(0,X.jsxs)(`li`,{"data-testid":`profile-post-item`,"data-test-view-article":!0,children:[(0,X.jsx)(k,{actor:t.actor,allowDelete:t.object.authored,commentCount:t.object.replyCount,isLoading:i,layout:`feed`,likeCount:t.object.likeCount,object:t.object,repostCount:t.object.repostCount,type:t.type,onClick:()=>{t.object.type===`Note`?u(`/notes/${encodeURIComponent(t.object.id)}`):t.object.type===`Article`&&u(`/reader/${encodeURIComponent(t.object.id)}`)}}),n<e.length-1&&(0,X.jsx)(b,{}),n===l&&(0,X.jsx)(`div`,{ref:s,className:`h-1`})]},`posts-${t.id}`)),r&&(0,X.jsx)(`li`,{className:`flex flex-col items-center justify-center gap-4 text-center`,children:(0,X.jsx)(N,{size:`md`})})]}),(0,X.jsx)(`div`,{ref:c,className:`h-1`})]})},Q=({handle:e,isUserBlocked:t,isDomainBlocked:n,onUnblockUser:i,onUnblockDomain:a,trigger:o,onUnblockComplete:s,isOpen:c,onOpenChange:l})=>{let[u,d]=(0,Y.useState)(!1),[f,p]=(0,Y.useState)(()=>{let e=t&&n,r=t&&!n,i=!t&&n,a=`idle`;return e?a=`dual`:r?a=`userOnly`:i&&(a=`domainOnly`),{mode:a,userUnblocked:!1,domainUnblocked:!1}}),g=c!==void 0,_=g?c:u,[v,ee]=(0,Y.useState)(!1),y=(0,Y.useCallback)(()=>{let e=t&&n,r=t&&!n,i=!t&&n,a=`idle`;e?a=`dual`:r?a=`userOnly`:i&&(a=`domainOnly`),p(e=>({...e,mode:a,userUnblocked:!1,domainUnblocked:!1}))},[t,n]);(0,Y.useEffect)(()=>{_&&!v?(y(),ee(!0)):_||ee(!1)},[_,v,y]);let te=()=>{g?l?.(!0):d(!0)},b=e=>{e||(g?l?.(!1):d(!1))},x=async()=>{await i(),p(e=>({...e,userUnblocked:!0})),(f.mode!==`dual`||f.domainUnblocked)&&(b(!1),s?.()),r.success(`User unblocked`)},ne=async()=>{await a(),p(e=>({...e,domainUnblocked:!0})),(f.mode!==`dual`||f.userUnblocked)&&(b(!1),s?.()),r.success(`Domain unblocked`)},re=e.split(`@`).filter(Boolean)[1];return(0,X.jsxs)(F,{open:_,onOpenChange:b,children:[o&&(0,X.jsx)(ve,{asChild:!0,onClick:te,children:o}),(0,X.jsx)(U,{className:`${f.mode===`dual`&&`max-w-[600px]`}`,children:f.mode===`dual`?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(K,{children:[(0,X.jsx)(M,{className:`mb-1 flex flex-col gap-1`,children:`Unblock`}),(0,X.jsx)(j,{className:`mt-4!`,asChild:!0,children:(0,X.jsxs)(`div`,{className:`flex flex-col rounded-md border`,children:[(0,X.jsxs)(`div`,{className:`flex justify-between gap-6 p-5`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,X.jsx)(h,{children:`Unblock user`}),(0,X.jsxs)(`p`,{children:[(0,X.jsx)(`span`,{className:`font-semibold text-black`,children:e}),` will be able to follow you and engage with your public posts.`]})]}),(0,X.jsxs)(w,{className:`gap-1 ${f.userUnblocked?`pointer-events-none border-green bg-green text-white hover:bg-green hover:text-white`:`text-red hover:text-red-400`}`,variant:`outline`,onClick:x,children:[(0,X.jsx)(m,{}),f.userUnblocked?`User unblocked`:`Unblock user`]})]}),(0,X.jsx)(`div`,{className:`border-t`}),(0,X.jsxs)(`div`,{className:`flex justify-between gap-6 p-5`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,X.jsx)(h,{children:`Unblock domain`}),(0,X.jsxs)(`p`,{children:[`Users from `,(0,X.jsx)(`span`,{className:`font-semibold text-black`,children:re}),` will be able to follow you and engage with your public posts.`]})]}),(0,X.jsxs)(w,{className:`gap-1 ${f.domainUnblocked?`pointer-events-none border-green bg-green text-white hover:bg-green hover:text-white`:`text-red hover:text-red-400`}`,variant:`outline`,onClick:ne,children:[(0,X.jsx)(q,{}),f.domainUnblocked?`Domain unblocked`:`Unblock domain`]})]})]})})]}),(0,X.jsx)(R,{children:(0,X.jsx)(w,{onClick:()=>b(!1),children:`OK`})})]}):(()=>{let t=f.mode===`userOnly`;return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(K,{children:[(0,X.jsx)(M,{className:`mb-1 flex flex-col gap-1`,children:t?`Unblock this user?`:`Unblock this domain?`}),(0,X.jsx)(j,{children:t?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`span`,{className:`font-semibold text-black`,children:e}),` will be able to follow you and engage with your public posts.`]}):(0,X.jsxs)(X.Fragment,{children:[`Users from `,(0,X.jsx)(`span`,{className:`font-semibold text-black`,children:re}),` will be able to follow you and engage with your public posts.`]})})]}),(0,X.jsxs)(R,{children:[(0,X.jsx)(V,{children:`Cancel`}),(0,X.jsx)(w,{onClick:t?x:ne,children:`Unblock`})]})]})})()})]})},je=({account:e,children:t,onCopyHandle:n,onBlockAccount:r,onBlockDomain:i,disabled:a=!1,isBlocked:o=!1,isDomainBlocked:s=!1})=>{let[c,l]=(0,Y.useState)(null),[u,d]=(0,Y.useState)(!1),f=e=>{e.stopPropagation(),n()},p=e=>{e.stopPropagation(),r()},m=e=>{e.stopPropagation(),i()},h=e?.handle,g=h?.split(`@`).filter(Boolean)[1];return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(H,{children:[(0,X.jsx)(ye,{disabled:a,asChild:!0,onClick:e=>e.stopPropagation(),children:t}),(0,X.jsx)(xe,{align:`end`,className:`p-2`,children:(0,X.jsxs)(`div`,{className:`flex w-48 flex-col`,children:[(0,X.jsx)(z,{asChild:!0,children:(0,X.jsx)(w,{className:`justify-start`,variant:`ghost`,onClick:f,children:`Copy handle`})}),(0,X.jsx)(z,{asChild:!0,children:(0,X.jsx)(w,{className:`justify-start text-red hover:bg-red/5 hover:text-red`,variant:`ghost`,onClick:e=>{e.stopPropagation(),!o&&!s&&l(`user`),d(!0)},children:o?`Unblock user`:s?`Unblock domain`:`Block user`})})]})})]}),o||s?e&&(0,X.jsx)(Q,{handle:e.handle,isDomainBlocked:e.domainBlockedByMe,isOpen:u,isUserBlocked:e.blockedByMe,onOpenChange:d,onUnblockDomain:i,onUnblockUser:r}):(0,X.jsx)(F,{open:u,onOpenChange:d,children:(0,X.jsxs)(U,{onClick:e=>e.stopPropagation(),children:[(0,X.jsxs)(K,{children:[(0,X.jsx)(M,{className:`mb-1 flex flex-col gap-1`,children:c===`user`?`Block this user?`:`Block this domain?`}),(0,X.jsx)(j,{children:c===`user`?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`span`,{className:`font-semibold text-black`,children:h}),` will be able to see your public posts, but will no longer be able follow you or interact with your content on the social web.`]}):(0,X.jsxs)(X.Fragment,{children:[`All users from `,(0,X.jsx)(`span`,{className:`font-semibold text-black`,children:g}),` will be able to see your public posts, but won't be able to follow you or interact with your content.`]})})]}),(0,X.jsxs)(R,{children:[c!==`domain`&&(0,X.jsx)(w,{className:`mr-auto -ml-3 hover:bg-transparent hover:opacity-80`,variant:`ghost`,onClick:e=>{e.stopPropagation(),l(`domain`)},children:`Block domain instead`}),(0,X.jsx)(V,{onClick:e=>e.stopPropagation(),children:`Cancel`}),(0,X.jsx)(me,{className:le({variant:`destructive`}),onClick:c===`user`?p:m,children:`Block`})]})]})})]})},Me=({account:e,onUnblock:t,onDomainUnblock:n,className:r=``})=>{let[i,a]=(0,Y.useState)(!1),o=(0,X.jsx)(w,{className:`min-w-[90px] ${r}`,variant:`destructive`,onMouseEnter:()=>a(!0),onMouseLeave:()=>a(!1),children:i?`Unblock`:`Blocked`});return(0,X.jsx)(Q,{handle:e.handle,isDomainBlocked:e.domainBlockedByMe,isUserBlocked:e.blockedByMe,trigger:o,onUnblockDomain:n,onUnblockUser:t})},Ne=()=>{},$=({account:e,customFields:t,isLoadingAccount:n,postsTab:m,likesTab:g,followingTab:y,followersTab:b})=>{let C=a(),le=i(),T=S(),{canGoBack:fe}=o(),D=C.handle?`/profile/${C.handle}`:`/profile`,O=!C.handle,k=C.handle?C.tab||``:le.pathname.split(`/`).pop()||``,A=(0,Y.useMemo)(()=>O?[`likes`,`following`,`followers`]:[`following`,`followers`],[O]),me=A.includes(k)?k:`posts`,j=Te(`index`),M=ne(`index`),N=pe(`index`),ve=te(`index`),ye=P(`index`,`me`),{data:xe}=C.handle?ye:{data:void 0},F=C.handle===xe?.handle||!C.handle,I=e?.blockedByMe,L=e?.domainBlockedByMe,[R,z]=(0,Y.useState)(!1),[B,V]=(0,Y.useState)(!1),H=(0,Y.useRef)(null);(0,Y.useEffect)(()=>()=>{H.current&&window.clearTimeout(H.current)},[]);let U=()=>{I?M.mutate(e):(j.mutate(e),r.success(`User blocked`)),z(!1)},G=()=>{L?ve.mutate({url:e.apId,handle:e.handle}):(N.mutate({url:e.apId,handle:e.handle}),r.success(`Domain blocked`)),z(!1)},K=async()=>{if(!e?.handle||!navigator?.clipboard?.writeText){r.error(`Unable to copy handle`);return}try{await navigator.clipboard.writeText(e.handle),V(!0),r.success(`Handle copied`),H.current&&window.clearTimeout(H.current),H.current=window.setTimeout(()=>V(!1),2e3)}catch{r.error(`Failed to copy handle`),V(!1)}},[q,Oe]=(0,Y.useState)(!1),[ke,Z]=(0,Y.useState)(!1),Ae=()=>{Oe(!q)},Q=(0,Y.useRef)(null),[$,Pe]=(0,Y.useState)(!1);(0,Y.useEffect)(()=>{Q.current&&Pe(Q.current.scrollHeight>160)},[q,e?.bio,t,n]),(0,Y.useEffect)(()=>{k&&(A.includes(k)||T(D,{replace:!0}))},[A,D,T,k]);let Fe=e=>e===`posts`?D:`${D}/${e}`,Ie=e=>{e!==me&&T(Fe(e),{replace:!0})};return!n&&!e?(0,X.jsx)(ue,{children:(0,X.jsx)(`div`,{className:`mx-auto mt-4 flex w-full max-w-[620px] flex-col items-center [&_svg]:translate-x-px`,children:(0,X.jsxs)(ie,{children:[(0,X.jsx)(x,{children:(0,X.jsx)(ae,{})}),(0,X.jsx)(`div`,{children:`Profile not found`})]})})}):(0,X.jsx)(ue,{children:(0,X.jsx)(`div`,{className:`z-0 mx-[max(-4vw,-24px)] -mt-9 flex flex-col items-center pb-16`,children:(0,X.jsx)(`div`,{className:`mx-auto w-full`,children:(0,X.jsxs)(X.Fragment,{children:[e?.bannerImageUrl?(0,X.jsx)(`div`,{className:`h-[15vw] min-h-[200px] w-full overflow-hidden bg-gradient-to-tr from-gray-200 to-gray-100`,children:(0,X.jsx)(`img`,{alt:e?.name,className:`size-full object-cover`,referrerPolicy:`no-referrer`,src:e?.bannerImageUrl})}):(0,X.jsx)(`div`,{className:`h-[max(8vw,132px)] w-full overflow-hidden bg-gradient-to-tr from-white to-white dark:from-black dark:to-black`}),(0,X.jsxs)(`div`,{className:`mx-auto max-w-[620px] px-6 ${!e?.bannerImageUrl&&!fe?`-mt-8`:`-mt-12`}`,children:[(0,X.jsxs)(`div`,{className:`flex items-end justify-between`,children:[(0,X.jsx)(`div`,{className:`-ml-2 rounded-full bg-white p-1 dark:bg-background`,children:n?(0,X.jsx)(W,{className:`size-[92px] rounded-full`}):(0,X.jsx)(we,{author:{icon:{url:e?.avatarUrl},name:e?.name,handle:e?.handle},size:`lg`})}),!F&&!n&&(0,X.jsxs)(`div`,{className:`flex gap-2`,children:[I||L?(0,X.jsx)(Me,{account:e,onDomainUnblock:G,onUnblock:U}):(0,X.jsx)(Se,{following:e?.followedByMe,handle:e?.handle,type:`primary`,onFollow:Ne,onUnfollow:Ne}),(0,X.jsx)(je,{account:e,isBlocked:I,isDomainBlocked:L,onBlockAccount:U,onBlockDomain:G,onCopyHandle:K,children:(0,X.jsx)(w,{"aria-label":`Open profile menu`,variant:`outline`,children:(0,X.jsx)(ce,{})})})]}),F&&!n&&(0,X.jsxs)(Ee,{open:ke,onOpenChange:Z,children:[(0,X.jsx)(oe,{children:(0,X.jsx)(De,{children:(0,X.jsx)(w,{variant:`secondary`,children:`Edit profile`})})}),(0,X.jsxs)(_,{className:`w-full max-w-[520px]`,onOpenAutoFocus:e=>e.preventDefault(),children:[(0,X.jsx)(ee,{children:(0,X.jsx)(v,{children:`Profile settings`})}),e&&(0,X.jsx)(p,{account:e,setIsEditingProfile:Z})]})]})]}),(0,X.jsx)(se,{className:`break-anywhere mt-4 truncate`,children:n?(0,X.jsx)(W,{className:`w-32`}):e?.name}),(0,X.jsxs)(`div`,{className:`mb-4 flex items-center gap-2`,children:[(0,X.jsx)(`a`,{className:`inline-flex max-w-full truncate text-[1.5rem] text-gray-800 hover:text-gray-900 dark:text-gray-600 dark:hover:text-gray-500`,href:e?.url,rel:`noopener noreferrer`,target:`_blank`,children:(0,X.jsx)(`span`,{className:`truncate`,children:n?(0,X.jsx)(W,{className:`w-full max-w-56`}):e?.handle})}),!n&&(0,X.jsx)(w,{className:`-ml-1.5 size-6 p-0 text-gray-800 hover:text-gray-900 dark:text-gray-700 dark:hover:text-gray-600`,title:`Copy handle`,variant:`link`,onClick:K,children:B?(0,X.jsx)(_e,{size:16}):(0,X.jsx)(de,{size:16})}),e?.followsMe&&!n&&(0,X.jsx)(re,{className:`mt-px whitespace-nowrap`,variant:`secondary`,children:`Follows you`})]}),(e?.bio||t?.length>0)&&(0,X.jsxs)(`div`,{ref:Q,className:`ap-profile-content break-anywhere relative text-[1.5rem] [&>p]:mb-3 ${q?`max-h-none pb-7`:`max-h-[160px] overflow-hidden`} relative`,children:[n?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(W,{}),(0,X.jsx)(W,{className:`w-full max-w-48`})]}):(0,X.jsx)(`div`,{dangerouslySetInnerHTML:{__html:Ce(he(ge(e?.bio??``,[`a`,`br`])))}}),t?.map(e=>(0,X.jsxs)(`span`,{className:`mt-3 line-clamp-1 flex flex-col text-[1.5rem]`,children:[(0,X.jsx)(`span`,{className:`text-xs font-semibold`,children:e.name}),(0,X.jsx)(`span`,{dangerouslySetInnerHTML:{__html:Ce(e.value)},className:`ap-profile-content truncate`})]},e.name)),!q&&$&&(0,X.jsx)(`div`,{className:`absolute inset-x-0 bottom-0 h-16 bg-gradient-to-t from-white via-white/100 via-60% to-transparent dark:from-black dark:via-black/100`}),$&&(0,X.jsx)(w,{className:`absolute bottom-0 h-auto p-0 text-md`,variant:`link`,onClick:Ae,children:q?`Show less`:`Show all`})]}),(0,X.jsxs)(f,{className:`mt-5`,value:me,variant:`underline`,onValueChange:e=>Ie(e),children:[(0,X.jsxs)(d,{children:[(0,X.jsx)(l,{value:`posts`,children:`Posts`}),O&&(0,X.jsxs)(l,{value:`likes`,children:[`Likes`,(0,X.jsx)(c,{children:s(e?.likedCount||0)})]}),(0,X.jsxs)(l,{value:`following`,children:[`Following`,(0,X.jsx)(c,{children:s(e?.followingCount||0)})]}),(0,X.jsxs)(l,{value:`followers`,children:[`Followers`,(0,X.jsx)(c,{children:s(e?.followerCount||0)})]})]}),(0,X.jsx)(u,{value:`posts`,children:(I||L)&&!R?(0,X.jsxs)(E,{children:[(0,X.jsx)(J,{children:(0,X.jsx)(be,{})}),(0,X.jsxs)(`div`,{className:`mt-2 flex flex-col items-center gap-0.5`,children:[(0,X.jsxs)(h,{children:[e.name,` is blocked`]}),(0,X.jsx)(`p`,{children:`You can view the posts, but it won't unblock the user.`}),(0,X.jsx)(w,{className:`mt-4`,variant:`secondary`,onClick:()=>z(!0),children:`View posts`})]})]}):m}),O&&(0,X.jsx)(u,{value:`likes`,children:g}),(0,X.jsx)(u,{value:`following`,children:y}),(0,X.jsx)(u,{value:`followers`,children:b})]},C.handle||e?.handle||`current-user`)]})]})})})})},Pe=({handle:e})=>{let{postsByAccountQuery:t}=L(e||`me`,{enabled:!0}),{data:n,fetchNextPage:r,hasNextPage:i,isFetchingNextPage:a,isLoading:o}=t,s=n?.pages.flatMap(e=>e.posts)??Array.from({length:5},(e,t)=>({id:`placeholder-${t}`,object:{}}));return(0,X.jsx)(Ae,{fetchNextPage:r,hasNextPage:i,isFetchingNextPage:a,isLoading:o,noResultsMessage:e?`${e} hasn't posted anything yet`:`You haven't posted anything yet.`,posts:s})},Fe=()=>{let{postsLikedByAccountQuery:e}=g({enabled:!0}),{data:t,fetchNextPage:n,hasNextPage:r,isFetchingNextPage:i,isLoading:a}=e;return(0,X.jsx)(Z,{fetchNextPage:n,hasNextPage:r,isFetchingNextPage:i,isLoading:a,posts:t?.pages.flatMap(e=>e.posts)??Array.from({length:5},(e,t)=>({id:`placeholder-${t}`,object:{}}))})},Ie=({handle:e})=>{let{data:t,fetchNextPage:n,hasNextPage:r,isFetchingNextPage:i,isLoading:a}=B(e===``?`me`:e,`following`);return(0,X.jsx)(ke,{actors:t?.pages.flatMap(e=>`following`in e?e.following:`accounts`in e?e.accounts.map(e=>({actor:{id:e.id,name:e.name,handle:e.handle,icon:{url:e.avatarUrl}},isFollowing:e.isFollowing,blockedByMe:e.blockedByMe,domainBlockedByMe:e.domainBlockedByMe})):[])??[],fetchNextPage:n,hasNextPage:r,isFetchingNextPage:i,isLoading:a,noResultsMessage:`${e||`You`} have no following`})},Le=({handle:e})=>{let{data:t,fetchNextPage:n,hasNextPage:r,isFetchingNextPage:i,isLoading:a}=B(e===``?`me`:e,`followers`);return(0,X.jsx)(ke,{actors:t?.pages.flatMap(e=>`followers`in e?e.followers:`accounts`in e?e.accounts.map(e=>({actor:{id:e.id,name:e.name,handle:e.handle,icon:{url:e.avatarUrl}},isFollowing:e.isFollowing})):[])??[],fetchNextPage:n,hasNextPage:r,isFetchingNextPage:i,isLoading:a,noResultsMessage:`${e||`You`} have no followers yet`})},Re=()=>{let e=a(),{data:t,isLoading:n,error:r,refetch:i}=P(`index`,e.handle||`me`);if((0,Y.useEffect)(()=>{i()},[e.handle,i]),r&&fe(r)&&r.statusCode!==404)return(0,X.jsx)(y,{errorCode:r.code,statusCode:r.statusCode});let o=Object.keys(t?.customFields||{}).map(e=>({name:e,value:t.customFields[e]}))||[],s=(0,X.jsx)(Pe,{handle:e.handle||``}),c=(0,X.jsx)(Fe,{}),l=(0,X.jsx)(Ie,{handle:e.handle||``});return(0,X.jsx)($,{account:t,customFields:o,followersTab:(0,X.jsx)(Le,{handle:e.handle||``}),followingTab:l,isLoadingAccount:n,likesTab:c,postsTab:s})};export{Re 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{a as i,c as a,d as o,i as s,n as c,o as l,r as u,s as d,t as f,u as p}from"./Combination-CJG7Flp-.js";import{a as m,c as h,n as g}from"./dist-DGzPJ_bO.js";import{t as _}from"./shade-app-B3heOAfz-CGXQwWeO.js";import{n as v,r as y,t as b}from"./dist-CQJY6SVY.js";import{t as x}from"./dist-P_ohUlTi.js";import{a as S,i as C,n as w,r as T,t as E}from"./dist-CjY-f5Z1.js";import{n as D}from"./dist-2Tnz2Yfq.js";import{t as O}from"./dist-JLOy8o0Q.js";import{t as k}from"./input-surface-BpAjZXY5.js";import{$o as A,Ci as j,Si as ee,Xo as M,es as N}from"./index-ukW_0Uie.js";var P=e(t(),1),F=e(n(),1),I=r();function L(e,[t,n]){return Math.min(n,Math.max(t,e))}var R=[` `,`Enter`,`ArrowUp`,`ArrowDown`],z=[` `,`Enter`],B=`Select`,[V,H,U]=j(B),[W,te]=y(B,[U,S]),G=S(),[ne,K]=W(B),[re,ie]=W(B),q=`SelectProvider`;function ae(e){let{__scopeSelect:t,children:n,open:r,defaultOpen:a,onOpenChange:o,value:s,defaultValue:c,onValueChange:l,dir:u,name:d,autoComplete:f,disabled:m,required:h,form:g,internal_do_not_use_render:_}=e,v=G(t),[y,b]=P.useState(null),[x,S]=P.useState(null),[w,T]=P.useState(!1),E=ee(u),[D,O]=p({prop:r,defaultProp:a??!1,onChange:o,caller:B}),[k,A]=p({prop:s,defaultProp:c,onChange:l,caller:B}),j=P.useRef(null),M=y?!!g||!!y.closest(`form`):!0,[N,F]=P.useState(new Set),L=i(),R=Array.from(N).map(e=>e.props.value).join(`;`),z=P.useCallback(e=>{F(t=>new Set(t).add(e))},[]),H=P.useCallback(e=>{F(t=>{let n=new Set(t);return n.delete(e),n})},[]),U={required:h,trigger:y,onTriggerChange:b,valueNode:x,onValueNodeChange:S,valueNodeHasChildren:w,onValueNodeHasChildrenChange:T,contentId:L,value:k,onValueChange:A,open:D,onOpenChange:O,dir:E,triggerPointerDownPosRef:j,disabled:m,name:d,autoComplete:f,form:g,nativeOptions:N,nativeSelectKey:R,isFormControl:M};return(0,I.jsx)(C,{...v,children:(0,I.jsx)(ne,{scope:t,...U,children:(0,I.jsx)(V.Provider,{scope:t,children:(0,I.jsx)(re,{scope:t,onNativeOptionAdd:z,onNativeOptionRemove:H,children:et(_)?_(U):n})})})})}ae.displayName=q;var oe=e=>{let{__scopeSelect:t,children:n,...r}=e;return(0,I.jsx)(ae,{__scopeSelect:t,...r,internal_do_not_use_render:({isFormControl:e})=>(0,I.jsxs)(I.Fragment,{children:[n,e?(0,I.jsx)($e,{__scopeSelect:t}):null]})})};oe.displayName=B;var se=`SelectTrigger`,ce=P.forwardRef((e,t)=>{let{__scopeSelect:n,disabled:r=!1,...i}=e,a=G(n),s=K(se,n),c=s.disabled||r,l=m(t,s.onTriggerChange),u=H(n),d=P.useRef(`touch`),[f,p,h]=tt(e=>{let t=u().filter(e=>!e.disabled),n=nt(t,e,t.find(e=>e.value===s.value));n!==void 0&&s.onValueChange(n.value)}),g=e=>{c||(s.onOpenChange(!0),h()),e&&(s.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,I.jsx)(E,{asChild:!0,...a,children:(0,I.jsx)(x.button,{type:`button`,role:`combobox`,"aria-controls":s.open?s.contentId:void 0,"aria-expanded":s.open,"aria-required":s.required,"aria-autocomplete":`none`,dir:s.dir,"data-state":s.open?`open`:`closed`,disabled:c,"data-disabled":c?``:void 0,"data-placeholder":$(s.value)?``:void 0,...i,ref:l,onClick:o(i.onClick,e=>{e.currentTarget.focus(),d.current!==`mouse`&&g(e)}),onPointerDown:o(i.onPointerDown,e=>{d.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(g(e),e.preventDefault())}),onKeyDown:o(i.onKeyDown,e=>{let t=f.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&p(e.key),!(t&&e.key===` `)&&R.includes(e.key)&&(g(),e.preventDefault())})})})});ce.displayName=se;var le=`SelectValue`,ue=P.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:i,children:a,placeholder:o=``,...s}=e,c=K(le,n),{onValueNodeHasChildrenChange:l}=c,u=a!==void 0,d=m(t,c.onValueNodeChange);v(()=>{l(u)},[l,u]);let f=$(c.value);return(0,I.jsx)(x.span,{...s,asChild:f?!1:s.asChild,ref:d,style:{pointerEvents:`none`},children:(0,I.jsx)(P.Fragment,{children:f?o:a},f?`placeholder`:`value`)})});ue.displayName=le;var de=`SelectIcon`,fe=P.forwardRef((e,t)=>{let{__scopeSelect:n,children:r,...i}=e;return(0,I.jsx)(x.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})});fe.displayName=de;var pe=`SelectPortal`,[me,he]=W(pe,{forceMount:void 0}),ge=e=>{let{__scopeSelect:t,forceMount:n,...r}=e;return(0,I.jsx)(me,{scope:e.__scopeSelect,forceMount:n,children:(0,I.jsx)(s,{asChild:!0,...r})})};ge.displayName=pe;var J=`SelectContent`,_e=P.forwardRef((e,t)=>{let n=he(J,e.__scopeSelect),{forceMount:r=n.forceMount,...i}=e,a=K(J,e.__scopeSelect),[o,s]=P.useState();return v(()=>{s(new DocumentFragment)},[]),(0,I.jsx)(u,{present:r||a.open,children:({present:e})=>e?(0,I.jsx)(Se,{...i,ref:t}):(0,I.jsx)(ve,{...i,fragment:o})})});_e.displayName=J;var ve=P.forwardRef((e,t)=>{let{__scopeSelect:n,children:r,fragment:i}=e;return i?F.createPortal((0,I.jsx)(ye,{scope:n,children:(0,I.jsx)(V.Slot,{scope:n,children:(0,I.jsx)(`div`,{ref:t,children:r})})}),i):null});ve.displayName=`SelectContentFragment`;var Y=10,[ye,X]=W(J),be=`SelectContentImpl`,xe=g(`SelectContent.RemoveScroll`),Se=P.forwardRef((e,t)=>{let{__scopeSelect:n}=e,{position:r=`item-aligned`,onCloseAutoFocus:i,onEscapeKeyDown:s,onPointerDownOutside:u,side:p,sideOffset:h,align:g,alignOffset:_,arrowPadding:v,collisionBoundary:y,collisionPadding:b,sticky:x,hideWhenDetached:S,avoidCollisions:C,...w}=e,T=K(J,n),[E,D]=P.useState(null),[O,k]=P.useState(null),A=m(t,D),[j,ee]=P.useState(null),[M,N]=P.useState(null),F=H(n),[L,R]=P.useState(!1),z=P.useRef(!1);P.useEffect(()=>{if(E)return c(E)},[E]),d();let B=P.useCallback(e=>{let[t,...n]=F().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&O&&(O.scrollTop=0),n===r&&O&&(O.scrollTop=O.scrollHeight),n?.focus(),document.activeElement!==i))return},[F,O]),V=P.useCallback(()=>B([j,E]),[B,j,E]);P.useEffect(()=>{L&&V()},[L,V]);let{onOpenChange:U,triggerPointerDownPosRef:W}=T;P.useEffect(()=>{if(E){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(W.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(W.current?.y??0))}},n=n=>{e.x<=10&&e.y<=10?n.preventDefault():n.composedPath().includes(E)||U(!1),document.removeEventListener(`pointermove`,t),W.current=null};return W.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[E,U,W]),P.useEffect(()=>{let e=()=>U(!1);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[U]);let[te,G]=tt(e=>{let t=F().filter(e=>!e.disabled),n=nt(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current?.focus())}),ne=P.useCallback((e,t,n)=>{let r=!z.current&&!n;(T.value!==void 0&&T.value===t||r)&&(ee(e),r&&(z.current=!0))},[T.value]),re=P.useCallback(()=>E?.focus(),[E]),ie=P.useCallback((e,t,n)=>{let r=!z.current&&!n;(T.value!==void 0&&T.value===t||r)&&N(e)},[T.value]),q=r===`popper`?Ee:we,ae=q===Ee?{side:p,sideOffset:h,align:g,alignOffset:_,arrowPadding:v,collisionBoundary:y,collisionPadding:b,sticky:x,hideWhenDetached:S,avoidCollisions:C}:{};return(0,I.jsx)(ye,{scope:n,content:E,viewport:O,onViewportChange:k,itemRefCallback:ne,selectedItem:j,onItemLeave:re,itemTextRefCallback:ie,focusSelectedItem:V,selectedItemText:M,position:r,isPositioned:L,searchRef:te,children:(0,I.jsx)(f,{as:xe,allowPinchZoom:!0,children:(0,I.jsx)(l,{asChild:!0,trapped:T.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:o(i,e=>{T.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,I.jsx)(a,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:s,onPointerDownOutside:u,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>T.onOpenChange(!1),children:(0,I.jsx)(q,{role:`listbox`,id:T.contentId,"data-state":T.open?`open`:`closed`,dir:T.dir,onContextMenu:e=>e.preventDefault(),...w,...ae,onPlaced:()=>R(!0),ref:A,style:{display:`flex`,flexDirection:`column`,outline:`none`,...w.style},onKeyDown:o(w.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&G(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=F().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>B(t)),e.preventDefault()}})})})})})})});Se.displayName=be;var Ce=`SelectItemAlignedPosition`,we=P.forwardRef((e,t)=>{let{__scopeSelect:n,onPlaced:r,...i}=e,a=K(J,n),o=X(J,n),[s,c]=P.useState(null),[l,u]=P.useState(null),d=m(t,u),f=H(n),p=P.useRef(!1),h=P.useRef(!0),{viewport:g,selectedItem:_,selectedItemText:y,focusSelectedItem:b}=o,S=P.useCallback(()=>{if(a.trigger&&a.valueNode&&s&&l&&g&&_&&y){let e=a.trigger.getBoundingClientRect(),t=l.getBoundingClientRect(),n=a.valueNode.getBoundingClientRect(),i=y.getBoundingClientRect();if(a.dir!==`rtl`){let r=i.left-t.left,a=n.left-r,o=e.left-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-Y,d=L(a,[Y,Math.max(Y,u-l)]);s.style.minWidth=c+`px`,s.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-Y,d=L(a,[Y,Math.max(Y,u-l)]);s.style.minWidth=c+`px`,s.style.right=d+`px`}let o=f(),c=window.innerHeight-Y*2,u=g.scrollHeight,d=window.getComputedStyle(l),m=parseInt(d.borderTopWidth,10),h=parseInt(d.paddingTop,10),v=parseInt(d.borderBottomWidth,10),b=parseInt(d.paddingBottom,10),x=m+h+u+b+v,S=Math.min(_.offsetHeight*5,x),C=window.getComputedStyle(g),w=parseInt(C.paddingTop,10),T=parseInt(C.paddingBottom,10),E=e.top+e.height/2-Y,D=c-E,O=_.offsetHeight/2,k=_.offsetTop+O,A=m+h+k,j=x-A;if(A<=E){let e=o.length>0&&_===o[o.length-1].ref.current;s.style.bottom=`0px`;let t=l.clientHeight-g.offsetTop-g.offsetHeight,n=A+Math.max(D,O+(e?T:0)+t+v);s.style.height=n+`px`}else{let e=o.length>0&&_===o[0].ref.current;s.style.top=`0px`;let t=Math.max(E,m+g.offsetTop+(e?w:0)+O)+j;s.style.height=t+`px`,g.scrollTop=A-E+g.offsetTop}s.style.margin=`${Y}px 0`,s.style.minHeight=S+`px`,s.style.maxHeight=c+`px`,r?.(),requestAnimationFrame(()=>p.current=!0)}},[f,a.trigger,a.valueNode,s,l,g,_,y,a.dir,r]);v(()=>S(),[S]);let[C,w]=P.useState();return v(()=>{l&&w(window.getComputedStyle(l).zIndex)},[l]),(0,I.jsx)(De,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:p,onScrollButtonChange:P.useCallback(e=>{e&&h.current===!0&&(S(),b?.(),h.current=!1)},[S,b]),children:(0,I.jsx)(`div`,{ref:c,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:C},children:(0,I.jsx)(x.div,{...i,ref:d,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})});we.displayName=Ce;var Te=`SelectPopperPosition`,Ee=P.forwardRef((e,t)=>{let{__scopeSelect:n,align:r=`start`,collisionPadding:i=Y,...a}=e,o=G(n);return(0,I.jsx)(T,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})});Ee.displayName=Te;var[De,Oe]=W(J,{}),ke=`SelectViewport`,Ae=P.forwardRef((e,t)=>{let{__scopeSelect:n,nonce:r,...i}=e,a=X(ke,n),s=Oe(ke,n),c=m(t,a.onViewportChange),l=P.useRef(0);return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,I.jsx)(V.Slot,{scope:n,children:(0,I.jsx)(x.div,{"data-radix-select-viewport":``,role:`presentation`,...i,ref:c,style:{position:`relative`,flex:1,overflow:`hidden auto`,...i.style},onScroll:o(i.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=s;if(r?.current&&n){let e=Math.abs(l.current-t.scrollTop);if(e>0){let r=window.innerHeight-Y*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}l.current=t.scrollTop})})})]})});Ae.displayName=ke;var je=`SelectGroup`,[Me,Ne]=W(je),Pe=P.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,a=i();return(0,I.jsx)(Me,{scope:n,id:a,children:(0,I.jsx)(x.div,{role:`group`,"aria-labelledby":a,...r,ref:t})})});Pe.displayName=je;var Fe=`SelectLabel`,Ie=P.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=Ne(Fe,n);return(0,I.jsx)(x.div,{id:i.id,...r,ref:t})});Ie.displayName=Fe;var Z=`SelectItem`,[Le,Re]=W(Z),ze=P.forwardRef((e,t)=>{let{__scopeSelect:n,value:r,disabled:a=!1,textValue:s,...c}=e,l=K(Z,n),u=X(Z,n),d=l.value===r,[f,p]=P.useState(s??``),[h,g]=P.useState(!1),_=m(t,b(e=>u.itemRefCallback?.(e,r,a))),v=i(),y=P.useRef(`touch`),S=()=>{a||(l.onValueChange(r),l.onOpenChange(!1))};return(0,I.jsx)(Le,{scope:n,value:r,disabled:a,textId:v,isSelected:d,onItemTextChange:P.useCallback(e=>{p(t=>t||(e?.textContent??``).trim())},[]),children:(0,I.jsx)(V.ItemSlot,{scope:n,value:r,disabled:a,textValue:f,children:(0,I.jsx)(x.div,{role:`option`,"aria-labelledby":v,"data-highlighted":h?``:void 0,"aria-selected":d&&h,"data-state":d?`checked`:`unchecked`,"aria-disabled":a||void 0,"data-disabled":a?``:void 0,tabIndex:a?void 0:-1,...c,ref:_,onFocus:o(c.onFocus,()=>g(!0)),onBlur:o(c.onBlur,()=>g(!1)),onClick:o(c.onClick,()=>{y.current!==`mouse`&&S()}),onPointerUp:o(c.onPointerUp,()=>{y.current===`mouse`&&S()}),onPointerDown:o(c.onPointerDown,e=>{y.current=e.pointerType}),onPointerMove:o(c.onPointerMove,e=>{y.current=e.pointerType,a?u.onItemLeave?.():y.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:o(c.onPointerLeave,e=>{e.currentTarget===document.activeElement&&u.onItemLeave?.()}),onKeyDown:o(c.onKeyDown,e=>{u.searchRef?.current!==``&&e.key===` `||(z.includes(e.key)&&S(),e.key===` `&&e.preventDefault())})})})})});ze.displayName=Z;var Q=`SelectItemText`,Be=P.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:i,...a}=e,o=K(Q,n),s=X(Q,n),c=Re(Q,n),l=ie(Q,n),[u,d]=P.useState(null),f=b(e=>s.itemTextRefCallback?.(e,c.value,c.disabled)),p=m(t,d,c.onItemTextChange,f),h=u?.textContent,g=P.useMemo(()=>(0,I.jsx)(`option`,{value:c.value,disabled:c.disabled,children:h},c.value),[c.disabled,c.value,h]),{onNativeOptionAdd:_,onNativeOptionRemove:y}=l;return v(()=>(_(g),()=>y(g)),[_,y,g]),(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(x.span,{id:c.textId,...a,ref:p}),c.isSelected&&o.valueNode&&!o.valueNodeHasChildren&&!$(o.value)?F.createPortal(a.children,o.valueNode):null]})});Be.displayName=Q;var Ve=`SelectItemIndicator`,He=P.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return Re(Ve,n).isSelected?(0,I.jsx)(x.span,{"aria-hidden":!0,...r,ref:t}):null});He.displayName=Ve;var Ue=`SelectScrollUpButton`,We=P.forwardRef((e,t)=>{let n=X(Ue,e.__scopeSelect),r=Oe(Ue,e.__scopeSelect),[i,a]=P.useState(!1),o=m(t,r.onScrollButtonChange);return v(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollTop>0;a(e)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,I.jsx)(qe,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null});We.displayName=Ue;var Ge=`SelectScrollDownButton`,Ke=P.forwardRef((e,t)=>{let n=X(Ge,e.__scopeSelect),r=Oe(Ge,e.__scopeSelect),[i,a]=P.useState(!1),o=m(t,r.onScrollButtonChange);return v(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight,n=Math.ceil(t.scrollTop)<e;a(n)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,I.jsx)(qe,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null});Ke.displayName=Ge;var qe=P.forwardRef((e,t)=>{let{__scopeSelect:n,onAutoScroll:r,...i}=e,a=X(`SelectScrollButton`,n),s=P.useRef(null),c=H(n),l=P.useCallback(()=>{s.current!==null&&(window.clearInterval(s.current),s.current=null)},[]);return P.useEffect(()=>()=>l(),[l]),v(()=>{c().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[c]),(0,I.jsx)(x.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:o(i.onPointerDown,()=>{s.current===null&&(s.current=window.setInterval(r,50))}),onPointerMove:o(i.onPointerMove,()=>{a.onItemLeave?.(),s.current===null&&(s.current=window.setInterval(r,50))}),onPointerLeave:o(i.onPointerLeave,()=>{l()})})}),Je=`SelectSeparator`,Ye=P.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return(0,I.jsx)(x.div,{"aria-hidden":!0,...r,ref:t})});Ye.displayName=Je;var Xe=`SelectArrow`,Ze=P.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=G(n);return X(Xe,n).position===`popper`?(0,I.jsx)(w,{...i,...r,ref:t}):null});Ze.displayName=Xe;var Qe=`SelectBubbleInput`,$e=P.forwardRef(({__scopeSelect:e,...t},n)=>{let r=K(Qe,e),{value:i,onValueChange:a,required:o,disabled:s,name:c,autoComplete:l,form:u}=r,{nativeOptions:d,nativeSelectKey:f}=r,p=P.useRef(null),h=m(n,p),g=i??``,_=O(g),v=Array.from(d).some(e=>(e.props.value??``)===``);return P.useEffect(()=>{let e=p.current;if(!e)return;let t=window.HTMLSelectElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set;if(_!==g&&n){let t=new Event(`change`,{bubbles:!0});n.call(e,g),e.dispatchEvent(t)}},[_,g]),(0,I.jsxs)(x.select,{"aria-hidden":!0,required:o,tabIndex:-1,name:c,autoComplete:l,disabled:s,form:u,onChange:e=>a(e.target.value),...t,style:{...D,...t.style},ref:h,defaultValue:g,children:[$(i)&&!v?(0,I.jsx)(`option`,{value:``}):null,Array.from(d)]},f)});$e.displayName=Qe;function et(e){return typeof e==`function`}function $(e){return e===``||e===void 0}function tt(e){let t=b(e),n=P.useRef(``),r=P.useRef(0),i=P.useCallback(e=>{let i=n.current+e;t(i),(function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))})(i)},[t]),a=P.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return P.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}function nt(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=rt(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}function rt(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var it=({open:e,defaultOpen:t,onOpenChange:n,children:r,...i})=>{let a=e!==void 0,[o,s]=P.useState(t??!1),c=a?e:o,l=P.useCallback(e=>{a||s(e),n?.(e)},[a,n]),u=P.useRef(l);return P.useEffect(()=>{u.current=l},[l]),P.useEffect(()=>{if(!c)return;let e=e=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),u.current(!1))};return document.addEventListener(`keydown`,e,{capture:!0}),()=>document.removeEventListener(`keydown`,e,{capture:!0})},[c]),(0,I.jsx)(oe,{...i,open:c,onOpenChange:l,children:r})},at=Pe,ot=ue,st=P.forwardRef(({className:e,children:t,...n},r)=>(0,I.jsxs)(ce,{ref:r,className:h(k(`self`),`flex h-(--control-height) w-full items-center justify-between px-3 py-2 text-control whitespace-nowrap hover:bg-button-hover data-[placeholder]:text-muted-foreground [&>span]:line-clamp-1`,e),...n,children:[t,(0,I.jsx)(fe,{asChild:!0,children:(0,I.jsx)(A,{className:`-mr-0.5 ml-1 size-4 opacity-50`})})]}));st.displayName=ce.displayName;var ct=P.forwardRef(({className:e,...t},n)=>(0,I.jsx)(We,{ref:n,className:h(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,I.jsx)(M,{className:`size-4`})}));ct.displayName=We.displayName;var lt=P.forwardRef(({className:e,...t},n)=>(0,I.jsx)(Ke,{ref:n,className:h(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,I.jsx)(A,{className:`size-4`})}));lt.displayName=Ke.displayName;var ut=P.forwardRef(({className:e,children:t,position:n=`popper`,...r},i)=>(0,I.jsx)(ge,{children:(0,I.jsx)(`div`,{className:_,children:(0,I.jsxs)(_e,{ref:i,className:h(`relative z-[9999] max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-border/60 bg-surface-elevated-2 text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 dark:border-border/30`,n===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,e),position:n,...r,children:[(0,I.jsx)(ct,{}),(0,I.jsx)(Ae,{className:h(`p-1`,n===`popper`&&`h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]`),children:t}),(0,I.jsx)(lt,{})]})})}));ut.displayName=_e.displayName;var dt=P.forwardRef(({className:e,...t},n)=>(0,I.jsx)(Ie,{ref:n,className:h(`px-2 py-1.5 text-control font-semibold`,e),...t}));dt.displayName=Ie.displayName;var ft=P.forwardRef(({className:e,children:t,...n},r)=>(0,I.jsxs)(ze,{ref:r,className:h(`relative flex w-full cursor-default items-center rounded-xs py-1.5 pr-8 pl-2 text-control outline-hidden select-none focus:bg-interactive-hover focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,e),...n,children:[(0,I.jsx)(`span`,{className:`absolute right-2 flex size-3.5 items-center justify-center`,children:(0,I.jsx)(He,{children:(0,I.jsx)(N,{className:`size-4`})})}),(0,I.jsx)(Be,{children:t})]}));ft.displayName=ze.displayName;var pt=P.forwardRef(({className:e,...t},n)=>(0,I.jsx)(Ye,{ref:n,className:h(`-mx-1 my-1 h-px bg-muted`,e),...t}));pt.displayName=Ye.displayName;export{dt as a,L as c,ft as i,ut as n,st as o,at as r,ot as s,it as t};
|