ghost 6.57.1 → 6.58.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.
Files changed (747) hide show
  1. package/LICENSE +22 -0
  2. package/bin/validate-adapters.js +1 -5
  3. package/components/ghost-storage-base-3.0.0.tgz +0 -0
  4. package/components/tryghost-adapter-base-cache-0.2.0.tgz +0 -0
  5. package/components/tryghost-adapter-base-jobs-0.0.0.tgz +0 -0
  6. package/components/tryghost-adapter-base-redirects-0.0.0.tgz +0 -0
  7. package/components/tryghost-adapter-base-route-settings-0.0.0.tgz +0 -0
  8. package/components/tryghost-adapter-base-scheduling-0.2.2.tgz +0 -0
  9. package/components/tryghost-adapter-base-sso-0.1.2.tgz +0 -0
  10. package/components/tryghost-admin-api-schema-0.0.0.tgz +0 -0
  11. package/components/tryghost-custom-field-types-0.0.0.tgz +0 -0
  12. package/components/tryghost-i18n-0.0.0.tgz +0 -0
  13. package/components/tryghost-kg-card-factory-5.2.4.tgz +0 -0
  14. package/components/tryghost-kg-clean-basic-html-4.3.4.tgz +0 -0
  15. package/components/tryghost-kg-converters-1.2.5.tgz +0 -0
  16. package/components/tryghost-kg-default-cards-10.3.5.tgz +0 -0
  17. package/components/tryghost-kg-default-nodes-2.2.0.tgz +0 -0
  18. package/components/tryghost-kg-default-transforms-1.3.4.tgz +0 -0
  19. package/components/tryghost-kg-html-to-lexical-1.4.0.tgz +0 -0
  20. package/components/tryghost-kg-lexical-html-renderer-1.5.0.tgz +0 -0
  21. package/components/tryghost-kg-markdown-html-renderer-7.2.4.tgz +0 -0
  22. package/components/tryghost-kg-utils-1.1.4.tgz +0 -0
  23. package/components/tryghost-nql-string-0.0.0.tgz +0 -0
  24. package/components/tryghost-parse-email-address-0.0.0.tgz +0 -0
  25. package/core/boot.js +35 -3
  26. package/core/built/admin/assets/{about-BNojRaxf.js → about-B_BvSyLF.js} +1 -1
  27. package/core/built/admin/assets/{account-migration-DMS8JsM-.js → account-migration-oJUGxnzT.js} +1 -1
  28. package/core/built/admin/assets/activitypub/{account-migration-DHFbePl6.js → account-migration-BpDeIF3G.js} +8 -8
  29. package/core/built/admin/assets/activitypub/activitypub.js +4 -4
  30. package/core/built/admin/assets/activitypub/{avatar-CT4tS2_S.js → avatar-B0SpBPVL.js} +3 -3
  31. package/core/built/admin/assets/activitypub/{avatar-flipboard-ByYWKipo.js → avatar-flipboard-DKt1LGcE.js} +3 -3
  32. package/core/built/admin/assets/activitypub/{bluesky-sharing-srVnSHDz.js → bluesky-sharing-aPMtrS3L.js} +10 -10
  33. package/core/built/admin/assets/activitypub/{chunk-KS7C4IRE-D4HEcEwi.js → chunk-KS7C4IRE-CnTrsgmM.js} +26 -15
  34. package/core/built/admin/assets/activitypub/{content-formatters-C2sos5Ht.js → content-formatters-BORfuA9G.js} +318 -284
  35. package/core/built/admin/assets/activitypub/{copy-B1UBTOoZ.js → copy-D-YvNi2E.js} +2 -2
  36. package/core/built/admin/assets/activitypub/{dist-MPsb2WZ1.js → dist-Dqggkccr.js} +5 -5
  37. package/core/built/admin/assets/activitypub/{domain-DzcM9Dzo.js → domain-CPdiB27_.js} +10 -10
  38. package/core/built/admin/assets/activitypub/{edit-profile-CsQ_4xAk.js → edit-profile-BY2PawIe.js} +7 -7
  39. package/core/built/admin/assets/activitypub/{explore-CJe0DZBK.js → explore-Sp9bgAwq.js} +11 -11
  40. package/core/built/admin/assets/activitypub/{feed-CKV3qWON.js → feed-BjtF4ohL.js} +10 -10
  41. package/core/built/admin/assets/activitypub/{field-DckHfDJf.js → field-BDOYVTg6.js} +4 -4
  42. package/core/built/admin/assets/activitypub/{hash-Dlp8RM55.js → hash-DqXYHgzG.js} +2 -2
  43. package/core/built/admin/assets/activitypub/{inbox-CsPy4R0M.js → inbox-CZ7IOAMn.js} +2 -2
  44. package/core/built/admin/assets/activitypub/{inbox-DAsjzUUe.js → inbox-z1o2j1Tb.js} +11 -11
  45. package/core/built/admin/assets/activitypub/{label-DWyo9E5T.js → label-1jhN-qhD.js} +4 -4
  46. package/core/built/admin/assets/activitypub/layout-BRMezuty.js +1 -0
  47. package/core/built/admin/assets/activitypub/{moderation-B0Inc03M.js → moderation-CZudJi8N.js} +9 -9
  48. package/core/built/admin/assets/activitypub/{note-CSE54lER.js → note-nr_m_5yb.js} +8 -8
  49. package/core/built/admin/assets/activitypub/{notifications-RSwbKqdh.js → notifications-BdcyivbT.js} +10 -10
  50. package/core/built/admin/assets/activitypub/{onboarding-BFDkzeR2.js → onboarding-B4kwav9u.js} +2 -2
  51. package/core/built/admin/assets/activitypub/{onboarding-D6rcBdPe.js → onboarding-DZNElJYP.js} +3 -3
  52. package/core/built/admin/assets/activitypub/{preferences-CE231n2_.js → preferences-CNqy1x9C.js} +13 -13
  53. package/core/built/admin/assets/activitypub/{profile-aaQ1j1Eo.js → profile-DlY4rhbO.js} +15 -15
  54. package/core/built/admin/assets/activitypub/{reply-Cjb0Vs3m.js → reply-DASIN0Ec.js} +2 -2
  55. package/core/built/admin/assets/activitypub/{routes-Djb0mc9k.js → routes-CEHdEZzS.js} +31 -31
  56. package/core/built/admin/assets/activitypub/{separator-D8pROI5n.js → separator-B3k35sUV.js} +4 -4
  57. package/core/built/admin/assets/activitypub/{settings-DMc32IQl.js → settings-CrSV1cux.js} +6 -6
  58. package/core/built/admin/assets/activitypub/{site-DVIcsohX.js → site-CtBUCPBz.js} +6 -6
  59. package/core/built/admin/assets/activitypub/{step-1-9Yey9usF.js → step-1-D9jGWyAy.js} +7 -7
  60. package/core/built/admin/assets/activitypub/{step-2-DdYmKRXV.js → step-2-Jz_enuo9.js} +7 -7
  61. package/core/built/admin/assets/activitypub/{step-3-hdSkcjZU.js → step-3-KpUqpGWi.js} +12 -12
  62. package/core/built/admin/assets/activitypub/{tabs-CUqseYzQ.js → tabs-DvlsxTCI.js} +7 -7
  63. package/core/built/admin/assets/activitypub/{topic-filter-Coni6OXM.js → topic-filter-CIN1E2jg.js} +4 -4
  64. package/core/built/admin/assets/activitypub/{use-activity-pub-queries-MeHTPMQv.js → use-activity-pub-queries-CATFd6YV.js} +4 -4
  65. package/core/built/admin/assets/activitypub/{use-navigate-with-base-path-B046AM38.js → use-navigate-with-base-path-iCkcbMGk.js} +2 -2
  66. package/core/built/admin/assets/activitypub/{use-reply-chain-data-1AO-Xob6.js → use-reply-chain-data-DJ0vhA8V.js} +6 -6
  67. package/core/built/admin/assets/activitypub/{users-BLeiOTHc.js → users-sgJ6GNZX.js} +12 -11
  68. package/core/built/admin/assets/activitypub/{x-BRfRYd16.js → x-Cy2jUiYM.js} +2 -2
  69. package/core/built/admin/assets/add-integration-modal-BW23PDYs.js +1 -0
  70. package/core/built/admin/assets/add-newsletter-modal-M0ls8BKO.js +1 -0
  71. package/core/built/admin/assets/{add-recommendation-modal-D-3LOrdd.js → add-recommendation-modal-B0NeBMzl.js} +1 -1
  72. package/core/built/admin/assets/{analytics-DTIMRhWw.js → analytics-BC2oR8ay.js} +1 -1
  73. package/core/built/admin/assets/announcement-bar-modal-pXBqjQE_.js +1 -0
  74. package/core/built/admin/assets/{api-keys-_iCT4dxr.js → api-keys-BgKr003d.js} +1 -1
  75. package/core/built/admin/assets/{api-keys-Dx4NeNpK.js → api-keys-Df6uv1dT.js} +1 -1
  76. package/core/built/admin/assets/{audience-DkknNqhZ.js → audience-BY8od8If.js} +1 -1
  77. package/core/built/admin/assets/{automated-emails-PayPCT8L.js → automated-emails-28c2Lbb3.js} +1 -1
  78. package/core/built/admin/assets/{automations-DvSU7QhW.js → automations-DCs6Wady.js} +1 -1
  79. package/core/built/admin/assets/{automations-162q5HjL.js → automations-Dzp_QnON.js} +1 -1
  80. package/core/built/admin/assets/{bluesky-sharing-yZ9A_jL8.js → bluesky-sharing-D0P42Cws.js} +1 -1
  81. package/core/built/admin/assets/{breadcrumb-CjOH7LCU.js → breadcrumb-MTj_cKLb.js} +1 -1
  82. package/core/built/admin/assets/card-CiiE7QfM.js +1 -0
  83. package/core/built/admin/assets/{chart-helpers-DGxvWnBT.js → chart-helpers-DcO3k_vA.js} +1 -1
  84. package/core/built/admin/assets/{checkbox-BSUcnNq_.js → checkbox-LmClhqcS.js} +1 -1
  85. package/core/built/admin/assets/{chunk.424.4a27628efdade15c2dab.js → chunk.408.1a258af360eb8d905508.js} +40 -37
  86. package/core/built/admin/assets/{chunk.571.40f093ed6d883993714e.js → chunk.492.a9da46ca956b10116774.js} +1342 -1342
  87. package/core/built/admin/assets/{chunk.571.40f093ed6d883993714e.js.LICENSE.txt → chunk.492.a9da46ca956b10116774.js.LICENSE.txt} +1 -1
  88. package/core/built/admin/assets/chunk.524.4c693c3a00ac91df34fa.js +25 -0
  89. package/core/built/admin/assets/chunk.582.20b600e329e58d12d7c2.js +27 -0
  90. package/core/built/admin/assets/code-editor-view-DqTOUnbM.js +1 -0
  91. package/core/built/admin/assets/code-editor-view-bA0lfxUL.js +1 -0
  92. package/core/built/admin/assets/{debounce-Cx5B_9OI.js → color-picker-CBlJMv3y.js} +2 -2
  93. package/core/built/admin/assets/color-picker-field-Cv9GOJQZ.js +1 -0
  94. package/core/built/admin/assets/{combobox-5rdgDrDV.js → combobox-BbPJzjCp.js} +1 -1
  95. package/core/built/admin/assets/command-BrhXIlDr.js +1 -0
  96. package/core/built/admin/assets/comments-Cu4rD1aJ.js +1 -0
  97. package/core/built/admin/assets/confirmation-provider-BEdrnHns.js +1 -0
  98. package/core/built/admin/assets/{content-api-modal-BtW4Z1-1.js → content-api-modal-BOFWRUkC.js} +1 -1
  99. package/core/built/admin/assets/{copy-field-CEp_XieW.js → copy-field-8biQvNMD.js} +1 -1
  100. package/core/built/admin/assets/custom-field-type-option-CNhAgHbJ.js +1 -0
  101. package/core/built/admin/assets/custom-integration-modal-CrGOI8IB.js +1 -0
  102. package/core/built/admin/assets/{date-range-select-B3Ij1Rqg.js → date-range-select-Bsh4gIek.js} +1 -1
  103. package/core/built/admin/assets/debounce-pscB46sW.js +1 -0
  104. package/core/built/admin/assets/design-and-theme-modal-DWZguwWX.js +23 -0
  105. package/core/built/admin/assets/{dirty-confirm-dialog-YE9L21gY.js → dirty-confirm-dialog-DmdMpgyN.js} +1 -1
  106. package/core/built/admin/assets/{disabled-sources-indicator-uIzbWL7K.js → disabled-sources-indicator-BLnmyWgt.js} +1 -1
  107. package/core/built/admin/assets/dist-4m6pHdc0.js +23 -0
  108. package/core/built/admin/assets/{dist-DCk0UkGx.js → dist-B6bJuxL3.js} +1 -1
  109. package/core/built/admin/assets/{dist-CbHbGtQ-.js → dist-BtaTA7Ii.js} +1 -1
  110. package/core/built/admin/assets/{dist-Q1p9iXwH.js → dist-CZgIBXQN.js} +1 -1
  111. package/core/built/admin/assets/dist-CiHx7vA5.js +6 -0
  112. package/core/built/admin/assets/{dist-ARN6XTcR.js → dist-ECAUrdGc.js} +1 -1
  113. package/core/built/admin/assets/dist-Z97pCNqS.js +11 -0
  114. package/core/built/admin/assets/{dist-t6AXpf_4.js → dist-zwwGt8Yf.js} +1 -1
  115. package/core/built/admin/assets/{domain-DzrOAPY8.js → domain-Dp9TRrFp.js} +1 -1
  116. package/core/built/admin/assets/{dropzone-CzhP33wa.js → dropzone-B21Entqz.js} +1 -1
  117. package/core/built/admin/assets/{edit-profile-oufs4R4n.js → edit-profile-DG6lpMsr.js} +1 -1
  118. package/core/built/admin/assets/editor-CPQOrhrn.js +8 -0
  119. package/core/built/admin/assets/{editor-DtxX27Jz.css → editor-DLioOiRN.css} +1 -1
  120. package/core/built/admin/assets/{embed-signup-form-modal-Ch3s6lqA.js → embed-signup-form-modal-CgWniDha.js} +2 -2
  121. package/core/built/admin/assets/esm-CXo5SEPy.js +2 -0
  122. package/core/built/admin/assets/{explore-CA-R01Br.js → explore-C3rzONJv.js} +1 -1
  123. package/core/built/admin/assets/{feed-ClC8_Gld.js → feed-DpUwS1cU.js} +1 -1
  124. package/core/built/admin/assets/{field-B3OPenbP.js → field-BQqLTgHM.js} +1 -1
  125. package/core/built/admin/assets/{filter-sources-CiPLnG9A.js → filter-sources-FgqoUIL7.js} +1 -1
  126. package/core/built/admin/assets/{filters-yFvybRMe.js → filters-D0uIMD8n.js} +1 -1
  127. package/core/built/admin/assets/filters-DZJT29GW.js +1 -0
  128. package/core/built/admin/assets/{first-promoter-modal-BC0UpYCD.js → first-promoter-modal-DJhQQheG.js} +1 -1
  129. package/core/built/admin/assets/framework-provider-CFLwK5uS.js +4 -0
  130. package/core/built/admin/assets/{ghost-d38c30b866e59f2e06a357b5eb844fe5.css → ghost-68f447a1796b93a1f128b649bac8506d.css} +1 -1
  131. package/core/built/admin/assets/{ghost-d683fbeb945b13155ea669caa5d8db41.js → ghost-ba408063a5922b458b4a8f216cf23251.js} +124 -342
  132. package/core/built/admin/assets/{ghost-dark-1bffd5099ba7a749303133efacf8480b.css → ghost-dark-28ae4899c92022857f3584694bcb50ef.css} +1 -1
  133. package/core/built/admin/assets/{gift-link-modal-BKRuqo-k.js → gift-link-modal-sdFLjND9.js} +1 -1
  134. package/core/built/admin/assets/{gift-links-CVuqLhsZ.js → gift-links-D7BJ9qfe.js} +1 -1
  135. package/core/built/admin/assets/{global-data-provider-RzW6Bnlf.js → global-data-provider-CixmTX00.js} +1 -1
  136. package/core/built/admin/assets/{growth-ClNAldfL.js → growth-0YYkBEeS.js} +1 -1
  137. package/core/built/admin/assets/{growth-Dz8OSG06.js → growth-DpjAPeQT.js} +2 -2
  138. package/core/built/admin/assets/{history-modal-DIVuQ5Ct.js → history-modal-BWJ4-cJ0.js} +1 -1
  139. package/core/built/admin/assets/{hooks-D6EE7BIt.js → hooks-CJepWnbB.js} +1 -1
  140. package/core/built/admin/assets/{html-field-CVZ2sMxw.js → html-field-C-oa5DEl.js} +1 -1
  141. package/core/built/admin/assets/{iframe-buffering-e8vH4-Qn.js → iframe-buffering-Ba9sDpi2.js} +1 -1
  142. package/core/built/admin/assets/{images-Ok8FFJ3A.js → images-3cQgwfTD.js} +1 -1
  143. package/core/built/admin/assets/{inbox-CMUVI6qb.js → inbox-Dz_JblyJ.js} +6 -6
  144. package/core/built/admin/assets/index-BOJzlYiz.js +67 -0
  145. package/core/built/admin/assets/index-Bid6LAyc.css +1 -0
  146. package/core/built/admin/assets/{input-group-2XU-iuh_.js → input-group-DpogNUIt.js} +1 -1
  147. package/core/built/admin/assets/{integrations-BT6_iJvu.js → integrations-B9yYgci5.js} +1 -1
  148. package/core/built/admin/assets/{invite-user-modal-DrZ7xxrZ.js → invite-user-modal-DCiQSiuD.js} +1 -1
  149. package/core/built/admin/assets/{koenig-editor-base-BPj4S760.js → koenig-editor-base-BApy8Q7C.js} +1 -1
  150. package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +8328 -8294
  151. package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +84 -84
  152. package/core/built/admin/assets/{koenig-lexical-Cdjv-m3_.js → koenig-lexical-2KuqRwZI.js} +33 -33
  153. package/core/built/admin/assets/{kpi-card-J8Mj1sDX.js → kpi-card-Ck3tT2Wg.js} +1 -1
  154. package/core/built/admin/assets/{kpi-card-awos0BMH.js → kpi-card-DDIxptaS.js} +1 -1
  155. package/core/built/admin/assets/{kpi-helpers-SEhvH-8E.js → kpi-helpers-ssbuy-hD.js} +1 -1
  156. package/core/built/admin/assets/{kpi-tabs-R6BjsKhd.js → kpi-tabs-BqoIM6bI.js} +1 -1
  157. package/core/built/admin/assets/{label-BMC3dzLI.js → label-DodDsMzn.js} +1 -1
  158. package/core/built/admin/assets/label-picker-Cvvbmzb5.js +1 -0
  159. package/core/built/admin/assets/{labels-DAPjKPy2.js → labels-DqvSR6JF.js} +1 -1
  160. package/core/built/admin/assets/layout-DkkGyev2.js +1 -0
  161. package/core/built/admin/assets/limit-service-BhiEvqcP.js +20 -0
  162. package/core/built/admin/assets/{link-helpers-Bzkk68GD.js → link-helpers-kpbU8TWh.js} +1 -1
  163. package/core/built/admin/assets/luxon-D1RVjjpq.js +1 -0
  164. package/core/built/admin/assets/member-custom-fields-CvGcpaiW.js +1 -0
  165. package/core/built/admin/assets/member-detail-CMCMZ47_.js +1 -0
  166. package/core/built/admin/assets/members-sRl6fNfq.js +11 -0
  167. package/core/built/admin/assets/{moderation-mPjYHgZW.js → moderation-KhKwGqI1.js} +1 -1
  168. package/core/built/admin/assets/{multi-select-combobox-CsoyHAiX.js → multi-select-combobox-nhCff0_K.js} +1 -1
  169. package/core/built/admin/assets/{navigation-modal-D_c0badj.js → navigation-modal-MDJExWDJ.js} +1 -1
  170. package/core/built/admin/assets/newsletter-BIBHumfV.js +1 -0
  171. package/core/built/admin/assets/newsletter-detail-modal-CfjBMH3v.js +1 -0
  172. package/core/built/admin/assets/{newsletter-emails-B-OLfrvr.js → newsletter-emails-ClDL-7dA.js} +1 -1
  173. package/core/built/admin/assets/newsletters-CBe-IPzK.js +1 -0
  174. package/core/built/admin/assets/{newsletters-Du0lzskS.js → newsletters-ILsexy-5.js} +1 -1
  175. package/core/built/admin/assets/{note-CSVsUKBm.js → note-HnNUOt4d.js} +1 -1
  176. package/core/built/admin/assets/{notifications-DV9FRtDw.js → notifications-Cj5e-258.js} +1 -1
  177. package/core/built/admin/assets/nql-lang-CaWrLesS.js +19 -0
  178. package/core/built/admin/assets/{offers-Um6ab71O.js → offers-DMxebaoK.js} +1 -1
  179. package/core/built/admin/assets/offers-container-modal-BHwHtixC.js +1 -0
  180. package/core/built/admin/assets/{onboarding-route--jL5KLPD.js → onboarding-route-D_4jp7Nq.js} +1 -1
  181. package/core/built/admin/assets/overview-CezDdg-F.js +1 -0
  182. package/core/built/admin/assets/overview-D5mM51Lj.js +1 -0
  183. package/core/built/admin/assets/{page-header-DAvDYKO9.js → page-header-VLPJfj_d.js} +1 -1
  184. package/core/built/admin/assets/{pages-BVMnpI2O.js → pages-Gchxp5c7.js} +1 -1
  185. package/core/built/admin/assets/{pintura-modal-jiUCxX0Q.js → pintura-modal-BXXJ8Iaa.js} +1 -1
  186. package/core/built/admin/assets/{portal-frame-D4D4nEO6.js → portal-frame-BLCvF8f-.js} +1 -1
  187. package/core/built/admin/assets/portal-modal-DN80tAcy.js +1 -0
  188. package/core/built/admin/assets/{post-analytics-BhAtiFJp.js → post-analytics-Gv81eN_g.js} +1 -1
  189. package/core/built/admin/assets/post-analytics-header-_ydSY8qO.js +1 -0
  190. package/core/built/admin/assets/{post-analytics-provider-DGg0FUqs.js → post-analytics-provider-O2YjZMhN.js} +1 -1
  191. package/core/built/admin/assets/{post-share-modal-DtFAC132.js → post-share-modal-CzYak_a5.js} +1 -1
  192. package/core/built/admin/assets/{posts-CxG7v0-M.js → posts-DgcUi2rc.js} +1 -1
  193. package/core/built/admin/assets/preferences-gneLb6LV.js +5 -0
  194. package/core/built/admin/assets/{preview-modal-DctYx20m.js → preview-modal-Bkq-tgVm.js} +1 -1
  195. package/core/built/admin/assets/profile-CzXmCNTC.js +1 -0
  196. package/core/built/admin/assets/{radio-group-CI5_Kf_d.js → radio-group-Dsq5ZEbV.js} +1 -1
  197. package/core/built/admin/assets/{referrers-B9QDAfYm.js → referrers-C3a2K8qB.js} +1 -1
  198. package/core/built/admin/assets/{router-provider-DSQfprxH.js → router-provider-CkB_ArLF.js} +1 -1
  199. package/core/built/admin/assets/{select-CkXqNJDJ.js → select-xuZAuDyS.js} +1 -1
  200. package/core/built/admin/assets/{settings-ZCj-W56o.js → settings-Ct8pabhr.js} +1 -1
  201. package/core/built/admin/assets/settings-KSWWQanQ.js +4 -0
  202. package/core/built/admin/assets/{settings-breadcrumbs-DIq31FwA.js → settings-breadcrumbs-DbPGu-Tu.js} +1 -1
  203. package/core/built/admin/assets/{share-modal-BNj14g79.js → share-modal-CdiUx9WM.js} +1 -1
  204. package/core/built/admin/assets/{slack-modal-C6SpMQ-q.js → slack-modal-BP--Z3jE.js} +1 -1
  205. package/core/built/admin/assets/{sort-button-B-k54ow2.js → sort-button-CjfKdlsL.js} +1 -1
  206. package/core/built/admin/assets/{source-icon-Cej3sZM6.js → source-icon-DHj1h6Ts.js} +1 -1
  207. package/core/built/admin/assets/{stats-B2KW8E2y.js → stats-C615kulJ.js} +1 -1
  208. package/core/built/admin/assets/{stats-view-CVzU2-p5.js → stats-view-BSMRdYiN.js} +1 -1
  209. package/core/built/admin/assets/{step-1-Dbn1iIMU.js → step-1-pSdGYtIF.js} +1 -1
  210. package/core/built/admin/assets/{step-2-BahnSuN6.js → step-2-T9Uy4eBD.js} +1 -1
  211. package/core/built/admin/assets/{step-3-CW04e2ZJ.js → step-3-D4uXe_XG.js} +2 -2
  212. package/core/built/admin/assets/{stripe-button-BkBZqaGG.js → stripe-button-Bh4p6Wud.js} +1 -1
  213. package/core/built/admin/assets/stripe-connect-modal-C2vTvepi.js +1 -0
  214. package/core/built/admin/assets/{table-BtLcEi1M.js → table-DghJxZMH.js} +1 -1
  215. package/core/built/admin/assets/{tabs-BaWRfg8j.js → tabs-l9c7FjzI.js} +1 -1
  216. package/core/built/admin/assets/tag-detail-DBw_M2-p.js +2 -0
  217. package/core/built/admin/assets/{tags-BbygUvNB.js → tags-DoWsAG6l.js} +1 -1
  218. package/core/built/admin/assets/{tags-BwCgmr5v.js → tags-EmEvJN75.js} +1 -1
  219. package/core/built/admin/assets/{testimonials-modal--bdzppyh.js → testimonials-modal-BZKePE2T.js} +1 -1
  220. package/core/built/admin/assets/tier-detail-modal-D65pVWsN.js +1 -0
  221. package/core/built/admin/assets/{tiers-Da6kxHQP.js → tiers-8iTFjJWg.js} +1 -1
  222. package/core/built/admin/assets/{toggle-group-CVl-Xigr.js → toggle-group-uJnl42w3.js} +1 -1
  223. package/core/built/admin/assets/{topic-filter-BoRHRbL1.js → topic-filter-BM7hz0kW.js} +1 -1
  224. package/core/built/admin/assets/transistor-modal-VZOGN3od.js +1 -0
  225. package/core/built/admin/assets/{unsplash-modal-CixoRAO2.js → unsplash-modal-CKGfACxF.js} +1 -1
  226. package/core/built/admin/assets/{use-analytics-data-BiWvcf1u.js → use-analytics-data-IxJcSjc9.js} +1 -1
  227. package/core/built/admin/assets/use-check-theme-limit-error-CGp3CGT5.js +1 -0
  228. package/core/built/admin/assets/use-feature-flag-CSq2Lwzt.js +1 -0
  229. package/core/built/admin/assets/use-filter-params-0hcJJuEJ.js +1 -0
  230. package/core/built/admin/assets/{use-filterable-api-iMpDZBxD.js → use-filterable-api-CQBtVG-l.js} +1 -1
  231. package/core/built/admin/assets/{use-growth-stats-Dom8xVzo.js → use-growth-stats-1NW-8eEZ.js} +1 -1
  232. package/core/built/admin/assets/use-limiter-ffwpsZPp.js +2 -0
  233. package/core/built/admin/assets/{use-pintura-config-Bj4QmiVk.js → use-pintura-config-BjFChXV1.js} +1 -1
  234. package/core/built/admin/assets/{use-pintura-editor-DvrslmPE.js → use-pintura-editor-Cb41oJyL.js} +1 -1
  235. package/core/built/admin/assets/{use-post-referrers-pxIHTXFs.js → use-post-referrers-Dp1BnTAK.js} +1 -1
  236. package/core/built/admin/assets/{use-reply-chain-data-CmFe0N6F.js → use-reply-chain-data-C0ZUTkfk.js} +1 -1
  237. package/core/built/admin/assets/{use-setting-group-Cmp_sy-d.js → use-setting-group-Bx8M6FL2.js} +1 -1
  238. package/core/built/admin/assets/{use-settings-navigation-BmROPrls.js → use-settings-navigation-BOZcat_V.js} +1 -1
  239. package/core/built/admin/assets/{use-simple-pagination-D5rL3YwO.js → use-simple-pagination-DsEGSJhe.js} +1 -1
  240. package/core/built/admin/assets/{use-tinybird-query-DP2dMaq7.js → use-tinybird-query-Ci_DiPkX.js} +1 -1
  241. package/core/built/admin/assets/{use-tinybird-token-DrK_skPQ.js → use-tinybird-token-CsUwc722.js} +1 -1
  242. package/core/built/admin/assets/use-upgrade-route-B3_DUiuT.js +1 -0
  243. package/core/built/admin/assets/{use-url-input-ChrUZBFf.js → use-url-input-BEZJpVgN.js} +2 -2
  244. package/core/built/admin/assets/user-detail-modal-595z1N5r.js +1 -0
  245. package/core/built/admin/assets/{users-B6hIds6n.js → users-DmGMPfw7.js} +1 -1
  246. package/core/built/admin/assets/virtual-list-D5ugXyZY.js +1 -0
  247. package/core/built/admin/assets/{web-D71mjB2r.js → web-CAta3lRE.js} +1 -1
  248. package/core/built/admin/assets/web-Ds9_wWJK.js +2 -0
  249. package/core/built/admin/assets/zapier-modal-CcfDZY53.js +1 -0
  250. package/core/built/admin/index.html +12 -12
  251. package/core/frontend/apps/private-blogging/lib/middleware.js +5 -58
  252. package/core/frontend/helpers/ghost_head.js +52 -0
  253. package/core/frontend/meta/asset-url.js +20 -9
  254. package/core/frontend/public/cards.manifest.json +1 -0
  255. package/core/frontend/public/ghost-stats.min.js +1 -1
  256. package/core/frontend/services/assets-minification/card-assets.js +121 -46
  257. package/core/frontend/services/assets-minification/index.js +13 -4
  258. package/core/frontend/services/data/fetch-data.js +7 -14
  259. package/core/frontend/services/llms/service.js +27 -6
  260. package/core/frontend/services/proxy.js +1 -0
  261. package/core/frontend/services/routing/api-adapter.js +11 -5
  262. package/core/frontend/services/routing/collection-router.js +1 -2
  263. package/core/frontend/services/routing/controllers/entry/markdown.js +63 -5
  264. package/core/frontend/services/routing/controllers/entry.js +1 -1
  265. package/core/frontend/services/routing/controllers/previews.js +0 -3
  266. package/core/frontend/services/routing/events.js +2 -1
  267. package/core/frontend/services/routing/parent-router.js +0 -22
  268. package/core/frontend/services/routing/router-manager.js +2 -2
  269. package/core/frontend/services/routing/static-pages-router.js +0 -1
  270. package/core/frontend/services/sitemap/handler.js +3 -4
  271. package/core/frontend/services/sitemap/site-map-manager.js +1 -2
  272. package/core/frontend/services/theme-engine/i18n/i18n.js +0 -33
  273. package/core/frontend/web/middleware/llms-discovery.js +2 -2
  274. package/core/frontend/web/routers/serve-public-file.js +33 -3
  275. package/core/frontend/web/site.js +5 -4
  276. package/core/server/adapters/jobs/InMemoryJobsBackend.js +113 -0
  277. package/core/server/adapters/redirects/S3RedirectsStore.js +33 -13
  278. package/core/server/adapters/route-settings/S3RouteSettingsStore.js +33 -13
  279. package/core/server/adapters/scheduling/scheduling-default.js +6 -7
  280. package/core/server/adapters/storage/LocalStorageBase.js +1 -3
  281. package/core/server/api/endpoints/index.js +0 -4
  282. package/core/server/api/endpoints/member-custom-fields.js +15 -4
  283. package/core/server/api/endpoints/pages.js +3 -11
  284. package/core/server/api/endpoints/posts.js +3 -11
  285. package/core/server/api/endpoints/utils/api-filter-utils.js +15 -1
  286. package/core/server/api/endpoints/utils/serializers/input/settings.js +4 -0
  287. package/core/server/api/endpoints/utils/serializers/output/index.js +0 -4
  288. package/core/server/api/endpoints/utils/serializers/output/mappers/email-batches.js +1 -1
  289. package/core/server/api/endpoints/utils/serializers/output/mappers/snippets.js +0 -1
  290. package/core/server/api/endpoints/utils/serializers/output/member-custom-fields.js +1 -0
  291. package/core/server/data/exporter/table-lists.js +4 -1
  292. package/core/server/data/migrations/utils/schema.js +5 -3
  293. package/core/server/data/migrations/versions/6.57/2026-08-04-18-00-00-store-custom-field-values-as-leaf-rows.js +19 -7
  294. package/core/server/data/migrations/versions/6.58/2026-08-10-08-20-50-add-machine-payments-settings.js +41 -0
  295. package/core/server/data/migrations/versions/6.58/2026-08-10-08-21-00-add-machine-payment-events-table.js +18 -0
  296. package/core/server/data/migrations/versions/6.58/2026-08-10-15-24-09-reset-custom-field-definitions-for-underscored-keys.js +66 -0
  297. package/core/server/data/migrations/versions/6.58/2026-08-11-10-00-00-swap-custom-field-values-to-key-fk.js +65 -0
  298. package/core/server/data/migrations/versions/6.58/2026-08-11-10-34-25-remove-legacy-explore-integration.js +131 -0
  299. package/core/server/data/migrations/versions/6.58/2026-08-11-16-00-00-add-sort-order-to-members-custom-fields.js +13 -0
  300. package/core/server/data/migrations/versions/6.58/2026-08-11-21-22-48-rename-email-batches-provider-id.js +8 -0
  301. package/core/server/data/migrations/versions/6.58/2026-08-13-16-07-33-add-automation-runs-automation-id-created-at-index.js +28 -0
  302. package/core/server/data/schema/README.md +87 -0
  303. package/core/server/data/schema/commands.js +5 -2
  304. package/core/server/data/schema/default-settings/default-settings.json +27 -0
  305. package/core/server/data/schema/fixtures/fixtures.json +0 -21
  306. package/core/server/data/schema/schema.js +37 -9
  307. package/core/server/data/seeders/data-generator.js +3 -1
  308. package/core/server/data/seeders/importers/automation-action-edges-importer.js +38 -0
  309. package/core/server/data/seeders/importers/automation-action-revisions-importer.js +139 -0
  310. package/core/server/data/seeders/importers/automation-actions-importer.js +84 -0
  311. package/core/server/data/seeders/importers/automation-run-steps-importer.js +134 -0
  312. package/core/server/data/seeders/importers/automation-runs-importer.js +97 -0
  313. package/core/server/data/seeders/importers/automations-importer.js +78 -0
  314. package/core/server/data/seeders/importers/benefits-importer.js +1 -1
  315. package/core/server/data/seeders/importers/comment-reports-importer.js +5 -5
  316. package/core/server/data/seeders/importers/comments-importer.js +6 -6
  317. package/core/server/data/seeders/importers/email-batches-importer.js +9 -8
  318. package/core/server/data/seeders/importers/email-recipient-failures-importer.js +1 -1
  319. package/core/server/data/seeders/importers/email-recipients-importer.js +12 -12
  320. package/core/server/data/seeders/importers/emails-importer.js +7 -7
  321. package/core/server/data/seeders/importers/index.js +6 -0
  322. package/core/server/data/seeders/importers/labels-importer.js +4 -4
  323. package/core/server/data/seeders/importers/members-click-events-importer.js +4 -4
  324. package/core/server/data/seeders/importers/members-created-events-importer.js +5 -5
  325. package/core/server/data/seeders/importers/members-feedback-importer.js +7 -7
  326. package/core/server/data/seeders/importers/members-importer.js +5 -5
  327. package/core/server/data/seeders/importers/members-labels-importer.js +1 -1
  328. package/core/server/data/seeders/importers/members-login-events-importer.js +4 -4
  329. package/core/server/data/seeders/importers/members-newsletters-importer.js +1 -1
  330. package/core/server/data/seeders/importers/members-paid-subscription-events-importer.js +1 -1
  331. package/core/server/data/seeders/importers/members-products-importer.js +3 -3
  332. package/core/server/data/seeders/importers/members-status-events-importer.js +4 -4
  333. package/core/server/data/seeders/importers/members-stripe-customers-importer.js +3 -3
  334. package/core/server/data/seeders/importers/members-stripe-customers-subscriptions-importer.js +8 -8
  335. package/core/server/data/seeders/importers/members-subscribe-events-importer.js +3 -3
  336. package/core/server/data/seeders/importers/members-subscription-created-events-importer.js +4 -4
  337. package/core/server/data/seeders/importers/newsletters-importer.js +1 -1
  338. package/core/server/data/seeders/importers/offer-redemptions-importer.js +6 -6
  339. package/core/server/data/seeders/importers/offers-importer.js +4 -4
  340. package/core/server/data/seeders/importers/posts-authors-importer.js +1 -1
  341. package/core/server/data/seeders/importers/posts-importer.js +5 -5
  342. package/core/server/data/seeders/importers/posts-products-importer.js +1 -1
  343. package/core/server/data/seeders/importers/posts-tags-importer.js +1 -1
  344. package/core/server/data/seeders/importers/products-benefits-importer.js +1 -1
  345. package/core/server/data/seeders/importers/products-importer.js +1 -1
  346. package/core/server/data/seeders/importers/recommendation-click-events-importer.js +1 -1
  347. package/core/server/data/seeders/importers/recommendation-subscribe-events-importer.js +1 -1
  348. package/core/server/data/seeders/importers/recommendations-importer.js +1 -1
  349. package/core/server/data/seeders/importers/redirects-importer.js +1 -1
  350. package/core/server/data/seeders/importers/roles-users-importer.js +1 -1
  351. package/core/server/data/seeders/importers/stripe-prices-importer.js +1 -1
  352. package/core/server/data/seeders/importers/stripe-products-importer.js +1 -1
  353. package/core/server/data/seeders/importers/table-importer.js +92 -91
  354. package/core/server/data/seeders/importers/tags-importer.js +3 -3
  355. package/core/server/data/seeders/importers/users-importer.js +3 -3
  356. package/core/server/data/seeders/importers/web-mentions-importer.js +3 -3
  357. package/core/server/data/seeders/utils/database-date.js +14 -18
  358. package/core/server/data/seeders/utils/json-importer.js +1 -1
  359. package/core/server/data/seeders/utils/random.js +8 -7
  360. package/core/server/data/seeders/utils/topological-sort.js +5 -3
  361. package/core/server/data/tinybird/ARCHITECTURE.md +1 -2
  362. package/core/server/models/base/plugins/crud.js +0 -5
  363. package/core/server/models/index.js +2 -0
  364. package/core/server/models/machine-payment-event.js +18 -0
  365. package/core/server/models/member.js +24 -0
  366. package/core/server/models/settings.js +32 -3
  367. package/core/server/models/user.js +1 -1
  368. package/core/server/services/README.md +30 -0
  369. package/core/server/services/activitypub/activity-pub-service.js +2 -3
  370. package/core/server/services/adapter-manager/base-classes.js +3 -1
  371. package/core/server/services/auth/passwordreset.js +47 -51
  372. package/core/server/services/automations/database-automations-repository.js +19 -3
  373. package/core/server/services/automations/poll.js +2 -8
  374. package/core/server/services/comments/comments-service.js +4 -16
  375. package/core/server/services/comments/index.js +1 -3
  376. package/core/server/services/email-analytics/email-analytics-service-wrapper.js +68 -119
  377. package/core/server/services/email-analytics/email-analytics-service.js +73 -229
  378. package/core/server/services/email-analytics/event-processing-result.js +0 -10
  379. package/core/server/services/email-analytics/fetch-mailgun-events.js +25 -0
  380. package/core/server/services/email-analytics/index.js +35 -67
  381. package/core/server/services/email-analytics/lib/queries.js +88 -51
  382. package/core/server/services/email-analytics/newsletter-email-analytics-batch-processor.js +4 -1
  383. package/core/server/services/email-service/batch-sending-service.js +1 -1
  384. package/core/server/services/email-service/email-event-processor.js +12 -12
  385. package/core/server/services/email-service/events/email-bounced-event.js +8 -46
  386. package/core/server/services/email-service/events/email-delivered-event.js +8 -36
  387. package/core/server/services/email-service/events/email-opened-event.js +8 -36
  388. package/core/server/services/email-service/events/email-temporary-bounced-event.js +8 -46
  389. package/core/server/services/email-service/events/email-unsubscribed-event.js +8 -31
  390. package/core/server/services/email-service/events/spam-complaint-event.js +8 -31
  391. package/core/server/services/email-service/newsletter-email-event-storage.js +8 -7
  392. package/core/server/services/email-service/sending-service.js +1 -1
  393. package/core/server/services/email-suppression-list/mailgun-email-suppression-list.js +2 -2
  394. package/core/server/services/email-suppression-list/service.js +1 -3
  395. package/core/server/services/explore-ping/explore-ping-service.js +1 -6
  396. package/core/server/services/explore-ping/index.js +0 -2
  397. package/core/server/services/gifts/index.js +109 -3
  398. package/core/server/services/gifts/jobs/clean-gifts-job.js +1 -1
  399. package/core/server/services/gifts/jobs/send-gift-reminders-job.js +1 -1
  400. package/core/server/services/jobs-service/index.js +36 -0
  401. package/core/server/services/jobs-service/job.js +6 -0
  402. package/core/server/services/jobs-service/jobs-service.js +91 -0
  403. package/core/server/services/jobs-service/register-job-handlers.js +6 -0
  404. package/core/server/services/lib/mailgun-client.js +1 -1
  405. package/core/server/services/machine-payments/README.md +23 -0
  406. package/core/server/services/machine-payments/adapters/mpp-adapter.js +195 -0
  407. package/core/server/services/machine-payments/content-loader.js +89 -0
  408. package/core/server/services/machine-payments/eligibility.js +6 -0
  409. package/core/server/services/machine-payments/events/machine-payment-event-repository.js +58 -0
  410. package/core/server/services/machine-payments/events/machine-payment-event.js +46 -0
  411. package/core/server/services/machine-payments/index.js +87 -0
  412. package/core/server/services/machine-payments/pricing.js +54 -0
  413. package/core/server/services/machine-payments/service.js +275 -0
  414. package/core/server/services/machine-payments/stripe/deposit-address-store.js +157 -0
  415. package/core/server/services/machine-payments/stripe/payment-recorder.js +85 -0
  416. package/core/server/services/machine-payments/stripe/stripe-client-options.js +25 -0
  417. package/core/server/services/machine-payments/types.js +2 -0
  418. package/core/server/services/members/import-export/csv/parse.js +9 -1
  419. package/core/server/services/members/import-export/import/completion-email.js +61 -27
  420. package/core/server/services/members/import-export/import/email-template.js +28 -15
  421. package/core/server/services/members/import-export/import/importer.js +99 -51
  422. package/core/server/services/members/import-export/import/spool.js +1 -1
  423. package/core/server/services/members/import-export/index.js +24 -1
  424. package/core/server/services/members/members-api/services/member-bread-service.js +2 -2
  425. package/core/server/services/members/members-config-provider.js +12 -2
  426. package/core/server/services/members-custom-fields/actions.js +2 -1
  427. package/core/server/services/members-custom-fields/definitions-service.js +109 -27
  428. package/core/server/services/members-custom-fields/filter.js +199 -0
  429. package/core/server/services/members-custom-fields/key.js +37 -0
  430. package/core/server/services/members-custom-fields/queries.js +15 -0
  431. package/core/server/services/members-custom-fields/schema.js +1 -1
  432. package/core/server/services/members-custom-fields/values-service.js +18 -14
  433. package/core/server/services/members-events/last-seen-at-updater.js +1 -1
  434. package/core/server/services/oembed/oembed-service.js +8 -2
  435. package/core/server/services/permissions/can-this.js +4 -1
  436. package/core/server/services/posts/posts-service.js +18 -16
  437. package/core/server/services/public-config/config.js +1 -1
  438. package/core/server/services/route-settings/dynamic-routing-service.js +2 -0
  439. package/core/server/services/settings-helpers/settings-helpers.js +0 -1
  440. package/core/server/services/stats/posts-stats-service.js +0 -2
  441. package/core/server/services/stripe/stripe-api.js +2 -9
  442. package/core/server/web/api/endpoints/admin/middleware.js +0 -1
  443. package/core/server/web/api/endpoints/admin/routes.js +2 -3
  444. package/core/server/web/comments/routes.js +31 -8
  445. package/core/shared/config/defaults.json +17 -2
  446. package/core/shared/config/loader.js +11 -2
  447. package/core/shared/config/overrides.json +2 -0
  448. package/core/shared/config/secrets.js +71 -0
  449. package/core/shared/labs.js +4 -13
  450. package/core/shared/machine-payments.js +30 -0
  451. package/core/shared/private-site-access/index.js +68 -0
  452. package/package.json +48 -43
  453. package/pnpm-lock.yaml +1412 -1583
  454. package/pnpm-workspace.yaml +85 -48
  455. package/bin/validate-adapters.ts +0 -87
  456. package/components/tryghost-adapter-base-scheduling-0.2.1.tgz +0 -0
  457. package/components/tryghost-adapter-base-sso-0.1.1.tgz +0 -0
  458. package/components/tryghost-kg-card-factory-5.2.3.tgz +0 -0
  459. package/components/tryghost-kg-clean-basic-html-4.3.3.tgz +0 -0
  460. package/components/tryghost-kg-converters-1.2.4.tgz +0 -0
  461. package/components/tryghost-kg-default-cards-10.3.4.tgz +0 -0
  462. package/components/tryghost-kg-default-nodes-2.1.5.tgz +0 -0
  463. package/components/tryghost-kg-default-transforms-1.3.3.tgz +0 -0
  464. package/components/tryghost-kg-html-to-lexical-1.3.3.tgz +0 -0
  465. package/components/tryghost-kg-lexical-html-renderer-1.4.3.tgz +0 -0
  466. package/components/tryghost-kg-markdown-html-renderer-7.2.3.tgz +0 -0
  467. package/components/tryghost-kg-utils-1.1.3.tgz +0 -0
  468. package/content/themes/casper/assets/built/casper.js.map +0 -1
  469. package/content/themes/casper/assets/built/global.css.map +0 -1
  470. package/content/themes/casper/assets/built/screen.css.map +0 -1
  471. package/content/themes/source/assets/built/screen.css.map +0 -1
  472. package/content/themes/source/assets/built/source.js.map +0 -1
  473. package/core/built/admin/assets/activitypub/layout-DM_3pqsU.js +0 -1
  474. package/core/built/admin/assets/add-integration-modal-DU9ghGLS.js +0 -1
  475. package/core/built/admin/assets/add-newsletter-modal-DFxuQrYu.js +0 -1
  476. package/core/built/admin/assets/announcement-bar-modal-DGCcezB6.js +0 -1
  477. package/core/built/admin/assets/card-aUHX0hyR.js +0 -1
  478. package/core/built/admin/assets/chunk.524.dce1c51e0bc30fb2718e.js +0 -25
  479. package/core/built/admin/assets/chunk.582.3a430d5c6a744fd475b6.js +0 -27
  480. package/core/built/admin/assets/code-editor-view-BcyKABrG.js +0 -1
  481. package/core/built/admin/assets/color-picker-field-8NoSnhNI.js +0 -1
  482. package/core/built/admin/assets/command-BOYMbZa_.js +0 -1
  483. package/core/built/admin/assets/comments-BhNM5CYl.js +0 -1
  484. package/core/built/admin/assets/confirmation-modal-CYD7x3UQ.js +0 -1
  485. package/core/built/admin/assets/custom-integration-modal-bk3lNEuQ.js +0 -1
  486. package/core/built/admin/assets/design-and-theme-modal-B2xYKS1I.js +0 -23
  487. package/core/built/admin/assets/dist-Bg8bSvLA.js +0 -6
  488. package/core/built/admin/assets/dist-BnFdlebk.js +0 -11
  489. package/core/built/admin/assets/dist-CsvXCJSe.js +0 -23
  490. package/core/built/admin/assets/editor-BBKrunMK.js +0 -8
  491. package/core/built/admin/assets/filters-Bz0HsRie.js +0 -1
  492. package/core/built/admin/assets/framework-provider-CmtnPXIT.js +0 -4
  493. package/core/built/admin/assets/index-DUXM0NlS.js +0 -67
  494. package/core/built/admin/assets/index-Ds2iUoF6.css +0 -1
  495. package/core/built/admin/assets/label-picker-Bnlru5tO.js +0 -1
  496. package/core/built/admin/assets/layout-yR9rlvEw.js +0 -1
  497. package/core/built/admin/assets/limit-modal-COmLevuY.js +0 -1
  498. package/core/built/admin/assets/limit-service-9fwD33lU.js +0 -20
  499. package/core/built/admin/assets/member-custom-fields-BvFKEpxJ.js +0 -1
  500. package/core/built/admin/assets/member-detail-CWdPAe3p.js +0 -1
  501. package/core/built/admin/assets/members-Bnt0ih2R.js +0 -11
  502. package/core/built/admin/assets/newsletter-DR49NyGS.js +0 -1
  503. package/core/built/admin/assets/newsletter-detail-modal-B45pL1pb.js +0 -1
  504. package/core/built/admin/assets/newsletters-DGs5BaKH.js +0 -1
  505. package/core/built/admin/assets/nql-lang-B7faUf8D.js +0 -19
  506. package/core/built/admin/assets/offers-container-modal-B0hFS8nk.js +0 -1
  507. package/core/built/admin/assets/overview-B-ZPNqMo.js +0 -1
  508. package/core/built/admin/assets/overview-D96iwoJi.js +0 -1
  509. package/core/built/admin/assets/portal-modal-BLFdYeDH.js +0 -1
  510. package/core/built/admin/assets/post-analytics-header-DK27VjJm.js +0 -1
  511. package/core/built/admin/assets/preferences-CuWLISHa.js +0 -5
  512. package/core/built/admin/assets/profile-BsKYYtuL.js +0 -1
  513. package/core/built/admin/assets/settings-B4vM-rgV.js +0 -4
  514. package/core/built/admin/assets/stripe-connect-modal-CYDDrSJm.js +0 -1
  515. package/core/built/admin/assets/tag-detail-CmqiC32L.js +0 -1
  516. package/core/built/admin/assets/tier-detail-modal-BZmAsIy4.js +0 -1
  517. package/core/built/admin/assets/transistor-modal-CBPDqEGy.js +0 -1
  518. package/core/built/admin/assets/use-check-theme-limit-error-B14lZukR.js +0 -2
  519. package/core/built/admin/assets/use-feature-flag-BmJoc5WN.js +0 -1
  520. package/core/built/admin/assets/use-filter-params-ChoV72Hw.js +0 -1
  521. package/core/built/admin/assets/use-limiter-Dwg8ivgQ.js +0 -2
  522. package/core/built/admin/assets/user-detail-modal-XODpOqNC.js +0 -1
  523. package/core/built/admin/assets/virtual-list-Dnoafqbk.js +0 -1
  524. package/core/built/admin/assets/web-z71lA1Y3.js +0 -2
  525. package/core/built/admin/assets/zapier-modal-Bp507Um7.js +0 -1
  526. package/core/frontend/meta/og-type.ts +0 -13
  527. package/core/frontend/services/routing/api-adapter.ts +0 -157
  528. package/core/frontend/services/routing/config.ts +0 -59
  529. package/core/frontend/services/routing/controllers/entry/canonical-url.ts +0 -14
  530. package/core/frontend/services/routing/controllers/entry/gift-links.ts +0 -56
  531. package/core/frontend/services/routing/controllers/entry/markdown.ts +0 -72
  532. package/core/frontend/services/routing/controllers/entry.ts +0 -120
  533. package/core/frontend/services/routing/controllers/rss.ts +0 -66
  534. package/core/frontend/services/routing/permalink-adapter.ts +0 -10
  535. package/core/frontend/src/utils/privacy.ts +0 -66
  536. package/core/server/adapters/redirects/FileStore.ts +0 -113
  537. package/core/server/adapters/redirects/S3RedirectsStore.ts +0 -185
  538. package/core/server/adapters/route-settings/FileStore.ts +0 -144
  539. package/core/server/adapters/route-settings/S3RouteSettingsStore.ts +0 -199
  540. package/core/server/adapters/route-settings/utils.ts +0 -17
  541. package/core/server/adapters/scheduling/deps.d.ts +0 -1
  542. package/core/server/adapters/scheduling/error-capture.ts +0 -91
  543. package/core/server/adapters/scheduling/scheduling-default.ts +0 -248
  544. package/core/server/adapters/scheduling/utils.ts +0 -36
  545. package/core/server/adapters/sso/DefaultSSOAdapter.ts +0 -15
  546. package/core/server/adapters/storage/LocalFilesStorage.ts +0 -24
  547. package/core/server/adapters/storage/LocalImagesStorage.ts +0 -24
  548. package/core/server/adapters/storage/LocalMediaStorage.ts +0 -24
  549. package/core/server/adapters/storage/LocalStorageBase.ts +0 -342
  550. package/core/server/adapters/storage/S3Storage.ts +0 -506
  551. package/core/server/adapters/storage/utils.ts +0 -60
  552. package/core/server/api/endpoints/automation-action-links.ts +0 -46
  553. package/core/server/api/endpoints/explore.js +0 -18
  554. package/core/server/api/endpoints/gift-links.ts +0 -87
  555. package/core/server/api/endpoints/libraries.d.ts +0 -2
  556. package/core/server/api/endpoints/member-commenting.ts +0 -92
  557. package/core/server/api/endpoints/member-custom-fields.ts +0 -106
  558. package/core/server/api/endpoints/utils/api-filter-utils.ts +0 -22
  559. package/core/server/api/endpoints/utils/gift-link-access.ts +0 -82
  560. package/core/server/api/endpoints/utils/public-cache-keys.ts +0 -47
  561. package/core/server/api/endpoints/utils/serializers/input/member-commenting.ts +0 -29
  562. package/core/server/api/endpoints/utils/serializers/output/explore.js +0 -11
  563. package/core/server/api/endpoints/utils/serializers/output/gift-links.ts +0 -21
  564. package/core/server/api/endpoints/utils/serializers/output/member-commenting.ts +0 -8
  565. package/core/server/api/endpoints/utils/serializers/output/member-custom-fields.ts +0 -25
  566. package/core/server/api/endpoints/utils/serializers/output/members.d.ts +0 -20
  567. package/core/server/api/endpoints/utils/serializers/output/posts-csv-transform.ts +0 -46
  568. package/core/server/api/endpoints/utils/serializers/output/stream-csv-response.ts +0 -47
  569. package/core/server/api/endpoints/utils/validate-email-sender-fields.ts +0 -42
  570. package/core/server/data/importer/email-template.ts +0 -213
  571. package/core/server/data/seeders/utils/topological-sort.ts +0 -48
  572. package/core/server/lib/auto-filling-map.ts +0 -23
  573. package/core/server/lib/bootstrap-socket.ts +0 -114
  574. package/core/server/lib/case-keys.ts +0 -30
  575. package/core/server/lib/common/to-plain.ts +0 -25
  576. package/core/server/lib/db-date.ts +0 -8
  577. package/core/server/lib/get-inbox-links.ts +0 -276
  578. package/core/server/lib/post-revisions.ts +0 -152
  579. package/core/server/lib/soonest-timer.ts +0 -57
  580. package/core/server/models/base/plugins/bulk-filters.ts +0 -35
  581. package/core/server/models/role-utils.ts +0 -56
  582. package/core/server/services/activitypub/activity-pub-service.ts +0 -216
  583. package/core/server/services/adapter-manager/adapter-manager.ts +0 -253
  584. package/core/server/services/adapter-manager/adapter-paths.ts +0 -26
  585. package/core/server/services/adapter-manager/base-classes.ts +0 -22
  586. package/core/server/services/adapter-manager/index.ts +0 -16
  587. package/core/server/services/adapter-manager/types.ts +0 -45
  588. package/core/server/services/adapter-manager/utils.ts +0 -308
  589. package/core/server/services/auth/reset-authentication.ts +0 -72
  590. package/core/server/services/automations/automations-api.ts +0 -396
  591. package/core/server/services/automations/automations-repository.ts +0 -218
  592. package/core/server/services/automations/constants.ts +0 -4
  593. package/core/server/services/automations/database-automations-repository.ts +0 -1513
  594. package/core/server/services/automations/database-date.ts +0 -26
  595. package/core/server/services/automations/fake-wait-hours-multiplier.ts +0 -12
  596. package/core/server/services/automations/get-scheduler-idempotency-key.ts +0 -8
  597. package/core/server/services/automations/mailgun-message-id.ts +0 -27
  598. package/core/server/services/automations/poll.ts +0 -325
  599. package/core/server/services/automations/scheduler-poll-time.ts +0 -38
  600. package/core/server/services/automations/service.ts +0 -131
  601. package/core/server/services/automations/stale-lock-cutoff.ts +0 -5
  602. package/core/server/services/comments/email-templates/new-comment-reply.txt.ts +0 -25
  603. package/core/server/services/comments/email-templates/new-comment.txt.ts +0 -25
  604. package/core/server/services/comments/email-templates/report.txt.ts +0 -34
  605. package/core/server/services/custom-redirects/redirect-config-parser.ts +0 -148
  606. package/core/server/services/custom-redirects/redirects-service.ts +0 -181
  607. package/core/server/services/custom-redirects/utils.ts +0 -7
  608. package/core/server/services/donations/donation-bookshelf-repository.ts +0 -63
  609. package/core/server/services/donations/donation-payment-event.ts +0 -51
  610. package/core/server/services/email-address/email-address-parser.d.ts +0 -12
  611. package/core/server/services/email-address/email-address-service.ts +0 -241
  612. package/core/server/services/email-analytics/automation-email-analytics-batch-processor.ts +0 -130
  613. package/core/server/services/email-analytics/batch-event-processor.ts +0 -18
  614. package/core/server/services/email-analytics/email-analytics-provider-mailgun.js +0 -57
  615. package/core/server/services/email-analytics/event-processing-result.ts +0 -66
  616. package/core/server/services/email-analytics/events/start-automation-email-analytics-job-event.ts +0 -14
  617. package/core/server/services/email-analytics/events/start-email-analytics-job-event.ts +0 -15
  618. package/core/server/services/email-analytics/index.ts +0 -109
  619. package/core/server/services/email-analytics/jobs/email-analytics-job-scheduler.ts +0 -126
  620. package/core/server/services/email-analytics/lib/queries.ts +0 -341
  621. package/core/server/services/email-service/domain-warming-service.ts +0 -91
  622. package/core/server/services/explore/explore-service.js +0 -59
  623. package/core/server/services/explore/index.js +0 -18
  624. package/core/server/services/explore-ping/explore-ping-service.ts +0 -198
  625. package/core/server/services/explore-ping/index.ts +0 -42
  626. package/core/server/services/files/file-type-utils.ts +0 -56
  627. package/core/server/services/gift-links/actions.ts +0 -51
  628. package/core/server/services/gift-links/codec.ts +0 -16
  629. package/core/server/services/gift-links/index.ts +0 -20
  630. package/core/server/services/gift-links/models.ts +0 -22
  631. package/core/server/services/gift-links/schema.ts +0 -33
  632. package/core/server/services/gift-links/serializers.ts +0 -20
  633. package/core/server/services/gift-links/service.ts +0 -95
  634. package/core/server/services/gifts/constants.ts +0 -3
  635. package/core/server/services/gifts/email-templates/gift-purchase-confirmation.ts +0 -43
  636. package/core/server/services/gifts/email-templates/gift-reminder.ts +0 -50
  637. package/core/server/services/gifts/gift-bookshelf-repository.ts +0 -366
  638. package/core/server/services/gifts/gift-checkout-offer.ts +0 -127
  639. package/core/server/services/gifts/gift-codec.ts +0 -62
  640. package/core/server/services/gifts/gift-controller.ts +0 -51
  641. package/core/server/services/gifts/gift-email-renderer.ts +0 -97
  642. package/core/server/services/gifts/gift-email-service.ts +0 -158
  643. package/core/server/services/gifts/gift-reminder-scheduler.ts +0 -107
  644. package/core/server/services/gifts/gift-schema.ts +0 -39
  645. package/core/server/services/gifts/gift-service-wrapper.js +0 -142
  646. package/core/server/services/gifts/gift-service.ts +0 -1034
  647. package/core/server/services/gifts/gift.ts +0 -234
  648. package/core/server/services/identity-tokens/identity-token-service.ts +0 -36
  649. package/core/server/services/indexnow-ping/constants.ts +0 -32
  650. package/core/server/services/indexnow-ping/index.ts +0 -35
  651. package/core/server/services/indexnow-ping/indexnow-ping-service.ts +0 -311
  652. package/core/server/services/internal-keys/index.ts +0 -53
  653. package/core/server/services/lib/dynamic-redirect-manager.d.ts +0 -20
  654. package/core/server/services/lib/in-memory-repository.ts +0 -78
  655. package/core/server/services/lib/member-signup-contexts.ts +0 -22
  656. package/core/server/services/link-redirection/link-redirect.ts +0 -24
  657. package/core/server/services/member-welcome-emails/constants.ts +0 -35
  658. package/core/server/services/members/commenting/index.ts +0 -2
  659. package/core/server/services/members/commenting/member-commenting-codec.ts +0 -73
  660. package/core/server/services/members/commenting/member-commenting.ts +0 -69
  661. package/core/server/services/members/create-paid-member-shim.ts +0 -40
  662. package/core/server/services/members/import-export/config.ts +0 -34
  663. package/core/server/services/members/import-export/csv/formula.ts +0 -14
  664. package/core/server/services/members/import-export/csv/index.ts +0 -3
  665. package/core/server/services/members/import-export/csv/parse.ts +0 -69
  666. package/core/server/services/members/import-export/csv/serialize.ts +0 -18
  667. package/core/server/services/members/import-export/export/exporter.ts +0 -325
  668. package/core/server/services/members/import-export/import/completion-email.ts +0 -146
  669. package/core/server/services/members/import-export/import/importer.ts +0 -489
  670. package/core/server/services/members/import-export/import/reader.ts +0 -33
  671. package/core/server/services/members/import-export/import/row.ts +0 -56
  672. package/core/server/services/members/import-export/import/spool.ts +0 -38
  673. package/core/server/services/members/import-export/index.ts +0 -143
  674. package/core/server/services/members/index.d.ts +0 -32
  675. package/core/server/services/members-custom-fields/actions.ts +0 -62
  676. package/core/server/services/members-custom-fields/codec.ts +0 -13
  677. package/core/server/services/members-custom-fields/config.ts +0 -38
  678. package/core/server/services/members-custom-fields/definitions-service.ts +0 -413
  679. package/core/server/services/members-custom-fields/index.ts +0 -50
  680. package/core/server/services/members-custom-fields/models.ts +0 -15
  681. package/core/server/services/members-custom-fields/queries.ts +0 -13
  682. package/core/server/services/members-custom-fields/schema.ts +0 -71
  683. package/core/server/services/members-custom-fields/serializers.ts +0 -22
  684. package/core/server/services/members-custom-fields/storage.ts +0 -122
  685. package/core/server/services/members-custom-fields/values-service.ts +0 -269
  686. package/core/server/services/notifications/notification-email.ts +0 -66
  687. package/core/server/services/notifications/sanitize-email-html.ts +0 -35
  688. package/core/server/services/post-scheduling/index.ts +0 -13
  689. package/core/server/services/post-scheduling/post-scheduling.ts +0 -133
  690. package/core/server/services/recommendations/service/bookshelf-click-event-repository.ts +0 -49
  691. package/core/server/services/recommendations/service/bookshelf-recommendation-repository.ts +0 -117
  692. package/core/server/services/recommendations/service/bookshelf-repository.ts +0 -192
  693. package/core/server/services/recommendations/service/bookshelf-subscribe-event-repository.ts +0 -49
  694. package/core/server/services/recommendations/service/click-event.ts +0 -32
  695. package/core/server/services/recommendations/service/in-memory-recommendation-repository.ts +0 -20
  696. package/core/server/services/recommendations/service/incoming-recommendation-controller.ts +0 -51
  697. package/core/server/services/recommendations/service/incoming-recommendation-email-renderer.ts +0 -37
  698. package/core/server/services/recommendations/service/incoming-recommendation-service.ts +0 -159
  699. package/core/server/services/recommendations/service/index.ts +0 -15
  700. package/core/server/services/recommendations/service/libraries.d.ts +0 -2
  701. package/core/server/services/recommendations/service/recommendation-controller.ts +0 -257
  702. package/core/server/services/recommendations/service/recommendation-metadata-service.ts +0 -132
  703. package/core/server/services/recommendations/service/recommendation-repository.ts +0 -13
  704. package/core/server/services/recommendations/service/recommendation-service.ts +0 -285
  705. package/core/server/services/recommendations/service/recommendation.ts +0 -200
  706. package/core/server/services/recommendations/service/subscribe-event.ts +0 -32
  707. package/core/server/services/recommendations/service/unsafe-data.ts +0 -217
  708. package/core/server/services/recommendations/service/well-known-service.ts +0 -47
  709. package/core/server/services/remote-flags/index.ts +0 -101
  710. package/core/server/services/remote-flags/remote-flags-service.ts +0 -236
  711. package/core/server/services/remote-flags/resolve.ts +0 -108
  712. package/core/server/services/route-settings/route-settings-parser.ts +0 -455
  713. package/core/server/services/route-settings/validation-errors.ts +0 -271
  714. package/core/server/services/route-settings/yaml-parser.d.ts +0 -4
  715. package/core/server/services/slack-ping/constants.ts +0 -15
  716. package/core/server/services/slack-ping/index.ts +0 -35
  717. package/core/server/services/slack-ping/slack-ping-service.ts +0 -295
  718. package/core/server/services/staff/email-templates/donation.txt.ts +0 -26
  719. package/core/server/services/staff/email-templates/gift.txt.ts +0 -27
  720. package/core/server/services/staff/email-templates/new-free-signup.txt.ts +0 -15
  721. package/core/server/services/staff/email-templates/new-gift-subscription.txt.ts +0 -26
  722. package/core/server/services/staff/email-templates/new-milestone-received.txt.ts +0 -20
  723. package/core/server/services/staff/email-templates/new-paid-cancellation.txt.ts +0 -15
  724. package/core/server/services/staff/email-templates/new-paid-started.txt.ts +0 -15
  725. package/core/server/services/staff/email-templates/recommendation-received.txt.ts +0 -23
  726. package/core/server/services/staff/email-templates/types.ts +0 -13
  727. package/core/server/services/url/lazy-find-resource.ts +0 -104
  728. package/core/server/services/url/lazy-url-service.ts +0 -647
  729. package/core/server/services/url/permalink-matcher.ts +0 -119
  730. package/core/server/services/url/router-filter.ts +0 -80
  731. package/core/server/services/verification/verification-webhook-service.ts +0 -137
  732. package/core/shared/config/helpers.ts +0 -133
  733. package/core/shared/config/index.ts +0 -12
  734. package/core/shared/config/loader.ts +0 -87
  735. package/core/shared/config/utils.ts +0 -104
  736. package/core/shared/errify.ts +0 -31
  737. package/core/shared/events-ts/index.ts +0 -8
  738. package/core/shared/events-ts/post-deleted-event.ts +0 -15
  739. package/core/shared/events-ts/posts-bulk-add-tags-event.ts +0 -13
  740. package/core/shared/events-ts/posts-bulk-destroyed-event.ts +0 -13
  741. package/core/shared/events-ts/posts-bulk-featured-event.ts +0 -13
  742. package/core/shared/events-ts/posts-bulk-unfeatured-event.ts +0 -13
  743. package/core/shared/events-ts/posts-bulk-unpublished-event.ts +0 -13
  744. package/core/shared/events-ts/posts-bulk-unscheduled-event.ts +0 -13
  745. package/core/shared/labs-flag-overrides.ts +0 -35
  746. package/core/shared/one-at-a-time.ts +0 -47
  747. package/core/shared/url-utils.ts +0 -20
