ghost 6.58.0 → 6.59.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/tryghost-adapter-base-scheduling-0.2.2.tgz +0 -0
- package/components/tryghost-adapter-base-sso-0.1.2.tgz +0 -0
- package/components/tryghost-i18n-0.0.0.tgz +0 -0
- package/components/tryghost-kg-default-nodes-2.2.0.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/content/themes/casper/.github/workflows/test.yml +11 -1
- package/content/themes/casper/AGENTS.md +25 -0
- package/content/themes/casper/assets/built/screen.css +1 -1
- package/content/themes/casper/assets/css/screen.css +15 -1
- package/content/themes/casper/gulpfile.js +3 -0
- package/content/themes/casper/package.json +8 -8
- package/content/themes/source/.gitattributes +5 -0
- package/content/themes/source/.github/workflows/test.yml +39 -0
- package/content/themes/source/AGENTS.md +25 -0
- package/content/themes/source/README.md +33 -4
- package/content/themes/source/assets/built/screen.css +1 -1
- package/content/themes/source/assets/css/screen.css +15 -0
- package/content/themes/source/gulpfile.js +6 -3
- package/content/themes/source/package.json +13 -10
- package/content/themes/source/pnpm-workspace.yaml +3 -0
- package/core/boot.js +11 -4
- package/core/built/admin/assets/Combination-BCm9FL4o.js +41 -0
- package/core/built/admin/assets/about-BdSCpjXG.js +1 -0
- package/core/built/admin/assets/account-migration-BpKAqo8k.js +1 -0
- package/core/built/admin/assets/activitypub/{account-migration-BpDeIF3G.js → account-migration-DVnYS1XG.js} +8 -8
- package/core/built/admin/assets/activitypub/activitypub.js +2 -2
- package/core/built/admin/assets/activitypub/{bluesky-sharing-aPMtrS3L.js → bluesky-sharing-DLVeE9ii.js} +31 -31
- package/core/built/admin/assets/activitypub/{content-formatters-BORfuA9G.js → content-formatters-DCsVic-t.js} +2 -2
- package/core/built/admin/assets/activitypub/{dist-ByFmDSNP2.js → dist-ByFmDSNP.js} +1 -1
- package/core/built/admin/assets/activitypub/{domain-CPdiB27_.js → domain-rrvDLfnK.js} +8 -8
- package/core/built/admin/assets/activitypub/{edit-profile-BY2PawIe.js → edit-profile-VT-piVxq.js} +23 -23
- package/core/built/admin/assets/activitypub/{explore-Sp9bgAwq.js → explore-DZg3m48P.js} +14 -14
- package/core/built/admin/assets/activitypub/{feed-BjtF4ohL.js → feed-BJqQvDMI.js} +41 -41
- package/core/built/admin/assets/activitypub/{field-BDOYVTg6.js → field-BezS4-1J.js} +2 -2
- package/core/built/admin/assets/activitypub/inbox-Uf0GVrI_.js +1284 -0
- package/core/built/admin/assets/activitypub/{label-1jhN-qhD.js → label-CZ6if4zK.js} +2 -2
- package/core/built/admin/assets/activitypub/layout-DNuYT4Gu.js +1 -0
- package/core/built/admin/assets/activitypub/moderation-CP6mDVky.js +340 -0
- package/core/built/admin/assets/activitypub/{note-nr_m_5yb.js → note-BlFkye2g.js} +16 -16
- package/core/built/admin/assets/activitypub/{notifications-BdcyivbT.js → notifications-GGTrGEdu.js} +163 -126
- package/core/built/admin/assets/activitypub/{preferences-CNqy1x9C.js → preferences-CjZXrZqr.js} +1550 -1551
- package/core/built/admin/assets/activitypub/{profile-DlY4rhbO.js → profile-CcXYxydm.js} +248 -248
- package/core/built/admin/assets/activitypub/{routes-CEHdEZzS.js → routes-nHCKlZl-.js} +1971 -1747
- package/core/built/admin/assets/activitypub/settings-pDzybcb3.js +315 -0
- package/core/built/admin/assets/activitypub/{site-CtBUCPBz.js → site-BZF0F8LN.js} +101 -101
- package/core/built/admin/assets/activitypub/{step-1-D9jGWyAy.js → step-1-C-Ns1Tfg.js} +3 -3
- package/core/built/admin/assets/activitypub/{step-3-KpUqpGWi.js → step-3-rDMNGmLg.js} +8 -8
- package/core/built/admin/assets/activitypub/{tabs-DvlsxTCI.js → tabs-CDjh3_Jp.js} +198 -198
- package/core/built/admin/assets/activitypub/{topic-filter-CIN1E2jg.js → topic-filter-CmTc8hpN.js} +2 -2
- package/core/built/admin/assets/activitypub/{use-activity-pub-queries-CATFd6YV.js → use-activity-pub-queries-DUDEdSdR.js} +286 -243
- package/core/built/admin/assets/activitypub/{use-reply-chain-data-DJ0vhA8V.js → use-reply-chain-data-TunGtmJl.js} +14 -14
- package/core/built/admin/assets/add-integration-modal-CXRQi1x0.js +1 -0
- package/core/built/admin/assets/add-newsletter-modal-t447KRYz.js +1 -0
- package/core/built/admin/assets/add-recommendation-modal-D882MdnR.js +1 -0
- package/core/built/admin/assets/{analytics-BC2oR8ay.js → analytics-Dj-WlzPf.js} +1 -1
- package/core/built/admin/assets/announcement-bar-modal-CwHKKw-a.js +1 -0
- package/core/built/admin/assets/api-keys-Boy5pLbD.js +1 -0
- package/core/built/admin/assets/audience-Cc40y7zQ.js +1 -0
- package/core/built/admin/assets/automations-DNLK5Udr.js +1 -0
- package/core/built/admin/assets/bluesky-sharing-Cm4aFaOl.js +1 -0
- package/core/built/admin/assets/breadcrumb-CcFr_ltt.js +1 -0
- package/core/built/admin/assets/button-BshWPHvn.js +1 -0
- package/core/built/admin/assets/chart-helpers-BsbzoWhK.js +1 -0
- package/core/built/admin/assets/{checkbox-LmClhqcS.js → checkbox-1G6KfK2q.js} +1 -1
- package/core/built/admin/assets/chunk-KS7C4IRE-DCsL4i4D.js +4 -0
- package/core/built/admin/assets/{chunk.408.1a258af360eb8d905508.js → chunk.301.5673a0caf7c49bb00212.js} +3 -3
- package/core/built/admin/assets/{chunk.524.4c693c3a00ac91df34fa.js → chunk.524.86db0d945468c852374b.js} +4 -4
- package/core/built/admin/assets/{chunk.582.20b600e329e58d12d7c2.js → chunk.582.c2f6216d3c4af303e236.js} +6 -6
- package/core/built/admin/assets/{code-editor-view-DqTOUnbM.js → code-editor-view-BVjtWyst.js} +1 -1
- package/core/built/admin/assets/{code-editor-view-bA0lfxUL.js → code-editor-view-y_zVfmCa.js} +1 -1
- package/core/built/admin/assets/color-picker-XEMPgNJE.js +3 -0
- package/core/built/admin/assets/{color-picker-field-Cv9GOJQZ.js → color-picker-field-BhplXcy5.js} +1 -1
- package/core/built/admin/assets/combobox-CRMJrvcQ.js +1 -0
- package/core/built/admin/assets/command-151T2eRx.js +1 -0
- package/core/built/admin/assets/comments-Bjbl9toF.js +1 -0
- package/core/built/admin/assets/confirmation-context-QmFxSjWy.js +1 -0
- package/core/built/admin/assets/{content-api-modal-BOFWRUkC.js → content-api-modal-CpeABXne.js} +1 -1
- package/core/built/admin/assets/{copy-field-8biQvNMD.js → copy-field-CglgRZyG.js} +1 -1
- package/core/built/admin/assets/custom-field-type-option-DSyJw4T4.js +1 -0
- package/core/built/admin/assets/custom-integration-modal-DWB9bRVp.js +1 -0
- package/core/built/admin/assets/date-range-select-kaKtab5O.js +1 -0
- package/core/built/admin/assets/design-and-theme-modal-86s2AaZ-.js +23 -0
- package/core/built/admin/assets/dirty-confirm-dialog-CTFdXXy7.js +1 -0
- package/core/built/admin/assets/disabled-sources-indicator-BFyCxUOx.js +1 -0
- package/core/built/admin/assets/dist-C1-Oy3Db.js +1 -0
- package/core/built/admin/assets/dist-CJJqYPep.js +1 -0
- package/core/built/admin/assets/dist-CNlMj7ML.js +1 -0
- package/core/built/admin/assets/dist-Kll2twSG.js +1 -0
- package/core/built/admin/assets/domain-BOoMvBG3.js +1 -0
- package/core/built/admin/assets/{dropzone-B21Entqz.js → dropzone-B6KWzsrb.js} +2 -2
- package/core/built/admin/assets/edit-profile-BagrYOrN.js +1 -0
- package/core/built/admin/assets/editor-AaJjqbpk.js +8 -0
- package/core/built/admin/assets/embed-signup-form-modal-B8L95KwR.js +8 -0
- package/core/built/admin/assets/explore-xbykZTlO.js +1 -0
- package/core/built/admin/assets/feed-BAHSipWv.js +1 -0
- package/core/built/admin/assets/{field-BQqLTgHM.js → field-kJYZ2T3C.js} +1 -1
- package/core/built/admin/assets/{filter-sources-FgqoUIL7.js → filter-sources-QeqFGNRB.js} +1 -1
- package/core/built/admin/assets/{filters-D0uIMD8n.js → filters-By5KQeV6.js} +1 -1
- package/core/built/admin/assets/filters-DtYpAkDd.js +1 -0
- package/core/built/admin/assets/first-promoter-modal-8A02oyjA.js +1 -0
- package/core/built/admin/assets/{ghost-ba408063a5922b458b4a8f216cf23251.js → ghost-f110822e67868c9fdf9a6c23754b2559.js} +9 -8
- package/core/built/admin/assets/gift-link-modal-DbYCyuhF.js +1 -0
- package/core/built/admin/assets/global-data-context-gAMDH9u1.js +1 -0
- package/core/built/admin/assets/growth-BSOxJGey.js +3 -0
- package/core/built/admin/assets/growth-BZTjURq5.js +1 -0
- package/core/built/admin/assets/history-modal-CCgWtlZE.js +1 -0
- package/core/built/admin/assets/html-field-BQC7XyLA.js +1 -0
- package/core/built/admin/assets/iframe-buffering-DnOlWTD4.js +1 -0
- package/core/built/admin/assets/{images-3cQgwfTD.js → images-D5UKr2SG.js} +1 -1
- package/core/built/admin/assets/{inbox-Dz_JblyJ.js → inbox-DvN15_YH.js} +45 -39
- package/core/built/admin/assets/index-BJz9Zlsc.js +67 -0
- package/core/built/admin/assets/index-Dg8cdR8E.css +1 -0
- package/core/built/admin/assets/{input-group-DpogNUIt.js → input-group-BPAxETpQ.js} +1 -1
- package/core/built/admin/assets/invite-user-modal-jcUaaNkW.js +1 -0
- package/core/built/admin/assets/{koenig-lexical-2KuqRwZI.js → koenig-lexical-CfXTYeli.js} +1 -1
- package/core/built/admin/assets/koenig-loader-DktFM3Uh.js +1 -0
- package/core/built/admin/assets/{kpi-card-Ck3tT2Wg.js → kpi-card-fUHZlzBX.js} +1 -1
- package/core/built/admin/assets/{kpi-card-DDIxptaS.js → kpi-card-o0urVtNL.js} +1 -1
- package/core/built/admin/assets/kpi-helpers-2FTF4a3-.js +1 -0
- package/core/built/admin/assets/kpi-tabs-B8-_k2dQ.js +1 -0
- package/core/built/admin/assets/{label-DodDsMzn.js → label-CiRS3i_f.js} +1 -1
- package/core/built/admin/assets/label-picker-ao7tuPaK.js +1 -0
- package/core/built/admin/assets/layout-DC6QGDaw.js +1 -0
- package/core/built/admin/assets/member-custom-fields-BW756-EV.js +1 -0
- package/core/built/admin/assets/member-detail-CGGgUTSl.js +1 -0
- package/core/built/admin/assets/members-ZcPthwG0.js +11 -0
- package/core/built/admin/assets/moderation-24bElWs3.js +1 -0
- package/core/built/admin/assets/multi-select-combobox-CZPrgz-Z.js +1 -0
- package/core/built/admin/assets/navigation-modal-BiTP4U_J.js +1 -0
- package/core/built/admin/assets/newsletter-B3Ihwizp.js +1 -0
- package/core/built/admin/assets/newsletter-detail-modal-CYsu4qhl.js +1 -0
- package/core/built/admin/assets/newsletter-emails-CDPR4-SP.js +1 -0
- package/core/built/admin/assets/newsletters-bJiYLJWl.js +1 -0
- package/core/built/admin/assets/note-7f6urVVA.js +1 -0
- package/core/built/admin/assets/notifications-rosQCyXH.js +1 -0
- package/core/built/admin/assets/offers-container-modal-J2j6NpDL.js +1 -0
- package/core/built/admin/assets/onboarding-route-DTjcThKl.js +1 -0
- package/core/built/admin/assets/overview-BxvWzGaf.js +1 -0
- package/core/built/admin/assets/overview-D6JG0hkZ.js +1 -0
- package/core/built/admin/assets/{page-header-VLPJfj_d.js → page-header-l7vXmLIw.js} +1 -1
- package/core/built/admin/assets/pintura-modal-BGHmudVB.js +1 -0
- package/core/built/admin/assets/portal-frame-DVc4VHX_.js +1 -0
- package/core/built/admin/assets/portal-modal-BCOcdiRi.js +1 -0
- package/core/built/admin/assets/{post-analytics-Gv81eN_g.js → post-analytics-CTSZMK6I.js} +1 -1
- package/core/built/admin/assets/post-analytics-header-Dt4RQGq0.js +1 -0
- package/core/built/admin/assets/{post-analytics-provider-O2YjZMhN.js → post-analytics-provider-C4ydiboO.js} +1 -1
- package/core/built/admin/assets/post-share-modal-DjH_a_1L.js +1 -0
- package/core/built/admin/assets/preferences-BLo6VJUS.js +5 -0
- package/core/built/admin/assets/preview-modal-BOgjgsJL.js +1 -0
- package/core/built/admin/assets/profile-DG6iCdRH.js +1 -0
- package/core/built/admin/assets/radio-group-ChHD4EQJ.js +1 -0
- package/core/built/admin/assets/router-provider-Bexg1t-V.js +1 -0
- package/core/built/admin/assets/select-ChxknEcT.js +1 -0
- package/core/built/admin/assets/settings-B0VDAhgV.js +1 -0
- package/core/built/admin/assets/settings-Dwo3CeAD.js +4 -0
- package/core/built/admin/assets/settings-breadcrumbs-sLDNedBW.js +1 -0
- package/core/built/admin/assets/share-modal-BDb2nacg.js +1 -0
- package/core/built/admin/assets/skeleton-D7hwjdry.js +1 -0
- package/core/built/admin/assets/slack-modal-CwNAD69x.js +1 -0
- package/core/built/admin/assets/sort-button-DhqpxkrO.js +1 -0
- package/core/built/admin/assets/source-icon-BPsD5ees.js +1 -0
- package/core/built/admin/assets/stats-WdDJ8c_1.js +1 -0
- package/core/built/admin/assets/stats-view-J3PI2eT_.js +1 -0
- package/core/built/admin/assets/step-1-2q1SjerQ.js +1 -0
- package/core/built/admin/assets/step-2-D5mJB3Uu.js +1 -0
- package/core/built/admin/assets/step-3-BpAuYTGZ.js +2 -0
- package/core/built/admin/assets/{stripe-button-Bh4p6Wud.js → stripe-button-DDoUKN5a.js} +1 -1
- package/core/built/admin/assets/stripe-connect-modal-pMdF3t4S.js +1 -0
- package/core/built/admin/assets/switch-B_1yU3Aw.js +1 -0
- package/core/built/admin/assets/{table-DghJxZMH.js → table-CrqQtkR2.js} +1 -1
- package/core/built/admin/assets/tabs-BhzVdh5p.js +1 -0
- package/core/built/admin/assets/tag-detail-CwJhI4qg.js +2 -0
- package/core/built/admin/assets/tags-CvJ0PgrB.js +1 -0
- package/core/built/admin/assets/testimonials-modal-CV82IAnI.js +1 -0
- package/core/built/admin/assets/tier-detail-modal-pLzCOfeg.js +1 -0
- package/core/built/admin/assets/toggle-group-BW_T4yn6.js +1 -0
- package/core/built/admin/assets/topic-filter-DkXjDejV.js +1 -0
- package/core/built/admin/assets/transistor-modal-TMRvHZ6B.js +1 -0
- package/core/built/admin/assets/unsplash-modal-CV92RdPw.js +1 -0
- package/core/built/admin/assets/{use-analytics-data-IxJcSjc9.js → use-analytics-data-BM_uV9SU.js} +1 -1
- package/core/built/admin/assets/use-check-theme-limit-error-DkBnXMSY.js +1 -0
- package/core/built/admin/assets/use-confirm-unload-SzlkOIpm.js +1 -0
- package/core/built/admin/assets/use-feature-flag-cahOlMva.js +1 -0
- package/core/built/admin/assets/use-filter-params-BX5qf0Cg.js +1 -0
- package/core/built/admin/assets/{use-growth-stats-1NW-8eEZ.js → use-growth-stats-D0LlWBe6.js} +1 -1
- package/core/built/admin/assets/{use-hash-link-navigation-guard-B9j6HIrV.js → use-hash-link-navigation-guard-B_Y3FhYH.js} +1 -1
- package/core/built/admin/assets/use-limiter-D3DHSoAj.js +2 -0
- package/core/built/admin/assets/{use-pintura-config-BjFChXV1.js → use-pintura-config-D63Xu0SG.js} +1 -1
- package/core/built/admin/assets/use-pintura-editor-Z51aFnC8.js +1 -0
- package/core/built/admin/assets/{use-post-referrers-Dp1BnTAK.js → use-post-referrers-Cvymr3gt.js} +1 -1
- package/core/built/admin/assets/use-query-params-BfzuqbcD.js +1 -0
- package/core/built/admin/assets/use-reply-chain-data-Dc18Ujqo.js +1 -0
- package/core/built/admin/assets/use-setting-group-DYRIzqC0.js +1 -0
- package/core/built/admin/assets/use-settings-navigation-aDSLtmEl.js +1 -0
- package/core/built/admin/assets/{use-simple-pagination-DsEGSJhe.js → use-simple-pagination-B2TdNX67.js} +1 -1
- package/core/built/admin/assets/{use-tinybird-query-Ci_DiPkX.js → use-tinybird-query-BvQIVuRc.js} +1 -1
- package/core/built/admin/assets/{use-tinybird-token-CsUwc722.js → use-tinybird-token-COQTPIwL.js} +1 -1
- package/core/built/admin/assets/use-upgrade-route-BZf1g59m.js +1 -0
- package/core/built/admin/assets/{use-url-input-BEZJpVgN.js → use-url-input-PcqZadXa.js} +1 -1
- package/core/built/admin/assets/user-detail-modal-DeO3SAZq.js +1 -0
- package/core/built/admin/assets/{virtual-list-D5ugXyZY.js → virtual-list-D3MfPNOh.js} +1 -1
- package/core/built/admin/assets/web-CDdyG7z1.js +2 -0
- package/core/built/admin/assets/web-CwQ8_QUc.js +1 -0
- package/core/built/admin/assets/zapier-modal-a7t75iNI.js +1 -0
- package/core/built/admin/index.html +15 -12
- package/core/frontend/apps/private-blogging/lib/helpers/input_password.js +2 -1
- package/core/frontend/helpers/body_class.js +2 -1
- package/core/frontend/helpers/cancel_link.js +2 -1
- package/core/frontend/helpers/color_to_rgba.js +2 -1
- package/core/frontend/helpers/content_api_key.js +2 -1
- package/core/frontend/helpers/content_api_url.js +2 -1
- package/core/frontend/helpers/contrast_text_color.js +2 -1
- package/core/frontend/helpers/facebook_url.js +2 -1
- package/core/frontend/helpers/ghost_foot.js +2 -1
- package/core/frontend/helpers/ghost_head.js +2 -1
- package/core/frontend/helpers/has.js +4 -2
- package/core/frontend/helpers/link_class.js +2 -1
- package/core/frontend/helpers/meta_description.js +2 -1
- package/core/frontend/helpers/meta_title.js +2 -1
- package/core/frontend/helpers/navigation.js +113 -22
- package/core/frontend/helpers/page_url.js +2 -1
- package/core/frontend/helpers/post_class.js +2 -1
- package/core/frontend/helpers/reading_time.js +2 -1
- package/core/frontend/helpers/social_accounts.js +2 -1
- package/core/frontend/helpers/social_url.js +2 -1
- package/core/frontend/helpers/total_members.js +2 -1
- package/core/frontend/helpers/total_paid_members.js +2 -1
- package/core/frontend/helpers/tpl/navigation.hbs +1 -1
- package/core/frontend/helpers/twitter_url.js +2 -1
- package/core/frontend/public/cards.manifest.json +1 -1
- package/core/server/api/endpoints/posts.js +7 -4
- package/core/server/api/endpoints/utils/permissions.js +2 -1
- package/core/server/api/endpoints/utils/validators/input/settings.js +83 -1
- package/core/server/data/exporter/table-lists.js +1 -0
- package/core/server/data/importer/handlers/json.js +2 -1
- package/core/server/data/migrations/versions/5.19/2022-09-02-20-52-backfill-new-product-columns.js +2 -1
- package/core/server/data/migrations/versions/5.21/2022-10-26-04-50-member-subscription-created-batch-id.js +4 -2
- package/core/server/data/migrations/versions/5.22/2022-10-31-12-03-backfill-new-product-columns.js +2 -1
- package/core/server/data/migrations/versions/6.58/2026-08-11-21-22-48-rename-email-batches-provider-id.js +1 -1
- package/core/server/data/migrations/versions/6.59/2026-08-18-17-06-46-add-gift-delivery-fields-to-gifts.js +26 -0
- package/core/server/data/migrations/versions/6.59/2026-08-18-17-07-01-add-gift-deliveries.js +20 -0
- package/core/server/data/schema/commands.js +48 -24
- package/core/server/data/schema/schema.js +28 -7
- package/core/server/data/seeders/importers/automation-action-revisions-importer.js +3 -36
- package/core/server/data/seeders/importers/automation-actions-importer.js +5 -41
- package/core/server/data/seeders/importers/automation-run-steps-importer.js +3 -36
- package/core/server/data/seeders/importers/automation-runs-importer.js +7 -42
- package/core/server/data/seeders/importers/automations-importer.js +3 -36
- package/core/server/data/seeders/importers/comment-reports-importer.js +5 -5
- package/core/server/data/seeders/importers/comments-importer.js +5 -5
- package/core/server/data/seeders/importers/email-batches-importer.js +5 -4
- package/core/server/data/seeders/importers/email-recipients-importer.js +12 -20
- package/core/server/data/seeders/importers/emails-importer.js +6 -6
- package/core/server/data/seeders/importers/labels-importer.js +3 -3
- package/core/server/data/seeders/importers/members-click-events-importer.js +5 -5
- package/core/server/data/seeders/importers/members-created-events-importer.js +13 -12
- package/core/server/data/seeders/importers/members-feedback-importer.js +7 -7
- package/core/server/data/seeders/importers/members-importer.js +4 -4
- package/core/server/data/seeders/importers/members-login-events-importer.js +3 -3
- package/core/server/data/seeders/importers/members-products-importer.js +2 -2
- package/core/server/data/seeders/importers/members-status-events-importer.js +4 -3
- package/core/server/data/seeders/importers/members-stripe-customers-importer.js +2 -2
- package/core/server/data/seeders/importers/members-stripe-customers-subscriptions-importer.js +7 -7
- package/core/server/data/seeders/importers/members-subscribe-events-importer.js +3 -3
- package/core/server/data/seeders/importers/members-subscription-created-events-importer.js +3 -3
- package/core/server/data/seeders/importers/offer-redemptions-importer.js +7 -7
- package/core/server/data/seeders/importers/offers-importer.js +3 -3
- package/core/server/data/seeders/importers/posts-importer.js +4 -4
- package/core/server/data/seeders/importers/table-importer.js +2 -35
- package/core/server/data/seeders/importers/tags-importer.js +2 -2
- package/core/server/data/seeders/importers/users-importer.js +2 -2
- package/core/server/data/seeders/importers/web-mentions-importer.js +2 -2
- package/core/server/data/seeders/utils/random.js +7 -0
- package/core/server/ghost-server.js +19 -5
- package/core/server/lib/db-date.js +72 -3
- package/core/server/models/gift-delivery.js +23 -0
- package/core/server/models/gift.js +9 -0
- package/core/server/models/index.js +3 -2
- package/core/server/models/settings.js +43 -4
- package/core/server/services/automations/database-automations-repository.js +38 -31
- package/core/server/services/automations/poll.js +1 -1
- package/core/server/services/content-import/csv/index.js +8 -0
- package/core/server/services/content-import/csv/parse.js +60 -0
- package/core/server/services/content-import/import/importer.js +222 -0
- package/core/server/services/content-import/import/post-data.js +52 -0
- package/core/server/services/content-import/import/reader.js +15 -0
- package/core/server/services/content-import/import/row.js +50 -0
- package/core/server/services/content-import/import/store.js +71 -0
- package/core/server/services/content-import/index.js +67 -0
- package/core/server/services/email-analytics/automation-email-analytics-batch-processor.js +1 -1
- package/core/server/services/email-analytics/index.js +3 -1
- package/core/server/services/email-analytics/jobs/index.js +2 -2
- package/core/server/services/email-service/email-service-wrapper.js +1 -1
- package/core/server/services/email-suppression-list/email-suppression-list.js +4 -2
- package/core/server/services/gifts/CONTEXT.md +27 -3
- package/core/server/services/gifts/README.md +8 -4
- package/core/server/services/gifts/constants.js +2 -1
- package/core/server/services/gifts/email-templates/gift-delivery.hbs +20 -0
- package/core/server/services/gifts/email-templates/gift-delivery.js +39 -0
- package/core/server/services/gifts/email-templates/gift-purchase-confirmation.hbs +2 -2
- package/core/server/services/gifts/email-templates/gift-purchase-confirmation.js +19 -4
- package/core/server/services/gifts/events/send-gift-delivery-event.js +15 -0
- package/core/server/services/gifts/gift-bookshelf-repository.js +23 -3
- package/core/server/services/gifts/gift-checkout-adapter.js +5 -3
- package/core/server/services/gifts/gift-codec.js +8 -0
- package/core/server/services/gifts/gift-delivery-bookshelf-repository.js +107 -0
- package/core/server/services/gifts/gift-delivery-codec.js +12 -0
- package/core/server/services/gifts/gift-delivery-schema.js +15 -0
- package/core/server/services/gifts/gift-delivery-service.js +209 -0
- package/core/server/services/gifts/gift-email-renderer.js +13 -1
- package/core/server/services/gifts/gift-email-service.js +97 -17
- package/core/server/services/gifts/gift-schema.js +10 -6
- package/core/server/services/gifts/gift-service.js +259 -34
- package/core/server/services/gifts/gift.js +59 -5
- package/core/server/services/gifts/index.js +69 -3
- package/core/server/services/lib/mailgun-client.js +5 -2
- package/core/server/services/mail/ghost-mailer.js +9 -1
- package/core/server/services/member-welcome-emails/service.js +6 -1
- package/core/server/services/members/members-api/controllers/router-controller.js +26 -8
- package/core/server/services/stripe/services/webhook/checkout-session-event-service.js +100 -12
- package/core/server/services/stripe/stripe-api.js +3 -2
- package/core/server/services/stripe/webhook-controller.js +6 -3
- package/core/server/services/stripe/webhook-manager.js +2 -0
- package/core/shared/labs.js +1 -0
- package/package.json +9 -8
- package/pnpm-lock.yaml +26 -11
- package/pnpm-workspace.yaml +5 -6
- package/content/themes/source/yarn.lock +0 -6232
- package/core/built/admin/assets/Combination-BDvCdg1t.js +0 -41
- package/core/built/admin/assets/about-B_BvSyLF.js +0 -1
- package/core/built/admin/assets/account-migration-oJUGxnzT.js +0 -1
- package/core/built/admin/assets/activitypub/dist-Dqggkccr.js +0 -215
- package/core/built/admin/assets/activitypub/inbox-z1o2j1Tb.js +0 -1221
- package/core/built/admin/assets/activitypub/layout-BRMezuty.js +0 -1
- package/core/built/admin/assets/activitypub/moderation-CZudJi8N.js +0 -160
- package/core/built/admin/assets/activitypub/settings-CrSV1cux.js +0 -107
- package/core/built/admin/assets/add-integration-modal-BW23PDYs.js +0 -1
- package/core/built/admin/assets/add-newsletter-modal-M0ls8BKO.js +0 -1
- package/core/built/admin/assets/add-recommendation-modal-B0NeBMzl.js +0 -1
- package/core/built/admin/assets/announcement-bar-modal-pXBqjQE_.js +0 -1
- package/core/built/admin/assets/api-keys-Df6uv1dT.js +0 -1
- package/core/built/admin/assets/audience-BY8od8If.js +0 -1
- package/core/built/admin/assets/automations-DCs6Wady.js +0 -1
- package/core/built/admin/assets/bluesky-sharing-D0P42Cws.js +0 -1
- package/core/built/admin/assets/breadcrumb-MTj_cKLb.js +0 -1
- package/core/built/admin/assets/chart-helpers-DcO3k_vA.js +0 -1
- package/core/built/admin/assets/chunk-KS7C4IRE-DG9HTHQ3.js +0 -4
- package/core/built/admin/assets/color-picker-CBlJMv3y.js +0 -3
- package/core/built/admin/assets/combobox-BbPJzjCp.js +0 -1
- package/core/built/admin/assets/command-BrhXIlDr.js +0 -1
- package/core/built/admin/assets/comments-Cu4rD1aJ.js +0 -1
- package/core/built/admin/assets/confirmation-provider-BEdrnHns.js +0 -1
- package/core/built/admin/assets/custom-field-type-option-CNhAgHbJ.js +0 -1
- package/core/built/admin/assets/custom-integration-modal-CrGOI8IB.js +0 -1
- package/core/built/admin/assets/date-range-select-Bsh4gIek.js +0 -1
- package/core/built/admin/assets/design-and-theme-modal-DWZguwWX.js +0 -23
- package/core/built/admin/assets/dirty-confirm-dialog-DmdMpgyN.js +0 -1
- package/core/built/admin/assets/disabled-sources-indicator-BLnmyWgt.js +0 -1
- package/core/built/admin/assets/dist-DMFGvqqU.js +0 -1
- package/core/built/admin/assets/dist-DlCyLrOC.js +0 -1
- package/core/built/admin/assets/dist-j1xxxnY8.js +0 -1
- package/core/built/admin/assets/domain-Dp9TRrFp.js +0 -1
- package/core/built/admin/assets/edit-profile-DG6lpMsr.js +0 -1
- package/core/built/admin/assets/editor-CPQOrhrn.js +0 -8
- package/core/built/admin/assets/embed-signup-form-modal-CgWniDha.js +0 -9
- package/core/built/admin/assets/explore-C3rzONJv.js +0 -1
- package/core/built/admin/assets/feed-DpUwS1cU.js +0 -1
- package/core/built/admin/assets/filters-DZJT29GW.js +0 -1
- package/core/built/admin/assets/first-promoter-modal-DJhQQheG.js +0 -1
- package/core/built/admin/assets/gift-link-modal-sdFLjND9.js +0 -1
- package/core/built/admin/assets/global-data-provider-CixmTX00.js +0 -1
- package/core/built/admin/assets/growth-0YYkBEeS.js +0 -1
- package/core/built/admin/assets/growth-DpjAPeQT.js +0 -3
- package/core/built/admin/assets/history-modal-BWJ4-cJ0.js +0 -1
- package/core/built/admin/assets/html-field-C-oa5DEl.js +0 -1
- package/core/built/admin/assets/iframe-buffering-Ba9sDpi2.js +0 -1
- package/core/built/admin/assets/index-BOJzlYiz.js +0 -67
- package/core/built/admin/assets/index-Bid6LAyc.css +0 -1
- package/core/built/admin/assets/invite-user-modal-DCiQSiuD.js +0 -1
- package/core/built/admin/assets/koenig-editor-base-BApy8Q7C.js +0 -1
- package/core/built/admin/assets/kpi-helpers-ssbuy-hD.js +0 -1
- package/core/built/admin/assets/kpi-tabs-BqoIM6bI.js +0 -1
- package/core/built/admin/assets/label-picker-Cvvbmzb5.js +0 -1
- package/core/built/admin/assets/layout-DkkGyev2.js +0 -1
- package/core/built/admin/assets/member-custom-fields-CvGcpaiW.js +0 -1
- package/core/built/admin/assets/member-detail-CMCMZ47_.js +0 -1
- package/core/built/admin/assets/members-sRl6fNfq.js +0 -11
- package/core/built/admin/assets/moderation-KhKwGqI1.js +0 -1
- package/core/built/admin/assets/multi-select-combobox-nhCff0_K.js +0 -1
- package/core/built/admin/assets/navigation-modal-MDJExWDJ.js +0 -1
- package/core/built/admin/assets/newsletter-BIBHumfV.js +0 -1
- package/core/built/admin/assets/newsletter-detail-modal-CfjBMH3v.js +0 -1
- package/core/built/admin/assets/newsletter-emails-ClDL-7dA.js +0 -1
- package/core/built/admin/assets/newsletters-CBe-IPzK.js +0 -1
- package/core/built/admin/assets/note-HnNUOt4d.js +0 -1
- package/core/built/admin/assets/notifications-Cj5e-258.js +0 -1
- package/core/built/admin/assets/offers-container-modal-BHwHtixC.js +0 -1
- package/core/built/admin/assets/onboarding-route-D_4jp7Nq.js +0 -1
- package/core/built/admin/assets/overview-CezDdg-F.js +0 -1
- package/core/built/admin/assets/overview-D5mM51Lj.js +0 -1
- package/core/built/admin/assets/pintura-modal-BXXJ8Iaa.js +0 -1
- package/core/built/admin/assets/portal-frame-BLCvF8f-.js +0 -1
- package/core/built/admin/assets/portal-modal-DN80tAcy.js +0 -1
- package/core/built/admin/assets/post-analytics-header-_ydSY8qO.js +0 -1
- package/core/built/admin/assets/post-share-modal-CzYak_a5.js +0 -1
- package/core/built/admin/assets/preferences-gneLb6LV.js +0 -5
- package/core/built/admin/assets/preview-modal-Bkq-tgVm.js +0 -1
- package/core/built/admin/assets/profile-CzXmCNTC.js +0 -1
- package/core/built/admin/assets/radio-group-Dsq5ZEbV.js +0 -1
- package/core/built/admin/assets/router-provider-CkB_ArLF.js +0 -1
- package/core/built/admin/assets/select-xuZAuDyS.js +0 -1
- package/core/built/admin/assets/settings-Ct8pabhr.js +0 -1
- package/core/built/admin/assets/settings-KSWWQanQ.js +0 -4
- package/core/built/admin/assets/settings-breadcrumbs-DbPGu-Tu.js +0 -1
- package/core/built/admin/assets/share-modal-CdiUx9WM.js +0 -1
- package/core/built/admin/assets/slack-modal-BP--Z3jE.js +0 -1
- package/core/built/admin/assets/sort-button-CjfKdlsL.js +0 -1
- package/core/built/admin/assets/source-icon-DHj1h6Ts.js +0 -1
- package/core/built/admin/assets/stats-C615kulJ.js +0 -1
- package/core/built/admin/assets/stats-view-BSMRdYiN.js +0 -1
- package/core/built/admin/assets/step-1-pSdGYtIF.js +0 -1
- package/core/built/admin/assets/step-2-T9Uy4eBD.js +0 -1
- package/core/built/admin/assets/step-3-D4uXe_XG.js +0 -2
- package/core/built/admin/assets/stripe-connect-modal-C2vTvepi.js +0 -1
- package/core/built/admin/assets/switch-CE2NuMn-.js +0 -1
- package/core/built/admin/assets/tabs-l9c7FjzI.js +0 -1
- package/core/built/admin/assets/tag-detail-DBw_M2-p.js +0 -2
- package/core/built/admin/assets/tags-DoWsAG6l.js +0 -1
- package/core/built/admin/assets/testimonials-modal-BZKePE2T.js +0 -1
- package/core/built/admin/assets/tier-detail-modal-D65pVWsN.js +0 -1
- package/core/built/admin/assets/toggle-group-uJnl42w3.js +0 -1
- package/core/built/admin/assets/topic-filter-BM7hz0kW.js +0 -1
- package/core/built/admin/assets/transistor-modal-VZOGN3od.js +0 -1
- package/core/built/admin/assets/unsplash-modal-CKGfACxF.js +0 -1
- package/core/built/admin/assets/use-check-theme-limit-error-CGp3CGT5.js +0 -1
- package/core/built/admin/assets/use-feature-flag-CSq2Lwzt.js +0 -1
- package/core/built/admin/assets/use-filter-params-0hcJJuEJ.js +0 -1
- package/core/built/admin/assets/use-limiter-ffwpsZPp.js +0 -2
- package/core/built/admin/assets/use-pintura-editor-Cb41oJyL.js +0 -1
- package/core/built/admin/assets/use-query-params-DHhhu8wi.js +0 -1
- package/core/built/admin/assets/use-reply-chain-data-C0ZUTkfk.js +0 -1
- package/core/built/admin/assets/use-setting-group-Bx8M6FL2.js +0 -1
- package/core/built/admin/assets/use-settings-navigation-BOZcat_V.js +0 -1
- package/core/built/admin/assets/use-upgrade-route-B3_DUiuT.js +0 -1
- package/core/built/admin/assets/user-detail-modal-595z1N5r.js +0 -1
- package/core/built/admin/assets/web-CAta3lRE.js +0 -1
- package/core/built/admin/assets/web-Ds9_wWJK.js +0 -2
- package/core/built/admin/assets/zapier-modal-CcfDZY53.js +0 -1
- package/core/server/data/seeders/utils/database-date.js +0 -28
- package/core/server/services/automations/database-date.js +0 -59
- /package/core/built/admin/assets/{dist-CqO2lWS02.js → dist-CqO2lWS0.js} +0 -0
- /package/core/server/services/{automations → lib}/mailgun-message-id.js +0 -0
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./preload-helper-DYl5dUZ5.js";var r=e(t(),1),i=e=>{throw TypeError(e)},a=(e,t,n)=>t.has(e)||i(`Cannot `+n),o=(e,t,n)=>(a(e,t,`read from private field`),n?n.call(e):t.get(e)),s=(e,t,n)=>t.has(e)?i(`Cannot add the same private member more than once`):t instanceof WeakSet?t.add(e):t.set(e,n),c=(e,t,n,r)=>(a(e,t,`write to private field`),r?r.call(e,n):t.set(e,n),n),l=/^(?:[a-z][a-z0-9+.-]*:|[\\/]{2})/i,u=/^[\\/]{2}/;function d(e,t){return t+e.replace(/\\/g,`/`)}var f=`popstate`;function p(e){return typeof e==`object`&&!!e&&`pathname`in e&&`search`in e&&`hash`in e&&`state`in e&&`key`in e}function m(e={}){function t(e,t){let{pathname:n=`/`,search:r=``,hash:i=``}=x(e.location.hash.substring(1));return!n.startsWith(`/`)&&!n.startsWith(`.`)&&(n=`/`+n),y(``,{pathname:n,search:r,hash:i},t.state&&t.state.usr||null,t.state&&t.state.key||`default`)}function n(e,t){let n=e.document.querySelector(`base`),r=``;if(n&&n.getAttribute(`href`)){let t=e.location.href,n=t.indexOf(`#`);r=n===-1?t:t.slice(0,n)}return r+`#`+(typeof t==`string`?t:b(t))}function r(e,t){g(e.pathname.charAt(0)===`/`,`relative pathnames are not supported in hash history.push(${JSON.stringify(t)})`)}return S(t,n,r,e)}function h(e,t){if(e===!1||e==null)throw Error(t)}function g(e,t){if(!e){typeof console<`u`&&console.warn(t);try{throw Error(t)}catch{}}}function _(){return Math.random().toString(36).substring(2,10)}function v(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function y(e,t,n=null,r,i){return{pathname:typeof e==`string`?e:e.pathname,search:``,hash:``,...typeof t==`string`?x(t):t,state:n,key:t&&t.key||r||_(),mask:i}}function b({pathname:e=`/`,search:t=``,hash:n=``}){return t&&t!==`?`&&(e+=t.charAt(0)===`?`?t:`?`+t),n&&n!==`#`&&(e+=n.charAt(0)===`#`?n:`#`+n),e}function x(e){let t={};if(e){let n=e.indexOf(`#`);n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf(`?`);r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function S(e,t,n,r={}){let{window:i=document.defaultView,v5Compat:a=!1}=r,o=i.history,s=`POP`,c=null,l=u();l??(l=0,o.replaceState({...o.state,idx:l},``));function u(){return(o.state||{idx:null}).idx}function d(){s=`POP`;let e=u(),t=e==null?null:e-l;l=e,c&&c({action:s,location:_.location,delta:t})}function m(e,t){s=`PUSH`;let r=p(e)?e:y(_.location,e,t);n&&n(r,e),l=u()+1;let d=v(r,l),f=_.createHref(r.mask||r);try{o.pushState(d,``,f)}catch(e){if(e instanceof DOMException&&e.name===`DataCloneError`)throw e;i.location.assign(f)}a&&c&&c({action:s,location:_.location,delta:1})}function h(e,t){s=`REPLACE`;let r=p(e)?e:y(_.location,e,t);n&&n(r,e),l=u();let i=v(r,l),d=_.createHref(r.mask||r);o.replaceState(i,``,d),a&&c&&c({action:s,location:_.location,delta:0})}function g(e){return C(i,e)}let _={get action(){return s},get location(){return e(i,o)},listen(e){if(c)throw Error(`A history only accepts one active listener`);return i.addEventListener(f,d),c=e,()=>{i.removeEventListener(f,d),c=null}},createHref(e){return t(i,e)},createURL:g,encodeLocation(e){let t=g(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:m,replace:h,go(e){return o.go(e)}};return _}function C(e,t,n=!1){let r=`http://localhost`;e&&(r=e.location.origin===`null`?e.location.href:e.location.origin),h(r,`No window.location.(origin|href) available to create URL`);let i=typeof t==`string`?t:b(t);return i=i.replace(/ $/,`%20`),!n&&u.test(i)&&(i=r+i),new URL(i,r)}var w,T=class{constructor(e){if(s(this,w,new Map),e)for(let[t,n]of e)this.set(t,n)}get(e){if(o(this,w).has(e))return o(this,w).get(e);if(e.defaultValue!==void 0)return e.defaultValue;throw Error(`No value found for context`)}set(e,t){o(this,w).set(e,t)}};w=new WeakMap;var E=new Set([`lazy`,`caseSensitive`,`path`,`id`,`index`,`children`]);function D(e){return E.has(e)}var O=new Set([`lazy`,`caseSensitive`,`path`,`id`,`index`,`middleware`,`children`]);function k(e){return O.has(e)}function A(e){return e.index===!0}function j(e,t,n=[],r={},i=!1){return e.map((e,a)=>{let o=[...n,String(a)],s=typeof e.id==`string`?e.id:o.join(`-`);if(h(e.index!==!0||!e.children,`Cannot specify children on an index route`),h(i||!r[s],`Found a route id collision on id "${s}". Route id's must be globally unique within Data Router usages`),A(e)){let n={...e,id:s};return r[s]=M(n,t(n)),n}else{let n={...e,id:s,children:void 0};return r[s]=M(n,t(n)),e.children&&(n.children=j(e.children,t,o,r,i)),n}})}function M(e,t){return Object.assign(e,{...t,...typeof t.lazy==`object`&&t.lazy!=null?{lazy:{...e.lazy,...t.lazy}}:{}})}function N(e,t,n=`/`){return P(e,t,n,!1)}function P(e,t,n,r,i){let a=V((typeof t==`string`?x(t):t).pathname||`/`,n);if(a==null)return null;let o=i??F(e),s=null,c=fe(a);for(let e=0;s==null&&e<o.length;++e)s=de(o[e],c,r);return s}function ee(e,t){let{route:n,pathname:r,params:i}=e;return{id:n.id,pathname:r,params:i,data:t[n.id],loaderData:t[n.id],handle:n.handle}}function F(e){let t=I(e);return ne(t),t}function I(e,t=[],n=[],r=``,i=!1){let a=(e,a,o=i,s)=>{let c={relativePath:s===void 0?e.path||``:s,caseSensitive:e.caseSensitive===!0,childrenIndex:a,route:e};if(c.relativePath.startsWith(`/`)){if(!c.relativePath.startsWith(r)&&o)return;h(c.relativePath.startsWith(r),`Absolute route path "${c.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),c.relativePath=c.relativePath.slice(r.length)}let l=U([r,c.relativePath]),u=n.concat(c);e.children&&e.children.length>0&&(h(e.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${l}".`),I(e.children,t,u,l,o)),!(e.path==null&&!e.index)&&t.push({path:l,score:le(l,e.index),routesMeta:u.map((e,t)=>{let[n,r]=B(e.relativePath,e.caseSensitive,t===u.length-1);return{...e,matcher:n,compiledParams:r}})})};return e.forEach((e,t)=>{if(e.path===``||!e.path?.includes(`?`))a(e,t);else for(let n of te(e.path))a(e,t,!0,n)}),t}function te(e){let t=e.split(`/`);if(t.length===0)return[];let[n,...r]=t,i=n.endsWith(`?`),a=n.replace(/\?$/,``);if(r.length===0)return i?[a,``]:[a];let o=te(r.join(`/`)),s=[];return s.push(...o.map(e=>e===``?a:[a,e].join(`/`))),i&&s.push(...o),s.map(t=>e.startsWith(`/`)&&t===``?`/`:t)}function ne(e){e.sort((e,t)=>e.score===t.score?ue(e.routesMeta.map(e=>e.childrenIndex),t.routesMeta.map(e=>e.childrenIndex)):t.score-e.score)}var re=/^:[\w-]+$/,ie=3,ae=2,oe=1,L=10,se=-2,ce=e=>e===`*`;function le(e,t){let n=e.split(`/`),r=n.length;return n.some(ce)&&(r+=se),t&&(r+=ae),n.filter(e=>!ce(e)).reduce((e,t)=>e+(re.test(t)?ie:t===``?oe:L),r)}function ue(e,t){return e.length===t.length&&e.slice(0,-1).every((e,n)=>e===t[n])?e[e.length-1]-t[t.length-1]:0}function de(e,t,n=!1){let{routesMeta:r}=e,i={},a=`/`,o=[];for(let e=0;e<r.length;++e){let s=r[e],c=e===r.length-1,l=a===`/`?t:t.slice(a.length)||`/`,u={path:s.relativePath,caseSensitive:s.caseSensitive,end:c},d=s.matcher&&s.compiledParams?z(u,l,s.matcher,s.compiledParams):R(u,l),f=s.route;if(!d&&c&&n&&!r[r.length-1].route.index&&(d=R({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},l)),!d)return null;Object.assign(i,d.params),o.push({params:i,pathname:U([a,d.pathname]),pathnameBase:Se(U([a,d.pathnameBase])),route:f}),d.pathnameBase!==`/`&&(a=U([a,d.pathnameBase]))}return o}function R(e,t){typeof e==`string`&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=B(e.path,e.caseSensitive,e.end);return z(e,t,n,r)}function z(e,t,n,r){let i=t.match(n);if(!i)return null;let a=i[0],o=a.replace(/(.)\/+$/,`$1`),s=i.slice(1);return{params:r.reduce((e,{paramName:t,isOptional:n},r)=>{if(t===`*`){let e=s[r]||``;o=a.slice(0,a.length-e.length).replace(/(.)\/+$/,`$1`)}let i=s[r];return n&&!i?e[t]=void 0:e[t]=(i||``).replace(/%2F/g,`/`),e},{}),pathname:a,pathnameBase:o,pattern:e}}function B(e,t=!1,n=!0){g(e===`*`||!e.endsWith(`*`)||e.endsWith(`/*`),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,`/*`)}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,`/*`)}".`);let r=[],i=`^`+e.replace(/\/*\*?$/,``).replace(/^\/*/,`/`).replace(/[\\.*+^${}|()[\]]/g,`\\$&`).replace(/\/:([\w-]+)(\?)?/g,(e,t,n,i,a)=>{if(r.push({paramName:t,isOptional:n!=null}),n){let t=a.charAt(i+e.length);return t&&t!==`/`?`/([^\\/]*)`:`(?:/([^\\/]*))?`}return`/([^\\/]+)`}).replace(/\/([\w-]+)\?(\/|$)/g,`(/$1)?$2`);return e.endsWith(`*`)?(r.push({paramName:`*`}),i+=e===`*`||e===`/*`?`(.*)$`:`(?:\\/(.+)|\\/*)$`):n?i+=`\\/*$`:e!==``&&e!==`/`&&(i+=`(?:(?=\\/|$))`),[new RegExp(i,t?void 0:`i`),r]}function fe(e){try{return e.split(`/`).map(e=>decodeURIComponent(e).replace(/\//g,`%2F`)).join(`/`)}catch(t){return g(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function V(e,t){if(t===`/`)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith(`/`)?t.length-1:t.length,r=e.charAt(n);return r&&r!==`/`?null:e.slice(n)||`/`}function pe({basename:e,pathname:t}){return t===`/`?e:U([e,t])}var me=e=>l.test(e);function he(e,t=`/`){let{pathname:n,search:r=``,hash:i=``}=typeof e==`string`?x(e):e,a;return n?(n=be(n),a=n.startsWith(`/`)?ge(n.substring(1),`/`):ge(n,t)):a=t,{pathname:a,search:Ce(r),hash:we(i)}}function ge(e,t){let n=xe(t).split(`/`);return e.split(`/`).forEach(e=>{e===`..`?n.length>1&&n.pop():e!==`.`&&n.push(e)}),n.length>1?n.join(`/`):`/`}function _e(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function H(e){return e.filter((e,t)=>t===0||e.route.path&&e.route.path.length>0)}function ve(e){let t=H(e);return t.map((e,n)=>n===t.length-1?e.pathname:e.pathnameBase)}function ye(e,t,n,r=!1){let i;typeof e==`string`?i=x(e):(i={...e},h(!i.pathname||!i.pathname.includes(`?`),_e(`?`,`pathname`,`search`,i)),h(!i.pathname||!i.pathname.includes(`#`),_e(`#`,`pathname`,`hash`,i)),h(!i.search||!i.search.includes(`#`),_e(`#`,`search`,`hash`,i)));let a=e===``||i.pathname===``,o=a?`/`:i.pathname,s;if(o==null)s=n;else{let e=t.length-1;if(!r&&o.startsWith(`..`)){let t=o.split(`/`);for(;t[0]===`..`;)t.shift(),--e;i.pathname=t.join(`/`)}s=e>=0?t[e]:`/`}let c=he(i,s),l=o&&o!==`/`&&o.endsWith(`/`),u=(a||o===`.`)&&n.endsWith(`/`);return!c.pathname.endsWith(`/`)&&(l||u)&&(c.pathname+=`/`),c}var be=e=>e.replace(/[\\/]{2,}/g,`/`),U=e=>be(e.join(`/`)),xe=e=>e.replace(/\/+$/,``),Se=e=>xe(e).replace(/^\/*/,`/`),Ce=e=>!e||e===`?`?``:e.startsWith(`?`)?e:`?`+e,we=e=>!e||e===`#`?``:e.startsWith(`#`)?e:`#`+e,Te=(e,t=302)=>{let n=t;typeof n==`number`?n={status:n}:n.status===void 0&&(n.status=302);let r=new Headers(n.headers);return r.set(`Location`,e),new Response(null,{...n,headers:r})},Ee=[`EvalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`],De=class{constructor(e,t,n,r=!1){this.status=e,this.statusText=t||``,this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function Oe(e){return e!=null&&typeof e.status==`number`&&typeof e.statusText==`string`&&typeof e.internal==`boolean`&&`data`in e}function W(e){return U(e.map(e=>e.route.path).filter(Boolean))||`/`}var ke=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function Ae(e,t){let n=e;if(typeof n!=`string`||!l.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let r=n,i=!1;if(ke)try{let e=new URL(window.location.href),r=u.test(n)?new URL(d(n,e.protocol)):new URL(n),a=V(r.pathname,t);r.origin===e.origin&&a!=null?n=a+r.search+r.hash:i=!0}catch{g(!1,`<Link to="${n}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:r,isExternal:i,to:n}}var G=Symbol(`Uninstrumented`);function je(e,t){let n={lazy:[],"lazy.loader":[],"lazy.action":[],"lazy.middleware":[],middleware:[],loader:[],action:[]};e.forEach(e=>e({id:t.id,index:t.index,path:t.path,instrument(e){let t=Object.keys(n);for(let r of t)e[r]&&n[r].push(e[r])}}));let r={};if(typeof t.lazy==`function`&&n.lazy.length>0){let e=K(n.lazy,t.lazy,()=>void 0);e&&(r.lazy=e)}if(typeof t.lazy==`object`){let e=t.lazy;[`middleware`,`loader`,`action`].forEach(t=>{let i=e[t],a=n[`lazy.${t}`];if(typeof i==`function`&&a.length>0){let e=K(a,i,()=>void 0);e&&(r.lazy=Object.assign(r.lazy||{},{[t]:e}))}})}return[`loader`,`action`].forEach(e=>{let i=t[e];if(typeof i==`function`&&n[e].length>0){let t=i[G]??i,a=K(n[e],t,(...e)=>Ne(e[0]));a&&(e===`loader`&&t.hydrate===!0&&(a.hydrate=!0),a[G]=t,r[e]=a)}}),t.middleware&&t.middleware.length>0&&n.middleware.length>0&&(r.middleware=t.middleware.map(e=>{let t=e[G]??e,r=K(n.middleware,t,(...e)=>Ne(e[0]));return r?(r[G]=t,r):e})),r}function Me(e,t){let n={navigate:[],fetch:[]};if(t.forEach(e=>e({instrument(e){let t=Object.keys(e);for(let r of t)e[r]&&n[r].push(e[r])}})),n.navigate.length>0){let t=e.navigate[G]??e.navigate,r=K(n.navigate,t,(...t)=>{let[n,r]=t;return{to:typeof n==`number`||typeof n==`string`?n:n?b(n):`.`,...Pe(e,r??{})}});r&&(r[G]=t,e.navigate=r)}if(n.fetch.length>0){let t=e.fetch[G]??e.fetch,r=K(n.fetch,t,(...t)=>{let[n,,r,i]=t;return{href:r??`.`,fetcherKey:n,...Pe(e,i??{})}});r&&(r[G]=t,e.fetch=r)}return e}function K(e,t,n){return e.length===0?null:async(...r)=>{let i=await q(e,n(...r),()=>t(...r),e.length-1);if(i.type===`error`)throw i.value;return i.value}}async function q(e,t,n,r){let i=e[r],a;if(i){let o,s=async()=>(o?console.error(`You cannot call instrumented handlers more than once`):o=q(e,t,n,r-1),a=await o,h(a,`Expected a result`),a.type===`error`&&a.value instanceof Error?{status:`error`,error:a.value}:{status:`success`,error:void 0});try{await i(s,t)}catch(e){console.error(`An instrumentation function threw an error:`,e)}o||await s(),await o}else try{a={type:`success`,value:await n()}}catch(e){a={type:`error`,value:e}}return a||{type:`error`,value:Error(`No result assigned in instrumentation chain.`)}}function Ne(e){let{request:t,context:n,params:r,pattern:i}=e;return{request:Fe(t),params:{...r},pattern:i,context:Ie(n)}}function Pe(e,t){return{currentUrl:b(e.state.location),...`formMethod`in t?{formMethod:t.formMethod}:{},...`formEncType`in t?{formEncType:t.formEncType}:{},...`formData`in t?{formData:t.formData}:{},...`body`in t?{body:t.body}:{}}}function Fe(e){return{method:e.method,url:e.url,headers:{get:(...t)=>e.headers.get(...t)}}}function Ie(e){if(Re(e)){let t={...e};return Object.freeze(t),t}else return{get:t=>e.get(t)}}var Le=Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);function Re(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Object.getOwnPropertyNames(t).sort().join(`\0`)===Le}var ze=[`POST`,`PUT`,`PATCH`,`DELETE`],Be=new Set(ze),Ve=[`GET`,...ze],He=new Set(Ve),Ue=new Set([301,302,303,307,308]),We=new Set([307,308]),Ge={state:`idle`,location:void 0,matches:void 0,historyAction:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Ke={state:`idle`,data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},qe={state:`unblocked`,proceed:void 0,reset:void 0,location:void 0},Je=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),Ye=`remix-router-transitions`,Xe=Symbol(`ResetLoaderData`),Ze,Qe,$e,et,tt=class{constructor(e){s(this,Ze),s(this,Qe),s(this,$e),s(this,et),c(this,Ze,e),c(this,Qe,F(e))}get stableRoutes(){return o(this,Ze)}get activeRoutes(){return o(this,$e)??o(this,Ze)}get branches(){return o(this,et)??o(this,Qe)}get hasHMRRoutes(){return o(this,$e)!=null}setRoutes(e){c(this,Ze,e),c(this,Qe,F(e))}setHmrRoutes(e){c(this,$e,e),c(this,et,F(e))}commitHmrRoutes(){o(this,$e)&&(c(this,Ze,o(this,$e)),c(this,Qe,o(this,et)),c(this,$e,void 0),c(this,et,void 0))}};Ze=new WeakMap,Qe=new WeakMap,$e=new WeakMap,et=new WeakMap;function nt(e){let t=e.window?e.window:typeof window<`u`?window:void 0,n=t!==void 0&&t.document!==void 0&&t.document.createElement!==void 0;h(e.routes.length>0,`You must provide a non-empty routes array to createRouter`);let r=e.hydrationRouteProperties||[],i=e.mapRouteProperties||Je,a=i;if(e.instrumentations){let t=e.instrumentations;a=e=>({...i(e),...je(t.map(e=>e.route).filter(Boolean),e)})}let o={},s=new tt(j(e.routes,a,void 0,o)),c=e.basename||`/`;c.startsWith(`/`)||(c=`/${c}`);let l=e.dataStrategy||yt,u={...e.future},d=null,f=new Set,p=null,m=null,_=null,v=null,b=e.hydrationData!=null,S=P(s.activeRoutes,e.history.location,c,!1,s.branches),w=!1,E=null,D,O;if(S==null&&!e.patchRoutesOnNavigation){let t=J(404,{pathname:e.history.location.pathname}),{matches:n,route:r}=Ut(s.activeRoutes);D=!0,O=!D,S=n,E={[r.id]:t}}else if(S&&!e.hydrationData&&nt(S,s.activeRoutes,e.history.location.pathname).active&&(S=null),!S){D=!1,O=!D,S=[];let t=nt(null,s.activeRoutes,e.history.location.pathname);t.active&&t.matches&&(w=!0,S=t.matches)}else if(S.some(e=>e.route.lazy))D=!1,O=!D;else if(!S.some(e=>st(e.route)))D=!0,O=!D;else{let t=e.hydrationData?e.hydrationData.loaderData:null,n=e.hydrationData?e.hydrationData.errors:null,r=S;if(n){let e=S.findIndex(e=>n[e.route.id]!==void 0);r=r.slice(0,e+1)}O=!1,D=!0,r.forEach(e=>{let r=ct(e.route,t,n);O||=r.renderFallback,D&&=!r.shouldLoad})}let k,A={historyAction:e.history.action,location:e.history.location,matches:S,initialized:D,renderFallback:O,navigation:Ge,restoreScrollPosition:e.hydrationData==null?null:!1,preventScrollReset:!1,revalidation:`idle`,loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||E,fetchers:new Map,blockers:new Map},M=`POP`,N=null,F=!1,I,te=!1,ne=new Map,re=null,ie=!1,ae=!1,oe=new Set,L=new Map,se=0,ce=-1,le=new Map,ue=new Set,de=new Map,R=new Map,z=new Set,B=new Map,fe,pe=null;function he(){if(d=e.history.listen(({action:t,location:n,delta:r})=>{if(fe){fe(),fe=void 0;return}g(B.size===0||r!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let i=Ye({currentLocation:A.location,nextLocation:n,historyAction:t});if(i&&r!=null){let t=new Promise(e=>{fe=e});e.history.go(r*-1),Ue(i,{state:`blocked`,location:n,proceed(){Ue(i,{state:`proceeding`,proceed:void 0,reset:void 0,location:n}),t.then(()=>e.history.go(r))},reset(){let e=new Map(A.blockers);e.set(i,qe),H({blockers:e})}}),N?.resolve(),N=null;return}return U(t,n)}),n){fn(t,ne);let e=()=>pn(t,ne);t.addEventListener(`pagehide`,e),re=()=>t.removeEventListener(`pagehide`,e)}return A.initialized||U(`POP`,A.location,{initialHydration:!0}),k}function ge(){d&&d(),re&&re(),f.clear(),I&&I.abort(),A.fetchers.forEach((e,t)=>Fe(A.fetchers,t)),A.blockers.forEach((e,t)=>He(t))}function _e(e){if(f.add(e),p){let{newErrors:t}=p;p=null,e(A,{deletedFetchers:[],newErrors:t,viewTransitionOpts:void 0,flushSync:!1})}return()=>f.delete(e)}function H(e,t={}){e.matches&&=e.matches.map(e=>{let t=o[e.route.id],n=e.route;return n.element!==t.element||n.errorElement!==t.errorElement||n.hydrateFallbackElement!==t.hydrateFallbackElement?{...e,route:t}:e}),A={...A,...e};let n=[],r=[];A.fetchers.forEach((e,t)=>{e.state===`idle`&&(z.has(t)?n.push(t):r.push(t))}),z.forEach(e=>{!A.fetchers.has(e)&&!L.has(e)&&n.push(e)}),f.size===0&&(p={newErrors:e.errors??null}),[...f].forEach(r=>r(A,{deletedFetchers:n,newErrors:e.errors??null,viewTransitionOpts:t.viewTransitionOpts,flushSync:t.flushSync===!0})),n.forEach(e=>Fe(A.fetchers,e)),r.forEach(e=>A.fetchers.delete(e))}function ve(t,n,{flushSync:r}={}){let i=A.actionData!=null&&A.navigation.formMethod!=null&&X(A.navigation.formMethod)&&A.navigation.state===`loading`&&t.state?._isRedirect!==!0,a;a=n.actionData?Object.keys(n.actionData).length>0?n.actionData:null:i?A.actionData:null;let o=n.loaderData?Bt(A.loaderData,n.loaderData,n.matches||[],n.errors):A.loaderData,c=A.blockers;c.size>0&&(c=new Map(c),c.forEach((e,t)=>c.set(t,qe)));let l=ie?!1:et(t,n.matches||A.matches),u=F===!0||A.navigation.formMethod!=null&&X(A.navigation.formMethod)&&t.state?._isRedirect!==!0;s.commitHmrRoutes(),ie||M===`POP`||(M===`PUSH`?e.history.push(t,t.state):M===`REPLACE`&&e.history.replace(t,t.state));let d;if(M===`POP`){let e=ne.get(A.location.pathname);e&&e.has(t.pathname)?d={currentLocation:A.location,nextLocation:t}:ne.has(t.pathname)&&(d={currentLocation:t,nextLocation:A.location})}else if(te){let e=ne.get(A.location.pathname);e?e.add(t.pathname):(e=new Set([t.pathname]),ne.set(A.location.pathname,e)),d={currentLocation:A.location,nextLocation:t}}H({...n,actionData:a,loaderData:o,historyAction:M,location:t,initialized:!0,renderFallback:!1,navigation:Ge,revalidation:`idle`,restoreScrollPosition:l,preventScrollReset:u,blockers:c},{viewTransitionOpts:d,flushSync:r===!0}),M=`POP`,F=!1,te=!1,ie=!1,ae=!1,N?.resolve(),N=null,pe?.resolve(),pe=null}async function ye(t,n){if(N?.resolve(),N=null,typeof t==`number`){N||=mn();let n=N.promise;return e.history.go(t),n}let{path:r,submission:i,error:a}=at(!1,it(A.location,A.matches,c,t,n?.fromRouteId,n?.relative),n),o;n?.mask&&(o={pathname:``,search:``,hash:``,...typeof n.mask==`string`?x(n.mask):{...A.location.mask,...n.mask}});let s=A.location,l=y(s,r,n&&n.state,void 0,o);l={...l,...e.history.encodeLocation(l)};let u=n&&n.replace!=null?n.replace:void 0,d=`PUSH`;u===!0?d=`REPLACE`:u===!1||i!=null&&X(i.formMethod)&&i.formAction===A.location.pathname+A.location.search&&(d=`REPLACE`);let f=n&&`preventScrollReset`in n?n.preventScrollReset===!0:void 0,p=(n&&n.flushSync)===!0,m=Ye({currentLocation:s,nextLocation:l,historyAction:d});if(m){Ue(m,{state:`blocked`,location:l,proceed(){Ue(m,{state:`proceeding`,proceed:void 0,reset:void 0,location:l}),ye(t,n)},reset(){let e=new Map(A.blockers);e.set(m,qe),H({blockers:e})}});return}await U(d,l,{submission:i,pendingError:a,preventScrollReset:f,replace:n&&n.replace,enableViewTransition:n&&n.viewTransition,flushSync:p,callSiteDefaultShouldRevalidate:n&&n.defaultShouldRevalidate})}function be(){pe||=mn(),G(),H({revalidation:`loading`});let e=pe.promise;return A.navigation.state===`submitting`?e:A.navigation.state===`idle`?(U(A.historyAction,A.location,{startUninterruptedRevalidation:!0}),e):(U(M||A.historyAction,A.navigation.location,{overrideNavigation:A.navigation,enableViewTransition:te===!0}),e)}async function U(t,n,r){I&&I.abort(),I=null,M=t,ie=(r&&r.startUninterruptedRevalidation)===!0,$e(A.location,A.matches),F=(r&&r.preventScrollReset)===!0,te=(r&&r.enableViewTransition)===!0;let i=s.activeRoutes,a=r?.initialHydration&&A.matches&&A.matches.length>0&&!w?A.matches:P(i,n,c,!1,s.branches),o=(r&&r.flushSync)===!0;if(a&&A.initialized&&!ae&&Kt(A.location,n)&&!(r&&r.submission&&X(r.submission.formMethod))){ve(n,{matches:a},{flushSync:o});return}let l=nt(a,i,n.pathname);if(l.active&&l.matches&&(a=l.matches),!a){let{error:e,notFoundMatches:t,route:r}=Xe(n.pathname);ve(n,{matches:t,loaderData:{},errors:{[r.id]:e}},{flushSync:o});return}let u=r&&r.overrideNavigation?{...r.overrideNavigation,matches:a,historyAction:t}:void 0;I=new AbortController;let d=Pt(e.history,n,I.signal,r&&r.submission),f=e.getContext?await e.getContext():new T,p;if(r&&r.pendingError)p=[Ht(a).route.id,{type:`error`,error:r.pendingError}];else if(r&&r.submission&&X(r.submission.formMethod)){let i=await xe(d,n,r.submission,a,t,f,l.active,r&&r.initialHydration===!0,{replace:r.replace,flushSync:o});if(i.shortCircuited)return;if(i.pendingActionResult){let[e,t]=i.pendingActionResult;if(Y(t)&&Oe(t.error)&&t.error.status===404){I=null,ve(n,{matches:i.matches,loaderData:{},errors:{[e]:t.error}});return}}a=i.matches||a,p=i.pendingActionResult,u=sn(n,a,t,r.submission),o=!1,l.active=!1,d=Pt(e.history,d.url,d.signal)}let{shortCircuited:m,matches:h,loaderData:g,errors:_,workingFetchers:v}=await Se(d,n,a,t,f,l.active,u,r&&r.submission,r&&r.fetcherSubmission,r&&r.replace,r&&r.initialHydration===!0,o,p,r&&r.callSiteDefaultShouldRevalidate);m||(I=null,ve(n,{matches:h||a,...Vt(p),loaderData:g,errors:_,...v?{fetchers:v}:{}}))}async function xe(t,n,i,l,u,d,f,p,m={}){if(G(),H({navigation:cn(n,l,u,i)},{flushSync:m.flushSync===!0}),f){let e=await rt(l,n.pathname,t.signal);if(e.type===`aborted`)return{shortCircuited:!0};if(e.type===`error`){if(e.partialMatches.length===0){let{matches:t,route:n}=Ut(s.activeRoutes);return{matches:t,pendingActionResult:[n.id,{type:`error`,error:e.error}]}}let t=Ht(e.partialMatches).route.id;return{matches:e.partialMatches,pendingActionResult:[t,{type:`error`,error:e.error}]}}else if(e.matches)l=e.matches;else{let{notFoundMatches:e,error:t,route:r}=Xe(n.pathname);return{matches:e,pendingActionResult:[r.id,{type:`error`,error:t}]}}}let h,g=an(l,n);if(!g.route.action&&!g.route.lazy)h={type:`error`,error:J(405,{method:t.method,pathname:n.pathname,routeId:g.route.id})};else{let e=await ke(t,n,Tt(a,o,t,n,l,g,p?[]:r,d),d,null);if(h=e[g.route.id],!h){for(let t of l)if(e[t.route.id]){h=e[t.route.id];break}}if(t.signal.aborted)return{shortCircuited:!0}}if(Zt(h)){let n;return n=m&&m.replace!=null?m.replace:Nt(h.response.headers.get(`Location`),new URL(t.url),c,e.history)===A.location.pathname+A.location.search,await W(t,h,!0,{submission:i,replace:n}),{shortCircuited:!0}}if(Y(h)){let e=Ht(l,g.route.id);return(m&&m.replace)!==!0&&(M=`PUSH`),{matches:l,pendingActionResult:[e.route.id,h,g.route.id]}}return{matches:l,pendingActionResult:[g.route.id,h]}}async function Se(t,n,i,l,u,d,f,p,m,h,g,_,v,y){let b=f||sn(n,i,l,p),x=p||m||on(b),S=!ie&&!g;if(d){if(S){let e=Ce(v);H({navigation:b,...e===void 0?{}:{actionData:e}},{flushSync:_})}let e=await rt(i,n.pathname,t.signal);if(e.type===`aborted`)return{shortCircuited:!0};if(e.type===`error`){if(e.partialMatches.length===0){let{matches:t,route:n}=Ut(s.activeRoutes);return{matches:t,loaderData:{},errors:{[n.id]:e.error}}}let t=Ht(e.partialMatches).route.id;return{matches:e.partialMatches,loaderData:{},errors:{[t]:e.error}}}else if(e.matches)i=e.matches;else{let{error:e,notFoundMatches:t,route:r}=Xe(n.pathname);return{matches:t,loaderData:{},errors:{[r.id]:e}}}}let C=s.activeRoutes,{dsMatches:w,revalidatingFetchers:T}=ot(t,u,a,o,e.history,A,i,x,n,g?[]:r,g===!0,ae,oe,z,de,ue,C,c,e.patchRoutesOnNavigation!=null,s.branches,v,y);if(ce=++se,!e.dataStrategy&&!w.some(e=>e.shouldLoad)&&!w.some(e=>e.route.middleware&&e.route.middleware.length>0)&&T.length===0){let e=new Map(A.fetchers),t=ze(e);return ve(n,{matches:i,loaderData:{},errors:v&&Y(v[1])?{[v[0]]:v[1].error}:null,...Vt(v),...t?{fetchers:e}:{}},{flushSync:_}),{shortCircuited:!0}}if(S){let e={};if(!d){e.navigation=b;let t=Ce(v);t!==void 0&&(e.actionData=t)}T.length>0&&(e.fetchers=we(T)),H(e,{flushSync:_})}T.forEach(e=>{Le(e.key),e.controller&&L.set(e.key,e.controller)});let E=()=>T.forEach(e=>Le(e.key));I&&I.signal.addEventListener(`abort`,E);let{loaderResults:D,fetcherResults:O}=await Ae(w,T,t,n,u);if(t.signal.aborted)return{shortCircuited:!0};I&&I.signal.removeEventListener(`abort`,E),T.forEach(e=>L.delete(e.key));let k=Wt(D);if(k)return await W(t,k.result,!0,{replace:h}),{shortCircuited:!0};if(k=Wt(O),k)return ue.add(k.key),await W(t,k.result,!0,{replace:h}),{shortCircuited:!0};let j=new Map(A.fetchers),{loaderData:M,errors:N}=zt(A,i,D,v,T,O,j);g&&A.errors&&(N={...A.errors,...N});let P=ze(j),ee=Be(ce,j),F=P||ee||T.length>0;return{matches:i,loaderData:M,errors:N,...F?{workingFetchers:j}:{}}}function Ce(e){if(e&&!Y(e[1]))return{[e[0]]:e[1].data};if(A.actionData)return Object.keys(A.actionData).length===0?null:A.actionData}function we(e){let t=new Map(A.fetchers);return e.forEach(e=>{let n=t.get(e.key),r=ln(void 0,n?n.data:void 0);t.set(e.key,r)}),t}async function Te(t,n,r,i){Le(t);let a=(i&&i.flushSync)===!0,o=s.activeRoutes,l=it(A.location,A.matches,c,r,n,i?.relative),u=P(o,l,c,!1,s.branches),d=nt(u,o,l);if(d.active&&d.matches&&(u=d.matches),!u){q(t,n,J(404,{pathname:l}),{flushSync:a});return}let{path:f,submission:p,error:m}=at(!0,l,i);if(m){q(t,n,m,{flushSync:a});return}let h=e.getContext?await e.getContext():new T,g=(i&&i.preventScrollReset)===!0;if(p&&X(p.formMethod)){await Ee(t,n,f,u,h,d.active,a,g,p,i&&i.defaultShouldRevalidate);return}de.set(t,{routeId:n,path:f}),await De(t,n,f,u,h,d.active,a,g,p)}async function Ee(t,n,i,l,u,d,f,p,m,g){G(),de.delete(t),K(t,un(m,A.fetchers.get(t)),{flushSync:f});let _=new AbortController,v=Pt(e.history,i,_.signal,m);if(d){let e=await rt(l,new URL(v.url).pathname,v.signal,t);if(e.type===`aborted`)return;if(e.type===`error`){q(t,n,e.error,{flushSync:f});return}else if(e.matches)l=e.matches;else{q(t,n,J(404,{pathname:i}),{flushSync:f});return}}let y=an(l,i);if(!y.route.action&&!y.route.lazy){q(t,n,J(405,{method:m.formMethod,pathname:i,routeId:n}),{flushSync:f});return}L.set(t,_);let b=se,x=Tt(a,o,v,i,l,y,r,u),S=await ke(v,i,x,u,t),C=S[y.route.id];if(!C){for(let e of x)if(S[e.route.id]){C=S[e.route.id];break}}if(v.signal.aborted){L.get(t)===_&&L.delete(t);return}if(z.has(t)){if(Zt(C)||Y(C)){K(t,dn(void 0));return}}else{if(Zt(C))if(L.delete(t),ce>b){K(t,dn(void 0));return}else return ue.add(t),K(t,ln(m)),W(v,C,!1,{fetcherSubmission:m,preventScrollReset:p});if(Y(C)){q(t,n,C.error);return}}let w=A.navigation.location||A.location,T=Pt(e.history,w,_.signal),E=s.activeRoutes,D=A.navigation.state===`idle`?A.matches:P(E,A.navigation.location,c,!1,s.branches);h(D,`Didn't find any matches after fetcher action`);let O=++se;le.set(t,O);let{dsMatches:k,revalidatingFetchers:j}=ot(T,u,a,o,e.history,A,D,m,w,r,!1,ae,oe,z,de,ue,E,c,e.patchRoutesOnNavigation!=null,s.branches,[y.route.id,C],g),N=ln(m,C.data),ee=new Map(A.fetchers);ee.set(t,N),j.filter(e=>e.key!==t).forEach(e=>{let t=e.key,n=ee.get(t),r=ln(void 0,n?n.data:void 0);ee.set(t,r),Le(t),e.controller&&L.set(t,e.controller)}),H({fetchers:ee});let F=()=>j.forEach(e=>Le(e.key));_.signal.addEventListener(`abort`,F);let{loaderResults:te,fetcherResults:ne}=await Ae(k,j,T,w,u);if(_.signal.aborted)return;_.signal.removeEventListener(`abort`,F),le.delete(t),L.delete(t),j.forEach(e=>L.delete(e.key));let re=A.fetchers.has(t),ie=e=>{if(!re)return e;let n=new Map(e.fetchers);return n.set(t,dn(C.data)),{...e,fetchers:n}},R=Wt(te);if(R)return A=ie(A),W(T,R.result,!1,{preventScrollReset:p});if(R=Wt(ne),R)return ue.add(R.key),A=ie(A),W(T,R.result,!1,{preventScrollReset:p});let B=new Map(A.fetchers);re&&B.set(t,dn(C.data));let{loaderData:fe,errors:V}=zt(A,D,te,void 0,j,ne,B);Be(O,B),A.navigation.state===`loading`&&O>ce?(h(M,`Expected pending action`),I&&I.abort(),ve(A.navigation.location,{matches:D,loaderData:fe,errors:V,fetchers:B})):(H({errors:V,loaderData:Bt(A.loaderData,fe,D,V),fetchers:B}),ae=!1)}async function De(t,n,i,s,c,l,u,d,f){let p=A.fetchers.get(t);K(t,ln(f,p?p.data:void 0),{flushSync:u});let m=new AbortController,h=Pt(e.history,i,m.signal);if(l){let e=await rt(s,new URL(h.url).pathname,h.signal,t);if(e.type===`aborted`)return;if(e.type===`error`){q(t,n,e.error,{flushSync:u});return}else if(e.matches)s=e.matches;else{q(t,n,J(404,{pathname:i}),{flushSync:u});return}}let g=an(s,i);L.set(t,m);let _=se,v=await ke(h,i,Tt(a,o,h,i,s,g,r,c),c,t),y=v[g.route.id];if(!y){for(let e of s)if(v[e.route.id]){y=v[e.route.id];break}}if(L.get(t)===m&&L.delete(t),!h.signal.aborted){if(z.has(t)){K(t,dn(void 0));return}if(Zt(y))if(ce>_){K(t,dn(void 0));return}else{ue.add(t),await W(h,y,!1,{preventScrollReset:d});return}if(Y(y)){q(t,n,y.error);return}K(t,dn(y.data))}}async function W(r,i,a,{submission:o,fetcherSubmission:s,preventScrollReset:l,replace:u}={}){a||(N?.resolve(),N=null),i.response.headers.has(`X-Remix-Revalidate`)&&(ae=!0);let d=i.response.headers.get(`Location`);h(d,`Expected a Location header on the redirect Response`),d=Nt(d,new URL(r.url),c,e.history);let f=y(A.location,d,{_isRedirect:!0});if(n){let e=!1;if(i.response.headers.has(`X-Remix-Reload-Document`))e=!0;else if(me(d)){let n=C(t,d,!0);e=n.origin!==t.location.origin||V(n.pathname,c)==null}if(e){u?t.location.replace(d):t.location.assign(d);return}}I=null;let p=u===!0||i.response.headers.has(`X-Remix-Replace`)?`REPLACE`:`PUSH`,{formMethod:m,formAction:g,formEncType:_}=A.navigation;!o&&!s&&m&&g&&_&&(o=on(A.navigation));let v=o||s;We.has(i.response.status)&&v&&X(v.formMethod)?await U(p,f,{submission:{...v,formAction:d},preventScrollReset:l||F,enableViewTransition:a?te:void 0}):await U(p,f,{overrideNavigation:sn(f,[],p,o),fetcherSubmission:s,preventScrollReset:l||F,enableViewTransition:a?te:void 0})}async function ke(e,t,n,r,i){let a,o={};try{a=await Et(l,e,t,n,i,r,!1)}catch(e){return n.filter(e=>e.shouldLoad).forEach(t=>{o[t.route.id]={type:`error`,error:e}}),o}if(e.signal.aborted)return o;if(!X(e.method))for(let e of n){if(a[e.route.id]?.type===`error`)break;!a.hasOwnProperty(e.route.id)&&!A.loaderData.hasOwnProperty(e.route.id)&&(!A.errors||!A.errors.hasOwnProperty(e.route.id))&&e.shouldCallHandler()&&(a[e.route.id]={type:`error`,result:Error(`No result returned from dataStrategy for route ${e.route.id}`)})}for(let[t,r]of Object.entries(a))if(Xt(r)){let i=r.result;o[t]={type:`redirect`,response:At(i,e,t,n,c)}}else o[t]=await kt(r);return o}async function Ae(e,t,n,r,i){let a=ke(n,r,e,i,null),o=Promise.all(t.map(async e=>{if(e.matches&&e.match&&e.request&&e.controller){let t=(await ke(e.request,e.path,e.matches,i,e.key))[e.match.route.id];return{[e.key]:t}}else return Promise.resolve({[e.key]:{type:`error`,error:J(404,{pathname:e.path})}})}));return{loaderResults:await a,fetcherResults:(await o).reduce((e,t)=>Object.assign(e,t),{})}}function G(){ae=!0,de.forEach((e,t)=>{L.has(t)&&oe.add(t),Le(t)})}function K(e,t,n={}){let r=new Map(A.fetchers);r.set(e,t),H({fetchers:r},{flushSync:(n&&n.flushSync)===!0})}function q(e,t,n,r={}){let i=Ht(A.matches,t),a=new Map(A.fetchers);Fe(a,e),H({errors:{[i.route.id]:n},fetchers:a},{flushSync:(r&&r.flushSync)===!0})}function Ne(e){return R.set(e,(R.get(e)||0)+1),z.has(e)&&z.delete(e),A.fetchers.get(e)||Ke}function Pe(e,t){Le(e,t?.reason),K(e,dn(null))}function Fe(e,t){let n=A.fetchers.get(t);L.has(t)&&!(n&&n.state===`loading`&&le.has(t))&&Le(t),de.delete(t),le.delete(t),ue.delete(t),z.delete(t),oe.delete(t),e.delete(t)}function Ie(e){let t=(R.get(e)||0)-1;t<=0?(R.delete(e),z.add(e)):R.set(e,t),H({fetchers:new Map(A.fetchers)})}function Le(e,t){let n=L.get(e);n&&(n.abort(t),L.delete(e))}function Re(e,t){for(let n of e){let e=t.get(n);h(e,`Expected fetcher: ${n}`);let r=dn(e.data);t.set(n,r)}}function ze(e){let t=[],n=!1;for(let r of ue){let i=e.get(r);h(i,`Expected fetcher: ${r}`),i.state===`loading`&&(ue.delete(r),t.push(r),n=!0)}return Re(t,e),n}function Be(e,t){let n=[];for(let[r,i]of le)if(i<e){let e=t.get(r);h(e,`Expected fetcher: ${r}`),e.state===`loading`&&(Le(r),le.delete(r),n.push(r))}return Re(n,t),n.length>0}function Ve(e,t){let n=A.blockers.get(e)||qe;return B.get(e)!==t&&B.set(e,t),n}function He(e){A.blockers.delete(e),B.delete(e)}function Ue(e,t){let n=A.blockers.get(e)||qe;h(n.state===`unblocked`&&t.state===`blocked`||n.state===`blocked`&&t.state===`blocked`||n.state===`blocked`&&t.state===`proceeding`||n.state===`blocked`&&t.state===`unblocked`||n.state===`proceeding`&&t.state===`unblocked`,`Invalid blocker state transition: ${n.state} -> ${t.state}`);let r=new Map(A.blockers);r.set(e,t),H({blockers:r})}function Ye({currentLocation:e,nextLocation:t,historyAction:n}){if(B.size===0)return;B.size>1&&g(!1,`A router only supports one blocker at a time`);let r=Array.from(B.entries()),[i,a]=r[r.length-1],o=A.blockers.get(i);if(!(o&&o.state===`proceeding`)&&a({currentLocation:e,nextLocation:t,historyAction:n}))return i}function Xe(e){let t=J(404,{pathname:e}),n=s.activeRoutes,{matches:r,route:i}=Ut(n);return{notFoundMatches:r,route:i,error:t}}function Ze(e,t,n){if(m=e,v=t,_=n||null,!b&&A.navigation===Ge){b=!0;let e=et(A.location,A.matches);e!=null&&H({restoreScrollPosition:e})}return()=>{m=null,v=null,_=null}}function Qe(e,t){return _&&_(e,t.map(e=>ee(e,A.loaderData)))||e.key}function $e(e,t){if(m&&v){let n=Qe(e,t);m[n]=v()}}function et(e,t){if(m){let n=Qe(e,t),r=m[n];if(typeof r==`number`)return r}return null}function nt(t,n,r){if(e.patchRoutesOnNavigation){let e=s.branches;if(!t)return{active:!0,matches:P(n,r,c,!0,e)||[]};if(Object.keys(t[0].params).length>0)return{active:!0,matches:P(n,r,c,!0,e)}}return{active:!1,matches:null}}async function rt(t,n,r,i){if(!e.patchRoutesOnNavigation)return{type:`success`,matches:t};let l=t;for(;;){let t=o;try{await e.patchRoutesOnNavigation({signal:r,path:n,matches:l,fetcherKey:i,patch:(e,n)=>{r.aborted||ft(e,n,s,t,a,!1)}})}catch(e){return{type:`error`,error:e,partialMatches:l}}if(r.aborted)return{type:`aborted`};let u=s.branches,d=P(s.activeRoutes,n,c,!1,u),f=null;if(d&&(Object.keys(d[0].params).length===0||(f=P(s.activeRoutes,n,c,!0,u),!(f&&l.length<f.length&<(l,f.slice(0,l.length))))))return{type:`success`,matches:d};if(f||=P(s.activeRoutes,n,c,!0,u),!f||lt(l,f))return{type:`success`,matches:null};l=f}}function lt(e,t){return e.length===t.length&&e.every((e,n)=>e.route.id===t[n].route.id)}function ut(e){o={},s.setHmrRoutes(j(e,a,void 0,o))}function dt(e,t,n=!1){ft(e,t,s,o,a,n),s.hasHMRRoutes||H({})}return k={get basename(){return c},get future(){return u},get state(){return A},get routes(){return s.stableRoutes},get branches(){return s.branches},get manifest(){return o},get window(){return t},initialize:he,subscribe:_e,enableScrollRestoration:Ze,navigate:ye,fetch:Te,revalidate:be,createHref:t=>e.history.createHref(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:Ne,resetFetcher:Pe,deleteFetcher:Ie,dispose:ge,getBlocker:Ve,deleteBlocker:He,patchRoutes:dt,_internalFetchControllers:L,_internalSetRoutes:ut,_internalSetStateDoNotUseOrYouWillBreakYourApp(e){H(e)}},e.instrumentations&&(k=Me(k,e.instrumentations.map(e=>e.router).filter(Boolean))),k}function rt(e){return e!=null&&(`formData`in e&&e.formData!=null||`body`in e&&e.body!==void 0)}function it(e,t,n,r,i,a){let o,s;if(i){o=[];for(let e of t)if(o.push(e),e.route.id===i){s=e;break}}else o=t,s=t[t.length-1];let c=ye(r||`.`,ve(o),V(e.pathname,n)||e.pathname,a===`path`);if(r??(c.search=e.search,c.hash=e.hash),(r==null||r===``||r===`.`)&&s){let e=rn(c.search);if(s.route.index&&!e)c.search=c.search?c.search.replace(/^\?/,`?index&`):`?index`;else if(!s.route.index&&e){let e=new URLSearchParams(c.search),t=e.getAll(`index`);e.delete(`index`),t.filter(e=>e).forEach(t=>e.append(`index`,t));let n=e.toString();c.search=n?`?${n}`:``}}return n!==`/`&&(c.pathname=pe({basename:n,pathname:c.pathname})),b(c)}function at(e,t,n){if(!n||!rt(n))return{path:t};if(n.formMethod&&!nn(n.formMethod))return{path:t,error:J(405,{method:n.formMethod})};let r=()=>({path:t,error:J(400,{type:`invalid-body`})}),i=(n.formMethod||`get`).toUpperCase(),a=Gt(t);if(n.body!==void 0){if(n.formEncType===`text/plain`){if(!X(i))return r();let e=typeof n.body==`string`?n.body:n.body instanceof FormData||n.body instanceof URLSearchParams?Array.from(n.body.entries()).reduce((e,[t,n])=>`${e}${t}=${n}
|
|
2
|
-
`,``):String(n.body);return{path:t,submission:{formMethod:i,formAction:a,formEncType:n.formEncType,formData:void 0,json:void 0,text:e}}}else if(n.formEncType===`application/json`){if(!X(i))return r();try{let e=typeof n.body==`string`?JSON.parse(n.body):n.body;return{path:t,submission:{formMethod:i,formAction:a,formEncType:n.formEncType,formData:void 0,json:e,text:void 0}}}catch{return r()}}}h(typeof FormData==`function`,`FormData is not available in this environment`);let o,s;if(n.formData)o=It(n.formData),s=n.formData;else if(n.body instanceof FormData)o=It(n.body),s=n.body;else if(n.body instanceof URLSearchParams)o=n.body,s=Lt(o);else if(n.body==null)o=new URLSearchParams,s=new FormData;else try{o=new URLSearchParams(n.body),s=Lt(o)}catch{return r()}let c={formMethod:i,formAction:a,formEncType:n&&n.formEncType||`application/x-www-form-urlencoded`,formData:s,json:void 0,text:void 0};if(X(c.formMethod))return{path:t,submission:c};let l=x(t);return e&&l.search&&rn(l.search)&&o.append(`index`,``),l.search=`?${o}`,{path:b(l),submission:c}}function ot(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x){let S=b?Y(b[1])?b[1].error:b[1].data:void 0,C=i.createURL(a.location),w=i.createURL(c),T;if(u&&a.errors){let e=Object.keys(a.errors)[0];T=o.findIndex(t=>t.route.id===e)}else if(b&&Y(b[1])){let e=b[0];T=o.findIndex(t=>t.route.id===e)-1}let E=b?b[1].statusCode:void 0,D=E&&E>=400,O={currentUrl:C,currentParams:a.matches[0]?.params||{},nextUrl:w,nextParams:o[0].params,...s,actionResult:S,actionStatus:E},k=W(o),A=o.map((i,o)=>{let{route:s}=i,f=null;if(T!=null&&o>T)f=!1;else if(s.lazy)f=!0;else if(!st(s))f=!1;else if(u){let{shouldLoad:e}=ct(s,a.loaderData,a.errors);f=e}else lt(a.loaderData,a.matches[o],i)&&(f=!0);if(f!==null)return wt(n,r,e,c,k,i,l,t,f);let p=!1;typeof x==`boolean`?p=x:D?p=!1:d||C.pathname+C.search===w.pathname+w.search?p=!0:C.search===w.search?ut(a.matches[o],i)&&(p=!0):p=!0;let m={...O,defaultShouldRevalidate:p},h=dt(i,m);return wt(n,r,e,c,k,i,l,t,h,m,x)}),j=[];return m.forEach((e,s)=>{if(u||!o.some(t=>t.route.id===e.routeId)||p.has(s))return;let c=a.fetchers.get(s),m=c&&c.state!==`idle`&&c.data===void 0,b=P(g,e.path,_??`/`,!1,y);if(!b){if(v&&m)return;j.push({key:s,routeId:e.routeId,path:e.path,matches:null,match:null,request:null,controller:null});return}if(h.has(s))return;let S=an(b,e.path),C=new AbortController,w=Pt(i,e.path,C.signal),T=null;if(f.has(s))f.delete(s),T=Tt(n,r,w,e.path,b,S,l,t);else if(m)d&&(T=Tt(n,r,w,e.path,b,S,l,t));else{let i;i=typeof x==`boolean`?x:D?!1:d;let a={...O,defaultShouldRevalidate:i};dt(S,a)&&(T=Tt(n,r,w,e.path,b,S,l,t,a))}T&&j.push({key:s,routeId:e.routeId,path:e.path,matches:T,match:S,request:w,controller:C})}),{dsMatches:A,revalidatingFetchers:j}}function st(e){return e.loader!=null||e.middleware!=null&&e.middleware.length>0}function ct(e,t,n){if(e.lazy)return{shouldLoad:!0,renderFallback:!0};if(!st(e))return{shouldLoad:!1,renderFallback:!1};let r=t!=null&&e.id in t,i=n!=null&&n[e.id]!==void 0;if(!r&&i)return{shouldLoad:!1,renderFallback:!1};if(typeof e.loader==`function`&&e.loader.hydrate===!0)return{shouldLoad:!0,renderFallback:!r};let a=!r&&!i;return{shouldLoad:a,renderFallback:a}}function lt(e,t,n){let r=!t||n.route.id!==t.route.id,i=!e.hasOwnProperty(n.route.id);return r||i}function ut(e,t){let n=e.route.path;return e.pathname!==t.pathname||n!=null&&n.endsWith(`*`)&&e.params[`*`]!==t.params[`*`]}function dt(e,t){if(e.route.shouldRevalidate){let n=e.route.shouldRevalidate(t);if(typeof n==`boolean`)return n}return t.defaultShouldRevalidate}function ft(e,t,n,r,i,a){let o;if(e){let t=r[e];h(t,`No route found to patch children into: routeId = ${e}`),t.children||=[],o=t.children}else o=n.activeRoutes;let s=[],c=[];if(t.forEach(e=>{let t=o.find(t=>pt(e,t));t?c.push({existingRoute:t,newRoute:e}):s.push(e)}),s.length>0){let t=j(s,i,[e||`_`,`patch`,String(o?.length||`0`)],r);o.push(...t)}if(a&&c.length>0)for(let e=0;e<c.length;e++){let{existingRoute:t,newRoute:n}=c[e],r=t,[a]=j([n],i,[],{},!0);Object.assign(r,{element:a.element?a.element:r.element,errorElement:a.errorElement?a.errorElement:r.errorElement,hydrateFallbackElement:a.hydrateFallbackElement?a.hydrateFallbackElement:r.hydrateFallbackElement})}n.hasHMRRoutes||n.setRoutes([...n.activeRoutes])}function pt(e,t){return`id`in e&&`id`in t&&e.id===t.id?!0:e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive?(!e.children||e.children.length===0)&&(!t.children||t.children.length===0)?!0:e.children?.every((e,n)=>t.children?.some(t=>pt(e,t)))??!1:!1}var mt=new WeakMap,ht=({key:e,route:t,manifest:n,mapRouteProperties:r})=>{let i=n[t.id];if(h(i,`No route found in manifest`),!i.lazy||typeof i.lazy!=`object`)return;let a=i.lazy[e];if(!a)return;let o=mt.get(i);o||(o={},mt.set(i,o));let s=o[e];if(s)return s;let c=(async()=>{let t=D(e),n=i[e]!==void 0&&e!==`hasErrorBoundary`;if(t)g(!t,`Route property `+e+` is not a supported lazy route property. This property will be ignored.`),o[e]=Promise.resolve();else if(n)g(!1,`Route "${i.id}" has a static property "${e}" defined. The lazy property will be ignored.`);else{let t=await a();t!=null&&(Object.assign(i,{[e]:t}),Object.assign(i,r(i)))}typeof i.lazy==`object`&&(i.lazy[e]=void 0,Object.values(i.lazy).every(e=>e===void 0)&&(i.lazy=void 0))})();return o[e]=c,c},gt=new WeakMap;function _t(e,t,n,r,i){let a=n[e.id];if(h(a,`No route found in manifest`),!e.lazy)return{lazyRoutePromise:void 0,lazyHandlerPromise:void 0};if(typeof e.lazy==`function`){let t=gt.get(a);if(t)return{lazyRoutePromise:t,lazyHandlerPromise:t};let n=(async()=>{h(typeof e.lazy==`function`,`No lazy route function found`);let t=await e.lazy(),n={};for(let e in t){let r=t[e];if(r===void 0)continue;let i=k(e),o=a[e]!==void 0&&e!==`hasErrorBoundary`;i?g(!i,`Route property `+e+` is not a supported property to be returned from a lazy route function. This property will be ignored.`):o?g(!o,`Route "${a.id}" has a static property "${e}" defined but its lazy function is also returning a value for this property. The lazy route property "${e}" will be ignored.`):n[e]=r}Object.assign(a,n),Object.assign(a,{...r(a),lazy:void 0})})();return gt.set(a,n),n.catch(()=>{}),{lazyRoutePromise:n,lazyHandlerPromise:n}}let o=Object.keys(e.lazy),s=[],c;for(let a of o){if(i&&i.includes(a))continue;let o=ht({key:a,route:e,manifest:n,mapRouteProperties:r});o&&(s.push(o),a===t&&(c=o))}let l=s.length>0?Promise.all(s).then(()=>{}):void 0;return l?.catch(()=>{}),c?.catch(()=>{}),{lazyRoutePromise:l,lazyHandlerPromise:c}}async function vt(e){let t=e.matches.filter(e=>e.shouldLoad),n={};return(await Promise.all(t.map(e=>e.resolve()))).forEach((e,r)=>{n[t[r].route.id]=e}),n}async function yt(e){return e.matches.some(e=>e.route.middleware)?bt(e,()=>vt(e)):vt(e)}function bt(e,t){return xt(e,t,e=>{if(tn(e))throw e;return e},Jt,n);function n(t,n,r){if(r)return Promise.resolve(Object.assign(r.value,{[n]:{type:`error`,result:t}}));{let{matches:r}=e,i=Ht(r,r[Math.min(Math.max(r.findIndex(e=>e.route.id===n),0),Math.max(r.findIndex(e=>e.shouldCallHandler()),0))].route.id).route.id;return Promise.resolve({[i]:{type:`error`,result:t}})}}}async function xt(e,t,n,r,i){let{matches:a,...o}=e;return await St(o,a.flatMap(e=>e.route.middleware?e.route.middleware.map(t=>[e.route.id,t]):[]),t,n,r,i)}async function St(e,t,n,r,i,a,o=0){let{request:s}=e;if(s.signal.aborted)throw s.signal.reason??Error(`Request aborted: ${s.method} ${s.url}`);let c=t[o];if(!c)return await n();let[l,u]=c,d,f=async()=>{if(d)throw Error("You may only call `next()` once per middleware");try{return d={value:await St(e,t,n,r,i,a,o+1)},d.value}catch(e){return d={value:await a(e,l,d)},d.value}};try{let t=await u(e,f),n=t==null?void 0:r(t);return i(n)?n:d?n??d.value:(d={value:await f()},d.value)}catch(e){return await a(e,l,d)}}function Ct(e,t,n,r,i){let a=ht({key:`middleware`,route:r.route,manifest:t,mapRouteProperties:e}),o=_t(r.route,X(n.method)?`action`:`loader`,t,e,i);return{middleware:a,route:o.lazyRoutePromise,handler:o.lazyHandlerPromise}}function wt(e,t,n,r,i,a,o,s,c,l=null,u){let d=!1,f=Ct(e,t,n,a,o);return{...a,_lazyPromises:f,shouldLoad:c,shouldRevalidateArgs:l,shouldCallHandler(e){return d=!0,l?typeof u==`boolean`?dt(a,{...l,defaultShouldRevalidate:u}):typeof e==`boolean`?dt(a,{...l,defaultShouldRevalidate:e}):dt(a,l):c},resolve(e){let{lazy:t,loader:o,middleware:l}=a.route,u=d||c||e&&!X(n.method)&&(t||o),p=l&&l.length>0&&!o&&!t;return u&&(X(n.method)||!p)?Dt({request:n,path:r,pattern:i,match:a,lazyHandlerPromise:f?.handler,lazyRoutePromise:f?.route,handlerOverride:e,scopedContext:s}):Promise.resolve({type:`data`,result:void 0})}}}function Tt(e,t,n,r,i,a,o,s,c=null){return i.map(l=>l.route.id===a.route.id?wt(e,t,n,r,W(i),l,o,s,!0,c):{...l,shouldLoad:!1,shouldRevalidateArgs:c,shouldCallHandler:()=>!1,_lazyPromises:Ct(e,t,n,l,o),resolve:()=>Promise.resolve({type:`data`,result:void 0})})}async function Et(e,t,n,r,i,a,o){r.some(e=>e._lazyPromises?.middleware)&&await Promise.all(r.map(e=>e._lazyPromises?.middleware));let s={request:t,url:Ft(t,n),pattern:W(r),params:r[0].params,context:a,matches:r},c=o?()=>{throw Error("You cannot call `runClientMiddleware()` from a static handler `dataStrategy`. Middleware is run outside of `dataStrategy` during SSR in order to bubble up the Response. You can enable middleware via the `respond` API in `query`/`queryRoute`")}:e=>{let t=s;return bt(t,()=>e({...t,fetcherKey:i,runClientMiddleware:()=>{throw Error("Cannot call `runClientMiddleware()` from within an `runClientMiddleware` handler")}}))},l=await e({...s,fetcherKey:i,runClientMiddleware:c});try{await Promise.all(r.flatMap(e=>[e._lazyPromises?.handler,e._lazyPromises?.route]))}catch{}return l}async function Dt({request:e,path:t,pattern:n,match:r,lazyHandlerPromise:i,lazyRoutePromise:a,handlerOverride:o,scopedContext:s}){let c,l,u=X(e.method),d=u?`action`:`loader`,f=i=>{let a,c=new Promise((e,t)=>a=t);l=()=>a(),e.signal.addEventListener(`abort`,l);let u=a=>typeof i==`function`?i({request:e,url:Ft(e,t),pattern:n,params:r.params,context:s},...a===void 0?[]:[a]):Promise.reject(Error(`You cannot call the handler for a route which defines a boolean "${d}" [routeId: ${r.route.id}]`)),f=(async()=>{try{return{type:`data`,result:await(o?o(e=>u(e)):u())}}catch(e){return{type:`error`,result:e}}})();return Promise.race([f,c])};try{let t=u?r.route.action:r.route.loader;if(i||a)if(t){let e,[n]=await Promise.all([f(t).catch(t=>{e=t}),i,a]);if(e!==void 0)throw e;c=n}else{await i;let t=u?r.route.action:r.route.loader;if(t)[c]=await Promise.all([f(t),a]);else if(d===`action`){let t=new URL(e.url),n=t.pathname+t.search;throw J(405,{method:e.method,pathname:n,routeId:r.route.id})}else return{type:`data`,result:void 0}}else if(t)c=await f(t);else{let t=new URL(e.url);throw J(404,{pathname:t.pathname+t.search})}}catch(e){return{type:`error`,result:e}}finally{l&&e.signal.removeEventListener(`abort`,l)}return c}async function Ot(e){let t=e.headers.get(`Content-Type`);return t&&/\bapplication\/json\b/.test(t)?e.body==null?null:e.json():e.text()}async function kt(e){let{result:t,type:n}=e;if($t(t)){let e;try{e=await Ot(t)}catch(e){return{type:`error`,error:e}}return n===`error`?{type:`error`,error:new De(t.status,t.statusText,e),statusCode:t.status,headers:t.headers}:{type:`data`,data:e,statusCode:t.status,headers:t.headers}}return n===`error`?Qt(t)?t.data instanceof Error?{type:`error`,error:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:`error`,error:qt(t),statusCode:Oe(t)?t.status:void 0,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:`error`,error:t,statusCode:Oe(t)?t.status:void 0}:Qt(t)?{type:`data`,data:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:`data`,data:t}}function At(e,t,n,r,i){let a=e.headers.get(`Location`);if(h(a,`Redirects returned/thrown from loaders/actions must have a Location header`),!me(a)){let o=r.slice(0,r.findIndex(e=>e.route.id===n)+1);a=it(new URL(t.url),o,i,a),e.headers.set(`Location`,a)}return e}var jt=[`about:`,`blob:`,`chrome:`,`chrome-untrusted:`,`content:`,`data:`,`devtools:`,`file:`,`filesystem:`,`javascript:`];function Mt(e){try{return jt.includes(new URL(e).protocol)}catch{return!1}}function Nt(e,t,n,r){if(me(e)){let r=e,i=u.test(r)?new URL(d(r,t.protocol)):new URL(r);if(Mt(i.toString()))throw Error(`Invalid redirect location`);let a=V(i.pathname,n)!=null;if(i.origin===t.origin&&a)return be(i.pathname)+i.search+i.hash}try{if(Mt(r.createURL(e).toString()))throw Error(`Invalid redirect location`)}catch{}return e}function Pt(e,t,n,r){let i=e.createURL(Gt(t)).toString(),a={signal:n};if(r&&X(r.formMethod)){let{formMethod:e,formEncType:t}=r;a.method=e.toUpperCase(),t===`application/json`?(a.headers=new Headers({"Content-Type":t}),a.body=JSON.stringify(r.json)):t===`text/plain`?a.body=r.text:t===`application/x-www-form-urlencoded`&&r.formData?a.body=It(r.formData):a.body=r.formData}return new Request(i,a)}function Ft(e,t){let n=new URL(e.url),r=typeof t==`string`?x(t):t;if(n.pathname=r.pathname||`/`,r.search){let e=new URLSearchParams(r.search),t=e.getAll(`index`);e.delete(`index`);for(let n of t.filter(Boolean))e.append(`index`,n);n.search=e.size?`?${e.toString()}`:``}else n.search=``;return n.hash=r.hash||``,n}function It(e){let t=new URLSearchParams;for(let[n,r]of e.entries())t.append(n,typeof r==`string`?r:r.name);return t}function Lt(e){let t=new FormData;for(let[n,r]of e.entries())t.append(n,r);return t}function Rt(e,t,n,r=!1,i=!1){let a={},o=null,s,c=!1,l={},u=n&&Y(n[1])?n[1].error:void 0;return e.forEach(n=>{if(!(n.route.id in t))return;let d=n.route.id,f=t[d];if(h(!Zt(f),`Cannot handle redirect results in processLoaderData`),Y(f)){let t=f.error;if(u!==void 0&&(t=u,u=void 0),o||={},i)o[d]=t;else{let n=Ht(e,d);o[n.route.id]??(o[n.route.id]=t)}r||(a[d]=Xe),c||(c=!0,s=Oe(f.error)?f.error.status:500),f.headers&&(l[d]=f.headers)}else a[d]=f.data,f.statusCode&&f.statusCode!==200&&!c&&(s=f.statusCode),f.headers&&(l[d]=f.headers)}),u!==void 0&&n&&(o={[n[0]]:u},n[2]&&(a[n[2]]=void 0)),{loaderData:a,errors:o,statusCode:s||200,loaderHeaders:l}}function zt(e,t,n,r,i,a,o){let{loaderData:s,errors:c}=Rt(t,n,r);return i.filter(e=>!e.matches||e.matches.some(e=>e.shouldLoad)).forEach(t=>{let{key:n,match:r,controller:i}=t;if(i&&i.signal.aborted)return;let s=a[n];if(h(s,`Did not find corresponding fetcher result`),Y(s)){let t=Ht(e.matches,r?.route.id);c&&c[t.route.id]||(c={...c,[t.route.id]:s.error}),o.delete(n)}else if(Zt(s))h(!1,`Unhandled fetcher revalidation redirect`);else{let e=dn(s.data);o.set(n,e)}}),{loaderData:s,errors:c}}function Bt(e,t,n,r){let i=Object.entries(t).filter(([,e])=>e!==Xe).reduce((e,[t,n])=>(e[t]=n,e),{});for(let a of n){let n=a.route.id;if(!t.hasOwnProperty(n)&&e.hasOwnProperty(n)&&a.route.loader&&(i[n]=e[n]),r&&r.hasOwnProperty(n))break}return i}function Vt(e){return e?Y(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function Ht(e,t){return(t?e.slice(0,e.findIndex(e=>e.route.id===t)+1):[...e]).reverse().find(e=>e.route.hasErrorBoundary===!0)||e[0]}function Ut(e){let t=e.length===1?e[0]:e.find(e=>e.index||!e.path||e.path===`/`)||{id:`__shim-error-route__`};return{matches:[{params:{},pathname:``,pathnameBase:``,route:t}],route:t}}function J(e,{pathname:t,routeId:n,method:r,type:i,message:a}={}){let o=`Unknown Server Error`,s=`Unknown @remix-run/router error`;return e===400?(o=`Bad Request`,r&&t&&n?s=`You made a ${r} request to "${t}" but did not provide a \`loader\` for route "${n}", so there is no way to handle the request.`:i===`invalid-body`&&(s=`Unable to encode submission body`)):e===403?(o=`Forbidden`,s=`Route "${n}" does not match URL "${t}"`):e===404?(o=`Not Found`,s=`No route matches URL "${t}"`):e===405&&(o=`Method Not Allowed`,r&&t&&n?s=`You made a ${r.toUpperCase()} request to "${t}" but did not provide an \`action\` for route "${n}", so there is no way to handle the request.`:r&&(s=`Invalid request method "${r.toUpperCase()}"`)),new De(e||500,o,Error(s),!0)}function Wt(e){let t=Object.entries(e);for(let e=t.length-1;e>=0;e--){let[n,r]=t[e];if(Zt(r))return{key:n,result:r}}}function Gt(e){return b({...typeof e==`string`?x(e):e,hash:``})}function Kt(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===``?t.hash!==``:e.hash===t.hash?!0:t.hash!==``}function qt(e){return new De(e.init?.status??500,e.init?.statusText??`Internal Server Error`,e.data)}function Jt(e){return typeof e==`object`&&!!e&&Object.entries(e).every(([e,t])=>typeof e==`string`&&Yt(t))}function Yt(e){return typeof e==`object`&&!!e&&`type`in e&&`result`in e&&(e.type===`data`||e.type===`error`)}function Xt(e){return $t(e.result)&&Ue.has(e.result.status)}function Y(e){return e.type===`error`}function Zt(e){return(e&&e.type)===`redirect`}function Qt(e){return typeof e==`object`&&!!e&&`type`in e&&`data`in e&&`init`in e&&e.type===`DataWithResponseInit`}function $t(e){return e!=null&&typeof e.status==`number`&&typeof e.statusText==`string`&&typeof e.headers==`object`&&e.body!==void 0}function en(e){return Ue.has(e)}function tn(e){return $t(e)&&en(e.status)&&e.headers.has(`Location`)}function nn(e){return He.has(e.toUpperCase())}function X(e){return Be.has(e.toUpperCase())}function rn(e){return new URLSearchParams(e).getAll(`index`).some(e=>e===``)}function an(e,t){let n=typeof t==`string`?x(t).search:t.search;if(e[e.length-1].route.index&&rn(n||``))return e[e.length-1];let r=H(e);return r[r.length-1]}function on(e){let{formMethod:t,formAction:n,formEncType:r,text:i,formData:a,json:o}=e;if(!(!t||!n||!r)){if(i!=null)return{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:void 0,text:i};if(a!=null)return{formMethod:t,formAction:n,formEncType:r,formData:a,json:void 0,text:void 0};if(o!==void 0)return{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:o,text:void 0}}}function sn(e,t,n,r){return r?{state:`loading`,location:e,matches:t,historyAction:n,formMethod:r.formMethod,formAction:r.formAction,formEncType:r.formEncType,formData:r.formData,json:r.json,text:r.text}:{state:`loading`,location:e,matches:t,historyAction:n,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function cn(e,t,n,r){return{state:`submitting`,location:e,matches:t,historyAction:n,formMethod:r.formMethod,formAction:r.formAction,formEncType:r.formEncType,formData:r.formData,json:r.json,text:r.text}}function ln(e,t){return e?{state:`loading`,formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:`loading`,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function un(e,t){return{state:`submitting`,formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}function dn(e){return{state:`idle`,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function fn(e,t){try{let n=e.sessionStorage.getItem(Ye);if(n){let e=JSON.parse(n);for(let[n,r]of Object.entries(e||{}))r&&Array.isArray(r)&&t.set(n,new Set(r||[]))}}catch{}}function pn(e,t){if(t.size>0){let n={};for(let[e,r]of t)n[e]=[...r];try{e.sessionStorage.setItem(Ye,JSON.stringify(n))}catch(e){g(!1,`Failed to save applied view transitions in sessionStorage (${e}).`)}}}function mn(){let e,t,n=new Promise((r,i)=>{e=async e=>{r(e);try{await n}catch{}},t=async e=>{i(e);try{await n}catch{}}});return{promise:n,resolve:e,reject:t}}var hn=r.createContext(null);hn.displayName=`DataRouter`;var gn=r.createContext(null);gn.displayName=`DataRouterState`;var _n=r.createContext(!1);function vn(){return r.useContext(_n)}var yn=r.createContext({isTransitioning:!1});yn.displayName=`ViewTransition`;var bn=r.createContext(new Map);bn.displayName=`Fetchers`;var xn=r.createContext(null);xn.displayName=`Await`;var Z=r.createContext(null);Z.displayName=`Navigation`;var Sn=r.createContext(null);Sn.displayName=`Location`;var Q=r.createContext({outlet:null,matches:[],isDataRoute:!1});Q.displayName=`Route`;var Cn=r.createContext(null);Cn.displayName=`RouteError`;var wn=`REACT_ROUTER_ERROR`,Tn=`REDIRECT`,En=`ROUTE_ERROR_RESPONSE`;function Dn(e){if(e.startsWith(`${wn}:${Tn}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t==`object`&&t&&typeof t.status==`number`&&typeof t.statusText==`string`&&typeof t.location==`string`&&typeof t.reloadDocument==`boolean`&&typeof t.replace==`boolean`)return t}catch{}}function On(e){if(e.startsWith(`${wn}:${En}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t==`object`&&t&&typeof t.status==`number`&&typeof t.statusText==`string`)return new De(t.status,t.statusText,t.data)}catch{}}function kn(e,{relative:t}={}){h(An(),`useHref() may be used only in the context of a <Router> component.`);let{basename:n,navigator:i}=r.useContext(Z),{hash:a,pathname:o,search:s}=Bn(e,{relative:t}),c=o;return n!==`/`&&(c=o===`/`?n:U([n,o])),i.createHref({pathname:c,search:s,hash:a})}function An(){return r.useContext(Sn)!=null}function $(){return h(An(),`useLocation() may be used only in the context of a <Router> component.`),r.useContext(Sn).location}function jn(){return r.useContext(Sn).navigationType}function Mn(e){h(An(),`useMatch() may be used only in the context of a <Router> component.`);let{pathname:t}=$();return r.useMemo(()=>R(e,fe(t)),[t,e])}var Nn=`You should call navigate() in a React.useEffect(), not when your component is first rendered.`;function Pn(e){r.useContext(Z).static||r.useLayoutEffect(e)}function Fn(){let{isDataRoute:e}=r.useContext(Q);return e?or():In()}function In(){h(An(),`useNavigate() may be used only in the context of a <Router> component.`);let e=r.useContext(hn),{basename:t,navigator:n}=r.useContext(Z),{matches:i}=r.useContext(Q),{pathname:a}=$(),o=JSON.stringify(ve(i)),s=r.useRef(!1);return Pn(()=>{s.current=!0}),r.useCallback((r,i={})=>{if(g(s.current,Nn),!s.current)return;if(typeof r==`number`){n.go(r);return}let c=ye(r,JSON.parse(o),a,i.relative===`path`);e==null&&t!==`/`&&(c.pathname=c.pathname===`/`?t:U([t,c.pathname])),(i.replace?n.replace:n.push)(c,i.state,i)},[t,n,o,a,e])}var Ln=r.createContext(null);function Rn(e){let t=r.useContext(Q).outlet;return r.useMemo(()=>t&&r.createElement(Ln.Provider,{value:e},t),[t,e])}function zn(){let{matches:e}=r.useContext(Q);return e[e.length-1]?.params??{}}function Bn(e,{relative:t}={}){let{matches:n}=r.useContext(Q),{pathname:i}=$(),a=JSON.stringify(ve(n));return r.useMemo(()=>ye(e,JSON.parse(a),i,t===`path`),[e,a,i,t])}function Vn(e,t,n){h(An(),`useRoutes() may be used only in the context of a <Router> component.`);let{navigator:i}=r.useContext(Z),{matches:a}=r.useContext(Q),o=a[a.length-1],s=o?o.params:{},c=o?o.pathname:`/`,l=o?o.pathnameBase:`/`,u=o&&o.route;{let e=u&&u.path||``;cr(c,!u||e.endsWith(`*`)||e.endsWith(`*?`),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${c}" (under <Route path="${e}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
|
|
3
|
-
|
|
4
|
-
Please change the parent <Route path="${e}"> to <Route path="${e===`/`?`*`:`${e}/*`}">.`)}let d=$(),f;if(t){let e=typeof t==`string`?x(t):t;h(l===`/`||e.pathname?.startsWith(l),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${l}" but pathname "${e.pathname}" was given in the \`location\` prop.`),f=e}else f=d;let p=f.pathname||`/`,m=p;if(l!==`/`){let e=l.replace(/^\//,``).split(`/`);m=`/`+p.replace(/^\//,``).split(`/`).slice(e.length).join(`/`)}let _=n&&n.state.matches.length?n.state.matches.map(e=>Object.assign(e,{route:n.manifest[e.route.id]||e.route})):N(e,{pathname:m});g(u||_!=null,`No routes matched location "${f.pathname}${f.search}${f.hash}" `),g(_==null||_[_.length-1].route.element!==void 0||_[_.length-1].route.Component!==void 0||_[_.length-1].route.lazy!==void 0,`Matched leaf route at location "${f.pathname}${f.search}${f.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let v=Jn(_&&_.map(e=>Object.assign({},e,{params:Object.assign({},s,e.params),pathname:U([l,i.encodeLocation?i.encodeLocation(e.pathname.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathname]),pathnameBase:e.pathnameBase===`/`?l:U([l,i.encodeLocation?i.encodeLocation(e.pathnameBase.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathnameBase])})),a,n);return t&&v?r.createElement(Sn.Provider,{value:{location:{pathname:`/`,search:``,hash:``,state:null,key:`default`,mask:void 0,...f},navigationType:`POP`}},v):v}function Hn(){let e=rr(),t=Oe(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,i=`rgba(200,200,200, 0.5)`,a={padding:`0.5rem`,backgroundColor:i},o={padding:`2px 4px`,backgroundColor:i},s=null;return console.error(`Error handled by React Router default ErrorBoundary:`,e),s=r.createElement(r.Fragment,null,r.createElement(`p`,null,`💿 Hey developer 👋`),r.createElement(`p`,null,`You can provide a way better UX than this when your app throws errors by providing your own `,r.createElement(`code`,{style:o},`ErrorBoundary`),` or`,` `,r.createElement(`code`,{style:o},`errorElement`),` prop on your route.`)),r.createElement(r.Fragment,null,r.createElement(`h2`,null,`Unexpected Application Error!`),r.createElement(`h3`,{style:{fontStyle:`italic`}},t),n?r.createElement(`pre`,{style:a},n):null,s)}var Un=r.createElement(Hn,null),Wn=class extends r.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!==`idle`&&e.revalidation===`idle`?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error===void 0?t.error:e.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error(`React Router caught the following error during render`,e)}render(){let e=this.state.error;if(this.context&&typeof e==`object`&&e&&`digest`in e&&typeof e.digest==`string`){let t=On(e.digest);t&&(e=t)}let t=e===void 0?this.props.children:r.createElement(Q.Provider,{value:this.props.routeContext},r.createElement(Cn.Provider,{value:e,children:this.props.component}));return this.context?r.createElement(Kn,{error:e},t):t}};Wn.contextType=_n;var Gn=new WeakMap;function Kn({children:e,error:t}){let{basename:n}=r.useContext(Z);if(typeof t==`object`&&t&&`digest`in t&&typeof t.digest==`string`){let e=Dn(t.digest);if(e){let i=Gn.get(t);if(i)throw i;let a=Ae(e.location,n),o=a.absoluteURL||a.to;if(Mt(o))throw Error(`Invalid redirect location`);if(ke&&!Gn.get(t))if(a.isExternal||e.reloadDocument)window.location.href=o;else{let n=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(a.to,{replace:e.replace}));throw Gn.set(t,n),n}return r.createElement(`meta`,{httpEquiv:`refresh`,content:`0;url=${o}`})}}return e}function qn({routeContext:e,match:t,children:n}){let i=r.useContext(hn);return i&&i.static&&i.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=t.route.id),r.createElement(Q.Provider,{value:e},n)}function Jn(e,t=[],n){let i=n?.state;if(e==null){if(!i)return null;if(i.errors)e=i.matches;else if(t.length===0&&!i.initialized&&i.matches.length>0)e=i.matches;else return null}let a=e,o=i?.errors;if(o!=null){let e=a.findIndex(e=>e.route.id&&o?.[e.route.id]!==void 0);h(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(o).join(`,`)}`),a=a.slice(0,Math.min(a.length,e+1))}let s=!1,c=-1;if(n&&i){s=i.renderFallback;for(let e=0;e<a.length;e++){let t=a[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(c=e),t.route.id){let{loaderData:e,errors:r}=i,o=t.route.loader&&!e.hasOwnProperty(t.route.id)&&(!r||r[t.route.id]===void 0);if(t.route.lazy||o){n.isStatic&&(s=!0),a=c>=0?a.slice(0,c+1):[a[0]];break}}}}let l=n?.onError,u=i&&l?(e,t)=>{l(e,{location:i.location,params:i.matches?.[0]?.params??{},pattern:W(i.matches),errorInfo:t})}:void 0;return a.reduceRight((e,n,l)=>{let d,f=!1,p=null,m=null;i&&(d=o&&n.route.id?o[n.route.id]:void 0,p=n.route.errorElement||Un,s&&(c<0&&l===0?(cr(`route-fallback`,!1,"No `HydrateFallback` element provided to render during initial hydration"),f=!0,m=null):c===l&&(f=!0,m=n.route.hydrateFallbackElement||null)));let h=t.concat(a.slice(0,l+1)),g=()=>{let t;return t=d?p:f?m:n.route.Component?r.createElement(n.route.Component,null):n.route.element?n.route.element:e,r.createElement(qn,{match:n,routeContext:{outlet:e,matches:h,isDataRoute:i!=null},children:t})};return i&&(n.route.ErrorBoundary||n.route.errorElement||l===0)?r.createElement(Wn,{location:i.location,revalidation:i.revalidation,component:p,error:d,children:g(),routeContext:{outlet:null,matches:h,isDataRoute:!0},onError:u}):g()},null)}function Yn(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Xn(e){let t=r.useContext(hn);return h(t,Yn(e)),t}function Zn(e){let t=r.useContext(gn);return h(t,Yn(e)),t}function Qn(e){let t=r.useContext(Q);return h(t,Yn(e)),t}function $n(e){let t=Qn(e),n=t.matches[t.matches.length-1];return h(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function er(){return $n(`useRouteId`)}function tr(){let e=Zn(`useNavigation`);return r.useMemo(()=>{let{matches:t,historyAction:n,...r}=e.navigation;return r},[e.navigation])}function nr(){let{matches:e,loaderData:t}=Zn(`useMatches`);return r.useMemo(()=>e.map(e=>ee(e,t)),[e,t])}function rr(){let e=r.useContext(Cn),t=Zn(`useRouteError`),n=$n(`useRouteError`);return e===void 0?t.errors?.[n]:e}var ir=0;function ar(e){let{router:t,basename:n}=Xn(`useBlocker`),i=Zn(`useBlocker`),[a,o]=r.useState(``),s=r.useCallback(t=>{if(typeof e!=`function`)return!!e;if(n===`/`)return e(t);let{currentLocation:r,nextLocation:i,historyAction:a}=t;return e({currentLocation:{...r,pathname:V(r.pathname,n)||r.pathname},nextLocation:{...i,pathname:V(i.pathname,n)||i.pathname},historyAction:a})},[n,e]);return r.useEffect(()=>{let e=String(++ir);return o(e),()=>t.deleteBlocker(e)},[t]),r.useEffect(()=>{a!==``&&t.getBlocker(a,s)},[t,a,s]),a&&i.blockers.has(a)?i.blockers.get(a):qe}function or(){let{router:e}=Xn(`useNavigate`),t=$n(`useNavigate`),n=r.useRef(!1);return Pn(()=>{n.current=!0}),r.useCallback(async(r,i={})=>{g(n.current,Nn),n.current&&(typeof r==`number`?await e.navigate(r):await e.navigate(r,{fromRouteId:t,...i}))},[e,t])}var sr={};function cr(e,t,n){!t&&!sr[e]&&(sr[e]=!0,g(!1,n))}var lr={};function ur(e,t){!e&&!lr[t]&&(lr[t]=!0,console.warn(t))}var dr=r.useOptimistic,fr=()=>void 0;function pr(e){return dr?dr(e):[e,fr]}function mr(e){let t={hasErrorBoundary:e.hasErrorBoundary||e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&(e.element&&g(!1,"You should not include both `Component` and `element` on your route - `Component` will be used."),Object.assign(t,{element:r.createElement(e.Component),Component:void 0})),e.HydrateFallback&&(e.hydrateFallbackElement&&g(!1,"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - `HydrateFallback` will be used."),Object.assign(t,{hydrateFallbackElement:r.createElement(e.HydrateFallback),HydrateFallback:void 0})),e.ErrorBoundary&&(e.errorElement&&g(!1,"You should not include both `ErrorBoundary` and `errorElement` on your route - `ErrorBoundary` will be used."),Object.assign(t,{errorElement:r.createElement(e.ErrorBoundary),ErrorBoundary:void 0})),t}var hr=[`HydrateFallback`,`hydrateFallbackElement`],gr=class{constructor(){this.status=`pending`,this.promise=new Promise((e,t)=>{this.resolve=t=>{this.status===`pending`&&(this.status=`resolved`,e(t))},this.reject=e=>{this.status===`pending`&&(this.status=`rejected`,t(e))}})}};function _r({router:e,flushSync:t,onError:n,useTransitions:i}){i=vn()||i;let[a,o]=r.useState(e.state),[s,c]=pr(a),[l,u]=r.useState(),[d,f]=r.useState({isTransitioning:!1}),[p,m]=r.useState(),[h,g]=r.useState(),[_,v]=r.useState(),y=r.useRef(new Map),b=r.useCallback((a,{deletedFetchers:s,newErrors:l,flushSync:d,viewTransitionOpts:_})=>{l&&n&&Object.values(l).forEach(e=>n(e,{location:a.location,params:a.matches[0]?.params??{},pattern:W(a.matches)})),a.fetchers.forEach((e,t)=>{e.data!==void 0&&y.current.set(t,e.data)}),s.forEach(e=>y.current.delete(e)),ur(d===!1||t!=null,'You provided the `flushSync` option to a router update, but you are not using the `<RouterProvider>` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable. Please update your app to `import { RouterProvider } from "react-router/dom"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.');let b=e.window!=null&&e.window.document!=null&&typeof e.window.document.startViewTransition==`function`;if(ur(_==null||b,"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available."),!_||!b){t&&d?t(()=>o(a)):i===!1?o(a):r.startTransition(()=>{i===!0&&c(e=>vr(e,a)),o(a)});return}if(t&&d){t(()=>{h&&(p?.resolve(),h.skipTransition()),f({isTransitioning:!0,flushSync:!0,currentLocation:_.currentLocation,nextLocation:_.nextLocation})});let n=e.window.document.startViewTransition(()=>{t(()=>o(a))});n.finished.finally(()=>{t(()=>{m(void 0),g(void 0),u(void 0),f({isTransitioning:!1})})}),t(()=>g(n));return}h?(p?.resolve(),h.skipTransition(),v({state:a,currentLocation:_.currentLocation,nextLocation:_.nextLocation})):(u(a),f({isTransitioning:!0,flushSync:!1,currentLocation:_.currentLocation,nextLocation:_.nextLocation}))},[e.window,t,h,p,i,c,n]);r.useLayoutEffect(()=>e.subscribe(b),[e,b]),r.useEffect(()=>{d.isTransitioning&&!d.flushSync&&m(new gr)},[d]),r.useEffect(()=>{if(p&&l&&e.window){let t=l,n=p.promise,a=e.window.document.startViewTransition(async()=>{i===!1?o(t):r.startTransition(()=>{i===!0&&c(e=>vr(e,t)),o(t)}),await n});a.finished.finally(()=>{m(void 0),g(void 0),u(void 0),f({isTransitioning:!1})}),g(a)}},[l,p,e.window,i,c]),r.useEffect(()=>{p&&l&&s.location.key===l.location.key&&p.resolve()},[p,h,s.location,l]),r.useEffect(()=>{!d.isTransitioning&&_&&(u(_.state),f({isTransitioning:!0,flushSync:!1,currentLocation:_.currentLocation,nextLocation:_.nextLocation}),v(void 0))},[d.isTransitioning,_]);let x=r.useMemo(()=>({createHref:e.createHref,encodeLocation:e.encodeLocation,go:t=>e.navigate(t),push:(t,n,r)=>e.navigate(t,{state:n,preventScrollReset:r?.preventScrollReset}),replace:(t,n,r)=>e.navigate(t,{replace:!0,state:n,preventScrollReset:r?.preventScrollReset})}),[e]),S=e.basename||`/`,C=r.useMemo(()=>({router:e,navigator:x,static:!1,basename:S,onError:n}),[e,x,S,n]);return r.createElement(r.Fragment,null,r.createElement(hn.Provider,{value:C},r.createElement(gn.Provider,{value:s},r.createElement(bn.Provider,{value:y.current},r.createElement(yn.Provider,{value:d},r.createElement(Cr,{basename:S,location:s.location,navigationType:s.historyAction,navigator:x,useTransitions:i},r.createElement(yr,{routes:e.routes,manifest:e.manifest,future:e.future,state:s,isStatic:!1,onError:n})))))),null)}function vr(e,t){return{...e,navigation:t.navigation.state===`idle`?e.navigation:t.navigation,revalidation:t.revalidation===`idle`?e.revalidation:t.revalidation,actionData:t.navigation.state===`submitting`?e.actionData:t.actionData,fetchers:t.fetchers}}var yr=r.memo(br);function br({routes:e,manifest:t,future:n,state:r,isStatic:i,onError:a}){return Vn(e,void 0,{manifest:t,state:r,isStatic:i,onError:a,future:n})}function xr({to:e,replace:t,state:n,relative:i}){h(An(),`<Navigate> may be used only in the context of a <Router> component.`);let{static:a}=r.useContext(Z);g(!a,`<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.`);let{matches:o}=r.useContext(Q),{pathname:s}=$(),c=Fn(),l=ye(e,ve(o),s,i===`path`),u=JSON.stringify(l);return r.useEffect(()=>{c(JSON.parse(u),{replace:t,state:n,relative:i})},[c,u,i,t,n]),null}function Sr(e){return Rn(e.context)}function Cr({basename:e=`/`,children:t=null,location:n,navigationType:i=`POP`,navigator:a,static:o=!1,useTransitions:s}){h(!An(),`You cannot render a <Router> inside another <Router>. You should never have more than one in your app.`);let c=e.replace(/^\/*/,`/`),l=r.useMemo(()=>({basename:c,navigator:a,static:o,useTransitions:s,future:{}}),[c,a,o,s]);typeof n==`string`&&(n=x(n));let{pathname:u=`/`,search:d=``,hash:f=``,state:p=null,key:m=`default`,mask:_}=n,v=r.useMemo(()=>{let e=V(u,c);return e==null?null:{location:{pathname:e,search:d,hash:f,state:p,key:m,mask:_},navigationType:i}},[c,u,d,f,p,m,i,_]);return g(v!=null,`<Router basename="${c}"> is not able to match the URL "${u}${d}${f}" because it does not start with the basename, so the <Router> won't render anything.`),v==null?null:r.createElement(Z.Provider,{value:l},r.createElement(Sn.Provider,{children:t,value:v}))}r.Component;var wr=`get`,Tr=`application/x-www-form-urlencoded`;function Er(e){return typeof HTMLElement<`u`&&e instanceof HTMLElement}function Dr(e){return Er(e)&&e.tagName.toLowerCase()===`button`}function Or(e){return Er(e)&&e.tagName.toLowerCase()===`form`}function kr(e){return Er(e)&&e.tagName.toLowerCase()===`input`}function Ar(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function jr(e,t){return e.button===0&&(!t||t===`_self`)&&!Ar(e)}function Mr(e=``){return new URLSearchParams(typeof e==`string`||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map(e=>[n,e]):[[n,r]])},[]))}function Nr(e,t){let n=Mr(e);return t&&t.forEach((e,r)=>{n.has(r)||t.getAll(r).forEach(e=>{n.append(r,e)})}),n}var Pr=null;function Fr(){if(Pr===null)try{new FormData(document.createElement(`form`),0),Pr=!1}catch{Pr=!0}return Pr}var Ir=new Set([`application/x-www-form-urlencoded`,`multipart/form-data`,`text/plain`]);function Lr(e){return e!=null&&!Ir.has(e)?(g(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Tr}"`),null):e}function Rr(e,t){let n,r,i,a,o;if(Or(e)){let o=e.getAttribute(`action`);r=o?V(o,t):null,n=e.getAttribute(`method`)||wr,i=Lr(e.getAttribute(`enctype`))||Tr,a=new FormData(e)}else if(Dr(e)||kr(e)&&(e.type===`submit`||e.type===`image`)){let o=e.form;if(o==null)throw Error(`Cannot submit a <button> or <input type="submit"> without a <form>`);let s=e.getAttribute(`formaction`)||o.getAttribute(`action`);if(r=s?V(s,t):null,n=e.getAttribute(`formmethod`)||o.getAttribute(`method`)||wr,i=Lr(e.getAttribute(`formenctype`))||Lr(o.getAttribute(`enctype`))||Tr,a=new FormData(o,e),!Fr()){let{name:t,type:n,value:r}=e;if(n===`image`){let e=t?`${t}.`:``;a.append(`${e}x`,`0`),a.append(`${e}y`,`0`)}else t&&a.append(t,r)}}else if(Er(e))throw Error(`Cannot submit element that is not <form>, <button>, or <input type="submit|image">`);else n=wr,r=null,i=Tr,o=e;return a&&i===`text/plain`&&(o=a,a=void 0),{action:r,method:n.toLowerCase(),encType:i,formData:a,body:o}}Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);var zr={"&":`\\u0026`,">":`\\u003e`,"<":`\\u003c`,"\u2028":`\\u2028`,"\u2029":`\\u2029`},Br=/[&><\u2028\u2029]/g;function Vr(e){return e.replace(Br,e=>zr[e])}function Hr(e,t){if(e===!1||e==null)throw Error(t)}function Ur(e,t,n,r){let i=typeof e==`string`?new URL(e,typeof window>`u`?`server://singlefetch/`:window.location.origin):e;return n?i.pathname.endsWith(`/`)?i.pathname=`${i.pathname}_.${r}`:i.pathname=`${i.pathname}.${r}`:i.pathname===`/`?i.pathname=`_root.${r}`:t&&V(i.pathname,t)===`/`?i.pathname=`${xe(t)}/_root.${r}`:i.pathname=`${xe(i.pathname)}.${r}`,i}async function Wr(e,t){if(e.id in t)return t[e.id];try{let r=await n(()=>import(e.module),[],import.meta.url);return t[e.id]=r,r}catch(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function Gr(e){return e!=null&&typeof e.page==`string`}function Kr(e){return e==null?!1:e.href==null?e.rel===`preload`&&typeof e.imageSrcSet==`string`&&typeof e.imageSizes==`string`:typeof e.rel==`string`&&typeof e.href==`string`}async function qr(e,t,n){return Qr((await Promise.all(e.map(async e=>{let r=t.routes[e.route.id];if(r){let e=await Wr(r,n);return e.links?e.links():[]}return[]}))).flat(1).filter(Kr).filter(e=>e.rel===`stylesheet`||e.rel===`preload`).map(e=>e.rel===`stylesheet`?{...e,rel:`prefetch`,as:`style`}:{...e,rel:`prefetch`}))}function Jr(e,t,n,r,i,a){let o=(e,t)=>n[t]?e.route.id!==n[t].route.id:!0,s=(e,t)=>n[t].pathname!==e.pathname||n[t].route.path?.endsWith(`*`)&&n[t].params[`*`]!==e.params[`*`];return a===`assets`?t.filter((e,t)=>o(e,t)||s(e,t)):a===`data`?t.filter((t,a)=>{let c=r.routes[t.route.id];if(!c||!c.hasLoader)return!1;if(o(t,a)||s(t,a))return!0;if(t.route.shouldRevalidate){let r=t.route.shouldRevalidate({currentUrl:new URL(i.pathname+i.search+i.hash,window.origin),currentParams:n[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if(typeof r==`boolean`)return r}return!0}):[]}function Yr(e,t,{includeHydrateFallback:n}={}){return Xr(e.map(e=>{let r=t.routes[e.route.id];if(!r)return[];let i=[r.module];return r.clientActionModule&&(i=i.concat(r.clientActionModule)),r.clientLoaderModule&&(i=i.concat(r.clientLoaderModule)),n&&r.hydrateFallbackModule&&(i=i.concat(r.hydrateFallbackModule)),r.imports&&(i=i.concat(r.imports)),i}).flat(1))}function Xr(e){return[...new Set(e)]}function Zr(e){let t={},n=Object.keys(e).sort();for(let r of n)t[r]=e[r];return t}function Qr(e,t){let n=new Set,r=new Set(t);return e.reduce((e,i)=>{if(t&&!Gr(i)&&i.as===`script`&&i.href&&r.has(i.href))return e;let a=JSON.stringify(Zr(i));return n.has(a)||(n.add(a),e.push({key:a,link:i})),e},[])}function $r(){let e=r.useContext(hn);return Hr(e,`You must render this element inside a <DataRouterContext.Provider> element`),e}function ei(){let e=r.useContext(gn);return Hr(e,`You must render this element inside a <DataRouterStateContext.Provider> element`),e}var ti=r.createContext(void 0);ti.displayName=`FrameworkContext`;function ni(){let e=r.useContext(ti);return Hr(e,`You must render this element inside a <HydratedRouter> element`),e}function ri(e,t){let n=r.useContext(ti),[i,a]=r.useState(!1),[o,s]=r.useState(!1),{onFocus:c,onBlur:l,onMouseEnter:u,onMouseLeave:d,onTouchStart:f}=t,p=r.useRef(null);r.useEffect(()=>{if(e===`render`&&s(!0),e===`viewport`){let e=new IntersectionObserver(e=>{e.forEach(e=>{s(e.isIntersecting)})},{threshold:.5});return p.current&&e.observe(p.current),()=>{e.disconnect()}}},[e]),r.useEffect(()=>{if(i){let e=setTimeout(()=>{s(!0)},100);return()=>{clearTimeout(e)}}},[i]);let m=()=>{a(!0)},h=()=>{a(!1),s(!1)};return n?e===`intent`?[o,p,{onFocus:ii(c,m),onBlur:ii(l,h),onMouseEnter:ii(u,m),onMouseLeave:ii(d,h),onTouchStart:ii(f,m)}]:[o,p,{}]:[!1,p,{}]}function ii(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function ai({page:e,...t}){let n=vn(),{nonce:i}=ni(),{router:a}=$r(),o=r.useMemo(()=>N(a.routes,e,a.basename),[a.routes,e,a.basename]);return o?(t.nonce==null&&i&&(t={...t,nonce:i}),n?r.createElement(si,{page:e,matches:o,...t}):r.createElement(ci,{page:e,matches:o,...t})):null}function oi(e){let{manifest:t,routeModules:n}=ni(),[i,a]=r.useState([]);return r.useEffect(()=>{let r=!1;return qr(e,t,n).then(e=>{r||a(e)}),()=>{r=!0}},[e,t,n]),i}function si({page:e,matches:t,...n}){let i=$(),{future:a}=ni(),{basename:o}=$r(),s=r.useMemo(()=>{if(e===i.pathname+i.search+i.hash)return[];let n=Ur(e,o,a.v8_trailingSlashAwareDataRequests,`rsc`),r=!1,s=[];for(let e of t)typeof e.route.shouldRevalidate==`function`?r=!0:s.push(e.route.id);return r&&s.length>0&&n.searchParams.set(`_routes`,s.join(`,`)),[n.pathname+n.search]},[o,a.v8_trailingSlashAwareDataRequests,e,i,t]);return r.createElement(r.Fragment,null,s.map(e=>r.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})))}function ci({page:e,matches:t,...n}){let i=$(),{future:a,manifest:o,routeModules:s}=ni(),{basename:c}=$r(),{loaderData:l,matches:u}=ei(),d=r.useMemo(()=>Jr(e,t,u,o,i,`data`),[e,t,u,o,i]),f=r.useMemo(()=>Jr(e,t,u,o,i,`assets`),[e,t,u,o,i]),p=r.useMemo(()=>{if(e===i.pathname+i.search+i.hash)return[];let n=new Set,r=!1;if(t.forEach(e=>{let t=o.routes[e.route.id];!t||!t.hasLoader||(!d.some(t=>t.route.id===e.route.id)&&e.route.id in l&&s[e.route.id]?.shouldRevalidate||t.hasClientLoader?r=!0:n.add(e.route.id))}),n.size===0)return[];let u=Ur(e,c,a.v8_trailingSlashAwareDataRequests,`data`);return r&&n.size>0&&u.searchParams.set(`_routes`,t.filter(e=>n.has(e.route.id)).map(e=>e.route.id).join(`,`)),[u.pathname+u.search]},[c,a.v8_trailingSlashAwareDataRequests,l,i,o,d,t,e,s]),m=r.useMemo(()=>Yr(f,o),[f,o]),h=oi(f);return r.createElement(r.Fragment,null,p.map(e=>r.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})),m.map(e=>r.createElement(`link`,{key:e,rel:`modulepreload`,href:e,...n})),h.map(({key:e,link:t})=>r.createElement(`link`,{key:e,nonce:n.nonce,...t,crossOrigin:t.crossOrigin??n.crossOrigin})))}function li(...e){return t=>{e.forEach(e=>{typeof e==`function`?e(t):e!=null&&(e.current=t)})}}r.Component;var ui=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;try{ui&&(window.__reactRouterVersion=`7.18.1`)}catch{}function di(e,t){return nt({basename:t?.basename,getContext:t?.getContext,future:t?.future,history:m({window:t?.window}),hydrationData:t?.hydrationData||fi(),routes:e,mapRouteProperties:mr,hydrationRouteProperties:hr,dataStrategy:t?.dataStrategy,patchRoutesOnNavigation:t?.patchRoutesOnNavigation,window:t?.window,instrumentations:t?.instrumentations}).initialize()}function fi(){let e=window?.__staticRouterHydrationData;return e&&e.errors&&(e={...e,errors:pi(e.errors)}),e}function pi(e){if(!e)return null;let t=Object.entries(e),n={};for(let[e,r]of t)if(r&&r.__type===`RouteErrorResponse`)n[e]=new De(r.status,r.statusText,r.data,r.internal===!0);else if(r&&r.__type===`Error`){if(typeof r.__subType==`string`&&Ee.includes(r.__subType)){let t=window[r.__subType];if(typeof t==`function`)try{let i=new t(r.message);i.stack=``,n[e]=i}catch{}}if(n[e]==null){let t=Error(r.message);t.stack=``,n[e]=t}}else n[e]=r;return n}function mi({basename:e,children:t,history:n,useTransitions:i}){let[a,o]=r.useState({action:n.action,location:n.location}),s=r.useCallback(e=>{i===!1?o(e):r.startTransition(()=>o(e))},[i]);return r.useLayoutEffect(()=>n.listen(s),[n,s]),r.createElement(Cr,{basename:e,children:t,location:a.location,navigationType:a.action,navigator:n,useTransitions:i})}mi.displayName=`unstable_HistoryRouter`;var hi=r.forwardRef(function({onClick:e,discover:t=`render`,prefetch:n=`none`,relative:i,reloadDocument:a,replace:o,mask:s,state:c,target:u,to:d,preventScrollReset:f,viewTransition:p,defaultShouldRevalidate:m,...h},g){let{basename:_,navigator:v,useTransitions:y}=r.useContext(Z),b=typeof d==`string`&&l.test(d),x=Ae(d,_);d=x.to;let S=kn(d,{relative:i}),C=$(),w=null;if(s){let e=ye(s,[],C.mask?C.mask.pathname:`/`,!0);_!==`/`&&(e.pathname=e.pathname===`/`?_:U([_,e.pathname])),w=v.createHref(e)}let[T,E,D]=ri(n,h),O=Si(d,{replace:o,mask:s,state:c,target:u,preventScrollReset:f,relative:i,viewTransition:p,defaultShouldRevalidate:m,useTransitions:y});function k(t){e&&e(t),t.defaultPrevented||O(t)}let A=!(x.isExternal||a),j=r.createElement(`a`,{...h,...D,href:(A?w:void 0)||x.absoluteURL||S,onClick:A?k:e,ref:li(g,E),target:u,"data-discover":!b&&t===`render`?`true`:void 0});return T&&!b?r.createElement(r.Fragment,null,j,r.createElement(ai,{page:S})):j});hi.displayName=`Link`;var gi=r.forwardRef(function({"aria-current":e=`page`,caseSensitive:t=!1,className:n=``,end:i=!1,style:a,to:o,viewTransition:s,children:c,...l},u){let d=Bn(o,{relative:l.relative}),f=$(),p=r.useContext(gn),{navigator:m,basename:h}=r.useContext(Z),g=p!=null&&Ni(d)&&s===!0,_=m.encodeLocation?m.encodeLocation(d).pathname:d.pathname,v=f.pathname,y=p&&p.navigation&&p.navigation.location?p.navigation.location.pathname:null;t||(v=v.toLowerCase(),y=y?y.toLowerCase():null,_=_.toLowerCase()),y&&h&&(y=V(y,h)||y);let b=_!==`/`&&_.endsWith(`/`)?_.length-1:_.length,x=v===_||!i&&v.startsWith(_)&&v.charAt(b)===`/`,S=y!=null&&(y===_||!i&&y.startsWith(_)&&y.charAt(_.length)===`/`),C={isActive:x,isPending:S,isTransitioning:g},w=x?e:void 0,T;T=typeof n==`function`?n(C):[n,x?`active`:null,S?`pending`:null,g?`transitioning`:null].filter(Boolean).join(` `);let E=typeof a==`function`?a(C):a;return r.createElement(hi,{...l,"aria-current":w,className:T,ref:u,style:E,to:o,viewTransition:s},typeof c==`function`?c(C):c)});gi.displayName=`NavLink`;var _i=r.forwardRef(({discover:e=`render`,fetcherKey:t,navigate:n,reloadDocument:i,replace:a,state:o,method:s=wr,action:c,onSubmit:u,relative:d,preventScrollReset:f,viewTransition:p,defaultShouldRevalidate:m,...h},g)=>{let{useTransitions:_}=r.useContext(Z),v=Ei(),y=Di(c,{relative:d}),b=s.toLowerCase()===`get`?`get`:`post`,x=typeof c==`string`&&l.test(c);return r.createElement(`form`,{ref:g,method:b,action:y,onSubmit:i?u:e=>{if(u&&u(e),e.defaultPrevented)return;e.preventDefault();let i=e.nativeEvent.submitter,c=i?.getAttribute(`formmethod`)||s,l=()=>v(i||e.currentTarget,{fetcherKey:t,method:c,navigate:n,replace:a,state:o,relative:d,preventScrollReset:f,viewTransition:p,defaultShouldRevalidate:m});_&&n!==!1?r.startTransition(()=>l()):l()},...h,"data-discover":!x&&e===`render`?`true`:void 0})});_i.displayName=`Form`;function vi({getKey:e,storageKey:t,...n}){let i=r.useContext(ti),{basename:a}=r.useContext(Z),o=$(),s=nr();ji({getKey:e,storageKey:t});let c=r.useMemo(()=>{if(!i||!e)return null;let t=Ai(o,s,a,e);return t===o.key?null:t},[]);if(!i||i.isSpaMode)return null;let l=((e,t)=>{if(!window.history.state||!window.history.state.key){let e=Math.random().toString(32).slice(2);window.history.replaceState({key:e},``)}try{let n=JSON.parse(sessionStorage.getItem(e)||`{}`)[t||window.history.state.key];typeof n==`number`&&window.scrollTo(0,n)}catch(t){console.error(t),sessionStorage.removeItem(e)}}).toString();return n.nonce==null&&i?.nonce&&(n.nonce=i.nonce),r.createElement(`script`,{...n,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${l})(${Vr(JSON.stringify(t||Oi))}, ${Vr(JSON.stringify(c))})`}})}vi.displayName=`ScrollRestoration`;function yi(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function bi(e){let t=r.useContext(hn);return h(t,yi(e)),t}function xi(e){let t=r.useContext(gn);return h(t,yi(e)),t}function Si(e,{target:t,replace:n,mask:i,state:a,preventScrollReset:o,relative:s,viewTransition:c,defaultShouldRevalidate:l,useTransitions:u}={}){let d=Fn(),f=$(),p=Bn(e,{relative:s});return r.useCallback(m=>{if(jr(m,t)){m.preventDefault();let t=n===void 0?b(f)===b(p):n,h=()=>d(e,{replace:t,mask:i,state:a,preventScrollReset:o,relative:s,viewTransition:c,defaultShouldRevalidate:l});u?r.startTransition(()=>h()):h()}},[f,d,p,n,i,a,t,e,o,s,c,l,u])}function Ci(e){g(typeof URLSearchParams<`u`,"You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=r.useRef(Mr(e)),n=r.useRef(!1),i=$(),a=r.useMemo(()=>Nr(i.search,n.current?null:t.current),[i.search]),o=Fn();return[a,r.useCallback((e,t)=>{let r=Mr(typeof e==`function`?e(new URLSearchParams(a)):e);n.current=!0,o(`?`+r,t)},[o,a])]}var wi=0,Ti=()=>`__${String(++wi)}__`;function Ei(){let{router:e}=bi(`useSubmit`),{basename:t}=r.useContext(Z),n=er(),i=e.fetch,a=e.navigate;return r.useCallback(async(e,r={})=>{let{action:o,method:s,encType:c,formData:l,body:u}=Rr(e,t);if(r.navigate===!1){let e=r.fetcherKey||Ti();await i(e,n,r.action||o,{defaultShouldRevalidate:r.defaultShouldRevalidate,preventScrollReset:r.preventScrollReset,formData:l,body:u,formMethod:r.method||s,formEncType:r.encType||c,flushSync:r.flushSync})}else await a(r.action||o,{defaultShouldRevalidate:r.defaultShouldRevalidate,preventScrollReset:r.preventScrollReset,formData:l,body:u,formMethod:r.method||s,formEncType:r.encType||c,replace:r.replace,state:r.state,fromRouteId:n,flushSync:r.flushSync,viewTransition:r.viewTransition})},[i,a,t,n])}function Di(e,{relative:t}={}){let{basename:n}=r.useContext(Z),i=r.useContext(Q);h(i,`useFormAction must be used inside a RouteContext`);let[a]=i.matches.slice(-1),o={...Bn(e||`.`,{relative:t})},s=$();if(e==null){o.search=s.search;let e=new URLSearchParams(o.search),t=e.getAll(`index`);if(t.some(e=>e===``)){e.delete(`index`),t.filter(e=>e).forEach(t=>e.append(`index`,t));let n=e.toString();o.search=n?`?${n}`:``}}return(!e||e===`.`)&&a.route.index&&(o.search=o.search?o.search.replace(/^\?/,`?index&`):`?index`),n!==`/`&&(o.pathname=o.pathname===`/`?n:U([n,o.pathname])),b(o)}var Oi=`react-router-scroll-positions`,ki={};function Ai(e,t,n,r){let i=null;return r&&(i=r(n===`/`?e:{...e,pathname:V(e.pathname,n)||e.pathname},t)),i??=e.key,i}function ji({getKey:e,storageKey:t}={}){let{router:n}=bi(`useScrollRestoration`),{restoreScrollPosition:i,preventScrollReset:a}=xi(`useScrollRestoration`),{basename:o}=r.useContext(Z),s=$(),c=nr(),l=tr();r.useEffect(()=>(window.history.scrollRestoration=`manual`,()=>{window.history.scrollRestoration=`auto`}),[]),Mi(r.useCallback(()=>{if(l.state===`idle`){let t=Ai(s,c,o,e);ki[t]=window.scrollY}try{sessionStorage.setItem(t||Oi,JSON.stringify(ki))}catch(e){g(!1,`Failed to save scroll positions in sessionStorage, <ScrollRestoration /> will not work properly (${e}).`)}window.history.scrollRestoration=`auto`},[l.state,e,o,s,c,t])),typeof document<`u`&&(r.useLayoutEffect(()=>{try{let e=sessionStorage.getItem(t||Oi);e&&(ki=JSON.parse(e))}catch{}},[t]),r.useLayoutEffect(()=>{let t=n?.enableScrollRestoration(ki,()=>window.scrollY,e?(t,n)=>Ai(t,n,o,e):void 0);return()=>t&&t()},[n,o,e]),r.useLayoutEffect(()=>{if(i!==!1){if(typeof i==`number`){window.scrollTo(0,i);return}try{if(s.hash){let e=document.getElementById(decodeURIComponent(s.hash.slice(1)));if(e){e.scrollIntoView();return}}}catch{g(!1,`"${s.hash.slice(1)}" is not a decodable element ID. The view will not scroll to it.`)}a!==!0&&window.scrollTo(0,0)}},[s,i,a]))}function Mi(e,t){let{capture:n}=t||{};r.useEffect(()=>{let t=n==null?void 0:{capture:n};return window.addEventListener(`pagehide`,e,t),()=>{window.removeEventListener(`pagehide`,e,t)}},[e,n])}function Ni(e,{relative:t}={}){let n=r.useContext(yn);h(n!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:i}=bi(`useViewTransitionState`),a=Bn(e,{relative:t});if(!n.isTransitioning)return!1;let o=V(n.currentLocation.pathname,i)||n.currentLocation.pathname,s=V(n.nextLocation.pathname,i)||n.nextLocation.pathname;return R(a.pathname,s)!=null||R(a.pathname,o)!=null}export{di as a,ar as c,nr as d,Fn as f,Ci as g,rr as h,_r as i,$ as l,zn as m,xr as n,N as o,jn as p,Sr as r,Te as s,hi as t,Mn as u};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{d as r,u as i}from"./Combination-BDvCdg1t.js";import{a,c as o}from"./dist-Cb5RSHSg.js";import{r as s}from"./dist-CQJY6SVY.js";import{t as c}from"./dist-CqO2lWS02.js";import{n as l,t as u}from"./dist-B2PvRwLn.js";import{t as d}from"./dist-myQaY0ka.js";import{t as f}from"./dist-JLOy8o0Q.js";import{c as p,i as m,n as h,o as g,s as _,t as v}from"./select-xuZAuDyS.js";import{Pr as y,cr as b,ja as x}from"./index-BOJzlYiz.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]=l(G),[q,he]=s(G,[me]),[ge,J]=q(G),_e=S.forwardRef((e,t)=>{let{name:n,min:a=0,max:o=100,step:s=1,orientation:c=`horizontal`,disabled:l=!1,minStepsBetweenThumbs:u=0,defaultValue:d=[a],value:f,onValueChange:m=()=>{},onValueCommit:h=()=>{},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]=i({prop:f,defaultProp:d,onChange:e=>{[...y.current][b.current]?.focus({preventScroll:!0,focusVisible:x.current}),x.current=!1,m(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&&h(T)}function j(e,t,{commit:n}={commit:!1}){let r=He(s),i=p(Ue(Math.round((e-a)/s)*s+a,r),[a,o]);E((e=[])=>{let r=Fe(e,i,t);if(Ve(r,u*s)){b.current=r.indexOf(i);let t=String(r)!==String(e);return t&&n&&h(r),t?r:e}else return e})}return(0,C.jsx)(ge,{scope:e.__scopeSlider,name:n,disabled:l,min:a,max:o,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:r(v.onPointerDown,()=>{l||(D.current=T,x.current=!1)}),min:a,max:o,inverted:g,onSlideStart:l?void 0:O,onSlideMove:l?void 0:k,onSlideEnd:l?void 0:A,onHomeKeyDown:()=>{l||(x.current=!0,j(a,0,{commit:!0}))},onEndKeyDown:()=>{l||(x.current=!0,j(o,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+s*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:r,dir:i,inverted:o,onSlideStart:s,onSlideMove:c,onSlideEnd:l,onStepKeyDown:d,...f}=e,[p,m]=S.useState(null),h=a(t,m),g=S.useRef(void 0),_=u(i),v=_===`ltr`,y=v&&!o||!v&&o;function b(e){let t=g.current||p.getBoundingClientRect(),i=Z([0,t.width],y?[n,r]:[r,n]);return g.current=t,i(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`,...f,ref:h,style:{...f.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);d?.({event:e,direction:t?-1:1})}})})}),xe=S.forwardRef((e,t)=>{let{min:n,max:r,inverted:i,onSlideStart:o,onSlideMove:s,onSlideEnd:c,onStepKeyDown:l,...u}=e,d=S.useRef(null),f=a(t,d),p=S.useRef(void 0),m=!i;function h(e){let t=p.current||d.current.getBoundingClientRect(),i=Z([0,t.height],m?[r,n]:[n,r]);return p.current=t,i(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:i,onSlideMove:a,onSlideEnd:o,onHomeKeyDown:s,onEndKeyDown:l,onStepKeyDown:u,...d}=e,f=J(G,n);return(0,C.jsx)(c.span,{...d,ref:t,onKeyDown:r(e.onKeyDown,e=>{e.key===`Home`?(s(e),e.preventDefault()):e.key===`End`?(l(e),e.preventDefault()):U.concat(W).includes(e.key)&&(u(e),e.preventDefault())}),onPointerDown:r(e.onPointerDown,e=>{let t=e.target;t.setPointerCapture(e.pointerId),e.preventDefault(),f.thumbs.has(t)?t.focus({preventScroll:!0,focusVisible:!1}):i(e)}),onPointerMove:r(e.onPointerMove,e=>{e.target.hasPointerCapture(e.pointerId)&&a(e)}),onPointerUp:r(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&(t.releasePointerCapture(e.pointerId),o(e))})})}),Ce=`SliderTrack`,we=S.forwardRef((e,t)=>{let{__scopeSlider:n,...r}=e,i=J(Ce,n);return(0,C.jsx)(c.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,...r}=e,i=J(Y,n),o=ye(Y,n),s=a(t,S.useRef(null)),l=i.values.length,u=i.values.map(e=>Ie(e,i.min,i.max)),d=l>1?Math.min(...u):0,f=100-Math.max(...u);return(0,C.jsx)(c.span,{"data-orientation":i.orientation,"data-disabled":i.disabled?``:void 0,...r,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,a=J(ke,t),o=pe(t),[s,c]=S.useState(null),l=S.useMemo(()=>s?o().findIndex(e=>e.ref.current===s):-1,[o,s]),u=d(s),f=s?!!a.form||!!s.closest(`form`):!0,p=a.values[l],m=n??(a.name?a.name+(a.values.length>1?`[]`:``):void 0),h=p===void 0?0:Ie(p,a.min,a.max);S.useEffect(()=>{if(s)return a.thumbs.add(s),()=>{a.thumbs.delete(s)}},[s,a.thumbs]);let g={value:p,name:m,form:a.form,isFormControl:f,index:l,thumb:s,onThumbChange:c,percent:h,size:u};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,o=J(X,n),s=ye(X,n),{index:l,value:u,percent:d,size:f,onThumbChange:p}=Oe(X,n),m=a(t,p),h=Le(l,o.values.length),g=f?.[s.size],_=g?ze(g,d,s.direction):0;return(0,C.jsx)(`span`,{style:{transform:`var(--radix-slider-thumb-transform)`,position:`absolute`,[s.startEdge]:`calc(${d}% + ${_}px)`},children:(0,C.jsx)(K.ItemSlot,{scope:n,children:(0,C.jsx)(c.span,{role:`slider`,"aria-label":e[`aria-label`]||h,"aria-valuemin":o.min,"aria-valuenow":u,"aria-valuemax":o.max,"aria-orientation":o.orientation,"data-orientation":o.orientation,"data-disabled":o.disabled?``:void 0,tabIndex:o.disabled?void 0:0,...i,ref:m,style:u===void 0?{display:`none`}:e.style,onFocus:r(e.onFocus,()=>{o.valueIndexToChangeRef.current=l})})})})});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:r,name:i,form:o}=Oe(Ne,e),s=S.useRef(null),l=a(s,n),u=f(r);return S.useEffect(()=>{let e=s.current;if(!e)return;let t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set;if(u!==r&&n){let t=new Event(`input`,{bubbles:!0});n.call(e,r),e.dispatchEvent(t)}},[u,r]),(0,C.jsx)(c.input,{style:{display:`none`},name:i,form:o,...t,ref:l,defaultValue:r})});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 p(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:i,...a})=>(0,C.jsx)(`button`,{"aria-pressed":t,className:o(`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,...i},type:`button`,...a,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:i,...a})=>(0,C.jsx)(`div`,{className:o(`flex items-center gap-1`,i),...a,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:o(`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,...i})=>{let a=z(e??t),[s,c]=(0,S.useState)(a.hue()),[l,u]=(0,S.useState)(a.saturationl()),[d,f]=(0,S.useState)(a.lightness()),[p,m]=(0,S.useState)(a.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:o(`flex size-full flex-col gap-4`,r),...i})})},$=(0,S.memo)(({className:e,...t})=>{let n=(0,S.useRef)(null),r=(0,S.useRef)(null),[i,a]=(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));a(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));a(r),c(i),f(r*100);let o=(r<.01?100:50+50*(1-r))*(1-i);p(o)},[f,p]);return(0,C.jsx)(`div`,{ref:n,className:o(`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:`${i*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:o(`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:i,setAlpha:a}=Q();return typeof window<`u`&&`EyeDropper`in window?(0,C.jsx)(y,{className:o(`size-8 shrink-0 text-muted-foreground`,e),size:`icon`,type:`button`,variant:`outline`,onClick:async()=>{try{let[e,t,o]=z((await new EyeDropper().open()).sRGBHex).hsl().array();n(e),r(t),i(o),a(100)}catch(e){console.error(`EyeDropper failed:`,e)}},...t,children:(0,C.jsx)(x,{size:16})}):null},$e=[`hex`,`rgb`,`hsl`],et=({...e})=>{let{mode:t,setMode:n}=Q();return(0,C.jsxs)(v,{value:t,onValueChange:n,children:[(0,C.jsx)(g,{className:`h-8 w-20 shrink-0 text-xs`,...e,children:(0,C.jsx)(_,{placeholder:`Mode`})}),(0,C.jsx)(h,{children:$e.map(e=>(0,C.jsx)(m,{className:`text-xs`,value:e,children:e.toUpperCase()},e))})]})},tt=({className:e,...t})=>{let{hue:n,saturation:r,lightness:i,mode:a,setHue:s,setSaturation:c,setLightness:l,setAlpha:u}=Q(),d=z.hsl(n,r,i),[f,p]=(0,S.useState)(null),m=(e,t)=>{try{if(a===`hex`){let t=z(e);s(t.hue()),c(t.saturationl()),l(t.lightness()),u(t.alpha()*100)}else if((a===`rgb`||a===`hsl`)&&t!==void 0){let n=d[a]().array().map(e=>Math.round(e));n[t]=parseInt(e,10)||0;let r=z[a](n[0],n[1],n[2]);s(r.hue()),c(r.saturationl()),l(r.lightness())}}catch{}};if(a===`hex`){let n=d.hex();return(0,C.jsx)(`div`,{className:o(`relative flex w-full items-center -space-x-px rounded-md`,e),...t,children:(0,C.jsx)(b,{"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(a===`rgb`||a===`hsl`){let n=d[a]().array().map(e=>Math.round(e));return(0,C.jsx)(`div`,{className:o(`flex flex-1 items-stretch -space-x-px rounded-md`,e),...t,children:n.map((e,t)=>(0,C.jsx)(b,{"aria-label":`${a.toUpperCase()} channel ${t+1}`,className:o(`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};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{c as r}from"./dist-Cb5RSHSg.js";import{n as i,t as a}from"./input-surface-BdOe4KzO.js";import{as as o,br as s,vr as c,xr as l}from"./index-BOJzlYiz.js";var u=e(t(),1),d=n(),f=c,p=u.forwardRef(({children:e,className:t,...n},s)=>(0,d.jsx)(l,{asChild:!0,children:(0,d.jsxs)(`button`,{ref:s,className:r(a(`self`),i.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)(o,{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)(s,{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};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{a as r}from"./Combination-BDvCdg1t.js";import{c as i,i as a}from"./dist-Cb5RSHSg.js";import{t as o}from"./dist-CqO2lWS02.js";import{Ar as s,Mr as c,Nr as l,jr as u,os as d,ya as f}from"./index-BOJzlYiz.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}})),i=Z(()=>new Set),a=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=r(),ee=r(),S=r(),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)=>(i.current.add(e),t&&(a.current.has(t)?a.current.get(t).add(e):a.current.set(t,new Set([e]))),w(3,()=>{R(),O(),n.current.value||L(),T.emit()}),()=>{s.current.delete(e),i.current.delete(e),n.current.filtered.items.delete(e);let t=B();w(4,()=>{R(),t?.getAttribute(`id`)===e&&L(),T.emit()})}),group:e=>(a.current.has(e)||a.current.set(e,new Set),()=>{s.current.delete(e),a.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=a.current.get(n),i=0;r.forEach(t=>{let n=e.get(t);i=Math.max(n,i)}),t.push([n,i])});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=i.current.size;return}n.current.filtered.groups=new Set;let e=0;for(let t of i.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 a.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=r(),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:a(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=r(),u=p.useRef(null),d=p.useRef(null),f=r(),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:a(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,...r}=e,i=p.useRef(null),s=Q(e=>!e.search);return!n&&!s?null:p.createElement(o.div,{ref:a(i,t),...r,"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:r=`Suggestions`,...i}=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:a(s,t),...i,"cmdk-list":``,role:`listbox`,tabIndex:-1,"aria-activedescendant":l,"aria-label":r,id:u.listId},$(e,e=>p.createElement(`div`,{ref:a(c,u.listInnerRef),"cmdk-list-sizer":``},e)))}),K=p.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:i,contentClassName:a,container:o,...d}=e;return p.createElement(s,{open:n,onOpenChange:r},p.createElement(l,{container:o},p.createElement(c,{"cmdk-overlay":``,className:i}),p.createElement(u,{"aria-label":e.label,"cmdk-dialog":``,className:a},p.createElement(B,{ref:t,...d}))))}),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)(f,{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=d,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};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{g as r}from"./framework-provider-CFLwK5uS.js";import{i,n as a,t as o}from"./hooks-CJepWnbB.js";import{t as s}from"./build-CsiH26uS.js";import{g as c,t as l}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{c as u,f as d,m as f}from"./dist-Cb5RSHSg.js";import{t as p}from"./box-By_EgGtm.js";import{t as m}from"./container-LiZf3XdY.js";import{i as h,n as g,r as _,t as v}from"./tabs-l9c7FjzI.js";import{a as y,i as b}from"./filters-DZJT29GW.js";import{t as x}from"./checkbox-LmClhqcS.js";import{t as S}from"./empty-indicator-WB1WgT9h.js";import{t as ee}from"./label-DodDsMzn.js";import{$n as C,$r as w,Bn as T,Bo as te,Ca as ne,Co as re,Do as ie,Dr as E,Er as D,Ho as O,Ir as k,Ja as ae,Ln as oe,Lo as se,Lr as A,Ma as ce,Na as j,Ni as le,No as M,O as ue,Oi as de,Or as N,Po as fe,Pr as P,Qi as pe,Rn as me,Ro as he,Rr as ge,Sr as F,Tr as _e,Ur as I,Vn as ve,Xa as ye,Xn as be,Xo as xe,Yr as Se,Za as Ce,Zi as we,Zr as Te,ai as Ee,ar as L,as as De,er as Oe,j as ke,jn as Ae,ko as je,ns as Me,ps as Ne,qa as R,tr as z,wr as B,zo as Pe,zr as V}from"./index-BOJzlYiz.js";import{t as H}from"./page-header-VLPJfj_d.js";import{S as Fe,T as Ie,_ as Le,a as Re,b as ze,c as Be,f as U,g as Ve,h as He,i as Ue,l as We,m as Ge,n as Ke,o as qe,r as Je,s as Ye,t as Xe,u as Ze,v as Qe,w as $e,x as et,y as tt}from"./filters-D0uIMD8n.js";import{t as W}from"./list-page-CdsnQR9N.js";import{n as nt,r as rt}from"./filter-sources-FgqoUIL7.js";import{i as it,n as at,r as ot,t as st}from"./virtual-list-D5ugXyZY.js";import{t as ct}from"./get-site-timezone-HgL0jI_F.js";var G=e(t(),1),K=Xe({status:{operators:[`is`],ui:{label:`Status`,type:`select`,searchable:!1,hideOperatorSelect:!0},options:[{value:`published`,label:`Published`},{value:`hidden`,label:`Hidden`}],codec:U()},created_at:$e({operators:Ve,ui:{label:`Date`,defaultOperator:Qe,type:`date`},codec:Ze()}),body:{operators:[`contains`,`does-not-contain`],parseKeys:[`html`],ui:{label:`Text`,type:`text`,placeholder:`Search comment text...`,defaultOperator:`contains`,className:`w-full max-w-48`,popoverContentClassName:`w-full max-w-48`},codec:Ge({field:`html`})},post:{operators:[`is`,`is-not`],parseKeys:[`post_id`],ui:{label:`Post`,type:`select`,searchable:!0,className:`w-full max-w-80`,popoverContentClassName:`w-full max-w-[calc(100vw-32px)] max-w-80`},codec:U({field:`post_id`})},author:{operators:[`is`,`is-not`],parseKeys:[`member_id`],ui:{label:`Author`,type:`select`,searchable:!0,className:`w-80`,popoverContentClassName:`w-80`},codec:U({field:`member_id`})},reported:{operators:[`is`],parseKeys:[`count.reports`],ui:{label:`Reported`,type:`select`,searchable:!1,hideOperatorSelect:!0},options:[{value:`true`,label:`Yes`},{value:`false`,label:`No`}],codec:{parse(e,t){let n=tt(e);return!n||n.field!==`count.reports`?null:n.operator===`$eq`&&n.value===0?{field:t.key,operator:`is`,values:[`false`]}:n.operator===`$gt`&&n.value===0?{field:t.key,operator:`is`,values:[`true`]}:null},serialize(e){let t=e.values[0];return e.operator===`is`?t===`true`?[`count.reports:>0`]:t===`false`?[`count.reports:0`]:null:null}}}}),lt=[`author`,`post`,`body`,`status`,`reported`,`created_at`],ut={...Le,...et};function dt(e){switch(e){case`author`:return G.createElement(le,{className:`size-4`});case`post`:return G.createElement(fe,{className:`size-4`});case`body`:return G.createElement(ae,{className:`size-4`});case`status`:return G.createElement(xe,{className:`size-4`});case`reported`:return G.createElement(M,{className:`size-4`});case`created_at`:return G.createElement(Ne,{className:`size-4`});default:return}}function ft({postValueSource:e,memberValueSource:t,siteTimezone:n=`UTC`}){return(0,G.useMemo)(()=>{let r=He(n);return lt.map(n=>{let i=K[n],a=n===`created_at`?{defaultValue:r,...Fe(i)?{customRenderer:ze(r)}:{}}:{};return{key:n,...i.ui,icon:dt(n),operators:We(i.operators,{labels:ut}),...`options`in i&&i.options?{options:i.options}:{},...a,...n===`author`?{valueSource:t}:{},...n===`post`?{valueSource:e}:{}}})},[t,e,n])}var q=n(),pt=({filters:e,siteTimezone:t,onFiltersChange:n})=>{let r=nt(),i=ft({memberValueSource:rt(),postValueSource:r,siteTimezone:t}),a=e.length>0;return(0,q.jsx)(b,{addButtonIcon:a?(0,q.jsx)(je,{}):(0,q.jsx)(ie,{}),addButtonText:a?`Add filter`:`Filter`,allowMultiple:!1,className:`[&>button]:order-last ${a?`[&>button]:border-none`:`w-auto`}`,clearButtonClassName:`font-normal text-muted-foreground`,clearButtonIcon:(0,q.jsx)(de,{}),clearButtonText:`Clear`,fields:i,filters:e,keyboardShortcut:`f`,popoverAlign:a?`start`:`end`,showClearButton:a,showSearchInput:!1,onChange:n})},J=`CommentsResponseType`,mt=`count.dislikes`,Y=e=>[`member`,`post`,`count.replies`,`count.direct_replies`,`count.likes`,...e?[mt]:[],`count.reports`,`parent`,`in_reply_to`].join(`,`),ht=e=>[`member`,`post`,`count.direct_replies`,`count.likes`,...e?[mt]:[],`count.reports`,`parent`,`in_reply_to`].join(`,`),gt=o({dataType:J,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}}}),_t=e=>gt({...e,searchParams:{limit:`100`,order:`created_at desc`,include:`member,post,parent`,...e?.searchParams}}),vt=a({method:`PUT`,path:({id:e})=>`/comments/${e}/`,body:({id:e})=>({comments:[{id:e,status:`hidden`}]}),invalidateQueries:{dataType:J}}),yt=a({method:`PUT`,path:({id:e})=>`/comments/${e}/`,body:({id:e})=>({comments:[{id:e,status:`published`}]}),invalidateQueries:{dataType:J}});a({method:`PUT`,path:({id:e})=>`/comments/${e}/`,body:({id:e})=>({comments:[{id:e,status:`deleted`}]}),invalidateQueries:{dataType:J}});var bt=a({method:`PUT`,path:({id:e})=>`/comments/${e}/`,body:({id:e})=>({comments:[{id:e,pinned:!0}]}),invalidateQueries:{dataType:J}}),X=a({method:`PUT`,path:({id:e})=>`/comments/${e}/`,body:({id:e})=>({comments:[{id:e,pinned:!1}]}),invalidateQueries:{dataType:J}});i({dataType:J,path:e=>`/comments/${e}/replies/`,defaultSearchParams:{include:`member,post,count.replies,count.likes,count.reports,parent`,limit:`100`}});var xt=i({dataType:J,path:e=>`/comments/${e}/`,defaultSearchParams:{include:Y(!1)}}),St=(e,t)=>{let{dislikesEnabled:n=!1,searchParams:r,...i}=t||{};return xt(e,{...i,searchParams:{include:Y(n),...r}})},Ct=i({dataType:`CommentReportsResponseType`,path:e=>`/comments/${e}/reports/`}),wt=(e,t)=>Ct(e,{...t}),Tt=i({dataType:`CommentLikesResponseType`,path:e=>`/comments/${e}/likes/`,defaultSearchParams:{include:`member`,limit:`100`,order:`created_at desc`}}),Et=(e,t)=>Tt(e,{...t}),Dt=i({dataType:`CommentDislikesResponseType`,path:e=>`/comments/${e}/dislikes/`,defaultSearchParams:{include:`member`,limit:`100`,order:`created_at desc`}}),Ot=(e,t)=>Dt(e,{...t}),kt=(e,t)=>{let{dislikesEnabled:n=!1,...r}=t||{};return _t({...r,searchParams:{filter:`(parent_id:${e}+in_reply_to_id:null),in_reply_to_id:${e}`,order:`created_at asc`,include:ht(n),limit:`100`}})};function At({onClick:e,expanded:t}){return(0,q.jsxs)(P,{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,q.jsx)(Me,{}):(0,q.jsx)(De,{})]})}function jt({item:e}){let t=(0,G.useRef)(null),[n,r]=(0,G.useState)(!1),[i,a]=(0,G.useState)(!1);return(0,G.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,q.jsx)(`div`,{className:`mt-2 flex flex-col gap-2`,children:(0,q.jsxs)(`div`,{className:`flex max-w-full flex-col items-start ${e.status===`hidden`&&`opacity-50`}`,children:[(0,q.jsx)(`div`,{dangerouslySetInnerHTML:{__html:e.html||``},ref:t,className:u(`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,q.jsx)(At,{expanded:i,onClick:()=>a(!i)})]})})}function Mt(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 Nt=u(Oe({variant:`warning`}),`gap-1 hover:bg-state-warning/30`);function Pt({memberName:e,memberId:t,createdAt:n,isHidden:r,canComment:i,isPinned:a,onAuthorClick:o,postTitle:s,onPostClick:c,onUnpinClick:l,className:d}){return(0,q.jsxs)(`div`,{className:u(`flex items-center gap-2`,d),children:[(0,q.jsxs)(`div`,{className:u(`flex min-w-0 items-center gap-x-1`,r&&`opacity-50`),children:[(0,q.jsx)(`div`,{className:`whitespace-nowrap`,children:t&&o?(0,q.jsx)(P,{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,q.jsx)(`span`,{className:`block truncate font-semibold`,children:e||`Unknown`})}),i===!1&&(0,q.jsxs)(k,{children:[(0,q.jsx)(V,{asChild:!0,children:(0,q.jsx)(`span`,{"data-testid":`commenting-disabled-indicator`,children:(0,q.jsx)(Ce,{className:`size-3.5 text-muted-foreground`})})}),(0,q.jsx)(A,{children:`Comments disabled`})]}),(0,q.jsx)(O,{className:`shrink-0 text-muted-foreground/50`,size:16}),(0,q.jsx)(`div`,{className:`shrink-0 whitespace-nowrap`,children:n&&(0,q.jsxs)(k,{children:[(0,q.jsx)(V,{asChild:!0,children:(0,q.jsx)(`span`,{className:`cursor-default text-sm text-muted-foreground`,children:f(n)})}),(0,q.jsx)(A,{children:Mt(n)})]})}),s&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`shrink-0 text-muted-foreground`,children:`on`}),(0,q.jsx)(`div`,{className:`min-w-0 truncate`,children:c?(0,q.jsx)(P,{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,q.jsx)(`span`,{className:`font-medium text-gray-800 dark:text-gray-400`,children:s})})]})]}),r&&(0,q.jsx)(C,{variant:`secondary`,children:`Hidden`}),a&&(l?(0,q.jsxs)(`button`,{"aria-label":`Unpin comment`,className:u(`group`,Nt),type:`button`,onClick:e=>{e.stopPropagation(),l?.()},children:[(0,q.jsxs)(`span`,{className:`grid size-3 shrink-0`,children:[(0,q.jsx)(j,{className:`col-start-1 row-start-1 size-3 group-hover:opacity-0 group-focus-visible:opacity-0`}),(0,q.jsx)(ce,{className:`col-start-1 row-start-1 size-3 opacity-0 group-hover:opacity-100 group-focus-visible:opacity-100`})]}),(0,q.jsxs)(`span`,{className:`grid justify-items-start text-left`,children:[(0,q.jsx)(`span`,{className:`col-start-1 row-start-1 group-hover:opacity-0 group-focus-visible:opacity-0`,children:`Pinned`}),(0,q.jsx)(`span`,{className:`col-start-1 row-start-1 opacity-0 group-hover:opacity-100 group-focus-visible:opacity-100`,children:`Unpin`})]})]}):(0,q.jsxs)(C,{className:`gap-1`,variant:`warning`,children:[(0,q.jsx)(j,{className:`size-3`}),`Pinned`]}))]})}function Ft({open:e,memberName:t,onOpenChange:n,onConfirm:r}){let[i,a]=(0,G.useState)(!1),o=e=>{e||a(!1),n(e)};return(0,q.jsx)(F,{open:e,onOpenChange:o,children:(0,q.jsxs)(B,{className:`gap-5`,children:[(0,q.jsxs)(E,{children:[(0,q.jsx)(N,{children:`Disable comments`}),(0,q.jsxs)(_e,{children:[t||`This member`,` won't be able to comment in the future. You can re-enable commenting anytime.`]})]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(x,{checked:i,id:`hide-comments`,onCheckedChange:e=>a(e===!0)}),(0,q.jsx)(ee,{htmlFor:`hide-comments`,children:`Hide all previous comments`})]}),(0,q.jsxs)(D,{children:[(0,q.jsx)(P,{variant:`outline`,onClick:()=>o(!1),children:`Cancel`}),(0,q.jsx)(P,{onClick:()=>{r(i),a(!1)},children:`Disable comments`})]})]})})}function It({comment:e}){let{mutate:t}=ue(),{mutate:n}=ke(),{mutate:r}=bt(),{mutate:i}=X(),[a,o]=(0,G.useState)(!1),{id:s,post:c,member:l}=e,u=c?.url,d=l?.id,f=l?.can_comment,p=!e.parent_id&&e.status!==`deleted`;return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(Se,{children:[(0,q.jsx)(Ee,{asChild:!0,children:(0,q.jsx)(P,{className:`relative z-10 text-gray-800 hover:bg-secondary [&_svg]:size-4`,size:`sm`,variant:`ghost`,children:(0,q.jsx)(te,{})})}),(0,q.jsxs)(Te,{align:`start`,children:[u&&(0,q.jsx)(w,{asChild:!0,children:(0,q.jsxs)(`a`,{href:`${u}#ghost-comments-${s}`,rel:`noopener noreferrer`,target:`_blank`,children:[(0,q.jsx)(Pe,{className:`size-4`}),`View on post`]})}),d&&(0,q.jsx)(w,{asChild:!0,children:(0,q.jsxs)(`a`,{href:`#/members/${d}`,children:[(0,q.jsx)(le,{className:`size-4`}),`View member`]})}),p&&(e.pinned?(0,q.jsxs)(w,{onClick:()=>i({id:s}),children:[(0,q.jsx)(ce,{className:`size-4`}),`Unpin comment`]}):(0,q.jsxs)(w,{onClick:()=>r({id:s}),children:[(0,q.jsx)(j,{className:`size-4`}),`Pin comment`]})),d&&(f===!1?(0,q.jsxs)(w,{onClick:()=>{d&&n({id:d})},children:[(0,q.jsx)(ye,{className:`size-4`}),`Enable commenting`]}):(0,q.jsxs)(w,{onClick:()=>o(!0),children:[(0,q.jsx)(Ce,{className:`size-4`}),`Disable commenting`]}))]})]}),(0,q.jsx)(Ft,{memberName:l?.name,open:a,onConfirm:e=>{d&&(t({id:d,reason:`Disabled from comment ${s}`,hideComments:e}),o(!1))},onOpenChange:o})]})}function Lt({comment:e,dislikesEnabled:t,open:n,defaultTab:r=`likes`,onOpenChange:i}){let{data:a,isLoading:o}=Et(e.id,{enabled:n}),{data:s,isLoading:c}=Ot(e.id,{enabled:n&&t}),l=a?.comment_likes??[],u=t?s?.comment_dislikes??[]:[],p=e.count?.likes??0,m=t?e.count?.dislikes??0:0,y=Math.max(0,p-l.length),b=Math.max(0,m-u.length);return(0,q.jsx)(F,{open:n,onOpenChange:i,children:(0,q.jsxs)(B,{"aria-describedby":void 0,children:[(0,q.jsx)(E,{children:(0,q.jsx)(N,{children:t?(0,q.jsxs)(q.Fragment,{children:[d(p),` `,p===1?`like`:`likes`,` and `,d(m),` `,m===1?`dislike`:`dislikes`]}):(0,q.jsxs)(q.Fragment,{children:[d(p),` `,p===1?`like`:`likes`]})})}),(0,q.jsx)(`div`,{className:`overflow-hidden rounded-md border p-3`,children:(0,q.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[(0,q.jsx)(z,{className:`shrink-0`,email:e.member?.email,name:e.member?.name,src:e.member?.avatar_image}),(0,q.jsxs)(`div`,{className:`flex min-w-0 flex-col overflow-hidden`,children:[(0,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1 text-sm`,children:[(0,q.jsx)(`span`,{className:`shrink-0 font-semibold`,children:e.member?I(e.member):`Deleted member`}),(0,q.jsx)(O,{className:`shrink-0 text-muted-foreground/50`,size:16}),(0,q.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:e.created_at&&f(e.created_at)}),(0,q.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:`on`}),(0,q.jsx)(`span`,{className:`min-w-0 truncate font-medium text-gray-800 dark:text-gray-400`,children:e.post?.title||`Unknown post`})]}),(0,q.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,q.jsxs)(v,{defaultValue:r,variant:`segmented`,children:[(0,q.jsxs)(_,{className:`grid w-full grid-cols-2`,children:[(0,q.jsx)(h,{value:`likes`,children:`Likes`}),(0,q.jsx)(h,{value:`dislikes`,children:`Dislikes`})]}),(0,q.jsx)(g,{className:`mt-4`,value:`likes`,children:(0,q.jsx)(`div`,{className:`-mx-1 max-h-64 overflow-y-auto px-1`,children:o?(0,q.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,q.jsx)(L,{size:`md`})}):l.length===0?(0,q.jsx)(`div`,{className:`py-4 text-center text-sm text-muted-foreground`,children:`No likes yet`}):(0,q.jsxs)(`div`,{className:`flex flex-col gap-3 pb-1`,children:[l.map(e=>(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,q.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,q.jsx)(z,{email:e.member?.email,name:e.member?.name,src:e.member?.avatar_image}),(0,q.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,q.jsx)(we,{className:`size-2.5`,fill:`currentColor`})})]}),(0,q.jsx)(`span`,{className:`font-medium`,children:e.member?I(e.member):`Deleted member`})]}),(0,q.jsx)(`span`,{className:`shrink-0 text-sm text-muted-foreground`,children:f(e.created_at)})]},e.id)),y>0&&(0,q.jsxs)(`div`,{className:`pt-1 text-center text-sm text-muted-foreground`,children:[`and `,d(y),` more`]})]})})}),(0,q.jsx)(g,{className:`mt-4`,value:`dislikes`,children:(0,q.jsx)(`div`,{className:`-mx-1 max-h-64 overflow-y-auto px-1`,children:c?(0,q.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,q.jsx)(L,{size:`md`})}):u.length===0?(0,q.jsx)(`div`,{className:`py-4 text-center text-sm text-muted-foreground`,children:`No dislikes yet`}):(0,q.jsxs)(`div`,{className:`flex flex-col gap-3 pb-1`,children:[u.map(e=>(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,q.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,q.jsx)(z,{email:e.member?.email,name:e.member?.name,src:e.member?.avatar_image}),(0,q.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,q.jsx)(pe,{className:`size-2.5`,fill:`currentColor`})})]}),(0,q.jsx)(`span`,{className:`font-medium`,children:e.member?I(e.member):`Deleted member`})]}),(0,q.jsx)(`span`,{className:`shrink-0 text-sm text-muted-foreground`,children:f(e.created_at)})]},e.id)),b>0&&(0,q.jsxs)(`div`,{className:`pt-1 text-center text-sm text-muted-foreground`,children:[`and `,d(b),` more`]})]})})})]}):(0,q.jsx)(`div`,{className:`-mx-1 max-h-64 overflow-y-auto px-1`,children:o?(0,q.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,q.jsx)(L,{size:`md`})}):(0,q.jsxs)(`div`,{className:`flex flex-col gap-3 pb-1`,children:[l.map(e=>(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,q.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,q.jsx)(z,{email:e.member?.email,name:e.member?.name,src:e.member?.avatar_image}),(0,q.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,q.jsx)(re,{className:`size-2.5`,fill:`currentColor`})})]}),(0,q.jsx)(`span`,{className:`font-medium`,children:e.member?I(e.member):`Deleted member`})]}),(0,q.jsx)(`span`,{className:`shrink-0 text-sm text-muted-foreground`,children:f(e.created_at)})]},e.id)),y>0&&(0,q.jsxs)(`div`,{className:`pt-1 text-center text-sm text-muted-foreground`,children:[`and `,d(y),` more`]})]})}),(0,q.jsx)(D,{children:(0,q.jsx)(P,{onClick:()=>i(!1),children:`OK`})})]})})}function Rt({comment:e,open:t,onOpenChange:n}){let{data:r,isLoading:i}=wt(e.id,{enabled:t}),a=r?.comment_reports??[],o=e.count?.reports??a.length;return(0,q.jsx)(F,{open:t,onOpenChange:n,children:(0,q.jsxs)(B,{"aria-describedby":void 0,children:[(0,q.jsx)(E,{children:(0,q.jsxs)(N,{children:[o,` `,o===1?`report`:`reports`]})}),(0,q.jsx)(`div`,{className:`overflow-hidden rounded-md border p-3`,children:(0,q.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[(0,q.jsx)(z,{className:`shrink-0`,email:e.member?.email,name:e.member?.name,src:e.member?.avatar_image}),(0,q.jsxs)(`div`,{className:`flex min-w-0 flex-col overflow-hidden`,children:[(0,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1 text-sm`,children:[(0,q.jsx)(`span`,{className:`shrink-0 font-semibold`,children:e.member?I(e.member):`Deleted member`}),(0,q.jsx)(O,{className:`shrink-0 text-muted-foreground/50`,size:16}),(0,q.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:e.created_at&&f(e.created_at)}),(0,q.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:`on`}),(0,q.jsx)(`span`,{className:`min-w-0 truncate font-medium text-gray-800 dark:text-gray-400`,children:e.post?.title||`Unknown post`})]}),(0,q.jsx)(`div`,{dangerouslySetInnerHTML:{__html:e.html||``},className:`prose mt-2 line-clamp-2 text-sm [&_*]:text-sm [&_*]:leading-[1.5em] [&_p]:m-0`})]})]})}),(0,q.jsx)(`div`,{className:`-mx-1 max-h-64 overflow-y-auto px-1`,children:i?(0,q.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,q.jsx)(L,{size:`md`})}):(0,q.jsx)(`div`,{className:`flex flex-col gap-3 pb-1`,children:a.map(e=>(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,q.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,q.jsx)(z,{email:e.member?.email,name:e.member?.name,src:e.member?.avatar_image}),(0,q.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,q.jsx)(M,{className:`size-2.5`,fill:`currentColor`})})]}),(0,q.jsx)(`span`,{className:`font-medium`,children:e.member?I(e.member):`Deleted member`})]}),(0,q.jsx)(`span`,{className:`shrink-0 text-sm text-muted-foreground`,children:f(e.created_at)})]},e.id))})}),(0,q.jsx)(D,{children:(0,q.jsx)(P,{onClick:()=>n(!1),children:`OK`})})]})})}function Z(e,t){if(!t)return;let n=new URLSearchParams(e);return n.set(`thread`,`is:${t}`),`?${n.toString()}`}function Q({icon:e,count:t,label:n,to:r,onClick:i,className:a,testId:o}){let s=u(`flex items-center gap-1 text-xs text-gray-800`,a),c=(0,q.jsxs)(q.Fragment,{children:[e,(0,q.jsx)(`span`,{children:d(t)})]}),f=r||i;return(0,q.jsxs)(k,{children:[(0,q.jsx)(V,{asChild:!0,children:r?(0,q.jsx)(l,{className:u(s,`cursor-pointer hover:opacity-70`),"data-testid":o,to:r,onClick:e=>{e.stopPropagation()},children:c}):i?(0,q.jsx)(`button`,{className:u(s,`cursor-pointer hover:opacity-70`),"data-testid":o,type:`button`,onClick:e=>{e.stopPropagation(),i()},children:c}):(0,q.jsx)(`div`,{className:s,"data-testid":o,children:c})}),(0,q.jsx)(A,{children:f?`View ${n.toLowerCase()}`:n})]})}function zt({comment:e,dislikesEnabled:t,className:n}){let[r]=c(),[i,a]=(0,G.useState)(!1),[o,s]=(0,G.useState)(`likes`),[l,d]=(0,G.useState)(!1),f=Z(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,y=h>0,b=g>0;return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:u(`flex items-center gap-6`,n),children:[(0,q.jsx)(Q,{count:p,icon:(0,q.jsx)(ne,{size:16,strokeWidth:1.5}),label:`Replies`,testId:`replies-metric`,to:_?f:void 0}),t?(0,q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,q.jsx)(Q,{count:m,icon:(0,q.jsx)(we,{size:16,strokeWidth:1.5}),label:`Likes`,testId:`likes-metric`,onClick:v?()=>{s(`likes`),a(!0)}:void 0}),(0,q.jsx)(Q,{count:h,icon:(0,q.jsx)(pe,{size:16,strokeWidth:1.5}),label:`Dislikes`,testId:`dislikes-metric`,onClick:y?()=>{s(`dislikes`),a(!0)}:void 0})]}):(0,q.jsx)(Q,{count:m,icon:(0,q.jsx)(re,{size:16,strokeWidth:1.5}),label:`Likes`,onClick:v?()=>a(!0):void 0}),(0,q.jsx)(Q,{className:b?`font-semibold text-red`:void 0,count:g,icon:(0,q.jsx)(M,{size:16,strokeWidth:1.5}),label:`Reports`,onClick:b?()=>d(!0):void 0})]}),(0,q.jsx)(Lt,{comment:e,defaultTab:o,dislikesEnabled:t,open:i,onOpenChange:a}),(0,q.jsx)(Rt,{comment:e,open:l,onOpenChange:d})]})}function Bt({hasReplies:e}){return e?(0,q.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 Vt({comment:e,dislikesEnabled:t,isReply:n=!1,isSelectedComment:r=!1,selectedCommentId:i}){let[a]=c(),{mutate:o}=vt(),{mutate:s}=yt(),{mutate:d}=X(),f=(e.replies?.length??0)>0||(e.count?.direct_replies??e.count?.replies??0)>0;return(0,q.jsxs)(`div`,{className:`flex w-full flex-row ${!f||n?`mb-7`:`mb-0`}`,children:[(0,q.jsxs)(`div`,{className:`mr-2 flex shrink-0 flex-col items-center justify-start md:mr-3`,children:[(0,q.jsx)(z,{className:u(`mb-3 size-6 md:mb-4 md:size-8`,e.status===`hidden`&&`opacity-50`),email:e.member?.email,name:e.member?.name,src:e.member?.avatar_image}),(0,q.jsx)(Bt,{hasReplies:f&&!n})]}),(0,q.jsx)(`div`,{className:`grow`,children:(0,q.jsxs)(`div`,{className:`w-full`,"data-testid":`comment-thread-row-${e.id}`,children:[(0,q.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[(0,q.jsx)(Pt,{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:()=>d({id:e.id})}),e.in_reply_to_snippet&&r&&(0,q.jsxs)(`div`,{className:`mb-1 line-clamp-1 text-sm ${e.status===`hidden`&&`opacity-50`}`,children:[(0,q.jsx)(`span`,{className:`text-muted-foreground`,children:`Replied to:`}),`\xA0`,(0,q.jsx)(l,{className:`text-sm font-normal text-muted-foreground hover:text-foreground`,"data-testid":`replied-to-link`,to:Z(a,e.in_reply_to_id||e.parent_id)||``,onClick:e=>{e.stopPropagation()},children:e.in_reply_to_snippet})]}),(0,q.jsx)(jt,{item:e}),(0,q.jsxs)(`div`,{className:`mt-4 flex flex-row flex-wrap items-center gap-3`,children:[e.status===`published`&&(0,q.jsxs)(P,{className:`text-gray-800`,size:`sm`,variant:`outline`,onClick:()=>o({id:e.id}),children:[(0,q.jsx)(he,{}),(0,q.jsx)(`span`,{className:`max-md:hidden`,children:`Hide`})]}),e.status===`hidden`&&(0,q.jsxs)(P,{className:`text-gray-800`,size:`sm`,variant:`outline`,onClick:()=>s({id:e.id}),children:[(0,q.jsx)(se,{}),(0,q.jsx)(`span`,{className:`max-md:hidden`,children:`Show`})]}),(0,q.jsx)(zt,{comment:e,dislikesEnabled:t}),(0,q.jsx)(It,{comment:e})]})]}),f&&e.replies&&(0,q.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,q.jsx)(Vt,{comment:e,dislikesEnabled:t,isReply:!0,selectedCommentId:i},e.id))})]})})]})}var Ht=({selectedComment:e,dislikesEnabled:t,replies:n,selectedCommentId:r,fetchNextPage:i,hasNextPage:a,isFetchingNextPage:o})=>(0,q.jsxs)(`div`,{className:`flex flex-col`,"data-testid":`comment-thread-list`,children:[(0,q.jsx)(Vt,{comment:{...e,replies:n},dislikesEnabled:t,isSelectedComment:!0,selectedCommentId:r}),a&&(0,q.jsx)(`div`,{className:`flex justify-center pb-4`,children:(0,q.jsx)(P,{disabled:o,variant:`outline`,onClick:()=>i(),children:o?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(L,{size:`sm`}),`Loading...`]}):`Load more replies`})})]}),Ut=({commentId:e,dislikesEnabled:t,open:n,onOpenChange:r})=>{let{data:i,isLoading:a,isError:o,fetchNextPage:s,hasNextPage:c,isFetchingNextPage:l}=kt(e??``,{dislikesEnabled:t,enabled:n&&!!e}),{data:u,isLoading:d,isError:f}=St(e??``,{dislikesEnabled:t,enabled:n&&!!e}),p=a||d,m=f||o&&!u,h=u?.comments?.[0],g=i?.comments||[];return(0,q.jsx)(oe,{open:n,onOpenChange:r,children:(0,q.jsxs)(me,{className:`overflow-y-auto px-6 pt-0 sm:max-w-[420px]`,children:[(0,q.jsx)(T,{className:`sticky top-0 z-40 -mx-6 bg-surface-elevated/60 p-6 backdrop-blur`,children:(0,q.jsx)(ve,{className:`text-md`,children:`Thread`})}),h?.post&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,q.jsx)(`h3`,{className:`line-clamp-1 text-xl font-semibold text-foreground`,children:h.post.title}),h.post.excerpt&&(0,q.jsx)(`p`,{className:`mt-1 line-clamp-2 text-sm text-muted-foreground`,children:h.post.excerpt})]}),h.post.feature_image&&(0,q.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,q.jsx)(be,{className:`-mx-6 my-6 w-auto`})]}),(0,q.jsx)(`div`,{children:p?(0,q.jsx)(`div`,{className:`flex h-full items-center justify-center py-8`,children:(0,q.jsx)(L,{size:`lg`})}):m||!h?(0,q.jsx)(`div`,{className:`flex h-full items-center justify-center py-8`,children:(0,q.jsx)(S,{actions:(0,q.jsx)(P,{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,q.jsx)(R,{})})}):(0,q.jsx)(Ht,{dislikesEnabled:t,fetchNextPage:()=>void s(),hasNextPage:c,isFetchingNextPage:l,replies:g,selectedComment:h,selectedCommentId:e??``})})]})})},Wt=({height:e})=>(0,q.jsx)(`div`,{"aria-hidden":`true`,className:`flex`,children:(0,q.jsx)(`div`,{className:`flex`,style:{height:e}})}),Gt=(0,G.forwardRef)(function(e,t){return(0,q.jsx)(`div`,{ref:t,...e,"aria-hidden":`true`,className:`relative flex flex-col`,children:(0,q.jsx)(`div`,{className:`relative z-10 h-24 animate-pulse`,children:(0,q.jsx)(`div`,{className:`h-full rounded-md bg-muted`,"data-testid":`loading-placeholder`})})})});function Kt({items:e,totalItems:t,hasNextPage:n,isFetchingNextPage:r,fetchNextPage:i,resetKey:a,onAddFilter:o,isLoading:s,dislikesEnabled:d}){let f=(0,G.useRef)(null),{visibleItemCount:p,canLoadMore:m,loadMore:h}=ot(t,{resetKey:a}),[g,_]=c(),[v,y]=(0,G.useState)(!1),[b,x]=(0,G.useState)(null),{mutate:S}=vt(),{mutate:ee}=yt(),{mutate:C}=X(),w=e=>{if(y(e),!e){let e=new URLSearchParams(g);e.delete(`thread`),_(e,{replace:!0})}};(0,G.useEffect)(()=>{let e=g.get(`thread`);if(e){let t=e.match(/^is:(.+)$/);if(t&&t[1]){let e=t[1];x(e),y(!0)}else y(!1),x(null)}else y(!1),x(null)},[g]),at({parentRef:f,isLoading:s});let{visibleItems:T,spaceBefore:te,spaceAfter:ne}=it({items:e,totalItems:p,hasNextPage:n,isFetchingNextPage:r,fetchNextPage:i,parentRef:f});return(0,q.jsx)(ge,{children:(0,q.jsxs)(`div`,{ref:f,className:`overflow-hidden border-t`,children:[(0,q.jsx)(`div`,{className:`flex flex-col`,"data-testid":`comments-list`,children:(0,q.jsxs)(`div`,{className:`flex flex-col`,children:[(0,q.jsx)(Wt,{height:te}),T.map(({key:t,virtualItem:n,item:r,props:i})=>n.index>e.length-1?(0,q.jsx)(Gt,{...i},t):(0,q.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:()=>{v&&w(!1)},children:[(0,q.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,q.jsx)(z,{className:u(`mt-0.5 size-6 md:size-8`,r.status===`hidden`&&`opacity-50`),email:r.member?.email,name:r.member?.name,src:r.member?.avatar_image}),(0,q.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-3`,children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(Pt,{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:()=>C({id:r.id})}),r.in_reply_to_snippet&&(0,q.jsxs)(`div`,{className:`mb-1 line-clamp-1 max-w-3xl ${r.status===`hidden`&&`opacity-50`}`,children:[(0,q.jsx)(`span`,{className:`text-muted-foreground`,children:`Replied to:`}),`\xA0`,(0,q.jsx)(l,{className:`text-sm font-normal text-muted-foreground hover:text-foreground`,"data-testid":`replied-to-link`,to:Z(g,r.in_reply_to_id||r.parent_id)||``,onClick:e=>{e.stopPropagation()},children:r.in_reply_to_snippet})]})]}),(0,q.jsx)(jt,{item:r}),(0,q.jsxs)(`div`,{className:`flex flex-row flex-nowrap items-center gap-3`,children:[r.status===`published`&&(0,q.jsxs)(P,{className:`text-foreground`,size:`sm`,variant:`outline`,onClick:()=>S({id:r.id}),children:[(0,q.jsx)(he,{}),`Hide`]}),r.status===`hidden`&&(0,q.jsxs)(P,{className:`text-foreground`,size:`sm`,variant:`outline`,onClick:()=>ee({id:r.id}),children:[(0,q.jsx)(se,{}),`Show`]}),(0,q.jsx)(zt,{className:`ml-2`,comment:r,dislikesEnabled:d}),(0,q.jsx)(It,{comment:r})]})]})]}),(0,q.jsx)(`div`,{children:r.post?.feature_image?(0,q.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,q.jsx)(Wt,{height:ne})]})}),m&&(0,q.jsx)(st,{isLoading:r,onClick:h}),(0,q.jsx)(Ut,{commentId:b,dislikesEnabled:d,open:v,onOpenChange:w})]})})}var qt=Je(K,`date`);function Jt(e){return Be(K,e.field,`UTC`)?.definition.operators.includes(e.operator)??!1}function Yt(e,t){return Array.isArray(e.$and)?e.$and.flatMap(e=>Yt(e,t)):Ke([e],K,t)}function Xt(e,t){let n=Re(e??``);return n?Ye(Yt(n,t).filter(Jt)):[]}function Zt(e){let t=Re(e??``);return t?Ue(t,qt):!1}function $(e,t){return qe(e.filter(Jt),K,t)}var Qt=[`status`,`created_at`,`body`,`post`,`author`,`reported`],$t={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 en(e){let t=e.indexOf(`:`);if(t<=0)return null;let n=e.substring(0,t),r=e.substring(t+1);return r?{operator:$t[n]??n,value:r}:null}function tn(e){let t=[];for(let[n,r]of e.entries()){if(!Qt.includes(n))continue;let e=en(r);e&&t.push({id:`${n}:${t.length+1}`,field:n,operator:e.operator,values:[e.value]})}return t}function nn(e){Qt.forEach(t=>e.delete(t))}function rn(e,t,n){let r=new URLSearchParams(e),i=$(t,n);return r.delete(`filter`),nn(r),i&&r.set(`filter`,i),r}function an(e,t,n=!t){return!!e&&n&&!t&&Zt(e)}function on(e){let[t,n]=c(),r=(0,G.useRef)(null),i=(0,G.useMemo)(()=>t.get(`filter`)??void 0,[t]),a=(0,G.useMemo)(()=>t.toString(),[t]),o=(0,G.useMemo)(()=>i===void 0?tn(t):Xt(i,e),[i,t,e]),[s,l]=(0,G.useState)(o),u=(0,G.useMemo)(()=>$(s,e),[s,e]);return(0,G.useEffect)(()=>{a!==r.current&&(l(o),r.current=a)},[a,o]),(0,G.useEffect)(()=>{if(r.current!==null&&a!==r.current)return;let i=rn(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,G.useCallback)((i,a={})=>{let o=typeof i==`function`?i(s):i,c=rn(t,o,e),u=a.replace??!0;l(o),r.current=c.toString(),n(c,{replace:u})},[s,t,n,e]),clearFilters:(0,G.useCallback)(({replace:e=!0}={})=>{let i=new URLSearchParams(t);i.delete(`filter`),nn(i),l([]),r.current=i.toString(),n(i,{replace:e})},[t,n])}}function sn(e){return e.get(`id`)?.match(/^is:(.+)$/)?.[1]}var cn=({timezone:e,singleCommentId:t})=>{let[n,i]=c(),{filters:a,nql:o,setFilters:l}=on(e),u=(0,G.useCallback)((r,o,s=`is`)=>{let c=[...a.filter(e=>e.field!==r),y(r,s,[o])];if(!t){l(c,{replace:!1});return}let u=new URLSearchParams(n),d=$(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,G.useMemo)(()=>t?`id:${s(t)}`:o,[o,t]),f=(0,G.useCallback)(()=>{i(new URLSearchParams,{replace:!1})},[i]),{data:h,isError:g,isFetching:_,isFetchingNextPage:v,isRefetching:b,fetchNextPage:x,hasNextPage:ee}=_t({searchParams:{include:Y(!0),...d?{filter:d}:{}},placeholderData:r}),C=_&&!v&&!b,w=d??``,T=a.length>0;return(0,q.jsx)(p,{className:`size-full`,children:(0,q.jsx)(m,{className:`relative flex h-full flex-col`,size:`page`,children:(0,q.jsxs)(W,{"data-testid":`comments-page`,children:[(0,q.jsxs)(W.Header,{children:[(0,q.jsxs)(H,{blurredBackground:!1,sticky:!1,children:[(0,q.jsx)(H.Left,{children:(0,q.jsx)(H.Title,{children:`Comments`})}),!t&&!T&&(0,q.jsx)(H.Actions,{children:(0,q.jsx)(H.ActionGroup,{children:(0,q.jsx)(pt,{filters:a,siteTimezone:e,onFiltersChange:l})})})]}),!t&&T&&(0,q.jsx)(Ie,{children:(0,q.jsx)(pt,{filters:a,siteTimezone:e,onFiltersChange:l})})]}),(0,q.jsx)(W.Body,{children:C?(0,q.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,q.jsx)(L,{size:`lg`})}):g?(0,q.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center`,children:[(0,q.jsx)(`h2`,{className:`mb-2 text-xl font-medium`,children:`Error loading comments`}),(0,q.jsx)(`p`,{className:`mb-4 text-muted-foreground`,children:`Please reload the page to try again`}),(0,q.jsx)(P,{onClick:()=>window.location.reload(),children:`Reload page`})]}):h?.comments.length?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Kt,{dislikesEnabled:!0,fetchNextPage:()=>void x(),hasNextPage:ee,isFetchingNextPage:v,isLoading:_&&!v,items:h?.comments??[],resetKey:w,totalItems:h?.meta?.pagination?.total??0,onAddFilter:u}),t&&(0,q.jsx)(`div`,{className:`flex justify-center py-8`,children:(0,q.jsx)(P,{variant:`outline`,onClick:f,children:`Show all comments`})})]}):(0,q.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:t?(0,q.jsxs)(`div`,{className:`flex flex-col items-center`,children:[(0,q.jsx)(S,{title:`Comment not found`,children:(0,q.jsx)(R,{})}),(0,q.jsx)(P,{className:`mt-4`,variant:`outline`,onClick:f,children:`Show all comments`})]}):(0,q.jsx)(S,{title:`No comments yet`,children:(0,q.jsx)(R,{})})})})]})})})},ln=()=>{let[e]=c(),{data:t,isLoading:n}=Ae({}),r=(0,G.useMemo)(()=>sn(e),[e]),i=e.get(`filter`)??void 0;if(!r&&an(i,!!t,n))return(0,q.jsx)(p,{className:`size-full`,children:(0,q.jsx)(m,{className:`relative flex h-full flex-col`,size:`page`,children:(0,q.jsxs)(W,{children:[(0,q.jsx)(W.Header,{children:(0,q.jsx)(H,{blurredBackground:!1,sticky:!1,children:(0,q.jsx)(H.Left,{children:(0,q.jsx)(H.Title,{children:`Comments`})})})}),(0,q.jsx)(W.Body,{children:(0,q.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,q.jsx)(L,{size:`lg`})})})]})})});let a=ct(t?.settings??[]);return(0,q.jsx)(cn,{singleCommentId:r,timezone:a})};export{ln as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{c as r}from"./dist-Cb5RSHSg.js";import{l as i}from"./use-settings-navigation-BOZcat_V.js";import{Pr as a,ar as o,fr as s,gr as c,hr as l,lr as u,mr as d,pr as f}from"./index-BOJzlYiz.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,testId:T=`confirmation-modal`})=>{let[E,D]=(0,p.useState)(``),O=E===`running`,k=v||_,A=()=>{O||(b?b():t())},j=S===void 0?(0,m.jsxs)(d,{children:[g&&(0,m.jsx)(a,{"data-testid":`cancel-modal`,disabled:O,type:`button`,variant:`outline`,onClick:A,children:g}),_&&(0,m.jsxs)(a,{"aria-busy":O,"data-testid":`ok-modal`,disabled:O,type:`button`,variant:y,onClick:async()=>{D(`running`);try{await x?.({remove:t})}catch(e){console.error(`Unhandled Promise Rejection. Make sure you catch errors in your onOk handler.`,e)}D(``)},children:[O&&(0,m.jsx)(o,{color:`current`,size:`sm`}),O?k:_]})]}):S;return(0,m.jsx)(u,{open:e,onOpenChange:e=>!e&&A(),children:(0,m.jsxs)(s,{className:r(`z-[1100] max-h-[calc(100dvh-4rem)] w-[calc(100%-2rem)] overflow-y-auto bg-background`),"data-testid":T,overlayClassName:r(`z-[1100] bg-foreground/20! backdrop-blur-[3px]`,C&&`bg-foreground/10!`),onEscapeKeyDown:e=>e.stopPropagation(),children:[(0,m.jsxs)(l,{children:[(0,m.jsx)(c,{children:n}),(0,m.jsx)(f,{asChild:!0,children:(0,m.jsx)(`div`,{className:`text-left text-foreground`,children:h})})]}),j&&(w?(0,m.jsx)(i,{className:`-mx-6 -mb-6 w-[calc(100%+3rem)]`,contentClassName:`px-6`,height:84,children:j}):j)]})})},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}var y=({children:e})=>{let[t,n]=(0,p.useState)([]),r=(0,p.useRef)(0),i=(0,p.useCallback)(e=>{r.current+=1;let t=r.current;return n(n=>[...n.filter(t=>t.kind!==e.kind),{...e,id:t}]),{remove:()=>n(e=>e.filter(e=>e.id!==t))}},[]),a=(0,p.useCallback)(e=>i({kind:`confirm`,props:e}),[i]),o=(0,p.useCallback)(e=>i({kind:`limit`,props:e}),[i]),s=p.useMemo(()=>({confirm:a,showLimit:o}),[a,o]);return(0,m.jsxs)(_.Provider,{value:s,children:[e,t.map(e=>{let t=()=>n(t=>t.filter(t=>t.id!==e.id));return e.kind===`confirm`?(0,m.jsx)(h,{...e.props,onRemove:t},e.id):(0,m.jsx)(g,{...e.props,onRemove:t},e.id)})]})};export{v as n,h as r,y as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-DX3WBWVO.js";import{Wi as t,eo as n,ta as r}from"./index-BOJzlYiz.js";import{p as i}from"./member-custom-fields-CvGcpaiW.js";var a=e(),o={short_text:t,long_text:r,address:n},s=({type:e,className:n})=>(0,a.jsx)(o[e]||t,{className:n});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};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{m as r,n as i,p as a}from"./hooks-CJepWnbB.js";import{n as o}from"./dist-Ndy-PuGN.js";import{t as s}from"./use-form-vRjI0Kwk.js";import{m as c}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{f as l}from"./dist-Cb5RSHSg.js";import{t as u}from"./box-By_EgGtm.js";import{t as d}from"./inline-Cw-gigDW.js";import{t as f}from"./stack-CIfOAAVf.js";import{a as p,i as m,n as h,o as g,r as _,s as v,t as y}from"./select-xuZAuDyS.js";import{o as b,t as x}from"./use-settings-navigation-BOZcat_V.js";import{t as S}from"./empty-indicator-WB1WgT9h.js";import{a as C,i as w,o as T,t as E}from"./field-BQqLTgHM.js";import{a as D,c as O,n as k,r as A,s as j,t as ee}from"./table-DghJxZMH.js";import{Pr as M,Xn as N,Yi as P,cr as F,ka as I,ki as te}from"./index-BOJzlYiz.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-3cQgwfTD.js";import{t as H}from"./validator-Cr0sMKuW.js";import{n as U}from"./confirmation-provider-BEdrnHns.js";import{a as W,n as G,t as K}from"./integrations-B9yYgci5.js";import{t as q}from"./api-keys-Df6uv1dT.js";import{t as J}from"./api-keys-BgKr003d.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 i=Y.useId(),{mutateAsync:a}=se(),{mutateAsync:o}=ce(),c=r(),{formState:l,updateForm:u,handleSave:d,errors:f,clearError:x}=s({initialState:e||{},onSave:async()=>{l.id?await o(l):await a({...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)(b,{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)(C,{className:`gap-8`,children:[(0,Z.jsxs)(E,{"data-invalid":!!f.name||void 0,children:[(0,Z.jsx)(T,{htmlFor:`webhook-name`,children:`Name`}),(0,Z.jsx)(F,{"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:()=>x(`name`)}),f.name&&(0,Z.jsx)(w,{children:f.name})]}),(0,Z.jsxs)(E,{"data-invalid":!!f.event||void 0,children:[(0,Z.jsx)(T,{className:`sr-only`,children:`Event`}),(0,Z.jsxs)(y,{value:l.event??``,onValueChange:e=>{u(t=>({...t,event:e})),x(`event`)},children:[(0,Z.jsx)(g,{"aria-describedby":f.event?i:void 0,"aria-invalid":!!f.event||void 0,"aria-label":`Event`,"data-testid":`event-select`,children:(0,Z.jsx)(v,{placeholder:`Select an event`})}),(0,Z.jsx)(h,{children:X.map(e=>(0,Z.jsxs)(_,{children:[(0,Z.jsx)(p,{children:e.label}),e.options.map(e=>(0,Z.jsx)(m,{value:e.value,children:e.label},e.value))]},e.label))})]}),f.event&&(0,Z.jsx)(w,{id:i,children:f.event})]}),(0,Z.jsxs)(E,{"data-invalid":!!f.target_url||void 0,children:[(0,Z.jsx)(T,{htmlFor:`webhook-target-url`,children:`Target URL`}),(0,Z.jsx)(F,{"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:()=>x(`target_url`)}),f.target_url&&(0,Z.jsx)(w,{children:f.target_url})]}),(0,Z.jsxs)(E,{children:[(0,Z.jsx)(T,{htmlFor:`webhook-secret`,children:`Secret`}),(0,Z.jsx)(F,{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=r(),{confirm:i}=U(),a=e.webhooks||[],[s,c]=(0,Y.useState)(null),[u,p]=(0,Y.useState)(!1),m=()=>{p(!0)},h=()=>{p(!1),c(null)},g=u?(0,Z.jsx)(Q,{integrationId:e.id,onClose:h}):s&&(0,Z.jsx)(Q,{integrationId:e.id,webhook:s,onClose:h},s.id),_=e=>{i({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 a.length===0?(0,Z.jsxs)(f,{gap:`none`,children:[(0,Z.jsx)(N,{}),(0,Z.jsx)(S,{actions:(0,Z.jsxs)(M,{type:`button`,variant:`outline`,onClick:m,children:[(0,Z.jsx)(I,{}),` Add webhook`]}),className:`py-8`,description:`Add a webhook to send Ghost events to another service.`,title:`No webhooks`,children:(0,Z.jsx)(te,{})}),(0,Z.jsx)(N,{}),g]}):(0,Z.jsxs)(f,{gap:`none`,children:[(0,Z.jsxs)(ee,{children:[(0,Z.jsx)(j,{children:(0,Z.jsxs)(O,{children:[(0,Z.jsxs)(D,{children:[l(e.webhooks?.length||0),` `,e.webhooks?.length===1?`webhook`:`webhooks`]}),(0,Z.jsx)(D,{children:`Last triggered`}),(0,Z.jsx)(D,{children:(0,Z.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,Z.jsx)(k,{children:a.map(e=>(0,Z.jsxs)(O,{className:`cursor-pointer`,onClick:()=>c(e),children:[(0,Z.jsxs)(A,{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)(A,{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)(A,{className:`w-0 text-right`,children:(0,Z.jsx)(M,{className:`text-destructive hover:text-destructive`,size:`sm`,type:`button`,variant:`ghost`,onClick:t=>{t.stopPropagation(),_(e.id)},children:`Delete`})})]},e.id))})]}),(0,Z.jsx)(d,{className:`py-4`,justify:`center`,children:(0,Z.jsxs)(M,{size:`sm`,type:`button`,variant:`outline`,onClick:m,children:[(0,Z.jsx)(I,{}),` Add webhook`]})}),(0,Z.jsx)(N,{}),g]})},ue=({integration:e})=>{let{updateRoute:t}=x(),{mutateAsync:n}=W(),{mutateAsync:i}=J(),{mutateAsync:o}=L(),c=r(),{confirm:l}=U(),{formState:d,updateForm:p,handleSave:m,saveState:h,errors:g,clearError:_,okProps:v}=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}}),y=e.api_keys?.find(e=>e.type===`admin`),S=e.api_keys?.find(e=>e.type===`content`),[C,D]=(0,Y.useState)(!1),[O,k]=(0,Y.useState)(!1);(0,Y.useEffect)(()=>{e.type!==`custom`&&t(`integrations`)},[e.type,t]);let A=(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)(b,{buttonsDisabled:v.disabled,cancelLabel:`Close`,dirty:h===`unsaved`,okLabel:v.label||`Save`,okVariant:v.variant,size:`md`,testId:`custom-integration-modal`,title:d.name||`Custom integration`,stickyFooter:!0,onClose:()=>{t(`integrations`)},onOk:async()=>{await m({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:()=>p(e=>({...e,icon_image:null})),children:(0,Z.jsx)(P,{})})})]}):(0,Z.jsx)(R,{className:`text-center`,inputId:`custom-integration-icon`,onDropAccepted:async([e])=>{try{let t=V(await o({file:e}));p(e=>({...e,icon_image:t}))}catch(e){let t=e;t.response.status===415&&(t.message=`Unsupported file type`),c(t)}},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)(E,{"data-invalid":!!g.name||void 0,children:[(0,Z.jsx)(T,{htmlFor:`integration-title`,children:`Title`}),(0,Z.jsx)(F,{"aria-invalid":!!g.name||void 0,id:`integration-title`,maxLength:191,value:d.name,onChange:e=>p(t=>({...t,name:e.target.value})),onKeyDown:()=>_(`name`)}),g.name&&(0,Z.jsx)(w,{children:g.name})]}),(0,Z.jsxs)(E,{children:[(0,Z.jsx)(T,{htmlFor:`integration-description`,children:`Description`}),(0,Z.jsx)(F,{id:`integration-description`,maxLength:2e3,value:d.description||``,onChange:e=>p(t=>({...t,description:e.target.value}))})]})]}),(0,Z.jsx)(q,{keys:[{id:`content-api-key`,label:`Content API key`,text:S?.secret,hint:O?(0,Z.jsx)(`div`,{className:`text-green`,children:`Content API Key was successfully regenerated`}):void 0,onRegenerate:()=>S&&A(S,k)},{id:`admin-api-key`,label:`Admin API key`,text:y?.secret,hint:C?(0,Z.jsx)(`div`,{className:`text-green`,children:`Admin API Key was successfully regenerated`}):void 0,onRegenerate:()=>y&&A(y,D)},{id:`api-url`,label:`API URL`,text:window.location.origin+a().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};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{a as r,i,n as a,o,r as s,s as c,t as l}from"./select-xuZAuDyS.js";import{d as u,ps as d,u as f}from"./index-BOJzlYiz.js";var p=e(t(),1),m=n(),h=({range:e,onRangeChange:t,excludeRanges:n=[]})=>{let h=n.map(e=>f[e].value),g=u.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)(l,{value:`${e}`,onValueChange:e=>{t(Number(e))},children:[(0,m.jsxs)(o,{className:`w-auto`,children:[(0,m.jsx)(d,{className:`mr-2`,size:16,strokeWidth:1.5}),(0,m.jsx)(c,{placeholder:`Select a period`})]}),(0,m.jsx)(a,{align:`end`,children:(0,m.jsxs)(s,{children:[(0,m.jsx)(r,{children:`Period`}),g.map(e=>(0,m.jsx)(i,{value:`${e.value}`,children:e.name},e.value))]})})]})};export{h as t};
|