ghost 6.61.0 → 6.63.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/ghost-storage-base-3.0.0.tgz +0 -0
- package/components/tryghost-adapter-base-cache-0.2.0.tgz +0 -0
- package/components/tryghost-adapter-base-jobs-0.0.0.tgz +0 -0
- package/components/tryghost-adapter-base-redirects-0.0.0.tgz +0 -0
- package/components/tryghost-adapter-base-route-settings-0.0.0.tgz +0 -0
- 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-checkout-0.0.0.tgz +0 -0
- package/components/tryghost-i18n-0.0.0.tgz +0 -0
- package/components/tryghost-kg-card-factory-5.2.4.tgz +0 -0
- package/components/tryghost-kg-clean-basic-html-4.3.4.tgz +0 -0
- package/components/tryghost-kg-converters-1.2.5.tgz +0 -0
- package/components/tryghost-kg-default-cards-10.3.5.tgz +0 -0
- package/components/tryghost-kg-default-nodes-2.2.1.tgz +0 -0
- package/components/tryghost-kg-default-transforms-1.3.4.tgz +0 -0
- package/components/tryghost-kg-html-to-lexical-1.4.0.tgz +0 -0
- package/components/tryghost-kg-lexical-html-renderer-1.5.0.tgz +0 -0
- package/components/tryghost-kg-markdown-html-renderer-7.2.4.tgz +0 -0
- package/components/tryghost-kg-utils-1.1.4.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/components/tryghost-nql-string-0.0.0.tgz +0 -0
- package/components/tryghost-parse-email-address-0.0.0.tgz +0 -0
- package/content/settings/README.md +1 -1
- package/content/themes/casper/.gitignore +28 -0
- package/content/themes/casper/assets/built/casper.js +1 -1
- package/content/themes/casper/assets/built/screen.css +1 -1
- package/content/themes/casper/assets/css/screen.css +2 -1
- package/content/themes/casper/assets/js/lightbox.js +63 -46
- package/content/themes/casper/package.json +6 -6
- package/content/themes/casper/page.hbs +1 -0
- package/content/themes/casper/post.hbs +1 -0
- package/content/themes/source/.gitignore +28 -0
- package/content/themes/source/assets/built/screen.css +1 -1
- package/content/themes/source/assets/built/source.js +1 -1
- package/content/themes/source/assets/css/screen.css +2 -1
- package/content/themes/source/assets/js/lightbox.js +62 -45
- package/content/themes/source/assets/js/main.js +2 -2
- package/content/themes/source/package.json +4 -4
- package/content/themes/source/partials/feature-image.hbs +1 -0
- package/content/themes/source/partials/post-card.hbs +1 -1
- package/core/boot.js +61 -27
- package/core/built/admin/assets/Combination-B0l4MKVh.js +41 -0
- package/core/built/admin/assets/InterVariable-DiVDrmQJ.woff2 +0 -0
- package/core/built/admin/assets/InterVariable-Italic-FCBEiFp6.woff2 +0 -0
- package/core/built/admin/assets/{about-Bve7IJS2.js → about-C1C3s5-g.js} +1 -1
- package/core/built/admin/assets/accordion-CxGsDKwa.js +1 -0
- package/core/built/admin/assets/account-migration-CbUhW6gk.js +1 -0
- package/core/built/admin/assets/activitypub/{account-migration-C-aej4x_.js → account-migration-KA6Jjf9L.js} +16 -16
- package/core/built/admin/assets/activitypub/activitypub.js +9 -9
- package/core/built/admin/assets/activitypub/{avatar-DLPL3Abs.js → avatar-DVJF5bxP.js} +2 -2
- package/core/built/admin/assets/activitypub/{avatar-flipboard-C9iDY-QV.js → avatar-flipboard-csQaNeYK.js} +2 -2
- package/core/built/admin/assets/activitypub/{bluesky-sharing-BXkA5mqV.js → bluesky-sharing-C7nTDMvw.js} +37 -37
- package/core/built/admin/assets/activitypub/{content-formatters-CHcyMFk4.js → content-formatters-CLcjaBwV.js} +4 -4
- package/core/built/admin/assets/activitypub/{copy-DIAOQoCZ.js → copy-DcOh8kXw.js} +2 -2
- package/core/built/admin/assets/activitypub/{domain-B3ihkPde.js → domain-fZ-X8i4-.js} +121 -121
- package/core/built/admin/assets/activitypub/{edit-profile-DsZM3rTX.js → edit-profile-BqMLQV88.js} +40 -40
- package/core/built/admin/assets/activitypub/{explore-BodNrZgR.js → explore-B4yPoP8E.js} +27 -27
- package/core/built/admin/assets/activitypub/{feed-PwH1iJ84.js → feed-BRC_mvAe.js} +51 -51
- package/core/built/admin/assets/activitypub/{field-D06-kmOJ.js → field-COacNgOt.js} +3 -3
- package/core/built/admin/assets/activitypub/{hash-Bm3WxYN4.js → hash-C7u-irQQ.js} +2 -2
- package/core/built/admin/assets/activitypub/inbox-BW-yvUoN.js +1284 -0
- package/core/built/admin/assets/activitypub/{inbox-d8oJRTf4.js → inbox-CbTTdDQ3.js} +2 -2
- package/core/built/admin/assets/activitypub/label-kPMmYI7l.js +16 -0
- package/core/built/admin/assets/activitypub/layout-BL4_jtuV.js +1 -0
- package/core/built/admin/assets/activitypub/{moderation-D1Yapsod.js → moderation-CuidJzc0.js} +91 -91
- package/core/built/admin/assets/activitypub/{note-C5zjqq5C.js → note-CAMRRSqD.js} +24 -24
- package/core/built/admin/assets/activitypub/{notifications-B9p8eCHD.js → notifications-BmNlXGgp.js} +51 -51
- package/core/built/admin/assets/activitypub/{onboarding-CNelD_uF.js → onboarding-Bqg7fh_L.js} +2 -2
- package/core/built/admin/assets/activitypub/{onboarding-mat5Hrl0.js → onboarding-Dmun9jr_.js} +2 -2
- package/core/built/admin/assets/activitypub/{preferences-BCqUdC3v.js → preferences--oH19wf9.js} +1519 -1519
- package/core/built/admin/assets/activitypub/{profile-BRCWoFem.js → profile-DH_tQx2D.js} +185 -185
- package/core/built/admin/assets/activitypub/{reply-DYK5vVqb.js → reply-Cap9PxSH.js} +2 -2
- package/core/built/admin/assets/activitypub/{routes-BSXT992i.js → routes-DdyY9uFF.js} +744 -735
- package/core/built/admin/assets/activitypub/{separator-BbQqTm-p.js → separator-CAxxu8VV.js} +3 -3
- package/core/built/admin/assets/activitypub/settings-B6EEcVkW.js +315 -0
- package/core/built/admin/assets/activitypub/{site-DHoMupSB.js → site-BYps63oh.js} +2 -2
- package/core/built/admin/assets/activitypub/{step-1-B-YfsVeO.js → step-1-CKjR2KAm.js} +6 -6
- package/core/built/admin/assets/activitypub/{step-2-DtPQzlTH.js → step-2-B6PKfOUQ.js} +6 -6
- package/core/built/admin/assets/activitypub/{step-3-D6BFMXL_.js → step-3-C-qBbcUo.js} +11 -11
- package/core/built/admin/assets/activitypub/{tabs-GpNecvfB.js → tabs-DLhZtVde.js} +306 -306
- package/core/built/admin/assets/activitypub/{topic-filter-BPDeQQys.js → topic-filter-DsUOuu0k.js} +3 -3
- package/core/built/admin/assets/activitypub/{use-activity-pub-queries-BoVOxXkV.js → use-activity-pub-queries-CX9snsLs.js} +3 -3
- package/core/built/admin/assets/activitypub/{use-navigate-with-base-path-Bmk5h4lW.js → use-navigate-with-base-path-DsJTGDSS.js} +988 -959
- package/core/built/admin/assets/activitypub/{use-reply-chain-data-wVBX7swM.js → use-reply-chain-data-AJi9zkzm.js} +30 -30
- package/core/built/admin/assets/activitypub/{users-CoX6FT_K.js → users-inweyKL5.js} +192 -164
- package/core/built/admin/assets/activitypub/{x-DbQZOLiI.js → x-DR8AT3-4.js} +2 -2
- package/core/built/admin/assets/add-integration-modal-BT_onDJy.js +1 -0
- package/core/built/admin/assets/add-newsletter-modal-Cx1kQpiY.js +1 -0
- package/core/built/admin/assets/add-recommendation-modal-B5nvAhvr.js +1 -0
- package/core/built/admin/assets/analytics-DjoJWPI7.js +1 -0
- package/core/built/admin/assets/{announcement-bar-modal-DM3cYOpo.js → announcement-bar-modal-Dwd0EGFP.js} +1 -1
- package/core/built/admin/assets/{api-keys-3-0vJC3Y.js → api-keys-BGPzLHzA.js} +1 -1
- package/core/built/admin/assets/{api-keys-BLm2NDBh.js → api-keys-BoeacM-s.js} +1 -1
- package/core/built/admin/assets/{audience-9mwU5TW6.js → audience-ceV3XVHq.js} +1 -1
- package/core/built/admin/assets/automated-emails-BLesE41L.js +1 -0
- package/core/built/admin/assets/{automations-sAcJ1334.js → automations-BN4u3GR8.js} +1 -1
- package/core/built/admin/assets/automations-C-ZTUwW3.js +1 -0
- package/core/built/admin/assets/bluesky-sharing-vzh-oPXL.js +1 -0
- package/core/built/admin/assets/{breadcrumb-DLiqCyFc.js → breadcrumb-CaLk2b7D.js} +1 -1
- package/core/built/admin/assets/{button-B2jcu6bk.js → button-Dvcv1QSR.js} +1 -1
- package/core/built/admin/assets/calendar-Bl9RLcZX.js +1 -0
- package/core/built/admin/assets/{chart-helpers-Fo3bUL3K.js → chart-helpers-FHywU0pj.js} +1 -1
- package/core/built/admin/assets/{checkbox-BfKktMph.js → checkbox-BtayFtjg.js} +1 -1
- package/core/built/admin/assets/chunk.254.035b85ec456ebbd7336b.js +440 -0
- package/core/built/admin/assets/{chunk.524.60ca4692d91c6022042f.js → chunk.524.e6975095fccdf22d90f8.js} +5 -5
- package/core/built/admin/assets/{chunk.582.525c7617c2d9e94c940a.js → chunk.582.98b485f9b2802f540897.js} +6 -6
- package/core/built/admin/assets/{chunk.492.f24d855d7e3f3aad261c.js → chunk.901.4ccc639821020230bcca.js} +9949 -7921
- package/core/built/admin/assets/{code-editor-view-DCQJxsfU.js → code-editor-view-C3ZfoF1X.js} +1 -1
- package/core/built/admin/assets/{code-editor-view-CYVu4EW6.js → code-editor-view-CAyRWy1s.js} +1 -1
- package/core/built/admin/assets/color-picker-G4kGR7rp.js +3 -0
- package/core/built/admin/assets/color-picker-field-DQFVTNnT.js +1 -0
- package/core/built/admin/assets/combobox-BnYzgEB4.js +1 -0
- package/core/built/admin/assets/command-C_vyTikI.js +1 -0
- package/core/built/admin/assets/comments-aBrxfnZf.js +1 -0
- package/core/built/admin/assets/{config-DOMQDZGZ.js → config-kSHvwdTG.js} +1 -1
- package/core/built/admin/assets/confirmation-context-DwXX_Y5h.js +1 -0
- package/core/built/admin/assets/{content-api-modal-CyQEC3fr.js → content-api-modal-D2G0nJP6.js} +1 -1
- package/core/built/admin/assets/context-menu-DOVB6yaz.js +1 -0
- package/core/built/admin/assets/{copy-field-B3M1s78L.js → copy-field-DCJwh9qf.js} +1 -1
- package/core/built/admin/assets/create-ghost-browse-value-source-5C53jJaX.js +1 -0
- package/core/built/admin/assets/custom-field-type-option-BAuW0F-E.js +1 -0
- package/core/built/admin/assets/custom-integration-modal-AbJGVyKc.js +1 -0
- package/core/built/admin/assets/{date-range-select-DD2RKkgB.js → date-range-select-BY3K-ukj.js} +1 -1
- package/core/built/admin/assets/design-and-theme-modal-BvEy4_pC.js +2 -0
- package/core/built/admin/assets/dirty-confirm-dialog-DVPuGz3U.js +1 -0
- package/core/built/admin/assets/{disabled-sources-indicator-Cvy47bE2.js → disabled-sources-indicator-Cy7Zp4c8.js} +1 -1
- package/core/built/admin/assets/dist-Dcsslyo72.js +1 -0
- package/core/built/admin/assets/domain-Dl61QGuk.js +1 -0
- package/core/built/admin/assets/dropzone-Dtz5Rmjt.js +5 -0
- package/core/built/admin/assets/edit-profile-DNJSMDwm.js +1 -0
- package/core/built/admin/assets/editor-DbAen9zf.js +8 -0
- package/core/built/admin/assets/editor-screen-BFWThIai.js +26 -0
- package/core/built/admin/assets/email-sending-status-context-CWDOD1FN.js +1 -0
- package/core/built/admin/assets/email-sending-status-provider-DCPkDICt.js +1 -0
- package/core/built/admin/assets/emails-vFMk4yYl.js +1 -0
- package/core/built/admin/assets/{embed-signup-form-modal-DeBMLxlL.js → embed-signup-form-modal-DGqsORxS.js} +1 -1
- package/core/built/admin/assets/en-B1jX3WMs.js +1 -0
- package/core/built/admin/assets/explore-nnRr1Fja.js +1 -0
- package/core/built/admin/assets/feature-flag-overrides-context-DQjdJFAk.js +1 -0
- package/core/built/admin/assets/feature-image-placeholder-BrIHmPs8.js +1 -0
- package/core/built/admin/assets/feed-BNUcNu-W.js +1 -0
- package/core/built/admin/assets/feedback-DJ4Zb9rZ.js +1 -0
- package/core/built/admin/assets/{field-Cj8lmDOo.js → field-C93_Mg6j.js} +1 -1
- package/core/built/admin/assets/filter-bar-Da1qxybu.js +1 -0
- package/core/built/admin/assets/filter-sources-CGJb4C5r.js +1 -0
- package/core/built/admin/assets/filters--kKP-EC8.js +1 -0
- package/core/built/admin/assets/filters-DxA_a4FP.js +1 -0
- package/core/built/admin/assets/first-promoter-modal-BYDtrz2S.js +1 -0
- package/core/built/admin/assets/focus-koenig-editor-on-bottom-click-BbSnGOtK.js +1 -0
- package/core/built/admin/assets/{ghost-c8807202a07c20030acb719ee0114815.css → ghost-8fd5bb799356bbefb254210ba7e1236d.css} +1 -1
- package/core/built/admin/assets/{ghost-3894eedcc6968f658578c0abfe942aab.js → ghost-b4e8a403baba61905cd7560e30b9732d.js} +63 -44
- package/core/built/admin/assets/{ghost-dark-fbf1e384aaef3ae315e540f0eb7373a7.css → ghost-dark-cac0cb2d5bb78e9bd14d8d1c2768ed45.css} +1 -1
- package/core/built/admin/assets/gift-link-modal-B7u5bD4e.js +1 -0
- package/core/built/admin/assets/{gift-links-DLDS7ljO.js → gift-links-CfLSnst2.js} +1 -1
- package/core/built/admin/assets/{growth-D6mhcx3q.js → growth-Cd1uO9d2.js} +1 -1
- package/core/built/admin/assets/growth-aG32xfdE.js +3 -0
- package/core/built/admin/assets/history-modal-Df8lW8h-.js +1 -0
- package/core/built/admin/assets/hooks-Cy_-oZ4o.js +2 -0
- package/core/built/admin/assets/{html-field-C8qVGGC1.js → html-field-DA4eU7eq.js} +1 -1
- package/core/built/admin/assets/{images-h8VZEQ9k.js → images-KXmyO3Ss.js} +1 -1
- package/core/built/admin/assets/{inbox-BYd1M06Q.js → inbox-gJHG7_xd.js} +14 -14
- package/core/built/admin/assets/index-BHHXtR5C.css +2 -0
- package/core/built/admin/assets/index-CgMCwsxN.js +4 -0
- package/core/built/admin/assets/index.es-CY6-yuw9.js +1 -0
- package/core/built/admin/assets/{input-group-D8sCXRF5.js → input-group-BE8rM2y1.js} +1 -1
- package/core/built/admin/assets/{integrations-Bjbu86Z0.js → integrations-B4kuRBFY.js} +1 -1
- package/core/built/admin/assets/invite-user-modal-B4CuNcx4.js +1 -0
- package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +14 -14
- package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +3 -3
- package/core/built/admin/assets/koenig-lexical/style.css +1 -1
- package/core/built/admin/assets/{koenig-lexical-_-IsVI7E.js → koenig-lexical-CGXb0F8o.js} +3 -3
- package/core/built/admin/assets/koenig-loader-BeM5rFPX.js +2 -0
- package/core/built/admin/assets/{kpi-card-DZQk_0W8.js → kpi-card-B21aToe8.js} +1 -1
- package/core/built/admin/assets/{kpi-card-DW_2y3ug.js → kpi-card-pz6Wv4Ae.js} +1 -1
- package/core/built/admin/assets/{kpi-helpers-PueTKuA6.js → kpi-helpers-Dq5jelmP.js} +1 -1
- package/core/built/admin/assets/{kpi-tabs-CojDs-Qz.js → kpi-tabs-DEZHpKUt.js} +1 -1
- package/core/built/admin/assets/{label-DjbT91GM.js → label-OLCzze8N.js} +1 -1
- package/core/built/admin/assets/label-picker-BigOvMPV.js +1 -0
- package/core/built/admin/assets/{labels-CH3Kn8RV.js → labels-Dr0SgUQD.js} +1 -1
- package/core/built/admin/assets/layout-DUTL8SH5.js +1 -0
- package/core/built/admin/assets/lib-7QPTI0FS.js +1 -0
- package/core/built/admin/assets/link-helpers-BRAg9SCj.js +1 -0
- package/core/built/admin/assets/links-BDHPTlyj.js +1 -0
- package/core/built/admin/assets/member-custom-fields-TRTHCAz9.js +1 -0
- package/core/built/admin/assets/member-detail-b6dRwc3C.js +1 -0
- package/core/built/admin/assets/members-Czt5lJSc.js +4 -0
- package/core/built/admin/assets/moderation-ZWefD9uH.js +1 -0
- package/core/built/admin/assets/{multi-select-combobox-B6LiRzDO.js → multi-select-combobox-CT13MTo-.js} +1 -1
- package/core/built/admin/assets/navigation-modal-C8FEhBK5.js +1 -0
- package/core/built/admin/assets/newsletter-5VYW4RyJ.js +1 -0
- package/core/built/admin/assets/newsletter-detail-modal-ChjC0ZqH.js +1 -0
- package/core/built/admin/assets/{newsletter-emails-CFeLlt4z.js → newsletter-emails-DZH6I-PY.js} +1 -1
- package/core/built/admin/assets/newsletters-DOC9KBcX.js +1 -0
- package/core/built/admin/assets/newsletters-Rq1M3GD-.js +1 -0
- package/core/built/admin/assets/note-DIV-Pojr.js +1 -0
- package/core/built/admin/assets/notifications-s20-H49V.js +1 -0
- package/core/built/admin/assets/nql-BLpCn7qX.js +21 -0
- package/core/built/admin/assets/{offers-9J1CSiLy.js → offers--e2nGvkW.js} +1 -1
- package/core/built/admin/assets/offers-container-modal-BmG5M5Tv.js +1 -0
- package/core/built/admin/assets/onboarding-CUuy9unR.js +1 -0
- package/core/built/admin/assets/{onboarding-B4YhlZ0i.js → onboarding-pXyct0Jm.js} +1 -1
- package/core/built/admin/assets/{onboarding-route-Dmc4IPm3.js → onboarding-route-CK4pcXoR.js} +1 -1
- package/core/built/admin/assets/overview-CaPsciMs.js +1 -0
- package/core/built/admin/assets/overview-a8GfcsKX.js +1 -0
- package/core/built/admin/assets/{page-header-BR_nbIPp.js → page-header-DM_KyoFI.js} +1 -1
- package/core/built/admin/assets/pagemenu-vgZVUVKR.js +1 -0
- package/core/built/admin/assets/pages-CjDY2CBI.js +1 -0
- package/core/built/admin/assets/pages-route-BzKZYdV5.js +1 -0
- package/core/built/admin/assets/papaparse.min-cQwnxGCG.js +10 -0
- package/core/built/admin/assets/{pintura-modal-BR9hEvS8.js → pintura-modal-DExCF1ii.js} +1 -1
- package/core/built/admin/assets/portal-frame-Cqanidq4.js +1 -0
- package/core/built/admin/assets/portal-modal-oinBgA27.js +1 -0
- package/core/built/admin/assets/post-analytics-C5oJ1dWV.js +1 -0
- package/core/built/admin/assets/post-analytics-header-OATo3X_r.js +1 -0
- package/core/built/admin/assets/post-analytics-provider-tOpIVGT5.js +1 -0
- package/core/built/admin/assets/post-helpers-C88JBa4D.js +1 -0
- package/core/built/admin/assets/post-share-modal-DvhC1XgV.js +1 -0
- package/core/built/admin/assets/post-utils-DKF4mfuo.js +1 -0
- package/core/built/admin/assets/posts-list-screen-o4ZjbgS3.js +2 -0
- package/core/built/admin/assets/posts-pCPrhQeR.js +1 -0
- package/core/built/admin/assets/posts-route-9F--xdIb.js +1 -0
- package/core/built/admin/assets/preferences--vNubsqD.js +5 -0
- package/core/built/admin/assets/{preview-modal-C-BL-F9k.js → preview-modal-YYbzlYdO.js} +1 -1
- package/core/built/admin/assets/profile-BllKV3dR.js +1 -0
- package/core/built/admin/assets/{radio-group-Bgz60i81.js → radio-group-DL8GI8rt.js} +1 -1
- package/core/built/admin/assets/{referrers-CnhCMWCs.js → referrers-D8oHPmDB.js} +1 -1
- package/core/built/admin/assets/router-provider-BSvTXgZY.js +1 -0
- package/core/built/admin/assets/schemas-BoYdB6YU.js +64 -0
- package/core/built/admin/assets/select-v5YbA3Mw.js +1 -0
- package/core/built/admin/assets/settings-PEsZupw1.js +4 -0
- package/core/built/admin/assets/{settings-breadcrumbs-CyP_9zTo.js → settings-breadcrumbs-NwPnCTC7.js} +1 -1
- package/core/built/admin/assets/settings-u_s1CRkr.js +1 -0
- package/core/built/admin/assets/share-modal-SskCmVGL.js +1 -0
- package/core/built/admin/assets/slack-modal-XxSJiYgo.js +1 -0
- package/core/built/admin/assets/{sort-button-Cc-Z96sA.js → sort-button-Cx1KtINE.js} +1 -1
- package/core/built/admin/assets/{source-icon-v6PUnmyM.js → source-icon-Bdp9Im_5.js} +1 -1
- package/core/built/admin/assets/stats-D9PDLS3x.js +1 -0
- package/core/built/admin/assets/stats-view-W2g6Jsd-.js +1 -0
- package/core/built/admin/assets/{step-1-DSRp2vBj.js → step-1-BQYzvBzr.js} +1 -1
- package/core/built/admin/assets/{step-2-COqv2g0u.js → step-2-xES32xJV.js} +1 -1
- package/core/built/admin/assets/{step-3-6W1NMVQc.js → step-3-DA_XK5kW.js} +2 -2
- package/core/built/admin/assets/{stripe-button-D2K42Uty.js → stripe-button-CVsLHelt.js} +1 -1
- package/core/built/admin/assets/stripe-connect-modal-ClmLOMGS.js +1 -0
- package/core/built/admin/assets/style-Wd9nQubI.css +1 -0
- package/core/built/admin/assets/{table-B2pIKjVh.js → table-BenqVupI.js} +1 -1
- package/core/built/admin/assets/{tabs-SaW_UT-Q.js → tabs-eBBlxPp8.js} +1 -1
- package/core/built/admin/assets/tag-detail-Ce8Se2qd.js +2 -0
- package/core/built/admin/assets/tag-picker-C3UR-uJ-.js +1 -0
- package/core/built/admin/assets/tags-B-kJxCs7.js +1 -0
- package/core/built/admin/assets/{tags-zTFiKRpb.js → tags-ChfdwJyS.js} +1 -1
- package/core/built/admin/assets/testimonials-modal-9Q6fT06V.js +1 -0
- package/core/built/admin/assets/tier-detail-modal-CDyYdqK7.js +1 -0
- package/core/built/admin/assets/tiers-BCpIOGQr.js +1 -0
- package/core/built/admin/assets/{toggle-group-EM9WpESu.js → toggle-group-CviIkyok.js} +1 -1
- package/core/built/admin/assets/{topic-filter-DY4gNHn2.js → topic-filter-I2jCBGxm.js} +1 -1
- package/core/built/admin/assets/{transistor-modal-CpyPG-MH.js → transistor-modal-p53u3W8y.js} +1 -1
- package/core/built/admin/assets/{trend-badge-ByMkuAuH.js → trend-badge-CideVzQd.js} +1 -1
- package/core/built/admin/assets/{unsplash-modal-Cv2Q6GtY.js → unsplash-modal-DY8UcKcE.js} +1 -1
- package/core/built/admin/assets/{use-analytics-data-CHvjMYuT.js → use-analytics-data-DAIGcr2f.js} +1 -1
- package/core/built/admin/assets/use-check-theme-limit-error-B8bjF-gO.css +1 -0
- package/core/built/admin/assets/{use-check-theme-limit-error-Qv4SVXqw.js → use-check-theme-limit-error-DRUjK4YM.js} +1 -1
- package/core/built/admin/assets/use-filter-params-JkZhIS8L.js +1 -0
- package/core/built/admin/assets/{use-filterable-api-CzXcpUh8.js → use-filterable-api-BVEVMrhZ.js} +1 -1
- package/core/built/admin/assets/use-growth-stats-937CUj6j.js +1 -0
- package/core/built/admin/assets/use-host-limits-D0Dv3tKA.js +1 -0
- package/core/built/admin/assets/{use-limiter-cwJvsNBo.js → use-limiter-CohWfzvK.js} +1 -1
- package/core/built/admin/assets/{use-navigate-with-base-path-BHPA228f.js → use-navigate-with-base-path-BkxcPj5l.js} +1 -1
- package/core/built/admin/assets/use-pintura-config-xgytjU35.js +1 -0
- package/core/built/admin/assets/{use-pintura-editor-BDBXWUYq.js → use-pintura-editor-CaV1mbfO.js} +1 -1
- package/core/built/admin/assets/{use-post-referrers-DbY-mzci.js → use-post-referrers-BCQI7fDg.js} +1 -1
- package/core/built/admin/assets/use-reply-chain-data-CYRhoaxY.js +1 -0
- package/core/built/admin/assets/{use-router-history-entry-Bg6BhBQQ.js → use-router-history-entry-NOKcd--l.js} +1 -1
- package/core/built/admin/assets/{use-setting-group-VM7FQwMY.js → use-setting-group-bLKMwoBT.js} +1 -1
- package/core/built/admin/assets/use-settings-navigation-B-qrriKD.js +1 -0
- package/core/built/admin/assets/{use-simple-pagination-Dum6Irbs.js → use-simple-pagination-CNPd6Rf6.js} +1 -1
- package/core/built/admin/assets/use-staff-users-pRIMIyiW.js +1 -0
- package/core/built/admin/assets/use-tinybird-query-CmdbCS9X.js +1 -0
- package/core/built/admin/assets/use-tinybird-token-KLne235s.js +1 -0
- package/core/built/admin/assets/{use-unsaved-changes-guard-BAy0RANR.js → use-unsaved-changes-guard-7-ug0JdH.js} +1 -1
- package/core/built/admin/assets/use-upgrade-route-Dm_qqKr0.js +1 -0
- package/core/built/admin/assets/{use-url-input-Df5QzNa7.js → use-url-input-fvp-TpPx.js} +1 -1
- package/core/built/admin/assets/user-detail-modal-D3KlGYv-.js +1 -0
- package/core/built/admin/assets/users-DVNWrqg9.js +1 -0
- package/core/built/admin/assets/{vendor-5753232c7d6ffb3c44e1eb0a02133953.js → vendor-2dd263291938d407802568d3357ec69e.js} +19 -17
- package/core/built/admin/assets/{virtual-list-DEx8WgiO.js → virtual-list-CZ3RK2Yf.js} +1 -1
- package/core/built/admin/assets/web-ClEJsCAj.js +2 -0
- package/core/built/admin/assets/web-X9rdnrtq.js +1 -0
- package/core/built/admin/assets/{zapier-modal-Cw3BTBUu.js → zapier-modal-DfVhV17j.js} +1 -1
- package/core/built/admin/index.html +23 -27
- package/core/frontend/apps/private-blogging/lib/views/private.hbs +44 -43
- package/core/frontend/helpers/cancel_link.js +2 -2
- package/core/frontend/helpers/pagination.js +2 -2
- package/core/frontend/helpers/social_accounts.js +2 -2
- package/core/frontend/public/ghost.css +1 -1
- package/core/frontend/public/ghost.min.css +1 -1
- package/core/frontend/services/sitemap/user-map-generator.js +9 -2
- package/core/server/adapters/jobs/InMemoryJobsBackend.js +74 -29
- package/core/server/api/endpoints/authentication.js +1 -2
- package/core/server/api/endpoints/authors-public.js +15 -5
- package/core/server/api/endpoints/emails.js +13 -0
- package/core/server/api/endpoints/index.js +10 -2
- package/core/server/api/endpoints/mail.js +1 -1
- package/core/server/api/endpoints/member-metafields-members.js +23 -0
- package/core/server/api/endpoints/member-metafields.js +102 -0
- package/core/server/api/endpoints/members-account.js +42 -0
- package/core/server/api/endpoints/members.js +4 -4
- package/core/server/api/endpoints/newsletters-public.js +10 -1
- package/core/server/api/endpoints/pages-public.js +15 -5
- package/core/server/api/endpoints/posts-public.js +15 -5
- package/core/server/api/endpoints/posts.js +3 -3
- package/core/server/api/endpoints/tags-public.js +22 -3
- package/core/server/api/endpoints/tiers-checkout-config.js +2 -2
- package/core/server/api/endpoints/tiers-public.js +38 -1
- package/core/server/api/endpoints/users.js +2 -2
- package/core/server/api/endpoints/utils/api-filter-utils.js +170 -3
- package/core/server/api/endpoints/utils/public-cache-keys.js +3 -0
- package/core/server/api/endpoints/utils/serializers/input/authors.js +2 -0
- package/core/server/api/endpoints/utils/serializers/input/members.js +20 -9
- package/core/server/api/endpoints/utils/serializers/input/pages.js +2 -0
- package/core/server/api/endpoints/utils/serializers/input/posts.js +2 -0
- package/core/server/api/endpoints/utils/serializers/input/tags.js +2 -0
- package/core/server/api/endpoints/utils/serializers/output/emails.js +7 -0
- package/core/server/api/endpoints/utils/serializers/output/index.js +6 -2
- package/core/server/api/endpoints/utils/serializers/output/member-metafields.js +18 -0
- package/core/server/api/endpoints/utils/serializers/output/members-account.js +19 -0
- package/core/server/api/endpoints/utils/serializers/output/members-csv-transform.js +1 -1
- package/core/server/api/endpoints/utils/serializers/output/members.js +2 -4
- package/core/server/api/endpoints/utils/serializers/output/tiers.js +10 -2
- package/core/server/api/endpoints/utils/serializers/output/users.js +0 -10
- package/core/server/api/endpoints/utils/validators/input/invitations.js +0 -5
- package/core/server/api/endpoints/utils/validators/input/pages.js +1 -1
- package/core/server/api/endpoints/utils/validators/input/posts.js +1 -1
- package/core/server/data/exporter/table-lists.js +3 -3
- package/core/server/data/importer/importers/data/data-importer.js +3 -3
- package/core/server/data/migrations/utils/migrations.js +1 -1
- package/core/server/data/migrations/versions/6.53/2026-07-15-20-22-53-add-members-custom-field-values.js +1 -1
- package/core/server/data/migrations/versions/6.57/2026-08-04-18-00-00-store-custom-field-values-as-leaf-rows.js +10 -1
- package/core/server/data/migrations/versions/6.63/2026-09-03-10-07-03-rename-custom-field-tables-to-metafields.js +169 -0
- package/core/server/data/migrations/versions/6.63/2026-09-03-11-03-31-remove-member-custom-field-read-permissions.js +30 -0
- package/core/server/data/schema/fixtures/fixtures.json +0 -11
- package/core/server/data/schema/lib/default-index-name.js +8 -11
- package/core/server/data/schema/schema.js +18 -18
- package/core/server/data/seeders/README.md +48 -0
- package/core/server/data/tinybird/pipes/mv_hits.pipe +86 -50
- package/core/server/lib/db-types/count.js +16 -0
- package/core/server/lib/image/image-size.js +24 -0
- package/core/server/lib/package-json/parse.js +2 -2
- package/core/server/lib/validate-password.js +81 -120
- package/core/server/models/action.js +4 -4
- package/core/server/models/base/plugins/filtered-collection.js +16 -0
- package/core/server/models/member.js +10 -21
- package/core/server/models/post.js +2 -2
- package/core/server/models/relations/authors.js +2 -16
- package/core/server/models/user.js +10 -3
- package/core/server/services/auth/passwordreset.js +13 -0
- package/core/server/services/automations/automations-api.js +1 -1
- package/core/server/services/automations/database-automations-repository.js +11 -4
- package/core/server/services/comments/comments-controller.js +30 -9
- package/core/server/services/comments/comments-service.js +55 -5
- package/core/server/services/content-import/csv/formula.js +12 -0
- package/core/server/services/content-import/csv/index.js +6 -1
- package/core/server/services/content-import/csv/parse.js +27 -6
- package/core/server/services/content-import/csv/serialize.js +13 -0
- package/core/server/services/content-import/import/completion-email.js +164 -0
- package/core/server/services/content-import/import/errors-file.js +36 -0
- package/core/server/services/content-import/import/importer.js +160 -53
- package/core/server/services/content-import/import/local-media-url.js +63 -0
- package/core/server/services/content-import/import/media.js +254 -0
- package/core/server/services/content-import/import/post-data.js +0 -1
- package/core/server/services/content-import/import/post-link.js +11 -0
- package/core/server/services/content-import/import/post-repository.js +25 -3
- package/core/server/services/content-import/import/reader.js +9 -2
- package/core/server/services/content-import/import/report.js +34 -0
- package/core/server/services/content-import/import/row.js +0 -2
- package/core/server/services/content-import/import/schema.js +1 -0
- package/core/server/services/content-import/import/staged-file.js +29 -0
- package/core/server/services/content-import/import/store.js +25 -2
- package/core/server/services/content-import/index.js +52 -6
- package/core/server/services/content-import/jobs/content-csv-import-job.js +20 -0
- package/core/server/services/custom-redirects/redirect-config-parser.js +2 -2
- package/core/server/services/custom-redirects/redirects-service.js +1 -1
- package/core/server/services/custom-redirects/validation.js +1 -1
- package/core/server/services/email-address/email-address-parser.js +30 -38
- package/core/server/services/email-address/email-address-service.js +37 -4
- package/core/server/services/email-analytics/index.js +2 -7
- package/core/server/services/email-service/CONTEXT.md +37 -0
- package/core/server/services/email-service/README.md +42 -0
- package/core/server/services/email-service/batch-sending-service.js +2 -4
- package/core/server/services/email-service/email-controller.js +18 -2
- package/core/server/services/email-service/email-renderer.js +14 -4
- package/core/server/services/email-service/email-service-wrapper.js +3 -9
- package/core/server/services/email-service/mailgun-email-provider.js +20 -9
- package/core/server/services/email-service/sending-status-schema.js +21 -0
- package/core/server/services/email-service/sending-status-serializers.js +33 -0
- package/core/server/services/email-service/sending-status-service.js +47 -0
- package/core/server/services/email-service/sending-status.js +111 -0
- package/core/server/services/email-suppression-list/email-suppression-list.js +0 -33
- package/core/server/services/email-suppression-list/mailgun-email-suppression-list.js +6 -7
- package/core/server/services/gifts/README.md +2 -2
- package/core/server/services/gifts/constants.js +1 -1
- package/core/server/services/gifts/email-templates/gift-delivery.hbs +3 -3
- package/core/server/services/gifts/gift-email-service.js +0 -1
- package/core/server/services/gifts/gift-service.js +19 -57
- package/core/server/services/gifts/index.js +3 -5
- package/core/server/services/gifts/jobs/index.js +4 -4
- package/core/server/services/indexnow-ping/indexnow-ping-service.js +2 -2
- package/core/server/services/invitations/accept.js +4 -2
- package/core/server/services/jobs/job-service.js +0 -9
- package/core/server/services/jobs-service/index.js +8 -0
- package/core/server/services/jobs-service/jobs-service.js +52 -3
- package/core/server/services/jobs-service/register-job-handlers.js +32 -11
- package/core/server/services/mail/ghost-mailer.js +4 -4
- package/core/server/services/member-welcome-emails/service.js +7 -7
- package/core/server/services/members/account-service.js +98 -0
- package/core/server/services/members/api.js +4 -3
- package/core/server/services/members/import-export/csv/parse.js +0 -7
- package/core/server/services/members/import-export/export/exporter.js +20 -20
- package/core/server/services/members/import-export/import/completion-email.js +8 -11
- package/core/server/services/members/import-export/import/importer.js +13 -13
- package/core/server/services/members/import-export/import/row.js +0 -3
- package/core/server/services/members/import-export/index.js +10 -17
- package/core/server/services/members/jobs/clean-expired-comped-job.js +7 -0
- package/core/server/services/members/jobs/clean-expired-comped-task.js +145 -0
- package/core/server/services/members/jobs/index.js +48 -24
- package/core/server/services/members/members-api/controllers/member-controller.js +11 -0
- package/core/server/services/members/members-api/controllers/router-controller.js +3 -6
- package/core/server/services/members/members-api/members-api.js +26 -8
- package/core/server/services/members/members-api/repositories/event-repository.js +0 -4
- package/core/server/services/members/members-api/repositories/member-repository.js +4 -4
- package/core/server/services/members/members-api/services/member-bread-service.js +62 -84
- package/core/server/services/members/members-api/services/payments-service.js +1 -1
- package/core/server/services/members/members-ssr.js +18 -0
- package/core/server/services/members/middleware.js +95 -81
- package/core/server/services/members/service.js +71 -47
- package/core/server/services/members/utils.js +9 -0
- package/core/server/services/members-metafields/access.js +28 -0
- package/core/server/services/{members-custom-fields → members-metafields}/actions.js +5 -5
- package/core/server/services/members-metafields/bindings-service.js +147 -0
- package/core/server/services/members-metafields/codec.js +14 -0
- package/core/server/services/{members-custom-fields → members-metafields}/config.js +1 -1
- package/core/server/services/{members-custom-fields → members-metafields}/definitions-service.js +68 -22
- package/core/server/services/members-metafields/filter.js +181 -0
- package/core/server/services/{members-custom-fields → members-metafields}/index.js +16 -7
- package/core/server/services/{members-custom-fields → members-metafields}/key.js +2 -1
- package/core/server/services/{members-custom-fields → members-metafields}/models.js +5 -5
- package/core/server/services/members-metafields/namespaces.js +34 -0
- package/core/server/services/{members-custom-fields → members-metafields}/queries.js +1 -1
- package/core/server/services/{members-custom-fields → members-metafields}/schema.js +16 -12
- package/core/server/services/members-metafields/serializers.js +22 -0
- package/core/server/services/{members-custom-fields → members-metafields}/values-service.js +80 -48
- package/core/server/services/mentions/mention-controller.js +23 -21
- package/core/server/services/mentions/mention-sending-service.js +26 -9
- package/core/server/services/mentions/process-webmention-job.js +16 -0
- package/core/server/services/mentions/send-webmentions-job.js +18 -0
- package/core/server/services/mentions/service.js +7 -33
- package/core/server/services/route-settings/validation-errors.js +1 -1
- package/core/server/services/route-settings/yaml-parser.js +1 -1
- package/core/server/services/settings/settings-service.js +1 -8
- package/core/server/services/settings-helpers/settings-helpers.js +4 -6
- package/core/server/services/slack-ping/slack-ping-service.js +1 -1
- package/core/server/services/staff/staff-service-emails.js +2 -2
- package/core/server/services/stripe/config.js +14 -8
- package/core/server/services/stripe/service.js +10 -1
- package/core/server/services/stripe/services/checkout/completed-session.js +2 -2
- package/core/server/services/stripe/services/checkout/session-options.js +18 -15
- package/core/server/services/stripe/services/webhook/checkout-session-event-service.js +28 -7
- package/core/server/services/stripe/stripe-api.js +2 -0
- package/core/server/services/stripe/stripe-service.js +24 -14
- package/core/server/services/stripe/webhook-controller.js +10 -0
- package/core/server/services/tier-checkout-config/codec.js +11 -7
- package/core/server/services/tier-checkout-config/index.js +2 -1
- package/core/server/services/tier-checkout-config/models.js +11 -5
- package/core/server/services/tier-checkout-config/queries.js +12 -12
- package/core/server/services/tier-checkout-config/serializers.js +73 -10
- package/core/server/services/tier-checkout-config/service.js +14 -13
- package/core/server/services/tiers/service.js +3 -3
- package/core/server/services/update-check/index.js +13 -13
- package/core/server/services/update-check/jobs/update-check-job.js +7 -0
- package/core/server/services/update-check/update-check-service.js +2 -2
- package/core/server/services/url/router-filter.js +8 -10
- package/core/server/services/users.js +1 -19
- package/core/server/web/admin/controller.js +1 -1
- package/core/server/web/api/endpoints/admin/routes.js +20 -16
- package/core/server/web/members/account/index.js +2 -0
- package/core/server/web/members/account/routes.js +46 -0
- package/core/server/web/members/app.js +4 -18
- package/core/shared/config/defaults.json +1 -1
- package/core/shared/config/env/config.testing-mysql.json +1 -1
- package/core/shared/labs.js +7 -2
- package/package.json +42 -41
- package/pnpm-lock.yaml +1159 -582
- package/pnpm-workspace.yaml +18 -15
- package/components/tryghost-custom-field-types-0.0.0.tgz +0 -0
- package/components/tryghost-kg-default-nodes-2.2.0.tgz +0 -0
- package/core/built/admin/assets/Combination-5fYEzgbs.js +0 -41
- package/core/built/admin/assets/account-migration-DRhAehfw.js +0 -1
- package/core/built/admin/assets/activitypub/inbox-BluD2ucT.js +0 -1284
- package/core/built/admin/assets/activitypub/label-FHSh6ZAw.js +0 -16
- package/core/built/admin/assets/activitypub/layout-Cq4NG0Xr.js +0 -1
- package/core/built/admin/assets/activitypub/settings-DQDkr06X.js +0 -315
- package/core/built/admin/assets/add-integration-modal-BC0jExDZ.js +0 -1
- package/core/built/admin/assets/add-newsletter-modal-DchTkA7l.js +0 -1
- package/core/built/admin/assets/add-recommendation-modal-DMvaJZKp.js +0 -1
- package/core/built/admin/assets/alert-dialog-QhXzdHfc.js +0 -1
- package/core/built/admin/assets/analytics-No1DDY3A.js +0 -1
- package/core/built/admin/assets/automated-emails-te1D5kq-.js +0 -1
- package/core/built/admin/assets/automations-DpUNUdcZ.js +0 -1
- package/core/built/admin/assets/bluesky-sharing-Cjrv_f62.js +0 -1
- package/core/built/admin/assets/chunk.896.435fe0637944d4a69810.js +0 -366
- package/core/built/admin/assets/color-picker-BTY_NdEm.js +0 -3
- package/core/built/admin/assets/color-picker-field-CPlkzOH0.js +0 -1
- package/core/built/admin/assets/combobox-DrMtv_4P.js +0 -1
- package/core/built/admin/assets/command-ZdgYJpoI.js +0 -1
- package/core/built/admin/assets/comments-kidj60-h.js +0 -1
- package/core/built/admin/assets/confirmation-context-BhbmQQEl.js +0 -1
- package/core/built/admin/assets/custom-field-type-option-CsGIZk1J.js +0 -10
- package/core/built/admin/assets/custom-integration-modal-BY37O_9X.js +0 -1
- package/core/built/admin/assets/design-and-theme-modal-DUSKM4uC.js +0 -22
- package/core/built/admin/assets/dialog-B44iRwlc.js +0 -1
- package/core/built/admin/assets/dirty-confirm-dialog-BxgQgQ6H.js +0 -1
- package/core/built/admin/assets/dist-Cy8tfrp_.js +0 -1
- package/core/built/admin/assets/domain-Ca6KhoQt.js +0 -1
- package/core/built/admin/assets/dropzone-Bb-5zQTk.js +0 -5
- package/core/built/admin/assets/edit-profile-BdupLlus.js +0 -1
- package/core/built/admin/assets/editor-BP883Lpn.js +0 -8
- package/core/built/admin/assets/explore-FB-CimXw.js +0 -1
- package/core/built/admin/assets/feed-C1GxsmI2.js +0 -1
- package/core/built/admin/assets/filter-sources-D5n5bFA2.js +0 -1
- package/core/built/admin/assets/filters-DJEzkMUK.js +0 -1
- package/core/built/admin/assets/filters-MZXvdH5D.js +0 -1
- package/core/built/admin/assets/first-promoter-modal-CGTGLCr5.js +0 -1
- package/core/built/admin/assets/gift-link-modal-B6v0tnRN.js +0 -1
- package/core/built/admin/assets/growth-BGAJD1rs.js +0 -3
- package/core/built/admin/assets/history-modal-iKwUY3XR.js +0 -1
- package/core/built/admin/assets/hooks-CuEZV2-q.js +0 -2
- package/core/built/admin/assets/index-DjQe-e5s.js +0 -4
- package/core/built/admin/assets/index-Dqf2x-ry.css +0 -1
- package/core/built/admin/assets/index.es-VihPwfeH.js +0 -1
- package/core/built/admin/assets/input--W-rCTrX.js +0 -1
- package/core/built/admin/assets/invite-user-modal-MdImLCaJ.js +0 -1
- package/core/built/admin/assets/koenig-loader-DYZpm6El.js +0 -2
- package/core/built/admin/assets/label-picker-cB51xl1r.js +0 -1
- package/core/built/admin/assets/layout-c_B_1hax.js +0 -1
- package/core/built/admin/assets/link-helpers-MVDdnFCY.js +0 -1
- package/core/built/admin/assets/loading-indicator-BpFWTVgh.js +0 -1
- package/core/built/admin/assets/member-custom-fields-qs0dIkxM.js +0 -1
- package/core/built/admin/assets/member-detail-B6uec2a6.js +0 -1
- package/core/built/admin/assets/members-BQF3CqhI.js +0 -2
- package/core/built/admin/assets/moderation-DY4wF1Q3.js +0 -1
- package/core/built/admin/assets/navigation-modal-DX-gNF3X.js +0 -1
- package/core/built/admin/assets/newsletter-CyQA7m3m.js +0 -1
- package/core/built/admin/assets/newsletter-detail-modal-BDrptuxn.js +0 -1
- package/core/built/admin/assets/newsletters-DXuNmC42.js +0 -1
- package/core/built/admin/assets/newsletters-DhNigJUh.js +0 -1
- package/core/built/admin/assets/note-Cgo2LCJ6.js +0 -1
- package/core/built/admin/assets/notifications-BC50AMku.js +0 -1
- package/core/built/admin/assets/offers-container-modal-DWycIMzT.js +0 -1
- package/core/built/admin/assets/onboarding-DGQuV7Ew.js +0 -1
- package/core/built/admin/assets/overview-CVbFtn-k.js +0 -1
- package/core/built/admin/assets/overview-YKj7SZaK.js +0 -1
- package/core/built/admin/assets/pages-B6vr9F_D.js +0 -1
- package/core/built/admin/assets/popover-CCy0h5rq.js +0 -1
- package/core/built/admin/assets/portal-frame-dc4XKr0e.js +0 -1
- package/core/built/admin/assets/portal-modal-BvvdF_B9.js +0 -1
- package/core/built/admin/assets/post-analytics-DX470WRG.js +0 -1
- package/core/built/admin/assets/post-analytics-header-CXpJmdDv.js +0 -1
- package/core/built/admin/assets/post-analytics-provider-CLfKGWZy.js +0 -1
- package/core/built/admin/assets/post-helpers-C5OQMBoi.js +0 -1
- package/core/built/admin/assets/post-share-modal-Cl0NXRJr.js +0 -1
- package/core/built/admin/assets/posts-KY3aUhVV.js +0 -1
- package/core/built/admin/assets/preferences-DO0UUWFp.js +0 -5
- package/core/built/admin/assets/profile-CxT-0l4d.js +0 -1
- package/core/built/admin/assets/router-provider-B0gZyiGJ.js +0 -1
- package/core/built/admin/assets/schemas-4UPic-oD.js +0 -64
- package/core/built/admin/assets/select-DuDUFdPq.js +0 -1
- package/core/built/admin/assets/settings-BjCii7BM.js +0 -1
- package/core/built/admin/assets/settings-b8kNzZSQ.js +0 -4
- package/core/built/admin/assets/share-modal-BV70mr9k.js +0 -1
- package/core/built/admin/assets/shim-ClF_m5ux.js +0 -1
- package/core/built/admin/assets/slack-modal-Be2_KK-z.js +0 -1
- package/core/built/admin/assets/stats-C4reGh9O.js +0 -1
- package/core/built/admin/assets/stats-view-DP9pQ62k.js +0 -1
- package/core/built/admin/assets/stripe-connect-modal-Z-UT_BGc.js +0 -1
- package/core/built/admin/assets/tag-detail-Dc0nTOtU.js +0 -2
- package/core/built/admin/assets/tags-BLaXBwnb.js +0 -1
- package/core/built/admin/assets/testimonials-modal-sFwRnNLh.js +0 -1
- package/core/built/admin/assets/tier-detail-modal-BCFpWwUS.js +0 -1
- package/core/built/admin/assets/tiers-Nd_z4BZY.js +0 -1
- package/core/built/admin/assets/use-filter-params-CAvfDvf1.js +0 -1
- package/core/built/admin/assets/use-growth-stats-D6mZXGhK.js +0 -1
- package/core/built/admin/assets/use-host-limits-DZtR08oa.js +0 -1
- package/core/built/admin/assets/use-pintura-config-CzTfnufz.js +0 -1
- package/core/built/admin/assets/use-reply-chain-data-BeQwz8oF.js +0 -1
- package/core/built/admin/assets/use-settings-navigation-BbrSUVcf.js +0 -1
- package/core/built/admin/assets/use-staff-users-cZg4ugOF.js +0 -1
- package/core/built/admin/assets/use-tinybird-query-B1IMyAcv.js +0 -39
- package/core/built/admin/assets/use-tinybird-token-Bow0Zwn8.js +0 -1
- package/core/built/admin/assets/use-upgrade-route-DhRSo7at.js +0 -1
- package/core/built/admin/assets/user-detail-modal-yipSoQfv.js +0 -1
- package/core/built/admin/assets/users-5msE1WMs.js +0 -1
- package/core/built/admin/assets/web-CKcXAu86.js +0 -1
- package/core/built/admin/assets/web-DR4TqM3E.js +0 -2
- package/core/server/api/endpoints/member-custom-fields.js +0 -90
- package/core/server/api/endpoints/utils/serializers/output/member-custom-fields.js +0 -20
- package/core/server/services/email-suppression-list/in-memory-email-suppression-list.js +0 -39
- package/core/server/services/jobs/worker-model-event-bridge.js +0 -149
- package/core/server/services/members/jobs/clean-expired-comped.js +0 -132
- package/core/server/services/members-custom-fields/bindings-service.js +0 -119
- package/core/server/services/members-custom-fields/codec.js +0 -15
- package/core/server/services/members-custom-fields/filter.js +0 -199
- package/core/server/services/members-custom-fields/serializers.js +0 -24
- package/core/server/services/stripe/services/checkout/allowed-countries.js +0 -267
- package/core/server/services/stripe/services/checkout/field-ports.js +0 -34
- package/core/server/services/tier-checkout-config/destinations.js +0 -17
- package/core/server/services/update-check/run-update-check.js +0 -63
- /package/core/built/admin/assets/{chunk.492.f24d855d7e3f3aad261c.js.LICENSE.txt → chunk.901.4ccc639821020230bcca.js.LICENSE.txt} +0 -0
- /package/core/server/services/{members-custom-fields → members-metafields}/storage.js +0 -0
package/core/built/admin/assets/{code-editor-view-DCQJxsfU.js → code-editor-view-C3ZfoF1X.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
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{t as i}from"./stack-B2eszIiq.js";import{s as a}from"./shade-app-CcS3f8MZ-vwURazk8.js";import{t as o}from"./esm-CXo5SEPy.js";import{t as s}from"./input-surface-BsrIZeSF.js";import{o as c,r as l}from"./field-
|
|
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{t as i}from"./stack-B2eszIiq.js";import{s as a}from"./shade-app-CcS3f8MZ-vwURazk8.js";import{t as o}from"./esm-CXo5SEPy.js";import{t as s}from"./input-surface-BsrIZeSF.js";import{o as c,r as l}from"./field-C93_Mg6j.js";import{$ as u,vt as d}from"./dist-Z97pCNqS.js";var f=e(t(),1),p=n(),m=[`[&_.cm-editor]:bg-transparent`,`[&_.cm-editor]:border-transparent`,`[&_.cm-scroller]:font-mono`,`[&_.cm-scroller]:border-transparent`,`[&_.cm-activeLine]:bg-transparent`,`[&_.cm-activeLineGutter]:bg-transparent`,`[&_.cm-gutters]:bg-muted`,`[&_.cm-gutters]:text-muted-foreground`,`[&_.cm-gutters]:border-border`,`[&_.cm-cursor]:border-foreground`].join(` `),h=(0,f.forwardRef)(function({title:e,value:t,height:n=`200px`,error:h,hint:g,clearBg:_=!0,extensions:v,ariaLabel:y,editable:b=!0,onChange:x,onFocus:S,onBlur:C,className:w,...T},E){let D=(0,f.useId)(),O=`${D}-label`,k=`${D}-description`,A=!!e,j=(0,f.useRef)(null),{darkMode:M,setFocusState:N}=a(),P=(0,f.useRef)(!1),F=(0,f.useRef)(N),[I,L]=(0,f.useState)(100),[R,z]=(0,f.useState)([]);F.current=N;let[B]=(0,f.useState)(()=>document.createElement(`div`));(0,f.useEffect)(()=>(B.className=`shade cm-tooltip-parent pointer-events-none fixed inset-0 z-[60]`,document.body.appendChild(B),()=>{B.remove()}),[B]);let V=(0,f.useMemo)(()=>({crosshairCursor:!1,searchKeymap:!1}),[]),H=(0,f.useMemo)(()=>{let e={id:D};return A?e[`aria-labelledby`]=O:y&&(e[`aria-label`]=y),h&&(e[`aria-invalid`]=`true`),g&&(e[`aria-describedby`]=k),b||(e[`aria-disabled`]=`true`),[...R,d({position:`fixed`,parent:B}),u.contentAttributes.of(e)]},[y,b,h,A,g,k,D,O,R,B]),U=e=>{S?.(e),P.current=!0,N(!0)},W=e=>{C?.(e),P.current=!1,N(!1)},G=()=>{b&&document.getElementById(D)?.focus()};(0,f.useEffect)(()=>()=>{P.current&&F.current(!1)},[]),(0,f.useEffect)(()=>{let e=!1,t=v.map(e=>typeof e==`function`?e():e);return Promise.all(t).then(t=>{e||z(t)},()=>{e||z([])}),()=>{e=!0}},[v]),(0,f.useEffect)(()=>{let e=new ResizeObserver(([e])=>{L(e.contentRect.width)});return e.observe(j.current),()=>e.disconnect()},[]);let K=r(s(`within`),`peer order-2 w-full max-w-full overflow-hidden`,_&&`bg-transparent`,n===`full`&&`h-full`,!b&&`cursor-not-allowed opacity-50`,m,w);return(0,p.jsxs)(`div`,{className:r(`w-full`,n===`full`&&`h-full`),children:[(0,p.jsx)(`div`,{ref:j}),(0,p.jsxs)(i,{className:n===`full`?`h-full`:``,gap:`xs`,style:{width:I},children:[e&&(0,p.jsx)(c,{id:O,onClick:G,children:e}),(0,p.jsx)(o,{ref:E,basicSetup:V,className:K,editable:b,extensions:H,height:n===`full`?`100%`:n,theme:M?`dark`:`light`,value:t,onBlur:W,onChange:x,onFocus:U,...T}),g&&(0,p.jsx)(l,{className:r(h&&`text-destructive`),id:k,children:g})]})]})});h.displayName=`CodeEditorView`;export{h as default};
|
package/core/built/admin/assets/{code-editor-view-CYVu4EW6.js → code-editor-view-CAyRWy1s.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
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{w as r}from"./dist-B3keLvjj.js";import{s as i}from"./shade-app-CcS3f8MZ-vwURazk8.js";import{t as a}from"./esm-CXo5SEPy.js";import{o,r as s}from"./field-
|
|
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{w as r}from"./dist-B3keLvjj.js";import{s as i}from"./shade-app-CcS3f8MZ-vwURazk8.js";import{t as a}from"./esm-CXo5SEPy.js";import{o,r as s}from"./field-C93_Mg6j.js";var c=e(t(),1),l=n(),u=[`[&_.cm-editor]:bg-transparent`,`[&_.cm-editor]:border-transparent`,`[&_.cm-scroller]:font-mono`,`[&_.cm-scroller]:border-transparent`,`[&_.cm-activeLine]:bg-transparent`,`[&_.cm-activeLineGutter]:bg-transparent`,`[&_.cm-gutters]:bg-muted`,`[&_.cm-gutters]:text-muted-foreground`,`[&_.cm-gutters]:border-border`,`[&_.cm-cursor]:border-foreground`,`[&_.cm-tooltip-autocomplete.cm-tooltip_ul_li:not([aria-selected])]:bg-background`].join(` `),d=(0,c.forwardRef)(function({title:e,value:t,height:n=`200px`,error:d,hint:f,clearBg:p=!0,extensions:m,onChange:h,onFocus:g,onBlur:_,className:v,...y},b){let x=(0,c.useId)(),S=(0,c.useRef)(null),[C,w]=(0,c.useState)(100),[T,E]=c.useState([]),[D,O]=(0,c.useState)({crosshairCursor:!1}),{darkMode:k,setFocusState:A}=i(),j=e=>{g?.(e),A(!0)},M=e=>{_?.(e),A(!1)};(0,c.useEffect)(()=>{let e=!1;return Promise.all(m.map(e=>Promise.resolve(e))).then(t=>{e||E(t)},()=>{e||E([])}),O(e=>({setup:e,searchKeymap:!1})),()=>{e=!0}},[m]),(0,c.useEffect)(()=>{let e=new ResizeObserver(([e])=>{w(e.contentRect.width)});return e.observe(S.current),()=>e.disconnect()},[]);let N=r(`peer order-2 w-full max-w-full overflow-hidden rounded-sm border`,p?`bg-transparent`:`bg-muted`,d?`border-destructive`:`border-border`,e&&`mt-2`,n===`full`&&`h-full`,u,v);return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(`div`,{ref:S}),(0,l.jsxs)(`div`,{className:n===`full`?`h-full`:``,style:{width:C},children:[(0,l.jsx)(a,{ref:b,basicSetup:D,className:N,extensions:T,height:n===`full`?`100%`:n,theme:k?`dark`:`light`,value:t,onBlur:M,onChange:h,onFocus:j,...y}),e&&(0,l.jsx)(o,{className:`order-1`,htmlFor:x,children:e}),f&&(0,l.jsx)(s,{className:r(`order-3 mt-1`,d&&`text-destructive`),children:f})]})]})});export{d as default};
|
|
@@ -0,0 +1,3 @@
|
|
|
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{a as r,l as i}from"./dist-B3keLvjj.js";import{_ as a,l as o,x as s}from"./shade-app-CcS3f8MZ-vwURazk8.js";import{a as c,r as l}from"./dist-8YJUlf3B.js";import{ht as u,t as d}from"./button-Dvcv1QSR.js";import{n as f,t as p}from"./dist-Dgt2cr6a.js";import{t as m}from"./dist-JLOy8o0Q.js";import{c as h,i as g,n as _,o as v,s as y,t as b}from"./select-v5YbA3Mw.js";import{rr as x}from"./index-CgMCwsxN.js";var S=e(t(),1),C=n(),w={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};for(let e in w)Object.freeze(w[e]);var T=Object.freeze(w),E=Object.create(null);for(let e in T)Object.hasOwn(T,e)&&(E[T[e]]=e);var D={to:{},get:{}};D.get=function(e){let t=e.slice(0,3).toLowerCase(),n,r;switch(t){case`hsl`:n=D.get.hsl(e),r=`hsl`;break;case`hwb`:n=D.get.hwb(e),r=`hwb`;break;default:n=D.get.rgb(e),r=`rgb`;break}return n?{model:r,value:n}:null},D.get.rgb=function(e){if(!e)return null;let t=/^#([a-f\d]{3,4})$/i,n=/^#([a-f\d]{6})([a-f\d]{2})?$/i,r=/^rgba?\(\s*([+-]?(?:\d*\.)?\d+(?:e\d+)?)(?=[\s,])\s*(?:,\s*)?([+-]?(?:\d*\.)?\d+(?:e\d+)?)(?=[\s,])\s*(?:,\s*)?([+-]?(?:\d*\.)?\d+(?:e\d+)?)\s*(?:[\s,|/]\s*([+-]?(?:\d*\.)?\d+(?:e\d+)?)(%?)\s*)?\)$/i,i=/^rgba?\(\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[\s,|/]\s*([+-]?[\d.]+)(%?)\s*)?\)$/i,a=/^(\w+)$/,o=[0,0,0,1],s,c,l;if(s=e.match(n)){for(l=s[2],s=s[1],c=0;c<3;c++){let e=c*2;o[c]=Number.parseInt(s.slice(e,e+2),16)}l&&(o[3]=Number.parseInt(l,16)/255)}else if(s=e.match(t)){for(s=s[1],l=s[3],c=0;c<3;c++)o[c]=Number.parseInt(s[c]+s[c],16);l&&(o[3]=Number.parseInt(l+l,16)/255)}else if(s=e.match(r)){for(c=0;c<3;c++)o[c]=Number.parseFloat(s[c+1]);s[4]&&(o[3]=s[5]?Number.parseFloat(s[4])*.01:Number.parseFloat(s[4]))}else if(s=e.match(i)){for(c=0;c<3;c++)o[c]=Math.round(Number.parseFloat(s[c+1])*2.55);s[4]&&(o[3]=s[5]?Number.parseFloat(s[4])*.01:Number.parseFloat(s[4]))}else if(s=e.toLowerCase().match(a))return s[1]===`transparent`?[0,0,0,0]:Object.hasOwn(T,s[1])?(o=T[s[1]].slice(),o[3]=1,o):null;else return null;for(c=0;c<3;c++)o[c]=O(o[c],0,255);return o[3]=O(o[3],0,1),o},D.get.hsl=function(e){if(!e)return null;let t=e.match(/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[,|/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:e[+-]?\d+)?)\s*)?\)$/i);if(t){let e=Number.parseFloat(t[4]);return[(Number.parseFloat(t[1])%360+360)%360,O(Number.parseFloat(t[2]),0,100),O(Number.parseFloat(t[3]),0,100),O(Number.isNaN(e)?1:e,0,1)]}return null},D.get.hwb=function(e){if(!e)return null;let t=e.match(/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*[\s,]\s*([+-]?[\d.]+)%\s*[\s,]\s*([+-]?[\d.]+)%\s*(?:[\s,]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:e[+-]?\d+)?)\s*)?\)$/i);if(t){let e=Number.parseFloat(t[4]);return[(Number.parseFloat(t[1])%360+360)%360,O(Number.parseFloat(t[2]),0,100),O(Number.parseFloat(t[3]),0,100),O(Number.isNaN(e)?1:e,0,1)]}return null},D.to.hex=function(...e){return`#`+k(e[0])+k(e[1])+k(e[2])+(e[3]<1?k(Math.round(e[3]*255)):``)},D.to.rgb=function(...e){return e.length<4||e[3]===1?`rgb(`+Math.round(e[0])+`, `+Math.round(e[1])+`, `+Math.round(e[2])+`)`:`rgba(`+Math.round(e[0])+`, `+Math.round(e[1])+`, `+Math.round(e[2])+`, `+e[3]+`)`},D.to.rgb.percent=function(...e){let t=Math.round(e[0]/255*100),n=Math.round(e[1]/255*100),r=Math.round(e[2]/255*100);return e.length<4||e[3]===1?`rgb(`+t+`%, `+n+`%, `+r+`%)`:`rgba(`+t+`%, `+n+`%, `+r+`%, `+e[3]+`)`},D.to.hsl=function(...e){return e.length<4||e[3]===1?`hsl(`+e[0]+`, `+e[1]+`%, `+e[2]+`%)`:`hsla(`+e[0]+`, `+e[1]+`%, `+e[2]+`%, `+e[3]+`)`},D.to.hwb=function(...e){let t=``;return e.length>=4&&e[3]!==1&&(t=`, `+e[3]),`hwb(`+e[0]+`, `+e[1]+`%, `+e[2]+`%`+t+`)`},D.to.keyword=function(...e){return E[e.slice(0,3)]};function O(e,t,n){return Math.min(Math.max(t,e),n)}function k(e){let t=Math.round(e).toString(16).toUpperCase();return t.length<2?`0`+t:t}var A={};for(let e of Object.keys(T))A[T[e]]=e;var j={rgb:{channels:3,labels:`rgb`},hsl:{channels:3,labels:`hsl`},hsv:{channels:3,labels:`hsv`},hwb:{channels:3,labels:`hwb`},cmyk:{channels:4,labels:`cmyk`},xyz:{channels:3,labels:`xyz`},lab:{channels:3,labels:`lab`},oklab:{channels:3,labels:[`okl`,`oka`,`okb`]},lch:{channels:3,labels:`lch`},oklch:{channels:3,labels:[`okl`,`okc`,`okh`]},hex:{channels:1,labels:[`hex`]},keyword:{channels:1,labels:[`keyword`]},ansi16:{channels:1,labels:[`ansi16`]},ansi256:{channels:1,labels:[`ansi256`]},hcg:{channels:3,labels:[`h`,`c`,`g`]},apple:{channels:3,labels:[`r16`,`g16`,`b16`]},gray:{channels:1,labels:[`gray`]}},M=(6/29)**3;function N(e){let t=e>.0031308?1.055*e**(1/2.4)-.055:e*12.92;return Math.min(Math.max(0,t),1)}function P(e){return e>.04045?((e+.055)/1.055)**2.4:e/12.92}for(let e of Object.keys(j)){if(!(`channels`in j[e]))throw Error(`missing channels property: `+e);if(!(`labels`in j[e]))throw Error(`missing channel labels property: `+e);if(j[e].labels.length!==j[e].channels)throw Error(`channel and label counts mismatch: `+e);let{channels:t,labels:n}=j[e];delete j[e].channels,delete j[e].labels,Object.defineProperty(j[e],"channels",{value:t}),Object.defineProperty(j[e],"labels",{value:n})}j.rgb.hsl=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=a-i,s,c;switch(a){case i:s=0;break;case t:s=(n-r)/o;break;case n:s=2+(r-t)/o;break;case r:s=4+(t-n)/o;break}s=Math.min(s*60,360),s<0&&(s+=360);let l=(i+a)/2;return c=a===i?0:l<=.5?o/(a+i):o/(2-a-i),[s,c*100,l*100]},j.rgb.hsv=function(e){let t,n,r,i,a,o=e[0]/255,s=e[1]/255,c=e[2]/255,l=Math.max(o,s,c),u=l-Math.min(o,s,c),d=function(e){return(l-e)/6/u+1/2};if(u===0)i=0,a=0;else{switch(a=u/l,t=d(o),n=d(s),r=d(c),l){case o:i=r-n;break;case s:i=1/3+t-r;break;case c:i=2/3+n-t;break}i<0?i+=1:i>1&&--i}return[i*360,a*100,l*100]},j.rgb.hwb=function(e){let t=e[0],n=e[1],r=e[2],i=j.rgb.hsl(e)[0],a=1/255*Math.min(t,Math.min(n,r));return r=1-1/255*Math.max(t,Math.max(n,r)),[i,a*100,r*100]},j.rgb.oklab=function(e){let t=P(e[0]/255),n=P(e[1]/255),r=P(e[2]/255),i=Math.cbrt(.4122214708*t+.5363325363*n+.0514459929*r),a=Math.cbrt(.2119034982*t+.6806995451*n+.1073969566*r),o=Math.cbrt(.0883024619*t+.2817188376*n+.6299787005*r),s=.2104542553*i+.793617785*a-.0040720468*o,c=1.9779984951*i-2.428592205*a+.4505937099*o,l=.0259040371*i+.7827717662*a-.808675766*o;return[s*100,c*100,l*100]},j.rgb.cmyk=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.min(1-t,1-n,1-r),a=(1-t-i)/(1-i)||0,o=(1-n-i)/(1-i)||0,s=(1-r-i)/(1-i)||0;return[a*100,o*100,s*100,i*100]};function ee(e,t){return(e[0]-t[0])**2+(e[1]-t[1])**2+(e[2]-t[2])**2}j.rgb.keyword=function(e){let t=A[e];if(t)return t;let n=1/0,r;for(let t of Object.keys(T)){let i=T[t],a=ee(e,i);a<n&&(n=a,r=t)}return r},j.keyword.rgb=function(e){return[...T[e]]},j.rgb.xyz=function(e){let t=P(e[0]/255),n=P(e[1]/255),r=P(e[2]/255),i=t*.4124564+n*.3575761+r*.1804375,a=t*.2126729+n*.7151522+r*.072175,o=t*.0193339+n*.119192+r*.9503041;return[i*100,a*100,o*100]},j.rgb.lab=function(e){let t=j.rgb.xyz(e),n=t[0],r=t[1],i=t[2];return n/=95.047,r/=100,i/=108.883,n=n>M?n**(1/3):7.787*n+16/116,r=r>M?r**(1/3):7.787*r+16/116,i=i>M?i**(1/3):7.787*i+16/116,[116*r-16,500*(n-r),200*(r-i)]},j.hsl.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100,i,a;if(n===0)return a=r*255,[a,a,a];let o=r<.5?r*(1+n):r+n-r*n,s=2*r-o,c=[0,0,0];for(let e=0;e<3;e++)i=t+1/3*-(e-1),i<0&&i++,i>1&&i--,a=6*i<1?s+(o-s)*6*i:2*i<1?o:3*i<2?s+(o-s)*(2/3-i)*6:s,c[e]=a*255;return c},j.hsl.hsv=function(e){let t=e[0],n=e[1]/100,r=e[2]/100,i=n,a=Math.max(r,.01);r*=2,n*=r<=1?r:2-r,i*=a<=1?a:2-a;let o=(r+n)/2;return[t,(r===0?2*i/(a+i):2*n/(r+n))*100,o*100]},j.hsv.rgb=function(e){let t=e[0]/60,n=e[1]/100,r=e[2]/100,i=Math.floor(t)%6,a=t-Math.floor(t),o=255*r*(1-n),s=255*r*(1-n*a),c=255*r*(1-n*(1-a));switch(r*=255,i){case 0:return[r,c,o];case 1:return[s,r,o];case 2:return[o,r,c];case 3:return[o,s,r];case 4:return[c,o,r];case 5:return[r,o,s]}},j.hsv.hsl=function(e){let t=e[0],n=e[1]/100,r=e[2]/100,i=Math.max(r,.01),a,o;o=(2-n)*r;let s=(2-n)*i;return a=n*i,a/=s<=1?s:2-s,a||=0,o/=2,[t,a*100,o*100]},j.hwb.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100,i=n+r,a;i>1&&(n/=i,r/=i);let o=Math.floor(6*t),s=1-r;a=6*t-o,o&1&&(a=1-a);let c=n+a*(s-n),l,u,d;switch(o){default:case 6:case 0:l=s,u=c,d=n;break;case 1:l=c,u=s,d=n;break;case 2:l=n,u=s,d=c;break;case 3:l=n,u=c,d=s;break;case 4:l=c,u=n,d=s;break;case 5:l=s,u=n,d=c;break}return[l*255,u*255,d*255]},j.cmyk.rgb=function(e){let t=e[0]/100,n=e[1]/100,r=e[2]/100,i=e[3]/100,a=1-Math.min(1,t*(1-i)+i),o=1-Math.min(1,n*(1-i)+i),s=1-Math.min(1,r*(1-i)+i);return[a*255,o*255,s*255]},j.xyz.rgb=function(e){let t=e[0]/100,n=e[1]/100,r=e[2]/100,i,a,o;return i=t*3.2404542+n*-1.5371385+r*-.4985314,a=t*-.969266+n*1.8760108+r*.041556,o=t*.0556434+n*-.2040259+r*1.0572252,i=N(i),a=N(a),o=N(o),[i*255,a*255,o*255]},j.xyz.lab=function(e){let t=e[0],n=e[1],r=e[2];return t/=95.047,n/=100,r/=108.883,t=t>M?t**(1/3):7.787*t+16/116,n=n>M?n**(1/3):7.787*n+16/116,r=r>M?r**(1/3):7.787*r+16/116,[116*n-16,500*(t-n),200*(n-r)]},j.xyz.oklab=function(e){let t=e[0]/100,n=e[1]/100,r=e[2]/100,i=Math.cbrt(.8189330101*t+.3618667424*n-.1288597137*r),a=Math.cbrt(.0329845436*t+.9293118715*n+.0361456387*r),o=Math.cbrt(.0482003018*t+.2643662691*n+.633851707*r),s=.2104542553*i+.793617785*a-.0040720468*o,c=1.9779984951*i-2.428592205*a+.4505937099*o,l=.0259040371*i+.7827717662*a-.808675766*o;return[s*100,c*100,l*100]},j.oklab.oklch=function(e){return j.lab.lch(e)},j.oklab.xyz=function(e){let t=e[0]/100,n=e[1]/100,r=e[2]/100,i=(.999999998*t+.396337792*n+.215803758*r)**3,a=(1.000000008*t-.105561342*n-.063854175*r)**3,o=(1.000000055*t-.089484182*n-1.291485538*r)**3,s=1.227013851*i-.55779998*a+.281256149*o,c=-.040580178*i+1.11225687*a-.071676679*o,l=-.076381285*i-.421481978*a+1.58616322*o;return[s*100,c*100,l*100]},j.oklab.rgb=function(e){let t=e[0]/100,n=e[1]/100,r=e[2]/100,i=(t+.3963377774*n+.2158037573*r)**3,a=(t-.1055613458*n-.0638541728*r)**3,o=(t-.0894841775*n-1.291485548*r)**3,s=N(4.0767416621*i-3.3077115913*a+.2309699292*o),c=N(-1.2684380046*i+2.6097574011*a-.3413193965*o),l=N(-.0041960863*i-.7034186147*a+1.707614701*o);return[s*255,c*255,l*255]},j.oklch.oklab=function(e){return j.lch.lab(e)},j.lab.xyz=function(e){let t=e[0],n=e[1],r=e[2],i,a,o;a=(t+16)/116,i=n/500+a,o=a-r/200;let s=a**3,c=i**3,l=o**3;return a=s>M?s:(a-16/116)/7.787,i=c>M?c:(i-16/116)/7.787,o=l>M?l:(o-16/116)/7.787,i*=95.047,a*=100,o*=108.883,[i,a,o]},j.lab.lch=function(e){let t=e[0],n=e[1],r=e[2],i;return i=Math.atan2(r,n)*360/2/Math.PI,i<0&&(i+=360),[t,Math.sqrt(n*n+r*r),i]},j.lch.lab=function(e){let t=e[0],n=e[1],r=e[2]/360*2*Math.PI;return[t,n*Math.cos(r),n*Math.sin(r)]},j.rgb.ansi16=function(e,t=null){let[n,r,i]=e,a=t===null?j.rgb.hsv(e)[2]:t;if(a=Math.round(a/50),a===0)return 30;let o=30+(Math.round(i/255)<<2|Math.round(r/255)<<1|Math.round(n/255));return a===2&&(o+=60),o},j.hsv.ansi16=function(e){return j.rgb.ansi16(j.hsv.rgb(e),e[2])},j.rgb.ansi256=function(e){let t=e[0],n=e[1],r=e[2];return t>>4==n>>4&&n>>4==r>>4?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},j.ansi16.rgb=function(e){e=e[0];let t=e%10;if(t===0||t===7)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];let n=(Math.trunc(e>50)+1)*.5;return[(t&1)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},j.ansi256.rgb=function(e){if(e=e[0],e>=232){let t=(e-232)*10+8;return[t,t,t]}e-=16;let t;return[Math.floor(e/36)/5*255,Math.floor((t=e%36)/6)/5*255,t%6/5*255]},j.rgb.hex=function(e){let t=(((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255)).toString(16).toUpperCase();return`000000`.slice(t.length)+t},j.hex.rgb=function(e){let t=e.toString(16).match(/[a-f\d]{6}|[a-f\d]{3}/i);if(!t)return[0,0,0];let n=t[0];t[0].length===3&&(n=[...n].map(e=>e+e).join(``));let r=Number.parseInt(n,16);return[r>>16&255,r>>8&255,r&255]},j.rgb.hcg=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.max(Math.max(t,n),r),a=Math.min(Math.min(t,n),r),o=i-a,s,c=o<1?a/(1-o):0;return s=o<=0?0:i===t?(n-r)/o%6:i===n?2+(r-t)/o:4+(t-n)/o,s/=6,s%=1,[s*360,o*100,c*100]},j.hsl.hcg=function(e){let t=e[1]/100,n=e[2]/100,r=n<.5?2*t*n:2*t*(1-n),i=0;return r<1&&(i=(n-.5*r)/(1-r)),[e[0],r*100,i*100]},j.hsv.hcg=function(e){let t=e[1]/100,n=e[2]/100,r=t*n,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],r*100,i*100]},j.hcg.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100;if(n===0)return[r*255,r*255,r*255];let i=[0,0,0],a=t%1*6,o=a%1,s=1-o,c=0;switch(Math.floor(a)){case 0:i[0]=1,i[1]=o,i[2]=0;break;case 1:i[0]=s,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=o;break;case 3:i[0]=0,i[1]=s,i[2]=1;break;case 4:i[0]=o,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=s}return c=(1-n)*r,[(n*i[0]+c)*255,(n*i[1]+c)*255,(n*i[2]+c)*255]},j.hcg.hsv=function(e){let t=e[1]/100,n=t+e[2]/100*(1-t),r=0;return n>0&&(r=t/n),[e[0],r*100,n*100]},j.hcg.hsl=function(e){let t=e[1]/100,n=e[2]/100*(1-t)+.5*t,r=0;return n>0&&n<.5?r=t/(2*n):n>=.5&&n<1&&(r=t/(2*(1-n))),[e[0],r*100,n*100]},j.hcg.hwb=function(e){let t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],(n-t)*100,(1-n)*100]},j.hwb.hcg=function(e){let t=e[1]/100,n=1-e[2]/100,r=n-t,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],r*100,i*100]},j.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},j.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},j.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},j.gray.hsl=function(e){return[0,0,e[0]]},j.gray.hsv=j.gray.hsl,j.gray.hwb=function(e){return[0,100,e[0]]},j.gray.cmyk=function(e){return[0,0,0,e[0]]},j.gray.lab=function(e){return[e[0],0,0]},j.gray.hex=function(e){let t=Math.round(e[0]/100*255)&255,n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return`000000`.slice(n.length)+n},j.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]};function te(){let e={},t=Object.keys(j);for(let{length:n}=t,r=0;r<n;r++)e[t[r]]={distance:-1,parent:null};return e}function ne(e){let t=te(),n=[e];for(t[e].distance=0;n.length>0;){let e=n.pop(),r=Object.keys(j[e]);for(let{length:i}=r,a=0;a<i;a++){let i=r[a],o=t[i];o.distance===-1&&(o.distance=t[e].distance+1,o.parent=e,n.unshift(i))}}return t}function re(e,t){return function(n){return t(e(n))}}function ie(e,t){let n=[t[e].parent,e],r=j[t[e].parent][e],i=t[e].parent;for(;t[i].parent;)n.unshift(t[i].parent),r=re(j[t[i].parent][i],r),i=t[i].parent;return r.conversion=n,r}function ae(e){let t=ne(e),n={},r=Object.keys(t);for(let{length:e}=r,i=0;i<e;i++){let e=r[i];t[e].parent!==null&&(n[e]=ie(e,t))}return n}var F={},oe=Object.keys(j);function se(e){let t=function(...t){let n=t[0];return n==null?n:(n.length>1&&(t=n),e(t))};return`conversion`in e&&(t.conversion=e.conversion),t}function ce(e){let t=function(...t){let n=t[0];if(n==null)return n;n.length>1&&(t=n);let r=e(t);if(typeof r==`object`)for(let{length:e}=r,t=0;t<e;t++)r[t]=Math.round(r[t]);return r};return`conversion`in e&&(t.conversion=e.conversion),t}for(let e of oe){F[e]={},Object.defineProperty(F[e],"channels",{value:j[e].channels}),Object.defineProperty(F[e],"labels",{value:j[e].labels});let t=ae(e),n=Object.keys(t);for(let r of n){let n=t[r];F[e][r]=ce(n),F[e][r].raw=se(n)}}var I=[`keyword`,`gray`,`hex`],L={};for(let e of Object.keys(F))L[[...F[e].labels].sort().join(``)]=e;var R={};function z(e,t){if(!(this instanceof z))return new z(e,t);if(t&&t in I&&(t=null),t&&!(t in F))throw Error(`Unknown model: `+t);let n,r;if(e==null)this.model=`rgb`,this.color=[0,0,0],this.valpha=1;else if(e instanceof z)this.model=e.model,this.color=[...e.color],this.valpha=e.valpha;else if(typeof e==`string`){let t=D.get(e);if(t===null)throw Error(`Unable to parse color from string: `+e);this.model=t.model,r=F[this.model].channels,this.color=t.value.slice(0,r),this.valpha=typeof t.value[r]==`number`?t.value[r]:1}else if(e.length>0){this.model=t||`rgb`,r=F[this.model].channels;let n=Array.prototype.slice.call(e,0,r);this.color=H(n,r),this.valpha=typeof e[r]==`number`?e[r]:1}else if(typeof e==`number`)this.model=`rgb`,this.color=[e>>16&255,e>>8&255,e&255],this.valpha=1;else{this.valpha=1;let t=Object.keys(e);`alpha`in e&&(t.splice(t.indexOf(`alpha`),1),this.valpha=typeof e.alpha==`number`?e.alpha:0);let r=t.sort().join(``);if(!(r in L))throw Error(`Unable to parse color from object: `+JSON.stringify(e));this.model=L[r];let{labels:i}=F[this.model],a=[];for(n=0;n<i.length;n++)a.push(e[i[n]]);this.color=H(a)}if(R[this.model])for(r=F[this.model].channels,n=0;n<r;n++){let e=R[this.model][n];e&&(this.color[n]=e(this.color[n]))}this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze&&Object.freeze(this)}z.prototype={toString(){return this.string()},toJSON(){return this[this.model]()},string(e){let t=this.model in D.to?this:this.rgb();t=t.round(typeof e==`number`?e:1);let n=t.valpha===1?t.color:[...t.color,this.valpha];return D.to[t.model](...n)},percentString(e){let t=this.rgb().round(typeof e==`number`?e:1),n=t.valpha===1?t.color:[...t.color,this.valpha];return D.to.rgb.percent(...n)},array(){return this.valpha===1?[...this.color]:[...this.color,this.valpha]},object(){let e={},{channels:t}=F[this.model],{labels:n}=F[this.model];for(let r=0;r<t;r++)e[n[r]]=this.color[r];return this.valpha!==1&&(e.alpha=this.valpha),e},unitArray(){let e=this.rgb().color;return e[0]/=255,e[1]/=255,e[2]/=255,this.valpha!==1&&e.push(this.valpha),e},unitObject(){let e=this.rgb().object();return e.r/=255,e.g/=255,e.b/=255,this.valpha!==1&&(e.alpha=this.valpha),e},round(e){return e=Math.max(e||0,0),new z([...this.color.map(ue(e)),this.valpha],this.model)},alpha(e){return e===void 0?this.valpha:new z([...this.color,Math.max(0,Math.min(1,e))],this.model)},red:B(`rgb`,0,V(255)),green:B(`rgb`,1,V(255)),blue:B(`rgb`,2,V(255)),hue:B([`hsl`,`hsv`,`hsl`,`hwb`,`hcg`],0,e=>(e%360+360)%360),saturationl:B(`hsl`,1,V(100)),lightness:B(`hsl`,2,V(100)),saturationv:B(`hsv`,1,V(100)),value:B(`hsv`,2,V(100)),chroma:B(`hcg`,1,V(100)),gray:B(`hcg`,2,V(100)),white:B(`hwb`,1,V(100)),wblack:B(`hwb`,2,V(100)),cyan:B(`cmyk`,0,V(100)),magenta:B(`cmyk`,1,V(100)),yellow:B(`cmyk`,2,V(100)),black:B(`cmyk`,3,V(100)),x:B(`xyz`,0,V(95.047)),y:B(`xyz`,1,V(100)),z:B(`xyz`,2,V(108.833)),l:B(`lab`,0,V(100)),a:B(`lab`,1),b:B(`lab`,2),keyword(e){return e===void 0?F[this.model].keyword(this.color):new z(e)},hex(e){return e===void 0?D.to.hex(...this.rgb().round().color):new z(e)},hexa(e){if(e!==void 0)return new z(e);let t=this.rgb().round().color,n=Math.round(this.valpha*255).toString(16).toUpperCase();return n.length===1&&(n=`0`+n),D.to.hex(...t)+n},rgbNumber(){let e=this.rgb().color;return(e[0]&255)<<16|(e[1]&255)<<8|e[2]&255},luminosity(){let e=this.rgb().color,t=[];for(let[n,r]of e.entries()){let e=r/255;t[n]=e<=.04045?e/12.92:((e+.055)/1.055)**2.4}return .2126*t[0]+.7152*t[1]+.0722*t[2]},contrast(e){let t=this.luminosity(),n=e.luminosity();return t>n?(t+.05)/(n+.05):(n+.05)/(t+.05)},level(e){let t=this.contrast(e);return t>=7?`AAA`:t>=4.5?`AA`:``},isDark(){let e=this.rgb().color;return(e[0]*2126+e[1]*7152+e[2]*722)/1e4<128},isLight(){return!this.isDark()},negate(){let e=this.rgb();for(let t=0;t<3;t++)e.color[t]=255-e.color[t];return e},lighten(e){let t=this.hsl();return t.color[2]+=t.color[2]*e,t},darken(e){let t=this.hsl();return t.color[2]-=t.color[2]*e,t},saturate(e){let t=this.hsl();return t.color[1]+=t.color[1]*e,t},desaturate(e){let t=this.hsl();return t.color[1]-=t.color[1]*e,t},whiten(e){let t=this.hwb();return t.color[1]+=t.color[1]*e,t},blacken(e){let t=this.hwb();return t.color[2]+=t.color[2]*e,t},grayscale(){let e=this.rgb().color,t=e[0]*.3+e[1]*.59+e[2]*.11;return z.rgb(t,t,t)},fade(e){return this.alpha(this.valpha-this.valpha*e)},opaquer(e){return this.alpha(this.valpha+this.valpha*e)},rotate(e){let t=this.hsl(),n=t.color[0];return n=(n+e)%360,n=n<0?360+n:n,t.color[0]=n,t},mix(e,t){if(!e||!e.rgb)throw Error(`Argument to "mix" was not a Color instance, but rather an instance of `+typeof e);let n=e.rgb(),r=this.rgb(),i=t===void 0?.5:t,a=2*i-1,o=n.alpha()-r.alpha(),s=((a*o===-1?a:(a+o)/(1+a*o))+1)/2,c=1-s;return z.rgb(s*n.red()+c*r.red(),s*n.green()+c*r.green(),s*n.blue()+c*r.blue(),n.alpha()*i+r.alpha()*(1-i))}};for(let e of Object.keys(F)){if(I.includes(e))continue;let{channels:t}=F[e];z.prototype[e]=function(...t){return this.model===e?new z(this):t.length>0?new z(t,e):new z([...de(F[this.model][e].raw(this.color)),this.valpha],e)},z[e]=function(...n){let r=n[0];return typeof r==`number`&&(r=H(n,t)),new z(r,e)}}function le(e,t){return Number(e.toFixed(t))}function ue(e){return function(t){return le(t,e)}}function B(e,t,n){e=Array.isArray(e)?e:[e];for(let r of e)(R[r]||=[])[t]=n;return e=e[0],function(r){let i;return r===void 0?(i=this[e]().color[t],n&&(i=n(i)),i):(n&&(r=n(r)),i=this[e](),i.color[t]=r,i)}}function V(e){return function(t){return Math.max(0,Math.min(e,t))}}function de(e){return Array.isArray(e)?e:[e]}function H(e,t){for(let n=0;n<t;n++)typeof e[n]!=`number`&&(e[n]=0);return e}var U=[`PageUp`,`PageDown`],W=[`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`],fe={"from-left":[`Home`,`PageDown`,`ArrowDown`,`ArrowLeft`],"from-right":[`Home`,`PageDown`,`ArrowDown`,`ArrowRight`],"from-bottom":[`Home`,`PageDown`,`ArrowDown`,`ArrowLeft`],"from-top":[`Home`,`PageDown`,`ArrowUp`,`ArrowLeft`]},G=`Slider`,[K,pe,me]=f(G),[q,he]=c(G,[me]),[ge,J]=q(G),_e=S.forwardRef((e,t)=>{let{name:n,min:r=0,max:i=100,step:a=1,orientation:c=`horizontal`,disabled:l=!1,minStepsBetweenThumbs:u=0,defaultValue:d=[r],value:f,onValueChange:p=()=>{},onValueCommit:m=()=>{},inverted:g=!1,form:_,...v}=e,y=S.useRef(new Set),b=S.useRef(0),x=S.useRef(!1),w=c===`horizontal`?be:xe,[T=[],E]=o({prop:f,defaultProp:d,onChange:e=>{[...y.current][b.current]?.focus({preventScroll:!0,focusVisible:x.current}),x.current=!1,p(e)}}),D=S.useRef(T);function O(e){j(e,Re(T,e))}function k(e){j(e,b.current)}function A(){let e=D.current[b.current];T[b.current]!==e&&m(T)}function j(e,t,{commit:n}={commit:!1}){let o=He(a),s=h(Ue(Math.round((e-r)/a)*a+r,o),[r,i]);E((e=[])=>{let r=Fe(e,s,t);if(Ve(r,u*a)){b.current=r.indexOf(s);let t=String(r)!==String(e);return t&&n&&m(r),t?r:e}else return e})}return(0,C.jsx)(ge,{scope:e.__scopeSlider,name:n,disabled:l,min:r,max:i,valueIndexToChangeRef:b,thumbs:y.current,values:T,orientation:c,form:_,children:(0,C.jsx)(K.Provider,{scope:e.__scopeSlider,children:(0,C.jsx)(K.Slot,{scope:e.__scopeSlider,children:(0,C.jsx)(w,{"aria-disabled":l,"data-disabled":l?``:void 0,...v,ref:t,onPointerDown:s(v.onPointerDown,()=>{l||(D.current=T,x.current=!1)}),min:r,max:i,inverted:g,onSlideStart:l?void 0:O,onSlideMove:l?void 0:k,onSlideEnd:l?void 0:A,onHomeKeyDown:()=>{l||(x.current=!0,j(r,0,{commit:!0}))},onEndKeyDown:()=>{l||(x.current=!0,j(i,T.length-1,{commit:!0}))},onStepKeyDown:({event:e,direction:t})=>{if(!l){x.current=!0;let n=U.includes(e.key)||e.shiftKey&&W.includes(e.key)?10:1,r=b.current,i=T[r];j(i+a*n*t,r,{commit:!0})}}})})})})});_e.displayName=G;var[ve,ye]=q(G,{startEdge:`left`,endEdge:`right`,size:`width`,direction:1}),be=S.forwardRef((e,t)=>{let{min:n,max:i,dir:a,inverted:o,onSlideStart:s,onSlideMove:c,onSlideEnd:l,onStepKeyDown:u,...d}=e,[f,m]=S.useState(null),h=r(t,m),g=S.useRef(void 0),_=p(a),v=_===`ltr`,y=v&&!o||!v&&o;function b(e){let t=g.current||f.getBoundingClientRect(),r=Z([0,t.width],y?[n,i]:[i,n]);return g.current=t,r(e-t.left)}return(0,C.jsx)(ve,{scope:e.__scopeSlider,startEdge:y?`left`:`right`,endEdge:y?`right`:`left`,direction:y?1:-1,size:`width`,children:(0,C.jsx)(Se,{dir:_,"data-orientation":`horizontal`,...d,ref:h,style:{...d.style,"--radix-slider-thumb-transform":`translateX(-50%)`},onSlideStart:e=>{let t=b(e.clientX);s?.(t)},onSlideMove:e=>{let t=b(e.clientX);c?.(t)},onSlideEnd:()=>{g.current=void 0,l?.()},onStepKeyDown:e=>{let t=fe[y?`from-left`:`from-right`].includes(e.key);u?.({event:e,direction:t?-1:1})}})})}),xe=S.forwardRef((e,t)=>{let{min:n,max:i,inverted:a,onSlideStart:o,onSlideMove:s,onSlideEnd:c,onStepKeyDown:l,...u}=e,d=S.useRef(null),f=r(t,d),p=S.useRef(void 0),m=!a;function h(e){let t=p.current||d.current.getBoundingClientRect(),r=Z([0,t.height],m?[i,n]:[n,i]);return p.current=t,r(e-t.top)}return(0,C.jsx)(ve,{scope:e.__scopeSlider,startEdge:m?`bottom`:`top`,endEdge:m?`top`:`bottom`,size:`height`,direction:m?1:-1,children:(0,C.jsx)(Se,{"data-orientation":`vertical`,...u,ref:f,style:{...u.style,"--radix-slider-thumb-transform":`translateY(50%)`},onSlideStart:e=>{let t=h(e.clientY);o?.(t)},onSlideMove:e=>{let t=h(e.clientY);s?.(t)},onSlideEnd:()=>{p.current=void 0,c?.()},onStepKeyDown:e=>{let t=fe[m?`from-bottom`:`from-top`].includes(e.key);l?.({event:e,direction:t?-1:1})}})})}),Se=S.forwardRef((e,t)=>{let{__scopeSlider:n,onSlideStart:r,onSlideMove:i,onSlideEnd:a,onHomeKeyDown:o,onEndKeyDown:c,onStepKeyDown:u,...d}=e,f=J(G,n);return(0,C.jsx)(l.span,{...d,ref:t,onKeyDown:s(e.onKeyDown,e=>{e.key===`Home`?(o(e),e.preventDefault()):e.key===`End`?(c(e),e.preventDefault()):U.concat(W).includes(e.key)&&(u(e),e.preventDefault())}),onPointerDown:s(e.onPointerDown,e=>{let t=e.target;t.setPointerCapture(e.pointerId),e.preventDefault(),f.thumbs.has(t)?t.focus({preventScroll:!0,focusVisible:!1}):r(e)}),onPointerMove:s(e.onPointerMove,e=>{e.target.hasPointerCapture(e.pointerId)&&i(e)}),onPointerUp:s(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&(t.releasePointerCapture(e.pointerId),a(e))})})}),Ce=`SliderTrack`,we=S.forwardRef((e,t)=>{let{__scopeSlider:n,...r}=e,i=J(Ce,n);return(0,C.jsx)(l.span,{"data-disabled":i.disabled?``:void 0,"data-orientation":i.orientation,...r,ref:t})});we.displayName=Ce;var Y=`SliderRange`,Te=S.forwardRef((e,t)=>{let{__scopeSlider:n,...i}=e,a=J(Y,n),o=ye(Y,n),s=r(t,S.useRef(null)),c=a.values.length,u=a.values.map(e=>Ie(e,a.min,a.max)),d=c>1?Math.min(...u):0,f=100-Math.max(...u);return(0,C.jsx)(l.span,{"data-orientation":a.orientation,"data-disabled":a.disabled?``:void 0,...i,ref:s,style:{...e.style,[o.startEdge]:d+`%`,[o.endEdge]:f+`%`}})});Te.displayName=Y;var Ee=`SliderThumb`,[De,Oe]=q(Ee),ke=`SliderThumbProvider`;function Ae(e){let{__scopeSlider:t,name:n,children:r,internal_do_not_use_render:i}=e,o=J(ke,t),s=pe(t),[c,l]=S.useState(null),u=S.useMemo(()=>c?s().findIndex(e=>e.ref.current===c):-1,[s,c]),d=a(c),f=c?!!o.form||!!c.closest(`form`):!0,p=o.values[u],m=n??(o.name?o.name+(o.values.length>1?`[]`:``):void 0),h=p===void 0?0:Ie(p,o.min,o.max);S.useEffect(()=>{if(c)return o.thumbs.add(c),()=>{o.thumbs.delete(c)}},[c,o.thumbs]);let g={value:p,name:m,form:o.form,isFormControl:f,index:u,thumb:c,onThumbChange:l,percent:h,size:d};return(0,C.jsx)(De,{scope:t,...g,children:We(i)?i(g):r})}Ae.displayName=ke;var X=`SliderThumbTrigger`,je=S.forwardRef((e,t)=>{let{__scopeSlider:n,...i}=e,a=J(X,n),o=ye(X,n),{index:c,value:u,percent:d,size:f,onThumbChange:p}=Oe(X,n),m=r(t,p),h=Le(c,a.values.length),g=f?.[o.size],_=g?ze(g,d,o.direction):0;return(0,C.jsx)(`span`,{style:{transform:`var(--radix-slider-thumb-transform)`,position:`absolute`,[o.startEdge]:`calc(${d}% + ${_}px)`},children:(0,C.jsx)(K.ItemSlot,{scope:n,children:(0,C.jsx)(l.span,{role:`slider`,"aria-label":e[`aria-label`]||h,"aria-valuemin":a.min,"aria-valuenow":u,"aria-valuemax":a.max,"aria-orientation":a.orientation,"data-orientation":a.orientation,"data-disabled":a.disabled?``:void 0,tabIndex:a.disabled?void 0:0,...i,ref:m,style:u===void 0?{display:`none`}:e.style,onFocus:s(e.onFocus,()=>{a.valueIndexToChangeRef.current=c})})})})});je.displayName=X;var Me=S.forwardRef((e,t)=>{let{__scopeSlider:n,name:r,...i}=e;return(0,C.jsx)(Ae,{__scopeSlider:n,name:r,internal_do_not_use_render:({index:e,isFormControl:r})=>(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(je,{...i,ref:t,__scopeSlider:n}),r?(0,C.jsx)(Pe,{__scopeSlider:n},e):null]})})});Me.displayName=Ee;var Ne=`SliderBubbleInput`,Pe=S.forwardRef(({__scopeSlider:e,...t},n)=>{let{value:i,name:a,form:o}=Oe(Ne,e),s=S.useRef(null),c=r(s,n),u=m(i);return S.useEffect(()=>{let e=s.current;if(!e)return;let t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set;if(u!==i&&n){let t=new Event(`input`,{bubbles:!0});n.call(e,i),e.dispatchEvent(t)}},[u,i]),(0,C.jsx)(l.input,{style:{display:`none`},name:a,form:o,...t,ref:c,defaultValue:i})});Pe.displayName=Ne;function Fe(e=[],t,n){let r=[...e];return r[n]=t,r.sort((e,t)=>e-t)}function Ie(e,t,n){return h(100/(n-t)*(e-t),[0,100])}function Le(e,t){if(t>2)return`Value ${e+1} of ${t}`;if(t===2)return[`Minimum`,`Maximum`][e]}function Re(e,t){if(e.length===1)return 0;let n=e.map(e=>Math.abs(e-t)),r=Math.min(...n);return n.indexOf(r)}function ze(e,t,n){let r=e/2;return(r-Z([0,50],[0,r])(t)*n)*n}function Be(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function Ve(e,t){if(t>0){let n=Be(e);return Math.min(...n)>=t}return!0}function Z(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function He(e){if(!Number.isFinite(e))return 0;let t=e.toString();if(t.includes(`e`)){let[e,n]=t.split(`e`),r=e.split(`.`)[1]||``,i=Number(n);return Math.max(0,r.length-i)}let n=t.split(`.`)[1];return n?n.length:0}function Ue(e,t){let n=10**t;return Math.round(e*n)/n}function We(e){return typeof e==`function`}var Ge=e=>{let t=e.toLowerCase();return t===`transparent`||t.length===5&&t[4]===`0`||t.length===9&&t.slice(7)===`00`},Ke=({color:e,selected:t,size:n=`md`,className:r,style:a,...o})=>(0,C.jsx)(`button`,{"aria-pressed":t,className:i(`relative flex shrink-0 cursor-pointer items-center overflow-hidden rounded-full border border-control-border`,n===`lg`?`size-6`:`size-5`,t&&`ring-2 ring-focus-ring`,r),style:{backgroundColor:e,...a},type:`button`,...o,children:Ge(e)&&(0,C.jsx)(`span`,{"aria-hidden":`true`,className:`pointer-events-none absolute top-1/2 left-[-30%] block h-px w-[160%] -translate-y-1/2 -rotate-45 bg-destructive`,"data-testid":`transparent-indicator`})}),qe=({swatches:e,value:t,size:n=`md`,onSelect:r,className:a,...o})=>(0,C.jsx)(`div`,{className:i(`flex items-center gap-1`,a),...o,children:e.map(e=>{let i=e.value===void 0?e.hex:e.value;return(0,C.jsx)(Ke,{"aria-label":e.title,color:e.hex,selected:i===t||e.hex.toLowerCase()===t?.toLowerCase(),size:n,title:e.title,onClick:()=>r(i)},e.title)})}),Je=(0,S.forwardRef)(({value:e,className:t,...n},r)=>(0,C.jsxs)(`button`,{ref:r,"aria-label":`Pick color`,className:i(`relative size-6 cursor-pointer rounded-full border border-control-border`,t),type:`button`,...n,children:[(0,C.jsx)(`span`,{"aria-hidden":`true`,className:`absolute inset-0 rounded-full bg-[conic-gradient(hsl(360,100%,50%),hsl(315,100%,50%),hsl(270,100%,50%),hsl(225,100%,50%),hsl(180,100%,50%),hsl(135,100%,50%),hsl(90,100%,50%),hsl(45,100%,50%),hsl(0,100%,50%))]`}),e&&(0,C.jsx)(`span`,{className:`absolute inset-[3px] overflow-hidden rounded-full border border-background`,style:{backgroundColor:e}})]}));Je.displayName=`ColorPickerTrigger`;var Ye=(0,S.createContext)(void 0),Q=()=>{let e=(0,S.useContext)(Ye);if(!e)throw Error(`useColorPicker must be used within a ColorPickerProvider`);return e},Xe=({value:e,defaultValue:t=`rgb(0 0 0)`,onChange:n,className:r,...a})=>{let o=z(e??t),[s,c]=(0,S.useState)(o.hue()),[l,u]=(0,S.useState)(o.saturationl()),[d,f]=(0,S.useState)(o.lightness()),[p,m]=(0,S.useState)(o.alpha()*100),[h,g]=(0,S.useState)(`hex`);return(0,S.useEffect)(()=>{if(e){let t=z(e);c(t.hue()),u(t.saturationl()),f(t.lightness()),m(t.alpha()*100)}},[e]),(0,S.useEffect)(()=>{n&&n(z.hsl(s,l,d).alpha(p/100).hex())},[s,l,d,p,n]),(0,C.jsx)(Ye.Provider,{value:{hue:s,saturation:l,lightness:d,alpha:p,mode:h,setHue:c,setSaturation:u,setLightness:f,setAlpha:m,setMode:g},children:(0,C.jsx)(`div`,{className:i(`flex size-full flex-col gap-4`,r),...a})})},$=(0,S.memo)(({className:e,...t})=>{let n=(0,S.useRef)(null),r=(0,S.useRef)(null),[a,o]=(0,S.useState)(0),[s,c]=(0,S.useState)(0),{hue:l,saturation:u,lightness:d,setSaturation:f,setLightness:p}=Q(),m=(0,S.useMemo)(()=>`linear-gradient(0deg, rgba(0,0,0,1), rgba(0,0,0,0)),
|
|
2
|
+
linear-gradient(90deg, rgba(255,255,255,1), rgba(255,255,255,0)),
|
|
3
|
+
hsl(${l}, 100%, 50%)`,[l]);(0,S.useEffect)(()=>{let e=u/100,t=e<.01?100:50+50*(1-e),n=Math.max(0,Math.min(1,1-d/t));o(e),c(n)},[u,d]);let h=(0,S.useCallback)(e=>{if(!n.current)return;let t=n.current.getBoundingClientRect(),r=Math.max(0,Math.min(1,(e.clientX-t.left)/t.width)),i=Math.max(0,Math.min(1,(e.clientY-t.top)/t.height));o(r),c(i),f(r*100);let a=(r<.01?100:50+50*(1-r))*(1-i);p(a)},[f,p]);return(0,C.jsx)(`div`,{ref:n,className:i(`relative size-full cursor-crosshair rounded`,e),style:{background:m},onPointerCancel:e=>{r.current===e.pointerId&&(r.current=null)},onPointerDown:e=>{e.preventDefault(),r.current=e.pointerId,e.currentTarget.setPointerCapture?.(e.pointerId),h(e.nativeEvent)},onPointerMove:e=>{r.current===e.pointerId&&h(e.nativeEvent)},onPointerUp:e=>{r.current===e.pointerId&&(r.current=null,e.currentTarget.releasePointerCapture?.(e.pointerId))},...t,children:(0,C.jsx)(`div`,{className:`pointer-events-none absolute size-4 -translate-1/2 rounded-full border-2 border-white`,style:{left:`${a*100}%`,top:`${s*100}%`,boxShadow:`0 0 0 1px rgba(0,0,0,0.5)`}})})});$.displayName=`ColorPickerSelection`;var Ze=({className:e,...t})=>{let{hue:n,setHue:r}=Q();return(0,C.jsxs)(_e,{className:i(`relative flex h-4 w-full touch-none`,e),max:360,step:1,value:[n],onValueChange:([e])=>r(e),...t,children:[(0,C.jsx)(we,{className:`relative my-0.5 h-3 w-full grow rounded-full bg-[linear-gradient(90deg,red,yellow,lime,aqua,blue,magenta,red)]`,children:(0,C.jsx)(Te,{className:`absolute h-full`})}),(0,C.jsx)(Me,{className:`block size-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:ring-1 focus-visible:ring-focus-ring focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50`})]})},Qe=({className:e,...t})=>{let{setHue:n,setSaturation:r,setLightness:a,setAlpha:o}=Q();return typeof window<`u`&&`EyeDropper`in window?(0,C.jsx)(d,{className:i(`size-8 shrink-0 text-muted-foreground`,e),size:`icon`,type:`button`,variant:`outline`,onClick:async()=>{try{let[e,t,i]=z((await new EyeDropper().open()).sRGBHex).hsl().array();n(e),r(t),a(i),o(100)}catch(e){console.error(`EyeDropper failed:`,e)}},...t,children:(0,C.jsx)(u,{size:16})}):null},$e=[`hex`,`rgb`,`hsl`],et=({...e})=>{let{mode:t,setMode:n}=Q();return(0,C.jsxs)(b,{value:t,onValueChange:n,children:[(0,C.jsx)(v,{className:`h-8 w-20 shrink-0 text-xs`,...e,children:(0,C.jsx)(y,{placeholder:`Mode`})}),(0,C.jsx)(_,{children:$e.map(e=>(0,C.jsx)(g,{className:`text-xs`,value:e,children:e.toUpperCase()},e))})]})},tt=({className:e,...t})=>{let{hue:n,saturation:r,lightness:a,mode:o,setHue:s,setSaturation:c,setLightness:l,setAlpha:u}=Q(),d=z.hsl(n,r,a),[f,p]=(0,S.useState)(null),m=(e,t)=>{try{if(o===`hex`){let t=z(e);s(t.hue()),c(t.saturationl()),l(t.lightness()),u(t.alpha()*100)}else if((o===`rgb`||o===`hsl`)&&t!==void 0){let n=d[o]().array().map(e=>Math.round(e));n[t]=parseInt(e,10)||0;let r=z[o](n[0],n[1],n[2]);s(r.hue()),c(r.saturationl()),l(r.lightness())}}catch{}};if(o===`hex`){let n=d.hex();return(0,C.jsx)(`div`,{className:i(`relative flex w-full items-center -space-x-px rounded-md`,e),...t,children:(0,C.jsx)(x,{"aria-label":`Hex color`,className:`h-8 px-2 font-mono text-xs shadow-none`,type:`text`,value:f??n,onBlur:()=>{p(null)},onChange:e=>{p(e.target.value),m(e.target.value)}})})}if(o===`rgb`||o===`hsl`){let n=d[o]().array().map(e=>Math.round(e));return(0,C.jsx)(`div`,{className:i(`flex flex-1 items-stretch -space-x-px rounded-md`,e),...t,children:n.map((e,t)=>(0,C.jsx)(x,{"aria-label":`${o.toUpperCase()} channel ${t+1}`,className:i(`h-8 flex-1 px-2 font-mono text-xs shadow-none focus:z-10`,t&&`rounded-l-none`,t<n.length-1&&`rounded-r-none`),maxLength:3,size:4,type:`text`,value:e,onChange:e=>{m(e.target.value,t)}},t))})}return null},nt=e=>(0,C.jsxs)(Xe,{className:`w-auto min-w-80`,...e,children:[(0,C.jsx)($,{className:`aspect-square`}),(0,C.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,C.jsx)(Qe,{}),(0,C.jsx)(Ze,{})]}),(0,C.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,C.jsx)(et,{}),(0,C.jsx)(tt,{})]})]});export{Je as n,qe as r,nt as t};
|
|
@@ -0,0 +1 @@
|
|
|
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}from"./inline-BWSs_VzR.js";import{r as i}from"./field-C93_Mg6j.js";import{gr as a,hr as o,pr as s}from"./index-CgMCwsxN.js";import{n as c,r as l,t as u}from"./color-picker-G4kGR7rp.js";import{t as d}from"./debounce-pscB46sW.js";var f=e(t(),1),p=n(),m=/^#(?:[0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i,h=(e,t,n=[])=>{if(e&&m.test(e))return e;switch(e){case`accent`:return t&&m.test(t)?t:`#ffffff`;case`dark`:return`#08090c`;case`light`:return`#ffffff`;case`transparent`:return`#00000000`;default:return n.find(t=>t.value===e)?.hex||`#ffffff`}},g=e=>e.length===4?e.replace(/#(.)(.)(.)/,`#$1$1$2$2$3$3`):e,_=({testId:e,title:t,direction:n=`rtl`,hint:m,error:_,value:v,onChange:y,accentColor:b,swatches:x=[],alwaysOpen:S=!1,debounceMs:C})=>{let[w,T]=(0,f.useState)(S),[E,D]=(0,f.useState)(v),O=(0,f.useRef)(!1),k=(0,f.useRef)(!1),A=(0,f.useRef)(null),j=(0,f.useId)(),M=h(E,b,x);(0,f.useEffect)(()=>{D(e=>g(e||``)===v?e:v)},[v]);let N=(0,f.useMemo)(()=>y&&C?d(y,C):y,[C,y]),P=(0,f.useCallback)(e=>{D(e),N?.(e?g(e):null)},[N]),F=(0,f.useCallback)(()=>{A.current&&=(window.removeEventListener(`keydown`,A.current,!0),null)},[]),I=()=>{O.current=!1,k.current=!1},L=()=>{F(),I(),S||T(!1)},R=()=>{if(A.current)return;let e=e=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),L())};A.current=e,window.addEventListener(`keydown`,e,!0)};return(0,f.useEffect)(()=>F,[F]),(0,p.jsxs)(s,{open:w,onOpenChange:e=>{S||(I(),e?R():F(),T(e))},children:[(0,p.jsxs)(r,{align:m?`start`:`center`,className:`w-full ${n===`ltr`?`flex-row-reverse`:``}`,"data-testid":e,gap:`sm`,justify:`between`,children:[t&&(0,p.jsxs)(`label`,{className:`min-w-0 flex-1 cursor-pointer text-left`,htmlFor:j,children:[t,m&&(0,p.jsx)(i,{className:_?`text-destructive`:void 0,children:m})]}),(0,p.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[w&&x.length>0&&(0,p.jsx)(l,{swatches:x,value:E,onSelect:e=>{O.current=!1,k.current=!0,P(e),L()}}),(0,p.jsx)(a,{asChild:!0,children:(0,p.jsx)(c,{id:j,value:M})})]})]}),(0,p.jsx)(o,{align:n===`rtl`?`end`:`start`,className:`w-auto p-4`,onEscapeKeyDown:e=>e.stopPropagation(),children:(0,p.jsx)(`div`,{onInputCapture:()=>O.current=!0,onKeyDownCapture:()=>O.current=!0,onMouseDownCapture:()=>O.current=!0,onPointerDownCapture:()=>O.current=!0,onTouchStartCapture:()=>O.current=!0,children:(0,p.jsx)(u,{defaultValue:M,onChange:e=>{!k.current&&O.current&&P(e.toLowerCase())}})})})]})};export{_ as t};
|
|
@@ -0,0 +1 @@
|
|
|
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{tr as i}from"./button-Dvcv1QSR.js";import{n as a,t as o}from"./input-surface-BsrIZeSF.js";import{gr as s,hr as c,pr as l}from"./index-CgMCwsxN.js";var u=e(t(),1),d=n(),f=l,p=u.forwardRef(({children:e,className:t,...n},c)=>(0,d.jsx)(s,{asChild:!0,children:(0,d.jsxs)(`button`,{ref:c,className:r(o(`self`),a.disabledFieldSelf,`flex h-(--control-height) w-full min-w-0 items-center justify-between px-3 text-control hover:bg-button-hover`,t),role:`combobox`,...n,type:`button`,children:[e,(0,d.jsx)(i,{className:`ml-2 size-4 shrink-0 opacity-50`})]})}));p.displayName=`ComboboxTrigger`;var m=u.forwardRef(({className:e,placeholder:t=!1,...n},i)=>(0,d.jsx)(`span`,{ref:i,className:r(`min-w-0 flex-1 truncate text-left`,t&&`text-muted-foreground`,e),...n}));m.displayName=`ComboboxValue`;var h=u.forwardRef(({align:e=`start`,className:t,...n},i)=>(0,d.jsx)(c,{ref:i,align:e,className:r(`z-[9999] w-(--radix-popover-trigger-width) p-0`,t),...n}));h.displayName=`ComboboxContent`;export{m as i,h as n,p as r,f as t};
|
|
@@ -0,0 +1 @@
|
|
|
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{i as r,l as i}from"./dist-B3keLvjj.js";import{v as a}from"./shade-app-CcS3f8MZ-vwURazk8.js";import{r as o}from"./dist-8YJUlf3B.js";import{nr as s,nt as c}from"./button-Dvcv1QSR.js";import{a as l,o as u,r as d,t as f}from"./dist-Dcsslyo72.js";var p=e(t(),1),m=n(),h=1,g=.9,_=.8,v=.17,y=.1,b=.999,x=.9999,ee=.99,S=/[\\\/_+.#"@\[\(\{&]/,C=/[\\\/_+.#"@\[\(\{&]/g,w=/[\s-]/,T=/[\s-]/g;function E(e,t,n,r,i,a,o){if(a===t.length)return i===e.length?h:ee;var s=`${i},${a}`;if(o[s]!==void 0)return o[s];for(var c=r.charAt(a),l=n.indexOf(c,i),u=0,d,f,p,m;l>=0;)d=E(e,t,n,r,l+1,a+1,o),d>u&&(l===i?d*=h:S.test(e.charAt(l-1))?(d*=_,p=e.slice(i,l-1).match(C),p&&i>0&&(d*=b**+p.length)):w.test(e.charAt(l-1))?(d*=g,m=e.slice(i,l-1).match(T),m&&i>0&&(d*=b**+m.length)):(d*=v,i>0&&(d*=b**+(l-i))),e.charAt(l)!==t.charAt(a)&&(d*=x)),(d<y&&n.charAt(l-1)===r.charAt(a+1)||r.charAt(a+1)===r.charAt(a)&&n.charAt(l-1)!==r.charAt(a))&&(f=E(e,t,n,r,l+1,a+2,o),f*y>d&&(d=f*y)),d>u&&(u=d),l=n.indexOf(c,l+1);return o[s]=u,u}function D(e){return e.toLowerCase().replace(T,` `)}function O(e,t,n){return e=n&&n.length>0?`${e+` `+n.join(` `)}`:e,E(e,t,D(e),D(t),0,0,{})}var k=`[cmdk-group=""]`,A=`[cmdk-group-items=""]`,te=`[cmdk-group-heading=""]`,j=`[cmdk-item=""]`,M=`${j}:not([aria-disabled="true"])`,N=`cmdk-item-select`,P=`data-value`,F=(e,t,n)=>O(e,t,n),I=p.createContext(void 0),L=()=>p.useContext(I),ne=p.createContext(void 0),R=()=>p.useContext(ne),z=p.createContext(void 0),B=p.forwardRef((e,t)=>{let n=Z(()=>({search:``,value:e.value??e.defaultValue??``,selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}})),r=Z(()=>new Set),i=Z(()=>new Map),s=Z(()=>new Map),c=Z(()=>new Set),l=Y(e),{label:u,children:d,value:f,onValueChange:m,filter:h,shouldFilter:g,loop:_,disablePointerSelection:v=!1,vimBindings:y=!0,...b}=e,x=a(),ee=a(),S=a(),C=p.useRef(null),w=se();X(()=>{if(f!==void 0){let e=f.trim();n.current.value=e,T.emit()}},[f]),X(()=>{w(6,z)},[]);let T=p.useMemo(()=>({subscribe:e=>(c.current.add(e),()=>c.current.delete(e)),snapshot:()=>n.current,setState:(e,t,r)=>{var i,a,o;if(!Object.is(n.current[e],t)){if(n.current[e]=t,e===`search`)R(),O(),w(1,L);else if(e===`value`){if(document.activeElement.hasAttribute(`cmdk-input`)||document.activeElement.hasAttribute(`cmdk-root`)){let e=document.getElementById(S);e?e.focus():(i=document.getElementById(x))==null||i.focus()}if(w(7,()=>{n.current.selectedItemId=B()?.id,T.emit()}),r||w(5,z),l.current?.value!==void 0){let e=t??``;(o=(a=l.current).onValueChange)==null||o.call(a,e);return}}T.emit()}},emit:()=>{c.current.forEach(e=>e())}}),[]),E=p.useMemo(()=>({value:(e,t,r)=>{t!==s.current.get(e)?.value&&(s.current.set(e,{value:t,keywords:r}),n.current.filtered.items.set(e,D(t,r)),w(2,()=>{O(),T.emit()}))},item:(e,t)=>(r.current.add(e),t&&(i.current.has(t)?i.current.get(t).add(e):i.current.set(t,new Set([e]))),w(3,()=>{R(),O(),n.current.value||L(),T.emit()}),()=>{s.current.delete(e),r.current.delete(e),n.current.filtered.items.delete(e);let t=B();w(4,()=>{R(),t?.getAttribute(`id`)===e&&L(),T.emit()})}),group:e=>(i.current.has(e)||i.current.set(e,new Set),()=>{s.current.delete(e),i.current.delete(e)}),filter:()=>l.current.shouldFilter,label:u||e[`aria-label`],getDisablePointerSelection:()=>l.current.disablePointerSelection,listId:x,inputId:S,labelId:ee,listInnerRef:C}),[]);function D(e,t){let r=l.current?.filter??F;return e?r(e,n.current.search,t):0}function O(){if(!n.current.search||l.current.shouldFilter===!1)return;let e=n.current.filtered.items,t=[];n.current.filtered.groups.forEach(n=>{let r=i.current.get(n),a=0;r.forEach(t=>{let n=e.get(t);a=Math.max(n,a)}),t.push([n,a])});let r=C.current;V().sort((t,n)=>{let r=t.getAttribute(`id`),i=n.getAttribute(`id`);return(e.get(i)??0)-(e.get(r)??0)}).forEach(e=>{let t=e.closest(A);t?t.appendChild(e.parentElement===t?e:e.closest(`${A} > *`)):r.appendChild(e.parentElement===r?e:e.closest(`${A} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{let t=C.current?.querySelector(`${k}[${P}="${encodeURIComponent(e[0])}"]`);t?.parentElement.appendChild(t)})}function L(){let e=V().find(e=>e.getAttribute(`aria-disabled`)!==`true`)?.getAttribute(P);T.setState(`value`,e||void 0)}function R(){if(!n.current.search||l.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let e=0;for(let t of r.current){let r=D(s.current.get(t)?.value??``,s.current.get(t)?.keywords??[]);n.current.filtered.items.set(t,r),r>0&&e++}for(let[e,t]of i.current)for(let r of t)if(n.current.filtered.items.get(r)>0){n.current.filtered.groups.add(e);break}n.current.filtered.count=e}function z(){var e;let t=B();t&&(t.parentElement?.firstChild===t&&((e=t.closest(k)?.querySelector(te))==null||e.scrollIntoView({block:`nearest`})),t.scrollIntoView({block:`nearest`}))}function B(){return C.current?.querySelector(`${j}[aria-selected="true"]`)}function V(){return Array.from(C.current?.querySelectorAll(M)||[])}function H(e){let t=V()[e];t&&T.setState(`value`,t.getAttribute(P))}function U(e){var t;let n=B(),r=V(),i=r.findIndex(e=>e===n),a=r[i+e];(t=l.current)!=null&&t.loop&&(a=i+e<0?r[r.length-1]:i+e===r.length?r[0]:r[i+e]),a&&T.setState(`value`,a.getAttribute(P))}function W(e){let t=B()?.closest(k),n;for(;t&&!n;)t=e>0?ie(t,k):ae(t,k),n=t?.querySelector(M);n?T.setState(`value`,n.getAttribute(P)):U(e)}let G=()=>H(V().length-1),K=e=>{e.preventDefault(),e.metaKey?G():e.altKey?W(1):U(1)},q=e=>{e.preventDefault(),e.metaKey?H(0):e.altKey?W(-1):U(-1)};return p.createElement(o.div,{ref:t,tabIndex:-1,...b,"cmdk-root":``,onKeyDown:e=>{var t;(t=b.onKeyDown)==null||t.call(b,e);let n=e.nativeEvent.isComposing||e.keyCode===229;if(!(e.defaultPrevented||n))switch(e.key){case`n`:case`j`:y&&e.ctrlKey&&K(e);break;case`ArrowDown`:K(e);break;case`p`:case`k`:y&&e.ctrlKey&&q(e);break;case`ArrowUp`:q(e);break;case`Home`:e.preventDefault(),H(0);break;case`End`:e.preventDefault(),G();break;case`Enter`:{e.preventDefault();let t=B();if(t){let e=new Event(N);t.dispatchEvent(e)}}}}},p.createElement(`label`,{"cmdk-label":``,htmlFor:E.inputId,id:E.labelId,style:le},u),$(e,e=>p.createElement(ne.Provider,{value:T},p.createElement(I.Provider,{value:E},e))))}),V=p.forwardRef((e,t)=>{let n=a(),i=p.useRef(null),s=p.useContext(z),c=L(),l=Y(e),u=l.current?.forceMount??s?.forceMount;X(()=>{if(!u)return c.item(n,s?.id)},[u]);let d=oe(n,i,[e.value,e.children,i],e.keywords),f=R(),m=Q(e=>e.value&&e.value===d.current),h=Q(e=>u||c.filter()===!1?!0:e.search?e.filtered.items.get(n)>0:!0);p.useEffect(()=>{let t=i.current;if(!(!t||e.disabled))return t.addEventListener(N,g),()=>t.removeEventListener(N,g)},[h,e.onSelect,e.disabled]);function g(){var e,t;_(),(t=(e=l.current).onSelect)==null||t.call(e,d.current)}function _(){f.setState(`value`,d.current,!0)}if(!h)return null;let{disabled:v,value:y,onSelect:b,forceMount:x,keywords:ee,...S}=e;return p.createElement(o.div,{ref:r(i,t),...S,id:n,"cmdk-item":``,role:`option`,"aria-disabled":!!v,"aria-selected":!!m,"data-disabled":!!v,"data-selected":!!m,onPointerMove:v||c.getDisablePointerSelection()?void 0:_,onClick:v?void 0:g},e.children)}),H=p.forwardRef((e,t)=>{let{heading:n,children:i,forceMount:s,...c}=e,l=a(),u=p.useRef(null),d=p.useRef(null),f=a(),m=L(),h=Q(e=>s||m.filter()===!1?!0:e.search?e.filtered.groups.has(l):!0);X(()=>m.group(l),[]),oe(l,u,[e.value,e.heading,d]);let g=p.useMemo(()=>({id:l,forceMount:s}),[s]);return p.createElement(o.div,{ref:r(u,t),...c,"cmdk-group":``,role:`presentation`,hidden:h?void 0:!0},n&&p.createElement(`div`,{ref:d,"cmdk-group-heading":``,"aria-hidden":!0,id:f},n),$(e,e=>p.createElement(`div`,{"cmdk-group-items":``,role:`group`,"aria-labelledby":n?f:void 0},p.createElement(z.Provider,{value:g},e))))}),U=p.forwardRef((e,t)=>{let{alwaysRender:n,...i}=e,a=p.useRef(null),s=Q(e=>!e.search);return!n&&!s?null:p.createElement(o.div,{ref:r(a,t),...i,"cmdk-separator":``,role:`separator`})}),W=p.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,i=e.value!=null,a=R(),s=Q(e=>e.search),c=Q(e=>e.selectedItemId),l=L();return p.useEffect(()=>{e.value!=null&&a.setState(`search`,e.value)},[e.value]),p.createElement(o.input,{ref:t,...r,"cmdk-input":``,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1,"aria-autocomplete":`list`,role:`combobox`,"aria-expanded":!0,"aria-controls":l.listId,"aria-labelledby":l.labelId,"aria-activedescendant":c,id:l.inputId,type:`text`,value:i?e.value:s,onChange:e=>{i||a.setState(`search`,e.target.value),n?.(e.target.value)}})}),G=p.forwardRef((e,t)=>{let{children:n,label:i=`Suggestions`,...a}=e,s=p.useRef(null),c=p.useRef(null),l=Q(e=>e.selectedItemId),u=L();return p.useEffect(()=>{if(c.current&&s.current){let e=c.current,t=s.current,n,r=new ResizeObserver(()=>{n=requestAnimationFrame(()=>{let n=e.offsetHeight;t.style.setProperty(`--cmdk-list-height`,n.toFixed(1)+`px`)})});return r.observe(e),()=>{cancelAnimationFrame(n),r.unobserve(e)}}},[]),p.createElement(o.div,{ref:r(s,t),...a,"cmdk-list":``,role:`listbox`,tabIndex:-1,"aria-activedescendant":l,"aria-label":i,id:u.listId},$(e,e=>p.createElement(`div`,{ref:r(c,u.listInnerRef),"cmdk-list-sizer":``},e)))}),K=p.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:i,contentClassName:a,container:o,...s}=e;return p.createElement(f,{open:n,onOpenChange:r},p.createElement(u,{container:o},p.createElement(l,{"cmdk-overlay":``,className:i}),p.createElement(d,{"aria-label":e.label,"cmdk-dialog":``,className:a},p.createElement(B,{ref:t,...s}))))}),q=p.forwardRef((e,t)=>Q(e=>e.filtered.count===0)?p.createElement(o.div,{ref:t,...e,"cmdk-empty":``,role:`presentation`}):null),re=p.forwardRef((e,t)=>{let{progress:n,children:r,label:i=`Loading...`,...a}=e;return p.createElement(o.div,{ref:t,...a,"cmdk-loading":``,role:`progressbar`,"aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},$(e,e=>p.createElement(`div`,{"aria-hidden":!0},e)))}),J=Object.assign(B,{List:G,Item:V,Input:W,Group:H,Separator:U,Dialog:K,Empty:q,Loading:re});function ie(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function ae(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function Y(e){let t=p.useRef(e);return X(()=>{t.current=e}),t}var X=typeof window>`u`?p.useEffect:p.useLayoutEffect;function Z(e){let t=p.useRef();return t.current===void 0&&(t.current=e()),t}function Q(e){let t=R(),n=()=>e(t.snapshot());return p.useSyncExternalStore(t.subscribe,n,n)}function oe(e,t,n,r=[]){let i=p.useRef(),a=L();return X(()=>{var o;let s=(()=>{for(let e of n){if(typeof e==`string`)return e.trim();if(typeof e==`object`&&`current`in e)return e.current?e.current.textContent?.trim():i.current}})(),c=r.map(e=>e.trim());a.value(e,s,c),(o=t.current)==null||o.setAttribute(P,s),i.current=s}),i}var se=()=>{let[e,t]=p.useState(),n=Z(()=>new Map);return X(()=>{n.current.forEach(e=>e()),n.current=new Map},[e]),(e,r)=>{n.current.set(e,r),t({})}};function ce(e){let t=e.type;return typeof t==`function`?t(e.props):`render`in t?t.render(e.props):e}function $({asChild:e,children:t},n){return e&&p.isValidElement(t)?p.cloneElement(ce(t),{ref:t.ref},n(t.props.children)):n(t)}var le={position:`absolute`,width:`1px`,height:`1px`,padding:`0`,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,borderWidth:`0`};function ue({className:e,...t}){return(0,m.jsx)(J,{className:i(`flex size-full flex-col overflow-hidden rounded-md bg-transparent text-popover-foreground`,e),...t})}function de({className:e,...t}){return(0,m.jsxs)(`div`,{className:`flex items-center border-b border-border px-3`,"cmdk-input-wrapper":``,"data-slot":`command-input`,children:[(0,m.jsx)(c,{className:`me-2 size-4 shrink-0 opacity-50`}),(0,m.jsx)(J.Input,{className:i(`flex h-11 w-full rounded-md bg-transparent py-3 text-(length:--text-control) text-foreground outline-hidden placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50`,e),...t})]})}function fe({className:e,...t}){return(0,m.jsx)(J.List,{className:i(`max-h-[300px] overflow-x-hidden overflow-y-auto p-1`,e),"data-slot":`command-list`,...t})}function pe({...e}){return(0,m.jsx)(J.Empty,{className:`py-6 text-center text-sm`,"data-slot":`command-empty`,...e})}function me({className:e,...t}){return(0,m.jsx)(J.Group,{className:i(`overflow-hidden p-1.5 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground`,e),"data-slot":`command-group`,...t})}function he({className:e,...t}){return(0,m.jsx)(J.Separator,{className:i(`-mx-1.5 h-px bg-border`,e),"data-slot":`command-separator`,...t})}function ge({className:e,...t}){return(0,m.jsx)(J.Item,{className:i(`relative flex cursor-default items-center gap-2 rounded-xs px-2 py-1.5 text-(length:--text-control) text-foreground outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-[selected=true]:bg-interactive-hover [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,`[&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 [&_svg]:stroke-[1.5px]`,e),"data-slot":`command-item`,...t})}function _e({icon:e=s,className:t,...n}){return(0,m.jsx)(e,{className:i(`ms-auto size-4 text-primary`,t),"data-check":`true`,"data-slot":`command-check`,...n})}export{de as a,he as c,me as i,F as l,_e as n,ge as o,pe as r,fe as s,ue as t};
|
|
@@ -0,0 +1 @@
|
|
|
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{_ as r}from"./framework-provider-DqI25epG.js";import{i,n as a,t as o}from"./hooks-Cy_-oZ4o.js";import{t as s}from"./build-CsiH26uS.js";import{_ as c,n as l}from"./chunk-KS7C4IRE-DCsL4i4D.js";import{g as u,l as d,m as f}from"./dist-B3keLvjj.js";import{t as p}from"./box-CdfQAP_F.js";import{t as m}from"./container-BuQG1wuP.js";import{a as h,i as g,o as _,r as v}from"./shade-app-CcS3f8MZ-vwURazk8.js";import{A as y,An as b,Bt as x,Fn as S,It as C,Mn as w,Nn as T,Qn as ee,Tn as E,_t as D,a as te,gt as O,hn as ne,jn as re,k as ie,nn as ae,ot as oe,t as k,tn as se,tr as ce,u as le,xn as ue,yn as de,zt as fe}from"./button-Dvcv1QSR.js";import{i as pe,n as me,r as he,t as ge}from"./tabs-eBBlxPp8.js";import{t as _e}from"./checkbox-BtayFtjg.js";import{t as A}from"./empty-indicator-D9QdpuNX.js";import{t as ve}from"./label-OLCzze8N.js";import{Cr as j,Dr as ye,F as M,Fn as be,Fr as xe,Ln as Se,N,Pn as Ce,Qn as P,Rn as we,Sr as F,Tr as Te,Xn as Ee,Zn as De,_i as Oe,_r as I,br as ke,f as Ae,h as je,kr as L,nr as R,qn as Me,t as Ne,xr as z,yr as B}from"./index-CgMCwsxN.js";import{t as V}from"./page-header-DM_KyoFI.js";import{t as Pe}from"./filter-bar-Da1qxybu.js";import{a as Fe,i as Ie}from"./filters-DxA_a4FP.js";import{t as Le}from"./get-site-timezone-HgL0jI_F.js";import{t as H}from"./list-page-BucXJ0hi.js";import{A as Re,C as U,S as ze,c as Be,d as Ve,f as He,j as Ue,k as We,l as Ge,n as Ke,p as qe,s as Je,t as Ye,u as Xe,v as Ze,x as Qe,y as $e}from"./filters--kKP-EC8.js";import{n as et,r as tt}from"./filter-sources-CGJb4C5r.js";import{i as nt,n as rt,r as it,t as at}from"./virtual-list-CZ3RK2Yf.js";var W=e(t(),1),G=Ke([{key:`status`,icon:`circle`,type:`scalar`,operators:[`is`],options:[{value:`published`,label:`Published`},{value:`hidden`,label:`Hidden`}],ui:{label:`Status`,searchable:!1,hideOperatorSelect:!0}},{key:`created_at`,icon:`calendar`,type:`timestamp`,operators:Qe,ui:{label:`Date`}},{key:`body`,icon:`message-text`,type:`text`,operators:[`contains`,`does-not-contain`],addressing:U({field:`html`}),parseKeys:[`html`],ui:{label:`Text`,placeholder:`Search comment text...`,className:`w-full max-w-48`,popoverContentClassName:`w-full max-w-48`}},{key:`post`,icon:`file-text`,type:`scalar`,operators:[`is`,`is-not`],addressing:U({field:`post_id`}),parseKeys:[`post_id`],ui:{label:`Post`,searchable:!0,className:`w-full max-w-80`,popoverContentClassName:`w-full max-w-[calc(100vw-32px)] max-w-80`}},{key:`author`,icon:`person`,type:`scalar`,operators:[`is`,`is-not`],addressing:U({field:`member_id`}),parseKeys:[`member_id`],ui:{label:`Author`,searchable:!0,className:`w-80`,popoverContentClassName:`w-80`}},{key:`reported`,icon:`flag`,type:`count`,valueConfig:{threshold:0,absentForm:`equals`},addressing:U({field:`count.reports`}),parseKeys:[`count.reports`],options:[{value:`true`,label:`Yes`},{value:`false`,label:`No`}],ui:{label:`Reported`,type:`select`,searchable:!1,hideOperatorSelect:!0}}]),ot=[`author`,`post`,`body`,`status`,`reported`,`created_at`],st={...$e,...Re};function ct({postValueSource:e,memberValueSource:t,siteTimezone:n=`UTC`}){return(0,W.useMemo)(()=>{let r=ze(n);return ot.map(n=>{let i=G[n],a=n===`created_at`?{defaultValue:r,...Ue(i)?{customRenderer:We(r)}:{}}:{};return{key:n,...i.ui,icon:Ye[i.ui.icon],operators:Ze(i.operators,{labels:st}),...`options`in i&&i.options?{options:i.options}:{},...a,...n===`author`?{valueSource:t}:{},...n===`post`?{valueSource:e}:{}}})},[t,e,n])}var K=n(),lt=({filters:e,siteTimezone:t,onFiltersChange:n})=>{let r=et(),i=ct({memberValueSource:tt(),postValueSource:r,siteTimezone:t}),a=e.length>0,o=Ne(`postsListReact`),s=o?(0,K.jsx)(k,{className:`sm:absolute sm:top-0 sm:right-0`,type:`button`,variant:`outline`,onClick:()=>n([]),children:`Clear`}):void 0;return(0,K.jsx)(Ie,{addButtonClassName:d(a&&(o?`gap-0 !px-3 text-[0px]`:`border-none`)),addButtonIcon:o?a?(0,K.jsx)(ae,{}):(0,K.jsx)(se,{}):a?(0,K.jsx)(ue,{}):(0,K.jsx)(de,{}),addButtonText:a?`Add filter`:`Filter`,allowMultiple:!1,className:d(`[&>button]:order-last`,!a&&`w-auto`),clearButton:s,clearButtonClassName:`font-normal text-muted-foreground`,clearButtonIcon:(0,K.jsx)(te,{}),clearButtonText:`Clear`,fields:i,filters:e,keyboardShortcut:`f`,popoverAlign:a?`start`:`end`,showClearButton:a,showSearchInput:!1,onChange:n})},q=`CommentsResponseType`,ut=`count.dislikes`,J=e=>[`member`,`post`,`count.replies`,`count.direct_replies`,`count.likes`,...e?[ut]:[],`count.reports`,`parent`,`in_reply_to`].join(`,`),dt=e=>[`member`,`post`,`count.direct_replies`,`count.likes`,...e?[ut]:[],`count.reports`,`parent`,`in_reply_to`].join(`,`),ft=o({dataType:q,path:`/comments/`,defaultNextPageParams:(e,t)=>e.meta?.pagination.next?{...t,page:(e.meta?.pagination.next||1).toString()}:void 0,returnData:e=>{let{pages:t}=e,n=t.flatMap(e=>e.comments),r=t[t.length-1].meta;return{comments:n,meta:r,isEnd:r?r.pagination.pages===r.pagination.page:!0}}}),pt=e=>ft({...e,searchParams:{limit:`100`,order:`created_at desc`,include:`member,post,parent`,...e?.searchParams}}),mt=a({method:`PUT`,path:({id:e})=>`/comments/${e}/`,body:({id:e})=>({comments:[{id:e,status:`hidden`}]}),invalidateQueries:{dataType:q}}),ht=a({method:`PUT`,path:({id:e})=>`/comments/${e}/`,body:({id:e})=>({comments:[{id:e,status:`published`}]}),invalidateQueries:{dataType:q}}),gt=a({method:`PUT`,path:({id:e})=>`/comments/${e}/`,body:({id:e})=>({comments:[{id:e,pinned:!0}]}),invalidateQueries:{dataType:q}}),Y=a({method:`PUT`,path:({id:e})=>`/comments/${e}/`,body:({id:e})=>({comments:[{id:e,pinned:!1}]}),invalidateQueries:{dataType:q}}),_t=i({dataType:q,path:e=>`/comments/${e}/`,defaultSearchParams:{include:J(!1)}}),vt=(e,t)=>{let{dislikesEnabled:n=!1,searchParams:r,...i}=t||{};return _t(e,{...i,searchParams:{include:J(n),...r}})},yt=i({dataType:`CommentReportsResponseType`,path:e=>`/comments/${e}/reports/`}),bt=(e,t)=>yt(e,{...t}),xt=i({dataType:`CommentLikesResponseType`,path:e=>`/comments/${e}/likes/`,defaultSearchParams:{include:`member`,limit:`100`,order:`created_at desc`}}),St=(e,t)=>xt(e,{...t}),Ct=i({dataType:`CommentDislikesResponseType`,path:e=>`/comments/${e}/dislikes/`,defaultSearchParams:{include:`member`,limit:`100`,order:`created_at desc`}}),wt=(e,t)=>Ct(e,{...t}),Tt=(e,t)=>{let{dislikesEnabled:n=!1,...r}=t||{};return pt({...r,searchParams:{filter:`(parent_id:${e}+in_reply_to_id:null),in_reply_to_id:${e}`,order:`created_at asc`,include:dt(n),limit:`100`}})};function Et({onClick:e,expanded:t}){return(0,K.jsxs)(k,{className:`shrink-0 gap-0.5 self-start p-0 text-base hover:bg-transparent`,variant:`ghost`,onClick:e,children:[t?`Show less`:`Show more`,t?(0,K.jsx)(ee,{}):(0,K.jsx)(ce,{})]})}function Dt({item:e}){let t=(0,W.useRef)(null),[n,r]=(0,W.useState)(!1),[i,a]=(0,W.useState)(!1);return(0,W.useEffect)(()=>{if(i)return;let e=()=>{t.current&&r(t.current.scrollHeight>t.current.clientHeight)};return e(),window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[e.html,i]),(0,K.jsx)(`div`,{className:`mt-2 flex flex-col gap-2`,children:(0,K.jsxs)(`div`,{className:`flex max-w-full flex-col items-start ${e.status===`hidden`&&`opacity-50`}`,children:[(0,K.jsx)(`div`,{dangerouslySetInnerHTML:{__html:e.html||``},ref:t,className:d(`prose balance max-w-[80ch] flex-1 text-base leading-[1.5em] [&_*]:text-base [&_*]:leading-[1.5em] [&_*]:font-normal [&_a]:underline [&_blockquote]:border-l-[3px] [&_blockquote]:border-foreground [&_blockquote]:p-0 [&_blockquote]:pl-3 [&_blockquote_p]:mt-0`,i?`-mb-1 [&_p]:mb-[0.85em]`:`mb-1 line-clamp-2 [&_blockquote+p]:mt-1 [&_p]:m-0`)}),n&&(0,K.jsx)(Et,{expanded:i,onClick:()=>a(!i)})]})})}function Ot(e){let t=new Date(e);return new Intl.DateTimeFormat(`en-US`,{month:`short`,day:`numeric`,year:`numeric`,hour:`numeric`,minute:`numeric`}).format(t).replace(/(\d+),(\s+\d{4})/,`$1$2`)}var kt=d(De({variant:`warning`}),`gap-1 hover:bg-state-warning/30`);function At({memberName:e,memberId:t,createdAt:n,isHidden:r,canComment:i,isPinned:a,onAuthorClick:o,postTitle:s,onPostClick:c,onUnpinClick:l,className:f}){return(0,K.jsxs)(`div`,{className:d(`flex items-center gap-2`,f),children:[(0,K.jsxs)(`div`,{className:d(`flex min-w-0 items-center gap-x-1`,r&&`opacity-50`),children:[(0,K.jsx)(`div`,{className:`whitespace-nowrap`,children:t&&o?(0,K.jsx)(k,{className:`flex h-auto items-center gap-1.5 truncate p-0 text-md font-semibold text-primary hover:opacity-70`,variant:`link`,onClick:o,children:e||`Unknown`}):(0,K.jsx)(`span`,{className:`block truncate font-semibold`,children:e||`Unknown`})}),i===!1&&(0,K.jsxs)(v,{children:[(0,K.jsx)(_,{asChild:!0,children:(0,K.jsx)(`span`,{"data-testid":`commenting-disabled-indicator`,children:(0,K.jsx)(x,{className:`size-3.5 text-muted-foreground`})})}),(0,K.jsx)(g,{children:`Comments disabled`})]}),(0,K.jsx)(S,{className:`shrink-0 text-muted-foreground/50`,size:16}),(0,K.jsx)(`div`,{className:`shrink-0 whitespace-nowrap`,children:n&&(0,K.jsxs)(v,{children:[(0,K.jsx)(_,{asChild:!0,children:(0,K.jsx)(`span`,{className:`cursor-default text-sm text-muted-foreground`,children:u(n)})}),(0,K.jsx)(g,{children:Ot(n)})]})}),s&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{className:`shrink-0 text-muted-foreground`,children:`on`}),(0,K.jsx)(`div`,{className:`min-w-0 truncate`,children:c?(0,K.jsx)(k,{className:`block h-auto w-full cursor-pointer truncate p-0 text-left font-medium text-gray-800 hover:opacity-70 dark:text-gray-400`,variant:`link`,onClick:c,children:s}):(0,K.jsx)(`span`,{className:`font-medium text-gray-800 dark:text-gray-400`,children:s})})]})]}),r&&(0,K.jsx)(Ee,{variant:`secondary`,children:`Hidden`}),a&&(l?(0,K.jsxs)(`button`,{"aria-label":`Unpin comment`,className:d(`group`,kt),type:`button`,onClick:e=>{e.stopPropagation(),l?.()},children:[(0,K.jsxs)(`span`,{className:`grid size-3 shrink-0`,children:[(0,K.jsx)(D,{className:`col-start-1 row-start-1 size-3 group-hover:opacity-0 group-focus-visible:opacity-0`}),(0,K.jsx)(O,{className:`col-start-1 row-start-1 size-3 opacity-0 group-hover:opacity-100 group-focus-visible:opacity-100`})]}),(0,K.jsxs)(`span`,{className:`grid justify-items-start text-left`,children:[(0,K.jsx)(`span`,{className:`col-start-1 row-start-1 group-hover:opacity-0 group-focus-visible:opacity-0`,children:`Pinned`}),(0,K.jsx)(`span`,{className:`col-start-1 row-start-1 opacity-0 group-hover:opacity-100 group-focus-visible:opacity-100`,children:`Unpin`})]})]}):(0,K.jsxs)(Ee,{className:`gap-1`,variant:`warning`,children:[(0,K.jsx)(D,{className:`size-3`}),`Pinned`]}))]})}function jt({open:e,memberName:t,onOpenChange:n,onConfirm:r}){let[i,a]=(0,W.useState)(!1),o=e=>{e||a(!1),n(e)};return(0,K.jsx)(I,{open:e,onOpenChange:o,children:(0,K.jsxs)(B,{className:`gap-5`,children:[(0,K.jsxs)(F,{children:[(0,K.jsx)(j,{children:`Disable comments`}),(0,K.jsxs)(ke,{children:[t||`This member`,` won't be able to comment in the future. You can re-enable commenting anytime.`]})]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(_e,{checked:i,id:`hide-comments`,onCheckedChange:e=>a(e===!0)}),(0,K.jsx)(ve,{htmlFor:`hide-comments`,children:`Hide all previous comments`})]}),(0,K.jsxs)(z,{children:[(0,K.jsx)(k,{variant:`outline`,onClick:()=>o(!1),children:`Cancel`}),(0,K.jsx)(k,{onClick:()=>{r(i),a(!1)},children:`Disable comments`})]})]})})}function Mt({comment:e}){let{mutate:t}=Ae(),{mutate:n}=je(),{mutate:r}=gt(),{mutate:i}=Y(),[a,o]=(0,W.useState)(!1),{id:s,post:c,member:u}=e,d=c?.url,f=u?.id,p=u?.can_comment,m=!e.parent_id&&e.status!==`deleted`;return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(Te,{children:[(0,K.jsx)(xe,{asChild:!0,children:(0,K.jsx)(k,{className:`relative z-10 text-gray-800 hover:bg-secondary [&_svg]:size-4`,size:`sm`,variant:`ghost`,children:(0,K.jsx)(T,{})})}),(0,K.jsxs)(ye,{align:`start`,children:[d&&(0,K.jsx)(L,{asChild:!0,children:(0,K.jsxs)(`a`,{href:`${d}#ghost-comments-${s}`,rel:`noopener noreferrer`,target:`_blank`,children:[(0,K.jsx)(w,{className:`size-4`}),`View on post`]})}),f&&(0,K.jsx)(L,{asChild:!0,children:(0,K.jsxs)(l,{to:`/members/${f}`,children:[(0,K.jsx)(le,{className:`size-4`}),`View member`]})}),m&&(e.pinned?(0,K.jsxs)(L,{onClick:()=>i({id:s}),children:[(0,K.jsx)(O,{className:`size-4`}),`Unpin comment`]}):(0,K.jsxs)(L,{onClick:()=>r({id:s}),children:[(0,K.jsx)(D,{className:`size-4`}),`Pin comment`]})),f&&(p===!1?(0,K.jsxs)(L,{onClick:()=>{f&&n({id:f})},children:[(0,K.jsx)(fe,{className:`size-4`}),`Enable commenting`]}):(0,K.jsxs)(L,{onClick:()=>o(!0),children:[(0,K.jsx)(x,{className:`size-4`}),`Disable commenting`]}))]})]}),(0,K.jsx)(jt,{memberName:u?.name,open:a,onConfirm:e=>{f&&(t({id:f,reason:`Disabled from comment ${s}`,hideComments:e}),o(!1))},onOpenChange:o})]})}function Nt({comment:e,dislikesEnabled:t,open:n,defaultTab:r=`likes`,onOpenChange:i}){let{data:a,isLoading:o}=St(e.id,{enabled:n}),{data:s,isLoading:c}=wt(e.id,{enabled:n&&t}),l=a?.comment_likes??[],d=t?s?.comment_dislikes??[]:[],p=e.count?.likes??0,m=t?e.count?.dislikes??0:0,h=Math.max(0,p-l.length),g=Math.max(0,m-d.length);return(0,K.jsx)(I,{open:n,onOpenChange:i,children:(0,K.jsxs)(B,{"aria-describedby":void 0,children:[(0,K.jsx)(F,{children:(0,K.jsx)(j,{children:t?(0,K.jsxs)(K.Fragment,{children:[f(p),` `,p===1?`like`:`likes`,` and`,` `,f(m),` `,m===1?`dislike`:`dislikes`]}):(0,K.jsxs)(K.Fragment,{children:[f(p),` `,p===1?`like`:`likes`]})})}),(0,K.jsx)(`div`,{className:`overflow-hidden rounded-md border p-3`,children:(0,K.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[(0,K.jsx)(P,{className:`shrink-0`,...M(e.member),src:e.member?.avatar_image}),(0,K.jsxs)(`div`,{className:`flex min-w-0 flex-col overflow-hidden`,children:[(0,K.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1 text-sm`,children:[(0,K.jsx)(`span`,{className:`shrink-0 font-semibold`,children:e.member?N(e.member):`Deleted member`}),(0,K.jsx)(S,{className:`shrink-0 text-muted-foreground/50`,size:16}),(0,K.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:e.created_at&&u(e.created_at)}),(0,K.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:`on`}),(0,K.jsx)(`span`,{className:`min-w-0 truncate font-medium text-gray-800 dark:text-gray-400`,children:e.post?.title||`Unknown post`})]}),(0,K.jsx)(`div`,{dangerouslySetInnerHTML:{__html:e.html||``},className:`prose mt-2 line-clamp-2 text-sm [&_*]:text-sm [&_*]:leading-[1.5em] [&_p]:m-0`})]})]})}),t?(0,K.jsxs)(ge,{defaultValue:r,variant:`segmented`,children:[(0,K.jsxs)(he,{className:`grid w-full grid-cols-2`,children:[(0,K.jsx)(pe,{value:`likes`,children:`Likes`}),(0,K.jsx)(pe,{value:`dislikes`,children:`Dislikes`})]}),(0,K.jsx)(me,{className:`mt-4`,value:`likes`,children:(0,K.jsx)(`div`,{className:`-mx-1 max-h-64 overflow-y-auto px-1`,children:o?(0,K.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,K.jsx)(R,{size:`md`})}):l.length===0?(0,K.jsx)(`div`,{className:`py-4 text-center text-sm text-muted-foreground`,children:`No likes yet`}):(0,K.jsxs)(`div`,{className:`flex flex-col gap-3 pb-1`,children:[l.map(e=>(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,K.jsx)(P,{...M(e.member),src:e.member?.avatar_image}),(0,K.jsx)(`div`,{className:`absolute -right-0.5 -bottom-0.5 flex size-4 items-center justify-center rounded-full bg-gray-500 text-white`,children:(0,K.jsx)(ie,{className:`size-2.5`,fill:`currentColor`})})]}),(0,K.jsx)(`span`,{className:`font-medium`,children:e.member?N(e.member):`Deleted member`})]}),(0,K.jsx)(`span`,{className:`shrink-0 text-sm text-muted-foreground`,children:u(e.created_at)})]},e.id)),h>0&&(0,K.jsxs)(`div`,{className:`pt-1 text-center text-sm text-muted-foreground`,children:[`and `,f(h),` more`]})]})})}),(0,K.jsx)(me,{className:`mt-4`,value:`dislikes`,children:(0,K.jsx)(`div`,{className:`-mx-1 max-h-64 overflow-y-auto px-1`,children:c?(0,K.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,K.jsx)(R,{size:`md`})}):d.length===0?(0,K.jsx)(`div`,{className:`py-4 text-center text-sm text-muted-foreground`,children:`No dislikes yet`}):(0,K.jsxs)(`div`,{className:`flex flex-col gap-3 pb-1`,children:[d.map(e=>(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,K.jsx)(P,{...M(e.member),src:e.member?.avatar_image}),(0,K.jsx)(`div`,{className:`absolute -right-0.5 -bottom-0.5 flex size-4 items-center justify-center rounded-full bg-gray-500 text-white`,children:(0,K.jsx)(y,{className:`size-2.5`,fill:`currentColor`})})]}),(0,K.jsx)(`span`,{className:`font-medium`,children:e.member?N(e.member):`Deleted member`})]}),(0,K.jsx)(`span`,{className:`shrink-0 text-sm text-muted-foreground`,children:u(e.created_at)})]},e.id)),g>0&&(0,K.jsxs)(`div`,{className:`pt-1 text-center text-sm text-muted-foreground`,children:[`and `,f(g),` more`]})]})})})]}):(0,K.jsx)(`div`,{className:`-mx-1 max-h-64 overflow-y-auto px-1`,children:o?(0,K.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,K.jsx)(R,{size:`md`})}):(0,K.jsxs)(`div`,{className:`flex flex-col gap-3 pb-1`,children:[l.map(e=>(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,K.jsx)(P,{...M(e.member),src:e.member?.avatar_image}),(0,K.jsx)(`div`,{className:`absolute -right-0.5 -bottom-0.5 flex size-4 items-center justify-center rounded-full bg-pink-500 text-white`,children:(0,K.jsx)(ne,{className:`size-2.5`,fill:`currentColor`})})]}),(0,K.jsx)(`span`,{className:`font-medium`,children:e.member?N(e.member):`Deleted member`})]}),(0,K.jsx)(`span`,{className:`shrink-0 text-sm text-muted-foreground`,children:u(e.created_at)})]},e.id)),h>0&&(0,K.jsxs)(`div`,{className:`pt-1 text-center text-sm text-muted-foreground`,children:[`and `,f(h),` more`]})]})}),(0,K.jsx)(z,{children:(0,K.jsx)(k,{onClick:()=>i(!1),children:`OK`})})]})})}function Pt({comment:e,open:t,onOpenChange:n}){let{data:r,isLoading:i}=bt(e.id,{enabled:t}),a=r?.comment_reports??[],o=e.count?.reports??a.length;return(0,K.jsx)(I,{open:t,onOpenChange:n,children:(0,K.jsxs)(B,{"aria-describedby":void 0,children:[(0,K.jsx)(F,{children:(0,K.jsxs)(j,{children:[o,` `,o===1?`report`:`reports`]})}),(0,K.jsx)(`div`,{className:`overflow-hidden rounded-md border p-3`,children:(0,K.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[(0,K.jsx)(P,{className:`shrink-0`,...M(e.member),src:e.member?.avatar_image}),(0,K.jsxs)(`div`,{className:`flex min-w-0 flex-col overflow-hidden`,children:[(0,K.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1 text-sm`,children:[(0,K.jsx)(`span`,{className:`shrink-0 font-semibold`,children:e.member?N(e.member):`Deleted member`}),(0,K.jsx)(S,{className:`shrink-0 text-muted-foreground/50`,size:16}),(0,K.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:e.created_at&&u(e.created_at)}),(0,K.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:`on`}),(0,K.jsx)(`span`,{className:`min-w-0 truncate font-medium text-gray-800 dark:text-gray-400`,children:e.post?.title||`Unknown post`})]}),(0,K.jsx)(`div`,{dangerouslySetInnerHTML:{__html:e.html||``},className:`prose mt-2 line-clamp-2 text-sm [&_*]:text-sm [&_*]:leading-[1.5em] [&_p]:m-0`})]})]})}),(0,K.jsx)(`div`,{className:`-mx-1 max-h-64 overflow-y-auto px-1`,children:i?(0,K.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,K.jsx)(R,{size:`md`})}):(0,K.jsx)(`div`,{className:`flex flex-col gap-3 pb-1`,children:a.map(e=>(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,K.jsx)(P,{...M(e.member),src:e.member?.avatar_image}),(0,K.jsx)(`div`,{className:`absolute -right-0.5 -bottom-0.5 flex size-4 items-center justify-center rounded-full bg-red text-white`,children:(0,K.jsx)(E,{className:`size-2.5`,fill:`currentColor`})})]}),(0,K.jsx)(`span`,{className:`font-medium`,children:e.member?N(e.member):`Deleted member`})]}),(0,K.jsx)(`span`,{className:`shrink-0 text-sm text-muted-foreground`,children:u(e.created_at)})]},e.id))})}),(0,K.jsx)(z,{children:(0,K.jsx)(k,{onClick:()=>n(!1),children:`OK`})})]})})}function X(e,t){if(!t)return;let n=new URLSearchParams(e);return n.set(`thread`,`is:${t}`),`?${n.toString()}`}function Z({icon:e,count:t,label:n,to:r,onClick:i,className:a,testId:o}){let s=d(`flex items-center gap-1 text-xs text-gray-800`,a),c=(0,K.jsxs)(K.Fragment,{children:[e,(0,K.jsx)(`span`,{children:f(t)})]}),u=r||i;return(0,K.jsxs)(v,{children:[(0,K.jsx)(_,{asChild:!0,children:r?(0,K.jsx)(l,{className:d(s,`cursor-pointer hover:opacity-70`),"data-testid":o,to:r,onClick:e=>{e.stopPropagation()},children:c}):i?(0,K.jsx)(`button`,{className:d(s,`cursor-pointer hover:opacity-70`),"data-testid":o,type:`button`,onClick:e=>{e.stopPropagation(),i()},children:c}):(0,K.jsx)(`div`,{className:s,"data-testid":o,children:c})}),(0,K.jsx)(g,{children:u?`View ${n.toLowerCase()}`:n})]})}function Ft({comment:e,dislikesEnabled:t,className:n}){let[r]=c(),[i,a]=(0,W.useState)(!1),[o,s]=(0,W.useState)(`likes`),[l,u]=(0,W.useState)(!1),f=X(r,e.id),p=e.count?.direct_replies??e.replies?.length??0,m=e.count?.likes??0,h=t?e.count?.dislikes??0:0,g=e.count?.reports??0,_=p>0,v=m>0,b=h>0,x=g>0;return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:d(`flex items-center gap-6`,n),children:[(0,K.jsx)(Z,{count:p,icon:(0,K.jsx)(oe,{size:16,strokeWidth:1.5}),label:`Replies`,testId:`replies-metric`,to:_?f:void 0}),t?(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(Z,{count:m,icon:(0,K.jsx)(ie,{size:16,strokeWidth:1.5}),label:`Likes`,testId:`likes-metric`,onClick:v?()=>{s(`likes`),a(!0)}:void 0}),(0,K.jsx)(Z,{count:h,icon:(0,K.jsx)(y,{size:16,strokeWidth:1.5}),label:`Dislikes`,testId:`dislikes-metric`,onClick:b?()=>{s(`dislikes`),a(!0)}:void 0})]}):(0,K.jsx)(Z,{count:m,icon:(0,K.jsx)(ne,{size:16,strokeWidth:1.5}),label:`Likes`,onClick:v?()=>a(!0):void 0}),(0,K.jsx)(Z,{className:x?`font-semibold text-red`:void 0,count:g,icon:(0,K.jsx)(E,{size:16,strokeWidth:1.5}),label:`Reports`,onClick:x?()=>u(!0):void 0})]}),(0,K.jsx)(Nt,{comment:e,defaultTab:o,dislikesEnabled:t,open:i,onOpenChange:a}),(0,K.jsx)(Pt,{comment:e,open:l,onOpenChange:u})]})}function It({hasReplies:e}){return e?(0,K.jsx)(`div`,{className:`mb-2 h-full w-px grow rounded bg-gradient-to-b from-muted-foreground/20 from-70% to-transparent`,"data-testid":`replies-line`}):null}function Lt({comment:e,dislikesEnabled:t,isReply:n=!1,isSelectedComment:r=!1,selectedCommentId:i}){let[a]=c(),{mutate:o}=mt(),{mutate:s}=ht(),{mutate:u}=Y(),f=(e.replies?.length??0)>0||(e.count?.direct_replies??e.count?.replies??0)>0;return(0,K.jsxs)(`div`,{className:`flex w-full flex-row ${!f||n?`mb-7`:`mb-0`}`,children:[(0,K.jsxs)(`div`,{className:`mr-2 flex shrink-0 flex-col items-center justify-start md:mr-3`,children:[(0,K.jsx)(P,{className:d(`mb-3 size-6 md:mb-4 md:size-8`,e.status===`hidden`&&`opacity-50`),...M(e.member),src:e.member?.avatar_image}),(0,K.jsx)(It,{hasReplies:f&&!n})]}),(0,K.jsx)(`div`,{className:`grow`,children:(0,K.jsxs)(`div`,{className:`w-full`,"data-testid":`comment-thread-row-${e.id}`,children:[(0,K.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[(0,K.jsx)(At,{canComment:e.member?.can_comment,createdAt:e.created_at,isHidden:e.status===`hidden`,isPinned:e.pinned,memberId:e.member?.id,memberName:e.member?.name,onUnpinClick:()=>u({id:e.id})}),e.in_reply_to_snippet&&r&&(0,K.jsxs)(`div`,{className:`mb-1 line-clamp-1 text-sm ${e.status===`hidden`&&`opacity-50`}`,children:[(0,K.jsx)(`span`,{className:`text-muted-foreground`,children:`Replied to:`}),`\xA0`,(0,K.jsx)(l,{className:`text-sm font-normal text-muted-foreground hover:text-foreground`,"data-testid":`replied-to-link`,to:X(a,e.in_reply_to_id||e.parent_id)||``,onClick:e=>{e.stopPropagation()},children:e.in_reply_to_snippet})]}),(0,K.jsx)(Dt,{item:e}),(0,K.jsxs)(`div`,{className:`mt-4 flex flex-row flex-wrap items-center gap-3`,children:[e.status===`published`&&(0,K.jsxs)(k,{className:`text-gray-800`,size:`sm`,variant:`outline`,onClick:()=>o({id:e.id}),children:[(0,K.jsx)(re,{}),(0,K.jsx)(`span`,{className:`max-md:hidden`,children:`Hide`})]}),e.status===`hidden`&&(0,K.jsxs)(k,{className:`text-gray-800`,size:`sm`,variant:`outline`,onClick:()=>s({id:e.id}),children:[(0,K.jsx)(b,{}),(0,K.jsx)(`span`,{className:`max-md:hidden`,children:`Show`})]}),(0,K.jsx)(Ft,{comment:e,dislikesEnabled:t}),(0,K.jsx)(Mt,{comment:e})]})]}),f&&e.replies&&(0,K.jsx)(`div`,{className:`mt-7 mb-4 -ml-2 pl-2 md:mt-8 md:mb-0 md:-ml-3 md:pl-3`,children:e.replies.map(e=>(0,K.jsx)(Lt,{comment:e,dislikesEnabled:t,isReply:!0,selectedCommentId:i},e.id))})]})})]})}var Rt=({selectedComment:e,dislikesEnabled:t,replies:n,selectedCommentId:r,fetchNextPage:i,hasNextPage:a,isFetchingNextPage:o})=>(0,K.jsxs)(`div`,{className:`flex flex-col`,"data-testid":`comment-thread-list`,children:[(0,K.jsx)(Lt,{comment:{...e,replies:n},dislikesEnabled:t,isSelectedComment:!0,selectedCommentId:r}),a&&(0,K.jsx)(`div`,{className:`flex justify-center pb-4`,children:(0,K.jsx)(k,{disabled:o,variant:`outline`,onClick:()=>i(),children:o?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(R,{size:`sm`}),`Loading...`]}):`Load more replies`})})]}),zt=({commentId:e,dislikesEnabled:t,open:n,onOpenChange:r})=>{let{data:i,isLoading:a,isError:o,fetchNextPage:s,hasNextPage:c,isFetchingNextPage:l}=Tt(e??``,{dislikesEnabled:t,enabled:n&&!!e}),{data:u,isLoading:d,isError:f}=vt(e??``,{dislikesEnabled:t,enabled:n&&!!e}),p=a||d,m=f||o&&!u,h=u?.comments?.[0],g=i?.comments||[];return(0,K.jsx)(Ce,{open:n,onOpenChange:r,children:(0,K.jsxs)(be,{className:`overflow-y-auto px-6 pt-0 sm:max-w-[420px]`,children:[(0,K.jsx)(Se,{className:`sticky top-0 z-40 -mx-6 bg-surface-elevated/60 p-6 backdrop-blur`,children:(0,K.jsx)(we,{className:`text-md`,children:`Thread`})}),h?.post&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`h3`,{className:`line-clamp-1 text-xl font-semibold text-foreground`,children:h.post.title}),h.post.excerpt&&(0,K.jsx)(`p`,{className:`mt-1 line-clamp-2 text-sm text-muted-foreground`,children:h.post.excerpt})]}),h.post.feature_image&&(0,K.jsx)(`img`,{alt:h.post.title||`Post feature image`,className:`hidden aspect-video h-18 shrink-0 rounded object-cover lg:block`,src:h.post.feature_image})]}),(0,K.jsx)(Me,{className:`-mx-6 my-6 w-auto`})]}),(0,K.jsx)(`div`,{children:p?(0,K.jsx)(`div`,{className:`flex h-full items-center justify-center py-8`,children:(0,K.jsx)(R,{size:`lg`})}):m||!h?(0,K.jsx)(`div`,{className:`flex h-full items-center justify-center py-8`,children:(0,K.jsx)(A,{actions:(0,K.jsx)(k,{variant:`outline`,onClick:()=>r(!1),children:`Back to comments`}),description:`This thread may have been deleted or doesn't exist.`,title:`Thread not found`,children:(0,K.jsx)(C,{})})}):(0,K.jsx)(Rt,{dislikesEnabled:t,fetchNextPage:()=>void s(),hasNextPage:c,isFetchingNextPage:l,replies:g,selectedComment:h,selectedCommentId:e??``})})]})})},Bt=({height:e})=>(0,K.jsx)(`div`,{"aria-hidden":`true`,className:`flex`,children:(0,K.jsx)(`div`,{className:`flex`,style:{height:e}})}),Vt=(0,W.forwardRef)(function(e,t){return(0,K.jsx)(`div`,{ref:t,...e,"aria-hidden":`true`,className:`relative flex flex-col`,children:(0,K.jsx)(`div`,{className:`relative z-10 h-24 animate-pulse`,children:(0,K.jsx)(`div`,{className:`h-full rounded-md bg-muted`,"data-testid":`loading-placeholder`})})})});function Ht({items:e,totalItems:t,hasNextPage:n,isFetchingNextPage:r,fetchNextPage:i,resetKey:a,onAddFilter:o,isLoading:s,dislikesEnabled:u}){let f=(0,W.useRef)(null),{visibleItemCount:p,canLoadMore:m,loadMore:g}=it(t,{resetKey:a}),[_,v]=c(),[y,x]=(0,W.useState)(!1),[S,C]=(0,W.useState)(null),{mutate:w}=mt(),{mutate:T}=ht(),{mutate:ee}=Y(),E=e=>{if(x(e),!e){let e=new URLSearchParams(_);e.delete(`thread`),v(e,{replace:!0})}};(0,W.useEffect)(()=>{let e=_.get(`thread`);if(e){let t=e.match(/^is:(.+)$/);if(t&&t[1]){let e=t[1];C(e),x(!0)}else x(!1),C(null)}else x(!1),C(null)},[_]),rt({parentRef:f,isLoading:s});let{visibleItems:D,spaceBefore:te,spaceAfter:O}=nt({items:e,totalItems:p,hasNextPage:n,isFetchingNextPage:r,fetchNextPage:i,parentRef:f});return(0,K.jsx)(h,{children:(0,K.jsxs)(`div`,{ref:f,className:`overflow-hidden border-t`,children:[(0,K.jsx)(`div`,{className:`flex flex-col`,"data-testid":`comments-list`,children:(0,K.jsxs)(`div`,{className:`flex flex-col`,children:[(0,K.jsx)(Bt,{height:te}),D.map(({key:t,virtualItem:n,item:r,props:i})=>n.index>e.length-1?(0,K.jsx)(Vt,{...i},t):(0,K.jsxs)(`div`,{...i,className:`grid w-full grid-cols-1 items-start justify-between gap-4 border-b p-3 hover:bg-table-row-hover md:p-5 lg:grid-cols-[minmax(0,1fr)_144px]`,"data-testid":`comment-list-row`,onClick:()=>{y&&E(!1)},children:[(0,K.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,K.jsx)(P,{className:d(`mt-0.5 size-6 md:size-8`,r.status===`hidden`&&`opacity-50`),...M(r.member),src:r.member?.avatar_image}),(0,K.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-3`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(At,{canComment:r.member?.can_comment,createdAt:r.created_at,isHidden:r.status===`hidden`,isPinned:r.pinned,memberId:r.member?.id,memberName:r.member?.name,postTitle:r.post?.title,onAuthorClick:r.member?.id?()=>o(`author`,r.member.id):void 0,onPostClick:r.post?.id?()=>o(`post`,r.post.id):void 0,onUnpinClick:()=>ee({id:r.id})}),r.in_reply_to_snippet&&(0,K.jsxs)(`div`,{className:`mb-1 line-clamp-1 max-w-3xl ${r.status===`hidden`&&`opacity-50`}`,children:[(0,K.jsx)(`span`,{className:`text-muted-foreground`,children:`Replied to:`}),`\xA0`,(0,K.jsx)(l,{className:`text-sm font-normal text-muted-foreground hover:text-foreground`,"data-testid":`replied-to-link`,to:X(_,r.in_reply_to_id||r.parent_id)||``,onClick:e=>{e.stopPropagation()},children:r.in_reply_to_snippet})]})]}),(0,K.jsx)(Dt,{item:r}),(0,K.jsxs)(`div`,{className:`flex flex-row flex-nowrap items-center gap-3`,children:[r.status===`published`&&(0,K.jsxs)(k,{className:`text-foreground`,size:`sm`,variant:`outline`,onClick:()=>w({id:r.id}),children:[(0,K.jsx)(re,{}),`Hide`]}),r.status===`hidden`&&(0,K.jsxs)(k,{className:`text-foreground`,size:`sm`,variant:`outline`,onClick:()=>T({id:r.id}),children:[(0,K.jsx)(b,{}),`Show`]}),(0,K.jsx)(Ft,{className:`ml-2`,comment:r,dislikesEnabled:u}),(0,K.jsx)(Mt,{comment:r})]})]})]}),(0,K.jsx)(`div`,{children:r.post?.feature_image?(0,K.jsx)(`img`,{alt:r.post.title||`Post feature image`,className:`hidden aspect-video w-36 rounded object-cover lg:block ${r.status===`hidden`&&`opacity-50`}`,src:r.post.feature_image}):null})]},t)),(0,K.jsx)(Bt,{height:O})]})}),m&&(0,K.jsx)(at,{isLoading:r,onClick:g}),(0,K.jsx)(zt,{commentId:S,dislikesEnabled:u,open:y,onOpenChange:E})]})})}var Ut=Je(G,`date`);function Wt(e){return Ge(e,G)}function Gt(e,t){let n=Xe(e??``);return n?qe(Ve(n,G,t).filter(Wt)):[]}function Kt(e){let t=Xe(e??``);return t?Be(t,Ut):!1}function Q(e,t){return He(e.filter(Wt),G,t)}var $=[`status`,`created_at`,`body`,`post`,`author`,`reported`],qt={is_not:`is-not`,not_contains:`does-not-contain`,before:`is-less`,after:`is-greater`,on_or_before:`is-or-less`,on_or_after:`is-or-greater`};function Jt(e){let t=e.indexOf(`:`);if(t<=0)return null;let n=e.substring(0,t),r=e.substring(t+1);return r?{operator:qt[n]??n,value:r}:null}function Yt(e){let t=[];for(let[n,r]of e.entries()){if(!$.includes(n))continue;let e=Jt(r);e&&t.push({id:`${n}:${t.length+1}`,field:n,operator:e.operator,values:[e.value]})}return t}function Xt(e){$.forEach(t=>e.delete(t))}function Zt(e,t,n){let r=new URLSearchParams(e),i=Q(t,n);return r.delete(`filter`),Xt(r),i&&r.set(`filter`,i),r}function Qt(e,t,n=!t){return!!e&&n&&!t&&Kt(e)}function $t(e){let[t,n]=c(),r=(0,W.useRef)(null),i=(0,W.useMemo)(()=>t.get(`filter`)??void 0,[t]),a=(0,W.useMemo)(()=>t.toString(),[t]),o=(0,W.useMemo)(()=>i===void 0?Yt(t):Gt(i,e),[i,t,e]),[s,l]=(0,W.useState)(o),u=(0,W.useMemo)(()=>Q(s,e),[s,e]);return(0,W.useEffect)(()=>{a!==r.current&&(l(o),r.current=a)},[a,o]),(0,W.useEffect)(()=>{if(r.current!==null&&a!==r.current)return;let i=Zt(t,s,e),o=i.toString();o!==a&&(r.current=o,n(i,{replace:!0}))},[a,s,t,n,e]),{filters:s,nql:u,setFilters:(0,W.useCallback)((i,a={})=>{let o=typeof i==`function`?i(s):i,c=Zt(t,o,e),u=a.replace??!0;l(o),r.current=c.toString(),n(c,{replace:u})},[s,t,n,e]),clearFilters:(0,W.useCallback)(({replace:e=!0}={})=>{let i=new URLSearchParams(t);i.delete(`filter`),Xt(i),l([]),r.current=i.toString(),n(i,{replace:e})},[t,n])}}function en(e){return e.get(`id`)?.match(/^is:(.+)$/)?.[1]}var tn=({timezone:e,singleCommentId:t})=>{let[n,i]=c(),{filters:a,nql:o,setFilters:l}=$t(e),u=(0,W.useCallback)((r,o,s=`is`)=>{let c=[...a.filter(e=>e.field!==r),Fe(r,s,[o])];if(!t){l(c,{replace:!1});return}let u=new URLSearchParams(n),d=Q(c,e);u.delete(`id`),u.delete(`filter`),d&&u.set(`filter`,d),i(u,{replace:!1})},[a,n,l,i,t,e]),d=(0,W.useMemo)(()=>t?`id:${s(t)}`:o,[o,t]),f=(0,W.useCallback)(()=>{i(new URLSearchParams,{replace:!1})},[i]),{data:h,isError:g,isFetching:_,isFetchingNextPage:v,isRefetching:y,fetchNextPage:b,hasNextPage:x}=pt({searchParams:{include:J(!0),...d?{filter:d}:{}},placeholderData:r}),S=_&&!v&&!y,w=d??``,T=a.length>0;return(0,K.jsx)(p,{className:`size-full`,children:(0,K.jsx)(m,{className:`relative flex h-full flex-col`,size:`page`,children:(0,K.jsxs)(H,{"data-testid":`comments-page`,children:[(0,K.jsxs)(H.Header,{children:[(0,K.jsxs)(V,{blurredBackground:!1,sticky:!1,children:[(0,K.jsx)(V.Left,{children:(0,K.jsx)(V.Title,{children:`Comments`})}),!t&&!T&&(0,K.jsx)(V.Actions,{children:(0,K.jsx)(V.ActionGroup,{children:(0,K.jsx)(lt,{filters:a,siteTimezone:e,onFiltersChange:l})})})]}),!t&&T&&(0,K.jsx)(Pe,{children:(0,K.jsx)(lt,{filters:a,siteTimezone:e,onFiltersChange:l})})]}),(0,K.jsx)(H.Body,{children:S?(0,K.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,K.jsx)(R,{size:`lg`})}):g?(0,K.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center`,children:[(0,K.jsx)(`h2`,{className:`mb-2 text-xl font-medium`,children:`Error loading comments`}),(0,K.jsx)(`p`,{className:`mb-4 text-muted-foreground`,children:`Please reload the page to try again`}),(0,K.jsx)(k,{onClick:()=>window.location.reload(),children:`Reload page`})]}):h?.comments.length?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(Ht,{dislikesEnabled:!0,fetchNextPage:()=>void b(),hasNextPage:x,isFetchingNextPage:v,isLoading:_&&!v,items:h?.comments??[],resetKey:w,totalItems:h?.meta?.pagination?.total??0,onAddFilter:u}),t&&(0,K.jsx)(`div`,{className:`flex justify-center py-8`,children:(0,K.jsx)(k,{variant:`outline`,onClick:f,children:`Show all comments`})})]}):(0,K.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:t?(0,K.jsxs)(`div`,{className:`flex flex-col items-center`,children:[(0,K.jsx)(A,{title:`Comment not found`,children:(0,K.jsx)(C,{})}),(0,K.jsx)(k,{className:`mt-4`,variant:`outline`,onClick:f,children:`Show all comments`})]}):(0,K.jsx)(A,{title:`No comments yet`,children:(0,K.jsx)(C,{})})})})]})})})},nn=()=>{let[e]=c(),{data:t,isLoading:n}=Oe({}),r=(0,W.useMemo)(()=>en(e),[e]),i=e.get(`filter`)??void 0;if(!r&&Qt(i,!!t,n))return(0,K.jsx)(p,{className:`size-full`,children:(0,K.jsx)(m,{className:`relative flex h-full flex-col`,size:`page`,children:(0,K.jsxs)(H,{children:[(0,K.jsx)(H.Header,{children:(0,K.jsx)(V,{blurredBackground:!1,sticky:!1,children:(0,K.jsx)(V.Left,{children:(0,K.jsx)(V.Title,{children:`Comments`})})})}),(0,K.jsx)(H.Body,{children:(0,K.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,K.jsx)(R,{size:`lg`})})})]})})});let a=Le(t?.settings??[]);return(0,K.jsx)(tn,{singleCommentId:r,timezone:a})};export{nn as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./hooks-
|
|
1
|
+
import{r as e}from"./hooks-Cy_-oZ4o.js";var t=`ConfigResponseType`,n=t,r=e({dataType:t,path:`/config/`}),i=e=>!!e?.hostSettings?.managedEmail?.enabled,a=e=>{let t=e?.hostSettings?.managedEmail?.sendingDomain;return typeof t==`string`&&t.length>0},o=e=>e?.hostSettings?.managedEmail?.sendingDomain,s=`/pro`,c=e=>{let t=e?.hostSettings?.billing?.upgradeUrl;return t?t.replace(/^#/,``):s};export{o as a,i,n,c as o,a as r,r as s,s as t};
|
|
@@ -0,0 +1 @@
|
|
|
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{t as i}from"./button-Dvcv1QSR.js";import{s as a}from"./use-settings-navigation-B-qrriKD.js";import{cr as o,dr as s,ir as c,lr as l,nr as u,sr as d,ur as f}from"./index-CgMCwsxN.js";var p=e(t(),1),m=n(),h=({visible:e=!0,onRemove:t,title:n=`Are you sure?`,prompt:h,cancelLabel:g=`Cancel`,okLabel:_=`OK`,okRunningLabel:v,okVariant:y=`default`,onCancel:b,onOk:x,customFooter:S,formSheet:C=!0,stickyFooter:w=!1,contentClassName:T,testId:E=`confirmation-modal`})=>{let[D,O]=(0,p.useState)(``),k=D===`running`,A=v||_,j=()=>{k||(b?b():t())},M=async()=>{O(`running`);try{await x?.({remove:t})}catch(e){console.error(`Unhandled Promise Rejection. Make sure you catch errors in your onOk handler.`,e)}O(``)},N=(0,m.jsxs)(l,{className:r(w&&`gap-2`),children:[g&&(0,m.jsx)(i,{"data-testid":`cancel-modal`,disabled:k,type:`button`,variant:`outline`,onClick:j,children:g}),_&&(0,m.jsxs)(i,{"aria-busy":k,"data-testid":`ok-modal`,disabled:k,type:`button`,variant:y,onClick:()=>void M(),children:[k&&(0,m.jsx)(u,{color:`current`,size:`sm`}),k?A:_]})]}),P=S===void 0?N:S;return(0,m.jsx)(c,{open:e,onOpenChange:e=>!e&&j(),children:(0,m.jsxs)(d,{className:r(`z-[1100] max-h-[calc(100dvh-4rem)] w-[calc(100%-2rem)] overflow-y-auto bg-background`,w&&`flex flex-col gap-0 pb-0`,T),"data-testid":E,overlayClassName:r(`z-[1100] bg-foreground/20! backdrop-blur-[3px]`,C&&`bg-foreground/10!`),onEscapeKeyDown:e=>e.stopPropagation(),children:[(0,m.jsxs)(f,{children:[(0,m.jsx)(s,{children:n}),(0,m.jsx)(o,{asChild:!0,children:(0,m.jsx)(`div`,{className:`text-left text-foreground`,children:h})})]}),P&&(w?(0,m.jsx)(a,{className:`-mx-6 w-auto [&>div:first-child]:hidden [&>div:last-child]:hidden`,contentClassName:`px-6 mb-0 *:w-full`,"data-testid":`modal-sticky-footer`,height:84,style:{bottom:0,height:`84px`},children:P}):P)]})})},g=({visible:e=!0,onRemove:t,title:n=`Upgrade your plan`,prompt:r,okLabel:i=`Upgrade`,formSheet:a=!1,onOk:o})=>(0,m.jsx)(h,{formSheet:a,okLabel:i,prompt:(0,m.jsx)(`div`,{className:`w-full`,children:typeof r==`string`&&r.includes(`<`)?(0,m.jsx)(`div`,{dangerouslySetInnerHTML:{__html:r}}):r}),testId:`limit-modal`,title:n,visible:e,onOk:o,onRemove:t}),_=(0,p.createContext)(null);function v(){let e=(0,p.useContext)(_);if(!e)throw Error(`useConfirmation must be used inside ConfirmationProvider`);return e}export{h as i,v as n,g as r,_ as t};
|
package/core/built/admin/assets/{content-api-modal-CyQEC3fr.js → content-api-modal-D2G0nJP6.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-DX3WBWVO.js";import{f as t}from"./hooks-
|
|
1
|
+
import{t as e}from"./jsx-runtime-DX3WBWVO.js";import{f as t}from"./hooks-Cy_-oZ4o.js";import{Bn as n,Mn as r,t as i}from"./button-Dvcv1QSR.js";import{o as a,t as o}from"./use-settings-navigation-B-qrriKD.js";import{n as s}from"./integrations-B4kuRBFY.js";import{t as c}from"./api-keys-BoeacM-s.js";import{t as l}from"./integration-header-Bm6IDb1A.js";var u=e();function d(){let{updateRoute:e}=o(),{data:{integrations:d}={integrations:[]}}=s(),f=d.find(({slug:e})=>e===`ghost-core-content`)?.api_keys?.find(e=>e.type===`content`);return(0,u.jsxs)(a,{cancelLabel:``,footer:(0,u.jsxs)(`div`,{className:`mx-8 flex w-full items-center justify-between`,children:[(0,u.jsx)(i,{variant:`outline`,asChild:!0,children:(0,u.jsxs)(`a`,{href:`https://docs.ghost.org/content-api/`,rel:`noopener noreferrer`,target:`_blank`,children:[`Open docs `,(0,u.jsx)(r,{className:`size-3`})]})}),(0,u.jsx)(i,{type:`button`,onClick:()=>{e(`integrations`)},children:`Close`})]}),testId:`content-api-modal`,title:``,stickyFooter:!0,onClose:()=>{e(`integrations`)},children:[(0,u.jsx)(l,{detail:`Access your content programmatically`,icon:(0,u.jsx)(n,{className:`size-14`}),title:`Content API`}),(0,u.jsxs)(`div`,{className:`mt-7`,children:[(0,u.jsx)(`p`,{className:`mb-6 text-gray-700`,children:`This key provides read-only access to your published content. For full read/write access, create a custom integration.`}),(0,u.jsx)(c,{keys:[{id:`content-api-key`,label:`Content API key`,text:f?.secret},{id:`api-url`,label:`API URL`,text:window.location.origin+t().subdir}]})]})]})}export{d as default};
|
|
@@ -0,0 +1 @@
|
|
|
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{l as i,t as a,x as o}from"./shade-app-CcS3f8MZ-vwURazk8.js";import{a as s,r as c}from"./dist-8YJUlf3B.js";import{$n as l,Gn as u,nr as d}from"./button-Dvcv1QSR.js";import{Br as f,Gr as p,Hr as ee,Ir as te,Jr as ne,Kr as re,Lr as ie,Qr as m,Rr as ae,Ur as oe,Vr as se,Wr as ce,Xr as le,Yr as ue,Zr as de,qr as fe,zr as h}from"./index-CgMCwsxN.js";var g=e(t(),1),_=n(),v=`ContextMenu`,[pe,me]=s(v,[m]),y=m(),[he,b]=pe(v),x=e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,open:a,dir:o,modal:s=!0}=e,c=g.useRef(!1);{let e=g.useRef(!1);g.useEffect(()=>{a===!0&&!c.current&&!e.current&&(e.current=!0,console.warn("ContextMenu: The `open` prop has been set to `true` before the user has interacted with the trigger, so its position is indeterminate. This is likely unintended and will result in the menu being anchored to the top-left corner of the viewport."))},[a])}let[l,u]=i({prop:a,defaultProp:!1,onChange:r,caller:v}),d=y(t);return(0,_.jsx)(he,{scope:t,open:l,onOpenChange:u,modal:s,hasInteractedRef:c,children:(0,_.jsx)(fe,{...d,dir:o,open:l,onOpenChange:u,modal:s,children:n})})};x.displayName=v;var S=`ContextMenuTrigger`,C=g.forwardRef((e,t)=>{let{__scopeContextMenu:n,disabled:r=!1,...i}=e,a=b(S,n),s=y(n),l=g.useRef({x:0,y:0}),u=g.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...l.current})}),d=g.useRef(0),f=g.useCallback(()=>window.clearTimeout(d.current),[]),p=e=>{a.hasInteractedRef.current=!0,l.current={x:e.clientX,y:e.clientY},a.onOpenChange(!0)};return g.useEffect(()=>f,[f]),g.useEffect(()=>void(r&&f()),[r,f]),(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(te,{...s,virtualRef:u}),(0,_.jsx)(c.span,{"data-state":a.open?`open`:`closed`,"data-disabled":r?``:void 0,...i,ref:t,style:{WebkitTouchCallout:`none`,...e.style},onContextMenu:r?e.onContextMenu:o(e.onContextMenu,e=>{f(),p(e),e.preventDefault()}),onPointerDown:r?e.onPointerDown:o(e.onPointerDown,B(e=>{f(),a.open&&a.onOpenChange(!1),d.current=window.setTimeout(()=>p(e),700)})),onPointerMove:r?e.onPointerMove:o(e.onPointerMove,B(f)),onPointerCancel:r?e.onPointerCancel:o(e.onPointerCancel,B(f)),onPointerUp:r?e.onPointerUp:o(e.onPointerUp,B(f))})]})});C.displayName=S;var ge=`ContextMenuPortal`,w=e=>{let{__scopeContextMenu:t,...n}=e,r=y(t);return(0,_.jsx)(ce,{...r,...n})};w.displayName=ge;var T=`ContextMenuContent`,E=g.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=b(T,n),a=y(n),o=g.useRef(!1);return(0,_.jsx)(h,{...a,...r,ref:t,side:`right`,sideOffset:2,align:`start`,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),!t.defaultPrevented&&o.current&&t.preventDefault(),o.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),!t.defaultPrevented&&!i.modal&&(o.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-context-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-context-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-context-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-context-menu-trigger-height":`var(--radix-popper-anchor-height)`}})});E.displayName=T;var _e=`ContextMenuGroup`,ve=g.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=y(n);return(0,_.jsx)(f,{...i,...r,ref:t})});ve.displayName=_e;var ye=`ContextMenuLabel`,D=g.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=y(n);return(0,_.jsx)(oe,{...i,...r,ref:t})});D.displayName=ye;var be=`ContextMenuItem`,O=g.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=y(n);return(0,_.jsx)(se,{...i,...r,ref:t})});O.displayName=be;var k=`ContextMenuCheckboxItem`,A=g.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=y(n);return(0,_.jsx)(ae,{...i,...r,ref:t})});A.displayName=k;var j=`ContextMenuRadioGroup`,M=g.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=y(n);return(0,_.jsx)(p,{...i,...r,ref:t})});M.displayName=j;var N=`ContextMenuRadioItem`,P=g.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=y(n);return(0,_.jsx)(re,{...i,...r,ref:t})});P.displayName=N;var xe=`ContextMenuItemIndicator`,F=g.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=y(n);return(0,_.jsx)(ee,{...i,...r,ref:t})});F.displayName=xe;var Se=`ContextMenuSeparator`,I=g.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=y(n);return(0,_.jsx)(ne,{...i,...r,ref:t})});I.displayName=Se;var Ce=`ContextMenuArrow`,we=g.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=y(n);return(0,_.jsx)(ie,{...i,...r,ref:t})});we.displayName=Ce;var L=`ContextMenuSub`,Te=e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,open:a,defaultOpen:o}=e,s=y(t),[c,l]=i({prop:a,defaultProp:o??!1,onChange:r,caller:L});return(0,_.jsx)(ue,{...s,open:c,onOpenChange:l,children:n})};Te.displayName=L;var Ee=`ContextMenuSubTrigger`,R=g.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=y(n);return(0,_.jsx)(de,{...i,...r,ref:t})});R.displayName=Ee;var De=`ContextMenuSubContent`,z=g.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=y(n);return(0,_.jsx)(le,{...i,...r,ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-context-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-context-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-context-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-context-menu-trigger-height":`var(--radix-popper-anchor-height)`}})});z.displayName=De;function B(e){return t=>t.pointerType===`mouse`?void 0:e(t)}var Oe=x,ke=C,Ae=w,V=E,H=D,U=O,W=A,G=P,K=F,q=I,J=R,Y=z,je=Oe,Me=ke,Ne=g.forwardRef(({className:e,inset:t,children:n,...i},a)=>(0,_.jsxs)(J,{ref:a,className:r(`flex cursor-default items-center gap-2 rounded-xs px-2 py-1.5 text-sm outline-hidden select-none hover:bg-accent focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,t&&`pl-8`,e),...i,children:[n,(0,_.jsx)(l,{className:`ml-auto`})]}));Ne.displayName=J.displayName;var X=g.forwardRef(({className:e,...t},n)=>(0,_.jsx)(`div`,{className:a,children:(0,_.jsx)(Y,{ref:n,className:r(`z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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`,e),...t})}));X.displayName=Y.displayName;var Z=g.forwardRef(({className:e,...t},n)=>(0,_.jsx)(Ae,{children:(0,_.jsx)(`div`,{className:a,children:(0,_.jsx)(V,{ref:n,className:r(`z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 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`,e),...t})})}));Z.displayName=V.displayName;var Q=g.forwardRef(({className:e,inset:t,variant:n=`default`,...i},a)=>(0,_.jsx)(U,{ref:a,className:r(`relative flex cursor-pointer items-center gap-2 rounded-xs px-2 py-1.5 text-sm outline-hidden transition-colors select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0`,n===`destructive`&&`text-destructive focus:bg-destructive/10 focus:text-destructive`,t&&`pl-8`,e),...i}));Q.displayName=U.displayName;var Pe=g.forwardRef(({className:e,children:t,checked:n,...i},a)=>(0,_.jsxs)(W,{ref:a,checked:n,className:r(`relative flex cursor-default items-center rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden transition-colors select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,e),...i,children:[(0,_.jsx)(`span`,{className:`absolute left-2 flex size-3.5 items-center justify-center`,children:(0,_.jsx)(K,{children:(0,_.jsx)(d,{className:`size-4`})})}),t]}));Pe.displayName=W.displayName;var Fe=g.forwardRef(({className:e,children:t,...n},i)=>(0,_.jsxs)(G,{ref:i,className:r(`relative flex cursor-default items-center rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden transition-colors select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,e),...n,children:[(0,_.jsx)(`span`,{className:`absolute left-2 flex size-3.5 items-center justify-center`,children:(0,_.jsx)(K,{children:(0,_.jsx)(u,{className:`size-2 fill-current`})})}),t]}));Fe.displayName=G.displayName;var Ie=g.forwardRef(({className:e,inset:t,...n},i)=>(0,_.jsx)(H,{ref:i,className:r(`px-2 py-1.5 text-sm font-semibold`,t&&`pl-8`,e),...n}));Ie.displayName=H.displayName;var $=g.forwardRef(({className:e,...t},n)=>(0,_.jsx)(q,{ref:n,className:r(`-mx-1 my-1 h-px bg-muted`,e),...t}));$.displayName=q.displayName;var Le=({className:e,...t})=>(0,_.jsx)(`span`,{className:r(`ml-auto text-xs tracking-wider opacity-60`,e),...t});Le.displayName=`ContextMenuShortcut`;export{Me as a,$ as i,Z as n,Q as r,je as t};
|
|
@@ -1 +1 @@
|
|
|
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{t as i}from"./inline-BWSs_VzR.js";import{t as a}from"./stack-B2eszIiq.js";import{t as o}from"./text-BQDSDsKs.js";import{t as s}from"./button-
|
|
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{t as i}from"./inline-BWSs_VzR.js";import{t as a}from"./stack-B2eszIiq.js";import{t as o}from"./text-BQDSDsKs.js";import{t as s}from"./button-Dvcv1QSR.js";import{t as c}from"./input-surface-BsrIZeSF.js";var l=e(t(),1),u=n(),d=l.createContext(null);function f(){let e=l.useContext(d);if(!e)throw Error(`CopyField subcomponents must be used within CopyField`);return e}var p=l.forwardRef(({children:e,className:t,disabled:n=!1,value:i,...o},s)=>{let[c,f]=l.useState(!1),p=l.useId(),m=l.useRef(null);l.useEffect(()=>{f(!1),m.current&&=(clearTimeout(m.current),null)},[i]),l.useEffect(()=>()=>{m.current&&clearTimeout(m.current)},[]);let h=l.useCallback(async()=>{if(!n)try{await navigator.clipboard.writeText(i),f(!0),m.current&&clearTimeout(m.current),m.current=setTimeout(()=>f(!1),2e3)}catch{f(!1)}},[n,i]),g=l.useMemo(()=>({copied:c,copy:h,disabled:n,labelId:p,value:i}),[c,h,n,p,i]);return(0,u.jsx)(d.Provider,{value:g,children:(0,u.jsx)(a,{ref:s,className:r(`group/copy-field w-full`,t),"data-disabled":n||void 0,"data-slot":`copy-field`,gap:`xs`,...o,children:e})})});p.displayName=`CopyField`;var m=l.forwardRef(({className:e,id:t,...n},i)=>{let{labelId:a}=f();return(0,u.jsx)(o,{ref:i,as:`div`,className:r(`text-control! font-medium group-data-[disabled=true]/copy-field:opacity-50`,e),"data-slot":`copy-field-label`,id:t||a,leading:`snug`,...n})});m.displayName=`CopyFieldLabel`;var h=l.forwardRef(({className:e,...t},n)=>(0,u.jsx)(`div`,{ref:n,className:r(c(`within`),`group/copy-field-content relative flex h-(--control-height) w-full items-center overflow-hidden bg-control-readonly-surface px-3 py-1 group-data-[disabled=true]/copy-field:cursor-not-allowed group-data-[disabled=true]/copy-field:opacity-50`,e),"data-slot":`copy-field-content`,...t}));h.displayName=`CopyFieldContent`;var g=l.forwardRef(({children:e,className:t,...n},i)=>{let{disabled:a,labelId:s,value:c}=f();return(0,u.jsx)(o,{ref:i,"aria-disabled":a||void 0,"aria-labelledby":n[`aria-label`]||n[`aria-labelledby`]?n[`aria-labelledby`]:s,"aria-readonly":`true`,as:`div`,className:r(`min-w-0 truncate pr-2 text-muted-foreground`,t),"data-slot":`copy-field-value`,leading:`snug`,role:`textbox`,tabIndex:a?void 0:0,...n,children:e??c})});g.displayName=`CopyFieldValue`;var _=l.forwardRef(({className:e,...t},n)=>(0,u.jsx)(i,{ref:n,className:r(`absolute top-1/2 right-[1px] -translate-y-1/2 gap-px bg-control-readonly-surface pl-1 transition-opacity md:pointer-events-none md:opacity-0 md:group-focus-within/copy-field-content:pointer-events-auto md:group-focus-within/copy-field-content:opacity-100 md:group-hover/copy-field-content:pointer-events-auto md:group-hover/copy-field-content:opacity-100 [&_button]:h-7 [&_button]:rounded-sm [&_button:not([data-slot=copy-field-copy-button])]:bg-control-readonly-surface [&_button:not([data-slot=copy-field-copy-button])]:hover:bg-secondary`,e),"data-slot":`copy-field-actions`,gap:`none`,...t}));_.displayName=`CopyFieldActions`;var v=l.forwardRef(({children:e=`Copy`,className:t,copiedLabel:n=`Copied`,disabled:i,onClick:a,...o},c)=>{let{copied:l,copy:d,disabled:p}=f();return(0,u.jsx)(s,{ref:c,className:r(`bg-surface-elevated hover:border-border-strong/40 hover:bg-surface-elevated`,t),disabled:p||i,size:`sm`,type:`button`,variant:`outline`,onClick:async e=>{await d(),a?.(e)},...o,"data-slot":`copy-field-copy-button`,children:l?n:e})});v.displayName=`CopyFieldCopyButton`;export{m as a,v as i,_ as n,g as o,h as r,p as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./build-CsiH26uS.js";import{bt as r}from"./index-CgMCwsxN.js";function i(e,t){if(t.length!==0)return`${e}:[${t.map(e=>n(e)).join(`,`)}]`}function a(e,t){let n=t.trim().toLowerCase();return n?e.filter(e=>e.label.toLowerCase().includes(n)||e.detail?.toLowerCase().includes(n)):e}function o(...e){let t=new Map;for(let n of e)if(n)for(let e of n)t.has(e.value)||t.set(e.value,e);return[...t.values()]}var s=e(t(),1),c=()=>{};function l(e,t,n){return n?e.flatMap(e=>t.some(t=>t.value===e)?[]:[n(e)]):[]}function u(e){return function(t={}){let{enabled:n=!0}=t;return{id:e.id,useInitialBrowse:()=>{let t=e.useBrowse(``,{enabled:!0}),n=(0,s.useMemo)(()=>(t.data||[]).map(e.toOption),[t.data]);return{items:t.data,options:n,isLoading:t.isLoading,pagination:t.pagination}},useOptions:({query:t,selectedValues:i})=>{let[a]=r(t,e.debounceMs??200),u=e.useBrowse(a,{enabled:n}),d=e.useHydrate?.(i,{enabled:n}),f=(0,s.useMemo)(()=>(u.data||[]).map(e.toOption),[u.data]),p=(0,s.useMemo)(()=>(d?.data||[]).map(e.toOption),[d?.data]),m=(0,s.useMemo)(()=>o(p,f),[p,f]),h=(0,s.useMemo)(()=>l(i,m,e.getMissingSelectedOption),[m,i]);return n?{options:o(h,m),isInitialLoad:u.isLoading&&m.length===0,isSearching:!u.isLoading&&u.isRefreshing&&!u.isLoadingMore,isLoadingMore:u.isLoadingMore,hasMore:u.hasMore,loadMore:u.loadMore??c}:{options:[],isInitialLoad:!1,isSearching:!1,isLoadingMore:!1,hasMore:!1,loadMore:c}}}}}function d(e){return{filter:e}}function f(e){return i(`id`,e)}function p(e){return{limit:`100`,...e}}function m({id:e,buildBrowseSearchParams:t,buildHydrateSearchParams:n=d,buildHydrateFilter:r=f,debounceMs:i,selectItems:a,toOption:o,getMissingSelectedOption:s,useQuery:c}){return u({id:e,useBrowse:(e,n)=>{let r=c({enabled:n.enabled??!0,searchParams:p(t(e))});return{data:a(r.data),isLoading:r.isLoading,isRefreshing:r.isFetching,isLoadingMore:r.isFetchingNextPage,hasMore:!!r.hasNextPage,loadMore:r.fetchNextPage,pagination:r.data?.meta?.pagination}},useHydrate:(e,t)=>{let i=r(e),o={};typeof i==`string`&&Object.assign(o,p(n(i)));let s=c({enabled:(t.enabled??!0)&&e.length>0,searchParams:o});return{data:a(s.data),isLoading:s.isLoading}},toOption:o,getMissingSelectedOption:s,debounceMs:i})}export{o as i,i as n,a as r,m as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-DX3WBWVO.js";import{N as t,S as n,Ut as r}from"./button-Dvcv1QSR.js";import{h as i}from"./member-custom-fields-TRTHCAz9.js";var a=e(),o={short_text:n,long_text:t,address:r},s=({type:e,className:t})=>(0,a.jsx)(o[e]||n,{className:t});function c({type:e}){return(0,a.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,a.jsx)(`span`,{className:`flex w-5 shrink-0 items-center justify-center`,children:(0,a.jsx)(s,{className:`size-4`,type:e})}),(0,a.jsx)(`span`,{children:i(e).label})]})}export{s as n,c as t};
|
|
@@ -0,0 +1 @@
|
|
|
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{f as r,n as i,p as a}from"./hooks-Cy_-oZ4o.js";import{n as o}from"./dist-Ndy-PuGN.js";import{t as s}from"./use-form-vRjI0Kwk.js";import{h as c}from"./chunk-KS7C4IRE-DCsL4i4D.js";import{m as l}from"./dist-B3keLvjj.js";import{t as u}from"./box-CdfQAP_F.js";import{t as d}from"./inline-BWSs_VzR.js";import{t as f}from"./stack-B2eszIiq.js";import{D as p,ft as m,o as h,t as g}from"./button-Dvcv1QSR.js";import{a as _,i as v,n as y,o as b,r as x,s as S,t as C}from"./select-v5YbA3Mw.js";import{o as w,t as ee}from"./use-settings-navigation-B-qrriKD.js";import{t as T}from"./empty-indicator-D9QdpuNX.js";import{a as E,i as D,o as O,t as k}from"./field-C93_Mg6j.js";import{a as A,c as j,n as te,r as M,s as N,t as P}from"./table-BenqVupI.js";import{qn as F,rr as I}from"./index-CgMCwsxN.js";import{a as ne,c as re,i as ie,n as L,o as R,r as z,s as B,t as V}from"./images-KXmyO3Ss.js";import{t as H}from"./validator-Cr0sMKuW.js";import{n as U}from"./confirmation-context-DwXX_Y5h.js";import{a as W,n as G,t as K}from"./integrations-B4kuRBFY.js";import{t as q}from"./api-keys-BoeacM-s.js";import{t as J}from"./api-keys-BGPzLHzA.js";var Y=e(t(),1),ae=e(H(),1),X=[{label:`Global`,options:[{value:`site.changed`,label:`Site changed (rebuild)`}]},{label:`Posts`,options:[{value:`post.added`,label:`Post created`},{value:`post.deleted`,label:`Post deleted`},{value:`post.edited`,label:`Post updated`},{value:`post.published`,label:`Post published`},{value:`post.published.edited`,label:`Published post updated`},{value:`post.unpublished`,label:`Post unpublished`},{value:`post.scheduled`,label:`Post scheduled`},{value:`post.unscheduled`,label:`Post unscheduled`},{value:`post.tag.attached`,label:`Tag added to post`},{value:`post.tag.detached`,label:`Tag removed from post`}]},{label:`Pages`,options:[{value:`page.added`,label:`Page created`},{value:`page.deleted`,label:`Page deleted`},{value:`page.edited`,label:`Page updated`},{value:`page.published`,label:`Page published`},{value:`page.published.edited`,label:`Published page updated`},{value:`page.unpublished`,label:`Page unpublished`},{value:`page.tag.attached`,label:`Tag added to page`},{value:`page.tag.detached`,label:`Tag removed from page`}]},{label:`Tags`,options:[{value:`tag.added`,label:`Tag created`},{value:`tag.edited`,label:`Tag updated`},{value:`tag.deleted`,label:`Tag deleted`}]},{label:`Members`,options:[{value:`member.added`,label:`Member added`},{value:`member.edited`,label:`Member updated`},{value:`member.deleted`,label:`Member deleted`}]}],oe=e=>X.flatMap(({options:e})=>e).find(t=>t.value===e)?.label,se=i({method:`POST`,path:()=>`/webhooks/`,body:e=>({webhooks:[e]}),updateQueries:{dataType:K,emberUpdateType:`createOrUpdate`,update:(e,t)=>t&&{...t,integrations:t.integrations.map(t=>{let n=e.webhooks[0];return n.integration_id===t.id?{...t,webhooks:[...t.webhooks||[],n]}:t})}}}),ce=i({method:`PUT`,path:e=>`/webhooks/${e.id}/`,body:e=>({webhooks:[e]}),updateQueries:{dataType:K,emberUpdateType:`createOrUpdate`,update:(e,t)=>t&&{...t,integrations:t.integrations.map(t=>({...t,webhooks:t.webhooks?.map(t=>t.id===e.webhooks[0].id?e.webhooks[0]:t)}))}}}),le=i({method:`DELETE`,path:e=>`/webhooks/${e}/`,updateQueries:{dataType:K,emberUpdateType:`createOrUpdate`,update:(e,t,n)=>({...t,integrations:t.integrations.map(e=>({...e,webhooks:e.webhooks?.filter(e=>e.id!==n)}))})}}),Z=n(),Q=({webhook:e,integrationId:t,onClose:n})=>{let r=Y.useId(),{mutateAsync:i}=se(),{mutateAsync:o}=ce(),c=a(),{formState:l,updateForm:u,handleSave:d,errors:f,clearError:p}=s({initialState:e||{},onSave:async()=>{l.id?await o(l):await i({...l,integration_id:t})},onSaveError:c,onValidate:()=>{let e={};return l.name||(e.name=`Enter a name`),l.event||(e.event=`Select an event`),l.target_url||(e.target_url=`Enter a target URL`),l.target_url&&!ae.default.isURL(l.target_url,{require_tld:!1})&&(e.target_url=`Enter a valid URL`),e}});return(0,Z.jsx)(w,{okLabel:e?`Update`:`Add`,okVariant:`default`,size:`sm`,testId:`webhook-modal`,title:`Add webhook`,formSheet:!0,onClose:n,onOk:async()=>{await d()&&n()},children:(0,Z.jsx)(`div`,{className:`mt-5`,children:(0,Z.jsxs)(E,{className:`gap-8`,children:[(0,Z.jsxs)(k,{"data-invalid":!!f.name||void 0,children:[(0,Z.jsx)(O,{htmlFor:`webhook-name`,children:`Name`}),(0,Z.jsx)(I,{"aria-invalid":!!f.name||void 0,id:`webhook-name`,maxLength:191,placeholder:`Custom webhook`,value:l.name??``,onChange:e=>u(t=>({...t,name:e.target.value})),onKeyDown:()=>p(`name`)}),f.name&&(0,Z.jsx)(D,{children:f.name})]}),(0,Z.jsxs)(k,{"data-invalid":!!f.event||void 0,children:[(0,Z.jsx)(O,{className:`sr-only`,children:`Event`}),(0,Z.jsxs)(C,{value:l.event??``,onValueChange:e=>{u(t=>({...t,event:e})),p(`event`)},children:[(0,Z.jsx)(b,{"aria-describedby":f.event?r:void 0,"aria-invalid":!!f.event||void 0,"aria-label":`Event`,"data-testid":`event-select`,children:(0,Z.jsx)(S,{placeholder:`Select an event`})}),(0,Z.jsx)(y,{children:X.map(e=>(0,Z.jsxs)(x,{children:[(0,Z.jsx)(_,{children:e.label}),e.options.map(e=>(0,Z.jsx)(v,{value:e.value,children:e.label},e.value))]},e.label))})]}),f.event&&(0,Z.jsx)(D,{id:r,children:f.event})]}),(0,Z.jsxs)(k,{"data-invalid":!!f.target_url||void 0,children:[(0,Z.jsx)(O,{htmlFor:`webhook-target-url`,children:`Target URL`}),(0,Z.jsx)(I,{"aria-invalid":!!f.target_url||void 0,id:`webhook-target-url`,maxLength:2e3,placeholder:`https://example.com`,type:`url`,value:l.target_url??``,onChange:e=>u(t=>({...t,target_url:e.target.value})),onKeyDown:()=>p(`target_url`)}),f.target_url&&(0,Z.jsx)(D,{children:f.target_url})]}),(0,Z.jsxs)(k,{children:[(0,Z.jsx)(O,{htmlFor:`webhook-secret`,children:`Secret`}),(0,Z.jsx)(I,{id:`webhook-secret`,maxLength:191,placeholder:`https://example.com`,value:l.secret||``,onChange:e=>u(t=>({...t,secret:e.target.value}))})]})]})})})},$=({integration:e})=>{let{mutateAsync:t}=le(),n=a(),{confirm:r}=U(),i=e.webhooks||[],[s,c]=(0,Y.useState)(null),[u,p]=(0,Y.useState)(!1),_=()=>{p(!0)},v=()=>{p(!1),c(null)},y=u?(0,Z.jsx)(Q,{integrationId:e.id,onClose:v}):s&&(0,Z.jsx)(Q,{integrationId:e.id,webhook:s,onClose:v},s.id),b=e=>{r({title:`Are you sure?`,prompt:`Deleting this webhook may prevent the integration from functioning.`,okVariant:`destructive`,okLabel:`Delete Webhook`,onOk:async r=>{try{await t(e),r?.remove(),o.info(`Webhook deleted`)}catch(e){n(e)}}})};return i.length===0?(0,Z.jsxs)(f,{gap:`none`,children:[(0,Z.jsx)(F,{}),(0,Z.jsx)(T,{actions:(0,Z.jsxs)(g,{type:`button`,variant:`outline`,onClick:_,children:[(0,Z.jsx)(m,{}),` Add webhook`]}),className:`py-8`,description:`Add a webhook to send Ghost events to another service.`,title:`No webhooks`,children:(0,Z.jsx)(h,{})}),(0,Z.jsx)(F,{}),y]}):(0,Z.jsxs)(f,{gap:`none`,children:[(0,Z.jsxs)(P,{children:[(0,Z.jsx)(N,{children:(0,Z.jsxs)(j,{children:[(0,Z.jsxs)(A,{children:[l(e.webhooks?.length||0),` `,e.webhooks?.length===1?`webhook`:`webhooks`]}),(0,Z.jsx)(A,{children:`Last triggered`}),(0,Z.jsx)(A,{children:(0,Z.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,Z.jsx)(te,{children:i.map(e=>(0,Z.jsxs)(j,{className:`cursor-pointer`,onClick:()=>c(e),children:[(0,Z.jsxs)(M,{className:`w-3/4 py-3 pr-6`,children:[(0,Z.jsx)(`div`,{className:`font-semibold`,children:e.name}),(0,Z.jsxs)(`div`,{className:`mt-1 grid grid-cols-[max-content_1fr] gap-1 text-sm leading-snug`,children:[(0,Z.jsx)(`span`,{className:`text-muted-foreground`,children:`Event:`}),(0,Z.jsx)(`span`,{children:oe(e.event)}),(0,Z.jsx)(`span`,{className:`text-muted-foreground`,children:`URL:`}),(0,Z.jsx)(`span`,{className:`line-clamp-3 break-all`,title:e.target_url,children:e.target_url})]})]}),(0,Z.jsx)(M,{className:`w-1/4 py-3 pr-6 text-sm`,children:e.last_triggered_at&&new Date(e.last_triggered_at).toLocaleString(`default`,{weekday:`short`,month:`short`,day:`numeric`,year:`numeric`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}),(0,Z.jsx)(M,{className:`w-0 text-right`,children:(0,Z.jsx)(g,{className:`text-destructive hover:text-destructive`,size:`sm`,type:`button`,variant:`ghost`,onClick:t=>{t.stopPropagation(),b(e.id)},children:`Delete`})})]},e.id))})]}),(0,Z.jsx)(d,{className:`py-4`,justify:`center`,children:(0,Z.jsxs)(g,{size:`sm`,type:`button`,variant:`outline`,onClick:_,children:[(0,Z.jsx)(m,{}),` Add webhook`]})}),(0,Z.jsx)(F,{}),y]})},ue=({integration:e})=>{let{updateRoute:t}=ee(),{mutateAsync:n}=W(),{mutateAsync:i}=J(),{mutateAsync:o}=L(),c=a(),{confirm:l}=U(),{formState:d,updateForm:m,handleSave:h,saveState:g,errors:_,clearError:v,okProps:y}=s({initialState:e,savingDelay:500,savedDelay:500,onSave:async()=>{await n(d)},onSavedStateReset:()=>{t(`integrations`)},onSaveError:c,onValidate:()=>{let e={};return d.name||(e.name=`Enter integration title`),e}}),b=async e=>{try{let t=V(await o({file:e}));m(e=>({...e,icon_image:t}))}catch(e){let t=e;t.response.status===415&&(t.message=`Unsupported file type`),c(t)}},x=e.api_keys?.find(e=>e.type===`admin`),S=e.api_keys?.find(e=>e.type===`content`),[C,T]=(0,Y.useState)(!1),[E,A]=(0,Y.useState)(!1);(0,Y.useEffect)(()=>{e.type!==`custom`&&t(`integrations`)},[e.type,t]);let j=(t,n)=>{n(!1);let r=t.type===`content`?`Content`:`Admin`;l({title:`Regenerate ${r} API Key`,prompt:`You can regenerate ${r} API Key any time, but any scripts or applications using it will need to be updated.`,okLabel:`Regenerate ${r} API Key`,onOk:async r=>{try{await i({integrationId:e.id,apiKeyId:t.id}),n(!0),r?.remove()}catch(e){c(e)}}})};return(0,Z.jsxs)(w,{buttonsDisabled:y.disabled,cancelLabel:`Close`,dirty:g===`unsaved`,okLabel:y.label||`Save`,okVariant:y.variant,size:`md`,testId:`custom-integration-modal`,title:d.name||`Custom integration`,stickyFooter:!0,onClose:()=>{t(`integrations`)},onOk:async()=>{await h({fakeWhenUnchanged:!0})},children:[(0,Z.jsxs)(f,{className:`w-full pt-6 md:flex-row`,gap:`xl`,children:[(0,Z.jsx)(`div`,{className:`shrink-0`,children:(0,Z.jsx)(z,{className:`size-25`,children:d.icon_image?(0,Z.jsxs)(re,{children:[(0,Z.jsx)(B,{id:`custom-integration-icon`,src:d.icon_image}),(0,Z.jsx)(ne,{children:(0,Z.jsx)(ie,{"aria-label":`Remove icon`,onClick:()=>m(e=>({...e,icon_image:null})),children:(0,Z.jsx)(p,{})})})]}):(0,Z.jsx)(R,{className:`text-center`,inputId:`custom-integration-icon`,onDropAccepted:([e])=>void b(e),children:`Upload icon`})})}),(0,Z.jsxs)(f,{className:`min-w-0 grow`,gap:`2xl`,children:[(0,Z.jsxs)(f,{gap:`md`,children:[(0,Z.jsxs)(k,{"data-invalid":!!_.name||void 0,children:[(0,Z.jsx)(O,{htmlFor:`integration-title`,children:`Title`}),(0,Z.jsx)(I,{"aria-invalid":!!_.name||void 0,id:`integration-title`,maxLength:191,value:d.name,onChange:e=>m(t=>({...t,name:e.target.value})),onKeyDown:()=>v(`name`)}),_.name&&(0,Z.jsx)(D,{children:_.name})]}),(0,Z.jsxs)(k,{children:[(0,Z.jsx)(O,{htmlFor:`integration-description`,children:`Description`}),(0,Z.jsx)(I,{id:`integration-description`,maxLength:2e3,value:d.description||``,onChange:e=>m(t=>({...t,description:e.target.value}))})]})]}),(0,Z.jsx)(q,{keys:[{id:`content-api-key`,label:`Content API key`,text:S?.secret,hint:E?(0,Z.jsx)(`div`,{className:`text-green`,children:`Content API Key was successfully regenerated`}):void 0,onRegenerate:()=>S&&j(S,A)},{id:`admin-api-key`,label:`Admin API key`,text:x?.secret,hint:C?(0,Z.jsx)(`div`,{className:`text-green`,children:`Admin API Key was successfully regenerated`}):void 0,onRegenerate:()=>x&&j(x,T)},{id:`api-url`,label:`API URL`,text:window.location.origin+r().subdir}]})]})]}),(0,Z.jsx)(u,{className:`mt-8`,children:(0,Z.jsx)($,{integration:e})})]})};function de(){let{integrationId:e}=c(),{data:{integrations:t}={}}=G(),n=t?.find(({id:t})=>t===e);return n?(0,Z.jsx)(ue,{integration:n}):null}export{de as default};
|
package/core/built/admin/assets/{date-range-select-DD2RKkgB.js → date-range-select-BY3K-ukj.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
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{
|
|
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{lr as r}from"./button-Dvcv1QSR.js";import{a as i,i as a,n as o,o as s,r as c,s as l,t as u}from"./select-v5YbA3Mw.js";import{J as d,q as f}from"./index-CgMCwsxN.js";var p=e(t(),1),m=n(),h=({range:e,onRangeChange:t,excludeRanges:n=[]})=>{let h=n.map(e=>f[e].value),g=d.filter(e=>!h.includes(e.value));return(0,p.useEffect)(()=>{if(h.includes(e)&&g.length>0){let e=g.find(e=>e.value===f.last7Days.value);t(e?e.value:g[0].value)}},[e,h,g,t]),(0,m.jsxs)(u,{value:`${e}`,onValueChange:e=>{t(Number(e))},children:[(0,m.jsxs)(s,{className:`w-auto`,children:[(0,m.jsx)(r,{className:`mr-2`,size:16,strokeWidth:1.5}),(0,m.jsx)(l,{placeholder:`Select a period`})]}),(0,m.jsx)(o,{align:`end`,children:(0,m.jsxs)(c,{children:[(0,m.jsx)(i,{children:`Period`}),g.map(e=>(0,m.jsx)(a,{value:`${e.value}`,children:e.name},e.value))]})})]})};export{h as t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./dist-CZgIBXQN.js","./rolldown-runtime-DAXXjFlN.js","./dist-Z97pCNqS.js","./dist-BtaTA7Ii.js","./dist-4m6pHdc0.js","./dist-B6bJuxL3.js","./dist-CiHx7vA5.js","./dist-ECAUrdGc.js","./dist-zwwGt8Yf.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
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{r as i}from"./framework-provider-DqI25epG.js";import{_ as a,c as o,d as s,l as c,m as l,p as u,w as d}from"./hooks-Cy_-oZ4o.js";import{n as f}from"./dist-Ndy-PuGN.js";import{t as p}from"./use-form-vRjI0Kwk.js";import{r as m}from"./posts-pCPrhQeR.js";import{t as h}from"./preload-helper-DYl5dUZ5.js";import{a as g}from"./router-provider-BSvTXgZY.js";import{l as _,m as v,w as y}from"./dist-B3keLvjj.js";import{t as b}from"./inline-BWSs_VzR.js";import{t as x}from"./text-BQDSDsKs.js";import{$n as S,C,Cn as w,D as T,Nn as E,Sn as D,Y as O,a as k,an as ee,b as te,bt as A,dn as ne,ft as j,j as re,kn as ie,rt as M,t as N,tr as ae}from"./button-Dvcv1QSR.js";import{n as oe,r as se,t as ce}from"./esm-CXo5SEPy.js";import{i as P,n as le,r as F,t as I}from"./tabs-eBBlxPp8.js";import{t as L}from"./switch-CI4gLWqb.js";import{t as ue}from"./dropzone-Dtz5Rmjt.js";import{i as R,n as z,o as B,s as V,t as H}from"./select-v5YbA3Mw.js";import{o as de,t as U}from"./use-settings-navigation-B-qrriKD.js";import{i as fe,n as pe,r as W,t as me}from"./accordion-CxGsDKwa.js";import{i as he,n as ge,r as _e,t as ve}from"./action-list-C4v0-du8.js";import{a as ye,c as be,n as xe,o as G,r as K,s as Se,t as q}from"./field-C93_Mg6j.js";import{t as Ce}from"./preview-chrome-BljUBlOk.js";import{n as we,t as Te}from"./toggle-group-CviIkyok.js";import{d as J,g as Ee,i as De,m as Y,r as Oe,t as ke,u as Ae}from"./schemas-BoYdB6YU.js";import{$ as je,Dr as Me,Fr as Ne,Q as Pe,Tr as Fe,Xn as Ie,Z as Le,at as Re,ct as ze,et as Be,hi as Ve,it as He,kr as Ue,lt as We,mi as Ge,mt as Ke,nr as qe,ot as Je,pt as Ye,rr as Xe,rt as Ze,st as Qe,tt as $e,ut as et,yi as tt}from"./index-CgMCwsxN.js";import{t as X}from"./page-header-DM_KyoFI.js";import{a as nt,c as rt,i as it,n as at,o as ot,r as st,s as ct,t as lt}from"./images-KXmyO3Ss.js";import{t as ut}from"./modal-page-xCivTMvI.js";import{t as dt}from"./index.es-CY6-yuw9.js";import{t as ft}from"./nql-BLpCn7qX.js";import{i as pt,n as mt}from"./confirmation-context-DwXX_Y5h.js";import{n as ht}from"./global-data-context-gAMDH9u1.js";import{t as gt}from"./use-upgrade-route-Dm_qqKr0.js";import{i as _t}from"./zapier-modal-DfVhV17j.js";import{$ as vt}from"./dist-Z97pCNqS.js";import{t as yt}from"./color-picker-field-DQFVTNnT.js";import{t as bt}from"./preview-modal-YYbzlYdO.js";import{t as xt}from"./use-pintura-editor-CaV1mbfO.js";import{t as St}from"./iframe-buffering-B2OKJzbz.js";import{t as Ct}from"./settings-breadcrumbs-NwPnCTC7.js";import{t as wt}from"./use-query-params-BfzuqbcD.js";import{n as Tt,t as Et}from"./use-check-theme-limit-error-DRUjK4YM.js";var Z=e(t(),1),Dt=J({code:Y(),details:Y(),failures:Oe(J({ref:Y(),message:Y().optional(),rule:Y().optional()})),fatal:De(),level:ke([`error`,`warning`,`recommendation`]),rule:Y()}),Ot=Oe(J({details:Ee([J({errors:Oe(Dt).optional(),warnings:Oe(Dt).optional()}),Y().trim().min(1)])}));function kt(e){return typeof e==`object`&&!!e}function At(e){return[...e.errors||[],...e.warnings||[]]}function jt(e=[]){let t=[],n=[],r=[];return e.forEach(e=>{kt(e.details)?At(e.details).forEach(e=>{e.fatal?t.push(e):n.push(e)}):r.push(e.details)}),{blockingProblems:t,secondaryProblems:n,stringErrors:r}}function Mt(e){let t=Ot.safeParse(e);if(!t.success)return null;let{blockingProblems:n,stringErrors:r}=jt(t.data);return n.length>0||r.length>0?t.data:null}function Nt(e){return[...e.errors||[],...e.warnings||[]]}var Pt=[`Error`,`Warning`,`Recommendation`],Ft={error:{severity:`Error`,variant:`destructive`},warning:{severity:`Warning`,variant:`warning`},recommendation:{severity:`Recommendation`,variant:`secondary`}};function It(e){return Ft[e.level]??Ft.error}function Lt(e){return It(e).severity}function Rt(e){return It(e).variant}function zt(e){return[...e].sort((e,t)=>Pt.indexOf(Lt(e))-Pt.indexOf(Lt(t)))}function Bt(e){return e.some(e=>Lt(e)===`Error`)}function Vt(e,t){return t.length?`${e}, but it has some ${Bt(t)?`issues`:`warnings`}`:`${e} successfully`}var Q=r(),Ht=`[&_code]:rounded-md [&_code]:border-0 [&_code]:bg-secondary [&_code]:px-1 [&_code]:py-0.5 [&_code]:align-baseline [&_code]:font-mono [&_code]:text-sm [&_code]:text-inherit [&_code]:leading-[inherit] [&_code]:whitespace-nowrap`,Ut=`text-base leading-[1.55] font-semibold text-foreground ${Ht}`,Wt=`text-base leading-[1.55] text-foreground [&_a]:underline ${Ht}`,Gt=`space-y-1 text-base text-muted-foreground ${Ht}`;function Kt(e){return Pt.map(t=>({severity:t,count:e.filter(e=>Lt(e)===t).length})).filter(({count:e})=>e>0)}function qt(e){return e.map(({severity:e,count:t})=>`${v(t)} ${e.toLowerCase()}${t===1?``:`s`}`).join(`, `)}function Jt(e,t){return`${e.code||`issue`}-${t}`}function Yt({children:e,variant:t}){return(0,Q.jsx)(Ie,{className:`py-1 font-mono text-sm leading-none uppercase`,variant:t,children:e})}function Xt({problem:e}){return(0,Q.jsxs)(`div`,{className:`mt-3 space-y-3`,children:[(0,Q.jsx)(`div`,{dangerouslySetInnerHTML:{__html:e.details},className:Wt}),e.failures?.length>0&&(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`h6`,{className:`mb-1 text-base font-semibold text-muted-foreground`,children:`Affected files`}),(0,Q.jsx)(`ul`,{className:Gt,children:e.failures.map(e=>(0,Q.jsxs)(`li`,{children:[(0,Q.jsx)(`code`,{children:e.ref}),e.message?(0,Q.jsxs)(`span`,{children:[`: `,e.message]}):null]},`${e.ref}-${e.message||``}`))})]})]})}function Zt({errorLabel:e,problem:t,value:n}){let r=Lt(t);return(0,Q.jsxs)(W,{className:`border-border-default last:border-b-0`,value:n,children:[(0,Q.jsx)(fe,{className:`items-start gap-3 p-5 hover:no-underline data-[state=open]:pb-1 [&>svg]:mt-1`,children:(0,Q.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Q.jsx)(Yt,{variant:Rt(t),children:r===`Error`?e:r}),t.code&&(0,Q.jsx)(`span`,{className:`font-mono text-sm font-normal text-muted-foreground`,children:t.code})]}),(0,Q.jsx)(`div`,{dangerouslySetInnerHTML:{__html:t.rule},className:Ut})]})}),(0,Q.jsx)(pe,{className:`px-5 pb-5`,children:(0,Q.jsx)(Xt,{problem:t})})]})}function Qt({errorLabel:e,message:t}){return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2 border-b border-border-default p-5 last:border-b-0`,children:[(0,Q.jsx)(`div`,{className:`flex items-center gap-3`,children:(0,Q.jsx)(Yt,{variant:`destructive`,children:e})}),(0,Q.jsx)(`p`,{className:`text-base font-semibold text-foreground`,children:t})]})}var $t=`theme-problem-list`;function en({errorLabel:e=`Error`,expandedByDefault:t=!1,messages:n=[],problems:r}){let i=(0,Z.useMemo)(()=>zt(r),[r]),a=(0,Z.useMemo)(()=>i.map(Jt),[i]);return!i.length&&!n.length?null:(0,Q.jsxs)(`div`,{className:`overflow-hidden rounded-lg border border-border-default`,"data-testid":$t,children:[n.map(t=>(0,Q.jsx)(Qt,{errorLabel:e,message:t},t)),i.length>0&&(0,Q.jsx)(me,{defaultValue:t?a:[],type:`multiple`,children:i.map((t,n)=>(0,Q.jsx)(Zt,{errorLabel:e,problem:t,value:a[n]},a[n]))})]})}function tn({problems:e}){if(!e.length)return null;let t=Kt(e),n=Bt(e);return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Q.jsxs)(`h3`,{className:`flex items-center gap-2 text-base font-semibold text-foreground`,children:[(0,Q.jsx)(C,{className:_(`size-4 shrink-0`,n?`text-destructive`:`text-state-warning`)}),qt(t)]}),n&&(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Highly recommended to fix, functionality could be restricted`})]}),(0,Q.jsx)(en,{problems:e})]})}var nn=({title:e,themeName:t,action:n=`uploaded`,cancelLabel:r=`Cancel`,okLabel:i,fatalErrors:a,onRetry:o,onClose:s})=>{let{blockingProblems:c,secondaryProblems:l,stringErrors:u}=jt(a);return(0,Q.jsx)(pt,{cancelLabel:r,contentClassName:c.length+u.length+l.length>0?`max-w-[600px]`:void 0,okLabel:i??(o?`Try again`:``),okVariant:`default`,prompt:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsxs)(`p`,{className:`text-base text-foreground`,children:[t?(0,Q.jsx)(`strong`,{children:t}):`This theme`,` couldn't be `,n,`. Fix the errors below and try again.`]}),(0,Q.jsx)(en,{errorLabel:`Blocking`,messages:u,problems:c,expandedByDefault:!0}),(0,Q.jsx)(tn,{problems:l})]}),stickyFooter:!0,title:e,onOk:o,onRemove:s})},rn=()=>{let e=He();return{supportsCustomFonts:!(e.data?.themes[0])?.warnings?.some(e=>e.code===`GS051-CUSTOM-FONTS`),refreshActiveThemeData:(0,Z.useCallback)(()=>{e.refetch()},[e])}};function an(e){let t=e.package?.name||e.name,n=t;return je(e)?n=`${t} (default)`:$e(e)?n=`${t} (legacy)`:e.package?.name!==e.name&&(n=(0,Q.jsxs)(`span`,{className:`md:text-base`,children:[n,` `,(0,Q.jsxs)(`span`,{className:`text-gray-600`,children:[`(`,e.name,`)`]})]})),Le(e)&&(n=(0,Q.jsxs)(`span`,{className:`font-bold md:text-base`,children:[n,` — `,(0,Q.jsx)(`span`,{className:`text-green`,children:` Active`})]})),n}function on(e){return e.package?.version||`1.0`}var sn=({theme:e})=>{let{mutateAsync:t}=Ze(),{mutateAsync:n}=Je(),{refreshActiveThemeData:r}=rn(),i=u(),{route:o,updateRoute:c}=U(),l=gt(),{checkThemeLimitError:d}=Et(),{confirm:p,showLimit:m}=mt(),[h,g]=(0,Z.useState)(null),_=async()=>{try{await t(e.name),r(),f.success(`Theme activated`,{description:(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`span`,{className:`capitalize`,children:e.name}),` is now your active theme`]})})}catch(e){let t=null;e instanceof a&&e.response?.status===422&&e.data?.errors?t=e.data.errors:i(e),t&&g(t)}},v=()=>{s(`/themes/${e.name}/download`)},y=()=>{p({title:`Are you sure you want to delete this?`,prompt:(0,Q.jsxs)(Q.Fragment,{children:[`You are about to delete `,(0,Q.jsxs)(`strong`,{children:[`"`,e.name,`".`]}),` This is permanent! We warned you, k? Maybe download`,` `,(0,Q.jsx)(`span`,{className:`cursor-pointer text-green-500`,onClick:v,children:`your theme before continuing`})]}),okLabel:`Delete`,okRunningLabel:`Deleting`,okVariant:`destructive`,onOk:async t=>{try{await n(e.name),t?.remove()}catch(e){i(e)}}})},b=async()=>{let t=await d(`.`);if(t){m({prompt:t,onOk:()=>c({route:l,isExternal:!0})});return}c(`theme/edit/${encodeURIComponent(e.name)}?from=${encodeURIComponent(o??``)}`)},x=[];return Le(e)||x.push((0,Q.jsx)(N,{className:`ml-2`,size:`sm`,type:`button`,variant:`ghost`,onClick:()=>void _(),children:`Activate`},`activate`)),(0,Q.jsxs)(`div`,{className:`-mr-3 flex items-center gap-4`,children:[x,(0,Q.jsxs)(Fe,{children:[(0,Q.jsx)(Ne,{asChild:!0,children:(0,Q.jsx)(N,{"aria-label":`Menu`,size:`icon`,type:`button`,variant:`ghost`,children:(0,Q.jsx)(E,{})})}),(0,Q.jsxs)(Me,{align:`end`,className:`z-[9999]`,children:[(0,Q.jsx)(Ue,{onSelect:()=>void b(),children:`Edit code`}),(0,Q.jsx)(Ue,{onSelect:v,children:`Download`}),Be(e)&&(0,Q.jsx)(Ue,{onSelect:y,children:`Delete`})]})]}),h&&(0,Q.jsx)(nn,{action:`activated`,fatalErrors:h,themeName:e.package?.name||e.name,title:`Theme not activated`,onClose:()=>g(null),onRetry:()=>{g(null),_()}})]})},cn=({themes:e})=>(e.sort((e,t)=>e.active&&!t.active?-1:!e.active&&t.active?1:e.package?.name&&t.package?.name?e.package.name.localeCompare(t.package.name):e.name.localeCompare(t.name)),(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`h1`,{className:`mb-5 text-2xl font-bold`,children:`Installed themes`}),(0,Q.jsx)(ve,{className:`border-t border-border`,children:e.map(e=>{let t=an(e),n=on(e);return(0,Q.jsxs)(ge,{"data-testid":`theme-list-item`,children:[(0,Q.jsxs)(he,{className:`py-3 pr-6`,id:`theme-${e.name}`,children:[(0,Q.jsx)(`div`,{children:t}),n&&(0,Q.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:n})]}),(0,Q.jsx)(_e,{children:(0,Q.jsx)(sn,{theme:e})})]},e.name)})})]})),ln=({themes:e})=>(0,Q.jsx)(ut,{children:(0,Q.jsx)(cn,{themes:e})}),un=``+new URL(`footer-marketplace-bg-cXGt4GLt.png`,import.meta.url).href,dn=3e3,fn=e=>e.variants&&e.variants.length>0,pn=e=>{let t=[{category:e.category,previewUrl:e.previewUrl,image:e.image}];return e.variants&&e.variants.length>0&&t.push(...e.variants),t},mn=({onSelectTheme:e})=>{let t=_t(),[n,r]=(0,Z.useState)(null),[i,a]=(0,Z.useState)(0),o=e=>{r(e),a(e!==null&&fn(e)&&pn(e).length>1?1:0)};return(0,Z.useEffect)(()=>{if(n===null)return;let e=setInterval(()=>{a((i+1)%(pn(n).length||0))},dn);return()=>clearInterval(e)},[n,i]),(0,Q.jsxs)(ut,{children:[(0,Q.jsx)(ut.Title,{children:`Themes`}),(0,Q.jsx)(`div`,{className:`mt-[6vmin] grid grid-cols-1 gap-[6vmin] sm:grid-cols-2 md:grid-cols-3 xl:grid-cols-4`,children:t.map(t=>{let r=fn(t),a=pn(t),s=n===t;return(0,Q.jsxs)(`button`,{className:`flex cursor-pointer flex-col gap-3 text-left`,type:`button`,onClick:()=>{e?.(t)},children:[(0,Q.jsx)(`div`,{className:`relative w-full bg-gray-100 shadow-md transition-all duration-500 hover:scale-[1.05]`,onMouseEnter:()=>o(t),onMouseLeave:()=>o(null),children:r?(0,Q.jsx)(Q.Fragment,{children:a.map((e,n)=>(0,Q.jsx)(`img`,{alt:`${t.name} Theme - ${e.category}`,className:y(`size-full object-contain opacity-0 transition-opacity duration-500`,{"opacity-100":n===i&&s||!s&&n===0,relative:n===i,absolute:n!==i,"left-0":n!==i,"top-0":n!==i}),src:e.image},`theme-variant-${e.category.toLowerCase()}`))}):(0,Q.jsx)(`img`,{alt:`${t.name} Theme`,className:`size-full object-contain`,src:t.image})}),(0,Q.jsxs)(`div`,{className:`relative mt-3`,children:[(0,Q.jsx)(x,{as:`h4`,className:`md:text-xl`,leading:`heading`,size:`lg`,weight:`bold`,children:t.name}),r?a.map((e,t)=>(0,Q.jsx)(`span`,{className:y(`absolute left-0 translate-y-px text-gray-700 opacity-0`,{"opacity-100":t===i&&s||!s&&t===0}),children:e.category},e.category)):(0,Q.jsx)(`span`,{className:`text-gray-700`,children:t.category})]})]},t.name)})}),(0,Q.jsxs)(`div`,{className:`mx-[-8vmin] mt-[8vmin] mb-[-8vmin] bg-black px-[8vmin] py-16 text-center text-lg text-white`,style:{background:`#15171a url(${un}) 100% 100% / 35vw no-repeat`},children:[`Find and buy third-party, premium themes from independent developers in the`,` `,(0,Q.jsx)(`a`,{className:`inline-block font-semibold text-lime`,href:`https://ghost.org/themes/`,rel:`noopener noreferrer`,target:`_blank`,children:`Ghost Marketplace →`})]})]})},hn=({title:e,action:t=`uploaded`,statusMessage:n,installedTheme:r,onActivate:i,onClose:a})=>{let{mutateAsync:o}=Ze(),{refreshActiveThemeData:s}=rn(),c=u(),{data:l}=Ke(),d=Nt(r),p=l?.site?Ye(l.site):void 0,m=r.active?`OK`:Bt(d)?`Activate with errors`:`Activate theme`,h=r.active?(0,Q.jsx)(`span`,{className:`text-green`,children:`It's live!`}):e,g;return g=r.active?(0,Q.jsxs)(Q.Fragment,{children:[`Your theme `,(0,Q.jsx)(`strong`,{children:r.name}),` was saved successfully and is now visible to your readers.`,p?(0,Q.jsxs)(Q.Fragment,{children:[` `,(0,Q.jsx)(`a`,{className:`font-semibold text-foreground hover:underline`,href:p,rel:`noreferrer`,target:`_blank`,children:`Take a look →`})]}):null]}):n||(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`strong`,{children:r.name}),` was `,Vt(t,d),`. Do you want to activate it?`]}),(0,Q.jsx)(pt,{cancelLabel:`Close`,contentClassName:d.length>0?`max-w-[600px]`:void 0,okLabel:m,okRunningLabel:`Activating...`,okVariant:`default`,prompt:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsx)(`p`,{className:`text-base text-foreground`,children:g}),(0,Q.jsx)(tn,{problems:d})]}),stickyFooter:!0,title:h,onOk:async e=>{if(!r.active)try{let e=(await o(r.name)).themes[0];s(),f.success(`Theme activated`,{description:(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`span`,{className:`capitalize`,children:e.name}),` is now your active theme.`]})})}catch(e){c(e);return}i?.(),e?.remove()},onRemove:a})},gn=e=>e.variants&&e.variants.length>0,_n=e=>{let t=[{image:e.image,category:e.category,previewUrl:e.previewUrl}];return e.variants&&e.variants.length>0&&t.push(...e.variants),t},vn=e=>e.category.toLowerCase(),yn=({selectedTheme:e,isInstalling:t,installedTheme:n,onBack:r,onInstall:i})=>{let[a,o]=(0,Z.useState)(`desktop`),[s,c]=(0,Z.useState)(void 0);if(!e)return null;let l=e.previewUrl,u=_n(e).map(e=>({label:e.category,value:vn(e)}));gn(e)&&(s===void 0&&c(u[0].value),l=_n(e).find(e=>vn(e)===s)?.previewUrl||l);let d=`Install ${e.name}`;t?d=`Installing...`:Pe(e)&&!n?.active?d=`Activate ${e.name}`:n&&(d=`Update ${e.name}`);let f=()=>{i?.()},p=(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(Ct,{current:e.name,label:`Change theme`,onBack:r}),gn(e)?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{className:`hidden md:!visible md:!block`,children:`–`}),(0,Q.jsxs)(q,{className:`w-auto`,children:[(0,Q.jsx)(G,{className:`sr-only`,children:`Theme variant`}),(0,Q.jsxs)(H,{value:s,onValueChange:c,children:[(0,Q.jsx)(B,{"aria-label":`Theme variant`,className:`w-auto border-0 bg-transparent shadow-none`,children:(0,Q.jsx)(V,{})}),(0,Q.jsx)(z,{className:`min-w-max`,children:u.map(e=>(0,Q.jsx)(R,{value:e.value,children:e.label},e.value))})]})]})]}):null]}),m=(0,Q.jsxs)(`div`,{className:`flex justify-end gap-8`,children:[(0,Q.jsxs)(b,{gap:`sm`,children:[(0,Q.jsx)(N,{"aria-label":`Desktop preview`,size:`icon`,type:`button`,variant:`ghost`,onClick:()=>o(`desktop`),children:(0,Q.jsx)(ee,{className:a===`desktop`?`text-foreground`:`text-muted-foreground`})}),(0,Q.jsx)(N,{"aria-label":`Mobile preview`,size:`icon`,type:`button`,variant:`ghost`,onClick:()=>o(`mobile`),children:(0,Q.jsx)(O,{className:a===`mobile`?`text-foreground`:`text-muted-foreground`})})]}),(0,Q.jsx)(N,{disabled:t,type:`button`,onClick:f,children:t?`Installing...`:d})]});return(0,Q.jsxs)(`div`,{className:`absolute inset-0 z-[100]`,children:[(0,Q.jsxs)(X,{blurredBackground:!1,className:`z-[100] h-22 min-h-[92px] bg-background p-8`,sticky:!1,children:[(0,Q.jsx)(X.Left,{className:`flex-auto`,children:p}),(0,Q.jsx)(X.Actions,{className:`flex-auto justify-end`,children:m})]}),(0,Q.jsx)(`div`,{className:`flex h-[calc(100%-92px)] grow flex-col items-center justify-center bg-background`,children:a===`desktop`?(0,Q.jsx)(Ce,{device:`desktop`,children:(0,Q.jsx)(`iframe`,{className:`size-full`,src:l,title:`Theme preview`})}):(0,Q.jsx)(Ce,{device:`mobile`,children:(0,Q.jsx)(`iframe`,{className:`size-full`,src:l,title:`Theme preview`})})})]})},bn=({onUpload:e})=>(0,Q.jsx)(ue,{accept:{"application/zip":[`.zip`]},inputId:`theme-upload`,onDropAccepted:([t])=>{e(t)},children:`Click to select or drag & drop zip file`}),xn=({currentTab:e,setCurrentTab:t,themes:n})=>{let{updateRoute:r}=U(),i=gt(),{mutateAsync:o}=ze(),{checkThemeLimitError:s,isThemeLimited:c}=Et(),l=u(),{confirm:d,showLimit:f}=mt(),[p,m]=(0,Z.useState)(),[h,g]=(0,Z.useState)(!1),[_,v]=(0,Z.useState)(null),[y,b]=(0,Z.useState)(null);(0,Z.useEffect)(()=>{(async()=>{if(c){let e=await s(`.`);m({enabled:!1,error:e||`Your current plan doesn't support uploading custom themes.`})}else m({enabled:!0})})()},[s,c]);let x=()=>{r(`/`)},S=e=>{let r=e?.name.replace(/\.zip$/,``),i=n.map(e=>e.name);Pe({name:r})?d({title:`Upload failed`,cancelLabel:`Cancel`,okLabel:``,prompt:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`p`,{children:[`The default `,(0,Q.jsx)(`strong`,{children:r}),` theme cannot be overwritten.`]}),(0,Q.jsx)(`p`,{children:`Rename your zip file and try again.`})]}),onOk:e=>{e?.remove()}}):i.includes(r)?d({title:`Overwrite theme`,prompt:(0,Q.jsxs)(Q.Fragment,{children:[`The theme `,(0,Q.jsx)(`strong`,{children:r}),` already exists. Do you want to overwrite it?`]}),okLabel:`Overwrite`,cancelLabel:`Cancel`,okRunningLabel:`Overwriting...`,okVariant:`destructive`,onOk:async a=>{g(!0);let o=i.indexOf(r);n.splice(o,1),await C({file:e,onActivate:x}),g(!1),t(`installed`),a?.remove()}}):(t(`installed`),C({file:e,onActivate:x}))},C=async({file:e,onActivate:t})=>{let n,r=null;try{g(!0),n=await o({file:e}),g(!1)}catch(e){g(!1),e instanceof a&&e.response?.status===422&&e.data?.errors?r=e.data.errors:l(e)}r&&!n&&v({themeName:e.name.replace(/\.zip$/,``),fatalErrors:r}),n&&b({title:`Upload successful`,action:`uploaded`,installedTheme:n.themes[0],onActivate:t})},w=(0,Q.jsx)(`div`,{className:`hidden md:!visible md:!block`,children:(0,Q.jsx)(I,{value:e,variant:`button`,onValueChange:t,children:(0,Q.jsxs)(F,{children:[(0,Q.jsx)(P,{value:`official`,children:`Official themes`}),(0,Q.jsx)(P,{value:`installed`,children:`Installed`})]})})}),T=()=>{if(p)if(p.enabled){let e={current:null};e.current=d({title:`Upload theme`,prompt:(0,Q.jsx)(bn,{onUpload:t=>{e.current?.remove(),S(t)}}),okLabel:``,formSheet:!1})}else f({title:`Upgrade to enable custom themes`,prompt:p.error||(0,Q.jsxs)(Q.Fragment,{children:[`Your current plan only supports official themes. You can install them from the`,` `,(0,Q.jsx)(`a`,{href:`https://ghost.org/marketplace/`,children:`Ghost theme marketplace`}),`.`]}),onOk:()=>r({route:i,isExternal:!0})})},E=(0,Q.jsx)(`div`,{className:`flex items-center gap-14`,children:(0,Q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Q.jsx)(N,{type:`button`,variant:`outline`,onClick:x,children:`Close`}),(0,Q.jsxs)(N,{disabled:h,type:`button`,onClick:T,children:[h&&(0,Q.jsx)(qe,{size:`sm`}),`Upload theme`]})]})});return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(X,{blurredBackground:!1,className:`sticky -top-px z-50 h-22 min-h-[92px] bg-background p-8`,sticky:!1,children:[(0,Q.jsx)(X.Left,{className:`flex-auto`,children:w}),(0,Q.jsx)(X.Actions,{className:`flex-auto justify-end`,children:E})]}),(0,Q.jsx)(`div`,{className:`px-[8vmin] md:hidden`,children:(0,Q.jsx)(I,{value:e,variant:`button`,onValueChange:t,children:(0,Q.jsxs)(F,{children:[(0,Q.jsx)(P,{value:`official`,children:`Official themes`}),(0,Q.jsx)(P,{value:`installed`,children:`Installed`})]})})}),_&&(0,Q.jsx)(nn,{action:`uploaded`,fatalErrors:_.fatalErrors,okLabel:`Re-upload`,themeName:_.themeName,title:`Theme not uploaded`,onClose:()=>v(null),onRetry:()=>{v(null),T()}}),y&&(0,Q.jsx)(hn,{...y,onClose:()=>b(null)})]})},Sn=({currentTab:e,onSelectTheme:t,themes:n})=>{switch(e){case`official`:return(0,Q.jsx)(mn,{onSelectTheme:t});case`installed`:return(0,Q.jsx)(ln,{themes:n})}return null},Cn=({source:e,themeRef:t})=>{let[n,r]=(0,Z.useState)(`official`),[i,a]=(0,Z.useState)(null),[o,s]=(0,Z.useState)(`desktop`),[c,l]=(0,Z.useState)(!1),[d,p]=(0,Z.useState)(!1),[m,h]=(0,Z.useState)(!1),[g,_]=(0,Z.useState)(null),{updateRoute:v}=U(),y=gt(),{data:{themes:b}={}}=Re(),{mutateAsync:x}=Qe(),{mutateAsync:S}=Ze(),{checkThemeLimitError:C}=Et(),w=u(),{confirm:T,showLimit:E}=mt(),D=e=>{a(e)};if((0,Z.useEffect)(()=>{h(!0)},[]),(0,Z.useEffect)(()=>{(async()=>{if(e&&t&&!d&&m){let e=t.split(`/`)[1];if(await C(e)){v(`theme`);return}let n=b?.map(e=>e.name)||[],r=n.includes(e.toLowerCase()),i=n.indexOf(e.toLowerCase()),a=b?.[i],o=(0,Q.jsxs)(Q.Fragment,{children:[`By clicking below, `,(0,Q.jsx)(`strong`,{children:e}),` will automatically be activated as the theme for your site.`,r&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`br`,{}),(0,Q.jsx)(`br`,{}),`This will overwrite your existing version of `,(0,Q.jsx)(`strong`,{children:e}),a?.active?` which is your active theme`:``,`. All custom changes will be lost.`]})]});T({title:`Install Theme`,prompt:o,okLabel:`Install`,cancelLabel:`Cancel`,okRunningLabel:`Installing...`,okVariant:`default`,onOk:async e=>{let n;p(!0);try{r&&b&&b.splice(i,1),n=await x(t),n?.themes[0]&&(await S(n.themes[0].name),f.success(`Theme activated`,{description:(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`span`,{className:`capitalize`,children:n.themes[0].name}),` is now your active theme`]})})),e?.remove(),v(``)}catch(e){w(e)}}})}})()},[t,e,x,w,S,v,b,d,C,T,m]),!b)return;let O,k;if(i){O=b.find(e=>e.name.toLowerCase()===i.name.toLowerCase()),k=async()=>{let t=await C(i.name);if(t){E({prompt:t,onOk:()=>v({route:y,isExternal:!0})});return}return O&&!Pe(i)?new Promise(t=>{T({title:`Overwrite theme`,prompt:(0,Q.jsxs)(Q.Fragment,{children:[`This will overwrite your existing version of `,i.name,O?.active?`, which is your active theme`:``,`. All custom changes will be lost.`]}),okLabel:`Overwrite`,okRunningLabel:`Installing...`,cancelLabel:`Cancel`,okVariant:`destructive`,onOk:async n=>{n?.remove(),await e(),t()}})}):e()};let e=async()=>{let e=`Installed successfully`,t;if(Pe(i))e=`Activate theme`,t=(0,Q.jsxs)(Q.Fragment,{children:[`Do you want to activate `,(0,Q.jsx)(`strong`,{children:i.name}),` as the theme for your site?`]});else{l(!0);let e;try{e=await x(i.ref)}catch(e){w(e)}finally{l(!1)}if(!e)return;O=e.themes[0]}_({title:e,action:`installed`,statusMessage:t,installedTheme:O,onActivate:()=>{v(``)}})}}return(0,Q.jsxs)(de,{animate:!1,cancelLabel:``,footer:!1,padding:!1,size:`full`,testId:`theme-modal`,title:``,scrolling:!0,onCancel:()=>{v(``)},onClose:()=>{v(``)},children:[(0,Q.jsx)(`div`,{className:`flex h-full justify-between`,children:(0,Q.jsxs)(`div`,{className:`grow`,children:[i&&(0,Q.jsx)(yn,{installedTheme:O,isInstalling:c,selectedTheme:i,onBack:()=>{a(null)},onClose:()=>{v(``)},onInstall:k}),(0,Q.jsx)(xn,{currentTab:n,previewMode:o,selectedTheme:i,setCurrentTab:r,setPreviewMode:s,setSelectedTheme:a,themes:b}),!i&&(0,Q.jsx)(Sn,{currentTab:n,themes:b,onSelectTheme:D})]})}),g&&(0,Q.jsx)(hn,{...g,onClose:()=>_(null)})]})},wn=e(n(),1),Tn=({children:e,to:t,classNames:n})=>{let r=t||document.body;return r?(0,wn.createPortal)((0,Q.jsx)(`div`,{className:n,onMouseDown:e=>{e.stopPropagation()},children:(0,Q.jsx)(`div`,{children:e})}),r):(0,Q.jsx)(Q.Fragment,{children:e})},En=({unsplashProviderConfig:e,onClose:t,onImageInsert:n})=>(0,Q.jsx)(Tn,{classNames:`settings-app`,children:(0,Q.jsx)(dt,{unsplashProviderConfig:e,onClose:t,onImageInsert:n})}),Dn={heading:[{name:`Cardo`,creator:`David Perry`},{name:`Chakra Petch`,creator:`Cadson Demak`},{name:`Fira Mono`,creator:`Carrois Apostrophe`},{name:`Fira Sans`,creator:`Carrois Apostrophe`},{name:`IBM Plex Serif`,creator:`Mike Abbink`},{name:`Inter`,creator:`Rasmus Andersson`},{name:`JetBrains Mono`,creator:`JetBrains`},{name:`Libre Baskerville`,creator:`Impallari Type`},{name:`Lora`,creator:`Cyreal`},{name:`Manrope`,creator:`Mikhail Sharanda`},{name:`Merriweather`,creator:`Sorkin Type`},{name:`Noto Sans`,creator:`Google`},{name:`Noto Serif`,creator:`Google`},{name:`Nunito`,creator:`Vernon Adams`},{name:`Old Standard TT`,creator:`Alexey Kryukov`},{name:`Poppins`,creator:`Indian Type Foundry`},{name:`Roboto`,creator:`Christian Robertson`},{name:`Rufina`,creator:`Martin Sommaruga`},{name:`Space Grotesk`,creator:`Florian Karsten`},{name:`Space Mono`,creator:`Colophon Foundry`},{name:`Tenor Sans`,creator:`Denis Masharov`}],body:[{name:`Fira Mono`,creator:`Carrois Apostrophe`},{name:`Fira Sans`,creator:`Carrois Apostrophe`},{name:`IBM Plex Serif`,creator:`Mike Abbink`},{name:`Inter`,creator:`Rasmus Andersson`},{name:`JetBrains Mono`,creator:`JetBrains`},{name:`Lora`,creator:`Cyreal`},{name:`Manrope`,creator:`Mikhail Sharanda`},{name:`Merriweather`,creator:`Sorkin Type`},{name:`Noto Sans`,creator:`Google`},{name:`Noto Serif`,creator:`Google`},{name:`Nunito`,creator:`Vernon Adams`},{name:`Poppins`,creator:`Indian Type Foundry`},{name:`Roboto`,creator:`Christian Robertson`},{name:`Space Mono`,creator:`Colophon Foundry`}]},$=`Theme default`,On=({option:e,selected:t})=>(0,Q.jsxs)(`span`,{className:`flex w-full items-center gap-4 ${e.className??``}`,"data-testid":t?`select-current-option`:`select-option`,"data-value":e.value,children:[(0,Q.jsx)(`span`,{className:`flex size-12 shrink-0 items-center justify-center rounded-md border border-border-default bg-surface-elevated text-2xl font-bold shadow-xs`,children:`Aa`}),(0,Q.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,Q.jsx)(`span`,{className:`text-md`,children:e.label}),(0,Q.jsx)(`span`,{className:`truncate font-sans text-sm font-normal text-muted-foreground`,children:e.hint})]})]}),kn=e=>e.split(` `).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `),An=({values:e,updateSetting:t})=>{let{mutateAsync:n}=at(),{settings:r}=ht(),[a]=Ge(r,[`unsplash`]),[o,s]=(0,Z.useState)(!1),{unsplashConfig:c}=i(),l=u(),d=async(e,r)=>{try{t(e,lt(await n({file:r})))}catch(e){let t=e;t.response.status===415&&(t.message=`Unsupported file type`),l(t)}},f=xt(),{data:p}=Re(),m=p?.themes.find(e=>e.active),h=m?`${kn(m.name)} (v${m.package?.version||`1.0`})`:`Loading...`,[g,_]=(0,Z.useState)(Dn.heading.find(t=>t.name===e.headingFont)||{name:$,creator:h}),[b,x]=(0,Z.useState)(Dn.heading.find(t=>t.name===e.bodyFont)||{name:$,creator:h}),S=(e,t=!0)=>{let n=``;return e===`Cardo`?n=y(`font-cardo`,t&&`font-bold`):e===`Manrope`?n=y(`font-manrope`,t&&`font-bold`):e===`Merriweather`?n=y(`font-merriweather`,t&&`font-bold`):e===`Nunito`?n=y(`font-nunito`,t&&`font-semibold`):e===`Old Standard TT`?n=y(`font-old-standard-tt`,t&&`font-bold`):e===`Prata`?n=y(`font-prata`,t&&`font-normal`):e===`Roboto`?n=y(`font-roboto`,t&&`font-bold`):e===`Rufina`?n=y(`font-rufina`,t&&`font-bold`):e===`Tenor Sans`?n=y(`font-tenor-sans`,t&&`font-normal`):e===`Chakra Petch`?n=y(`font-chakra-petch`,t&&`font-normal`):e===`Fira Mono`?n=y(`font-fira-mono`,t&&`font-bold`):e===`Fira Sans`?n=y(`font-fira-sans`,t&&`font-bold`):e===`IBM Plex Serif`?n=y(`font-ibm-plex-serif`,t&&`font-bold`):e===`Inter`?n=y(`font-inter`,t&&`font-bold`):e===`JetBrains Mono`?n=y(`font-jetbrains-mono`,t&&`font-bold`):e===`Lora`?n=y(`font-lora`,t&&`font-bold`):e===`Noto Sans`?n=y(`font-noto-sans`,t&&`font-bold`):e===`Noto Serif`?n=y(`font-noto-serif`,t&&`font-bold`):e===`Poppins`?n=y(`font-poppins`,t&&`font-bold`):e===`Space Grotesk`?n=y(`font-space-grotesk`,t&&`font-bold`):e===`Space Mono`&&(n=y(`font-space-mono`,t&&`font-bold`)),n},C=Dn.heading.map(e=>{let t=S(e.name,!0);return{label:e.name,value:e.name,hint:e.creator,className:t}});C.unshift({label:$,value:$,hint:h,className:`font-sans font-normal`});let w=Dn.body.map(e=>{let t=S(e.name,!1);return{label:e.name,value:e.name,hint:e.creator,className:t}});w.unshift({label:$,value:$,hint:h,className:`font-sans font-normal`});let E=(e,t)=>e===$?``:S(e,t),D=C.find(e=>e.value===g.name)||C[0],O=w.find(e=>e.value===b.name)||w[0];return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(ye,{className:`mt-6 mb-12 gap-6`,children:[(0,Q.jsx)(yt,{debounceMs:200,direction:`rtl`,testId:`accent-color-picker`,title:(0,Q.jsx)(`div`,{children:`Accent color`}),value:e.accentColor,onChange:e=>t(`accent_color`,e)}),(0,Q.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`div`,{children:`Publication icon`}),(0,Q.jsxs)(K,{className:`mr-5 max-w-[160px]`,children:[`A square, social icon, at least `,v(60),`×`,v(60),`px`]})]}),(0,Q.jsx)(`div`,{className:`flex gap-3`,children:(0,Q.jsx)(st,{className:e.icon?`size-16.5`:`h-9 w-40`,children:e.icon?(0,Q.jsxs)(rt,{background:`checkerboard`,children:[(0,Q.jsx)(ct,{id:`logo`,src:e.icon}),(0,Q.jsx)(nt,{className:`top-1 right-1`,children:(0,Q.jsx)(it,{"aria-label":`Remove publication icon`,"data-testid":`image-delete-button`,onClick:()=>t(`icon`,null),children:(0,Q.jsx)(T,{})})})]}):(0,Q.jsx)(ot,{inputId:`logo`,onDropAccepted:([e])=>void d(`icon`,e),children:`Upload icon`})})})]}),(0,Q.jsxs)(`div`,{className:`flex items-start justify-between ${e.icon&&`mt-2`}`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`div`,{children:`Publication logo`}),(0,Q.jsx)(K,{className:`mr-5 max-w-[160px]`,children:`Appears usually in the main header of your theme`})]}),(0,Q.jsx)(`div`,{children:(0,Q.jsx)(st,{className:`h-15 w-40`,children:e.logo?(0,Q.jsxs)(rt,{background:`checkerboard`,children:[(0,Q.jsx)(ct,{className:`object-contain`,id:`site-logo`,src:e.logo}),(0,Q.jsx)(nt,{className:`top-1 right-1`,children:(0,Q.jsx)(it,{"aria-label":`Remove publication logo`,"data-testid":`image-delete-button`,onClick:()=>t(`logo`,null),children:(0,Q.jsx)(T,{})})})]}):(0,Q.jsx)(ot,{inputId:`site-logo`,onDropAccepted:([e])=>void d(`logo`,e),children:`Upload logo`})})})]}),(0,Q.jsxs)(`div`,{className:`mt-2 flex items-start justify-between`,"data-testid":`publication-cover`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`div`,{children:`Publication cover`}),(0,Q.jsx)(K,{className:`mr-5 max-w-[160px]`,children:`Usually as a large banner image on your index pages`})]}),(0,Q.jsx)(st,{className:`h-23.75 w-40`,children:e.coverImage?(0,Q.jsxs)(rt,{children:[(0,Q.jsx)(ct,{id:`cover`,src:e.coverImage}),(0,Q.jsxs)(nt,{className:`top-1 right-1`,children:[f.isEnabled&&(0,Q.jsx)(it,{"aria-label":`Edit publication cover`,onClick:()=>f.openEditor({image:e.coverImage||``,handleSave:async e=>{try{t(`cover_image`,lt(await n({file:e})))}catch(e){l(e)}}}),children:(0,Q.jsx)(A,{})}),(0,Q.jsx)(it,{"aria-label":`Remove publication cover`,"data-testid":`image-delete-button`,onClick:()=>t(`cover_image`,null),children:(0,Q.jsx)(T,{})})]})]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(ot,{inputId:`cover`,onDropAccepted:([e])=>void d(`cover_image`,e),children:`Upload cover`}),a&&(0,Q.jsx)(nt,{className:`top-1 right-1 opacity-100`,children:(0,Q.jsx)(it,{"aria-label":`Select publication cover from Unsplash`,"data-testid":`toggle-unsplash-button`,onClick:()=>s(!0),children:(0,Q.jsx)(ne,{})})})]})}),o&&c&&a&&(0,Q.jsx)(En,{unsplashProviderConfig:c,onClose:()=>{s(!1)},onImageInsert:e=>{e.src&&t(`cover_image`,e.src),s(!1)}})]})]}),(0,Q.jsxs)(be,{className:`-mt-4 gap-0`,children:[(0,Q.jsx)(Se,{className:`mb-4 text-md! leading-supertight font-bold md:text-lg!`,children:`Typography`}),(0,Q.jsxs)(ye,{className:`mb-12 gap-6`,children:[(0,Q.jsxs)(q,{children:[(0,Q.jsx)(G,{children:`Heading font`}),(0,Q.jsxs)(H,{value:D.value,onValueChange:e=>{e===$?(_({name:$,creator:h}),t(`heading_font`,``)):(_({name:e,creator:Dn.heading.find(t=>t.name===e)?.creator||``}),t(`heading_font`,e))},children:[(0,Q.jsx)(B,{"aria-label":`Heading font`,className:`h-16 pl-2 text-left ${E(D.label,!0)}`,"data-testid":`heading-font-select`,children:(0,Q.jsx)(V,{children:(0,Q.jsx)(On,{option:D,selected:!0})})}),(0,Q.jsx)(z,{children:C.map(e=>(0,Q.jsx)(R,{value:e.value,children:(0,Q.jsx)(On,{option:e})},e.value))})]})]}),(0,Q.jsxs)(q,{children:[(0,Q.jsx)(G,{children:`Body font`}),(0,Q.jsxs)(H,{value:O.value,onValueChange:e=>{e===$?(x({name:$,creator:h}),t(`body_font`,``)):(x({name:e,creator:Dn.body.find(t=>t.name===e)?.creator||``}),t(`body_font`,e))},children:[(0,Q.jsx)(B,{"aria-label":`Body font`,className:`h-16 pl-2 text-left ${E(O.label,!1)}`,"data-testid":`body-font-select`,children:(0,Q.jsx)(V,{children:(0,Q.jsx)(On,{option:O,selected:!0})})}),(0,Q.jsx)(z,{className:`max-h-52`,children:w.map(e=>(0,Q.jsx)(R,{value:e.value,children:(0,Q.jsx)(On,{option:e})},e.value))})]})]})]})]})]})},jn=e(ft(),1);function Mn(e,t){return e.visibility?(0,jn.default)(e.visibility).queryJSON(t):!0}function Nn({description:e,accentColor:t,icon:n,logo:r,coverImage:i,themeSettings:a,bodyFont:o,headingFont:s}){if(!a)return;let c=a.reduce((e,{key:t,value:n})=>({...e,[t]:n}),{}),l=new URLSearchParams;l.append(`c`,t),l.append(`d`,e),l.append(`icon`,n),l.append(`logo`,r),l.append(`cover`,i),l.append(`bf`,o),l.append(`hf`,s);let u={};return a.forEach(e=>{u[e.key]=Mn(e,c)?e.value:null}),l.append(`custom`,JSON.stringify(u)),l.toString()}var Pn=({settings:e,url:t,isVisible:n=!0})=>{let r=Nn({...e});return(0,Q.jsx)(St,{addDelay:!1,className:`absolute -top-px -left-px size-[calc(110%_+_3px)] origin-top-left scale-[.90909] bg-white max-[1600px]:size-[calc(130%_+_3px)] max-[1600px]:scale-[.76923]`,generateContent:(0,Z.useCallback)(e=>{if(!t||!r)return;let n=new URL(t);n.searchParams.set(`admin_toolbar`,`0`),fetch(n.toString(),{method:`POST`,headers:{"Content-Type":`text/html;charset=utf-8`,"x-ghost-preview":r,Accept:`text/html`},mode:`cors`,credentials:`include`}).then(e=>e.text()).then(t=>{let n=`html { pointer-events: none; }`,r=new DOMParser().parseFromString(t,`text/html`),i=r.querySelector(`style`),a=i?.innerHTML;a?i.innerHTML=`${a}\n\n${n}`:r.head.innerHTML+=`<style>${n}</style>`;let o=(r.doctype?new XMLSerializer().serializeToString(r.doctype):``)+r.documentElement.outerHTML;e.contentDocument?.open(),e.contentDocument?.write(o),e.contentDocument?.close()})},[r,t]),height:`100%`,parentClassName:`absolute inset-0 overflow-hidden ${n?`z-10 opacity-100`:`z-0 opacity-0 pointer-events-none`}`,testId:`theme-preview`,width:`100%`})},Fn=({setting:e,setSetting:t})=>{let[n,r]=(0,Z.useState)({});(0,Z.useEffect)(()=>{let t=e.value===null?``:String(e.value);r(n=>({...n,[e.key]:t}))},[e]);let i=e=>{n[e]!==void 0&&t(n[e])},a=(e,t)=>{r(n=>({...n,[e]:t}))},{mutateAsync:o}=at(),s=u(),c=async e=>{try{t(lt(await o({file:e})))}catch(e){s(e)}};switch(e.type){case`text`:return(0,Q.jsxs)(q,{children:[(0,Q.jsx)(G,{htmlFor:`theme-setting-${e.key}`,children:Ve(e.key)}),(0,Q.jsx)(Xe,{id:`theme-setting-${e.key}`,value:n[e.key]||``,onBlur:()=>i(e.key),onChange:t=>a(e.key,t.target.value)}),e.description&&(0,Q.jsx)(K,{children:e.description})]});case`boolean`:return(0,Q.jsxs)(q,{orientation:`horizontal`,children:[(0,Q.jsxs)(xe,{children:[(0,Q.jsx)(G,{htmlFor:`theme-setting-${e.key}`,children:Ve(e.key)}),e.description&&(0,Q.jsx)(K,{children:e.description})]}),(0,Q.jsx)(L,{checked:!!e.value,id:`theme-setting-${e.key}`,onCheckedChange:t})]});case`select`:return(0,Q.jsxs)(q,{children:[(0,Q.jsx)(G,{children:Ve(e.key)}),(0,Q.jsxs)(H,{value:e.value,onValueChange:t,children:[(0,Q.jsx)(B,{"aria-label":Ve(e.key),"data-testid":`setting-select-${e.key}`,children:(0,Q.jsx)(V,{})}),(0,Q.jsx)(z,{children:e.options.map(e=>(0,Q.jsx)(R,{value:e,children:e},e))})]}),e.description&&(0,Q.jsx)(K,{children:e.description})]});case`color`:return(0,Q.jsx)(yt,{debounceMs:200,direction:`rtl`,hint:e.description,title:Ve(e.key),value:e.value||``,onChange:e=>t(e)});case`image`:return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(G,{children:Ve(e.key)}),(0,Q.jsx)(st,{className:e.value?`h-25`:`h-8`,children:e.value?(0,Q.jsxs)(rt,{children:[(0,Q.jsx)(ct,{id:`custom-${e.key}`,src:e.value}),(0,Q.jsx)(nt,{children:(0,Q.jsx)(it,{"aria-label":`Remove image`,onClick:()=>t(null),children:(0,Q.jsx)(T,{})})})]}):(0,Q.jsx)(ot,{inputId:`custom-${e.key}`,onDropAccepted:e=>void c(e[0]),children:`Upload image`})}),e.description&&(0,Q.jsx)(K,{children:e.description})]})}},In={source:[`title_font`,`body_font`],casper:[`title_font`,`body_font`],alto:[`title_font`,`body_font`],bulletin:[`title_font`,`body_font`],dawn:[`title_font`,`body_font`],digest:[`title_font`,`body_font`],dope:[`title_font`,`body_font`],ease:[`title_font`,`body_font`],edge:[`title_font`,`body_font`],edition:[`title_font`,`body_font`],episode:[`typography`],headline:[`title_font`,`body_font`],journal:[`title_font`,`body_font`],london:[`title_font`,`body_font`],ruby:[`title_font`,`body_font`],solo:[`typography`],taste:[`style`],wave:[`title_font`,`body_font`]},Ln=({sections:e,updateSetting:t})=>{let{data:n}=Re(),r=n?.themes.find(e=>e.active),i=r?.package.name?.toLowerCase()||``,a=r?.package.author?.name||``,{supportsCustomFonts:o}=rn();return(0,Q.jsx)(Q.Fragment,{children:e.map(e=>{let n=e.settings.filter(t=>Mn(t,e.settings.reduce((e,{key:t,value:n})=>({...e,[t]:n}),{}))),r;return(0,Q.jsxs)(be,{className:`gap-0 first-of-type:mt-6`,children:[(0,Q.jsx)(Se,{className:`mb-4 text-md! leading-supertight font-bold md:text-lg!`,children:e.title}),(0,Q.jsx)(ye,{className:`mb-12 gap-4`,children:n.map(e=>{let n=``;e.type===`boolean`&&r!==`boolean`&&r!==void 0&&(n=`mt-3`),(e.type===`text`||e.type===`select`)&&(r===`text`||r===`select`)&&(n=`mt-2`);let s=In[i];return s&&s.includes(e.key)&&a===`Ghost Foundation`&&o&&(n+=` hidden`),r=e.type,(0,Q.jsx)(`div`,{className:n,children:(0,Q.jsx)(Fn,{setSetting:n=>t({...e,value:n}),setting:e},e.key)},e.key)})})]},e.id)})})},Rn=({globalSettings:e,themeSettingSections:t,updateGlobalSetting:n,updateThemeSetting:r,onTabChange:i})=>{let[a,o]=(0,Z.useState)(`global`);return(0,Q.jsx)(`div`,{className:`flex h-full flex-col justify-between`,children:(0,Q.jsx)(`div`,{className:`grow p-7 pt-0`,"data-testid":`design-setting-tabs`,children:t.length>0?(0,Q.jsxs)(I,{value:a,variant:`underline`,onValueChange:e=>{o(e),i(e)},children:[(0,Q.jsxs)(F,{className:`sticky top-0 z-50 bg-surface-elevated-2`,children:[(0,Q.jsx)(P,{value:`global`,children:`Brand`}),(0,Q.jsx)(P,{value:`theme-settings`,children:`Theme`})]}),(0,Q.jsx)(le,{value:`global`,children:(0,Q.jsx)(An,{updateSetting:n,values:e})}),(0,Q.jsx)(le,{value:`theme-settings`,children:(0,Q.jsx)(Ln,{sections:t,updateSetting:r})})]}):(0,Q.jsx)(An,{updateSetting:n,values:e})})})},zn=()=>{let{settings:e,siteData:t}=ht(),{mutateAsync:n}=tt(),{data:{posts:[r]}={posts:[]}}=m({searchParams:{filter:`status:published`,order:`published_at DESC`,limit:`1`,fields:`id,url`}}),{data:i}=We(),{mutateAsync:a}=et(),o=u(),[s,c]=(0,Z.useState)(`homepage`),[l,d]=(0,Z.useState)(`desktop`),{updateRoute:f}=U(),h=g(),_=wt().getParam(`ref`),{formState:v,saveState:y,handleSave:b,updateForm:x,setFormState:S,okProps:C}=p({initialState:{settings:e,themeSettings:i?.custom_theme_settings},savingDelay:500,onSave:async()=>{if(v.themeSettings?.some(e=>e.dirty)){let e=await a(v.themeSettings);S(t=>({...t,themeSettings:e.custom_theme_settings}))}if(v.settings.some(e=>e.dirty)){let{settings:e}=await n(v.settings.filter(e=>e.dirty));S(t=>({...t,settings:e}))}},onSaveError:o});(0,Z.useEffect)(()=>{i&&S(e=>({...e,themeSettings:i.custom_theme_settings}))},[S,i]);let w=(e,t)=>{x(n=>({...n,settings:n.settings.map(n=>n.key===e?{...n,value:t,dirty:!0}:n)}))},T=e=>{x(t=>({...t,themeSettings:t.themeSettings?.map(t=>t.key===e.key?{...e,dirty:!0}:t)}))},[E,D,k,te,A,ne,j]=Ge(v.settings,[`description`,`accent_color`,`icon`,`logo`,`cover_image`,`heading_font`,`body_font`]),re=(v.themeSettings||[]).reduce((e,t)=>{let n=t.group===`homepage`||t.group===`post`?t.group:`site-wide`;return{...e,[n]:(e[n]||[]).concat(t)}},{}),ie=Object.entries(re).map(([e,t])=>({id:e,settings:t||[],title:e===`site-wide`?`Site wide`:e===`homepage`?`Homepage`:`Post`})),M=e=>{r&&c(e)},N=e=>{c(e===`post`&&r?`post`:`homepage`)},ae=[{id:`homepage`,url:Ye(t)},...r?[{id:`post`,url:r.url}]:[]],oe={description:E,accentColor:D,icon:k,logo:te,coverImage:A,themeSettings:v.themeSettings,headingFont:ne,bodyFont:j},se=(0,Q.jsx)(`div`,{className:`relative size-full`,children:ae.map(({id:e,url:t})=>(0,Q.jsx)(Pn,{isVisible:s===e,settings:oe,url:t},e))}),ce=l===`desktop`?(0,Q.jsx)(Ce,{"data-testid":`preview-desktop`,device:`desktop`,children:se}):(0,Q.jsx)(Ce,{"data-testid":`preview-mobile`,device:`mobile`,children:se}),le=r?(0,Q.jsx)(I,{value:s,variant:`button`,onValueChange:M,children:(0,Q.jsxs)(F,{children:[(0,Q.jsx)(P,{value:`homepage`,children:`Homepage`}),(0,Q.jsx)(P,{value:`post`,children:`Post`})]})}):void 0,L=(0,Q.jsxs)(Te,{size:`default`,type:`single`,value:l,onValueChange:e=>{(e===`desktop`||e===`mobile`)&&d(e)},children:[(0,Q.jsx)(we,{"aria-label":`Desktop`,value:`desktop`,children:(0,Q.jsx)(ee,{})}),(0,Q.jsx)(we,{"aria-label":`Mobile`,value:`mobile`,children:(0,Q.jsx)(O,{})})]}),ue=(0,Q.jsx)(Rn,{globalSettings:{description:E,accentColor:D,icon:k,logo:te,coverImage:A,headingFont:ne,bodyFont:j},handleSave:b,themeSettingSections:ie,updateGlobalSetting:w,updateThemeSetting:T,onTabChange:N});return(0,Q.jsx)(bt,{buttonsDisabled:C.disabled,cancelLabel:`Close`,deviceSelector:L,dirty:y===`unsaved`,okLabel:C.label||`Save`,okVariant:C.variant,preview:ce,previewToolbarTabs:le,sidebar:ue,sidebarPadding:!1,siteLink:Ye(t),size:`full`,testId:`design-modal`,title:`Design`,onClose:()=>{_===`setup`?h(`/analytics`):f(`design`)},onOk:async()=>{await b({fakeWhenUnchanged:!0})}})},Bn=({title:e,prompt:t,cancelLabel:n=`Cancel`,okLabel:r=`OK`,okVariant:i=`default`,onResolve:a})=>(0,Q.jsx)(de,{backDropClick:!1,cancelLabel:n,okLabel:r,okVariant:i,testId:`theme-editor-confirm-modal`,title:e,width:540,onCancel:()=>a(!1),onClose:()=>a(!1),onOk:()=>a(!0),children:(0,Q.jsx)(`div`,{className:`py-4`,children:t})}),Vn=({title:e,prompt:t,fieldTitle:n,initialValue:r,placeholder:i,cancelLabel:a=`Cancel`,okLabel:o=`Continue`,onResolve:s})=>{let[c,l]=(0,Z.useState)(r);return(0,Q.jsx)(de,{backDropClick:!1,cancelLabel:a,okDisabled:!c.trim(),okLabel:o,testId:`theme-editor-input-modal`,title:e,width:540,onCancel:()=>s(null),onClose:()=>s(null),onOk:()=>s(c),children:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4 py-4`,children:[t,(0,Q.jsxs)(q,{children:[(0,Q.jsx)(G,{htmlFor:`theme-editor-input`,children:n}),(0,Q.jsx)(Xe,{id:`theme-editor-input`,placeholder:i,value:c,autoFocus:!0,onChange:e=>l(e.target.value)})]})]})})},Hn=`inline-flex items-center gap-2 rounded-md border px-3 py-1.5 text-[13px] font-medium transition-colors focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#4a9eff] disabled:cursor-not-allowed disabled:opacity-50`,Un=`${Hn} border-[#2f333b] bg-transparent text-[#e6e7ea] hover:bg-[#1f2228]`,Wn=`${Hn} border-transparent bg-green text-black hover:bg-green-400`,Gn=({currentThemeName:e,changes:t,isSaving:n,onClose:r,onSave:i})=>(0,Q.jsxs)(`div`,{className:`flex items-center gap-3 border-b border-[#23262c] bg-[#1a1d21] px-4 py-3`,children:[(0,Q.jsxs)(`div`,{className:`flex min-w-0 items-baseline gap-2`,children:[(0,Q.jsx)(`h2`,{className:`truncate text-[14px] font-semibold text-[#f4f5f7]`,children:`Edit theme`}),(0,Q.jsx)(`span`,{className:`truncate text-[12px] text-[#8a8f98]`,children:e})]}),t.length>0&&(0,Q.jsxs)(`span`,{className:`rounded-full border border-transparent bg-[#3b2a16] px-2.5 py-1 text-[11px] leading-none text-[#f5a623]`,children:[v(t.length),` `,t.length===1?`file modified`:`files modified`]}),(0,Q.jsx)(`div`,{className:`grow`}),(0,Q.jsxs)(`button`,{className:Un,type:`button`,onClick:r,children:[(0,Q.jsx)(k,{size:14}),`Close`]}),(0,Q.jsxs)(`button`,{className:Wn,disabled:n,type:`button`,onClick:i,children:[(0,Q.jsx)(M,{size:14}),n?`Saving…`:`Save`]})]}),Kn=e=>{let t={type:`dir`,name:``,path:``,children:new Map};for(let n of Object.keys(e).sort()){let r=n.split(`/`),i=t;for(let t=0;t<r.length;t+=1){let a=r[t];if(t===r.length-1){i.children.set(a,{type:`file`,name:a,path:n,editable:e[n].editable});continue}let o=`${r.slice(0,t+1).join(`/`)}/`,s=i.children.get(a);if(s?.type===`dir`){i=s;continue}let c={type:`dir`,name:a,path:o,children:new Map};i.children.set(a,c),i=c}}return t},qn=e=>e.sort((e,t)=>e.type===t.type?e.name.localeCompare(t.name):e.type===`dir`?-1:1),Jn=`inline-flex h-5 w-5 items-center justify-center rounded-sm text-[#c8ccd3] transition-opacity hover:opacity-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#4a9eff] disabled:cursor-not-allowed disabled:opacity-30`,Yn=({currentFiles:e,selectedNode:t,setSelectedNode:n,expandedDirectories:r,setExpandedDirectories:i,changesMap:a,isLoading:o,onCreateFile:s,onRenameSelected:c,onDeleteSelected:l,onOpenFile:u})=>{let d=(e,o=0)=>{if(e.type===`file`){let n=t?.type===`file`&&t.path===e.path,r=a.get(e.path);return(0,Q.jsxs)(`button`,{className:`flex min-h-6 w-full items-center gap-1.5 rounded px-2 py-1 text-left text-[13px] leading-5 ${n?`bg-[#243043] text-white`:`text-[#c8ccd3] hover:bg-[#1f2228]`} ${e.editable?``:`opacity-70`}`,style:{paddingLeft:`${o*14+8}px`},type:`button`,onClick:()=>u(e.path),children:[(0,Q.jsx)(`span`,{className:`w-3 shrink-0`}),(0,Q.jsx)(ie,{size:14}),(0,Q.jsx)(`span`,{className:`min-w-0 grow truncate`,children:e.name}),r&&(0,Q.jsx)(`span`,{className:`mr-1 size-1.5 shrink-0 rounded-full ${r===`deleted`?`bg-[#ff6b6b]`:r===`added`?`bg-[#14b886]`:`bg-[#f5a623]`}`})]},e.path)}let s=r.has(e.path),c=t?.type===`dir`&&t.path===e.path,l=qn(Array.from(e.children?.values()||[]));return(0,Q.jsxs)(`div`,{children:[e.path&&(0,Q.jsxs)(`button`,{className:`flex min-h-6 w-full items-center gap-1.5 rounded px-2 py-1 text-left text-[13px] leading-5 ${c?`bg-[#202630] text-white`:`text-[#c8ccd3] hover:bg-[#1f2228]`}`,style:{paddingLeft:`${o*14+8}px`},type:`button`,onClick:()=>{n({type:`dir`,path:e.path}),i(t=>{let n=new Set(t);return n.has(e.path)?n.delete(e.path):n.add(e.path),n})},children:[s?(0,Q.jsx)(ae,{className:`shrink-0 text-[#6a6f78]`,size:12}):(0,Q.jsx)(S,{className:`shrink-0 text-[#6a6f78]`,size:12}),s?(0,Q.jsx)(w,{className:`shrink-0 text-[#8a8f98]`,size:14}):(0,Q.jsx)(D,{className:`shrink-0 text-[#8a8f98]`,size:14}),(0,Q.jsx)(`span`,{className:`truncate`,children:e.name})]}),(e.path===``||s)&&(0,Q.jsx)(`div`,{children:l.map(t=>d(t,e.path?o+1:o))})]},e.path||`root`)};return(0,Q.jsxs)(`aside`,{className:`flex w-[280px] shrink-0 flex-col border-r border-[#23262c] bg-[#16181c]`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-2 border-b border-[#23262c] px-3 py-2`,children:[(0,Q.jsxs)(`div`,{className:`text-[12px] font-medium text-[#c8ccd3]`,children:[Object.keys(e).length,` files`]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(`button`,{"aria-label":`New file`,className:Jn,type:`button`,onClick:s,children:(0,Q.jsx)(j,{size:13})}),(0,Q.jsx)(`button`,{"aria-label":`Rename selected item`,className:Jn,disabled:!t,type:`button`,onClick:c,children:(0,Q.jsx)(A,{size:13})}),(0,Q.jsx)(`button`,{"aria-label":`Delete selected item`,className:Jn,disabled:!t,type:`button`,onClick:l,children:(0,Q.jsx)(T,{size:13})})]})]}),(0,Q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-2`,children:o?(0,Q.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3 text-center text-[13px] text-[#8a8f98]`,children:[(0,Q.jsx)(`div`,{className:`size-5 animate-spin rounded-full border-2 border-[#2f333b] border-t-[#14b886]`}),(0,Q.jsx)(`span`,{children:`Loading theme files…`})]}):Object.keys(e).length===0?(0,Q.jsx)(`div`,{className:`px-3 py-4 text-[12px] text-[#8a8f98]`,children:`This theme archive does not contain any files.`}):d(Kn(e))})]})},Xn=e(Tt(),1),Zn=e=>{if(!e.startsWith(`theme/edit/`))return{themeName:null,isInvalid:!1};let t=e.slice(11).split(`?`)[0];if(!t||t.includes(`/`))return{themeName:null,isInvalid:!0};try{let e=decodeURIComponent(t);return!e||e.includes(`/`)?{themeName:null,isInvalid:!0}:{themeName:e,isInvalid:!1}}catch{return{themeName:null,isInvalid:!0}}},Qn={maxFiles:1e3,maxExtractedBytes:32*1024*1024},$n=class extends Error{reason;constructor(e,t){super(t),this.name=`ThemeArchiveExtractionError`,this.reason=e}},er=new Set([`css`,`cjs`,`hbs`,`handlebars`,`htm`,`html`,`js`,`json`,`less`,`md`,`markdown`,`mjs`,`sass`,`scss`,`svg`,`txt`,`xml`,`yaml`,`yml`]),tr=new Set([`.editorconfig`,`.eslintignore`,`.eslintrc`,`.gitattributes`,`.gitignore`,`.npmignore`,`.prettierignore`,`.prettierrc`,`CODEOWNERS`,`LICENSE`,`LICENCE`,`NOTICE`,`Procfile`]),nr=e=>{if(er.has(rr(e)))return!0;let t=e.split(`/`).at(-1)||e;return tr.has(t)},rr=e=>{let t=e.lastIndexOf(`.`);return t===-1?``:e.slice(t+1).toLowerCase()},ir=e=>{let t=e.trim().replace(/^\/+/,``).replace(/\/+/g,`/`);if(!t)return null;let n=t.split(`/`).filter(Boolean);return n.length===0||n.some(e=>e===`.`||e===`..`)?null:n.join(`/`)},ar=e=>[`casper`,`source`].includes(e.toLowerCase()),or=e=>{if(e.length===0)return``;let t=e[0].indexOf(`/`);if(t<=0)return``;let n=e[0].slice(0,t+1);return e.every(e=>e.startsWith(n))?n:``},sr=e=>Object.fromEntries(Object.entries(e).map(([e,t])=>[e,{...t,date:new Date(t.date),binary:t.binary?new Uint8Array(t.binary):null}])),cr=`Failed to open the theme archive. Download the theme again and retry.`,lr=e=>{let t=e/(1024*1024);return Number.isInteger(t)?`${t} MB`:`${t.toFixed(1)} MB`},ur=e=>{let t=[];return e.forEach((e,n)=>{n.dir||t.push([e,n])}),t},dr=e=>{if(e.length>Qn.maxFiles)throw new $n(`too_many_files`,`This theme archive contains too many files for the browser editor (${e.length}/${Qn.maxFiles}).`)},fr=async e=>{try{return await Xn.default.loadAsync(e)}catch{throw new $n(`invalid_archive`,cr)}},pr=async e=>{try{return await e.async(`uint8array`)}catch{throw new $n(`invalid_archive`,cr)}},mr=async e=>{try{return await e.async(`string`)}catch{throw new $n(`invalid_archive`,cr)}},hr=e=>{let t=ir(e);if(!t||t!==e)throw new $n(`invalid_archive`,cr);return t},gr=(e,t)=>{let n=e+t;if(n>Qn.maxExtractedBytes)throw new $n(`too_large`,`This theme archive is too large to open in the browser editor. Extracted files must stay under ${lr(Qn.maxExtractedBytes)}.`);return n},_r=async e=>{let t=ur(await fr(e));dr(t);let n=or(t.map(([e])=>e)),r={},i=new TextEncoder,a=0;for(let[e,o]of t){let t=n?e.slice(n.length):e;if(!t)continue;let s=hr(t);if(nr(s))try{let e=await mr(o);a=gr(a,i.encode(e).byteLength),r[s]={path:s,editable:!0,content:e,binary:null,date:o.date||new Date,unixPermissions:typeof o.unixPermissions==`number`?o.unixPermissions:null,dosPermissions:typeof o.dosPermissions==`number`?o.dosPermissions:null};continue}catch{}let c=await pr(o);a=gr(a,c.byteLength),r[s]={path:s,editable:!1,content:null,binary:c,date:o.date||new Date,unixPermissions:typeof o.unixPermissions==`number`?o.unixPermissions:null,dosPermissions:typeof o.dosPermissions==`number`?o.dosPermissions:null}}return{files:r,rootPrefix:n}},vr=async({files:e,rootPrefix:t})=>{let n=new Xn.default;for(let[r,i]of Object.entries(e)){let e=`${t}${r}`,a={date:i.date,createFolders:!0,unixPermissions:i.unixPermissions??void 0,dosPermissions:i.dosPermissions??void 0};i.editable?n.file(e,i.content??``,a):n.file(e,i.binary,{...a,binary:!0})}return n.generateAsync({type:`blob`,mimeType:`application/zip`,compression:`DEFLATE`,compressionOptions:{level:6}})},yr=({baseFiles:e,currentFiles:t})=>{let n=new Set([...Object.keys(e),...Object.keys(t)]),r=[];for(let i of Array.from(n).sort()){let n=e[i],a=t[i];if(!n&&a){r.push({path:i,editable:a.editable,status:`added`});continue}if(n&&!a){r.push({path:i,editable:n.editable,status:`deleted`});continue}!n||!a||n.editable&&a.editable&&n.content!==a.content&&r.push({path:i,editable:!0,status:`modified`})}return r},br=({files:e,oldPrefix:t,newPrefix:n})=>{let r={};for(let[i,a]of Object.entries(e)){if(!i.startsWith(t)){r[i]=a;continue}let e=`${n}${i.slice(t.length)}`;r[e]={...a,path:e}}return r},xr=e=>{switch(rr(e)){case`css`:case`scss`:case`sass`:case`less`:return h(()=>import(`./dist-CZgIBXQN.js`).then(e=>e.r).then(e=>e.css()),__vite__mapDeps([0,1,2,3]),import.meta.url);case`js`:case`cjs`:case`mjs`:return h(()=>import(`./dist-4m6pHdc0.js`).then(e=>e.t).then(e=>e.javascript()),__vite__mapDeps([4,1,2,3]),import.meta.url);case`json`:return h(()=>import(`./dist-B6bJuxL3.js`).then(e=>e.json()),__vite__mapDeps([5,2,3]),import.meta.url);case`md`:case`markdown`:return h(()=>import(`./dist-CiHx7vA5.js`).then(e=>e.markdown()),__vite__mapDeps([6,2,7,3,0,1,4]),import.meta.url);case`yaml`:case`yml`:return h(()=>import(`./dist-zwwGt8Yf.js`).then(e=>e.yaml()),__vite__mapDeps([8,2,3]),import.meta.url);case`hbs`:case`handlebars`:case`html`:case`htm`:case`svg`:case`xml`:return h(()=>import(`./dist-ECAUrdGc.js`).then(e=>e.html()),__vite__mapDeps([7,2,3,0,1,4]),import.meta.url);default:return h(()=>import(`./dist-ECAUrdGc.js`).then(e=>e.html()),__vite__mapDeps([7,2,3,0,1,4]),import.meta.url)}},Sr=e=>{let t=rr(e);if(!t)return`text`;switch(t){case`hbs`:return`handlebars`;case`htm`:return`html`;case`yml`:return`yaml`;default:return t}},Cr=e=>{if(e[`package.json`]?.editable)return{type:`file`,path:`package.json`};let t=Object.keys(e).sort().find(t=>e[t].editable);if(t)return{type:`file`,path:t};let n=Object.keys(e).sort()[0];return n?{type:`file`,path:n}:null},wr=e=>{let t=e.split(`/`),n=[``];for(let e=0;e<t.length-1;e+=1)n.push(`${t.slice(0,e+1).join(`/`)}/`);return n},Tr=[`theme`,`design`],Er=e=>Tr.some(t=>e===t||e.startsWith(`${t}/`)),Dr=()=>{let e=window.location.hash.substring(1),t=`${window.location.protocol}//${window.location.hostname}`,n;try{n=new URL(e||`/`,t)}catch{return null}let r=n.searchParams.get(`from`);return r===null?null:r===``||Er(r)?r:null},Or=(e,t)=>{let n=`theme/edit/${encodeURIComponent(e)}`;return t===null?n:`${n}?from=${encodeURIComponent(t)}`},kr=(e,t)=>!e.editable&&nr(t),Ar=/^[a-z0-9][\w-]{0,63}$/,jr=[`COMPRESSED_TOO_LARGE`,`ENTRY_TOO_LARGE`,`TOTAL_TOO_LARGE`],Mr={COMPRESSED_TOO_LARGE:`Theme too large to upload`,ENTRY_TOO_LARGE:`File too large`,TOTAL_TOO_LARGE:`Theme contents too large`},Nr=J({errors:Oe(J({message:Y().optional(),code:ke(jr),errorDetails:J({entryName:Y().optional(),limitBytes:Ae().positive().finite().optional()}).optional()})).min(1)}),Pr=e=>{if(!e||e<=0)return`the allowed size`;let t=e/(1024*1024);return t>=1?`${t.toFixed(1)} MB`:`${Math.round(e/1024)} KB`},Fr=e=>{if(!(e instanceof d))return null;let t=e.data;if(typeof t==`string`)try{t=JSON.parse(t)}catch{return null}let n=Nr.safeParse(t);return n.success?n.data.errors[0]??null:null},Ir=e=>{let{entryName:t,limitBytes:n}=e.errorDetails??{},r=Pr(n);switch(e.code){case`COMPRESSED_TOO_LARGE`:return`The theme archive is too large to upload (max ${r}).`;case`ENTRY_TOO_LARGE`:return t?`The file "${t}" is too large (max ${r} per file).`:`One of the files is too large (max ${r} per file).`;case`TOTAL_TOO_LARGE`:return`The theme contents exceed the maximum allowed size of ${r}.`;default:return e.message||`Theme upload failed.`}},Lr=e=>`inline-flex h-5 w-5 items-center justify-center rounded-sm text-[#c8ccd3] transition-opacity hover:opacity-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#4a9eff] ${e?`opacity-100`:`opacity-60`}`,Rr=`flex h-full items-center justify-center p-8 text-center text-[13px] text-[#6a6f78]`,zr=vt.theme({"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:`#355070`},".cm-content ::selection":{color:`#ffffff`}},{dark:!0}),Br=({themeName:e})=>{let{updateRoute:t}=U(),n=c(),r=u(),{data:i}=Re(),{mutateAsync:s}=ze(),[d,p]=(0,Z.useState)(e),[m,h]=(0,Z.useState)({}),[g,_]=(0,Z.useState)({}),[y,b]=(0,Z.useState)(``),[x,S]=(0,Z.useState)(null),[C,w]=(0,Z.useState)(new Set([``])),[T,E]=(0,Z.useState)(!0),[D,O]=(0,Z.useState)(!1),[k,ee]=(0,Z.useState)(null),[A,ne]=(0,Z.useState)(!1),[j,ie]=(0,Z.useState)(null),M=(0,Z.useRef)(null),[N,ae]=(0,Z.useState)(null),[P,le]=(0,Z.useState)(null),[F,I]=(0,Z.useState)([]);(0,Z.useEffect)(()=>{let t=!0,r=()=>{p(e),h({}),_({}),b(``),S(null),w(new Set([``]))};return(async()=>{E(!0),ee(null),r();try{let r=await _r(await n(o(`/themes/${encodeURIComponent(e)}/download/`),{responseType:`arraybuffer`})),i=sr(r.files),a=Cr(i);if(!t)return;p(e),h(sr(r.files)),_(i),b(r.rootPrefix),S(a),w(new Set(a?.type===`file`?wr(a.path):[``]))}catch(n){if(!t)return;n instanceof l&&n.response?ee(`Failed to load theme "${e}" (${n.response.status})`):ee(n instanceof Error?n.message:`Failed to load theme`)}finally{t&&E(!1)}})(),()=>{t=!1}},[e,n]),(0,Z.useEffect)(()=>{let e=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[]);let L=(0,Z.useMemo)(()=>yr({baseFiles:m,currentFiles:g}),[m,g]),ue=(0,Z.useMemo)(()=>new Map(L.map(e=>[e.path,e.status])),[L]),R=x?.type===`file`?g[x.path]:null;(0,Z.useEffect)(()=>{let e=!0;return R?.editable?(xr(R.path).then(t=>{e&&I([se({top:!0}),oe,t,...A?[vt.lineWrapping]:[],zr])}).catch(()=>{e&&I([se({top:!0}),oe,...A?[vt.lineWrapping]:[],zr])}),()=>{e=!1}):(I([]),()=>{e=!1})},[A,R]);let z=(0,Z.useCallback)(()=>{let e=M.current;e&&(M.current=null,e.type===`confirmation`?e.resolve(!1):e.resolve(null))},[]),B=e=>(z(),new Promise(t=>{let n={type:`confirmation`,props:e,resolve:t};M.current=n,ie(n)})),V=e=>(z(),new Promise(t=>{let n={type:`input`,props:e,resolve:t};M.current=n,ie(n)}));(0,Z.useEffect)(()=>()=>z(),[z]);let H=async()=>{L.length>0&&!await B({title:`Discard changes?`,prompt:`You have unsaved theme changes. Close the editor and discard them?`,okLabel:`Discard changes`,okVariant:`destructive`})||t(Dr()??`design/change-theme`)},de=(0,Z.useRef)(async()=>{}),fe=!!(j||N||P);(0,Z.useEffect)(()=>{let e=e=>{if((e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`s`){if(e.preventDefault(),fe){e.stopPropagation(),e.stopImmediatePropagation();return}de.current();return}e.key===`Escape`&&(fe||(e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation()))};return window.addEventListener(`keydown`,e,!0),()=>{window.removeEventListener(`keydown`,e,!0)}},[fe]);let pe=e=>{w(t=>{let n=new Set(t);for(let t of wr(e))n.add(t);return n})},W=(e,t)=>{if(_(e),t){S(t),t.type===`file`&&pe(t.path);return}x?.type===`file`&&e[x.path]||S(Cr(e))},me=async()=>{let e=await V({title:`Create file`,fieldTitle:`File path`,initialValue:`partials/new-file.hbs`,okLabel:`Create file`,prompt:`Add a new editable file to this theme.`}),t=e?ir(e):null;if(!t)return;if(!nr(t)){f.error(`Only text files can be created here`,{description:`Use a text-based theme file extension such as .hbs, .css, .js, or .json.`});return}if(g[t]){f.error(`File already exists`);return}let n={...g,[t]:{path:t,editable:!0,content:``,binary:null,date:new Date,unixPermissions:null,dosPermissions:null}};W(n,{type:`file`,path:t})},he=async()=>{if(!x)return;let e=x.type===`dir`?x.path.replace(/\/$/,``):x.path,t=x.type===`dir`?`Rename folder to`:`Rename file to`,n=await V({title:x.type===`dir`?`Rename folder`:`Rename file`,fieldTitle:`Path`,initialValue:e,okLabel:`Rename`,prompt:t}),r=n?ir(n):null;if(!r||r===e)return;if(x.type===`file`){let e=g[x.path];if(!nr(r)&&e.editable){f.error(`Text files must keep a text file extension`);return}if(kr(e,r)){f.error(`Binary files cannot be renamed to a text file`,{description:`Rename this file with a non-text extension to keep its contents intact.`});return}if(g[r]){f.error(`A file with that name already exists`);return}let t={...g},n=t[x.path];delete t[x.path],t[r]={...n,path:r,editable:nr(r)},W(t,{type:`file`,path:r});return}let i=`${r}/`;if(i.startsWith(x.path)){f.error(`A folder cannot be renamed inside itself`);return}if(Object.keys(g).find(e=>e.startsWith(i))){f.error(`A folder with that path already exists`);return}let a=br({files:g,oldPrefix:x.path,newPrefix:i});W(a,{type:`dir`,path:i}),w(e=>{let t=new Set;for(let n of e){if(!n.startsWith(x.path)){t.add(n);continue}t.add(`${i}${n.slice(x.path.length)}`)}return t})},ge=async()=>{if(!x)return;if(x.type===`file`){if(!await B({title:`Delete file`,prompt:(0,Q.jsxs)(Q.Fragment,{children:[`Delete `,(0,Q.jsx)(`strong`,{children:x.path}),` from this theme?`]}),okLabel:`Delete`,okVariant:`destructive`}))return;let e={...g};delete e[x.path],W(e);return}let e=Object.keys(g).filter(e=>e.startsWith(x.path));if(!e.length||!await B({title:`Delete folder`,prompt:(0,Q.jsxs)(Q.Fragment,{children:[`Delete `,v(e.length),` file`,e.length===1?``:`s`,` `,`from `,(0,Q.jsx)(`strong`,{children:x.path}),`?`]}),okLabel:`Delete`,okVariant:`destructive`}))return;let t={...g};for(let n of e)delete t[n];W(t)},_e=e=>{let t=m[e],n=g[e],r={...g};!t&&n?delete r[e]:t&&(r[e]={...t,binary:t.binary?new Uint8Array(t.binary):null}),W(r)},ve=async()=>{let e=(await V({title:`Save as new theme`,fieldTitle:`Theme name`,initialValue:`${d}-edited`,okLabel:`Continue`,prompt:`Default themes cannot be overwritten. Save your edits as a new theme instead.`}))?.trim().toLowerCase();return e?Ar.test(e)?ar(e)?(f.error(`Built-in themes cannot be overwritten`),null):e:(f.error(`Invalid theme name`,{description:`Use 1-64 characters, starting with a letter or number. Allowed: letters, numbers, dashes, and underscores.`}),null):null},ye=async()=>{if(D)return;if(L.length===0){f.info(`No changes to save`);return}let e=d,n=ar(e)?await ve():e;if(!n)return;let o=n!==e,c=i?.themes.some(e=>e.name===n)||!1,l=o?`Save your edits as "${n}"?`:`Upload ${v(L.length)} changed file${L.length===1?``:`s`} and replace "${e}"?`;if(await B({title:o?`Save theme as new copy`:`Update theme`,prompt:l,okLabel:o?`Save theme`:`Replace theme`})&&!(o&&c&&!await B({title:`Overwrite theme`,prompt:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`strong`,{children:n}),` already exists. Do you want to overwrite it?`]}),okLabel:`Overwrite`,okVariant:`destructive`}))){O(!0);try{let r=await vr({files:g,rootPrefix:y}),i=(await s({file:new File([r],`${n}.zip`,{type:`application/zip`}),copySettingsFrom:o?e:void 0})).themes[0],a=Dr();h(sr(g)),o&&(p(n),b(y?`${n}/`:``),t(Or(n,a)));let c=Nt(i);o||c.length?le({title:o?`Theme saved`:`Theme updated`,action:`saved`,installedTheme:i}):f.success(`Theme saved`,{description:(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`span`,{className:`capitalize`,children:i.name}),` has been updated.`]})})}catch(e){if(e instanceof a&&e.response?.status===422){let t=Mt(e.data?.errors);if(t){ae(t);return}}let t=Fr(e);if(t){f.error(Mr[t.code],{description:Ir(t)});return}r(e)}finally{O(!1)}}};(0,Z.useEffect)(()=>{de.current=ye});let be=e=>{S({type:`file`,path:e}),pe(e)},xe=R?ue.get(R.path):null;return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{"aria-label":`Edit theme ${e}`,"aria-modal":`true`,className:`dark fixed inset-0 z-[140] bg-[rgba(10,11,13,0.72)] text-[#e6e7ea] backdrop-blur-[4px]`,"data-testid":`theme-code-editor-modal`,role:`dialog`,onClick:e=>{e.target===e.currentTarget&&H()},children:(0,Q.jsxs)(`div`,{className:`relative flex size-full flex-col overflow-hidden bg-[#15171a]`,children:[(0,Q.jsx)(Gn,{changes:L,currentThemeName:d,isSaving:D,onClose:()=>void H(),onSave:()=>void ye()}),k&&(0,Q.jsx)(`div`,{className:`border-b border-[#512828] bg-[#3a1d1d] px-4 py-2 text-[12px] text-[#ffbdbd]`,children:k}),(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1`,children:[(0,Q.jsx)(Yn,{changesMap:ue,currentFiles:g,expandedDirectories:C,isLoading:T,selectedNode:x,setExpandedDirectories:w,setSelectedNode:S,onCreateFile:()=>void me(),onDeleteSelected:()=>void ge(),onOpenFile:be,onRenameSelected:()=>void he()}),(0,Q.jsxs)(`section`,{className:`flex min-w-0 flex-1 flex-col bg-[#16181c]`,children:[(0,Q.jsx)(`div`,{className:`flex items-center gap-2 border-b border-[#23262c] bg-[#17191d] px-4 py-2 text-[12px] text-[#8a8f98]`,children:R?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{className:`min-w-0 truncate font-medium text-[#e6e7ea]`,children:R.path}),(0,Q.jsx)(`span`,{className:`rounded bg-[#2a2d33] px-2 py-0.5 text-[10px] tracking-[0.04em] text-[#c8ccd3] uppercase`,children:Sr(R.path)}),xe&&(0,Q.jsxs)(`button`,{className:`inline-flex items-center gap-1 rounded px-2 py-0.5 text-[10px] tracking-[0.04em] uppercase ${xe===`deleted`?`bg-[#4a2222] text-[#ffbdbd]`:xe===`added`?`bg-[#17342a] text-[#a5e8c8]`:`bg-[#3b2a16] text-[#f5a623]`}`,type:`button`,onClick:()=>_e(R.path),children:[(0,Q.jsx)(te,{size:11}),`Revert`]}),(0,Q.jsx)(`div`,{className:`grow`}),R.editable&&(0,Q.jsx)(`button`,{"aria-label":A?`Disable text wrap`:`Enable text wrap`,"aria-pressed":A,className:Lr(A),title:A?`Disable text wrap`:`Enable text wrap`,type:`button`,onClick:()=>ne(e=>!e),children:(0,Q.jsx)(re,{className:`shrink-0`,size:14,strokeWidth:2})})]}):(0,Q.jsx)(`span`,{children:`No file selected`})}),(0,Q.jsxs)(`div`,{className:`min-h-0 flex-1`,children:[!x&&!T&&(0,Q.jsx)(`div`,{className:Rr,children:`Select a file from the tree to start editing.`}),x?.type===`dir`&&(0,Q.jsx)(`div`,{className:Rr,children:`Folder selected. Choose a file to edit, or rename or delete the folder from the file pane.`}),R&&!R.editable&&(0,Q.jsx)(`div`,{className:Rr,children:`This file cannot be edited in the browser.`}),R?.editable&&(0,Q.jsx)(ce,{basicSetup:{highlightActiveLine:!1,highlightActiveLineGutter:!1},className:`h-full [&_.cm-button]:h-8 [&_.cm-button]:rounded-md [&_.cm-button]:border [&_.cm-button]:border-[#2f333b] [&_.cm-button]:bg-[#1f2228] [&_.cm-button]:bg-none [&_.cm-button]:px-3 [&_.cm-button]:text-[13px] [&_.cm-button]:text-[#c8ccd3] [&_.cm-button:hover]:bg-[#2a2d33] [&_.cm-content]:min-h-full [&_.cm-content]:py-3 [&_.cm-content_*::selection]:bg-[#355070] [&_.cm-cursor]:border-l-[#e6e7ea] [&_.cm-editor]:h-full [&_.cm-editor]:rounded-none [&_.cm-editor]:border-0 [&_.cm-editor]:bg-[#16181c] [&_.cm-gutters]:border-r-[#23262c] [&_.cm-gutters]:bg-[#17191d] [&_.cm-line::selection]:bg-[#355070] [&_.cm-panel]:bg-[#17191d] [&_.cm-panel]:shadow-none [&_.cm-panel.cm-search]:gap-2 [&_.cm-panel.cm-search]:px-3 [&_.cm-panel.cm-search]:py-2 [&_.cm-panel.cm-search]:text-[13px] [&_.cm-panels]:border-b [&_.cm-panels]:border-[#23262c] [&_.cm-panels]:bg-[#17191d] [&_.cm-panels]:text-[#c8ccd3] [&_.cm-scroller]:min-h-full [&_.cm-scroller]:overflow-auto [&_.cm-scroller]:bg-[#16181c] [&_.cm-search]:flex [&_.cm-search]:flex-wrap [&_.cm-search]:items-center [&_.cm-search]:gap-2 [&_.cm-search_label]:inline-flex [&_.cm-search_label]:items-center [&_.cm-search_label]:gap-1.5 [&_.cm-search_label]:text-[#a5abb4] [&_.cm-search_label_input]:size-4 [&_.cm-search_label_input]:accent-[#14b886] [&_.cm-searchMatch]:bg-[#243043] [&_.cm-searchMatch-selected]:bg-[#3b2a16] [&_.cm-searchMatch-selected]:outline-none [&_.cm-selectionBackground]:!bg-[#355070] [&_.cm-selectionLayer_.cm-selectionBackground]:!bg-[#355070] [&_.cm-textfield]:h-8 [&_.cm-textfield]:min-w-[220px] [&_.cm-textfield]:rounded-md [&_.cm-textfield]:border [&_.cm-textfield]:border-[#2f333b] [&_.cm-textfield]:bg-[#16181c] [&_.cm-textfield]:px-2.5 [&_.cm-textfield]:text-[#e6e7ea] [&_.cm-textfield]:outline-none [&_.cm-textfield]:placeholder:text-[#6a6f78]`,extensions:F,height:`full`,theme:oe,value:R.content||``,autoFocus:!0,onChange:e=>{_(t=>({...t,[R.path]:{...t[R.path],content:e}}))}},`${R.path}:${F.length}`)]})]})]})]})}),j?.type===`confirmation`&&(0,Q.jsx)(Bn,{...j.props,onResolve:e=>{M.current===j&&(M.current=null,ie(null),j.resolve(e))}}),j?.type===`input`&&(0,Q.jsx)(Vn,{...j.props,onResolve:e=>{M.current===j&&(M.current=null,ie(null),j.resolve(e))}}),N&&(0,Q.jsx)(nn,{action:`saved`,cancelLabel:`Close`,fatalErrors:N,themeName:d,title:`Theme not saved`,onClose:()=>ae(null)}),P&&(0,Q.jsx)(hn,{...P,onClose:()=>le(null)})]})},Vr=()=>{let{route:e,updateRoute:t}=U(),n=gt(),r=e,[i,a]=(0,Z.useState)(null),[o,s]=(0,Z.useState)(!1),[c,l]=(0,Z.useState)(!1),[u,d]=(0,Z.useState)(null),[f,p]=(0,Z.useState)(!1),{checkThemeLimitError:m,isThemeLimitCheckReady:h,noThemeChangesAllowed:g,isThemeLimited:_}=Et(),[v,y]=(0,Z.useState)(null),[b,x]=(0,Z.useState)(!1),{themeName:S,isInvalid:C}=Zn(r),{showLimit:w}=mt(),T=(0,Z.useCallback)(e=>{w({prompt:e,onOk:()=>t({route:n,isExternal:!0})})},[w,t,n]);if((0,Z.useEffect)(()=>{r===`design/change-theme`&&h?(async()=>{if(!g){s(!1),a(null);return}s(!0);let e=await m();a(e),s(!1),e&&(T(e),t(`theme`))})():(a(null),s(!1))},[m,r,h,g,T,t]),(0,Z.useEffect)(()=>{r!==`theme/install`&&(x(!1),y(null),l(!1))},[r]),(0,Z.useEffect)(()=>{C&&t(`theme`)},[C,t]),(0,Z.useEffect)(()=>{let e=!1;return(async()=>{if(!S){d(null),p(!1);return}if(!h){p(!0);return}if(!_){d(null),p(!1);return}p(!0);let n=await m(`.`);e||(d(n),p(!1),n&&(T(n),t(`theme`)))})(),()=>{e=!0}},[m,S,h,_,T,t]),(0,Z.useEffect)(()=>{let e=()=>{let e=window.location.href.split(`#`)[1]?.split(`?`)[1];return e?new URLSearchParams(e).get(`ref`):null},n=e=>{y(!1),T(e),t({route:`theme`,replace:!0})};(async()=>{if(r!==`theme/install`){l(!1);return}if(x(!0),!h){l(!0);return}if(!_){y(!0),l(!1);return}l(!0);let t=e();if(!t){y(!1),l(!1);return}let i=t.split(`/`)[1]?.toLowerCase(),a=await m(i);if(r!==`theme/install`){l(!1);return}if(a){y(!1),l(!1),n(a);return}y(!0),l(!1)})()},[m,r,h,g,_,T,t]),r===`design/edit`)return(0,Q.jsx)(zn,{});if(r===`design/change-theme`)return o||i?null:(0,Q.jsx)(Cn,{});if(r===`theme/install`){if(!b||!h||c||v===null||!v)return null;let e=window.location.href.split(`#`)[1]?.split(`?`)[1],t=null,n=null;if(e){let r=new URLSearchParams(e);t=r.get(`ref`),n=r.get(`source`)}return(0,Q.jsx)(Cn,{source:n,themeRef:t})}else if(r.startsWith(`theme/edit/`))return C||!S||f||u?null:(0,Q.jsx)(Br,{themeName:S});else return null};export{Vr as default};
|
|
@@ -0,0 +1 @@
|
|
|
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{t as i}from"./stack-B2eszIiq.js";import{t as a}from"./button-Dvcv1QSR.js";import{ar as o,cr as s,dr as c,ir as l,lr as u,or as d,sr as f,ur as p}from"./index-CgMCwsxN.js";var m=e(t(),1),h=n();function g(){let e=m.useRef(null),[t,n]=m.useState(!1),r=m.useCallback((t,r)=>{if(!t){r();return}e.current=r,n(!0)},[]),i=m.useCallback(t=>{n(t),t||(e.current=null)},[]);return{confirm:r,dialogProps:{open:t,onConfirm:m.useCallback(()=>{let t=e.current;e.current=null,n(!1),t?.()},[]),onOpenChange:i}}}function _({className:e,description:t,open:n,testId:m=`confirmation-modal`,title:g=`Are you sure you want to leave this page?`,onConfirm:_,onOpenChange:v}){return(0,h.jsx)(l,{open:n,onOpenChange:v,children:(0,h.jsxs)(f,{className:r(`z-[1100]`,e),"data-testid":m,overlayClassName:`z-[1100]`,onEscapeKeyDown:e=>e.stopPropagation(),children:[(0,h.jsxs)(p,{children:[(0,h.jsx)(c,{children:g}),(0,h.jsx)(s,{asChild:!0,children:(0,h.jsx)(i,{gap:`sm`,children:t||(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`p`,{children:`Hey there! It looks like you didn't save the changes you made.`}),(0,h.jsx)(`p`,{children:`Save before you go!`})]})})})]}),(0,h.jsxs)(u,{children:[(0,h.jsx)(d,{asChild:!0,children:(0,h.jsx)(a,{variant:`outline`,children:`Stay`})}),(0,h.jsx)(o,{className:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,asChild:!0,children:(0,h.jsx)(a,{variant:`destructive`,onClick:_,children:`Leave`})})]})]})})}export{g as n,_ as t};
|