@@ -1 +1 @@
1
- import"./rolldown-runtime-DAXXjFlN.js";import{t as e}from"./react-Bb3IsNbi.js";import{t}from"./jsx-runtime-DX3WBWVO.js";import{c as n}from"./dist-Cb5RSHSg.js";import{Pr as r}from"./index-DUXM0NlS.js";e();var i=t(),a=({children:e,className:t,...r})=>(0,i.jsx)(`div`,{className:n(`flex flex-col`,t),...r,children:e}),o=({children:e,className:t,...r})=>(0,i.jsx)(`div`,{className:n(`flex h-[22px] items-center gap-1.5 text-base font-medium transition-all [&_svg]:size-4`,t,r.onClick&&`hover:cursor-pointer hover:text-black dark:hover:text-white`),...r,children:e}),s=({children:e,className:t,...r})=>(0,i.jsx)(`div`,{className:n(`mt-0.5 text-[26px] leading-none font-semibold tracking-tighter text-foreground`,t),...r,children:e}),c=({children:e,className:t,...a})=>(0,i.jsx)(r,{className:n(`absolute top-4 right-4 z-50 hidden translate-x-10 text-black opacity-0 transition-all duration-200 group-hover:translate-x-0 group-hover:opacity-100 focus-visible:translate-x-0 focus-visible:opacity-100 md:visible! md:block! dark:text-white/80 dark:hover:text-white`,t),size:`sm`,variant:`outline`,...a,children:e}),l=({children:e,className:t,...r})=>(0,i.jsx)(`div`,{className:n(`group relative isolate flex flex-col items-start gap-2 border-r border-border px-6 py-5 text-muted-foreground transition-all last:border-none`,r.onClick?`cursor-pointer hover:bg-accent/50 hover:text-foreground`:`cursor-auto`,t),...r,children:e});export{s as a,c as i,a as n,o as r,l as t};
1
+ import"./rolldown-runtime-DAXXjFlN.js";import{t as e}from"./react-Bb3IsNbi.js";import{t}from"./jsx-runtime-DX3WBWVO.js";import{c as n}from"./dist-Cb5RSHSg.js";import{Pr as r}from"./index-BOJzlYiz.js";e();var i=t(),a=({children:e,className:t,...r})=>(0,i.jsx)(`div`,{className:n(`flex flex-col`,t),...r,children:e}),o=({children:e,className:t,...r})=>(0,i.jsx)(`div`,{className:n(`flex h-[22px] items-center gap-1.5 text-base font-medium transition-all [&_svg]:size-4`,t,r.onClick&&`hover:cursor-pointer hover:text-black dark:hover:text-white`),...r,children:e}),s=({children:e,className:t,...r})=>(0,i.jsx)(`div`,{className:n(`mt-0.5 text-[26px] leading-none font-semibold tracking-tighter text-foreground`,t),...r,children:e}),c=({children:e,className:t,...a})=>(0,i.jsx)(r,{className:n(`absolute top-4 right-4 z-50 hidden translate-x-10 text-black opacity-0 transition-all duration-200 group-hover:translate-x-0 group-hover:opacity-100 focus-visible:translate-x-0 focus-visible:opacity-100 md:visible! md:block! dark:text-white/80 dark:hover:text-white`,t),size:`sm`,variant:`outline`,...a,children:e}),l=({children:e,className:t,...r})=>(0,i.jsx)(`div`,{className:n(`group relative isolate flex flex-col items-start gap-2 border-r border-border px-6 py-5 text-muted-foreground transition-all last:border-none`,r.onClick?`cursor-pointer hover:bg-accent/50 hover:text-foreground`:`cursor-auto`,t),...r,children:e});export{s as a,c as i,a as n,o as r,l as t};
@@ -1 +1 @@
1
- import"./rolldown-runtime-DAXXjFlN.js";import{t as e}from"./react-Bb3IsNbi.js";import{t}from"./jsx-runtime-DX3WBWVO.js";import{c as n}from"./dist-Cb5RSHSg.js";import{o as r,s as i}from"./chart-helpers-DGxvWnBT.js";e();var a=t(),o=({children:e,className:t,...r})=>(0,a.jsx)(`div`,{className:n(`flex flex-col items-start gap-4 border-r border-border px-6 py-5 transition-all last:border-none`,t),...r,children:e}),s=({children:e,className:t,color:r,...i})=>(0,a.jsxs)(`div`,{className:n(`flex h-[22px] items-center gap-1.5 text-base font-medium text-muted-foreground [&_svg]:size-4`,t),...i,children:[r&&(0,a.jsx)(`div`,{className:`ml-1 size-2 rounded-full opacity-50`,style:{backgroundColor:r}}),e]}),c=({value:e,diffDirection:t,diffValue:n,diffTooltip:o})=>{let s=null;return t&&t!==`hidden`&&(s=t===`empty`?(0,a.jsx)(`div`,{className:`flex h-[22px] items-center px-1.5 text-xs leading-none font-medium`,"data-testid":`kpi-card-header-diff`,children:n}):(0,a.jsx)(r,{"data-testid":`kpi-card-header-diff`,direction:t,tooltip:o,value:n??``})),(0,a.jsx)(i,{trailing:s,value:e,valueTestId:`kpi-card-header-value`})};export{s as n,c as r,o as t};
1
+ import"./rolldown-runtime-DAXXjFlN.js";import{t as e}from"./react-Bb3IsNbi.js";import{t}from"./jsx-runtime-DX3WBWVO.js";import{c as n}from"./dist-Cb5RSHSg.js";import{o as r,s as i}from"./chart-helpers-DcO3k_vA.js";e();var a=t(),o=({children:e,className:t,...r})=>(0,a.jsx)(`div`,{className:n(`flex flex-col items-start gap-4 border-r border-border px-6 py-5 transition-all last:border-none`,t),...r,children:e}),s=({children:e,className:t,color:r,...i})=>(0,a.jsxs)(`div`,{className:n(`flex h-[22px] items-center gap-1.5 text-base font-medium text-muted-foreground [&_svg]:size-4`,t),...i,children:[r&&(0,a.jsx)(`div`,{className:`ml-1 size-2 rounded-full opacity-50`,style:{backgroundColor:r}}),e]}),c=({value:e,diffDirection:t,diffValue:n,diffTooltip:o})=>{let s=null;return t&&t!==`hidden`&&(s=t===`empty`?(0,a.jsx)(`div`,{className:`flex h-[22px] items-center px-1.5 text-xs leading-none font-medium`,"data-testid":`kpi-card-header-diff`,children:n}):(0,a.jsx)(r,{"data-testid":`kpi-card-header-diff`,direction:t,tooltip:o,value:n??``})),(0,a.jsx)(i,{trailing:s,value:e,valueTestId:`kpi-card-header-value`})};export{s as n,c as r,o as t};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{i as r,n as i,t as a}from"./source-icon-Cej3sZM6.js";import{d as o,f as s,p as c}from"./dist-Cb5RSHSg.js";import{n as l}from"./chart-helpers-DGxvWnBT.js";import{a as u,i as d,n as f,o as p,r as m,t as h}from"./card-aUHX0hyR.js";import{a as g,c as _,i as v,l as y,n as b,o as x,r as S,s as C,t as w,u as T}from"./data-list-CupF7bjM.js";import{Bn as E,Hn as D,Ln as O,Pr as k,Ps as A,Rn as j,Vn as M,aa as N,sr as P,ws as F,zn as I}from"./index-DUXM0NlS.js";import{n as L}from"./post-analytics-context-D0Mw-Pmv.js";var R=e(t(),1),z=n(),B=`https://www.google.com/s2/favicons?domain=ghost.org&sz=64`,V=({dataTableHeader:e,data:t,defaultSourceIconUrl:n=B,onSourceClick:r})=>(0,z.jsxs)(w,{children:[e&&(0,z.jsxs)(g,{children:[(0,z.jsx)(v,{children:`Source`}),(0,z.jsx)(v,{children:`Visitors`})]}),(0,z.jsx)(S,{children:t?.map(e=>{let t=!!r,i=e.source?e.source.toLowerCase().replace(/[^a-z0-9]/g,`-`):`direct`;return(0,z.jsxs)(T,{className:`group/row ${t?`cursor-pointer`:``}`,"data-testid":`source-row-${i}`,onClick:t?()=>r(e.source):void 0,children:[(0,z.jsx)(b,{style:{width:`${e.percentage?Math.round(e.percentage*100):0}%`}}),(0,z.jsx)(x,{className:`group-hover/datalist:max-w-[calc(100%-140px)]`,children:(0,z.jsx)(`div`,{className:`flex items-center space-x-4 overflow-hidden`,children:(0,z.jsx)(`div`,{className:`truncate font-medium`,children:e.linkUrl&&!r?(0,z.jsxs)(`a`,{className:`group/link flex items-center gap-2`,href:e.linkUrl,rel:`noreferrer`,target:`_blank`,children:[(0,z.jsx)(a,{defaultSourceIconUrl:n,displayName:e.displayName,iconSrc:e.iconSrc}),(0,z.jsx)(`span`,{className:`group-hover/link:underline`,children:e.displayName})]}):(0,z.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,z.jsx)(a,{defaultSourceIconUrl:n,displayName:e.displayName,iconSrc:e.iconSrc}),(0,z.jsx)(`span`,{children:e.displayName})]})})})}),(0,z.jsxs)(C,{children:[(0,z.jsx)(_,{children:s(e.visits)}),(0,z.jsx)(y,{children:c(e.percentage||0)})]})]},e.source)})})]}),H=({data:e,range:t=30,totalVisitors:n=0,siteUrl:a,siteIcon:o,defaultSourceIconUrl:s=B,tableOnly:c=!1,topSourcesLimit:g=10,onSourceClick:_})=>{let{isPostLoading:v}=L(),y=R.useMemo(()=>r({data:e,mode:`visits`,siteUrl:a,siteIcon:o,defaultSourceIconUrl:s}),[e,a,o,s]),b=R.useMemo(()=>i({processedData:y,totalVisitors:n,mode:`visits`}),[y,n]),x=b.slice(0,g),S=`Top sources`,C=`How readers found this post ${t&&` ${l(t)}`}`;if(c){let e=b.slice(0,g),n=b.length>g;return(0,z.jsxs)(`div`,{children:[(0,z.jsx)(V,{data:e,dataTableHeader:!1,defaultSourceIconUrl:s,range:t,onSourceClick:_}),n&&(0,z.jsx)(`div`,{className:`mt-4`,children:(0,z.jsxs)(O,{children:[(0,z.jsx)(D,{asChild:!0,children:(0,z.jsxs)(k,{className:`w-full`,size:`sm`,variant:`outline`,children:[`View all (`,b.length,`) `,(0,z.jsx)(F,{size:14})]})}),(0,z.jsxs)(j,{className:`overflow-y-auto pt-0 sm:max-w-[480px]`,children:[(0,z.jsxs)(E,{className:`sticky top-0 z-40 -mx-6 bg-surface-elevated/60 p-6 backdrop-blur`,children:[(0,z.jsx)(M,{children:S}),(0,z.jsx)(I,{children:C})]}),(0,z.jsx)(`div`,{className:`group/datalist`,children:(0,z.jsx)(V,{data:b,dataTableHeader:!0,defaultSourceIconUrl:s,range:t,onSourceClick:_})})]})]})})]})}return(0,z.jsxs)(h,{className:`group/datalist`,"data-testid":`top-sources-card`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-between p-6`,children:[(0,z.jsxs)(u,{className:`p-0`,children:[(0,z.jsx)(p,{children:S}),(0,z.jsx)(m,{children:C})]}),(0,z.jsx)(A,{className:`mr-2`,children:`Visitors`})]}),(0,z.jsxs)(f,{className:`overflow-hidden`,children:[(0,z.jsx)(`div`,{className:`h-[1px] w-full bg-border`}),v?(0,z.jsx)(P,{lines:5}):x.length>0?(0,z.jsx)(V,{data:x,dataTableHeader:!1,defaultSourceIconUrl:s,range:t,onSourceClick:_}):(0,z.jsx)(`div`,{className:`py-20 text-center text-sm text-gray-700`,children:`No sources data available.`})]}),b.length>10&&(0,z.jsx)(d,{children:(0,z.jsxs)(O,{children:[(0,z.jsx)(D,{asChild:!0,children:(0,z.jsxs)(k,{variant:`outline`,children:[`View all `,(0,z.jsx)(N,{})]})}),(0,z.jsxs)(j,{className:`overflow-y-auto pt-0 sm:max-w-[420px]`,children:[(0,z.jsxs)(E,{className:`sticky top-0 z-40 -mx-6 bg-surface-elevated/60 p-6 backdrop-blur`,children:[(0,z.jsx)(M,{children:S}),(0,z.jsx)(I,{children:C})]}),(0,z.jsx)(`div`,{className:`group/datalist`,children:(0,z.jsx)(V,{data:b,dataTableHeader:!0,defaultSourceIconUrl:s,range:t,onSourceClick:_})})]})]})})]})},U={visits:{dataKey:`visits`,label:`Visitors`,color:`var(--chart-blue)`,formatter:s},views:{dataKey:`pageviews`,label:`Pageviews`,color:`var(--chart-teal)`,formatter:s},"bounce-rate":{dataKey:`bounce_rate`,label:`Bounce rate`,color:`var(--chart-purple)`,formatter:c},duration:{dataKey:`avg_session_sec`,label:`Time on page`,color:`var(--chart-orange)`,formatter:o}},W=e=>{if(!e?.length)return{visits:`0`,views:`0`,bounceRate:`0%`,duration:`0s`};let t=e=>{let t=Number(e);return isNaN(t)?0:t},n=e.reduce((e,n)=>e+t(n.visits),0),r=e.reduce((e,n)=>e+t(n.pageviews),0),i=r=>n===0?0:e.reduce((e,i)=>e+t(i[r])*t(i.visits)/n,0),a=i(`bounce_rate`),l=i(`avg_session_sec`);return{visits:s(n),views:s(r),bounceRate:c(a),duration:o(l)}};export{U as n,H as r,W as t};
1
+ import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{i as r,n as i,t as a}from"./source-icon-DHj1h6Ts.js";import{d as o,f as s,p as c}from"./dist-Cb5RSHSg.js";import{n as l}from"./chart-helpers-DcO3k_vA.js";import{a as u,i as d,n as f,o as p,r as m,t as h}from"./card-CiiE7QfM.js";import{a as g,c as _,i as v,l as y,n as b,o as x,r as S,s as C,t as w,u as T}from"./data-list-CupF7bjM.js";import{Bn as E,Ds as D,Hn as O,Ln as k,Pr as A,Rn as j,Rs as M,Vn as N,aa as P,sr as F,zn as I}from"./index-BOJzlYiz.js";import{n as L}from"./post-analytics-context-D0Mw-Pmv.js";var R=e(t(),1),z=n(),B=`https://www.google.com/s2/favicons?domain=ghost.org&sz=64`,V=({dataTableHeader:e,data:t,defaultSourceIconUrl:n=B,onSourceClick:r})=>(0,z.jsxs)(w,{children:[e&&(0,z.jsxs)(g,{children:[(0,z.jsx)(v,{children:`Source`}),(0,z.jsx)(v,{children:`Visitors`})]}),(0,z.jsx)(S,{children:t?.map(e=>{let t=!!r,i=e.source?e.source.toLowerCase().replace(/[^a-z0-9]/g,`-`):`direct`;return(0,z.jsxs)(T,{className:`group/row ${t?`cursor-pointer`:``}`,"data-testid":`source-row-${i}`,onClick:t?()=>r(e.source):void 0,children:[(0,z.jsx)(b,{style:{width:`${e.percentage?Math.round(e.percentage*100):0}%`}}),(0,z.jsx)(x,{className:`group-hover/datalist:max-w-[calc(100%-140px)]`,children:(0,z.jsx)(`div`,{className:`flex items-center space-x-4 overflow-hidden`,children:(0,z.jsx)(`div`,{className:`truncate font-medium`,children:e.linkUrl&&!r?(0,z.jsxs)(`a`,{className:`group/link flex items-center gap-2`,href:e.linkUrl,rel:`noreferrer`,target:`_blank`,children:[(0,z.jsx)(a,{defaultSourceIconUrl:n,displayName:e.displayName,iconSrc:e.iconSrc}),(0,z.jsx)(`span`,{className:`group-hover/link:underline`,children:e.displayName})]}):(0,z.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,z.jsx)(a,{defaultSourceIconUrl:n,displayName:e.displayName,iconSrc:e.iconSrc}),(0,z.jsx)(`span`,{children:e.displayName})]})})})}),(0,z.jsxs)(C,{children:[(0,z.jsx)(_,{children:s(e.visits)}),(0,z.jsx)(y,{children:c(e.percentage||0)})]})]},e.source)})})]}),H=({data:e,range:t=30,totalVisitors:n=0,siteUrl:a,siteIcon:o,defaultSourceIconUrl:s=B,tableOnly:c=!1,topSourcesLimit:g=10,onSourceClick:_})=>{let{isPostLoading:v}=L(),y=R.useMemo(()=>r({data:e,mode:`visits`,siteUrl:a,siteIcon:o,defaultSourceIconUrl:s}),[e,a,o,s]),b=R.useMemo(()=>i({processedData:y,totalVisitors:n,mode:`visits`}),[y,n]),x=b.slice(0,g),S=`Top sources`,C=`How readers found this post ${t&&` ${l(t)}`}`;if(c){let e=b.slice(0,g),n=b.length>g;return(0,z.jsxs)(`div`,{children:[(0,z.jsx)(V,{data:e,dataTableHeader:!1,defaultSourceIconUrl:s,range:t,onSourceClick:_}),n&&(0,z.jsx)(`div`,{className:`mt-4`,children:(0,z.jsxs)(k,{children:[(0,z.jsx)(O,{asChild:!0,children:(0,z.jsxs)(A,{className:`w-full`,size:`sm`,variant:`outline`,children:[`View all (`,b.length,`) `,(0,z.jsx)(D,{size:14})]})}),(0,z.jsxs)(j,{className:`overflow-y-auto pt-0 sm:max-w-[480px]`,children:[(0,z.jsxs)(E,{className:`sticky top-0 z-40 -mx-6 bg-surface-elevated/60 p-6 backdrop-blur`,children:[(0,z.jsx)(N,{children:S}),(0,z.jsx)(I,{children:C})]}),(0,z.jsx)(`div`,{className:`group/datalist`,children:(0,z.jsx)(V,{data:b,dataTableHeader:!0,defaultSourceIconUrl:s,range:t,onSourceClick:_})})]})]})})]})}return(0,z.jsxs)(h,{className:`group/datalist`,"data-testid":`top-sources-card`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-between p-6`,children:[(0,z.jsxs)(u,{className:`p-0`,children:[(0,z.jsx)(p,{children:S}),(0,z.jsx)(m,{children:C})]}),(0,z.jsx)(M,{className:`mr-2`,children:`Visitors`})]}),(0,z.jsxs)(f,{className:`overflow-hidden`,children:[(0,z.jsx)(`div`,{className:`h-[1px] w-full bg-border`}),v?(0,z.jsx)(F,{lines:5}):x.length>0?(0,z.jsx)(V,{data:x,dataTableHeader:!1,defaultSourceIconUrl:s,range:t,onSourceClick:_}):(0,z.jsx)(`div`,{className:`py-20 text-center text-sm text-gray-700`,children:`No sources data available.`})]}),b.length>10&&(0,z.jsx)(d,{children:(0,z.jsxs)(k,{children:[(0,z.jsx)(O,{asChild:!0,children:(0,z.jsxs)(A,{variant:`outline`,children:[`View all `,(0,z.jsx)(P,{})]})}),(0,z.jsxs)(j,{className:`overflow-y-auto pt-0 sm:max-w-[420px]`,children:[(0,z.jsxs)(E,{className:`sticky top-0 z-40 -mx-6 bg-surface-elevated/60 p-6 backdrop-blur`,children:[(0,z.jsx)(N,{children:S}),(0,z.jsx)(I,{children:C})]}),(0,z.jsx)(`div`,{className:`group/datalist`,children:(0,z.jsx)(V,{data:b,dataTableHeader:!0,defaultSourceIconUrl:s,range:t,onSourceClick:_})})]})]})})]})},U={visits:{dataKey:`visits`,label:`Visitors`,color:`var(--chart-blue)`,formatter:s},views:{dataKey:`pageviews`,label:`Pageviews`,color:`var(--chart-teal)`,formatter:s},"bounce-rate":{dataKey:`bounce_rate`,label:`Bounce rate`,color:`var(--chart-purple)`,formatter:c},duration:{dataKey:`avg_session_sec`,label:`Time on page`,color:`var(--chart-orange)`,formatter:o}},W=e=>{if(!e?.length)return{visits:`0`,views:`0`,bounceRate:`0%`,duration:`0s`};let t=e=>{let t=Number(e);return isNaN(t)?0:t},n=e.reduce((e,n)=>e+t(n.visits),0),r=e.reduce((e,n)=>e+t(n.pageviews),0),i=r=>n===0?0:e.reduce((e,i)=>e+t(i[r])*t(i.visits)/n,0),a=i(`bounce_rate`),l=i(`avg_session_sec`);return{visits:s(n),views:s(r),bounceRate:c(a),duration:o(l)}};export{U as n,H as r,W as t};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{c as r}from"./dist-Cb5RSHSg.js";import{o as i,s as a}from"./chart-helpers-DGxvWnBT.js";import{i as o,n as s,r as c,t as l}from"./tabs-BaWRfg8j.js";import{Ei as u,Pr as d}from"./index-DUXM0NlS.js";var f=e(t(),1),p=n(),m=f.forwardRef(({...e},t)=>(0,p.jsx)(l,{ref:t,variant:`kpis`,...e}));m.displayName=`KpiTabs`;var h=f.forwardRef((e,t)=>(0,p.jsx)(c,{ref:t,...e}));h.displayName=`KpiTabsList`;var g=f.forwardRef((e,t)=>(0,p.jsx)(s,{ref:t,...e}));g.displayName=`KpiTabsContent`;var _=({children:e,...t})=>(0,p.jsx)(o,{className:`h-auto`,...t,children:e}),v=({color:e,icon:t,label:n,value:o,diffDirection:s,diffValue:c,className:l,"data-testid":d})=>{let f=t?u[t]:null,m=(0,p.jsxs)(`span`,{className:`flex items-center gap-1.5 transition-all group-hover:text-foreground`,"data-type":`value`,children:[e&&(0,p.jsx)(`div`,{className:`ml-1 size-2 rounded-full opacity-50`,style:{backgroundColor:e}}),f&&(0,p.jsx)(f,{size:16,strokeWidth:1.5}),n]}),h=s&&s!==`hidden`?(0,p.jsx)(i,{className:`mt-0.5`,"data-testid":d?`${d}-diff`:void 0,direction:s,value:c??``}):null;return(0,p.jsx)(a,{className:r(`group`,l),label:m,size:`lg`,trailing:h,value:o,valueTestId:d})},y=f.forwardRef(({variant:e=`dropdown`,className:t,...n},i)=>(0,p.jsx)(d,{ref:i,className:r(`h-auto w-full rounded-none border-x-0 border-t-0 bg-transparent py-5 focus-visible:ring-0`,t),variant:e,...n}));y.displayName=`KpiDropdownButton`;export{_ as n,v as r,y as t};
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{o as i,s as a}from"./chart-helpers-DcO3k_vA.js";import{i as o,n as s,r as c,t as l}from"./tabs-l9c7FjzI.js";import{Ei as u,Pr as d}from"./index-BOJzlYiz.js";var f=e(t(),1),p=n(),m=f.forwardRef(({...e},t)=>(0,p.jsx)(l,{ref:t,variant:`kpis`,...e}));m.displayName=`KpiTabs`;var h=f.forwardRef((e,t)=>(0,p.jsx)(c,{ref:t,...e}));h.displayName=`KpiTabsList`;var g=f.forwardRef((e,t)=>(0,p.jsx)(s,{ref:t,...e}));g.displayName=`KpiTabsContent`;var _=({children:e,...t})=>(0,p.jsx)(o,{className:`h-auto`,...t,children:e}),v=({color:e,icon:t,label:n,value:o,diffDirection:s,diffValue:c,className:l,"data-testid":d})=>{let f=t?u[t]:null,m=(0,p.jsxs)(`span`,{className:`flex items-center gap-1.5 transition-all group-hover:text-foreground`,"data-type":`value`,children:[e&&(0,p.jsx)(`div`,{className:`ml-1 size-2 rounded-full opacity-50`,style:{backgroundColor:e}}),f&&(0,p.jsx)(f,{size:16,strokeWidth:1.5}),n]}),h=s&&s!==`hidden`?(0,p.jsx)(i,{className:`mt-0.5`,"data-testid":d?`${d}-diff`:void 0,direction:s,value:c??``}):null;return(0,p.jsx)(a,{className:r(`group`,l),label:m,size:`lg`,trailing:h,value:o,valueTestId:d})},y=f.forwardRef(({variant:e=`dropdown`,className:t,...n},i)=>(0,p.jsx)(d,{ref:i,className:r(`h-auto w-full rounded-none border-x-0 border-t-0 bg-transparent py-5 focus-visible:ring-0`,t),variant:e,...n}));y.displayName=`KpiDropdownButton`;export{_ as n,v as r,y as t};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{c as r,o as i}from"./dist-Cb5RSHSg.js";import{Zn as a}from"./index-DUXM0NlS.js";var o=e(t(),1),s=n(),c=i(`text-control leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70`),l=o.forwardRef(({className:e,...t},n)=>(0,s.jsx)(a,{ref:n,className:r(c(),e),...t}));l.displayName=a.displayName;export{l as t};
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,o as i}from"./dist-Cb5RSHSg.js";import{Zn as a}from"./index-BOJzlYiz.js";var o=e(t(),1),s=n(),c=i(`text-control leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70`),l=o.forwardRef(({className:e,...t},n)=>(0,s.jsx)(a,{ref:n,className:r(c(),e),...t}));l.displayName=a.displayName;export{l as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{S as r,h as i,m as a}from"./hooks-CJepWnbB.js";import{i as o,o as s,r as c,s as l,t as u}from"./command-BrhXIlDr.js";import{t as d}from"./multi-select-combobox-nhCff0_K.js";import{$n as f,Ia as p,Oi as m,Pr as h,br as g,ka as _,os as v,vr as y,xr as b}from"./index-BOJzlYiz.js";import{i as x}from"./filter-sources-FgqoUIL7.js";import{a as S,i as C,n as w,o as T,r as E}from"./labels-DqvSR6JF.js";var D=e(t(),1),O=n(),k=({label:e,onSave:t,onCancel:n,onDelete:i})=>{let[a,o]=(0,D.useState)(e.name),[s,c]=(0,D.useState)(!1),[l,u]=(0,D.useState)(``),[d,f]=(0,D.useState)(!1),[p,m]=(0,D.useState)(!1),g=(0,D.useRef)(null),_=d||p;(0,D.useEffect)(()=>{g.current?.focus(),g.current?.select()},[]);let v=async()=>{if(!a.trim()){u(`Name is required`);return}f(!0);try{await t(e.id,a.trim()),n()}catch(e){u(r(e,`Failed to save label, please try again.`)),f(!1)}},y=e=>{e.key===`Enter`?(e.preventDefault(),v()):e.key===`Escape`&&(e.preventDefault(),_||n())},b=async()=>{m(!0);try{await i(e.id)}catch{m(!1),c(!1)}};return(0,O.jsxs)(`div`,{className:`flex flex-col gap-2 py-1.5`,"data-edit-row":!0,children:[(0,O.jsx)(`input`,{ref:g,className:`h-7 w-full rounded border border-border bg-background px-2 text-sm outline-hidden focus:ring-1 focus:ring-ring disabled:opacity-50`,disabled:_,type:`text`,value:a,onChange:e=>{o(e.target.value),u(``)},onKeyDown:y}),l&&(0,O.jsx)(`span`,{className:`text-xs text-destructive`,children:l}),s?(0,O.jsxs)(`div`,{className:`flex items-center gap-1 text-sm`,children:[(0,O.jsx)(`span`,{className:`flex-1 font-semibold`,children:`Delete label?`}),(0,O.jsx)(h,{className:`h-6 px-2 text-xs`,disabled:_,size:`sm`,variant:`outline`,onClick:()=>c(!1),children:`Cancel`}),(0,O.jsx)(h,{className:`h-6 px-2 text-xs`,disabled:_,size:`sm`,variant:`destructive`,onClick:()=>void b(),children:p?`Deleting...`:`Delete`})]}):(0,O.jsxs)(`div`,{className:`flex items-center`,children:[(0,O.jsx)(h,{className:`h-6 gap-1 px-1.5 text-xs text-red hover:bg-red/5 hover:text-red`,disabled:_,size:`sm`,variant:`ghost`,onClick:()=>c(!0),children:`Delete`}),(0,O.jsxs)(`div`,{className:`ml-auto flex gap-1`,children:[(0,O.jsx)(h,{className:`h-6 px-2 text-xs`,disabled:_,size:`sm`,variant:`outline`,onClick:n,children:`Cancel`}),(0,O.jsx)(h,{className:`h-6 px-2 text-xs`,disabled:_,size:`sm`,onClick:()=>void v(),children:d?`Saving...`:`Save`})]})]})]})};function A(e,t){let n=t.trim().toLowerCase();return n?!e.some(e=>e.name.toLowerCase()===n):!1}var j=256,M=120,N=6,P=16,F=({label:e,isSelected:t,showEdit:n,onToggle:r,onEditClick:i})=>(0,O.jsxs)(s,{className:`group`,value:e.slug,onSelect:()=>r(e.slug),children:[(0,O.jsx)(`span`,{className:`flex-1 truncate`,children:e.name}),n?(0,O.jsxs)(`button`,{"aria-label":`Edit label ${e.name}`,className:`relative ml-1 flex size-5 shrink-0 items-center justify-center rounded text-muted-foreground hover:text-foreground`,type:`button`,onClick:e=>{e.stopPropagation(),e.preventDefault(),i()},children:[t&&(0,O.jsx)(v,{className:`absolute size-3 text-primary transition-opacity duration-150 group-hover:opacity-0`}),(0,O.jsx)(p,{className:`absolute size-3 translate-x-2 opacity-0 transition-all duration-150 ease-out group-hover:translate-x-0 group-hover:opacity-100`})]}):t&&(0,O.jsx)(v,{className:`size-4 shrink-0 text-primary`})]}),I=({labels:e,selectedSlugs:t,search:n,onToggle:r,onEdit:i,onDelete:a,onCreate:l,isCreating:u,onSearchClear:d})=>{let[f,p]=(0,D.useState)(null),m=n.trim().toLowerCase(),h=m?e.filter(e=>e.name.toLowerCase().includes(m)):e,g=!!l&&A(e,n),v=!!i,y=async()=>{if(l)try{await l(n.trim())&&d?.()}catch{}},b=async(e,t)=>{i&&await i(e,t)},x=async e=>{a&&(await a(e),p(null))};return(0,O.jsxs)(O.Fragment,{children:[!g&&h.length===0&&(0,O.jsx)(c,{children:`No labels found`}),h.length>0&&(0,O.jsx)(o,{className:`[&_[cmdk-group-heading]]:hidden`,children:h.map(e=>f===e.id?(0,O.jsx)(k,{label:e,onCancel:()=>p(null),onDelete:x,onSave:b},e.id):(0,O.jsx)(F,{isSelected:t.includes(e.slug),label:e,showEdit:v,onEditClick:()=>p(e.id),onToggle:r},e.id))}),g&&(0,O.jsx)(o,{className:`[&_[cmdk-group-heading]]:hidden`,children:(0,O.jsxs)(s,{disabled:u,onSelect:()=>void y(),children:[(0,O.jsx)(_,{className:`size-4`}),u?`Creating...`:`Create "${n.trim()}"`]})})]})},L=({labels:e,onToggle:t})=>(0,O.jsx)(O.Fragment,{children:e.map(e=>(0,O.jsxs)(f,{className:`cursor-pointer gap-1 pr-1`,variant:`outline`,onClick:n=>{n.stopPropagation(),t(e.slug)},children:[e.name,(0,O.jsx)(m,{className:`size-3`})]},e.id))}),R=({labels:e,optionSource:t,selectedSlugs:n,resolvedSelectedLabels:r,onToggle:i,onCreate:a,isCreating:o,onEdit:s,onDelete:c,placeholder:l})=>{let u=r||n.map(t=>e.find(e=>e.slug===t)).filter(e=>!!e);return(0,O.jsx)(z,{isCreating:o,labels:e,optionSource:t,placeholder:l,selectedLabels:u,selectedSlugs:n,onCreate:a,onDelete:c,onEdit:s,onToggle:i})},z=({labels:e,optionSource:t,selectedLabels:n,selectedSlugs:r,onToggle:i,onCreate:a,isCreating:o,onEdit:s,onDelete:c,placeholder:d=`Search labels...`})=>{let[f,p]=(0,D.useState)(!1),[m,h]=(0,D.useState)(``),g=(0,D.useRef)(null),_=(0,D.useRef)(null),[v,y]=(0,D.useState)(j);(0,D.useLayoutEffect)(()=>{if(!f||!_.current)return;let e=window.innerHeight-_.current.getBoundingClientRect().bottom-N-P;y(Math.max(M,Math.min(j,e)))},[f,r.length]);let b=(0,D.useCallback)(e=>{h(e),t.onSearchChange?.(e)},[t]);return(0,D.useEffect)(()=>{if(!f)return;let e=e=>{_.current&&!_.current.contains(e.target)&&p(!1)};return document.addEventListener(`pointerdown`,e),()=>document.removeEventListener(`pointerdown`,e)},[f]),(0,O.jsxs)(`div`,{ref:_,className:`relative`,children:[(0,O.jsxs)(`div`,{className:`flex min-h-9 w-full cursor-text flex-wrap items-center gap-1.5 rounded-md border border-control-border bg-surface-elevated px-3 py-1 text-control transition-colors focus-within:border-focus-ring focus-within:ring-2 focus-within:ring-focus-ring/25 dark:bg-transparent`,role:`combobox`,onClick:()=>{g.current?.focus(),p(!0)},children:[(0,O.jsx)(L,{labels:n,onToggle:i}),(0,O.jsx)(`input`,{ref:g,className:`min-w-[80px] flex-1 bg-transparent text-control outline-hidden placeholder:text-muted-foreground`,placeholder:n.length===0?d:``,value:m,onChange:e=>{b(e.target.value),f||p(!0)},onFocus:()=>p(!0),onKeyDown:e=>{e.key===`Backspace`&&!m&&r.length>0&&i(r[r.length-1]),e.key===`Escape`&&(p(!1),g.current?.blur())}})]}),f&&(0,O.jsx)(`div`,{className:`absolute top-full left-0 z-50 mt-1 w-full rounded-md border bg-white shadow-md dark:bg-gray-950`,children:t.isInitialLoad?(0,O.jsx)(`div`,{className:`flex items-center justify-center py-6 text-sm text-muted-foreground`,children:`Loading labels...`}):(0,O.jsx)(u,{shouldFilter:!1,children:(0,O.jsx)(l,{className:`overflow-y-auto`,style:{maxHeight:v},children:(0,O.jsx)(I,{isCreating:o,labels:e,search:m,selectedSlugs:r,onCreate:a,onDelete:c,onEdit:s,onSearchClear:()=>b(``),onToggle:i})})})})]})};function B({selectedSlugs:e,onSelectionChange:t,valueSource:n}){let r=x(),o=n??r,[s,c]=(0,D.useState)(``),l=o.useOptions({query:s,selectedValues:e}),u=(0,D.useMemo)(()=>l.options.flatMap(e=>{let t=e.metadata?.id;return typeof t!=`string`&&typeof t!=`number`?[]:[{id:String(t),name:e.label,slug:String(e.value),created_at:``,updated_at:``}]}),[l.options]),d={...l,shouldClientFilter:!1,onSearchChange:c},{mutateAsync:f}=w(),[p,m]=(0,D.useState)(!1),{mutateAsync:h}=C(),{mutateAsync:g}=E(),_=S(),v=T(),y=a(),b=(0,D.useRef)(e);b.current=e;let O=(0,D.useCallback)(e=>{let n=b.current;n.includes(e)?t(n.filter(t=>t!==e)):t([...n,e])},[t]),k=(0,D.useCallback)(e=>{let n=b.current;n.includes(e)||t([...n,e])},[t]),A=(0,D.useCallback)(async e=>{let t=e.trim();if(t){m(!0);try{let e=(await f({name:t}))?.labels?.[0];return e&&k(e.slug),e}catch(e){if(e instanceof i&&e.response?.status===422){let e;try{e=await _(t)}catch{}if(e)return v(),k(e.slug),e}throw y(e),e}finally{m(!1)}}},[f,_,y,v,k]),j=(0,D.useCallback)(async(e,n)=>{let r=n.trim();if(!r)return;let i=u.find(t=>t.id===e),a=(await h({id:e,name:r}))?.labels?.[0];if(i&&a&&i.slug!==a.slug){let e=b.current;e.includes(i.slug)&&t(e.map(e=>e===i.slug?a.slug:e))}},[h,u,t]),M=(0,D.useCallback)(async e=>{let n=u.find(t=>t.id===e);try{await g(e)}catch(e){if(e instanceof i&&e.response?.status===404)v();else throw y(e),e}if(n){let e=b.current;e.includes(n.slug)&&t(e.filter(e=>e!==n.slug))}},[g,y,v,u,t]);return{labels:u,optionSource:d,selectedSlugs:e,resolvedSelectedLabels:e.map(e=>u.find(t=>t.slug===e)).filter(e=>!!e),toggleLabel:O,createLabel:A,editLabel:j,deleteLabel:M,isCreating:p}}var V=({field:e,values:t,onChange:n})=>{let r=B({selectedSlugs:t,onSelectionChange:n,valueSource:e.valueSource}),i=(0,D.useRef)(null),[a,o]=(0,D.useState)(0),c=(0,D.useCallback)(()=>{let e=i.current,t=e?.parentElement;if(e&&t){let n=e.getBoundingClientRect(),r=t.getBoundingClientRect();o(Math.round(r.left-n.left))}},[]),l=`Select...`;r.resolvedSelectedLabels.length===1?l=r.resolvedSelectedLabels[0].name:r.resolvedSelectedLabels.length>1&&(l=`${r.resolvedSelectedLabels.length} labels`);let[u,f]=(0,D.useState)(null),m=(0,D.useCallback)(({option:e,isSelected:t,onSelect:n})=>{let i=e.metadata?.id,a=typeof i==`string`||typeof i==`number`?String(i):``;return u===a&&!t?(0,O.jsx)(k,{label:{id:a,name:e.label,slug:String(e.value),created_at:``,updated_at:``},onCancel:()=>f(null),onDelete:async e=>{await r.deleteLabel(e),f(null)},onSave:async(e,t)=>{await r.editLabel(e,t),f(null)}},a):(0,O.jsxs)(s,{className:`group`,value:e.label,onSelect:n,children:[(0,O.jsx)(`span`,{className:`flex-1 truncate`,children:e.label}),t?(0,O.jsx)(v,{className:`size-3 shrink-0 text-primary`}):(0,O.jsx)(`button`,{"aria-label":`Edit label ${e.label}`,className:`relative ml-1 flex size-5 shrink-0 items-center justify-center rounded text-muted-foreground hover:text-foreground`,type:`button`,onClick:e=>{e.stopPropagation(),e.preventDefault(),f(a)},children:(0,O.jsx)(p,{className:`absolute size-3 translate-x-2 opacity-0 transition-all duration-150 ease-out group-hover:translate-x-0 group-hover:opacity-100`})})]},String(e.value))},[u,r]),x=(0,D.useCallback)(({searchInput:e,clearSearch:t})=>A(r.labels,e)?(0,O.jsx)(`div`,{className:`border-t p-1`,children:(0,O.jsxs)(h,{className:`h-8 w-full justify-start gap-2 px-2 text-sm font-normal`,disabled:r.isCreating,variant:`ghost`,onClick:()=>void(async()=>{try{await r.createLabel(e.trim())&&t()}catch{}})(),children:[(0,O.jsx)(_,{className:`size-4`}),r.isCreating?`Creating...`:`Create "${e.trim()}"`]})}):null,[r]);return(0,O.jsxs)(y,{onOpenChange:e=>{e?c():r.optionSource.onSearchChange?.(``)},children:[(0,O.jsx)(b,{asChild:!0,children:(0,O.jsx)(`button`,{ref:i,className:`flex size-full items-center truncate text-left text-sm`,type:`button`,children:l})}),(0,O.jsx)(g,{align:`start`,alignOffset:a,className:`w-64 p-0`,children:r.optionSource.isInitialLoad?(0,O.jsx)(`div`,{className:`flex items-center justify-center py-6 text-sm text-muted-foreground`,children:`Loading labels...`}):(0,O.jsx)(d,{footer:x,i18n:{searchPlaceholder:`Search labels...`,noResultsFound:`No labels found`},optionSource:r.optionSource,renderItem:m,values:t,onChange:n})})]})};export{B as n,R as r,V as t};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{o as n}from"./framework-provider-CmtnPXIT.js";import{c as r,i,l as a,n as o,r as s,t as c}from"./hooks-D6EE7BIt.js";import{t as l}from"./build-CsiH26uS.js";var u=e(t(),1),d=`LabelsResponseType`;s({dataType:d,path:`/labels/`});var f=c({dataType:d,path:`/labels/`,defaultNextPageParams:(e,t)=>{if(e.meta?.pagination.next)return{...t,page:e.meta.pagination.next.toString()}},returnData:e=>{let{pages:t}=e,n=t.flatMap(e=>e.labels),r=t[t.length-1].meta;return{labels:n,meta:r,isEnd:r?r.pagination.pages===r.pagination.page:!0}}});i({dataType:d,path:e=>`/labels/slug/${e}/`});var p=o({method:`POST`,path:()=>`/labels/`,body:e=>({labels:[e]}),invalidateQueries:{dataType:d}}),m=()=>{let e=a();return(0,u.useCallback)(async t=>(await e(r(`/labels/`,{filter:`name:${l(t)}`,limit:`1`}))).labels?.[0],[e])},h=()=>{let e=n();return(0,u.useCallback)(()=>{e.invalidateQueries({queryKey:[d]})},[e])},g=o({method:`PUT`,path:e=>`/labels/${e.id}/`,body:e=>({labels:[e]}),invalidateQueries:{dataType:d}}),_=o({method:`DELETE`,path:e=>`/labels/${e}/`,invalidateQueries:{dataType:d}});export{m as a,g as i,p as n,h as o,_ as r,f as t};
1
+ import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{o as n}from"./framework-provider-CFLwK5uS.js";import{c as r,i,l as a,n as o,r as s,t as c}from"./hooks-CJepWnbB.js";import{t as l}from"./build-CsiH26uS.js";var u=e(t(),1),d=`LabelsResponseType`;s({dataType:d,path:`/labels/`});var f=c({dataType:d,path:`/labels/`,defaultNextPageParams:(e,t)=>{if(e.meta?.pagination.next)return{...t,page:e.meta.pagination.next.toString()}},returnData:e=>{let{pages:t}=e,n=t.flatMap(e=>e.labels),r=t[t.length-1].meta;return{labels:n,meta:r,isEnd:r?r.pagination.pages===r.pagination.page:!0}}});i({dataType:d,path:e=>`/labels/slug/${e}/`});var p=o({method:`POST`,path:()=>`/labels/`,body:e=>({labels:[e]}),invalidateQueries:{dataType:d}}),m=()=>{let e=a();return(0,u.useCallback)(async t=>(await e(r(`/labels/`,{filter:`name:${l(t)}`,limit:`1`}))).labels?.[0],[e])},h=()=>{let e=n();return(0,u.useCallback)(()=>{e.invalidateQueries({queryKey:[d]})},[e])},g=o({method:`PUT`,path:e=>`/labels/${e.id}/`,body:e=>({labels:[e]}),invalidateQueries:{dataType:d}}),_=o({method:`DELETE`,path:e=>`/labels/${e}/`,invalidateQueries:{dataType:d}});export{m as a,g as i,p as n,h as o,_ as r,f as t};
@@ -0,0 +1 @@
1
+ import"./index-BOJzlYiz.js";
@@ -0,0 +1,20 @@
1
+ import{a as e,n as t,r as n,t as r}from"./rolldown-runtime-DAXXjFlN.js";import{A as i,C as a,_ as o,a as s,c,i as l,j as u,m as d,n as f,r as p,s as m,t as h,v as g}from"./_baseAssignValue-C_vooEQc.js";import{t as ee}from"./luxon-D1RVjjpq.js";var _=r(((e,t)=>{function n(e,t){for(var n=-1,r=e==null?0:e.length;++n<r&&t(e[n],n,e)!==!1;);return e}t.exports=n})),v=r(((e,t)=>{var n=h(),r=a(),i=Object.prototype.hasOwnProperty;function o(e,t,a){var o=e[t];(!(i.call(e,t)&&r(o,a))||a===void 0&&!(t in e))&&n(e,t,a)}t.exports=o})),y=r(((e,t)=>{var n=v(),r=h();function i(e,t,i,a){var o=!i;i||={};for(var s=-1,c=t.length;++s<c;){var l=t[s],u=a?a(i[l],e[l],l,i,e):void 0;u===void 0&&(u=e[l]),o?r(i,l,u):n(i,l,u)}return i}t.exports=i})),b=r(((e,t)=>{var n=o(),r=d();function i(e){return r(n(e).toLowerCase())}t.exports=i})),x=r(((e,t)=>{function n(e,t,n,r){var i=-1,a=e==null?0:e.length;for(r&&a&&(n=e[++i]);++i<a;)n=t(n,e[i],i,e);return n}t.exports=n})),S=r(((e,t)=>{function n(e){return function(t){return e?.[t]}}t.exports=n})),C=r(((e,t)=>{t.exports=S()({À:`A`,Á:`A`,Â:`A`,Ã:`A`,Ä:`A`,Å:`A`,à:`a`,á:`a`,â:`a`,ã:`a`,ä:`a`,å:`a`,Ç:`C`,ç:`c`,Ð:`D`,ð:`d`,È:`E`,É:`E`,Ê:`E`,Ë:`E`,è:`e`,é:`e`,ê:`e`,ë:`e`,Ì:`I`,Í:`I`,Î:`I`,Ï:`I`,ì:`i`,í:`i`,î:`i`,ï:`i`,Ñ:`N`,ñ:`n`,Ò:`O`,Ó:`O`,Ô:`O`,Õ:`O`,Ö:`O`,Ø:`O`,ò:`o`,ó:`o`,ô:`o`,õ:`o`,ö:`o`,ø:`o`,Ù:`U`,Ú:`U`,Û:`U`,Ü:`U`,ù:`u`,ú:`u`,û:`u`,ü:`u`,Ý:`Y`,ý:`y`,ÿ:`y`,Æ:`Ae`,æ:`ae`,Þ:`Th`,þ:`th`,ß:`ss`,Ā:`A`,Ă:`A`,Ą:`A`,ā:`a`,ă:`a`,ą:`a`,Ć:`C`,Ĉ:`C`,Ċ:`C`,Č:`C`,ć:`c`,ĉ:`c`,ċ:`c`,č:`c`,Ď:`D`,Đ:`D`,ď:`d`,đ:`d`,Ē:`E`,Ĕ:`E`,Ė:`E`,Ę:`E`,Ě:`E`,ē:`e`,ĕ:`e`,ė:`e`,ę:`e`,ě:`e`,Ĝ:`G`,Ğ:`G`,Ġ:`G`,Ģ:`G`,ĝ:`g`,ğ:`g`,ġ:`g`,ģ:`g`,Ĥ:`H`,Ħ:`H`,ĥ:`h`,ħ:`h`,Ĩ:`I`,Ī:`I`,Ĭ:`I`,Į:`I`,İ:`I`,ĩ:`i`,ī:`i`,ĭ:`i`,į:`i`,ı:`i`,Ĵ:`J`,ĵ:`j`,Ķ:`K`,ķ:`k`,ĸ:`k`,Ĺ:`L`,Ļ:`L`,Ľ:`L`,Ŀ:`L`,Ł:`L`,ĺ:`l`,ļ:`l`,ľ:`l`,ŀ:`l`,ł:`l`,Ń:`N`,Ņ:`N`,Ň:`N`,Ŋ:`N`,ń:`n`,ņ:`n`,ň:`n`,ŋ:`n`,Ō:`O`,Ŏ:`O`,Ő:`O`,ō:`o`,ŏ:`o`,ő:`o`,Ŕ:`R`,Ŗ:`R`,Ř:`R`,ŕ:`r`,ŗ:`r`,ř:`r`,Ś:`S`,Ŝ:`S`,Ş:`S`,Š:`S`,ś:`s`,ŝ:`s`,ş:`s`,š:`s`,Ţ:`T`,Ť:`T`,Ŧ:`T`,ţ:`t`,ť:`t`,ŧ:`t`,Ũ:`U`,Ū:`U`,Ŭ:`U`,Ů:`U`,Ű:`U`,Ų:`U`,ũ:`u`,ū:`u`,ŭ:`u`,ů:`u`,ű:`u`,ų:`u`,Ŵ:`W`,ŵ:`w`,Ŷ:`Y`,ŷ:`y`,Ÿ:`Y`,Ź:`Z`,Ż:`Z`,Ž:`Z`,ź:`z`,ż:`z`,ž:`z`,IJ:`IJ`,ij:`ij`,Œ:`Oe`,œ:`oe`,ʼn:`'n`,ſ:`s`})})),w=r(((e,t)=>{var n=C(),r=o(),i=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,a=RegExp(`[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]`,`g`);function s(e){return e=r(e),e&&e.replace(i,n).replace(a,``)}t.exports=s})),T=r(((e,t)=>{var n=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function r(e){return e.match(n)||[]}t.exports=r})),E=r(((e,t)=>{var n=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function r(e){return n.test(e)}t.exports=r})),D=r(((e,t)=>{var n=`\\ud800-\\udfff`,r=`\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff`,i=`\\u2700-\\u27bf`,a=`a-z\\xdf-\\xf6\\xf8-\\xff`,o=`\\xac\\xb1\\xd7\\xf7`,s=`\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf`,c=`\\u2000-\\u206f`,l=` \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000`,u=`A-Z\\xc0-\\xd6\\xd8-\\xde`,d=`\\ufe0e\\ufe0f`,f=o+s+c+l,p=`['’]`,m=`[`+f+`]`,h=`[`+r+`]`,g=`\\d+`,ee=`[`+i+`]`,_=`[`+a+`]`,v=`[^`+n+f+g+i+a+u+`]`,y=`(?:`+h+`|\\ud83c[\\udffb-\\udfff])`,b=`[^`+n+`]`,x=`(?:\\ud83c[\\udde6-\\uddff]){2}`,S=`[\\ud800-\\udbff][\\udc00-\\udfff]`,C=`[`+u+`]`,w=`\\u200d`,T=`(?:`+_+`|`+v+`)`,E=`(?:`+C+`|`+v+`)`,D=`(?:`+p+`(?:d|ll|m|re|s|t|ve))?`,O=`(?:`+p+`(?:D|LL|M|RE|S|T|VE))?`,k=y+`?`,A=`[`+d+`]?`,j=`(?:`+w+`(?:`+[b,x,S].join(`|`)+`)`+A+k+`)*`,M=`\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])`,N=`\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])`,P=A+k+j,F=`(?:`+[ee,x,S].join(`|`)+`)`+P,I=RegExp([C+`?`+_+`+`+D+`(?=`+[m,C,`$`].join(`|`)+`)`,E+`+`+O+`(?=`+[m,C+T,`$`].join(`|`)+`)`,C+`?`+T+`+`+D,C+`+`+O,N,M,g,F].join(`|`),`g`);function te(e){return e.match(I)||[]}t.exports=te})),O=r(((e,t)=>{var n=T(),r=E(),i=o(),a=D();function s(e,t,o){return e=i(e),t=o?void 0:t,t===void 0?r(e)?a(e):n(e):e.match(t)||[]}t.exports=s})),k=r(((e,t)=>{var n=x(),r=w(),i=O(),a=RegExp(`['’]`,`g`);function o(e){return function(t){return n(i(r(t).replace(a,``)),e,``)}}t.exports=o})),A=r(((e,t)=>{var n=b();t.exports=k()(function(e,t,r){return t=t.toLowerCase(),e+(r?n(t):t)})})),j=r(((e,t)=>{var n=Object.prototype.hasOwnProperty;function r(e,t){return e!=null&&n.call(e,t)}t.exports=r})),M=r(((e,t)=>{var n=j(),r=m();function i(e,t){return e!=null&&r(e,t,n)}t.exports=i}));function N(){let e=new Uint8Array(16);return F.getRandomValues(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128,I[e[0]]+I[e[1]]+I[e[2]]+I[e[3]]+`-`+I[e[4]]+I[e[5]]+`-`+I[e[6]]+I[e[7]]+`-`+I[e[8]]+I[e[9]]+`-`+I[e[10]]+I[e[11]]+I[e[12]]+I[e[13]]+I[e[14]]+I[e[15]]}function P(){if(F?.randomUUID)return F.randomUUID();if(F?.getRandomValues)return N();throw Error(`No secure random number generator available to generate a UUID`)}var F,I,te=t((()=>{F=globalThis.crypto,I=[];for(let e=0;e<256;e+=1)I.push((e+256).toString(16).slice(1))}));function ne(e,t){let n=(e.stack?.split(/\n/g)||[])[1],[r,...i]=t.stack?.split(/\n/g)||[];return[r,n,...i].join(`
2
+ `)}var re=t((()=>{})),ie,ae,L,R,oe=t((()=>{te(),re(),ie=Object.defineProperty,ae=(e,t,n)=>t in e?ie(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,L=(e,t,n)=>ae(e,typeof t==`symbol`?t:t+``,n),R=class extends Error{constructor(e={}){super(),L(this,`statusCode`),L(this,`errorType`),L(this,`level`),L(this,`id`),L(this,`context`),L(this,`help`),L(this,`errorDetails`),L(this,`code`),L(this,`property`),L(this,`redirect`),L(this,`hideStack`),this.statusCode=500,this.errorType=`InternalServerError`,this.level=`normal`,this.message=`The server has encountered an error.`,this.id=P(),this.id=e.id||this.id,this.statusCode=e.statusCode||this.statusCode,this.level=e.level||this.level,this.context=e.context,this.help=e.help,this.errorType=this.name=e.errorType||this.errorType,this.errorDetails=e.errorDetails,this.code=e.code||null,this.property=e.property||null,this.redirect=e.redirect||null,this.message=e.message||this.message,this.hideStack=e.hideStack||!1,e.err&&(typeof e.err==`string`&&(e.err=Error(e.err)),Object.getOwnPropertyNames(e.err).forEach(t=>{if([`errorType`,`name`,`statusCode`,`message`,`level`].indexOf(t)===-1){if(t===`code`){this[t]=this[t]||e.err[t];return}if(t===`stack`&&!this.hideStack){this[t]=ne(this,e.err);return}this[t]=e.err[t]||this[t]}}))}}})),se=n({BadRequestError:()=>U,ConflictError:()=>Ce,DataExportError:()=>fe,DataImportError:()=>pe,DisabledFeatureError:()=>ge,EmailError:()=>me,HelperWarning:()=>ye,HostLimitError:()=>ve,IncorrectUsageError:()=>V,InternalServerError:()=>B,MaintenanceError:()=>Y,MethodNotAllowedError:()=>X,MigrationError:()=>we,NoContentError:()=>Se,NoPermissionError:()=>G,NotFoundError:()=>H,PasswordResetRequiredError:()=>be,RangeNotSatisfiableError:()=>ce,RequestEntityTooLargeError:()=>le,RequestNotAcceptableError:()=>Z,ThemeValidationError:()=>he,TokenRevocationError:()=>ue,TooManyRequestsError:()=>J,UnauthorizedError:()=>W,UnhandledJobError:()=>xe,UnsupportedMediaTypeError:()=>q,UpdateCollisionError:()=>_e,ValidationError:()=>K,VersionMismatchError:()=>de}),z,B,V,H,U,W,G,K,q,J,Y,X,Z,ce,le,ue,de,fe,pe,me,he,ge,_e,ve,ye,be,xe,Se,Ce,we,Te=t((()=>{oe(),z=(e,t)=>{let n={...t};return Object.keys(e).forEach(t=>{e[t]!==void 0&&(n[t]=e[t])}),n},B=class extends R{constructor(e={}){super(z(e,{statusCode:500,level:`critical`,errorType:`InternalServerError`,message:`The server has encountered an error.`}))}},V=class extends R{constructor(e={}){super(z(e,{statusCode:400,level:`critical`,errorType:`IncorrectUsageError`,message:`We detected a misuse. Please read the stack trace.`}))}},H=class extends R{constructor(e={}){super(z(e,{statusCode:404,errorType:`NotFoundError`,message:`Resource could not be found.`,hideStack:!0}))}},U=class extends R{constructor(e={}){super(z(e,{statusCode:400,errorType:`BadRequestError`,message:`The request could not be understood.`}))}},W=class extends R{constructor(e={}){super(z(e,{statusCode:401,errorType:`UnauthorizedError`,message:`You are not authorised to make this request.`}))}},G=class extends R{constructor(e={}){super(z(e,{statusCode:403,errorType:`NoPermissionError`,message:`You do not have permission to perform this request.`}))}},K=class extends R{constructor(e={}){super(z(e,{statusCode:422,errorType:`ValidationError`,message:`The request failed validation.`}))}},q=class extends R{constructor(e={}){super(z(e,{statusCode:415,errorType:`UnsupportedMediaTypeError`,message:`The media in the request is not supported by the server.`}))}},J=class extends R{constructor(e={}){super(z(e,{statusCode:429,errorType:`TooManyRequestsError`,message:`Server has received too many similar requests in a short space of time.`}))}},Y=class extends R{constructor(e={}){super(z(e,{statusCode:503,errorType:`MaintenanceError`,message:`The server is temporarily down for maintenance.`}))}},X=class extends R{constructor(e={}){super(z(e,{statusCode:405,errorType:`MethodNotAllowedError`,message:`Method not allowed for resource.`}))}},Z=class extends R{constructor(e={}){super(z(e,{statusCode:406,errorType:`RequestNotAcceptableError`,message:`Request not acceptable for provided Accept-Version header.`,hideStack:!0}))}},ce=class extends R{constructor(e={}){super(z(e,{statusCode:416,errorType:`RangeNotSatisfiableError`,message:`Range not satisfiable for provided Range header.`,hideStack:!0}))}},le=class extends R{constructor(e={}){super(z(e,{statusCode:413,errorType:`RequestEntityTooLargeError`,message:`Request was too big for the server to handle.`}))}},ue=class extends R{constructor(e={}){super(z(e,{statusCode:503,errorType:`TokenRevocationError`,message:`Token is no longer available.`}))}},de=class extends R{constructor(e={}){super(z(e,{statusCode:400,errorType:`VersionMismatchError`,message:`Requested version does not match server version.`}))}},fe=class extends R{constructor(e={}){super(z(e,{statusCode:500,errorType:`DataExportError`,message:`The server encountered an error whilst exporting data.`}))}},pe=class extends R{constructor(e={}){super(z(e,{statusCode:500,errorType:`DataImportError`,message:`The server encountered an error whilst importing data.`}))}},me=class extends R{constructor(e={}){super(z(e,{statusCode:500,errorType:`EmailError`,message:`The server encountered an error whilst sending email.`}))}},he=class extends R{constructor(e={}){super(z(e,{statusCode:422,errorType:`ThemeValidationError`,message:`The theme has a validation error.`,errorDetails:{}}))}},ge=class extends R{constructor(e={}){super(z(e,{statusCode:409,errorType:`DisabledFeatureError`,message:`Unable to complete the request, this feature is disabled.`}))}},_e=class extends R{constructor(e={}){super(z(e,{statusCode:409,errorType:`UpdateCollisionError`,message:`Unable to complete the request, there was a conflict.`}))}},ve=class extends R{constructor(e={}){super(z(e,{errorType:`HostLimitError`,hideStack:!0,statusCode:403,message:`Unable to complete the request, this resource is limited.`}))}},ye=class extends R{constructor(e={}){super(z(e,{errorType:`HelperWarning`,hideStack:!0,statusCode:400,message:`A theme helper has done something unexpected.`}))}},be=class extends R{constructor(e={}){super(z(e,{errorType:`PasswordResetRequiredError`,statusCode:401,message:`For security, you need to create a new password. An email has been sent to you with instructions!`}))}},xe=class extends R{constructor(e={}){super(z(e,{errorType:`UnhandledJobError`,message:`Processed job threw an unhandled error`,level:`critical`}))}},Se=class extends R{constructor(e={}){super(z(e,{errorType:`NoContentError`,statusCode:204,hideStack:!0}))}},Ce=class extends R{constructor(e={}){super(z(e,{errorType:`ConflictError`,statusCode:409,message:`The server has encountered an conflict.`}))}},we=class extends R{constructor(e={}){super(z(e,{errorType:`MigrationError`,message:`An error has occurred applying a database migration.`,level:`critical`}))}}}));function Q(e){if(typeof e!=`object`||!e)return e;if(e instanceof Error){let t=Object.create(Object.getPrototypeOf(e));for(let n of Object.getOwnPropertyNames(e))t[n]=Q(e[n]);return t}if(Array.isArray(e))return e.map(Q);let t={};for(let n of Object.keys(e))t[n]=Q(e[n]);return t}function Ee(e,t){t||={format:`jsonapi`};let n={};try{n=t.format===`jsonapi`?$.JSONAPISerialize(e):$.OAuthSerialize(e)}catch{n.message=`Something went wrong.`}return n}function De(e){let t={};return t=e.errors?$.JSONAPIDeserialize(e):$.OAuthDeserialize(e),t}function Oe(e){let t=e.stack?.split(/\n/)||[];`hideStack`in e&&e.hideStack?t.splice(1,t.length-1):t.splice(1,0,`Stack Trace:`),`help`in e&&e.help&&t.splice(1,0,`${e.help}`),`context`in e&&e.context&&t.splice(1,0,`${e.context}`);let n=Q(e);return n.stack=t.join(`
3
+ `),n}function ke(e){let t=R.name;return function e(n){return!n||!n.name?!1:n.name===t||n.name===`IgnitionError`?!0:e(Object.getPrototypeOf(n))}(e.constructor)}var Ae,$,je=t((()=>{oe(),Te(),Ae={...se,GhostError:R},$={serialize(e){try{return{id:e.id,status:e.statusCode,code:e.code||e.errorType,title:e.name,detail:e.message,meta:{context:e.context,help:e.help,errorDetails:e.errorDetails,level:e.level,errorType:e.errorType}}}catch{return{detail:`Something went wrong.`}}},deserialize(e){return{id:e.id,message:e.detail||e.error_description||e.message,statusCode:e.status,code:e.code||e.error,level:e.meta&&e.meta.level,help:e.meta&&e.meta.help,context:e.meta&&e.meta.context}},OAuthSerialize(e){let t={[G.name]:`access_denied`,[Y.name]:`temporarily_unavailable`,[U.name]:`invalid_request`,[K.name]:`invalid_request`,default:`server_error`},{detail:n,code:r,...i}=$.serialize(e);return{error:e.code||t[e.name]||`server_error`,error_description:e.message,...i}},OAuthDeserialize(e){try{return new Ae[e.title||e.name||B.name]($.deserialize(e))}catch{return new B({errorType:e.title||e.name,...$.deserialize(e)})}},JSONAPISerialize(e){let t={errors:[$.serialize(e)]};return t.errors[0].source={},e.property&&(t.errors[0].source.pointer=`/data/attributes/`+e.property),t},JSONAPIDeserialize(e){e=e.errors&&e.errors[0]||{};let t;try{t=new Ae[e.title||e.name||B.name]($.deserialize(e))}catch{t=new B({errorType:e.title||e.name,...$.deserialize(e)})}return e.source&&e.source.pointer&&(t.property=e.source.pointer.split(`/`)[3]),t}}})),Me=n({BadRequestError:()=>U,ConflictError:()=>Ce,DataExportError:()=>fe,DataImportError:()=>pe,DisabledFeatureError:()=>ge,EmailError:()=>me,HelperWarning:()=>ye,HostLimitError:()=>ve,IncorrectUsageError:()=>V,InternalServerError:()=>B,MaintenanceError:()=>Y,MethodNotAllowedError:()=>X,MigrationError:()=>we,NoContentError:()=>Se,NoPermissionError:()=>G,NotFoundError:()=>H,PasswordResetRequiredError:()=>be,RangeNotSatisfiableError:()=>ce,RequestEntityTooLargeError:()=>le,RequestNotAcceptableError:()=>Z,ThemeValidationError:()=>he,TokenRevocationError:()=>ue,TooManyRequestsError:()=>J,UnauthorizedError:()=>W,UnhandledJobError:()=>xe,UnsupportedMediaTypeError:()=>q,UpdateCollisionError:()=>_e,ValidationError:()=>K,VersionMismatchError:()=>de,default:()=>Ne,utils:()=>Pe}),Ne,Pe,Fe=t((()=>{Te(),je(),Te(),Ne=se,Pe={serialize:Ee,deserialize:De,isGhostError:ke,prepareStackForUser:Oe}})),Ie=r(((e,t)=>{t.exports=k()(function(e,t,n){return e+(n?` `:``)+t.toLowerCase()})})),Le=r(((e,t)=>{var n=l(),r=p();function i(e){return n(function(t,n){var i=-1,a=n.length,o=a>1?n[a-1]:void 0,s=a>2?n[2]:void 0;for(o=e.length>3&&typeof o==`function`?(a--,o):void 0,s&&r(n[0],n[1],s)&&(o=a<3?void 0:o,a=1),t=Object(t);++i<a;){var c=n[i];c&&e(t,c,i,o)}return t})}t.exports=i})),Re=r(((e,t)=>{var n=y(),r=Le(),i=c();t.exports=r(function(e,t,r,a){n(t,i(t),e,a)})})),ze=r(((e,t)=>{var n=u(),r=i(),a=f(),o=`[object DOMException]`,s=`[object Error]`;function c(e){if(!r(e))return!1;var t=n(e);return t==s||t==o||typeof e.message==`string`&&typeof e.name==`string`&&!a(e)}t.exports=c})),Be=r(((e,t)=>{var n=s(),r=l(),i=ze();t.exports=r(function(e,t){try{return n(e,void 0,t)}catch(e){return i(e)?e:Error(e)}})})),Ve=r(((e,t)=>{var n=g();function r(e,t){return n(t,function(t){return e[t]})}t.exports=r})),He=r(((e,t)=>{var n=a(),r=Object.prototype,i=r.hasOwnProperty;function o(e,t,a,o){return e===void 0||n(e,r[a])&&!i.call(o,a)?t:e}t.exports=o})),Ue=r(((e,t)=>{var n={"\\":`\\`,"'":`'`,"\n":`n`,"\r":`r`,"\u2028":`u2028`,"\u2029":`u2029`};function r(e){return`\\`+n[e]}t.exports=r})),We=r(((e,t)=>{t.exports=/<%=([\s\S]+?)%>/g})),Ge=r(((e,t)=>{t.exports=S()({"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&#39;`})})),Ke=r(((e,t)=>{var n=Ge(),r=o(),i=/[&<>"']/g,a=RegExp(i.source);function s(e){return e=r(e),e&&a.test(e)?e.replace(i,n):e}t.exports=s})),qe=r(((e,t)=>{t.exports=/<%-([\s\S]+?)%>/g})),Je=r(((e,t)=>{t.exports=/<%([\s\S]+?)%>/g})),Ye=r(((e,t)=>{var n=Ke();t.exports={escape:qe(),evaluate:Je(),interpolate:We(),variable:``,imports:{_:{escape:n}}}})),Xe=r(((e,t)=>{var n=_(),r=Re(),i=Be(),a=Ve(),s=He(),l=Ue(),u=ze(),d=p(),f=c(),m=We(),h=Ye(),g=o(),ee="Invalid `variable` option passed into `_.template`",v="Invalid `imports` option passed into `_.template`",y=/\b__p \+= '';/g,b=/\b(__p \+=) '' \+/g,x=/(__e\(.*?\)|\b__t\)) \+\n'';/g,S=/[()=,{}\[\]\/\s]/,C=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,w=/($^)/,T=/['\n\r\u2028\u2029\\]/g,E=Object.prototype.hasOwnProperty;function D(e,t,o){var c=h.imports._.templateSettings||h;o&&d(e,t,o)&&(t=void 0),e=g(e),t=r({},t,c,s);var p=r({},t.imports,c.imports,s),_=f(p),D=a(p,_);n(_,function(e){if(S.test(e))throw Error(v)});var O,k,A=0,j=t.interpolate||w,M=`__p += '`,N=RegExp((t.escape||w).source+`|`+j.source+`|`+(j===m?C:w).source+`|`+(t.evaluate||w).source+`|$`,`g`),P=E.call(t,`sourceURL`)?`//# sourceURL=`+(t.sourceURL+``).replace(/\s/g,` `)+`
4
+ `:``;e.replace(N,function(t,n,r,i,a,o){return r||=i,M+=e.slice(A,o).replace(T,l),n&&(O=!0,M+=`' +
5
+ __e(`+n+`) +
6
+ '`),a&&(k=!0,M+=`';
7
+ `+a+`;
8
+ __p += '`),r&&(M+=`' +
9
+ ((__t = (`+r+`)) == null ? '' : __t) +
10
+ '`),A=o+t.length,t}),M+=`';
11
+ `;var F=E.call(t,`variable`)&&t.variable;if(!F)M=`with (obj) {
12
+ `+M+`
13
+ }
14
+ `;else if(S.test(F))throw Error(ee);M=(k?M.replace(y,``):M).replace(b,`$1`).replace(x,`$1;`),M=`function(`+(F||`obj`)+`) {
15
+ `+(F?``:`obj || (obj = {});
16
+ `)+`var __t, __p = ''`+(O?`, __e = _.escape`:``)+(k?`, __j = Array.prototype.join;
17
+ function print() { __p += __j.call(arguments, '') }
18
+ `:`;
19
+ `)+M+`return __p
20
+ }`;var I=i(function(){return Function(_,P+`return `+M).apply(void 0,D)});if(I.source=M,u(I))throw I;return I}t.exports=D})),Ze=r(((t,n)=>{var{DateTime:r}=ee(),{IncorrectUsageError:i}=(Fe(),e(Me)),a={invalidInterval:`Invalid interval specified. Only "month" value is accepted.`};n.exports={lastPeriodStart:(e,t)=>{if(t===`month`){let t=r.fromISO(e,{zone:`UTC`}),n=r.now().setZone(`UTC`),i=Math.floor(n.diff(t,`months`).months);return t.plus({months:i}).toISO()}throw new i({message:a.invalidInterval})},SUPPORTED_INTERVALS:[`month`]}})),Qe=r(((e,t)=>{var n=Ie(),r=Xe(),{lastPeriodStart:i,SUPPORTED_INTERVALS:a}=Ze(),o=/{{([\s\S]+?)}}/g,s=class{constructor({name:e,error:t,helpLink:n,db:r,errors:i}){this.name=e,this.error=t,this.helpLink=n,this.db=r,this.errors=i}generateError(){let e={errorDetails:{name:this.name}};return this.helpLink&&(e.help=this.helpLink),e}};t.exports={MaxLimit:class extends s{constructor({name:e,config:t,helpLink:r,db:i,errors:a}){if(super({name:e,error:t.error||``,helpLink:r,db:i,errors:a}),t.max===void 0)throw new a.IncorrectUsageError({message:`Attempted to setup a max limit without a limit`});if(!t.currentCountQuery)throw new a.IncorrectUsageError({message:`Attempted to setup a max limit without a current count query`});this.currentCountQueryFn=t.currentCountQuery,this.max=t.max,this.formatter=t.formatter,this.fallbackMessage=`This action would exceed the ${n(this.name)} limit on your current plan.`}generateError(e){let t=super.generateError();if(t.message=this.fallbackMessage,this.error){let n=this.formatter||Intl.NumberFormat().format;try{t.message=r(this.error,{interpolate:o})({max:n(this.max),count:n(e),name:this.name})}catch{t.message=this.fallbackMessage}}return t.errorDetails.limit=this.max,t.errorDetails.total=e,new this.errors.HostLimitError(t)}async currentCountQuery(e={}){return await this.currentCountQueryFn(e.transacting??this.db?.knex)}async errorIfWouldGoOverLimit(e={}){let{max:t,addedCount:n=1}=e,r=await this.currentCountQuery(e);if(r+n>(t||this.max))throw this.generateError(r)}async errorIfIsOverLimit(e={}){let t=e.currentCount||await this.currentCountQuery(e);if(t>(e.max||this.max))throw this.generateError(t)}},MaxPeriodicLimit:class extends s{constructor({name:e,config:t,helpLink:r,db:i,errors:o}){if(super({name:e,error:t.error||``,helpLink:r,db:i,errors:o}),t.maxPeriodic===void 0)throw new o.IncorrectUsageError({message:`Attempted to setup a periodic max limit without a limit`});if(!t.currentCountQuery)throw new o.IncorrectUsageError({message:`Attempted to setup a periodic max limit without a current count query`});if(!t.interval)throw new o.IncorrectUsageError({message:`Attempted to setup a periodic max limit without an interval`});if(!a.includes(t.interval))throw new o.IncorrectUsageError({message:`Attempted to setup a periodic max limit without unsupported interval. Please specify one of: ${a}`});if(!t.startDate)throw new o.IncorrectUsageError({message:`Attempted to setup a periodic max limit without a start date`});this.currentCountQueryFn=t.currentCountQuery,this.maxPeriodic=t.maxPeriodic,this.interval=t.interval,this.startDate=t.startDate,this.fallbackMessage=`This action would exceed the ${n(this.name)} limit on your current plan.`}generateError(e){let t=super.generateError();if(t.message=this.fallbackMessage,this.error)try{t.message=r(this.error,{interpolate:o})({max:Intl.NumberFormat().format(this.maxPeriodic),count:Intl.NumberFormat().format(e),name:this.name})}catch{t.message=this.fallbackMessage}return t.errorDetails.limit=this.maxPeriodic,t.errorDetails.total=e,new this.errors.HostLimitError(t)}async currentCountQuery(e={}){let t=i(this.startDate,this.interval);return await this.currentCountQueryFn(e.transacting?e.transacting:this.db?this.db.knex:void 0,t)}async errorIfWouldGoOverLimit(e={}){let{max:t,addedCount:n=1}=e,r=await this.currentCountQuery(e);if(r+n>(t||this.maxPeriodic))throw this.generateError(r)}async errorIfIsOverLimit(e={}){let{max:t}=e,n=await this.currentCountQuery(e);if(n>(t||this.maxPeriodic))throw this.generateError(n)}},FlagLimit:class extends s{constructor({name:e,config:t,helpLink:r,db:i,errors:a}){super({name:e,error:t.error||``,helpLink:r,db:i,errors:a});let o=n(e.replace(/^limit/,``));this.disabled=t.disabled,this.fallbackMessage=`Your plan does not support ${o}. Please upgrade to enable ${o}.`}generateError(){let e=super.generateError();return this.error?e.message=this.error:e.message=this.fallbackMessage,new this.errors.HostLimitError(e)}async errorIfWouldGoOverLimit(){if(this.disabled)throw this.generateError()}async errorIfIsOverLimit(){}isDisabled(){return!!this.disabled}},AllowlistLimit:class extends s{constructor({name:e,config:t,helpLink:r,errors:i}){if(super({name:e,error:t.error||``,helpLink:r,errors:i}),!t.allowlist||!t.allowlist.length)throw new this.errors.IncorrectUsageError({message:`Attempted to setup an allowlist limit without an allowlist`});this.allowlist=t.allowlist,this.fallbackMessage=`This action would exceed the ${n(this.name)} limit on your current plan.`}generateError(){let e=super.generateError();return this.error?e.message=this.error:e.message=this.fallbackMessage,new this.errors.HostLimitError(e)}async errorIfWouldGoOverLimit(e){if(!e||!e.value)throw new this.errors.IncorrectUsageError({message:`Attempted to check an allowlist limit without a value`});if(!this.allowlist.includes(e.value))throw this.generateError()}async errorIfIsOverLimit(e){if(!e||!e.value)throw new this.errors.IncorrectUsageError({message:`Attempted to check an allowlist limit without a value`});if(!this.allowlist.includes(e.value))throw this.generateError()}}}})),$e=r(((e,t)=>{t.exports={members:{currentCountQuery:async e=>(await e(`members`).count(`id`,{as:`count`}).first()).count},newsletters:{currentCountQuery:async e=>(await e(`newsletters`).count(`id`,{as:`count`}).where(`status`,`=`,`active`).first()).count},emails:{currentCountQuery:async(e,t)=>(await e(`emails`).sum(`email_count`,{as:`count`}).where(`created_at`,`>=`,t).first()).count},staff:{currentCountQuery:async e=>(await e(`users`).select(`users.id`).leftJoin(`roles_users`,`users.id`,`roles_users.user_id`).leftJoin(`roles`,`roles_users.role_id`,`roles.id`).whereNot(`roles.name`,`Contributor`).andWhereNot(`users.status`,`inactive`).union([e(`invites`).select(`invites.id`).leftJoin(`roles`,`invites.role_id`,`roles.id`).whereNot(`roles.name`,`Contributor`)])).length},customIntegrations:{},customThemes:{},uploads:{currentCountQuery:()=>{},formatter:e=>`${e/1e6}MB`},limitStripeConnect:{},limitAnalytics:{},limitSocialWeb:{},publicSiteAccess:{}}})),et=r(((t,n)=>{var r=A(),i=M(),{IncorrectUsageError:a}=(Fe(),e(Me)),{MaxLimit:o,MaxPeriodicLimit:s,FlagLimit:c,AllowlistLimit:l}=Qe(),u=$e(),d={missingErrorsConfig:`Config Missing: 'errors' is required.`,noSubscriptionParameter:`Attempted to setup a periodic max limit without a subscription`};n.exports=class{constructor(){this.limits={}}loadLimits({limits:e={},subscription:t,helpLink:n,db:f,errors:p}){if(!p)throw new a({message:d.missingErrorsConfig});this.errors=p,this.limits={},Object.keys(e).forEach(m=>{if(m=r(m),u[m]){let r=Object.assign({},u[m],e[m]);if(i(r,`allowlist`))this.limits[m]=new l({name:m,config:r,helpLink:n,errors:p});else if(i(r,`max`))this.limits[m]=new o({name:m,config:r,helpLink:n,db:f,errors:p});else if(i(r,`maxPeriodic`)){if(t===void 0)throw new a({message:d.noSubscriptionParameter});let e=Object.assign({},r,t);this.limits[m]=new s({name:m,config:e,helpLink:n,db:f,errors:p})}else this.limits[m]=new c({name:m,config:r,helpLink:n,errors:p})}})}isLimited(e){return!!this.limits[r(e)]}isDisabled(e){if(!this.isLimited(e))return;let t=this.limits[r(e)];if(typeof t.isDisabled!=`function`)throw new a({message:`Limit ${e} does not support .isDisabled()`});return t.isDisabled()}async checkIsOverLimit(e,t={}){if(this.isLimited(e))try{return await this.limits[e].errorIfIsOverLimit(t),!1}catch(e){if(e instanceof this.errors.HostLimitError)return!0;throw e}}async checkWouldGoOverLimit(e,t={}){if(this.isLimited(e))try{return await this.limits[e].errorIfWouldGoOverLimit(t),!1}catch(e){if(e instanceof this.errors.HostLimitError)return!0;throw e}}async errorIfIsOverLimit(e,t={}){this.isLimited(e)&&await this.limits[e].errorIfIsOverLimit(t)}async errorIfWouldGoOverLimit(e,t={}){this.isLimited(e)&&await this.limits[e].errorIfWouldGoOverLimit(t)}async checkIfAnyOverLimit(e={}){for(let t in this.limits)if(await this.checkIsOverLimit(t,e))return!0;return!1}}})),tt=r(((e,t)=>{t.exports=et()}));export default tt();
@@ -1 +1 @@
1
- import{t as e}from"./jsx-runtime-DX3WBWVO.js";import{n as t,r as n}from"./hooks-D6EE7BIt.js";import{t as r}from"./build-CsiH26uS.js";import{c as i,p as a}from"./dist-Cb5RSHSg.js";import{S as o,i as s,n as c,r as l,x as u}from"./chart-BnXyfH11.js";import{n as d,t as f}from"./PolarAngleAxis-C4qtHy1B.js";import{n as p,t as m}from"./RadialBarChart-Bh09Stsj.js";var h=e(),g=({config:e,data:t,percentageValue:n,percentageLabel:r,className:g,tooltip:_=!0,size:v=`responsive`})=>{let y=e=>{if(typeof e==`number`)return e;if(typeof e==`string`){let t=Number(e);return Number.isFinite(t)?t:0}return 0},b=(()=>{switch(v){case`sm`:return{barWidth:28,innerRadiusStart:t.length>1?42:56,fontSize:{percentage:`1.2rem`,label:`0.8rem`}};case`md`:return{barWidth:36,innerRadiusStart:t.length>1?60:72,fontSize:{percentage:`1.4rem`,label:`0.9rem`}};case`lg`:return{barWidth:46,innerRadiusStart:t.length>1?72:94,fontSize:{percentage:`1.6rem`,label:`1rem`}};default:return{barWidth:46,innerRadiusStart:t.length>1?72:94,fontSize:{percentage:`1.6rem`,label:`1rem`}}}})(),x={innerRadius:b.innerRadiusStart,outerRadius:b.innerRadiusStart+b.barWidth,startAngle:90,endAngle:-270};return(0,h.jsx)(c,{className:i(`mx-auto`,g),config:e,children:(0,h.jsxs)(m,{data:t,endAngle:x.endAngle,innerRadius:x.innerRadius,outerRadius:x.outerRadius,startAngle:x.startAngle,children:[(0,h.jsxs)(`defs`,{children:[(0,h.jsxs)(`radialGradient`,{cx:`30%`,cy:`30%`,id:`gradientPurple`,r:`70%`,children:[(0,h.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-purple)`,stopOpacity:.5}),(0,h.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-purple)`,stopOpacity:1})]}),(0,h.jsxs)(`radialGradient`,{cx:`30%`,cy:`30%`,id:`gradientBlue`,r:`70%`,children:[(0,h.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-blue)`,stopOpacity:.5}),(0,h.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-blue)`,stopOpacity:1})]}),(0,h.jsxs)(`radialGradient`,{cx:`30%`,cy:`30%`,id:`gradientTeal`,r:`70%`,children:[(0,h.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-teal)`,stopOpacity:.5}),(0,h.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-teal)`,stopOpacity:1})]}),(0,h.jsxs)(`radialGradient`,{cx:`30%`,cy:`30%`,id:`gradientGray`,r:`70%`,children:[(0,h.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-gray)`,stopOpacity:.5}),(0,h.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-gray)`,stopOpacity:1})]})]}),(0,h.jsx)(f,{angleAxisId:0,domain:[0,1],tick:!1,type:`number`}),(0,h.jsx)(p,{cornerRadius:10,dataKey:`value`,minPointSize:-2,background:!0,children:t.length>1&&(0,h.jsx)(u,{className:`fill-foreground opacity-60`,dataKey:`datatype`,fontSize:11,position:`insideStart`})}),(0,h.jsx)(d,{axisLine:!1,tick:!1,tickLine:!1,children:(0,h.jsx)(o,{content:({viewBox:e})=>{if(e&&`cx`in e&&`cy`in e)return(0,h.jsxs)(`text`,{dominantBaseline:`middle`,textAnchor:`middle`,x:e.cx,y:e.cy,children:[n&&(0,h.jsx)(`tspan`,{className:`fill-foreground text-[1.6rem] font-semibold tracking-tight`,x:e.cx,y:(e.cy||0)-6,children:n}),r&&(0,h.jsx)(`tspan`,{className:`fill-muted-foreground font-medium`,x:e.cx,y:(e.cy||0)+14,children:r})]})}})}),_&&(0,h.jsx)(l,{content:(0,h.jsx)(s,{formatter:(e,t,n)=>{let r=n.payload;return(0,h.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,h.jsx)(`div`,{className:`size-2 rounded-full opacity-50`,style:{backgroundColor:r?.color}}),(0,h.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:r?.datatype}),(0,h.jsx)(`div`,{className:`ml-3 font-mono text-xs`,children:a(y(e))})]})},nameKey:`datatype`,hideLabel:!0}),cursor:!1,isAnimationActive:!1})]})})},_=n({dataType:`LinkResponseType`,path:`/links/`}),v=t({method:`PUT`,path:()=>`/links/bulk/`,body:({editedUrl:e})=>({bulk:{action:`updateLink`,meta:{link:{to:e}}}}),searchParams:({originalUrl:e,postId:t})=>({filter:`post_id:${r(t)}+to:${r(e)}`})}),y=(e,t=!1)=>{try{let n=[`ref`,`attribution_id`,`attribution_type`],r=new URL(e);for(let e of n)r.searchParams.delete(e);return t?(r.host+(r.pathname===`/`&&!r.search?``:r.pathname)+(r.search?r.search:``)+(r.hash?r.hash:``)).replace(/^www\./,``):r.toString()}catch{return e}},b=(e,t)=>e.find(e=>e.link.link_id===t),x=e=>{let t=(e?.links.map(e=>({link:e.link,count:e.count?.clicks||0}))||[]).map(e=>({...e,link:{...e.link,originalTo:e.link.to,to:y(e.link.to,!1),title:y(e.link.to,!0)}})).reduce((e,t)=>(e[t.link.title]?(e[t.link.title].count||(e[t.link.title].count=0),e[t.link.title].count+=t.count??0):e[t.link.title]=t,e),{});return Object.values(t).sort((e,t)=>{let n=e.count||0;return(t.count||0)-n})};export{_ as a,v as i,b as n,g as o,x as r,y as t};
1
+ import{t as e}from"./jsx-runtime-DX3WBWVO.js";import{n as t,r as n}from"./hooks-CJepWnbB.js";import{t as r}from"./build-CsiH26uS.js";import{c as i,p as a}from"./dist-Cb5RSHSg.js";import{S as o,i as s,n as c,r as l,x as u}from"./chart-BnXyfH11.js";import{n as d,t as f}from"./PolarAngleAxis-C4qtHy1B.js";import{n as p,t as m}from"./RadialBarChart-Bh09Stsj.js";var h=e(),g=({config:e,data:t,percentageValue:n,percentageLabel:r,className:g,tooltip:_=!0,size:v=`responsive`})=>{let y=e=>{if(typeof e==`number`)return e;if(typeof e==`string`){let t=Number(e);return Number.isFinite(t)?t:0}return 0},b=(()=>{switch(v){case`sm`:return{barWidth:28,innerRadiusStart:t.length>1?42:56,fontSize:{percentage:`1.2rem`,label:`0.8rem`}};case`md`:return{barWidth:36,innerRadiusStart:t.length>1?60:72,fontSize:{percentage:`1.4rem`,label:`0.9rem`}};case`lg`:return{barWidth:46,innerRadiusStart:t.length>1?72:94,fontSize:{percentage:`1.6rem`,label:`1rem`}};default:return{barWidth:46,innerRadiusStart:t.length>1?72:94,fontSize:{percentage:`1.6rem`,label:`1rem`}}}})(),x={innerRadius:b.innerRadiusStart,outerRadius:b.innerRadiusStart+b.barWidth,startAngle:90,endAngle:-270};return(0,h.jsx)(c,{className:i(`mx-auto`,g),config:e,children:(0,h.jsxs)(m,{data:t,endAngle:x.endAngle,innerRadius:x.innerRadius,outerRadius:x.outerRadius,startAngle:x.startAngle,children:[(0,h.jsxs)(`defs`,{children:[(0,h.jsxs)(`radialGradient`,{cx:`30%`,cy:`30%`,id:`gradientPurple`,r:`70%`,children:[(0,h.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-purple)`,stopOpacity:.5}),(0,h.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-purple)`,stopOpacity:1})]}),(0,h.jsxs)(`radialGradient`,{cx:`30%`,cy:`30%`,id:`gradientBlue`,r:`70%`,children:[(0,h.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-blue)`,stopOpacity:.5}),(0,h.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-blue)`,stopOpacity:1})]}),(0,h.jsxs)(`radialGradient`,{cx:`30%`,cy:`30%`,id:`gradientTeal`,r:`70%`,children:[(0,h.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-teal)`,stopOpacity:.5}),(0,h.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-teal)`,stopOpacity:1})]}),(0,h.jsxs)(`radialGradient`,{cx:`30%`,cy:`30%`,id:`gradientGray`,r:`70%`,children:[(0,h.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-gray)`,stopOpacity:.5}),(0,h.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-gray)`,stopOpacity:1})]})]}),(0,h.jsx)(f,{angleAxisId:0,domain:[0,1],tick:!1,type:`number`}),(0,h.jsx)(p,{cornerRadius:10,dataKey:`value`,minPointSize:-2,background:!0,children:t.length>1&&(0,h.jsx)(u,{className:`fill-foreground opacity-60`,dataKey:`datatype`,fontSize:11,position:`insideStart`})}),(0,h.jsx)(d,{axisLine:!1,tick:!1,tickLine:!1,children:(0,h.jsx)(o,{content:({viewBox:e})=>{if(e&&`cx`in e&&`cy`in e)return(0,h.jsxs)(`text`,{dominantBaseline:`middle`,textAnchor:`middle`,x:e.cx,y:e.cy,children:[n&&(0,h.jsx)(`tspan`,{className:`fill-foreground text-[1.6rem] font-semibold tracking-tight`,x:e.cx,y:(e.cy||0)-6,children:n}),r&&(0,h.jsx)(`tspan`,{className:`fill-muted-foreground font-medium`,x:e.cx,y:(e.cy||0)+14,children:r})]})}})}),_&&(0,h.jsx)(l,{content:(0,h.jsx)(s,{formatter:(e,t,n)=>{let r=n.payload;return(0,h.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,h.jsx)(`div`,{className:`size-2 rounded-full opacity-50`,style:{backgroundColor:r?.color}}),(0,h.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:r?.datatype}),(0,h.jsx)(`div`,{className:`ml-3 font-mono text-xs`,children:a(y(e))})]})},nameKey:`datatype`,hideLabel:!0}),cursor:!1,isAnimationActive:!1})]})})},_=n({dataType:`LinkResponseType`,path:`/links/`}),v=t({method:`PUT`,path:()=>`/links/bulk/`,body:({editedUrl:e})=>({bulk:{action:`updateLink`,meta:{link:{to:e}}}}),searchParams:({originalUrl:e,postId:t})=>({filter:`post_id:${r(t)}+to:${r(e)}`})}),y=(e,t=!1)=>{try{let n=[`ref`,`attribution_id`,`attribution_type`],r=new URL(e);for(let e of n)r.searchParams.delete(e);return t?(r.host+(r.pathname===`/`&&!r.search?``:r.pathname)+(r.search?r.search:``)+(r.hash?r.hash:``)).replace(/^www\./,``):r.toString()}catch{return e}},b=(e,t)=>e.find(e=>e.link.link_id===t),x=e=>{let t=(e?.links.map(e=>({link:e.link,count:e.count?.clicks||0}))||[]).map(e=>({...e,link:{...e.link,originalTo:e.link.to,to:y(e.link.to,!1),title:y(e.link.to,!0)}})).reduce((e,t)=>(e[t.link.title]?(e[t.link.title].count||(e[t.link.title].count=0),e[t.link.title].count+=t.count??0):e[t.link.title]=t,e),{});return Object.values(t).sort((e,t)=>{let n=e.count||0;return(t.count||0)-n})};export{_ as a,v as i,b as n,g as o,x as r,y as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./rolldown-runtime-DAXXjFlN.js";var t=e((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=class extends Error{},n=class extends t{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},r=class extends t{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},i=class extends t{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},a=class extends t{},o=class extends t{constructor(e){super(`Invalid unit ${e}`)}},s=class extends t{},c=class extends t{constructor(){super(`Zone is an abstract class`)}},l=`numeric`,u=`short`,d=`long`,f={year:l,month:l,day:l},p={year:l,month:u,day:l},m={year:l,month:u,day:l,weekday:u},ee={year:l,month:d,day:l},te={year:l,month:d,day:l,weekday:d},h={hour:l,minute:l},g={hour:l,minute:l,second:l},_={hour:l,minute:l,second:l,timeZoneName:u},ne={hour:l,minute:l,second:l,timeZoneName:d},re={hour:l,minute:l,hourCycle:`h23`},ie={hour:l,minute:l,second:l,hourCycle:`h23`},ae={hour:l,minute:l,second:l,hourCycle:`h23`,timeZoneName:u},v={hour:l,minute:l,second:l,hourCycle:`h23`,timeZoneName:d},oe={year:l,month:l,day:l,hour:l,minute:l},se={year:l,month:l,day:l,hour:l,minute:l,second:l},ce={year:l,month:u,day:l,hour:l,minute:l},le={year:l,month:u,day:l,hour:l,minute:l,second:l},ue={year:l,month:u,day:l,weekday:u,hour:l,minute:l},de={year:l,month:d,day:l,hour:l,minute:l,timeZoneName:u},fe={year:l,month:d,day:l,hour:l,minute:l,second:l,timeZoneName:u},pe={year:l,month:d,day:l,weekday:d,hour:l,minute:l,timeZoneName:d},me={year:l,month:d,day:l,weekday:d,hour:l,minute:l,second:l,timeZoneName:d},y=class{get type(){throw new c}get name(){throw new c}get ianaName(){return this.name}get isUniversal(){throw new c}offsetName(e,t){throw new c}formatOffset(e,t){throw new c}offset(e){throw new c}equals(e){throw new c}get isValid(){throw new c}},he=null,ge=class e extends y{static get instance(){return he===null&&(he=new e),he}get type(){return`system`}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:t,locale:n}){return Vt(e,t,n)}formatOffset(e,t){return Gt(this.offset(e),t)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type===`system`}get isValid(){return!0}},_e=new Map;function ve(e){let t=_e.get(e);return t===void 0&&(t=new Intl.DateTimeFormat(`en-US`,{hour12:!1,timeZone:e,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,era:`short`}),_e.set(e,t)),t}var ye={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function be(e,t){let n=e.format(t).replace(/\u200E/g,``),[,r,i,a,o,s,c,l]=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(n);return[a,r,i,o,s,c,l]}function xe(e,t){let n=e.formatToParts(t),r=[];for(let e=0;e<n.length;e++){let{type:t,value:i}=n[e],a=ye[t];t===`era`?r[a]=i:O(a)||(r[a]=parseInt(i,10))}return r}var Se=new Map,b=class e extends y{static create(t){let n=Se.get(t);return n===void 0&&Se.set(t,n=new e(t)),n}static resetCache(){Se.clear(),_e.clear()}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat(`en-US`,{timeZone:e}).format(),!0}catch{return!1}}constructor(t){super(),this.zoneName=t,this.valid=e.isValidZone(t)}get type(){return`iana`}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:t,locale:n}){return Vt(e,t,n,this.name)}formatOffset(e,t){return Gt(this.offset(e),t)}offset(e){if(!this.valid)return NaN;let t=new Date(e);if(isNaN(t))return NaN;let n=ve(this.name),[r,i,a,o,s,c,l]=n.formatToParts?xe(n,t):be(n,t);o===`BC`&&(r=-Math.abs(r)+1);let u=Lt({year:r,month:i,day:a,hour:s===24?0:s,minute:c,second:l,millisecond:0}),d=+t,f=d%1e3;return d-=f>=0?f:1e3+f,(u-d)/(60*1e3)}equals(e){return e.type===`iana`&&e.name===this.name}get isValid(){return this.valid}},Ce={};function we(e,t={}){let n=JSON.stringify([e,t]),r=Ce[n];return r||(r=new Intl.ListFormat(e,t),Ce[n]=r),r}var Te=new Map;function Ee(e,t={}){let n=JSON.stringify([e,t]),r=Te.get(n);return r===void 0&&(r=new Intl.DateTimeFormat(e,t),Te.set(n,r)),r}var De=new Map;function Oe(e,t={}){let n=JSON.stringify([e,t]),r=De.get(n);return r===void 0&&(r=new Intl.NumberFormat(e,t),De.set(n,r)),r}var ke=new Map;function Ae(e,t={}){let{base:n,...r}=t,i=JSON.stringify([e,r]),a=ke.get(i);return a===void 0&&(a=new Intl.RelativeTimeFormat(e,t),ke.set(i,a)),a}var je=null;function Me(){return je||(je=new Intl.DateTimeFormat().resolvedOptions().locale,je)}var Ne=new Map;function Pe(e){let t=Ne.get(e);return t===void 0&&(t=new Intl.DateTimeFormat(e).resolvedOptions(),Ne.set(e,t)),t}var Fe=new Map;function Ie(e){let t=Fe.get(e);if(!t){let n=new Intl.Locale(e);t=`getWeekInfo`in n?n.getWeekInfo():n.weekInfo,`minimalDays`in t||(t={...Ke,...t}),Fe.set(e,t)}return t}function Le(e){let t=e.indexOf(`-x-`);t!==-1&&(e=e.substring(0,t));let n=e.indexOf(`-u-`);if(n===-1)return[e];{let t,r;try{t=Ee(e).resolvedOptions(),r=e}catch{let i=e.substring(0,n);t=Ee(i).resolvedOptions(),r=i}let{numberingSystem:i,calendar:a}=t;return[r,i,a]}}function Re(e,t,n){return n||t?(e.includes(`-u-`)||(e+=`-u`),n&&(e+=`-ca-${n}`),t&&(e+=`-nu-${t}`),e):e}function ze(e){let t=[];for(let n=1;n<=12;n++){let r=$.utc(2009,n,1);t.push(e(r))}return t}function Be(e){let t=[];for(let n=1;n<=7;n++){let r=$.utc(2016,11,13+n);t.push(e(r))}return t}function Ve(e,t,n,r){let i=e.listingMode();return i===`error`?null:i===`en`?n(t):r(t)}function He(e){return e.numberingSystem&&e.numberingSystem!==`latn`?!1:e.numberingSystem===`latn`||!e.locale||e.locale.startsWith(`en`)||Pe(e.locale).numberingSystem===`latn`}var Ue=class{constructor(e,t,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;let{padTo:r,floor:i,...a}=n;if(!t||Object.keys(a).length>0){let t={useGrouping:!1,...n};n.padTo>0&&(t.minimumIntegerDigits=n.padTo),this.inf=Oe(e,t)}}format(e){if(this.inf){let t=this.floor?Math.floor(e):e;return this.inf.format(t)}else return M(this.floor?Math.floor(e):Ft(e,3),this.padTo)}},We=class{constructor(e,t,n){this.opts=n,this.originalZone=void 0;let r;if(this.opts.timeZone)this.dt=e;else if(e.zone.type===`fixed`){let t=-1*(e.offset/60),n=t>=0?`Etc/GMT+${t}`:`Etc/GMT${t}`;e.offset!==0&&b.create(n).valid?(r=n,this.dt=e):(r=`UTC`,this.dt=e.offset===0?e:e.setZone(`UTC`).plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type===`system`?this.dt=e:e.zone.type===`iana`?(this.dt=e,r=e.zone.name):(r=`UTC`,this.dt=e.setZone(`UTC`).plus({minutes:e.offset}),this.originalZone=e.zone);let i={...this.opts};i.timeZone=i.timeZone||r,this.dtf=Ee(t,i)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(``):this.dtf.format(this.dt.toJSDate())}formatToParts(){let e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(e=>{if(e.type===`timeZoneName`){let t=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...e,value:t}}else return e}):e}resolvedOptions(){return this.dtf.resolvedOptions()}},Ge=class{constructor(e,t,n){this.opts={style:`long`,...n},!t&&Dt()&&(this.rtf=Ae(e,n))}format(e,t){return this.rtf?this.rtf.format(e,t):dn(t,e,this.opts.numeric,this.opts.style!==`long`)}formatToParts(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]}},Ke={firstDay:1,minimalDays:4,weekend:[6,7]},x=class e{static fromOpts(t){return e.create(t.locale,t.numberingSystem,t.outputCalendar,t.weekSettings,t.defaultToEN)}static create(t,n,r,i,a=!1){let o=t||T.defaultLocale,s=o||(a?`en-US`:Me()),c=n||T.defaultNumberingSystem,l=r||T.defaultOutputCalendar,u=Mt(i)||T.defaultWeekSettings;return new e(s,c,l,u,o)}static resetCache(){je=null,Te.clear(),De.clear(),ke.clear(),Ne.clear(),Fe.clear()}static fromObject({locale:t,numberingSystem:n,outputCalendar:r,weekSettings:i}={}){return e.create(t,n,r,i)}constructor(e,t,n,r,i){let[a,o,s]=Le(e);this.locale=a,this.numberingSystem=t||o||null,this.outputCalendar=n||s||null,this.weekSettings=r,this.intl=Re(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=i,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached??=He(this),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),t=(this.numberingSystem===null||this.numberingSystem===`latn`)&&(this.outputCalendar===null||this.outputCalendar===`gregory`);return e&&t?`en`:`intl`}clone(t){return!t||Object.getOwnPropertyNames(t).length===0?this:e.create(t.locale||this.specifiedLocale,t.numberingSystem||this.numberingSystem,t.outputCalendar||this.outputCalendar,Mt(t.weekSettings)||this.weekSettings,t.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,t=!1){return Ve(this,e,Xt,()=>{let n=this.intl===`ja`||this.intl.startsWith(`ja-`);t&=!n;let r=t?{month:e,day:`numeric`}:{month:e},i=t?`format`:`standalone`;if(!this.monthsCache[i][e]){let t=n?e=>this.dtFormatter(e,r).format():e=>this.extract(e,r,`month`);this.monthsCache[i][e]=ze(t)}return this.monthsCache[i][e]})}weekdays(e,t=!1){return Ve(this,e,en,()=>{let n=t?{weekday:e,year:`numeric`,month:`long`,day:`numeric`}:{weekday:e},r=t?`format`:`standalone`;return this.weekdaysCache[r][e]||(this.weekdaysCache[r][e]=Be(e=>this.extract(e,n,`weekday`))),this.weekdaysCache[r][e]})}meridiems(){return Ve(this,void 0,()=>tn,()=>{if(!this.meridiemCache){let e={hour:`numeric`,hourCycle:`h12`};this.meridiemCache=[$.utc(2016,11,13,9),$.utc(2016,11,13,19)].map(t=>this.extract(t,e,`dayperiod`))}return this.meridiemCache})}eras(e){return Ve(this,e,on,()=>{let t={era:e};return this.eraCache[e]||(this.eraCache[e]=[$.utc(-40,1,1),$.utc(2017,1,1)].map(e=>this.extract(e,t,`era`))),this.eraCache[e]})}extract(e,t,n){let r=this.dtFormatter(e,t).formatToParts().find(e=>e.type.toLowerCase()===n);return r?r.value:null}numberFormatter(e={}){return new Ue(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,t={}){return new We(e,this.intl,t)}relFormatter(e={}){return new Ge(this.intl,this.isEnglish(),e)}listFormatter(e={}){return we(this.intl,e)}isEnglish(){return this.locale===`en`||this.locale.toLowerCase()===`en-us`||Pe(this.intl).locale.startsWith(`en-us`)}getWeekSettings(){return this.weekSettings?this.weekSettings:Ot()?Ie(this.locale):Ke}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}},qe=null,S=class e extends y{static get utcInstance(){return qe===null&&(qe=new e(0)),qe}static instance(t){return t===0?e.utcInstance:new e(t)}static parseSpecifier(t){if(t){let n=t.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(n)return new e(Ht(n[1],n[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return`fixed`}get name(){return this.fixed===0?`UTC`:`UTC${Gt(this.fixed,`narrow`)}`}get ianaName(){return this.fixed===0?`Etc/UTC`:`Etc/GMT${Gt(-this.fixed,`narrow`)}`}offsetName(){return this.name}formatOffset(e,t){return Gt(this.fixed,t)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type===`fixed`&&e.fixed===this.fixed}get isValid(){return!0}},Je=class extends y{constructor(e){super(),this.zoneName=e}get type(){return`invalid`}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return``}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function C(e,t){if(O(e)||e===null)return t;if(e instanceof y)return e;if(Tt(e)){let n=e.toLowerCase();return n==="default"?t:n===`local`||n===`system`?ge.instance:n===`utc`||n===`gmt`?S.utcInstance:S.parseSpecifier(n)||b.create(e)}else if(k(e))return S.instance(e);else if(typeof e==`object`&&`offset`in e&&typeof e.offset==`function`)return e;else return new Je(e)}var Ye={arab:`[٠-٩]`,arabext:`[۰-۹]`,bali:`[᭐-᭙]`,beng:`[০-৯]`,deva:`[०-९]`,fullwide:`[0-9]`,gujr:`[૦-૯]`,hanidec:`[〇|一|二|三|四|五|六|七|八|九]`,khmr:`[០-៩]`,knda:`[೦-೯]`,laoo:`[໐-໙]`,limb:`[᥆-᥏]`,mlym:`[൦-൯]`,mong:`[᠐-᠙]`,mymr:`[၀-၉]`,orya:`[୦-୯]`,tamldec:`[௦-௯]`,telu:`[౦-౯]`,thai:`[๐-๙]`,tibt:`[༠-༩]`,latn:`\\d`},Xe={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},Ze=Ye.hanidec.replace(/[\[|\]]/g,``).split(``);function Qe(e){let t=parseInt(e,10);if(isNaN(t)){t=``;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);if(e[n].search(Ye.hanidec)!==-1)t+=Ze.indexOf(e[n]);else for(let e in Xe){let[n,i]=Xe[e];r>=n&&r<=i&&(t+=r-n)}}return parseInt(t,10)}else return t}var $e=new Map;function et(){$e.clear()}function w({numberingSystem:e},t=``){let n=e||`latn`,r=$e.get(n);r===void 0&&(r=new Map,$e.set(n,r));let i=r.get(t);return i===void 0&&(i=RegExp(`${Ye[n]}${t}`),r.set(t,i)),i}var tt=()=>Date.now(),nt=`system`,rt=null,it=null,at=null,ot=60,st,ct=null,T=class{static get now(){return tt}static set now(e){tt=e}static set defaultZone(e){nt=e}static get defaultZone(){return C(nt,ge.instance)}static get defaultLocale(){return rt}static set defaultLocale(e){rt=e}static get defaultNumberingSystem(){return it}static set defaultNumberingSystem(e){it=e}static get defaultOutputCalendar(){return at}static set defaultOutputCalendar(e){at=e}static get defaultWeekSettings(){return ct}static set defaultWeekSettings(e){ct=Mt(e)}static get twoDigitCutoffYear(){return ot}static set twoDigitCutoffYear(e){ot=e%100}static get throwOnInvalid(){return st}static set throwOnInvalid(e){st=e}static resetCaches(){x.resetCache(),b.resetCache(),$.resetCache(),et()}},E=class{constructor(e,t){this.reason=e,this.explanation=t}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},lt=[0,31,59,90,120,151,181,212,243,273,304,334],ut=[0,31,60,91,121,152,182,213,244,274,305,335];function D(e,t){return new E(`unit out of range`,`you specified ${t} (of type ${typeof t}) as a ${e}, which is invalid`)}function dt(e,t,n){let r=new Date(Date.UTC(e,t-1,n));e<100&&e>=0&&r.setUTCFullYear(r.getUTCFullYear()-1900);let i=r.getUTCDay();return i===0?7:i}function ft(e,t,n){return n+(F(e)?ut:lt)[t-1]}function pt(e,t){let n=F(e)?ut:lt,r=n.findIndex(e=>e<t),i=t-n[r];return{month:r+1,day:i}}function mt(e,t){return(e-t+7)%7+1}function ht(e,t=4,n=1){let{year:r,month:i,day:a}=e,o=ft(r,i,a),s=mt(dt(r,i,a),n),c=Math.floor((o-s+14-t)/7),l;return c<1?(l=r-1,c=zt(l,t,n)):c>zt(r,t,n)?(l=r+1,c=1):l=r,{weekYear:l,weekNumber:c,weekday:s,...Kt(e)}}function gt(e,t=4,n=1){let{weekYear:r,weekNumber:i,weekday:a}=e,o=mt(dt(r,1,t),n),s=I(r),c=i*7+a-o-7+t,l;c<1?(l=r-1,c+=I(l)):c>s?(l=r+1,c-=I(r)):l=r;let{month:u,day:d}=pt(l,c);return{year:l,month:u,day:d,...Kt(e)}}function _t(e){let{year:t,month:n,day:r}=e;return{year:t,ordinal:ft(t,n,r),...Kt(e)}}function vt(e){let{year:t,ordinal:n}=e,{month:r,day:i}=pt(t,n);return{year:t,month:r,day:i,...Kt(e)}}function yt(e,t){if(!O(e.localWeekday)||!O(e.localWeekNumber)||!O(e.localWeekYear)){if(!O(e.weekday)||!O(e.weekNumber)||!O(e.weekYear))throw new a(`Cannot mix locale-based week fields with ISO-based week fields`);return O(e.localWeekday)||(e.weekday=e.localWeekday),O(e.localWeekNumber)||(e.weekNumber=e.localWeekNumber),O(e.localWeekYear)||(e.weekYear=e.localWeekYear),delete e.localWeekday,delete e.localWeekNumber,delete e.localWeekYear,{minDaysInFirstWeek:t.getMinDaysInFirstWeek(),startOfWeek:t.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function bt(e,t=4,n=1){let r=wt(e.weekYear),i=j(e.weekNumber,1,zt(e.weekYear,t,n)),a=j(e.weekday,1,7);return r?i?a?!1:D(`weekday`,e.weekday):D(`week`,e.weekNumber):D(`weekYear`,e.weekYear)}function xt(e){let t=wt(e.year),n=j(e.ordinal,1,I(e.year));return t?n?!1:D(`ordinal`,e.ordinal):D(`year`,e.year)}function St(e){let t=wt(e.year),n=j(e.month,1,12),r=j(e.day,1,It(e.year,e.month));return t?n?r?!1:D(`day`,e.day):D(`month`,e.month):D(`year`,e.year)}function Ct(e){let{hour:t,minute:n,second:r,millisecond:i}=e,a=j(t,0,23)||t===24&&n===0&&r===0&&i===0,o=j(n,0,59),s=j(r,0,59),c=j(i,0,999);return a?o?s?c?!1:D(`millisecond`,i):D(`second`,r):D(`minute`,n):D(`hour`,t)}function O(e){return e===void 0}function k(e){return typeof e==`number`}function wt(e){return typeof e==`number`&&e%1==0}function Tt(e){return typeof e==`string`}function Et(e){return Object.prototype.toString.call(e)===`[object Date]`}function Dt(){try{return typeof Intl<`u`&&!!Intl.RelativeTimeFormat}catch{return!1}}function Ot(){try{return typeof Intl<`u`&&!!Intl.Locale&&(`weekInfo`in Intl.Locale.prototype||`getWeekInfo`in Intl.Locale.prototype)}catch{return!1}}function kt(e){return Array.isArray(e)?e:[e]}function At(e,t,n){if(e.length!==0)return e.reduce((e,r)=>{let i=[t(r),r];return e&&n(e[0],i[0])===e[0]?e:i},null)[1]}function jt(e,t){return t.reduce((t,n)=>(t[n]=e[n],t),{})}function A(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Mt(e){if(e==null)return null;if(typeof e!=`object`)throw new s(`Week settings must be an object`);if(!j(e.firstDay,1,7)||!j(e.minimalDays,1,7)||!Array.isArray(e.weekend)||e.weekend.some(e=>!j(e,1,7)))throw new s(`Invalid week settings`);return{firstDay:e.firstDay,minimalDays:e.minimalDays,weekend:Array.from(e.weekend)}}function j(e,t,n){return wt(e)&&e>=t&&e<=n}function Nt(e,t){return e-t*Math.floor(e/t)}function M(e,t=2){let n=e<0,r;return r=n?`-`+(``+-e).padStart(t,`0`):(``+e).padStart(t,`0`),r}function N(e){if(!(O(e)||e===null||e===``))return parseInt(e,10)}function P(e){if(!(O(e)||e===null||e===``))return parseFloat(e)}function Pt(e){if(!(O(e)||e===null||e===``)){let t=parseFloat(`0.`+e)*1e3;return Math.floor(t)}}function Ft(e,t,n=`round`){let r=10**t;switch(n){case`expand`:return e>0?Math.ceil(e*r)/r:Math.floor(e*r)/r;case`trunc`:return Math.trunc(e*r)/r;case`round`:return Math.round(e*r)/r;case`floor`:return Math.floor(e*r)/r;case`ceil`:return Math.ceil(e*r)/r;default:throw RangeError(`Value rounding ${n} is out of range`)}}function F(e){return e%4==0&&(e%100!=0||e%400==0)}function I(e){return F(e)?366:365}function It(e,t){let n=Nt(t-1,12)+1,r=e+(t-n)/12;return n===2?F(r)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][n-1]}function Lt(e){let t=Date.UTC(e.year,e.month-1,e.day,e.hour,e.minute,e.second,e.millisecond);return e.year<100&&e.year>=0&&(t=new Date(t),t.setUTCFullYear(e.year,e.month-1,e.day)),+t}function Rt(e,t,n){return-mt(dt(e,1,t),n)+t-1}function zt(e,t=4,n=1){let r=Rt(e,t,n),i=Rt(e+1,t,n);return(I(e)-r+i)/7}function Bt(e){return e>99?e:e>T.twoDigitCutoffYear?1900+e:2e3+e}function Vt(e,t,n,r=null){let i=new Date(e),a={hourCycle:`h23`,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`};r&&(a.timeZone=r);let o={timeZoneName:t,...a},s=new Intl.DateTimeFormat(n,o).formatToParts(i).find(e=>e.type.toLowerCase()===`timezonename`);return s?s.value:null}function Ht(e,t){let n=parseInt(e,10);Number.isNaN(n)&&(n=0);let r=parseInt(t,10)||0,i=n<0||Object.is(n,-0)?-r:r;return n*60+i}function Ut(e){let t=Number(e);if(typeof e==`boolean`||e===``||!Number.isFinite(t))throw new s(`Invalid unit value ${e}`);return t}function Wt(e,t){let n={};for(let r in e)if(A(e,r)){let i=e[r];if(i==null)continue;n[t(r)]=Ut(i)}return n}function Gt(e,t){let n=Math.trunc(Math.abs(e/60)),r=Math.trunc(Math.abs(e%60)),i=e>=0?`+`:`-`;switch(t){case`short`:return`${i}${M(n,2)}:${M(r,2)}`;case`narrow`:return`${i}${n}${r>0?`:${r}`:``}`;case`techie`:return`${i}${M(n,2)}${M(r,2)}`;default:throw RangeError(`Value format ${t} is out of range for property format`)}}function Kt(e){return jt(e,[`hour`,`minute`,`second`,`millisecond`])}var qt=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],Jt=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],Yt=[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`];function Xt(e){switch(e){case`narrow`:return[...Yt];case`short`:return[...Jt];case`long`:return[...qt];case`numeric`:return[`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`,`10`,`11`,`12`];case`2-digit`:return[`01`,`02`,`03`,`04`,`05`,`06`,`07`,`08`,`09`,`10`,`11`,`12`];default:return null}}var Zt=[`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`,`Sunday`],Qt=[`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`,`Sun`],$t=[`M`,`T`,`W`,`T`,`F`,`S`,`S`];function en(e){switch(e){case`narrow`:return[...$t];case`short`:return[...Qt];case`long`:return[...Zt];case`numeric`:return[`1`,`2`,`3`,`4`,`5`,`6`,`7`];default:return null}}var tn=[`AM`,`PM`],nn=[`Before Christ`,`Anno Domini`],rn=[`BC`,`AD`],an=[`B`,`A`];function on(e){switch(e){case`narrow`:return[...an];case`short`:return[...rn];case`long`:return[...nn];default:return null}}function sn(e){return tn[e.hour<12?0:1]}function cn(e,t){return en(t)[e.weekday-1]}function ln(e,t){return Xt(t)[e.month-1]}function un(e,t){return on(t)[e.year<0?0:1]}function dn(e,t,n=`always`,r=!1){let i={years:[`year`,`yr.`],quarters:[`quarter`,`qtr.`],months:[`month`,`mo.`],weeks:[`week`,`wk.`],days:[`day`,`day`,`days`],hours:[`hour`,`hr.`],minutes:[`minute`,`min.`],seconds:[`second`,`sec.`]},a=[`hours`,`minutes`,`seconds`].indexOf(e)===-1;if(n===`auto`&&a){let n=e===`days`;switch(t){case 1:return n?`tomorrow`:`next ${i[e][0]}`;case-1:return n?`yesterday`:`last ${i[e][0]}`;case 0:return n?`today`:`this ${i[e][0]}`}}let o=Object.is(t,-0)||t<0,s=Math.abs(t),c=s===1,l=i[e],u=r?c?l[1]:l[2]||l[1]:c?i[e][0]:e;return o?`${s} ${u} ago`:`in ${s} ${u}`}function fn(e,t){let n=``;for(let r of e)r.literal?n+=r.val:n+=t(r.val);return n}var pn={D:f,DD:p,DDD:ee,DDDD:te,t:h,tt:g,ttt:_,tttt:ne,T:re,TT:ie,TTT:ae,TTTT:v,f:oe,ff:ce,fff:de,ffff:pe,F:se,FF:le,FFF:fe,FFFF:me},L=class e{static create(t,n={}){return new e(t,n)}static parseFormat(e){let t=null,n=``,r=!1,i=[];for(let a=0;a<e.length;a++){let o=e.charAt(a);o===`'`?((n.length>0||r)&&i.push({literal:r||/^\s+$/.test(n),val:n===``?`'`:n}),t=null,n=``,r=!r):r||o===t?n+=o:(n.length>0&&i.push({literal:/^\s+$/.test(n),val:n}),n=o,t=o)}return n.length>0&&i.push({literal:r||/^\s+$/.test(n),val:n}),i}static macroTokenToFormatOpts(e){return pn[e]}constructor(e,t){this.opts=t,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,t){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...t}).format()}dtFormatter(e,t={}){return this.loc.dtFormatter(e,{...this.opts,...t})}formatDateTime(e,t){return this.dtFormatter(e,t).format()}formatDateTimeParts(e,t){return this.dtFormatter(e,t).formatToParts()}formatInterval(e,t){return this.dtFormatter(e.start,t).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,t){return this.dtFormatter(e,t).resolvedOptions()}num(e,t=0,n=void 0){if(this.opts.forceSimple)return M(e,t);let r={...this.opts};return t>0&&(r.padTo=t),n&&(r.signDisplay=n),this.loc.numberFormatter(r).format(e)}formatDateTimeFromString(t,n){let r=this.loc.listingMode()===`en`,i=this.loc.outputCalendar&&this.loc.outputCalendar!==`gregory`,a=(e,n)=>this.loc.extract(t,e,n),o=e=>t.isOffsetFixed&&t.offset===0&&e.allowZ?`Z`:t.isValid?t.zone.formatOffset(t.ts,e.format):``,s=()=>r?sn(t):a({hour:`numeric`,hourCycle:`h12`},`dayperiod`),c=(e,n)=>r?ln(t,e):a(n?{month:e}:{month:e,day:`numeric`},`month`),l=(e,n)=>r?cn(t,e):a(n?{weekday:e}:{weekday:e,month:`long`,day:`numeric`},`weekday`),u=n=>{let r=e.macroTokenToFormatOpts(n);return r?this.formatWithSystemDefault(t,r):n},d=e=>r?un(t,e):a({era:e},`era`);return fn(e.parseFormat(n),e=>{switch(e){case`S`:return this.num(t.millisecond);case`u`:case`SSS`:return this.num(t.millisecond,3);case`s`:return this.num(t.second);case`ss`:return this.num(t.second,2);case`uu`:return this.num(Math.floor(t.millisecond/10),2);case`uuu`:return this.num(Math.floor(t.millisecond/100));case`m`:return this.num(t.minute);case`mm`:return this.num(t.minute,2);case`h`:return this.num(t.hour%12==0?12:t.hour%12);case`hh`:return this.num(t.hour%12==0?12:t.hour%12,2);case`H`:return this.num(t.hour);case`HH`:return this.num(t.hour,2);case`Z`:return o({format:`narrow`,allowZ:this.opts.allowZ});case`ZZ`:return o({format:`short`,allowZ:this.opts.allowZ});case`ZZZ`:return o({format:`techie`,allowZ:this.opts.allowZ});case`ZZZZ`:return t.zone.offsetName(t.ts,{format:`short`,locale:this.loc.locale});case`ZZZZZ`:return t.zone.offsetName(t.ts,{format:`long`,locale:this.loc.locale});case`z`:return t.zoneName;case`a`:return s();case`d`:return i?a({day:`numeric`},`day`):this.num(t.day);case`dd`:return i?a({day:`2-digit`},`day`):this.num(t.day,2);case`c`:return this.num(t.weekday);case`ccc`:return l(`short`,!0);case`cccc`:return l(`long`,!0);case`ccccc`:return l(`narrow`,!0);case`E`:return this.num(t.weekday);case`EEE`:return l(`short`,!1);case`EEEE`:return l(`long`,!1);case`EEEEE`:return l(`narrow`,!1);case`L`:return i?a({month:`numeric`,day:`numeric`},`month`):this.num(t.month);case`LL`:return i?a({month:`2-digit`,day:`numeric`},`month`):this.num(t.month,2);case`LLL`:return c(`short`,!0);case`LLLL`:return c(`long`,!0);case`LLLLL`:return c(`narrow`,!0);case`M`:return i?a({month:`numeric`},`month`):this.num(t.month);case`MM`:return i?a({month:`2-digit`},`month`):this.num(t.month,2);case`MMM`:return c(`short`,!1);case`MMMM`:return c(`long`,!1);case`MMMMM`:return c(`narrow`,!1);case`y`:return i?a({year:`numeric`},`year`):this.num(t.year);case`yy`:return i?a({year:`2-digit`},`year`):this.num(t.year.toString().slice(-2),2);case`yyyy`:return i?a({year:`numeric`},`year`):this.num(t.year,4);case`yyyyyy`:return i?a({year:`numeric`},`year`):this.num(t.year,6);case`G`:return d(`short`);case`GG`:return d(`long`);case`GGGGG`:return d(`narrow`);case`kk`:return this.num(t.weekYear.toString().slice(-2),2);case`kkkk`:return this.num(t.weekYear,4);case`W`:return this.num(t.weekNumber);case`WW`:return this.num(t.weekNumber,2);case`n`:return this.num(t.localWeekNumber);case`nn`:return this.num(t.localWeekNumber,2);case`ii`:return this.num(t.localWeekYear.toString().slice(-2),2);case`iiii`:return this.num(t.localWeekYear,4);case`o`:return this.num(t.ordinal);case`ooo`:return this.num(t.ordinal,3);case`q`:return this.num(t.quarter);case`qq`:return this.num(t.quarter,2);case`X`:return this.num(Math.floor(t.ts/1e3));case`x`:return this.num(t.ts);default:return u(e)}})}formatDurationFromString(t,n){let r=this.opts.signMode===`negativeLargestOnly`?-1:1,i=e=>{switch(e[0]){case`S`:return`milliseconds`;case`s`:return`seconds`;case`m`:return`minutes`;case`h`:return`hours`;case`d`:return`days`;case`w`:return`weeks`;case`M`:return`months`;case`y`:return`years`;default:return null}},a=(e,t)=>n=>{let a=i(n);if(a){let i=t.isNegativeDuration&&a!==t.largestUnit?r:1,o;return o=this.opts.signMode===`negativeLargestOnly`&&a!==t.largestUnit?`never`:this.opts.signMode===`all`?`always`:`auto`,this.num(e.get(a)*i,n.length,o)}else return n},o=e.parseFormat(n),s=o.reduce((e,{literal:t,val:n})=>t?e:e.concat(n),[]),c=t.shiftTo(...s.map(i).filter(e=>e));return fn(o,a(c,{isNegativeDuration:c<0,largestUnit:Object.keys(c.values)[0]}))}},mn=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function R(...e){let t=e.reduce((e,t)=>e+t.source,``);return RegExp(`^${t}$`)}function z(...e){return t=>e.reduce(([e,n,r],i)=>{let[a,o,s]=i(t,r);return[{...e,...a},o||n,s]},[{},null,1]).slice(0,2)}function B(e,...t){if(e==null)return[null,null];for(let[n,r]of t){let t=n.exec(e);if(t)return r(t)}return[null,null]}function hn(...e){return(t,n)=>{let r={},i;for(i=0;i<e.length;i++)r[e[i]]=N(t[n+i]);return[r,null,n+i]}}var gn=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,_n=`(?:${gn.source}?(?:\\[(${mn.source})\\])?)?`,vn=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,yn=RegExp(`${vn.source}${_n}`),bn=RegExp(`(?:[Tt]${yn.source})?`),xn=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Sn=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Cn=/(\d{4})-?(\d{3})/,wn=hn(`weekYear`,`weekNumber`,`weekDay`),Tn=hn(`year`,`ordinal`),En=/(\d{4})-(\d\d)-(\d\d)/,Dn=RegExp(`${vn.source} ?(?:${gn.source}|(${mn.source}))?`),On=RegExp(`(?: ${Dn.source})?`);function V(e,t,n){let r=e[t];return O(r)?n:N(r)}function kn(e,t){return[{year:V(e,t),month:V(e,t+1,1),day:V(e,t+2,1)},null,t+3]}function H(e,t){return[{hours:V(e,t,0),minutes:V(e,t+1,0),seconds:V(e,t+2,0),milliseconds:Pt(e[t+3])},null,t+4]}function An(e,t){let n=!e[t]&&!e[t+1],r=Ht(e[t+1],e[t+2]);return[{},n?null:S.instance(r),t+3]}function jn(e,t){return[{},e[t]?b.create(e[t]):null,t+1]}var Mn=RegExp(`^T?${vn.source}$`),Nn=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function Pn(e){let[t,n,r,i,a,o,s,c,l]=e,u=t[0]===`-`,d=c&&c[0]===`-`,f=(e,t=!1)=>e!==void 0&&(t||e&&u)?-e:e;return[{years:f(P(n)),months:f(P(r)),weeks:f(P(i)),days:f(P(a)),hours:f(P(o)),minutes:f(P(s)),seconds:f(P(c),c===`-0`),milliseconds:f(Pt(l),d)}]}var Fn={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function In(e,t,n,r,i,a,o){let s={year:t.length===2?Bt(N(t)):N(t),month:Jt.indexOf(n)+1,day:N(r),hour:N(i),minute:N(a)};return o&&(s.second=N(o)),e&&(s.weekday=e.length>3?Zt.indexOf(e)+1:Qt.indexOf(e)+1),s}var Ln=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function Rn(e){let[,t,n,r,i,a,o,s,c,l,u,d]=e,f=In(t,i,r,n,a,o,s),p;return p=c?Fn[c]:l?0:Ht(u,d),[f,new S(p)]}function zn(e){return e.replace(/\([^()]*\)|[\n\t]/g,` `).replace(/(\s\s+)/g,` `).trim()}var Bn=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,Vn=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,Hn=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function Un(e){let[,t,n,r,i,a,o,s]=e;return[In(t,i,r,n,a,o,s),S.utcInstance]}function Wn(e){let[,t,n,r,i,a,o,s]=e;return[In(t,s,n,r,i,a,o),S.utcInstance]}var Gn=R(xn,bn),Kn=R(Sn,bn),qn=R(Cn,bn),Jn=R(yn),Yn=z(kn,H,An,jn),Xn=z(wn,H,An,jn),Zn=z(Tn,H,An,jn),Qn=z(H,An,jn);function $n(e){return B(e,[Gn,Yn],[Kn,Xn],[qn,Zn],[Jn,Qn])}function er(e){return B(zn(e),[Ln,Rn])}function tr(e){return B(e,[Bn,Un],[Vn,Un],[Hn,Wn])}function nr(e){return B(e,[Nn,Pn])}var rr=z(H);function ir(e){return B(e,[Mn,rr])}var ar=R(En,On),or=R(Dn),sr=z(H,An,jn);function cr(e){return B(e,[ar,Yn],[or,sr])}var lr=`Invalid Duration`,ur={weeks:{days:7,hours:168,minutes:10080,seconds:10080*60,milliseconds:10080*60*1e3},days:{hours:24,minutes:1440,seconds:1440*60,milliseconds:1440*60*1e3},hours:{minutes:60,seconds:3600,milliseconds:3600*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},dr={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:2184*60,seconds:2184*60*60,milliseconds:2184*60*60*1e3},months:{weeks:4,days:30,hours:720,minutes:720*60,seconds:720*60*60,milliseconds:720*60*60*1e3},...ur},U=146097/400,W=146097/4800,fr={years:{quarters:4,months:12,weeks:U/7,days:U,hours:U*24,minutes:U*24*60,seconds:U*24*60*60,milliseconds:U*24*60*60*1e3},quarters:{months:3,weeks:U/28,days:U/4,hours:U*24/4,minutes:U*24*60/4,seconds:U*24*60*60/4,milliseconds:U*24*60*60*1e3/4},months:{weeks:W/7,days:W,hours:W*24,minutes:W*24*60,seconds:W*24*60*60,milliseconds:W*24*60*60*1e3},...ur},G=[`years`,`quarters`,`months`,`weeks`,`days`,`hours`,`minutes`,`seconds`,`milliseconds`],pr=G.slice(0).reverse();function K(e,t,n=!1){return new q({values:n?t.values:{...e.values,...t.values||{}},loc:e.loc.clone(t.loc),conversionAccuracy:t.conversionAccuracy||e.conversionAccuracy,matrix:t.matrix||e.matrix})}function mr(e,t){let n=t.milliseconds??0;for(let r of pr.slice(1))t[r]&&(n+=t[r]*e[r].milliseconds);return n}function hr(e,t){let n=mr(e,t)<0?-1:1;G.reduceRight((r,i)=>{if(O(t[i]))return r;if(r){let a=t[r]*n,o=e[i][r],s=Math.floor(a/o);t[i]+=s*n,t[r]-=s*o*n}return i},null),G.reduce((n,r)=>{if(O(t[r]))return n;if(n){let i=t[n]%1;t[n]-=i,t[r]+=i*e[n][r]}return r},null)}function gr(e){let t={};for(let[n,r]of Object.entries(e))r!==0&&(t[n]=r);return t}var q=class e{constructor(e){let t=e.conversionAccuracy===`longterm`||!1,n=t?fr:dr;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||x.create(),this.conversionAccuracy=t?`longterm`:`casual`,this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(t,n){return e.fromObject({milliseconds:t},n)}static fromObject(t,n={}){if(typeof t!=`object`||!t)throw new s(`Duration.fromObject: argument expected to be an object, got ${t===null?`null`:typeof t}`);return new e({values:Wt(t,e.normalizeUnit),loc:x.fromObject(n),conversionAccuracy:n.conversionAccuracy,matrix:n.matrix})}static fromDurationLike(t){if(k(t))return e.fromMillis(t);if(e.isDuration(t))return t;if(typeof t==`object`)return e.fromObject(t);throw new s(`Unknown duration argument ${t} of type ${typeof t}`)}static fromISO(t,n){let[r]=nr(t);return r?e.fromObject(r,n):e.invalid(`unparsable`,`the input "${t}" can't be parsed as ISO 8601`)}static fromISOTime(t,n){let[r]=ir(t);return r?e.fromObject(r,n):e.invalid(`unparsable`,`the input "${t}" can't be parsed as ISO 8601`)}static invalid(t,n=null){if(!t)throw new s(`need to specify a reason the Duration is invalid`);let r=t instanceof E?t:new E(t,n);if(T.throwOnInvalid)throw new i(r);return new e({invalid:r})}static normalizeUnit(e){let t={year:`years`,years:`years`,quarter:`quarters`,quarters:`quarters`,month:`months`,months:`months`,week:`weeks`,weeks:`weeks`,day:`days`,days:`days`,hour:`hours`,hours:`hours`,minute:`minutes`,minutes:`minutes`,second:`seconds`,seconds:`seconds`,millisecond:`milliseconds`,milliseconds:`milliseconds`}[e&&e.toLowerCase()];if(!t)throw new o(e);return t}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,t={}){let n={...t,floor:t.round!==!1&&t.floor!==!1};return this.isValid?L.create(this.loc,n).formatDurationFromString(this,e):lr}toHuman(e={}){if(!this.isValid)return lr;let t=e.showZeros!==!1,n=G.map(n=>{let r=this.values[n];return O(r)||r===0&&!t?null:this.loc.numberFormatter({style:`unit`,unitDisplay:`long`,...e,unit:n.slice(0,-1)}).format(r)}).filter(e=>e);return this.loc.listFormatter({type:`conjunction`,style:e.listStyle||`narrow`,...e}).format(n)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e=`P`;return this.years!==0&&(e+=this.years+`Y`),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+`M`),this.weeks!==0&&(e+=this.weeks+`W`),this.days!==0&&(e+=this.days+`D`),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+=`T`),this.hours!==0&&(e+=this.hours+`H`),this.minutes!==0&&(e+=this.minutes+`M`),(this.seconds!==0||this.milliseconds!==0)&&(e+=Ft(this.seconds+this.milliseconds/1e3,3)+`S`),e===`P`&&(e+=`T0S`),e}toISOTime(e={}){if(!this.isValid)return null;let t=this.toMillis();return t<0||t>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:`extended`,...e,includeOffset:!1},$.fromMillis(t,{zone:`UTC`}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for(`nodejs.util.inspect.custom`)](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?mr(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(t){if(!this.isValid)return this;let n=e.fromDurationLike(t),r={};for(let e of G)(A(n.values,e)||A(this.values,e))&&(r[e]=n.get(e)+this.get(e));return K(this,{values:r},!0)}minus(t){if(!this.isValid)return this;let n=e.fromDurationLike(t);return this.plus(n.negate())}mapUnits(e){if(!this.isValid)return this;let t={};for(let n of Object.keys(this.values))t[n]=Ut(e(this.values[n],n));return K(this,{values:t},!0)}get(t){return this[e.normalizeUnit(t)]}set(t){if(!this.isValid)return this;let n={...this.values,...Wt(t,e.normalizeUnit)};return K(this,{values:n})}reconfigure({locale:e,numberingSystem:t,conversionAccuracy:n,matrix:r}={}){let i={loc:this.loc.clone({locale:e,numberingSystem:t}),matrix:r,conversionAccuracy:n};return K(this,i)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return hr(this.matrix,e),K(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=gr(this.normalize().shiftToAll().toObject());return K(this,{values:e},!0)}shiftTo(...t){if(!this.isValid||t.length===0)return this;t=t.map(t=>e.normalizeUnit(t));let n={},r={},i=this.toObject(),a;for(let e of G)if(t.indexOf(e)>=0){a=e;let t=0;for(let n in r)t+=this.matrix[n][e]*r[n],r[n]=0;k(i[e])&&(t+=i[e]);let o=Math.trunc(t);n[e]=o,r[e]=(t*1e3-o*1e3)/1e3}else k(i[e])&&(r[e]=i[e]);for(let e in r)r[e]!==0&&(n[a]+=e===a?r[e]:r[e]/this.matrix[a][e]);return hr(this.matrix,n),K(this,{values:n},!0)}shiftToAll(){return this.isValid?this.shiftTo(`years`,`months`,`weeks`,`days`,`hours`,`minutes`,`seconds`,`milliseconds`):this}negate(){if(!this.isValid)return this;let e={};for(let t of Object.keys(this.values))e[t]=this.values[t]===0?0:-this.values[t];return K(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;let e=gr(this.values);return K(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function t(e,t){return e===void 0||e===0?t===void 0||t===0:e===t}for(let n of G)if(!t(this.values[n],e.values[n]))return!1;return!0}},J=`Invalid Interval`;function _r(e,t){return!e||!e.isValid?vr.invalid(`missing or invalid start`):!t||!t.isValid?vr.invalid(`missing or invalid end`):t<e?vr.invalid(`end before start`,`The end of an interval must be after its start, but you had start=${e.toISO()} and end=${t.toISO()}`):null}var vr=class e{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(t,n=null){if(!t)throw new s(`need to specify a reason the Interval is invalid`);let i=t instanceof E?t:new E(t,n);if(T.throwOnInvalid)throw new r(i);return new e({invalid:i})}static fromDateTimes(t,n){let r=_i(t),i=_i(n);return _r(r,i)??new e({start:r,end:i})}static after(t,n){let r=q.fromDurationLike(n),i=_i(t);return e.fromDateTimes(i,i.plus(r))}static before(t,n){let r=q.fromDurationLike(n),i=_i(t);return e.fromDateTimes(i.minus(r),i)}static fromISO(t,n){let[r,i]=(t||``).split(`/`,2);if(r&&i){let t,a;try{t=$.fromISO(r,n),a=t.isValid}catch{a=!1}let o,s;try{o=$.fromISO(i,n),s=o.isValid}catch{s=!1}if(a&&s)return e.fromDateTimes(t,o);if(a){let r=q.fromISO(i,n);if(r.isValid)return e.after(t,r)}else if(s){let t=q.fromISO(r,n);if(t.isValid)return e.before(o,t)}}return e.invalid(`unparsable`,`the input "${t}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get lastDateTime(){return this.isValid&&this.e?this.e.minus(1):null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e=`milliseconds`){return this.isValid?this.toDuration(e).get(e):NaN}count(e=`milliseconds`,t){if(!this.isValid)return NaN;let n=this.start.startOf(e,t),r;return r=t!=null&&t.useLocaleWeeks?this.end.reconfigure({locale:n.locale}):this.end,r=r.startOf(e,t),Math.floor(r.diff(n,e).get(e))+(r.valueOf()!==this.end.valueOf())}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:t,end:n}={}){return this.isValid?e.fromDateTimes(t||this.s,n||this.e):this}splitAt(...t){if(!this.isValid)return[];let n=t.map(_i).filter(e=>this.contains(e)).sort((e,t)=>e.toMillis()-t.toMillis()),r=[],{s:i}=this,a=0;for(;i<this.e;){let t=n[a]||this.e,o=+t>+this.e?this.e:t;r.push(e.fromDateTimes(i,o)),i=o,a+=1}return r}splitBy(t){let n=q.fromDurationLike(t);if(!this.isValid||!n.isValid||n.as(`milliseconds`)===0)return[];let{s:r}=this,i=1,a,o=[];for(;r<this.e;){let t=this.start.plus(n.mapUnits(e=>e*i));a=+t>+this.e?this.e:t,o.push(e.fromDateTimes(r,a)),r=a,i+=1}return o}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(t){if(!this.isValid)return this;let n=this.s>t.s?this.s:t.s,r=this.e<t.e?this.e:t.e;return n>=r?null:e.fromDateTimes(n,r)}union(t){if(!this.isValid)return this;let n=this.s<t.s?this.s:t.s,r=this.e>t.e?this.e:t.e;return e.fromDateTimes(n,r)}static merge(e){let[t,n]=e.sort((e,t)=>e.s-t.s).reduce(([e,t],n)=>t?t.overlaps(n)||t.abutsStart(n)?[e,t.union(n)]:[e.concat([t]),n]:[e,n],[[],null]);return n&&t.push(n),t}static xor(t){let n=null,r=0,i=[],a=t.map(e=>[{time:e.s,type:`s`},{time:e.e,type:`e`}]),o=Array.prototype.concat(...a).sort((e,t)=>e.time-t.time);for(let t of o)r+=t.type===`s`?1:-1,r===1?n=t.time:(n&&+n!=+t.time&&i.push(e.fromDateTimes(n,t.time)),n=null);return e.merge(i)}difference(...t){return e.xor([this].concat(t)).map(e=>this.intersection(e)).filter(e=>e&&!e.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} – ${this.e.toISO()})`:J}[Symbol.for(`nodejs.util.inspect.custom`)](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=f,t={}){return this.isValid?L.create(this.s.loc.clone(t),e).formatInterval(this):J}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:J}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:J}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:J}toFormat(e,{separator:t=` – `}={}){return this.isValid?`${this.s.toFormat(e)}${t}${this.e.toFormat(e)}`:J}toDuration(e,t){return this.isValid?this.e.diff(this.s,e,t):q.invalid(this.invalidReason)}mapEndpoints(t){return e.fromDateTimes(t(this.s),t(this.e))}},yr=class{static hasDST(e=T.defaultZone){let t=$.now().setZone(e).set({month:12});return!e.isUniversal&&t.offset!==t.set({month:6}).offset}static isValidIANAZone(e){return b.isValidZone(e)}static normalizeZone(e){return C(e,T.defaultZone)}static getStartOfWeek({locale:e=null,locObj:t=null}={}){return(t||x.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:t=null}={}){return(t||x.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:t=null}={}){return(t||x.create(e)).getWeekendDays().slice()}static months(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null,outputCalendar:i=`gregory`}={}){return(r||x.create(t,n,i)).months(e)}static monthsFormat(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null,outputCalendar:i=`gregory`}={}){return(r||x.create(t,n,i)).months(e,!0)}static weekdays(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null}={}){return(r||x.create(t,n,null)).weekdays(e)}static weekdaysFormat(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null}={}){return(r||x.create(t,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return x.create(e).meridiems()}static eras(e=`short`,{locale:t=null}={}){return x.create(t,null,`gregory`).eras(e)}static features(){return{relative:Dt(),localeWeek:Ot()}}};function br(e,t){let n=e=>e.toUTC(0,{keepLocalTime:!0}).startOf(`day`).valueOf(),r=n(t)-n(e);return Math.floor(q.fromMillis(r).as(`days`))}function xr(e,t,n){let r=[[`years`,(e,t)=>t.year-e.year],[`quarters`,(e,t)=>t.quarter-e.quarter+(t.year-e.year)*4],[`months`,(e,t)=>t.month-e.month+(t.year-e.year)*12],[`weeks`,(e,t)=>{let n=br(e,t);return(n-n%7)/7}],[`days`,br]],i={},a=e,o,s;for(let[c,l]of r)n.indexOf(c)>=0&&(o=c,i[c]=l(e,t),s=a.plus(i),s>t?(i[c]--,e=a.plus(i),e>t&&(s=e,i[c]--,e=a.plus(i))):e=s);return[e,i,s,o]}function Sr(e,t,n,r){let[i,a,o,s]=xr(e,t,n),c=t-i,l=n.filter(e=>[`hours`,`minutes`,`seconds`,`milliseconds`].indexOf(e)>=0);l.length===0&&(o<t&&(o=i.plus({[s]:1})),o!==i&&(a[s]=(a[s]||0)+c/(o-i)));let u=q.fromObject(a,r);return l.length>0?q.fromMillis(c,r).shiftTo(...l).plus(u):u}var Cr=`missing Intl.DateTimeFormat.formatToParts support`;function Y(e,t=e=>e){return{regex:e,deser:([e])=>t(Qe(e))}}var wr=`[ \xA0]`,Tr=new RegExp(wr,`g`);function Er(e){return e.replace(/\./g,`\\.?`).replace(Tr,wr)}function Dr(e){return e.replace(/\./g,``).replace(Tr,` `).toLowerCase()}function X(e,t){return e===null?null:{regex:RegExp(e.map(Er).join(`|`)),deser:([n])=>e.findIndex(e=>Dr(n)===Dr(e))+t}}function Or(e,t){return{regex:e,deser:([,e,t])=>Ht(e,t),groups:t}}function kr(e){return{regex:e,deser:([e])=>e}}function Ar(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,`\\$&`)}function jr(e,t){let n=w(t),r=w(t,`{2}`),i=w(t,`{3}`),a=w(t,`{4}`),o=w(t,`{6}`),s=w(t,`{1,2}`),c=w(t,`{1,3}`),l=w(t,`{1,6}`),u=w(t,`{1,9}`),d=w(t,`{2,4}`),f=w(t,`{4,6}`),p=e=>({regex:RegExp(Ar(e.val)),deser:([e])=>e,literal:!0}),m=(m=>{if(e.literal)return p(m);switch(m.val){case`G`:return X(t.eras(`short`),0);case`GG`:return X(t.eras(`long`),0);case`y`:return Y(l);case`yy`:return Y(d,Bt);case`yyyy`:return Y(a);case`yyyyy`:return Y(f);case`yyyyyy`:return Y(o);case`M`:return Y(s);case`MM`:return Y(r);case`MMM`:return X(t.months(`short`,!0),1);case`MMMM`:return X(t.months(`long`,!0),1);case`L`:return Y(s);case`LL`:return Y(r);case`LLL`:return X(t.months(`short`,!1),1);case`LLLL`:return X(t.months(`long`,!1),1);case`d`:return Y(s);case`dd`:return Y(r);case`o`:return Y(c);case`ooo`:return Y(i);case`HH`:return Y(r);case`H`:return Y(s);case`hh`:return Y(r);case`h`:return Y(s);case`mm`:return Y(r);case`m`:return Y(s);case`q`:return Y(s);case`qq`:return Y(r);case`s`:return Y(s);case`ss`:return Y(r);case`S`:return Y(c);case`SSS`:return Y(i);case`u`:return kr(u);case`uu`:return kr(s);case`uuu`:return Y(n);case`a`:return X(t.meridiems(),0);case`kkkk`:return Y(a);case`kk`:return Y(d,Bt);case`W`:return Y(s);case`WW`:return Y(r);case`E`:case`c`:return Y(n);case`EEE`:return X(t.weekdays(`short`,!1),1);case`EEEE`:return X(t.weekdays(`long`,!1),1);case`ccc`:return X(t.weekdays(`short`,!0),1);case`cccc`:return X(t.weekdays(`long`,!0),1);case`Z`:case`ZZ`:return Or(RegExp(`([+-]${s.source})(?::(${r.source}))?`),2);case`ZZZ`:return Or(RegExp(`([+-]${s.source})(${r.source})?`),2);case`z`:return kr(/[a-z_+-/]{1,256}?/i);case` `:return kr(/[^\S\n\r]/);default:return p(m)}})(e)||{invalidReason:Cr};return m.token=e,m}var Mr={year:{"2-digit":`yy`,numeric:`yyyyy`},month:{numeric:`M`,"2-digit":`MM`,short:`MMM`,long:`MMMM`},day:{numeric:`d`,"2-digit":`dd`},weekday:{short:`EEE`,long:`EEEE`},dayperiod:`a`,dayPeriod:`a`,hour12:{numeric:`h`,"2-digit":`hh`},hour24:{numeric:`H`,"2-digit":`HH`},minute:{numeric:`m`,"2-digit":`mm`},second:{numeric:`s`,"2-digit":`ss`},timeZoneName:{long:`ZZZZZ`,short:`ZZZ`}};function Nr(e,t,n){let{type:r,value:i}=e;if(r===`literal`){let e=/^\s+$/.test(i);return{literal:!e,val:e?` `:i}}let a=t[r],o=r;r===`hour`&&(o=t.hour12==null?t.hourCycle==null?n.hour12?`hour12`:`hour24`:t.hourCycle===`h11`||t.hourCycle===`h12`?`hour12`:`hour24`:t.hour12?`hour12`:`hour24`);let s=Mr[o];if(typeof s==`object`&&(s=s[a]),s)return{literal:!1,val:s}}function Pr(e){return[`^${e.map(e=>e.regex).reduce((e,t)=>`${e}(${t.source})`,``)}$`,e]}function Fr(e,t,n){let r=e.match(t);if(r){let e={},t=1;for(let i in n)if(A(n,i)){let a=n[i],o=a.groups?a.groups+1:1;!a.literal&&a.token&&(e[a.token.val[0]]=a.deser(r.slice(t,t+o))),t+=o}return[r,e]}else return[r,{}]}function Ir(e){let t=e=>{switch(e){case`S`:return`millisecond`;case`s`:return`second`;case`m`:return`minute`;case`h`:case`H`:return`hour`;case`d`:return`day`;case`o`:return`ordinal`;case`L`:case`M`:return`month`;case`y`:return`year`;case`E`:case`c`:return`weekday`;case`W`:return`weekNumber`;case`k`:return`weekYear`;case`q`:return`quarter`;default:return null}},n=null,r;return O(e.z)||(n=b.create(e.z)),O(e.Z)||(n||=new S(e.Z),r=e.Z),O(e.q)||(e.M=(e.q-1)*3+1),O(e.h)||(e.h<12&&e.a===1?e.h+=12:e.h===12&&e.a===0&&(e.h=0)),e.G===0&&e.y&&(e.y=-e.y),O(e.u)||(e.S=Pt(e.u)),[Object.keys(e).reduce((n,r)=>{let i=t(r);return i&&(n[i]=e[r]),n},{}),n,r]}var Lr=null;function Rr(){return Lr||=$.fromMillis(1555555555555),Lr}function zr(e,t){if(e.literal)return e;let n=Wr(L.macroTokenToFormatOpts(e.val),t);return n==null||n.includes(void 0)?e:n}function Br(e,t){return Array.prototype.concat(...e.map(e=>zr(e,t)))}var Vr=class{constructor(e,t){if(this.locale=e,this.format=t,this.tokens=Br(L.parseFormat(t),e),this.units=this.tokens.map(t=>jr(t,e)),this.disqualifyingUnit=this.units.find(e=>e.invalidReason),!this.disqualifyingUnit){let[e,t]=Pr(this.units);this.regex=RegExp(e,`i`),this.handlers=t}}explainFromTokens(e){if(this.isValid){let[t,n]=Fr(e,this.regex,this.handlers),[r,i,o]=n?Ir(n):[null,null,void 0];if(A(n,`a`)&&A(n,`H`))throw new a(`Can't include meridiem when specifying 24-hour format`);return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:t,matches:n,result:r,zone:i,specificOffset:o}}else return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}};function Hr(e,t,n){return new Vr(e,n).explainFromTokens(t)}function Ur(e,t,n){let{result:r,zone:i,specificOffset:a,invalidReason:o}=Hr(e,t,n);return[r,i,a,o]}function Wr(e,t){if(!e)return null;let n=L.create(t,e).dtFormatter(Rr()),r=n.formatToParts(),i=n.resolvedOptions();return r.map(t=>Nr(t,e,i))}var Gr=`Invalid DateTime`,Kr=864e13;function qr(e){return new E(`unsupported zone`,`the zone "${e.name}" is not supported`)}function Jr(e){return e.weekData===null&&(e.weekData=ht(e.c)),e.weekData}function Yr(e){return e.localWeekData===null&&(e.localWeekData=ht(e.c,e.loc.getMinDaysInFirstWeek(),e.loc.getStartOfWeek())),e.localWeekData}function Z(e,t){let n={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new $({...n,...t,old:n})}function Xr(e,t,n){let r=e-t*60*1e3,i=n.offset(r);if(t===i)return[r,t];r-=(i-t)*60*1e3;let a=n.offset(r);return i===a?[r,i]:[e-Math.min(i,a)*60*1e3,Math.max(i,a)]}function Zr(e,t){e+=t*60*1e3;let n=new Date(e);return{year:n.getUTCFullYear(),month:n.getUTCMonth()+1,day:n.getUTCDate(),hour:n.getUTCHours(),minute:n.getUTCMinutes(),second:n.getUTCSeconds(),millisecond:n.getUTCMilliseconds()}}function Qr(e,t,n){return Xr(Lt(e),t,n)}function $r(e,t){let n=e.o,r=e.c.year+Math.trunc(t.years),i=e.c.month+Math.trunc(t.months)+Math.trunc(t.quarters)*3,a={...e.c,year:r,month:i,day:Math.min(e.c.day,It(r,i))+Math.trunc(t.days)+Math.trunc(t.weeks)*7},o=q.fromObject({years:t.years-Math.trunc(t.years),quarters:t.quarters-Math.trunc(t.quarters),months:t.months-Math.trunc(t.months),weeks:t.weeks-Math.trunc(t.weeks),days:t.days-Math.trunc(t.days),hours:t.hours,minutes:t.minutes,seconds:t.seconds,milliseconds:t.milliseconds}).as(`milliseconds`),[s,c]=Xr(Lt(a),n,e.zone);return o!==0&&(s+=o,c=e.zone.offset(s)),{ts:s,o:c}}function Q(e,t,n,r,i,a){let{setZone:o,zone:s}=n;if(e&&Object.keys(e).length!==0||t){let r=t||s,i=$.fromObject(e,{...n,zone:r,specificOffset:a});return o?i:i.setZone(s)}else return $.invalid(new E(`unparsable`,`the input "${i}" can't be parsed as ${r}`))}function ei(e,t,n=!0){return e.isValid?L.create(x.create(`en-US`),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(e,t):null}function ti(e,t,n){let r=e.c.year>9999||e.c.year<0,i=``;if(r&&e.c.year>=0&&(i+=`+`),i+=M(e.c.year,r?6:4),n===`year`)return i;if(t){if(i+=`-`,i+=M(e.c.month),n===`month`)return i;i+=`-`}else if(i+=M(e.c.month),n===`month`)return i;return i+=M(e.c.day),i}function ni(e,t,n,r,i,a,o){let s=!n||e.c.millisecond!==0||e.c.second!==0,c=``;switch(o){case`day`:case`month`:case`year`:break;default:if(c+=M(e.c.hour),o===`hour`)break;if(t){if(c+=`:`,c+=M(e.c.minute),o===`minute`)break;s&&(c+=`:`,c+=M(e.c.second))}else{if(c+=M(e.c.minute),o===`minute`)break;s&&(c+=M(e.c.second))}if(o===`second`)break;s&&(!r||e.c.millisecond!==0)&&(c+=`.`,c+=M(e.c.millisecond,3))}return i&&(e.isOffsetFixed&&e.offset===0&&!a?c+=`Z`:e.o<0?(c+=`-`,c+=M(Math.trunc(-e.o/60)),c+=`:`,c+=M(Math.trunc(-e.o%60))):(c+=`+`,c+=M(Math.trunc(e.o/60)),c+=`:`,c+=M(Math.trunc(e.o%60)))),a&&(c+=`[`+e.zone.ianaName+`]`),c}var ri={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},ii={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},ai={ordinal:1,hour:0,minute:0,second:0,millisecond:0},oi=[`year`,`month`,`day`,`hour`,`minute`,`second`,`millisecond`],si=[`weekYear`,`weekNumber`,`weekday`,`hour`,`minute`,`second`,`millisecond`],ci=[`year`,`ordinal`,`hour`,`minute`,`second`,`millisecond`];function li(e){let t={year:`year`,years:`year`,month:`month`,months:`month`,day:`day`,days:`day`,hour:`hour`,hours:`hour`,minute:`minute`,minutes:`minute`,quarter:`quarter`,quarters:`quarter`,second:`second`,seconds:`second`,millisecond:`millisecond`,milliseconds:`millisecond`,weekday:`weekday`,weekdays:`weekday`,weeknumber:`weekNumber`,weeksnumber:`weekNumber`,weeknumbers:`weekNumber`,weekyear:`weekYear`,weekyears:`weekYear`,ordinal:`ordinal`}[e.toLowerCase()];if(!t)throw new o(e);return t}function ui(e){switch(e.toLowerCase()){case`localweekday`:case`localweekdays`:return`localWeekday`;case`localweeknumber`:case`localweeknumbers`:return`localWeekNumber`;case`localweekyear`:case`localweekyears`:return`localWeekYear`;default:return li(e)}}function di(e){if(hi===void 0&&(hi=T.now()),e.type!==`iana`)return e.offset(hi);let t=e.name,n=gi.get(t);return n===void 0&&(n=e.offset(hi),gi.set(t,n)),n}function fi(e,t){let n=C(t.zone,T.defaultZone);if(!n.isValid)return $.invalid(qr(n));let r=x.fromObject(t),i,a;if(O(e.year))i=T.now();else{for(let t of oi)O(e[t])&&(e[t]=ri[t]);let t=St(e)||Ct(e);if(t)return $.invalid(t);let r=di(n);[i,a]=Qr(e,r,n)}return new $({ts:i,zone:n,loc:r,o:a})}function pi(e,t,n){let r=O(n.round)?!0:n.round,i=O(n.rounding)?`trunc`:n.rounding,a=(e,a)=>(e=Ft(e,r||n.calendary?0:2,n.calendary?`round`:i),t.loc.clone(n).relFormatter(n).format(e,a)),o=r=>n.calendary?t.hasSame(e,r)?0:t.startOf(r).diff(e.startOf(r),r).get(r):t.diff(e,r).get(r);if(n.unit)return a(o(n.unit),n.unit);for(let e of n.units){let t=o(e);if(Math.abs(t)>=1)return a(t,e)}return a(e>t?-0:0,n.units[n.units.length-1])}function mi(e){let t={},n;return e.length>0&&typeof e[e.length-1]==`object`?(t=e[e.length-1],n=Array.from(e).slice(0,e.length-1)):n=Array.from(e),[t,n]}var hi,gi=new Map,$=class e{constructor(e){let t=e.zone||T.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new E(`invalid input`):null)||(t.isValid?null:qr(t));this.ts=O(e.ts)?T.now():e.ts;let r=null,i=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(t))[r,i]=[e.old.c,e.old.o];else{let a=k(e.o)&&!e.old?e.o:t.offset(this.ts);r=Zr(this.ts,a),n=Number.isNaN(r.year)?new E(`invalid input`):null,r=n?null:r,i=n?null:a}this._zone=t,this.loc=e.loc||x.create(),this.invalid=n,this.weekData=null,this.localWeekData=null,this.c=r,this.o=i,this.isLuxonDateTime=!0}static now(){return new e({})}static local(){let[e,t]=mi(arguments),[n,r,i,a,o,s,c]=t;return fi({year:n,month:r,day:i,hour:a,minute:o,second:s,millisecond:c},e)}static utc(){let[e,t]=mi(arguments),[n,r,i,a,o,s,c]=t;return e.zone=S.utcInstance,fi({year:n,month:r,day:i,hour:a,minute:o,second:s,millisecond:c},e)}static fromJSDate(t,n={}){let r=Et(t)?t.valueOf():NaN;if(Number.isNaN(r))return e.invalid(`invalid input`);let i=C(n.zone,T.defaultZone);return i.isValid?new e({ts:r,zone:i,loc:x.fromObject(n)}):e.invalid(qr(i))}static fromMillis(t,n={}){if(!k(t))throw new s(`fromMillis requires a numerical input, but received a ${typeof t} with value ${t}`);return t<-864e13||t>Kr?e.invalid(`Timestamp out of range`):new e({ts:t,zone:C(n.zone,T.defaultZone),loc:x.fromObject(n)})}static fromSeconds(t,n={}){if(k(t))return new e({ts:t*1e3,zone:C(n.zone,T.defaultZone),loc:x.fromObject(n)});throw new s(`fromSeconds requires a numerical input`)}static fromObject(t,n={}){t||={};let r=C(n.zone,T.defaultZone);if(!r.isValid)return e.invalid(qr(r));let i=x.fromObject(n),o=Wt(t,ui),{minDaysInFirstWeek:s,startOfWeek:c}=yt(o,i),l=T.now(),u=O(n.specificOffset)?r.offset(l):n.specificOffset,d=!O(o.ordinal),f=!O(o.year),p=!O(o.month)||!O(o.day),m=f||p,ee=o.weekYear||o.weekNumber;if((m||d)&&ee)throw new a(`Can't mix weekYear/weekNumber units with year/month/day or ordinals`);if(p&&d)throw new a(`Can't mix ordinal dates with month/day`);let te=ee||o.weekday&&!m,h,g,_=Zr(l,u);te?(h=si,g=ii,_=ht(_,s,c)):d?(h=ci,g=ai,_=_t(_)):(h=oi,g=ri);let ne=!1;for(let e of h){let t=o[e];O(t)?ne?o[e]=g[e]:o[e]=_[e]:ne=!0}let re=(te?bt(o,s,c):d?xt(o):St(o))||Ct(o);if(re)return e.invalid(re);let[ie,ae]=Qr(te?gt(o,s,c):d?vt(o):o,u,r),v=new e({ts:ie,zone:r,o:ae,loc:i});return o.weekday&&m&&t.weekday!==v.weekday?e.invalid(`mismatched weekday`,`you can't specify both a weekday of ${o.weekday} and a date of ${v.toISO()}`):v.isValid?v:e.invalid(v.invalid)}static fromISO(e,t={}){let[n,r]=$n(e);return Q(n,r,t,`ISO 8601`,e)}static fromRFC2822(e,t={}){let[n,r]=er(e);return Q(n,r,t,`RFC 2822`,e)}static fromHTTP(e,t={}){let[n,r]=tr(e);return Q(n,r,t,`HTTP`,t)}static fromFormat(t,n,r={}){if(O(t)||O(n))throw new s(`fromFormat requires an input string and a format`);let{locale:i=null,numberingSystem:a=null}=r,[o,c,l,u]=Ur(x.fromOpts({locale:i,numberingSystem:a,defaultToEN:!0}),t,n);return u?e.invalid(u):Q(o,c,r,`format ${n}`,t,l)}static fromString(t,n,r={}){return e.fromFormat(t,n,r)}static fromSQL(e,t={}){let[n,r]=cr(e);return Q(n,r,t,`SQL`,e)}static invalid(t,r=null){if(!t)throw new s(`need to specify a reason the DateTime is invalid`);let i=t instanceof E?t:new E(t,r);if(T.throwOnInvalid)throw new n(i);return new e({invalid:i})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,t={}){let n=Wr(e,x.fromObject(t));return n?n.map(e=>e?e.val:null).join(``):null}static expandFormat(e,t={}){return Br(L.parseFormat(e),x.fromObject(t)).map(e=>e.val).join(``)}static resetCache(){hi=void 0,gi.clear()}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Jr(this).weekYear:NaN}get weekNumber(){return this.isValid?Jr(this).weekNumber:NaN}get weekday(){return this.isValid?Jr(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Yr(this).weekday:NaN}get localWeekNumber(){return this.isValid?Yr(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Yr(this).weekYear:NaN}get ordinal(){return this.isValid?_t(this.c).ordinal:NaN}get monthShort(){return this.isValid?yr.months(`short`,{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?yr.months(`long`,{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?yr.weekdays(`short`,{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?yr.weekdays(`long`,{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:`short`,locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:`long`,locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];let e=864e5,t=6e4,n=Lt(this.c),r=this.zone.offset(n-e),i=this.zone.offset(n+e),a=this.zone.offset(n-r*t),o=this.zone.offset(n-i*t);if(a===o)return[this];let s=n-a*t,c=n-o*t,l=Zr(s,a),u=Zr(c,o);return l.hour===u.hour&&l.minute===u.minute&&l.second===u.second&&l.millisecond===u.millisecond?[Z(this,{ts:s}),Z(this,{ts:c})]:[this]}get isInLeapYear(){return F(this.year)}get daysInMonth(){return It(this.year,this.month)}get daysInYear(){return this.isValid?I(this.year):NaN}get weeksInWeekYear(){return this.isValid?zt(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?zt(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:t,numberingSystem:n,calendar:r}=L.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t,numberingSystem:n,outputCalendar:r}}toUTC(e=0,t={}){return this.setZone(S.instance(e),t)}toLocal(){return this.setZone(T.defaultZone)}setZone(t,{keepLocalTime:n=!1,keepCalendarTime:r=!1}={}){if(t=C(t,T.defaultZone),t.equals(this.zone))return this;if(t.isValid){let e=this.ts;if(n||r){let n=t.offset(this.ts),r=this.toObject();[e]=Qr(r,n,t)}return Z(this,{ts:e,zone:t})}else return e.invalid(qr(t))}reconfigure({locale:e,numberingSystem:t,outputCalendar:n}={}){let r=this.loc.clone({locale:e,numberingSystem:t,outputCalendar:n});return Z(this,{loc:r})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let t=Wt(e,ui),{minDaysInFirstWeek:n,startOfWeek:r}=yt(t,this.loc),i=!O(t.weekYear)||!O(t.weekNumber)||!O(t.weekday),o=!O(t.ordinal),s=!O(t.year),c=!O(t.month)||!O(t.day),l=s||c,u=t.weekYear||t.weekNumber;if((l||o)&&u)throw new a(`Can't mix weekYear/weekNumber units with year/month/day or ordinals`);if(c&&o)throw new a(`Can't mix ordinal dates with month/day`);let d;i?d=gt({...ht(this.c,n,r),...t},n,r):O(t.ordinal)?(d={...this.toObject(),...t},O(t.day)&&(d.day=Math.min(It(d.year,d.month),d.day))):d=vt({..._t(this.c),...t});let[f,p]=Qr(d,this.o,this.zone);return Z(this,{ts:f,o:p})}plus(e){if(!this.isValid)return this;let t=q.fromDurationLike(e);return Z(this,$r(this,t))}minus(e){if(!this.isValid)return this;let t=q.fromDurationLike(e).negate();return Z(this,$r(this,t))}startOf(e,{useLocaleWeeks:t=!1}={}){if(!this.isValid)return this;let n={},r=q.normalizeUnit(e);switch(r){case`years`:n.month=1;case`quarters`:case`months`:n.day=1;case`weeks`:case`days`:n.hour=0;case`hours`:n.minute=0;case`minutes`:n.second=0;case`seconds`:n.millisecond=0;break}if(r===`weeks`)if(t){let e=this.loc.getStartOfWeek(),{weekday:t}=this;t<e&&(n.weekNumber=this.weekNumber-1),n.weekday=e}else n.weekday=1;return r===`quarters`&&(n.month=(Math.ceil(this.month/3)-1)*3+1),this.set(n)}endOf(e,t){return this.isValid?this.plus({[e]:1}).startOf(e,t).minus(1):this}toFormat(e,t={}){return this.isValid?L.create(this.loc.redefaultToEN(t)).formatDateTimeFromString(this,e):Gr}toLocaleString(e=f,t={}){return this.isValid?L.create(this.loc.clone(t),e).formatDateTime(this):Gr}toLocaleParts(e={}){return this.isValid?L.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e=`extended`,suppressSeconds:t=!1,suppressMilliseconds:n=!1,includeOffset:r=!0,extendedZone:i=!1,precision:a=`milliseconds`}={}){if(!this.isValid)return null;a=li(a);let o=e===`extended`,s=ti(this,o,a);return oi.indexOf(a)>=3&&(s+=`T`),s+=ni(this,o,t,n,r,i,a),s}toISODate({format:e=`extended`,precision:t=`day`}={}){return this.isValid?ti(this,e===`extended`,li(t)):null}toISOWeekDate(){return ei(this,`kkkk-'W'WW-c`)}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:t=!1,includeOffset:n=!0,includePrefix:r=!1,extendedZone:i=!1,format:a=`extended`,precision:o=`milliseconds`}={}){return this.isValid?(o=li(o),(r&&oi.indexOf(o)>=3?`T`:``)+ni(this,a===`extended`,t,e,n,i,o)):null}toRFC2822(){return ei(this,`EEE, dd LLL yyyy HH:mm:ss ZZZ`,!1)}toHTTP(){return ei(this.toUTC(),`EEE, dd LLL yyyy HH:mm:ss 'GMT'`)}toSQLDate(){return this.isValid?ti(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:t=!1,includeOffsetSpace:n=!0}={}){let r=`HH:mm:ss.SSS`;return(t||e)&&(n&&(r+=` `),t?r+=`z`:e&&(r+=`ZZ`)),ei(this,r,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Gr}[Symbol.for(`nodejs.util.inspect.custom`)](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let t={...this.c};return e.includeConfig&&(t.outputCalendar=this.outputCalendar,t.numberingSystem=this.loc.numberingSystem,t.locale=this.loc.locale),t}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,t=`milliseconds`,n={}){if(!this.isValid||!e.isValid)return q.invalid(`created by diffing an invalid DateTime`);let r={locale:this.locale,numberingSystem:this.numberingSystem,...n},i=kt(t).map(q.normalizeUnit),a=e.valueOf()>this.valueOf(),o=Sr(a?this:e,a?e:this,i,r);return a?o.negate():o}diffNow(t=`milliseconds`,n={}){return this.diff(e.now(),t,n)}until(e){return this.isValid?vr.fromDateTimes(this,e):this}hasSame(e,t,n){if(!this.isValid)return!1;let r=e.valueOf(),i=this.setZone(e.zone,{keepLocalTime:!0});return i.startOf(t,n)<=r&&r<=i.endOf(t,n)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(t={}){if(!this.isValid)return null;let n=t.base||e.fromObject({},{zone:this.zone}),r=t.padding?this<n?-t.padding:t.padding:0,i=[`years`,`months`,`days`,`hours`,`minutes`,`seconds`],a=t.unit;return Array.isArray(t.unit)&&(i=t.unit,a=void 0),pi(n,this.plus(r),{...t,numeric:`always`,units:i,unit:a})}toRelativeCalendar(t={}){return this.isValid?pi(t.base||e.fromObject({},{zone:this.zone}),this,{...t,numeric:`auto`,units:[`years`,`months`,`days`],calendary:!0}):null}static min(...t){if(!t.every(e.isDateTime))throw new s(`min requires all arguments be DateTimes`);return At(t,e=>e.valueOf(),Math.min)}static max(...t){if(!t.every(e.isDateTime))throw new s(`max requires all arguments be DateTimes`);return At(t,e=>e.valueOf(),Math.max)}static fromFormatExplain(e,t,n={}){let{locale:r=null,numberingSystem:i=null}=n;return Hr(x.fromOpts({locale:r,numberingSystem:i,defaultToEN:!0}),e,t)}static fromStringExplain(t,n,r={}){return e.fromFormatExplain(t,n,r)}static buildFormatParser(e,t={}){let{locale:n=null,numberingSystem:r=null}=t;return new Vr(x.fromOpts({locale:n,numberingSystem:r,defaultToEN:!0}),e)}static fromFormatParser(t,n,r={}){if(O(t)||O(n))throw new s(`fromFormatParser requires an input string and a format parser`);let{locale:i=null,numberingSystem:a=null}=r,o=x.fromOpts({locale:i,numberingSystem:a,defaultToEN:!0});if(!o.equals(n.locale))throw new s(`fromFormatParser called with a locale of ${o}, but the format parser was created for ${n.locale}`);let{result:c,zone:l,specificOffset:u,invalidReason:d}=n.explainFromTokens(t);return d?e.invalid(d):Q(c,l,r,`format ${n.format}`,t,u)}static get DATE_SHORT(){return f}static get DATE_MED(){return p}static get DATE_MED_WITH_WEEKDAY(){return m}static get DATE_FULL(){return ee}static get DATE_HUGE(){return te}static get TIME_SIMPLE(){return h}static get TIME_WITH_SECONDS(){return g}static get TIME_WITH_SHORT_OFFSET(){return _}static get TIME_WITH_LONG_OFFSET(){return ne}static get TIME_24_SIMPLE(){return re}static get TIME_24_WITH_SECONDS(){return ie}static get TIME_24_WITH_SHORT_OFFSET(){return ae}static get TIME_24_WITH_LONG_OFFSET(){return v}static get DATETIME_SHORT(){return oe}static get DATETIME_SHORT_WITH_SECONDS(){return se}static get DATETIME_MED(){return ce}static get DATETIME_MED_WITH_SECONDS(){return le}static get DATETIME_MED_WITH_WEEKDAY(){return ue}static get DATETIME_FULL(){return de}static get DATETIME_FULL_WITH_SECONDS(){return fe}static get DATETIME_HUGE(){return pe}static get DATETIME_HUGE_WITH_SECONDS(){return me}};function _i(e){if($.isDateTime(e))return e;if(e&&e.valueOf&&k(e.valueOf()))return $.fromJSDate(e);if(e&&typeof e==`object`)return $.fromObject(e);throw new s(`Unknown datetime argument: ${e}, of type ${typeof e}`)}e.DateTime=$,e.Duration=q,e.FixedOffsetZone=S,e.IANAZone=b,e.Info=yr,e.Interval=vr,e.InvalidZone=Je,e.Settings=T,e.SystemZone=ge,e.VERSION=`3.7.2`,e.Zone=y}));export{t};
@@ -0,0 +1 @@
1
+ import{i as e,n as t,r as n}from"./hooks-CJepWnbB.js";import{_n as r,dn as i,gn as a,ln as o,un as s,vn as c}from"./index-BOJzlYiz.js";var l=[`short_text`,`long_text`,`address`];s(l);var u=65535,d=e=>new TextEncoder().encode(e).length,f=()=>r({error:`Enter text.`}).trim(),p=()=>f().max(255,{error:`Use 255 characters or fewer.`}),m=()=>f().refine(e=>d(e)<=u,{error:`This text is too long to save. Shorten it a little.`}),h=()=>f().max(32,{error:`Use 32 characters or fewer.`}),g=()=>f().regex(/^[A-Za-z]{2}$/,{error:`Enter a 2-letter country code, like US.`}).toUpperCase(),_=e=>f().pipe(c([i(``),e])).optional();function v(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t instanceof o?{value:t}:t]))}function y(e,{error:t}){return{value:a(Object.fromEntries(Object.entries(e).map(([e,t])=>[e,_(t)]))).refine(e=>Object.values(e).some(e=>typeof e==`string`),{error:t}),fields:e}}var b=v({short_text:p(),long_text:m(),address:y({line1:p(),line2:p(),city:p(),state:p(),postal_code:h(),country:g()},{error:`Enter at least one part of the address.`})});b.address.value;function x(e){let t=b[e];return t?.fields?Object.keys(t.fields):null}var S=`.`,C=`custom_fields`;function w(e){let t=`${C}${S}${e.key}`,n=x(e.type);return n?n.map(e=>({column:`${t}${S}${e}`,subField:e})):[{column:t,subField:null}]}function T(e){return e===C||e.startsWith(`${C}${S}`)}var E={short_text:{label:`Short text`,input:`text`},long_text:{label:`Long text`,input:`textarea`},address:{label:`Address`,input:`address`,subFields:{line1:`Address line 1`,line2:`Address line 2`,city:`City`,state:`State`,postal_code:`Postal code`,country:`Country`}}},D=e=>E[e]?.subFields??{},O=l.map(e=>({id:e,...E[e]})),k=e=>O.find(t=>t.id===e)||O[0],A=e=>k(e.type),j=e=>e.flatMap(e=>{let t=D(e.type);return w({key:e.key,type:e.type}).map(({column:n,subField:r})=>({label:r===null?e.name:`${e.name} (${t[r]})`,value:n,type:e.type}))}),M=e=>{let t=x(e);if(!t)return null;let n=D(e);return t.map(e=>({key:e,label:n[e]}))},N=`MemberCustomFieldsResponseType`,P=N,F=n({dataType:N,path:`/members/custom_fields/`}),I=e=>F({...e,searchParams:{filter:`status:[active,archived]`}});e({dataType:N,path:e=>`/members/custom_fields/${e}/`});var L=t({method:`POST`,path:()=>`/members/custom_fields/`,body:e=>({members_custom_fields:[e]}),invalidateQueries:{dataType:N},updateQueries:{dataType:N,emberUpdateType:`skip`,update:(e,t)=>{let n=t;if(!n?.members_custom_fields)return t;let r=e.members_custom_fields.filter(e=>!n.members_custom_fields.some(t=>t.key===e.key));return{...n,members_custom_fields:[...n.members_custom_fields,...r]}}}}),R=t({method:`PUT`,path:e=>`/members/custom_fields/${e.key}/`,body:({key:e,...t})=>({members_custom_fields:[t]}),invalidateQueries:{dataType:N}}),z=t({method:`PUT`,path:()=>`/members/custom_fields/`,body:e=>({members_custom_fields:e.map(({key:e})=>({key:e}))}),updateQueries:{dataType:N,emberUpdateType:`skip`,update:(e,t)=>{let n=t;if(!n?.members_custom_fields)return t;let r=e.members_custom_fields.map(({key:e})=>e);return{...n,members_custom_fields:B(r,n.members_custom_fields)}}}}),B=(e,t)=>{let n=new Map(e.map((e,t)=>[e,t]));return[...t].sort((e,t)=>(n.get(e.key)??1/0)-(n.get(t.key)??1/0))},V=t({method:`DELETE`,path:e=>`/members/custom_fields/${e}/`,invalidateQueries:{dataType:N}});export{P as a,L as c,z as d,A as f,b as h,O as i,V as l,T as m,j as n,F as o,k as p,M as r,I as s,B as t,R as u};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{o as r}from"./framework-provider-CFLwK5uS.js";import{o as i}from"./hooks-CJepWnbB.js";import{n as a}from"./dist-Ndy-PuGN.js";import{n as o,t as s}from"./dist-DMFGvqqU.js";import{t as c}from"./currency-CQsJu8iC.js";import{c as l,l as u,m as d,t as f}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{a as p}from"./router-provider-CkB_ArLF.js";import{c as m,v as h}from"./dist-Cb5RSHSg.js";import{t as g}from"./box-By_EgGtm.js";import{t as _}from"./container-LiZf3XdY.js";import{t as v}from"./switch-CE2NuMn-.js";import{i as y,n as b,o as x,s as ee,t as S}from"./select-xuZAuDyS.js";import{a as te,i as ne,n as re,o as ie,r as ae,t as oe}from"./breadcrumb-MTj_cKLb.js";import{n as C,t as w}from"./card-CiiE7QfM.js";import{t as se}from"./empty-indicator-WB1WgT9h.js";import{t as T}from"./label-DodDsMzn.js";import{n as ce,o as le,t as E}from"./input-group-DpogNUIt.js";import{t as ue}from"./textarea-d9qEkMOP.js";import{i as de}from"./users-DmGMPfw7.js";import{$n as D,$r as O,A as fe,Bo as pe,D as k,Dn as A,Dr as j,Eo as M,Er as N,F as P,I as me,La as F,Lo as he,Ms as ge,N as _e,O as ve,Or as I,P as ye,Po as be,Pr as L,Qi as xe,Qo as Se,Ri as R,S as Ce,Sr as z,To as we,Tr as B,Ua as Te,Uo as V,Ur as Ee,Ya as De,Yr as H,Zi as Oe,Zr as ke,ai as Ae,ao as je,ar as U,as as Me,b as Ne,co as Pe,cr as W,dr as Fe,eo as Ie,fr as Le,gr as Re,hr as ze,io as Be,j as Ve,jn as He,k as G,ka as Ue,lr as We,m as Ge,mr as Ke,no as qe,oo as Je,or as K,pr as Ye,qa as Xe,ri as Ze,ro as Qe,so as $e,tr as et,va as tt,wr as q,ws as nt,y as rt}from"./index-BOJzlYiz.js";import{t as it}from"./page-header-VLPJfj_d.js";import{a as at}from"./tiers-8iTFjJWg.js";import{r as ot}from"./newsletters-ILsexy-5.js";import{n as J,t as st}from"./use-hash-link-navigation-guard-B9j6HIrV.js";import{f as ct,h as lt,o as ut,r as dt}from"./member-custom-fields-CvGcpaiW.js";import{n as ft,r as pt}from"./label-picker-Cvvbmzb5.js";var Y=e(t(),1),mt=new Set([`active`,`trialing`,`unpaid`,`past_due`]);function ht(e){return(e.subscriptions??[]).some(e=>mt.has(e.status))}function gt(e){return e?`Delete member + Cancel subscription`:`Delete member`}var X=n(),_t=({open:e,onOpenChange:t,member:n,allowLeaveWithUnsavedChanges:r})=>{let i=p(),o=k(),[s,c]=Y.useState(!1);Y.useEffect(()=>{e&&c(!1)},[e]);let l=ht(n),u=n.email||n.name||`this member`,d=async()=>{try{let e=l&&s;await o.mutateAsync({id:n.id,cancel:e}),a.success(e?`${u} was deleted and their Stripe subscription was cancelled.`:`${u} was deleted.`),t(!1),r(),i(`/members`)}catch{a.error(`Couldn’t delete the member. Please try again.`)}};return(0,X.jsx)(z,{open:e,onOpenChange:e=>{o.isPending||t(e)},children:(0,X.jsxs)(q,{"data-testid":`delete-member-modal`,children:[(0,X.jsxs)(j,{children:[(0,X.jsx)(I,{children:`Delete member account`}),(0,X.jsxs)(B,{children:[`Permanently delete `,(0,X.jsx)(`strong`,{children:u}),` from Ghost.`]})]}),l&&(0,X.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,X.jsx)(`h4`,{className:`text-sm font-medium`,children:`Also cancel subscription in Stripe`}),(0,X.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`If disabled, the member’s premium subscription will continue`})]}),(0,X.jsx)(v,{"aria-label":`Also cancel subscription in Stripe`,checked:s,"data-testid":`delete-member-cancel-stripe`,disabled:o.isPending,onCheckedChange:c})]}),(0,X.jsxs)(N,{children:[(0,X.jsx)(L,{"data-testid":`cancel-delete-member`,disabled:o.isPending,variant:`outline`,onClick:()=>t(!1),children:`Cancel`}),(0,X.jsx)(L,{"data-testid":`confirm-delete-member`,disabled:o.isPending,variant:`destructive`,onClick:()=>void d(),children:o.isPending?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(U,{size:`sm`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Deleting`})]}):gt(s&&l)})]})]})})},vt=`Disabled from member settings`,yt=({open:e,onOpenChange:t,member:n})=>{let i=r(),o=ve(),[s,c]=Y.useState(!1);Y.useEffect(()=>{e&&c(!1)},[e]);let l=n.name||n.email||`this member`,u=async()=>{try{await o.mutateAsync({id:n.id,reason:vt,hideComments:s})}catch{a.error(`Couldn’t disable commenting. Please try again.`);return}a.success(`Commenting has been disabled for ${l}.`),t(!1),i.invalidateQueries({queryKey:[`MembersResponseType`]})};return(0,X.jsx)(z,{open:e,onOpenChange:e=>{o.isPending||t(e)},children:(0,X.jsxs)(q,{"data-testid":`disable-commenting-modal`,children:[(0,X.jsxs)(j,{children:[(0,X.jsx)(I,{children:`Disable commenting`}),(0,X.jsxs)(B,{children:[(0,X.jsx)(`strong`,{children:l}),` won’t be able to comment in the future. You can re-enable commenting anytime.`]})]}),(0,X.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,X.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:(0,X.jsx)(`h4`,{className:`text-sm font-medium`,children:`Hide all previous comments`})}),(0,X.jsx)(v,{"aria-label":`Hide all previous comments`,checked:s,"data-testid":`disable-commenting-hide-comments`,disabled:o.isPending,onCheckedChange:c})]}),(0,X.jsxs)(N,{children:[(0,X.jsx)(L,{"data-testid":`cancel-disable-commenting`,disabled:o.isPending,variant:`outline`,onClick:()=>t(!1),children:`Cancel`}),(0,X.jsx)(L,{"data-testid":`confirm-disable-commenting`,disabled:o.isPending,onClick:()=>void u(),children:o.isPending?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(U,{size:`sm`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Disabling`})]}):`Disable commenting`})]})]})})},bt=({open:e,onOpenChange:t,memberId:n})=>{let i=r();Y.useEffect(()=>{e&&i.removeQueries({queryKey:[`MemberSigninUrlResponseType`]})},[e,i]);let{data:o,isFetching:s,isError:c}=Ne(n,{enabled:e,defaultErrorHandler:!1}),l=o?.url??``,u=c||!s&&!c&&!l,[d,f]=Y.useState(!1),p=Y.useRef(null),m=Y.useCallback(()=>{p.current!==null&&(clearTimeout(p.current),p.current=null)},[]);Y.useEffect(()=>{e||(m(),f(!1))},[e,m]),Y.useEffect(()=>m,[m]);let h=async()=>{try{await navigator.clipboard.writeText(l),f(!0),m(),p.current=setTimeout(()=>{f(!1),p.current=null},1e3)}catch{a.error(`Couldn’t copy the impersonation link`)}};return(0,X.jsx)(z,{open:e,onOpenChange:t,children:(0,X.jsxs)(q,{"data-testid":`impersonate-modal`,children:[(0,X.jsxs)(j,{children:[(0,X.jsx)(I,{children:`Impersonate member`}),(0,X.jsx)(B,{children:`A single-use signin link that works for 24 hours. Anyone with the link can sign in as this member.`})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(T,{htmlFor:`member-signin-url`,children:`Signin link`}),(0,X.jsx)(W,{"data-testid":`member-signin-url`,id:`member-signin-url`,value:s?`Generating link…`:u?`Failed to generate link`:l,readOnly:!0})]}),(0,X.jsxs)(N,{children:[(0,X.jsx)(L,{variant:`outline`,onClick:()=>t(!1),children:`Close`}),(0,X.jsx)(L,{disabled:s||u||!l,onClick:()=>void h(),children:s?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(U,{size:`sm`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Generating link`})]}):d?`Copied`:`Copy link`})]})]})})},xt=({open:e,onOpenChange:t,member:n})=>{let r=ye(),i=n.name||n.email||`This member`,o=async()=>{try{await r.mutateAsync({id:n.id}),a.success(`${i} has been signed out from all devices.`),t(!1)}catch{a.error(`Couldn’t sign the member out. Please try again.`)}};return(0,X.jsx)(We,{open:e,onOpenChange:e=>{r.isPending||t(e)},children:(0,X.jsxs)(Le,{"data-testid":`logout-member-modal`,children:[(0,X.jsxs)(ze,{children:[(0,X.jsx)(Re,{children:`Sign out member from all devices?`}),(0,X.jsxs)(Ye,{children:[(0,X.jsx)(`strong`,{children:i}),` will be signed out of all active sessions, and will need to sign in again upon return.`]})]}),(0,X.jsxs)(Ke,{children:[(0,X.jsx)(Fe,{disabled:r.isPending,children:`Cancel`}),(0,X.jsx)(L,{"data-testid":`confirm-logout-member`,disabled:r.isPending,variant:`destructive`,onClick:()=>void o(),children:r.isPending?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(U,{size:`sm`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Signing out`})]}):`Sign out`})]})]})})};function St(e){return e.can_comment===!1}function Ct(e){return St(e)?`Enable commenting`:`Disable commenting`}var wt=({member:e,allowLeaveWithUnsavedChanges:t})=>{let n=r(),{data:o}=i(),[s,c]=Y.useState(!1),[l,u]=Y.useState(!1),[d,f]=Y.useState(!1),[p,m]=Y.useState(!1),h=Ve(),g=P(),_=h.isPending||h.isSuccess&&g,v=St(e),y=Ct(e),b=e.name||e.email||`this member`;if(!o||!de(o))return null;let x=async()=>{if(!v){f(!0);return}try{await h.mutateAsync({id:e.id}),a.success(`Commenting has been enabled for ${b}.`)}catch{a.error(`Couldn’t enable commenting. Please try again.`);return}n.invalidateQueries({queryKey:[`MembersResponseType`]})};return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(H,{children:[(0,X.jsx)(Ae,{asChild:!0,children:(0,X.jsx)(L,{"aria-label":`Actions`,className:`size-(--control-height)`,"data-testid":`member-actions`,size:`icon`,variant:`outline`,children:(0,X.jsx)(pe,{size:16})})}),(0,X.jsxs)(ke,{align:`end`,children:[(0,X.jsx)(O,{"data-testid":`member-actions-impersonate`,onSelect:()=>c(!0),children:`Impersonate`}),(0,X.jsx)(O,{"data-testid":`member-actions-logout`,onSelect:()=>u(!0),children:`Sign out of all devices`}),(0,X.jsx)(O,{"data-testid":`member-actions-commenting`,disabled:_,onSelect:()=>void x(),children:y}),(0,X.jsx)(Ze,{}),(0,X.jsx)(O,{className:`text-destructive focus:text-destructive`,"data-testid":`member-actions-delete`,onSelect:()=>m(!0),children:`Delete member`})]})]}),(0,X.jsx)(bt,{memberId:e.id,open:s,onOpenChange:c}),(0,X.jsx)(xt,{member:e,open:l,onOpenChange:u}),(0,X.jsx)(yt,{member:e,open:d,onOpenChange:f}),(0,X.jsx)(_t,{allowLeaveWithUnsavedChanges:t,member:e,open:p,onOpenChange:m})]})},Z=e(h(),1);function Tt(e){return e?/^(https?:\/\/|\/|#\/)/i.test(e):!1}var Et=new Set([`bif`,`clp`,`djf`,`gnf`,`jpy`,`kmf`,`krw`,`mga`,`pyg`,`rwf`,`ugx`,`vnd`,`vuv`,`xaf`,`xof`,`xpf`]);function Dt(e,t){let n=Et.has(t.toLowerCase())?e:e/100,r=n%1==0;try{return new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t.toUpperCase(),minimumFractionDigits:r?0:2,maximumFractionDigits:r?0:2}).format(n)}catch{return`${n}`}}function Ot(e){return e?.trim()||null}function kt(e){let t;return e.type===`login_event`&&(t=`logged-in`),e.type===`payment_event`&&(t=`subscriptions`),e.type===`newsletter_event`&&(t=e.data.subscribed?`subscribed-to-email`:`unsubscribed-from-email`),e.type===`subscription_event`&&(t=`subscriptions`,e.data.type===`canceled`&&(t=`canceled-subscription`)),(e.type===`signup_event`||e.type===`subscription_event`&&e.data.type===`created`&&e.data.signup)&&(t=`signed-up`),e.type===`email_opened_event`&&(t=`opened-email`),(e.type===`email_sent_event`||e.type===`automated_email_sent_event`)&&(t=`sent-email`),e.type===`email_delivered_event`&&(t=`received-email`),e.type===`email_failed_event`&&(t=`email-delivery-failed`),e.type===`email_complaint_event`&&(t=`email-delivery-spam`),e.type===`comment_event`&&(t=`comment`),(e.type===`click_event`||e.type===`aggregated_click_event`)&&(t=`click`),e.type===`feedback_event`&&(t=e.data.score===1?`more-like-this`:`less-like-this`),e.type===`donation_event`&&(t=`subscriptions`),(e.type===`gift_purchase_event`||e.type===`gift_redemption_event`||e.type===`gift_ended_event`)&&(t=`gift`),e.type===`email_change_event`&&(t=`email-changed`),`event-${t}`}function At(e,t){if(e.type===`signup_event`||e.type===`subscription_event`&&e.data.type===`created`&&e.data.signup)return`signed up`;if(e.type===`login_event`)return`logged in`;if(e.type===`payment_event`)return`made payment`;if(e.type===`newsletter_event`){let n=e.data.newsletter,r=t&&n?.name?n.name:`newsletter`;return e.data.subscribed?`subscribed to ${r}`:`unsubscribed from ${r}`}if(e.type===`subscription_event`){let t=e.data.type;return t===`created`?`started paid subscription`:t===`canceled`?`canceled paid subscription`:t===`reactivated`?`reactivated paid subscription`:t===`expired`?`ended paid subscription`:`changed paid subscription`}if(e.type===`email_opened_event`)return`opened email`;if(e.type===`email_sent_event`)return`sent email`;if(e.type===`automated_email_sent_event`){let t=e.data.automatedEmail;if(t?.source!==`automation_action_revision`)return`received welcome email (${(t?.slug||``).includes(`paid`)?`Paid`:`Free`})`;let n=Ot(t.subject);return n?`received automated email: ${n}`:`received automated email`}if(e.type===`email_delivered_event`)return`received email`;if(e.type===`email_failed_event`)return`bounced email`;if(e.type===`email_complaint_event`)return`email flagged as spam`;if(e.type===`comment_event`)return e.data.parent?`replied to comment`:`commented`;if(e.type===`click_event`)return`clicked link in email`;if(e.type===`aggregated_click_event`){let t=e.data.count?.clicks??1;return t<=1?`clicked link in email`:`clicked ${t} links in email`}if(e.type===`feedback_event`)return e.data.score===1?`more like this`:`less like this`;if(e.type===`email_change_event`)return e.data.from_email&&e.data.to_email?`Email address changed from ${e.data.from_email} to ${e.data.to_email}`:`Email address changed`;if(e.type===`donation_event`)return`Made a one-time payment`;if(e.type===`gift_purchase_event`){let t=e.data.amount,n=e.data.currency,r=e.data.tier_name,i=e.data.duration,a=e.data.cadence;return typeof t==`number`&&n&&r&&typeof i==`number`&&a?`Purchased gift subscription for ${Dt(t,n)} (${r}, ${i} ${i===1?a:`${a}s`})`:`Purchased gift subscription`}if(e.type===`gift_redemption_event`)return`started gift subscription`;if(e.type===`gift_ended_event`)return`gift subscription expired`}function jt(e,t){if(e.type===`automated_email_sent_event`){let t=e.data.automatedEmail;if(t?.source===`automation_action_revision`){let e=Ot(t.subject);return e?`received automated email: ${e}`:`received automated email`}}return At(e,t)}function Mt(e){if(e.type===`signup_event`||e.type===`subscription_event`||e.type===`donation_event`){let t=e.data.attribution;if(t?.title)return t.title}if(e.type===`comment_event`||e.type===`click_event`||e.type===`feedback_event`){let t=e.data.post;if(t?.title)return t.title}return``}function Nt(e){let t=e.data.attribution;return t?.referrer_source?{name:t.referrer_source,url:t.referrer_url??null}:null}function Pt(e,t){if(e.type===`signup_event`&&t.paidMembersEnabled){let t=e.data.created_with_status;return t&&t!==`free`?null:`Free`}if(e.type===`gift_redemption_event`)return e.data.tier_name??void 0}function Ft(e){if(e.type===`click_event`)return e.data.link?.to}function It(e){if(e.type===`comment_event`||e.type===`click_event`||e.type===`feedback_event`){let t=e.data.post;if(t?.url)return t.url}if(e.type===`signup_event`||e.type===`subscription_event`||e.type===`donation_event`){let t=e.data.attribution;if(t?.url)return t.url}}function Lt(e){if(e.type===`click_event`||e.type===`feedback_event`){let t=e.data.post;if(t?.id)return`#/posts/analytics/${t.id}`}if((e.type===`signup_event`||e.type===`subscription_event`)&&e.data.attribution_type===`post`&&e.data.attribution_id)return`#/posts/analytics/${e.data.attribution_id}`}function Rt(e,t){let n=Ot(e.data.member?.name),r=e.data.member?n||e.data.member.email||``:e.data.name||e.data.email||``,i=e.data.member?{...e.data.member,name:n??void 0}:e.data.member;return{id:e.data.id,memberId:e.data.member_id??e.data.member?.id,member:i,emailId:e.data.email_id,email:e.data.email,icon:kt(e),subject:r,action:At(e,t.hasMultipleNewsletters),actionTitle:jt(e,t.hasMultipleNewsletters),join:`–`,object:Mt(e),source:Nt(e),info:Pt(e,t),description:Ft(e),url:It(e),route:Lt(e),timestamp:e.data.created_at}}var zt=({iconName:e})=>{let t={className:`shrink-0 text-muted-foreground`,size:16};switch(e){case`event-signed-up`:return(0,X.jsx)(R,{...t});case`event-logged-in`:return(0,X.jsx)(Pe,{...t});case`event-subscriptions`:return(0,X.jsx)(V,{...t});case`event-canceled-subscription`:return(0,X.jsx)(Se,{...t});case`event-subscribed-to-email`:return(0,X.jsx)(je,{...t});case`event-unsubscribed-from-email`:return(0,X.jsx)($e,{...t});case`event-opened-email`:return(0,X.jsx)(Je,{...t});case`event-received-email`:return(0,X.jsx)(qe,{...t});case`event-sent-email`:return(0,X.jsx)(tt,{...t});case`event-email-delivery-failed`:return(0,X.jsx)(Qe,{...t});case`event-email-delivery-spam`:return(0,X.jsx)(Be,{...t});case`event-email-changed`:return(0,X.jsx)(nt,{...t});case`event-comment`:return(0,X.jsx)(Xe,{...t});case`event-click`:return(0,X.jsx)(Te,{...t});case`event-more-like-this`:return(0,X.jsx)(Oe,{...t});case`event-less-like-this`:return(0,X.jsx)(xe,{...t});case`event-gift`:return(0,X.jsx)(M,{...t});default:return(0,X.jsx)(ge,{...t})}},Bt=({memberId:e})=>(0,X.jsx)(`a`,{className:`block pt-3 font-medium text-primary hover:underline`,"data-testid":`member-activity-view-all`,href:`#/members-activity?member=${e}`,children:`View all member activity →`}),Vt=`All events related to this member will be shown here.`,Ht=e=>e?e.charAt(0).toUpperCase()+e.slice(1):``;function Ut(e){if(e&&typeof e==`object`){let t=e.subject;return t?`“${t}”`:`Email`}}var Wt=({event:e})=>{if(!e.action)return null;let t=Ut(e.email),n=e.object&&(e.route||Tt(e.url)),r=!n&&t,i=e.timestamp?(0,Z.default)(e.timestamp).fromNow():`—`;return(0,X.jsxs)(`div`,{className:`flex items-start gap-3 py-3`,"data-testid":`member-activity-event`,children:[(0,X.jsx)(`div`,{className:`flex size-8 shrink-0 items-center justify-center rounded-full bg-muted`,children:(0,X.jsx)(zt,{iconName:e.icon})}),(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[(0,X.jsxs)(`div`,{className:`text-sm leading-snug`,children:[(0,X.jsx)(`span`,{"data-testid":`member-activity-action`,children:Ht(e.action)}),e.info&&(0,X.jsxs)(`span`,{className:`ml-1 text-muted-foreground`,children:[`(`,e.info,`)`]}),n&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`span`,{className:`mx-1 text-muted-foreground`,children:e.join}),e.route?(0,X.jsx)(`a`,{className:`hover:underline`,href:e.route,children:e.object}):(0,X.jsx)(`a`,{className:`hover:underline`,href:e.url,rel:`noopener noreferrer`,target:`_blank`,children:e.object})]}),r&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`span`,{className:`mx-1 text-muted-foreground`,children:e.join}),(0,X.jsx)(`span`,{className:`text-muted-foreground`,children:t})]})]}),e.description&&(0,X.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:e.description}),(0,X.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:i})]})]})},Gt=({memberId:e,hasMultipleNewsletters:t,hasMultipleTiers:n,paidMembersEnabled:r})=>{let{data:i,isLoading:a}=_e(e??``,{limit:`5`,enabled:!!e}),o=(i?.events??[]).map(e=>Rt(e,{hasMultipleNewsletters:t,hasMultipleTiers:n,paidMembersEnabled:r})),s=new Set;return e?(0,X.jsxs)(`section`,{"aria-labelledby":`member-activity-heading`,className:`flex flex-col gap-3`,children:[(0,X.jsx)(`h3`,{className:`text-base font-semibold`,id:`member-activity-heading`,children:`Activity`}),(0,X.jsx)(w,{children:(0,X.jsxs)(C,{className:`pt-3`,children:[a?(0,X.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,X.jsx)(K,{className:`h-10`}),(0,X.jsx)(K,{className:`h-10`}),(0,X.jsx)(K,{className:`h-10`})]}):o.length===0?(0,X.jsx)(`p`,{className:`py-4 text-center text-sm text-muted-foreground`,"data-testid":`member-activity-empty`,children:`No activity yet`}):(0,X.jsx)(`div`,{className:`divide-y divide-border`,children:o.map(e=>{let t=e.id||`${e.timestamp??`?`}-${e.icon}-${e.action}`,n=t,r=1;for(;s.has(n);)n=`${t}#${r}`,r+=1;return s.add(n),(0,X.jsx)(Wt,{event:e},n)})}),!a&&o.length>0&&(0,X.jsx)(Bt,{memberId:e})]})})]}):(0,X.jsxs)(`section`,{"aria-labelledby":`member-activity-heading`,className:`flex flex-col gap-3`,children:[(0,X.jsx)(`h3`,{className:`text-base font-semibold`,id:`member-activity-heading`,children:`Activity`}),(0,X.jsx)(w,{children:(0,X.jsx)(C,{className:`pt-6`,children:(0,X.jsx)(`div`,{className:`flex flex-col items-center gap-3 py-4`,children:(0,X.jsx)(se,{description:Vt,title:`Activity`,children:(0,X.jsx)(ge,{})})})})})]})},Kt=dt(`address`)??[],qt=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function Q(e){return{name:(e.name??``).trim(),email:(e.email??``).trim(),note:e.note??``,labels:(e.labels??[]).map(e=>({name:e.name,slug:e.slug})).sort((e,t)=>e.slug<t.slug?-1:+(e.slug>t.slug)),newsletters:(e.newsletters??[]).map(e=>e.id).sort()}}function Jt(e){let t={};for(let[n,r]of Object.entries(e??{}))if(typeof r==`string`&&r.trim()!==``)t[n]=r.trim();else if(typeof r==`object`&&r&&!Array.isArray(r)){let e=Xt(r);e&&(t[n]=e)}return t}function Yt(e){let t={};for(let{key:n}of Kt){let r=e[n];typeof r==`string`&&(t[n]=r.trim())}return Object.values(t).some(e=>e!==``)?t:void 0}function Xt(e){let t={};for(let{key:n}of Kt){let r=e[n];typeof r==`string`&&r.trim()!==``&&(t[n]=r.trim())}return Object.keys(t).length?t:void 0}function Zt(e,t){return e.includes(t)?e.filter(e=>e!==t):[...e,t].sort()}function Qt(e){return qt.test(e.trim())}function $t(e,t){return t?e.trim()===``?`Email is required.`:Qt(e)?null:`Invalid email.`:null}function en(e){if(!e?.suppressed)return null;let t=e.info;if(!t)return{label:null};let{reason:n,timestamp:r}=t,i=(0,Z.default)(new Date(r)).format(`D MMM YYYY`);switch(n){case`fail`:return{reason:n,label:`Bounced on ${i}`};case`spam`:return{reason:n,label:`Flagged as spam on ${i}`};default:return{reason:n,label:`Email disabled on ${i}`}}}function tn(e){return e?e.filter(e=>e.subscribe_on_signup===!0&&e.visibility===`members`).map(e=>e.id):[]}function nn(e){return e!==`disabled`}function rn(e){return 500-[...e].length}function an(e,t,n){let r=dn(t),i={id:e,name:r.name,email:r.email,note:r.note,labels:r.labels};return s(r.newsletters,n.newsletters)||(i.newsletters=r.newsletters.map(e=>({id:e}))),i}function on(e){return typeof e==`string`?e.trim()||void 0:Yt(e)}function sn(e,t,n){return{id:e,custom_fields:{[t]:on(n)??null}}}function cn(e,t){let n={};for(let r of t){let t=e[r.key],i=t===void 0?void 0:on(t);if(i===void 0)continue;let a=lt[r.type];if(!a)continue;let o=a.value.safeParse(i);if(!o.success)for(let e of o.error.issues){let t=[r.key,...e.path].join(`.`);n[t]??=e.message}}return n}function ln(e){let t=e?.data,n={};for(let e of t?.errors??[])e.property?.startsWith(`custom_fields.`)&&(n[e.property.slice(14)]=e.context||e.message||`Invalid value.`);return Object.keys(n).length?n:void 0}function un(e,t){return e.map(e=>t.get(e)??{name:e,slug:e})}function dn(e){return{name:e.name.trim(),email:e.email.trim(),note:e.note,labels:e.labels,newsletters:e.newsletters}}function fn(e,t){return!e||!!t&&s(dn(e),t)}function pn(e){if(!e)return null;try{let t=JSON.parse(e);return t&&typeof t==`object`&&!Array.isArray(t)?t:null}catch{return null}}function mn(e){let t=pn(e);return t?t.country_code===`US`&&t.region?`${t.region}, US`:t.country||`Unknown location`:`Unknown location`}function hn(e){let t=[e.state,e.postal_code].filter(Boolean).join(` `);return[e.line1,e.line2,e.city,t,e.country].filter(Boolean).join(`, `)}function gn(e){let t=e?.referrer_source;return!t||t===`Created manually`?null:t}var _n=({message:e})=>e?(0,X.jsx)(`p`,{className:`text-sm text-destructive`,role:`alert`,children:e}):null,vn=({inputId:e,value:t,errors:n,disabled:r,onChange:i})=>(0,X.jsx)(`div`,{className:`grid gap-x-4 gap-y-3 md:grid-cols-2`,children:Kt.map(({key:a,label:o})=>{let s=`${e}-${a}`,c=n?.[a];return(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(T,{htmlFor:s,children:o}),(0,X.jsx)(W,{"aria-invalid":c?!0:void 0,disabled:r,id:s,value:t[a]??``,onChange:e=>i({...t,[a]:e.target.value})}),(0,X.jsx)(_n,{message:c})]},a)})});function yn(e){return null}var bn=({field:e,inputId:t,value:n,errors:r,disabled:i,onChange:a})=>{let o=r?.[``],{input:s}=ct(e);switch(s){case`text`:return(0,X.jsx)(W,{"aria-invalid":o?!0:void 0,disabled:i,id:t,value:typeof n==`string`?n:``,onChange:e=>a(e.target.value)});case`textarea`:return(0,X.jsx)(ue,{"aria-invalid":o?!0:void 0,className:`max-w-full resize-y`,disabled:i,id:t,value:typeof n==`string`?n:``,onChange:e=>a(e.target.value)});case`address`:return(0,X.jsx)(vn,{disabled:i,errors:r,inputId:t,value:typeof n==`object`&&n?n:{},onChange:a});default:return yn(s)}},xn=({memberId:e,field:t,initialValue:n,onClose:r})=>{let i=ct(t).input===`address`,[o,c]=Y.useState(n??(i?{}:``)),[l,u]=Y.useState(!1),[d,f]=Y.useState(),p=G(),m=cn({[t.key]:o},[t]),h={...l?m:{},...d},g=Object.fromEntries(Object.entries(h).map(([e,n])=>[e===t.key?``:e.slice(t.key.length+1),n])),_=`member-custom-field-${t.key}`,v=!s(Jt({[t.key]:o}),Jt({[t.key]:n}));return(0,X.jsx)(z,{open:!0,onOpenChange:e=>{!e&&!p.isPending&&r()},children:(0,X.jsxs)(q,{"data-testid":`member-custom-field-edit-modal`,onEscapeKeyDown:e=>{(v||p.isPending)&&e.preventDefault()},onInteractOutside:e=>{(v||p.isPending)&&e.preventDefault()},children:[(0,X.jsx)(j,{children:(0,X.jsx)(I,{children:t.name})}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[!i&&(0,X.jsx)(T,{className:`sr-only`,htmlFor:_,children:t.name}),(0,X.jsx)(bn,{disabled:p.isPending,errors:g,field:t,inputId:_,value:o,onChange:e=>{f(void 0),c(e)}}),(0,X.jsx)(_n,{message:g[``]})]}),(0,X.jsxs)(N,{children:[(0,X.jsx)(L,{disabled:p.isPending,variant:`outline`,onClick:r,children:`Cancel`}),(0,X.jsx)(L,{className:`min-w-16`,disabled:p.isPending,onClick:()=>{if(!p.isPending){if(!v){r();return}if(Object.keys(m).length>0){u(!0);return}p.mutate(sn(e,t.key,o),{onSuccess:()=>{a.success(`${t.name} saved`),r()},onError:e=>{let n=ln(e);f(n),n||a.error(`${t.name} couldn’t be saved`)}})}},children:p.isPending?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(U,{size:`sm`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Saving`})]}):`Save`})]})]})})};function Sn(e){return e===void 0?null:typeof e==`string`?e:hn(e)||null}var Cn=({memberId:e,customFields:t,disabled:n})=>{let{data:r,isLoading:i}=ut(),a=r?.members_custom_fields??[],o=Jt(t),[s,c]=Y.useState(null);return i||a.length===0?null:(0,X.jsxs)(`section`,{"aria-labelledby":`member-custom-fields-heading`,className:`flex flex-col gap-3`,"data-testid":`member-custom-fields-field`,children:[(0,X.jsx)(`h3`,{className:`text-base font-semibold`,id:`member-custom-fields-heading`,children:`Custom fields`}),(0,X.jsx)(w,{children:(0,X.jsx)(C,{className:`px-6 py-4`,children:(0,X.jsx)(`ul`,{children:a.map(e=>{let t=Sn(o[e.key]);return(0,X.jsx)(`li`,{className:`border-b border-border transition-colors last:border-b-0 hover:border-b-transparent [&:has(+li:hover)]:border-b-transparent`,children:(0,X.jsxs)(`button`,{"aria-label":t?`Edit ${e.name}: ${t}`:`Edit ${e.name}`,className:`group -mx-3 flex w-[calc(100%+1.5rem)] items-center justify-between gap-4 rounded-md p-3 text-left transition-colors hover:bg-table-row-hover disabled:cursor-not-allowed disabled:opacity-50`,disabled:n,type:`button`,onClick:()=>{window.getSelection()?.toString()||c(e)},children:[(0,X.jsxs)(`span`,{className:`min-w-0`,children:[(0,X.jsx)(`span`,{className:`block text-sm text-muted-foreground`,children:e.name}),t?(0,X.jsx)(`span`,{className:`block break-words select-text`,children:t}):(0,X.jsx)(`span`,{className:`block text-muted-foreground`,children:`–`})]}),(0,X.jsx)(F,{"aria-hidden":`true`,className:`shrink-0 text-muted-foreground opacity-0 transition-all group-hover:opacity-100 group-focus-visible:opacity-100`,size:16})]})},e.key)})})})}),s&&(0,X.jsx)(xn,{field:s,initialValue:o[s.key],memberId:e,onClose:()=>c(null)},s.key)]})},wn=({labels:e,disabled:t,onChange:n})=>{let r=e.map(e=>e.slug),i=Y.useRef(e);i.current=e;let a=Y.useRef(new Map),o=e=>{for(let t of e)a.current.set(t.slug,{name:t.name,slug:t.slug})};o(e);let s=ft({selectedSlugs:r,onSelectionChange:e=>n(un(e,a.current))});o(s.labels);let c=async e=>{let t=await s.createLabel(e);if(t){let e={name:t.name,slug:t.slug};a.current.set(t.slug,e),n([...i.current.filter(e=>e.slug!==t.slug),e])}return t};return(0,X.jsx)(`div`,{className:t?`pointer-events-none opacity-60`:void 0,"data-testid":`member-labels-field`,...t?{inert:``}:{},children:(0,X.jsx)(pt,{isCreating:s.isCreating,labels:s.labels,optionSource:s.optionSource,placeholder:``,resolvedSelectedLabels:s.resolvedSelectedLabels,selectedSlugs:r,onCreate:c,onDelete:s.deleteLabel,onEdit:s.editLabel,onToggle:s.toggleLabel})})},Tn=({draft:e,emailError:t,disabled:n,onChange:r,onEmailBlur:i,onNameBlur:a})=>{let o=rn(e.note),s=500-o,c=o<0?`text-destructive`:s>=500*.8?`text-state-warning`:`text-state-success`;return(0,X.jsxs)(`div`,{className:`grid items-stretch gap-6 md:grid-cols-2`,"data-testid":`member-detail-form`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(T,{htmlFor:`member-name`,children:`Name`}),(0,X.jsx)(W,{disabled:n,id:`member-name`,value:e.name,onBlur:a,onChange:e=>r({name:e.target.value})})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(T,{htmlFor:`member-email`,children:`Email`}),(0,X.jsx)(W,{"aria-invalid":!!t,disabled:n,id:`member-email`,type:`email`,value:e.email,onBlur:i,onChange:e=>r({email:e.target.value})}),t&&(0,X.jsx)(`p`,{className:`text-sm text-destructive`,children:t})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(T,{children:`Labels`}),(0,X.jsx)(wn,{disabled:n,labels:e.labels,onChange:e=>r({labels:e})})]})]}),(0,X.jsxs)(`div`,{className:`flex min-h-0 flex-col gap-1.5`,children:[(0,X.jsxs)(T,{htmlFor:`member-note`,children:[`Note `,(0,X.jsx)(`span`,{className:`font-normal text-muted-foreground`,children:`(not visible to member)`})]}),(0,X.jsxs)(E,{className:`flex-1`,children:[(0,X.jsx)(le,{className:`h-full`,disabled:n,id:`member-note`,value:e.note,onChange:e=>r({note:e.target.value})}),(0,X.jsx)(ce,{align:`block-end`,className:`justify-end`,children:(0,X.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[`Maximum: `,(0,X.jsx)(`span`,{className:`font-semibold text-foreground`,children:500}),` characters. You’ve used`,` `,(0,X.jsx)(`span`,{className:m(`font-semibold`,c),children:s})]})})]})]})]})},En=e=>Z.default.utc(e).format(`D MMM YYYY`),$=({icon:e,children:t})=>(0,X.jsxs)(`p`,{className:`flex items-center gap-2 text-muted-foreground`,children:[(0,X.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:e}),(0,X.jsx)(`span`,{className:`min-w-0 truncate`,children:t})]}),Dn=e=>e.split(` `)[0]||``,On=({member:e,draftName:t,draftEmail:n,engagementEnabled:r})=>{let i=(t??e?.name??``).trim(),a=(n??e?.email??``).trim(),o=i||a||`New member`,s=!e;return(0,X.jsxs)(`aside`,{className:`flex w-full shrink-0 flex-col gap-6 lg:w-80`,"data-testid":`member-detail-sidebar`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,X.jsx)(et,{className:`size-12 min-w-12 [&_span]:text-lg`,email:a||void 0,name:i||void 0,src:e?.avatar_image}),(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsx)(`h2`,{className:`truncate text-xl font-semibold`,children:o}),i&&a&&(0,X.jsx)(`a`,{className:`block truncate text-muted-foreground hover:underline`,href:`mailto:${a}`,children:a}),!i&&a&&(0,X.jsx)(`span`,{className:`block truncate text-muted-foreground`,children:a})]})]}),!s&&e&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-2 text-sm`,children:[(0,X.jsx)($,{icon:(0,X.jsx)(Ie,{size:16}),children:(0,X.jsx)(`span`,{"data-testid":`member-detail-location`,children:mn(e.geolocation)})}),(0,X.jsx)($,{icon:(0,X.jsx)(he,{size:16}),children:e.last_seen_at?`Last seen on ${En(e.last_seen_at)}`:`Not seen yet`}),e.can_comment===!1&&(0,X.jsx)($,{icon:(0,X.jsx)(De,{size:16}),children:`Comments disabled`})]}),(0,X.jsxs)(`div`,{className:`mt-4 flex flex-col gap-3 text-sm`,children:[(0,X.jsx)(`h3`,{className:`border-b border-border pb-2 text-base font-semibold`,children:`Signup info`}),(0,X.jsxs)($,{icon:(0,X.jsx)(R,{size:16}),children:[`Created — `,(0,X.jsx)(`span`,{className:`text-foreground`,children:En(e.created_at)})]}),(()=>{let t=gn(e.attribution);return t?(0,X.jsxs)($,{icon:(0,X.jsx)(we,{size:16}),children:[`Source — `,(0,X.jsx)(`span`,{className:`text-foreground`,title:t,children:t})]}):null})(),e.attribution?.title&&(0,X.jsxs)($,{icon:(0,X.jsx)(be,{size:16}),children:[`Page — `,Tt(e.attribution.url)?(0,X.jsx)(`a`,{className:`truncate text-foreground hover:underline`,href:e.attribution.url,rel:`noopener noreferrer`,target:`_blank`,title:e.attribution.title,children:e.attribution.title}):(0,X.jsx)(`span`,{className:`truncate text-foreground`,title:e.attribution.title,children:e.attribution.title})]})]}),r&&(0,X.jsxs)(`section`,{className:`mt-4 flex flex-col gap-3 text-sm`,"data-testid":`member-detail-engagement`,children:[(0,X.jsx)(`h4`,{className:`border-b border-border pb-2 text-base font-semibold`,children:`Engagement`}),(e.email_count??0)===0?(0,X.jsx)(`p`,{className:`text-muted-foreground`,children:i?`We’ll show ${Dn(i)}’s email stats here once they receive their first newsletter.`:`We’ll show this member’s email stats here once they receive their first newsletter.`}):(0,X.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,X.jsx)(`p`,{className:`text-muted-foreground`,children:`Emails received`}),(0,X.jsx)(`p`,{className:`text-2xl font-semibold`,children:e.email_count})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,X.jsx)(`p`,{className:`text-muted-foreground`,children:`Emails opened`}),(0,X.jsx)(`p`,{className:`text-2xl font-semibold`,children:e.email_opened_count??0})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,X.jsx)(`p`,{className:`text-muted-foreground`,children:`Average open rate`}),e.email_open_rate===null||e.email_open_rate===void 0?(0,X.jsx)(`p`,{className:`text-muted-foreground`,children:`This metric is calculated once a member has received 5 newsletters.`}):(0,X.jsxs)(`p`,{className:`text-2xl font-semibold`,children:[e.email_open_rate,(0,X.jsx)(`span`,{className:`text-base font-normal text-muted-foreground`,children:`%`})]})]})]})]})]})]})},kn=({memberId:e,emailSuppression:t,subscribedIds:n,disabled:r,onChange:i})=>{let o=e?en(t):null,s=me(),{data:c,isLoading:l}=ot({searchParams:{filter:`status:active`,limit:`50`}}),u=c?.newsletters??[],d=P(),f=s.isPending||s.isSuccess&&d;return!o&&(l||u.length===0)?null:(0,X.jsxs)(`section`,{"aria-labelledby":`member-newsletters-heading`,className:`flex flex-col gap-3`,"data-testid":`member-newsletters-field`,children:[(0,X.jsx)(`h3`,{className:`text-base font-semibold`,id:`member-newsletters-heading`,children:`Newsletters`}),(0,X.jsx)(w,{children:(0,X.jsx)(C,{className:`p-6`,children:o?(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,"data-testid":`member-suppression-banner`,children:[(0,X.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,X.jsx)(Qe,{className:`mt-0.5 shrink-0 text-muted-foreground`,size:20}),(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsx)(`div`,{className:`font-medium`,children:`Email disabled`}),o.label&&(0,X.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:o.label}),(0,X.jsx)(`a`,{className:`text-sm text-muted-foreground hover:underline`,href:`https://ghost.org/help/disabled-emails`,rel:`noopener noreferrer`,target:`_blank`,children:`Learn more`})]})]}),(0,X.jsx)(L,{disabled:r||f,onClick:()=>{e&&s.mutate({id:e},{onSuccess:()=>a.success(`Email re-enabled successfully`),onError:()=>a.error(`Failed to re-enable email. Please try again.`)})},children:f?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(U,{size:`sm`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Re-enabling email`})]}):`Re-enable email`})]}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`ul`,{className:`divide-y divide-border`,children:u.map(e=>{let t=n.includes(e.id);return(0,X.jsxs)(`li`,{className:`flex items-center justify-between gap-4 py-3 first:pt-0 last:pb-0`,children:[(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsx)(`div`,{className:`font-medium`,children:e.name}),e.description&&(0,X.jsx)(`p`,{className:`truncate text-sm text-muted-foreground`,children:e.description})]}),(0,X.jsx)(v,{"aria-label":`Subscribe to ${e.name}`,checked:t,"data-testid":`member-subscription-toggle`,disabled:r,onCheckedChange:()=>i(Zt(n,e.id))})]},e.id)})}),(0,X.jsxs)(`p`,{className:`mt-4 text-sm text-muted-foreground`,children:[`If disabled, member will `,(0,X.jsx)(`em`,{children:`not`}),` receive newsletter emails`]})]})})})]})},An=`complimentary`,jn=`gift subscription`;function Mn(e){if(e.id)return`paid`;let t=e.plan?.nickname?.toLowerCase()??``;return t===An?`complimentary`:t===jn?`gift`:`paid`}function Nn(e){return e===`year`?`yearly`:`monthly`}function Pn(e){if(e.trial_end_at&&(0,Z.default)(e.trial_end_at).isAfter(new Date,`day`))return`Free trial`;let t=e.price?.nickname;return t&&t!==`Monthly`&&t!==`Yearly`?t:null}function Fn(e){return e.status===`canceled`||e.cancel_at_period_end?`Canceled`:`Active`}var In=e=>e?(0,Z.default)(new Date(e)).format(`D MMM YYYY`):``,Ln=e=>e?(0,Z.default)(e).utc().format(`D MMM YYYY`):``;function Rn(e){let t=Mn(e);if(t===`complimentary`||t===`gift`){let t=Ln(e.tier?.expiry_at);return t?`Expires ${t}`:``}let n=e.status===`canceled`&&!e.cancel_at_period_end?``:In(e.current_period_end);return e.status===`canceled`?n?`Ended ${n}`:``:e.cancel_at_period_end?n?`Has access until ${n}`:``:e.trial_end_at&&(0,Z.default)(e.trial_end_at).isAfter(new Date,`day`)?`Ends ${In(e.trial_end_at)}`:n?`Renews ${n}`:``}function zn(e){let t=[],n=new Map;for(let r of e){if(!r.price)continue;let e=r.tier??r.price.tier;if(!e?.id)continue;let i=n.get(e.id);i||(i={tier:e,subscriptions:[]},n.set(e.id,i),t.push(i)),i.subscriptions.push(r)}return t}var Bn=[`forever`,`week`,`month`,`half-year`,`year`,`custom`];function Vn(e){return Bn.includes(e)}function Hn(e,t){switch(e){case`forever`:return null;case`week`:return Z.default.utc().add(7,`days`).startOf(`day`).toISOString();case`month`:return Z.default.utc().add(1,`month`).startOf(`day`).toISOString();case`half-year`:return Z.default.utc().add(6,`months`).startOf(`day`).toISOString();case`year`:return Z.default.utc().add(1,`year`).startOf(`day`).toISOString();case`custom`:return t?(0,Z.default)(t,`YYYY-MM-DD`).startOf(`day`).endOf(`day`).set(`millisecond`,0).add((0,Z.default)().utcOffset(),`minutes`).toISOString():null}}var Un=new Set([`active`,`trialing`,`unpaid`,`past_due`]),Wn=[{value:`forever`,label:`Forever`},{value:`week`,label:`1 Week`},{value:`month`,label:`1 Month`},{value:`half-year`,label:`6 Months`},{value:`year`,label:`1 Year`},{value:`custom`,label:`Custom`}],Gn=({open:e,onOpenChange:t,member:n})=>{let{data:r,isLoading:i}=at({searchParams:{filter:`type:paid+active:true`,limit:`all`}}),o=r?.tiers??[],[s,c]=Y.useState(``),[l,u]=Y.useState(`forever`),[d,f]=Y.useState(``);Y.useEffect(()=>{e&&(c(``),u(`forever`),f(``))},[e]);let p=fe(),m=G(),[h,g]=Y.useState(!1),_=(n.subscriptions??[]).filter(e=>Mn(e)===`paid`&&Un.has(e.status)),v=(0,Z.default)().format(`YYYY-MM-DD`),te=!!s&&!h&&(l!==`custom`||!!d),ne=async()=>{if(te){g(!0);try{for(let e of _)await p.mutateAsync({memberId:n.id,subscriptionId:e.id,status:`canceled`});let e=Hn(l,l===`custom`?d:null),r=e?{id:s,expiry_at:e}:{id:s};await m.mutateAsync({id:n.id,...n.email?{email:n.email}:{},tiers:[r]}),a.success(`Complimentary subscription added`),t(!1)}catch{a.error(`Couldn’t add complimentary subscription`)}finally{g(!1)}}};return(0,X.jsx)(z,{open:e,onOpenChange:e=>{h||t(e)},children:(0,X.jsxs)(q,{"data-testid":`add-comp-modal`,children:[(0,X.jsxs)(j,{children:[(0,X.jsx)(I,{children:`Add complimentary subscription`}),(0,X.jsx)(B,{children:`Grants this member access to a paid tier for the chosen duration. Any active paid subscription is canceled first.`})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(T,{htmlFor:`comp-tier`,children:`Tier`}),(0,X.jsxs)(S,{value:s,onValueChange:c,children:[(0,X.jsx)(x,{"data-testid":`comp-tier-select`,disabled:i||h,id:`comp-tier`,children:(0,X.jsx)(ee,{placeholder:i?`Loading tiers…`:`Select a tier`})}),(0,X.jsx)(b,{children:o.map(e=>(0,X.jsx)(y,{"data-tier-id":e.id,value:e.id,children:e.name},e.id))})]})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(T,{htmlFor:`comp-duration`,children:`Duration`}),(0,X.jsxs)(S,{value:l,onValueChange:e=>{Vn(e)&&u(e)},children:[(0,X.jsx)(x,{"data-testid":`comp-duration-select`,disabled:h,id:`comp-duration`,children:(0,X.jsx)(ee,{})}),(0,X.jsx)(b,{children:Wn.map(e=>(0,X.jsx)(y,{value:e.value,children:e.label},e.value))})]})]}),l===`custom`&&(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(T,{htmlFor:`comp-custom-date`,children:`Expires on`}),(0,X.jsx)(W,{"data-testid":`comp-custom-date`,disabled:h,id:`comp-custom-date`,min:v,type:`date`,value:d,onChange:e=>f(e.target.value)})]})]}),(0,X.jsxs)(N,{children:[(0,X.jsx)(L,{disabled:h,variant:`outline`,onClick:()=>t(!1),children:`Cancel`}),(0,X.jsx)(L,{"data-testid":`comp-add-confirm`,disabled:!te,onClick:()=>void ne(),children:h?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(U,{size:`sm`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Adding`})]}):`Add subscription`})]})]})})},Kn=({memberId:e,subscription:t})=>{let n=fe(),r=P(),i=n.isPending||n.isSuccess&&r,o=t.status===`canceled`,s=t.cancel_at_period_end,c=(r,i,o)=>{n.mutate({memberId:e,subscriptionId:t.id,cancelAtPeriodEnd:r},{onSuccess:()=>a.success(i),onError:()=>a.error(o)})};return(0,X.jsxs)(H,{children:[(0,X.jsx)(Ae,{asChild:!0,children:(0,X.jsx)(L,{"aria-label":`Subscription menu`,"data-testid":`subscription-actions`,disabled:i,size:`sm`,variant:`outline`,children:i?(0,X.jsx)(U,{size:`sm`}):(0,X.jsx)(pe,{})})}),(0,X.jsxs)(ke,{align:`end`,children:[(0,X.jsx)(O,{asChild:!0,children:(0,X.jsx)(`a`,{href:`https://dashboard.stripe.com/customers/${t.customer.id}`,rel:`noopener noreferrer`,target:`_blank`,children:`View Stripe customer`})}),(0,X.jsx)(Ze,{}),(0,X.jsx)(O,{asChild:!0,children:(0,X.jsx)(`a`,{href:`https://dashboard.stripe.com/subscriptions/${t.id}`,rel:`noopener noreferrer`,target:`_blank`,children:`View Stripe subscription`})}),!o&&(s?(0,X.jsx)(O,{"data-testid":`continue-subscription`,onSelect:()=>c(!1,`Subscription continued`,`Couldn’t continue subscription`),children:`Continue subscription`}):(0,X.jsx)(O,{className:`text-destructive focus:text-destructive`,"data-testid":`cancel-subscription`,onSelect:()=>c(!0,`Subscription canceled`,`Couldn’t cancel subscription`),children:`Cancel subscription`}))]})]})},qn=({member:e,tierId:t})=>{let n=G(),[r,i]=Y.useState(!1),o=P(),s=n.isPending||n.isSuccess&&o;return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(H,{children:[(0,X.jsx)(Ae,{asChild:!0,children:(0,X.jsx)(L,{"aria-label":`Subscription menu`,"data-testid":`subscription-actions`,disabled:s,size:`sm`,variant:`outline`,children:s?(0,X.jsx)(U,{size:`sm`}):(0,X.jsx)(pe,{})})}),(0,X.jsx)(ke,{align:`end`,children:(0,X.jsx)(O,{className:`text-destructive focus:text-destructive`,"data-testid":`remove-complimentary`,onSelect:()=>i(!0),children:`Remove complimentary subscription`})})]}),(0,X.jsx)(We,{open:r,onOpenChange:e=>{n.isPending||i(e)},children:(0,X.jsxs)(Le,{children:[(0,X.jsxs)(ze,{children:[(0,X.jsx)(Re,{children:`Remove complimentary subscription?`}),(0,X.jsx)(Ye,{children:`The member will lose access to this tier immediately.`})]}),(0,X.jsxs)(Ke,{children:[(0,X.jsx)(Fe,{disabled:n.isPending,children:`Cancel`}),(0,X.jsx)(L,{"data-testid":`confirm-remove-complimentary`,disabled:n.isPending,variant:`destructive`,onClick:()=>{let r=(e.tiers??[]).filter(e=>e.id!==t).map(e=>({id:e.id,expiry_at:e.expiry_at??null}));n.mutate({id:e.id,email:e.email,tiers:r},{onSuccess:()=>{a.success(`Complimentary subscription removed`),i(!1)},onError:()=>a.error(`Couldn’t remove complimentary subscription`)})},children:n.isPending?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(U,{size:`sm`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Removing`})]}):`Remove`})]})]})})]})},Jn=e=>{let t=e/100;return t.toLocaleString(void 0,t%1==0?void 0:{minimumFractionDigits:2,maximumFractionDigits:2})},Yn=({sub:e,kind:t})=>{if(t===`complimentary`||t===`gift`)return(0,X.jsx)(`div`,{className:`flex size-20 shrink-0 items-center justify-center rounded-lg bg-muted text-center text-sm font-medium text-muted-foreground`,children:t===`complimentary`?`Comp`:`Gift`});let n=c(e.price.currency),r=Jn(e.price.amount),i=Nn(e.price.interval);return(0,X.jsxs)(`div`,{className:`flex size-20 shrink-0 flex-col items-center justify-center rounded-lg bg-muted text-foreground`,children:[(0,X.jsxs)(`div`,{className:`flex items-start leading-none`,children:[(0,X.jsx)(`span`,{className:`mt-1 text-sm font-semibold`,children:n}),(0,X.jsx)(`span`,{className:`text-3xl font-semibold tracking-tight`,children:r})]}),(0,X.jsx)(`div`,{className:`mt-1 text-xs text-muted-foreground`,children:i})]})},Xn=e=>e?Z.default.utc(e).format(`D MMM YYYY`):``,Zn=({sub:e})=>{let t=Xn(e.start_date),n=e.attribution?.referrer_source,r=n&&n!==`Unknown`,i=e.attribution?.title?{title:e.attribution.title,url:e.attribution.url??null}:null;return(0,X.jsxs)(`div`,{className:`mt-3 space-y-1 border-t border-border pt-3 text-sm text-muted-foreground`,children:[t&&(0,X.jsxs)(`p`,{children:[`Created — `,(0,X.jsx)(`span`,{className:`text-foreground`,children:t})]}),r&&(0,X.jsxs)(`p`,{children:[`Source — `,(0,X.jsx)(`span`,{className:`text-foreground`,children:n})]}),i&&(0,X.jsxs)(`p`,{children:[`Page — `,i.url?(0,X.jsx)(`a`,{className:`text-foreground hover:underline`,href:i.url,rel:`noopener noreferrer`,target:`_blank`,children:i.title}):(0,X.jsx)(`span`,{className:`text-foreground`,children:i.title})]})]})},Qn=({member:e,sub:t,showDivider:n})=>{let[r,i]=Y.useState(!1),a=Mn(t),o=Fn(t),s=Rn(t),c=Pn(t);return(0,X.jsxs)(`div`,{className:m(`flex items-start justify-between gap-4 py-5 first:pt-0 last:pb-0`,n&&`border-t border-border`),"data-testid":`member-subscription`,children:[(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-start gap-4`,children:[(0,X.jsx)(Yn,{kind:a,sub:t}),(0,X.jsxs)(`div`,{className:`min-w-0 flex-1 pt-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(`span`,{className:`min-w-0 truncate font-semibold`,"data-testid":`member-subscription-tier`,children:t.tier?.name??`Subscription`}),(0,X.jsx)(D,{"data-testid":`member-subscription-status`,variant:o===`Canceled`?`secondary`:`success`,children:o})]}),(c||s)&&(0,X.jsxs)(`div`,{className:`mt-1 text-sm`,children:[c&&(0,X.jsx)(`span`,{className:`font-semibold text-foreground`,children:c}),c&&s&&(0,X.jsx)(`span`,{className:`text-muted-foreground`,children:` – `}),s&&(0,X.jsx)(`span`,{className:`text-muted-foreground`,children:s})]}),(0,X.jsxs)(`button`,{"aria-expanded":r,className:`mt-1 inline-flex items-center gap-1 text-sm font-medium text-primary hover:underline`,"data-testid":`member-subscription-details-toggle`,type:`button`,onClick:()=>i(e=>!e),children:[`Details`,(0,X.jsx)(Me,{className:m(`transition-transform`,r&&`rotate-180`),size:14})]}),r&&(0,X.jsx)(Zn,{sub:t})]})]}),a===`paid`&&(0,X.jsx)(Kn,{memberId:e.id,subscription:t}),a===`complimentary`&&t.tier?.id&&(0,X.jsx)(qn,{member:e,tierId:t.tier.id})]})},$n=({member:e,canAddComp:t})=>{let[n,r]=Y.useState(!1);if(!e)return(0,X.jsx)(w,{"data-testid":`member-subscriptions`,children:(0,X.jsx)(C,{className:`pt-6`,children:(0,X.jsx)(`div`,{className:`flex flex-col items-center gap-3 py-4`,children:(0,X.jsx)(se,{title:`No subscriptions`,children:(0,X.jsx)(V,{})})})})});let i=zn(e.subscriptions??[]),a=i.length>0,o=t&&(e.tiers?.length??0)===0,s=o?(0,X.jsxs)(L,{"data-testid":`add-complimentary`,variant:`outline`,onClick:()=>r(!0),children:[(0,X.jsx)(Ue,{className:`mr-1`,size:16}),`Add complimentary subscription`]}):null;return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(w,{"data-testid":`member-subscriptions`,children:(0,X.jsx)(C,{className:`pt-6`,children:a?(0,X.jsxs)(X.Fragment,{children:[i.map(t=>(0,X.jsxs)(`div`,{className:`flex flex-col`,children:[t.subscriptions.map((n,r)=>(0,X.jsx)(Qn,{member:e,showDivider:r>0,sub:n},n.id||`${t.tier.id}-${r}`)),t.subscriptions.length>1&&(0,X.jsxs)(`div`,{className:`pt-3 text-sm text-muted-foreground`,children:[t.subscriptions.length,` subscriptions`]})]},t.tier.id)),s&&(0,X.jsx)(`div`,{className:`mt-4 flex justify-center border-t border-border pt-4`,children:s})]}):(0,X.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-4`,children:[(0,X.jsx)(se,{title:`No subscriptions`,children:(0,X.jsx)(V,{})}),s]})})}),o&&(0,X.jsx)(Gn,{member:e,open:n,onOpenChange:r})]})};function er(e){let t=new URLSearchParams(e),n=t.get(`back`);if(n&&n.startsWith(`/members`))return n;let r=t.get(`post`);return r?`/members?post=${encodeURIComponent(r)}`:`/members`}var tr=`new`,nr=({paidMembersEnabled:e,newslettersUiEnabled:t,engagementEnabled:n})=>{let{member_id:r=``}=d(),i=u(),c=p(),m=er(i.search),h=r===tr,v=Ge(`membersCustomFields`),{data:y,isLoading:b,error:x,refetch:ee}=rt(r,{enabled:!!r&&!h,searchParams:{include:v?`tiers,custom_fields`:`tiers`},defaultErrorHandler:!1}),S=y?.members?.[0],se=!h&&!b&&!!x,T=!h&&!b&&!x&&!S,ce=G(),le=Ce(),E=h?le:ce,{data:ue}=at({searchParams:{filter:`type:paid+active:true`,limit:`all`},enabled:e}),de=(ue?.tiers?.length??0)>0,{data:D}=ot({searchParams:{filter:`status:active`,limit:`50`}}),O=D!==void 0,fe=(D?.newsletters?.length??0)>1,pe=(ue?.tiers?.length??0)>1,[k,A]=Y.useState(void 0),j=Y.useRef(void 0),M=Y.useRef(void 0),N=Y.useRef(!1),P=Y.useRef(!1);Y.useEffect(()=>{if(h){if(j.current!==tr){j.current=tr,N.current=!1;let e=Q({});M.current=e,A(e)}return}if(!S)return;let e=Q(S);if(j.current!==S.id){j.current=S.id,M.current=e,A(e);return}let t=M.current;M.current=e,A(n=>fn(n,t)?e:n)},[S,h]),Y.useEffect(()=>{P.current=!1},[r]),Y.useEffect(()=>{if(!h||N.current||!D?.newsletters)return;N.current=!0;let e=tn(D.newsletters);if(e.length===0)return;let t={...M.current??Q({}),newsletters:[...e].sort()};M.current=t,A(t=>t&&{...t,newsletters:[...e].sort()})},[h,D]);let me=h?M.current:S?Q(S):void 0,F=!!k&&!!me&&!s(dn(k),me),he=!!k&&Qt(k.email),[ge,_e]=Y.useState(!1);Y.useEffect(()=>{_e(!1)},[S?.id,h]);let ve=k?$t(k.email,ge):null,[I,ye]=Y.useState({name:``,email:``});Y.useEffect(()=>{if(h){ye({name:``,email:``});return}S&&ye({name:S.name??``,email:S.email??``})},[S?.id,S?.name,S?.email,h]);let be=()=>{k&&ye({name:k.name,email:k.email})},xe=e=>{E.isError&&E.reset(),A(t=>t&&{...t,...e})},Se=()=>{if(!(!k||!F||!he||E.isPending)){if(be(),h){le.mutate({email:k.email.trim(),name:k.name.trim()||void 0,note:k.note.trim()||void 0,labels:k.labels.length?k.labels:void 0,newsletters:N.current?k.newsletters.map(e=>({id:e})):void 0},{onSuccess:e=>{let t=e.members?.[0];if(!t){a.error(`Member couldn’t be created`);return}P.current=!0,a.success(`Member created`),c(`/members/${t.id}`,{replace:!0})},onError:()=>{a.error(`Member couldn’t be created`)}});return}!S||j.current!==S.id||ce.mutate(an(S.id,k,Q(S)),{onSuccess:e=>{let t=e.members?.[0];if(t){let e=Q(t);M.current=e,A(e)}a.success(`Member updated`)},onError:()=>{a.error(`Member couldn’t be saved`)}})}};o(E.isPending||F);let R=l(({currentLocation:e,nextLocation:t})=>!P.current&&F&&e.pathname!==t.pathname),z=st(F),we=R.state===`blocked`||z.isBlocked,B=`Save`,Te=`default`,V=!0;E.isPending?B=(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(U,{size:`sm`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Saving`})]}):F?(B=E.isError?`Retry`:`Save`,Te=E.isError?`destructive`:`default`,V=!he):!h&&ce.isSuccess&&(B=`Saved`);let De=!!k&&(h||!!S),H=`Member`;return h?H=`New member`:S?H=Ee(S):T&&(H=`Member not found`),(0,X.jsx)(g,{className:`size-full`,children:(0,X.jsx)(_,{className:`relative flex h-full flex-col`,size:`page`,children:(0,X.jsxs)(J,{"data-testid":`member-detail`,children:[(0,X.jsx)(J.Header,{children:(0,X.jsxs)(it,{blurredBackground:!1,sticky:!1,children:[(0,X.jsx)(it.Left,{children:(0,X.jsx)(oe,{children:(0,X.jsxs)(ne,{children:[(0,X.jsx)(re,{children:(0,X.jsx)(ae,{asChild:!0,children:(0,X.jsx)(f,{"data-test-link":`members-back`,to:m,children:`Members`})})}),(0,X.jsx)(ie,{}),(0,X.jsx)(re,{children:!h&&b?(0,X.jsx)(K,{className:`h-4 w-40`}):(0,X.jsx)(te,{className:`truncate`,"data-testid":`member-detail-title`,children:H})})]})})}),(h||S)&&(0,X.jsx)(it.Actions,{children:(0,X.jsxs)(it.ActionGroup,{children:[S&&!h&&(0,X.jsx)(wt,{allowLeaveWithUnsavedChanges:()=>{P.current=!0},member:S},S.id),(0,X.jsx)(L,{className:`min-w-16`,disabled:V,variant:Te,onClick:Se,children:B})]})})]})}),(0,X.jsxs)(J.Body,{children:[se&&(0,X.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-3`,"data-testid":`member-detail-load-error`,children:[(0,X.jsx)(`p`,{className:`text-muted-foreground`,children:`Couldn’t load this member.`}),(0,X.jsx)(L,{variant:`outline`,onClick:()=>void ee(),children:`Retry`})]}),T&&(0,X.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,X.jsx)(`p`,{className:`text-muted-foreground`,children:`This member couldn’t be found.`})}),De&&k&&(0,X.jsxs)(`div`,{className:`flex flex-1 flex-col gap-8 lg:flex-row lg:items-start lg:gap-12`,children:[(0,X.jsx)(On,{draftEmail:I.email,draftName:I.name,engagementEnabled:n,member:S}),(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-8`,children:[(0,X.jsx)(w,{children:(0,X.jsx)(C,{className:`p-6`,children:(0,X.jsx)(Tn,{disabled:E.isPending,draft:k,emailError:ve,onChange:xe,onEmailBlur:()=>{_e(!0),be()},onNameBlur:be})})}),v&&S&&(0,X.jsx)(Cn,{customFields:S.custom_fields,disabled:E.isPending,memberId:S.id}),t&&(h||S)&&(0,X.jsx)(kn,{disabled:E.isPending,emailSuppression:S?.email_suppression,memberId:S?.id,subscribedIds:k.newsletters,onChange:e=>xe({newsletters:e})}),e&&(0,X.jsxs)(`section`,{"aria-labelledby":`member-subscriptions-heading`,className:`flex flex-col gap-3`,children:[(0,X.jsx)(`h3`,{className:`text-base font-semibold`,id:`member-subscriptions-heading`,children:`Subscriptions`}),(0,X.jsx)($n,{canAddComp:de,member:S})]}),(h||S&&O)&&(0,X.jsx)(Gt,{hasMultipleNewsletters:fe,hasMultipleTiers:pe,memberId:S?.id,paidMembersEnabled:e})]})]})]}),(0,X.jsx)(We,{open:we,onOpenChange:e=>{!e&&we&&(R.reset?.(),z.reset())},children:(0,X.jsxs)(Le,{children:[(0,X.jsxs)(ze,{children:[(0,X.jsx)(Re,{children:`Discard unsaved changes?`}),(0,X.jsx)(Ye,{children:`Your changes will be lost if you leave this member.`})]}),(0,X.jsxs)(Ke,{children:[(0,X.jsx)(Fe,{children:`Keep editing`}),(0,X.jsx)(L,{variant:`destructive`,onClick:()=>{z.isBlocked?z.proceed():R.proceed?.()},children:`Leave`})]})]})})]})})})},rr=()=>{let{data:e,isLoading:t}=He({});if(t||!e?.settings)return(0,X.jsx)(g,{className:`size-full`,children:(0,X.jsx)(_,{className:`relative flex h-full flex-col`,size:`page`,children:(0,X.jsx)(J,{children:(0,X.jsx)(J.Body,{children:(0,X.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,X.jsx)(U,{size:`lg`})})})})})});let n=A(e.settings,`editor_default_email_recipients`),r=A(e.settings,`members_signup_access`);return(0,X.jsx)(nr,{engagementEnabled:r!==`none`&&n!==`disabled`,newslettersUiEnabled:nn(n),paidMembersEnabled:A(e.settings,`paid_members_enabled`)===!0})};export{rr as default};