ghost 6.53.0 → 6.54.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 (596) hide show
  1. package/components/ghost-storage-base-3.0.0.tgz +0 -0
  2. package/components/tryghost-adapter-base-cache-0.2.0.tgz +0 -0
  3. package/components/tryghost-adapter-base-scheduling-0.1.1.tgz +0 -0
  4. package/components/tryghost-adapter-base-sso-0.1.1.tgz +0 -0
  5. package/components/tryghost-admin-api-schema-0.0.0.tgz +0 -0
  6. package/components/tryghost-custom-field-types-0.0.0.tgz +0 -0
  7. package/components/tryghost-i18n-0.0.0.tgz +0 -0
  8. package/components/tryghost-kg-converters-1.2.3.tgz +0 -0
  9. package/components/tryghost-kg-default-nodes-2.1.3.tgz +0 -0
  10. package/components/tryghost-kg-lexical-html-renderer-1.4.3.tgz +0 -0
  11. package/core/boot.js +9 -6
  12. package/core/built/admin/assets/Combination-CJG7Flp-.js +41 -0
  13. package/core/built/admin/assets/Growth-CSaHoSVD.js +3 -0
  14. package/core/built/admin/assets/Newsletters-C5cs6FGo.js +1 -0
  15. package/core/built/admin/assets/Overview-j4NaeUNm.js +1 -0
  16. package/core/built/admin/assets/{PolarAngleAxis-pciQ0MOy.js → PolarAngleAxis-BGjf7sBu.js} +1 -1
  17. package/core/built/admin/assets/{RadialBarChart-DWmw2PcX.js → RadialBarChart-zeFf9mBz.js} +1 -1
  18. package/core/built/admin/assets/Web-_fD935OX.js +2 -0
  19. package/core/built/admin/assets/account-migration-DLvVA5yq.js +1 -0
  20. package/core/built/admin/assets/activitypub/{account-migration-BPZG37DJ.js → account-migration-DHbZcxGM.js} +13 -13
  21. package/core/built/admin/assets/activitypub/activitypub.js +7 -7
  22. package/core/built/admin/assets/activitypub/{avatar-ZYco0ITb.js → avatar-B3DEDB1l.js} +10 -10
  23. package/core/built/admin/assets/activitypub/{avatar-flipboard-D541lc4F.js → avatar-flipboard-Cqrg0XMx.js} +3 -3
  24. package/core/built/admin/assets/activitypub/{bluesky-sharing-NOHUtHjl.js → bluesky-sharing-zfxUey_L.js} +38 -37
  25. package/core/built/admin/assets/activitypub/{chunk-KS7C4IRE-B-GOFDPZ.js → chunk-KS7C4IRE-D4HEcEwi.js} +716 -710
  26. package/core/built/admin/assets/activitypub/{content-formatters-bwrp4iEO.js → content-formatters-BpQARh28.js} +229 -181
  27. package/core/built/admin/assets/activitypub/{copy-C7m7ovHw.js → copy-D9UWIAan.js} +2 -2
  28. package/core/built/admin/assets/activitypub/{dist-B5ira32t.js → dist-Ba_QxHHl.js} +5 -5
  29. package/core/built/admin/assets/activitypub/{domain-iqE4YXwD.js → domain-CmwSZLHK.js} +33 -33
  30. package/core/built/admin/assets/activitypub/{edit-profile-B8MFYh28.js → edit-profile-CXdwNmVG.js} +46 -45
  31. package/core/built/admin/assets/activitypub/{explore-BbdKodp3.js → explore-DfbjzGM1.js} +20 -20
  32. package/core/built/admin/assets/activitypub/{feed-Cl3A5owG.js → feed-DSEBJOqf.js} +15 -15
  33. package/core/built/admin/assets/activitypub/{field-DL6WyR-c.js → field-CY7XVcx6.js} +13 -13
  34. package/core/built/admin/assets/activitypub/{hash-6G3DzwL9.js → hash-BC9Q0N4c.js} +2 -2
  35. package/core/built/admin/assets/activitypub/{inbox-YmhuBice.js → inbox-DQ4ZnC1m.js} +2 -2
  36. package/core/built/admin/assets/activitypub/inbox-DtQ0kytT.js +1221 -0
  37. package/core/built/admin/assets/activitypub/{label-DGbLjDvE.js → label-Dw96GQ7u.js} +6 -6
  38. package/core/built/admin/assets/activitypub/layout-IdVq3lRy.js +1 -0
  39. package/core/built/admin/assets/activitypub/{moderation-qnBtk1zS.js → moderation-Dg_-I-8C.js} +32 -31
  40. package/core/built/admin/assets/activitypub/{note-C7ZRoSJv.js → note-Cy1-uKMY.js} +21 -21
  41. package/core/built/admin/assets/activitypub/{notifications-DiEA4b1o.js → notifications-B_fvoLIM.js} +17 -17
  42. package/core/built/admin/assets/activitypub/{onboarding-_JVgEwgV.js → onboarding-BFDkzeR2.js} +2 -2
  43. package/core/built/admin/assets/activitypub/{onboarding-DG4zu3qM.js → onboarding-D6rcBdPe.js} +5 -5
  44. package/core/built/admin/assets/activitypub/{preferences-B3FtocnP.js → preferences-ByJseZp6.js} +1607 -1606
  45. package/core/built/admin/assets/activitypub/{profile-D8ZJfYXB.js → profile-BFtbnIjz.js} +264 -263
  46. package/core/built/admin/assets/activitypub/{reply-C1vggenw.js → reply-CpdMeAO5.js} +2 -2
  47. package/core/built/admin/assets/activitypub/{routes-BOii-V9n.js → routes-Dh3xXfce.js} +1311 -1295
  48. package/core/built/admin/assets/activitypub/{separator-1gNokN5S.js → separator-BI1FLsYM.js} +4 -4
  49. package/core/built/admin/assets/activitypub/{settings--9Sb0nbl.js → settings-DTgqJPxM.js} +14 -14
  50. package/core/built/admin/assets/activitypub/{site-fkMmqv0V.js → site-CdL9ZLqm.js} +10 -10
  51. package/core/built/admin/assets/activitypub/{step-1-QhivSMw2.js → step-1-DIDg4aHb.js} +15 -15
  52. package/core/built/admin/assets/activitypub/{step-2-pMk9YwqD.js → step-2-BfGe8BYt.js} +7 -7
  53. package/core/built/admin/assets/activitypub/{step-3-DvmVC1fo.js → step-3-mE9spAqw.js} +12 -12
  54. package/core/built/admin/assets/activitypub/{tabs-Dc0FEEYD.js → tabs-ogqwoBlb.js} +241 -237
  55. package/core/built/admin/assets/activitypub/{topic-filter-CuDyM5bD.js → topic-filter-DLHBZT93.js} +4 -4
  56. package/core/built/admin/assets/activitypub/use-activity-pub-queries-VzbN99u_.js +1957 -0
  57. package/core/built/admin/assets/activitypub/{use-navigate-with-base-path-Drx1kdAK.js → use-navigate-with-base-path-CAwXTmqH.js} +165 -175
  58. package/core/built/admin/assets/activitypub/{use-reply-chain-data-BHkCHcW5.js → use-reply-chain-data-CxonteFD.js} +8 -8
  59. package/core/built/admin/assets/activitypub/users-BLeiOTHc.js +1464 -0
  60. package/core/built/admin/assets/activitypub/{x-BHCEe-c2.js → x-C8tAnXly.js} +2 -2
  61. package/core/built/admin/assets/{audience-adiFehTD.js → audience-BKRdsFmy.js} +1 -1
  62. package/core/built/admin/assets/{automated-emails-UWM02CMr.js → automated-emails-Cn87L5Md.js} +1 -1
  63. package/core/built/admin/assets/automations-B7-y3dXt.js +1 -0
  64. package/core/built/admin/assets/automations-BP_aHamJ.js +1 -0
  65. package/core/built/admin/assets/{avatar-flipboard-Lz3F9fNT.js → avatar-flipboard-C6Kj3Awu.js} +1 -1
  66. package/core/built/admin/assets/bluesky-sharing-Bh36XPh4.js +1 -0
  67. package/core/built/admin/assets/box-BWbhXh21.js +1 -0
  68. package/core/built/admin/assets/breadcrumb-D34YWnaw.js +1 -0
  69. package/core/built/admin/assets/card-DGoDJzrn.js +1 -0
  70. package/core/built/admin/assets/{chart-ChpW-NzQ.js → chart-BuRT2Y6p.js} +14 -14
  71. package/core/built/admin/assets/chart-helpers-DbklaJw9.js +1 -0
  72. package/core/built/admin/assets/checkbox-DA4-1UiI.js +1 -0
  73. package/core/built/admin/assets/chunk.524.45e0875f41b71e46e849.js +25 -0
  74. package/core/built/admin/assets/chunk.582.51defd4b009f0de8d4d5.js +27 -0
  75. package/core/built/admin/assets/{chunk.831.0703a12e49f51cec3f3a.js → chunk.589.096f4d0bb775e5229aa9.js} +78 -85
  76. package/core/built/admin/assets/{chunk.432.c2caa0b20f03e71d1a35.js → chunk.962.b73442b07be930bb5d85.js} +2216 -3188
  77. package/core/built/admin/assets/{chunk.432.c2caa0b20f03e71d1a35.js.LICENSE.txt → chunk.962.b73442b07be930bb5d85.js.LICENSE.txt} +0 -63
  78. package/core/built/admin/assets/code-editor-view-BKBrkffZ.js +1 -0
  79. package/core/built/admin/assets/comments-CzVNIT8b.js +1 -0
  80. package/core/built/admin/assets/container-BYz2Ed39.js +1 -0
  81. package/core/built/admin/assets/data-list-16rkJYYi.js +1 -0
  82. package/core/built/admin/assets/date-range-select-B5vSsrpx.js +1 -0
  83. package/core/built/admin/assets/disabled-sources-indicator-NkOIoMue.js +1 -0
  84. package/core/built/admin/assets/{dist-CsekE4FL.js → dist-CQJY6SVY.js} +1 -1
  85. package/core/built/admin/assets/dist-DGzPJ_bO.js +4 -0
  86. package/core/built/admin/assets/{dist-BbGrW05X.js → dist-DyViJwIy.js} +1 -1
  87. package/core/built/admin/assets/dist-Ndy-PuGN.js +1 -0
  88. package/core/built/admin/assets/dist-P_ohUlTi.js +1 -0
  89. package/core/built/admin/assets/domain-B7_n5nfx.js +1 -0
  90. package/core/built/admin/assets/dropzone-DcuJEEUf.js +5 -0
  91. package/core/built/admin/assets/edit-profile-rvDGrS8J.js +1 -0
  92. package/core/built/admin/assets/editor-BCiIyFjm.js +8 -0
  93. package/core/built/admin/assets/empty-indicator-oX1u1Pkn.js +1 -0
  94. package/core/built/admin/assets/esm-CFX93H5M.js +2 -0
  95. package/core/built/admin/assets/explore-BZAZOg5X.js +1 -0
  96. package/core/built/admin/assets/feed-CFV8xDw9.js +1 -0
  97. package/core/built/admin/assets/field-BW-M2Zwp.js +1 -0
  98. package/core/built/admin/assets/{filter-sources-v39ihhhV.js → filter-sources-Fx8wiYYw.js} +1 -1
  99. package/core/built/admin/assets/filters-CGX_pf2N.js +1 -0
  100. package/core/built/admin/assets/filters-DtcXMZDU.js +1 -0
  101. package/core/built/admin/assets/framework-provider-CmtnPXIT.js +4 -0
  102. package/core/built/admin/assets/{ghost-b57f077997b739a8ae9a70772dc016cb.js → ghost-b1dce91ad3232cc259ee5fbbf9526243.js} +294 -290
  103. package/core/built/admin/assets/ghost-dark-c8d0ab7f515b2010c173e23e9b32ea8a.css +1 -0
  104. package/core/built/admin/assets/gift-link-modal-Bk8qpnMw.js +1 -0
  105. package/core/built/admin/assets/{gift-links-CY3GwiVi.js → gift-links-nBxJjZiQ.js} +1 -1
  106. package/core/built/admin/assets/growth-Ck2s3JjR.js +1 -0
  107. package/core/built/admin/assets/hooks-BApwwBE0.js +2 -0
  108. package/core/built/admin/assets/{inbox-TEISAmth.js → inbox-BRp1_aaC.js} +35 -35
  109. package/core/built/admin/assets/index-BBf502Wg.js +69 -0
  110. package/core/built/admin/assets/index-BCCZKxP2.css +1 -0
  111. package/core/built/admin/assets/inline-EMAm3okk.js +1 -0
  112. package/core/built/admin/assets/input-group-DjuYnNCd.js +1 -0
  113. package/core/built/admin/assets/{react-dom-C6aoWSfl.js → jsx-runtime-DX3WBWVO.js} +1 -1
  114. package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +5 -2
  115. package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +2 -2
  116. package/core/built/admin/assets/{koenig-lexical-Di7b48ED.js → koenig-lexical-CM7UFNdL.js} +2 -2
  117. package/core/built/admin/assets/kpi-card-BrGH6FsT.js +1 -0
  118. package/core/built/admin/assets/kpi-card-CIGyijjx.js +1 -0
  119. package/core/built/admin/assets/kpi-helpers-_HRRsklE.js +1 -0
  120. package/core/built/admin/assets/kpi-tabs-BSvh9eoq.js +1 -0
  121. package/core/built/admin/assets/label-BOR9XdKl.js +1 -0
  122. package/core/built/admin/assets/label-picker-BdNAWuUX.js +1 -0
  123. package/core/built/admin/assets/{labels-GbxlXWtf.js → labels-Cyayfd-e.js} +1 -1
  124. package/core/built/admin/assets/layout-Bw4GnxXp.js +1 -0
  125. package/core/built/admin/assets/limit-service-9fwD33lU.js +20 -0
  126. package/core/built/admin/assets/link-helpers-tOlxmuH5.js +1 -0
  127. package/core/built/admin/assets/list-page-B6ANtzkd.js +1 -0
  128. package/core/built/admin/assets/mailchimp-Ds_NQ04w.svg +9 -0
  129. package/core/built/admin/assets/member-custom-fields-DvFyamLu.js +1 -0
  130. package/core/built/admin/assets/member-detail-Cg2vTqvJ.js +1 -0
  131. package/core/built/admin/assets/members-DsPxYAVm.js +10 -0
  132. package/core/built/admin/assets/modals-Bf_fyvHZ.js +31 -0
  133. package/core/built/admin/assets/moderation-Dlp7M5sa.js +1 -0
  134. package/core/built/admin/assets/multi-select-combobox-CH1o8XXQ.js +1 -0
  135. package/core/built/admin/assets/newsletter-CQ5CAYUI.js +1 -0
  136. package/core/built/admin/assets/{newsletters-DZm3yLj8.js → newsletters-D1jbtV-h.js} +1 -1
  137. package/core/built/admin/assets/note-BrAZ7Z0o.js +1 -0
  138. package/core/built/admin/assets/notifications-BnbHLOPC.js +1 -0
  139. package/core/built/admin/assets/nql-lang-B7faUf8D.js +19 -0
  140. package/core/built/admin/assets/{offers-D11QtPXX.js → offers-CrY6nSRR.js} +1 -1
  141. package/core/built/admin/assets/onboarding-route-eU146kuA.js +1 -0
  142. package/core/built/admin/assets/overview-BpbaK-xu.js +1 -0
  143. package/core/built/admin/assets/page-header-C0jVxtS8.js +1 -0
  144. package/core/built/admin/assets/{pages-BnObVRrf.js → pages-BbNWFcGj.js} +1 -1
  145. package/core/built/admin/assets/pintura-CXOmq-5H.svg +15 -0
  146. package/core/built/admin/assets/post-analytics-Iw7dk1mT.js +1 -0
  147. package/core/built/admin/assets/post-analytics-header-D9pJ4iNm.js +1 -0
  148. package/core/built/admin/assets/{post-analytics-provider-DSfBCtnj.js → post-analytics-provider-BDqcfBor.js} +1 -1
  149. package/core/built/admin/assets/post-share-modal-DBfKl2GZ.js +1 -0
  150. package/core/built/admin/assets/{posts-CwH8VJvB.js → posts-EWpZIjkr.js} +1 -1
  151. package/core/built/admin/assets/preferences-D4EANGoc.js +5 -0
  152. package/core/built/admin/assets/profile-dJ44Bn_W.js +1 -0
  153. package/core/built/admin/assets/{referrers-nxR52jPI.js → referrers-BCfFYSHc.js} +1 -1
  154. package/core/built/admin/assets/router-provider-C1R4AZ2o.js +1 -0
  155. package/core/built/admin/assets/select--2uVN9_-.js +1 -0
  156. package/core/built/admin/assets/settings-Bz3RZRmE.js +1 -0
  157. package/core/built/admin/assets/settings-SD9bxIpt.js +4 -0
  158. package/core/built/admin/assets/share-modal-CkdTTMJd.js +1 -0
  159. package/core/built/admin/assets/social-urls-BvFZwYcE.js +8 -0
  160. package/core/built/admin/assets/sort-button-DZp9Y2r1.js +1 -0
  161. package/core/built/admin/assets/source-icon-CHr9qJ2Y.js +1 -0
  162. package/core/built/admin/assets/stack-xiN0eQ6Z.js +1 -0
  163. package/core/built/admin/assets/stats-DGoXZxWE.js +1 -0
  164. package/core/built/admin/assets/stats-view-D2-1L0ms.js +1 -0
  165. package/core/built/admin/assets/step-1-RdahbwyG.js +1 -0
  166. package/core/built/admin/assets/step-2-D83PeRwd.js +1 -0
  167. package/core/built/admin/assets/step-3-p_Op4wv4.js +2 -0
  168. package/core/built/admin/assets/switch-qp518gFQ.js +1 -0
  169. package/core/built/admin/assets/table-B8LgTQJZ.js +1 -0
  170. package/core/built/admin/assets/tabs-D3ZOYkM7.js +1 -0
  171. package/core/built/admin/assets/tags-B4l891z2.js +1 -0
  172. package/core/built/admin/assets/text-DwtjwGkh.js +1 -0
  173. package/core/built/admin/assets/textarea-CTlb3Uu6.js +1 -0
  174. package/core/built/admin/assets/{tiers-EghDzCKc.js → tiers-BgYLWRJv.js} +1 -1
  175. package/core/built/admin/assets/toggle-group-DNXDkAwf.js +1 -0
  176. package/core/built/admin/assets/topic-filter-DZGjEcz3.js +1 -0
  177. package/core/built/admin/assets/{use-analytics-data-0l_OHtnR.js → use-analytics-data-CaT8RirX.js} +1 -1
  178. package/core/built/admin/assets/use-filter-params-DeQ8sX4N.js +1 -0
  179. package/core/built/admin/assets/use-growth-stats-9Db2CuJe.js +1 -0
  180. package/core/built/admin/assets/{use-post-referrers-DwI31Ril.js → use-post-referrers-BV54YcQS.js} +1 -1
  181. package/core/built/admin/assets/use-reply-chain-data-DuYZGDan.js +1 -0
  182. package/core/built/admin/assets/use-simple-pagination-8fTua9Nt.js +1 -0
  183. package/core/built/admin/assets/{use-tinybird-query-DvZBBMG7.js → use-tinybird-query-Dz156HvZ.js} +1 -1
  184. package/core/built/admin/assets/{use-tinybird-token-CQtebkvU.js → use-tinybird-token-C9RUdL_n.js} +1 -1
  185. package/core/built/admin/assets/{users-Pc8IRjk9.js → users-CcSCQFcQ.js} +1 -1
  186. package/core/built/admin/assets/virtual-list-BCvP0YF-.js +1 -0
  187. package/core/built/admin/assets/web-DTZnnUGr.js +1 -0
  188. package/core/built/admin/index.html +18 -22
  189. package/core/frontend/apps/private-blogging/index.js +1 -1
  190. package/core/frontend/apps/private-blogging/lib/middleware.js +1 -1
  191. package/core/frontend/helpers/split.js +2 -1
  192. package/core/frontend/meta/asset-url.js +1 -1
  193. package/core/frontend/meta/author-image.js +1 -1
  194. package/core/frontend/meta/blog-logo.js +1 -1
  195. package/core/frontend/meta/canonical-url.js +1 -1
  196. package/core/frontend/meta/cover-image.js +1 -1
  197. package/core/frontend/meta/get-meta.js +1 -1
  198. package/core/frontend/meta/og-image.js +1 -1
  199. package/core/frontend/meta/paginated-url.js +1 -1
  200. package/core/frontend/meta/twitter-image.js +1 -1
  201. package/core/frontend/meta/url.js +1 -1
  202. package/core/frontend/services/assets-minification/admin-auth-assets.js +1 -1
  203. package/core/frontend/services/llms/handler.js +1 -1
  204. package/core/frontend/services/proxy.js +31 -2
  205. package/core/frontend/services/routing/collection-router.js +1 -1
  206. package/core/frontend/services/routing/controllers/email-post.js +1 -1
  207. package/core/frontend/services/routing/controllers/entry/markdown.js +1 -1
  208. package/core/frontend/services/routing/controllers/entry/markdown.ts +1 -1
  209. package/core/frontend/services/routing/controllers/entry.js +1 -1
  210. package/core/frontend/services/routing/controllers/entry.ts +1 -1
  211. package/core/frontend/services/routing/controllers/previews.js +6 -7
  212. package/core/frontend/services/routing/controllers/unsubscribe.js +7 -3
  213. package/core/frontend/services/routing/email-router.js +1 -1
  214. package/core/frontend/services/routing/events.js +12 -0
  215. package/core/frontend/services/routing/middleware/page-param.js +1 -1
  216. package/core/frontend/services/routing/parent-router.js +1 -1
  217. package/core/frontend/services/routing/preview-router.js +1 -1
  218. package/core/frontend/services/routing/router-manager.js +4 -8
  219. package/core/frontend/services/routing/rss-router.js +1 -1
  220. package/core/frontend/services/routing/static-pages-router.js +1 -1
  221. package/core/frontend/services/routing/static-routes-router.js +1 -1
  222. package/core/frontend/services/routing/taxonomy-router.js +1 -1
  223. package/core/frontend/services/rss/generate-feed.js +1 -1
  224. package/core/frontend/services/sitemap/base-site-map-generator.js +23 -4
  225. package/core/frontend/services/sitemap/site-map-index-generator.js +1 -1
  226. package/core/frontend/services/sitemap/site-map-manager.js +14 -8
  227. package/core/frontend/services/sitemap/utils.js +1 -1
  228. package/core/frontend/services/theme-engine/middleware/update-global-template-options.js +1 -1
  229. package/core/frontend/services/theme-engine/middleware/update-local-template-options.js +1 -1
  230. package/core/frontend/utils/images.js +1 -1
  231. package/core/frontend/web/middleware/admin-toolbar.js +1 -1
  232. package/core/frontend/web/middleware/handle-image-sizes.js +2 -2
  233. package/core/frontend/web/middleware/redirect-ghost-to-admin.js +1 -1
  234. package/core/frontend/web/routers/serve-favicon.js +1 -1
  235. package/core/frontend/web/routers/serve-public-file.js +1 -1
  236. package/core/frontend/web/site.js +5 -5
  237. package/core/server/adapters/cache/AdapterCacheMemoryTTL.js +2 -2
  238. package/core/server/adapters/cache/MemoryCache.js +2 -2
  239. package/core/server/adapters/cache/Redis.js +1 -1
  240. package/core/server/adapters/cache/index.js +1 -1
  241. package/core/server/adapters/lib/redis/AdapterCacheRedis.js +2 -2
  242. package/core/server/adapters/route-settings/FileStore.js +2 -8
  243. package/core/server/adapters/route-settings/FileStore.ts +1 -6
  244. package/core/server/adapters/route-settings/S3RouteSettingsStore.js +206 -0
  245. package/core/server/adapters/route-settings/S3RouteSettingsStore.ts +199 -0
  246. package/core/server/adapters/route-settings/utils.js +13 -0
  247. package/core/server/adapters/route-settings/utils.ts +7 -0
  248. package/core/server/adapters/scheduling/deps.d.ts +0 -2
  249. package/core/server/adapters/scheduling/error-capture.js +76 -0
  250. package/core/server/adapters/scheduling/error-capture.ts +91 -0
  251. package/core/server/adapters/scheduling/utils.js +18 -34
  252. package/core/server/adapters/scheduling/utils.ts +36 -0
  253. package/core/server/adapters/storage/LocalFilesStorage.js +1 -1
  254. package/core/server/adapters/storage/LocalImagesStorage.js +1 -1
  255. package/core/server/adapters/storage/LocalMediaStorage.js +1 -1
  256. package/core/server/adapters/storage/LocalStorageBase.js +3 -3
  257. package/core/server/adapters/storage/S3Storage.js +2 -2
  258. package/core/server/adapters/storage/S3Storage.ts +1 -1
  259. package/core/server/adapters/storage/utils.js +1 -1
  260. package/core/server/api/endpoints/authentication.js +1 -1
  261. package/core/server/api/endpoints/featurebase.js +1 -1
  262. package/core/server/api/endpoints/files.js +2 -2
  263. package/core/server/api/endpoints/images.js +2 -2
  264. package/core/server/api/endpoints/libraries.d.ts +0 -1
  265. package/core/server/api/endpoints/media.js +8 -5
  266. package/core/server/api/endpoints/member-custom-fields.js +4 -1
  267. package/core/server/api/endpoints/member-custom-fields.ts +4 -1
  268. package/core/server/api/endpoints/posts.js +17 -1
  269. package/core/server/api/endpoints/search-index-public.js +4 -3
  270. package/core/server/api/endpoints/search-index.js +5 -4
  271. package/core/server/api/endpoints/settings-public.js +1 -1
  272. package/core/server/api/endpoints/settings.js +3 -1
  273. package/core/server/api/endpoints/utils/serializers/input/utils/url.js +9 -1
  274. package/core/server/api/endpoints/utils/serializers/output/default.js +7 -0
  275. package/core/server/api/endpoints/utils/serializers/output/files.js +1 -1
  276. package/core/server/api/endpoints/utils/serializers/output/media.js +1 -1
  277. package/core/server/api/endpoints/utils/serializers/output/member-custom-fields.js +7 -4
  278. package/core/server/api/endpoints/utils/serializers/output/member-custom-fields.ts +8 -4
  279. package/core/server/api/endpoints/utils/serializers/output/members.js +16 -26
  280. package/core/server/api/endpoints/utils/serializers/output/pages.js +7 -0
  281. package/core/server/api/endpoints/utils/serializers/output/posts.js +13 -0
  282. package/core/server/api/endpoints/utils/serializers/output/utils/url.js +1 -1
  283. package/core/server/api/endpoints/utils/validators/input/members.js +2 -52
  284. package/core/server/data/db/backup.js +1 -1
  285. package/core/server/data/importer/handlers/image.js +3 -3
  286. package/core/server/data/importer/import-manager.js +6 -4
  287. package/core/server/data/importer/importers/content-file-importer.js +2 -2
  288. package/core/server/data/migrations/utils/schema.js +4 -2
  289. package/core/server/data/migrations/versions/6.54/2026-07-19-16-59-00-add-content-import-permission.js +10 -0
  290. package/core/server/data/migrations/versions/6.54/2026-07-20-13-59-21-drop-email-tracked-sent-count-from-automation-action-revisions.js +7 -0
  291. package/core/server/data/migrations/versions/6.54/2026-07-21-01-58-20-add-automation-run-steps-poller-index.js +3 -0
  292. package/core/server/data/migrations/versions/6.54/2026-07-21-21-08-15-add-automated-email-recipients-mailgun-message-id-index.js +3 -0
  293. package/core/server/data/migrations/versions/6.54/2026-07-22-10-41-08-add-click-tracking-to-automated-email-recipients.js +13 -0
  294. package/core/server/data/migrations/versions/6.54/2026-07-22-15-10-30-add-email-clicked-count-to-automation-action-revisions.js +7 -0
  295. package/core/server/data/migrations/versions/6.54/2026-07-23-10-24-18-add-automation-action-revision-to-redirects.js +9 -0
  296. package/core/server/data/schema/commands.js +37 -3
  297. package/core/server/data/schema/fixtures/fixtures.json +7 -0
  298. package/core/server/data/schema/lib/default-index-name.js +20 -0
  299. package/core/server/data/schema/schema.js +40 -17
  300. package/core/server/data/seeders/data-generator.js +4 -2
  301. package/core/server/lib/image/image-size.js +5 -7
  302. package/core/server/lib/image/image-utils.js +2 -2
  303. package/core/server/lib/image/index.js +4 -4
  304. package/core/server/lib/lexical.js +3 -3
  305. package/core/server/lib/mobiledoc.js +2 -2
  306. package/core/server/lib/validate-password.js +1 -1
  307. package/core/server/models/action.js +9 -0
  308. package/core/server/models/base/plugins/generate-slug.js +1 -1
  309. package/core/server/models/collection.js +1 -1
  310. package/core/server/models/custom-theme-setting.js +1 -1
  311. package/core/server/models/member.js +73 -0
  312. package/core/server/models/newsletter.js +1 -1
  313. package/core/server/models/post.js +19 -5
  314. package/core/server/models/posts-meta.js +1 -1
  315. package/core/server/models/redirect.js +1 -1
  316. package/core/server/models/settings.js +1 -1
  317. package/core/server/models/snippet.js +1 -1
  318. package/core/server/models/tag.js +1 -1
  319. package/core/server/models/user.js +1 -1
  320. package/core/server/models/welcome-email-automated-email.js +1 -1
  321. package/core/server/services/activitypub/activity-pub-service-wrapper.js +1 -1
  322. package/core/server/services/adapter-manager/adapter-manager.js +5 -1
  323. package/core/server/services/adapter-manager/adapter-manager.ts +7 -2
  324. package/core/server/services/adapter-manager/index.js +18 -15
  325. package/core/server/services/adapter-manager/index.ts +23 -17
  326. package/core/server/services/adapter-manager/utils.js +124 -14
  327. package/core/server/services/adapter-manager/utils.ts +130 -14
  328. package/core/server/services/api-version-compatibility/mw-version-rewrites.js +1 -1
  329. package/core/server/services/audience-feedback/index.js +1 -1
  330. package/core/server/services/auth/passwordreset.js +1 -1
  331. package/core/server/services/auth/session/express-session.js +1 -1
  332. package/core/server/services/auth/session/index.js +2 -2
  333. package/core/server/services/auth/session/session-service.js +1 -1
  334. package/core/server/services/automations/automations-api.js +2 -19
  335. package/core/server/services/automations/automations-api.ts +2 -31
  336. package/core/server/services/automations/automations-repository.ts +15 -0
  337. package/core/server/services/automations/database-automations-repository.js +30 -2
  338. package/core/server/services/automations/database-automations-repository.ts +33 -2
  339. package/core/server/services/automations/poll.js +16 -12
  340. package/core/server/services/automations/poll.ts +17 -15
  341. package/core/server/services/automations/service.js +1 -1
  342. package/core/server/services/automations/service.ts +3 -13
  343. package/core/server/services/automations/welcome-email-automation-poll.js +2 -1
  344. package/core/server/services/comments/index.js +1 -1
  345. package/core/server/services/custom-redirects/index.js +2 -2
  346. package/core/server/services/email-analytics/email-analytics-service-wrapper.js +14 -13
  347. package/core/server/services/email-analytics/email-analytics-service.js +1 -1
  348. package/core/server/services/email-analytics/events/start-email-analytics-job-event.js +11 -15
  349. package/core/server/services/email-analytics/events/start-email-analytics-job-event.ts +15 -0
  350. package/core/server/services/email-analytics/index.js +2 -3
  351. package/core/server/services/email-analytics/index.ts +1 -2
  352. package/core/server/services/email-analytics/jobs/email-analytics-job-scheduler.js +1 -6
  353. package/core/server/services/email-analytics/jobs/email-analytics-job-scheduler.ts +0 -9
  354. package/core/server/services/email-analytics/jobs/fetch-latest/index.js +1 -1
  355. package/core/server/services/email-analytics/jobs/index.js +0 -2
  356. package/core/server/services/email-service/email-service-wrapper.js +1 -1
  357. package/core/server/services/email-service/email-service.js +20 -4
  358. package/core/server/services/explore-ping/explore-ping-service.js +24 -39
  359. package/core/server/services/explore-ping/explore-ping-service.ts +198 -0
  360. package/core/server/services/explore-ping/index.js +11 -11
  361. package/core/server/services/explore-ping/index.ts +42 -0
  362. package/core/server/services/gifts/gift-reminder-scheduler.js +1 -1
  363. package/core/server/services/gifts/gift-reminder-scheduler.ts +1 -1
  364. package/core/server/services/gifts/gift-service-wrapper.js +1 -1
  365. package/core/server/services/identity-tokens/identity-token-service-wrapper.js +1 -1
  366. package/core/server/services/indexnow-ping/constants.js +30 -0
  367. package/core/server/services/indexnow-ping/constants.ts +32 -0
  368. package/core/server/services/indexnow-ping/index.js +29 -253
  369. package/core/server/services/indexnow-ping/index.ts +37 -0
  370. package/core/server/services/indexnow-ping/indexnow-ping-service.js +229 -0
  371. package/core/server/services/indexnow-ping/indexnow-ping-service.ts +319 -0
  372. package/core/server/services/invites/index.js +1 -1
  373. package/core/server/services/lib/mailgun-client.js +3 -3
  374. package/core/server/services/link-redirection/index.js +2 -2
  375. package/core/server/services/link-redirection/link-redirect-repository.js +1 -1
  376. package/core/server/services/link-redirection/link-redirect.js +12 -13
  377. package/core/server/services/link-redirection/link-redirect.ts +22 -0
  378. package/core/server/services/link-redirection/link-redirects-service.js +1 -1
  379. package/core/server/services/link-tracking/full-post-link.js +2 -2
  380. package/core/server/services/link-tracking/index.js +1 -1
  381. package/core/server/services/mail/ghost-mailer.js +1 -1
  382. package/core/server/services/mail/index.js +1 -1
  383. package/core/server/services/media-inliner/external-media-inliner.js +2 -2
  384. package/core/server/services/media-inliner/service.js +4 -3
  385. package/core/server/services/member-attribution/index.js +1 -1
  386. package/core/server/services/member-welcome-emails/service.js +1 -1
  387. package/core/server/services/members/api.js +8 -2
  388. package/core/server/services/members/csv/index.js +10 -0
  389. package/core/server/services/members/csv/index.ts +3 -0
  390. package/core/server/services/members/csv/parse.js +94 -0
  391. package/core/server/services/members/csv/parse.ts +111 -0
  392. package/core/server/services/members/csv/types.js +2 -0
  393. package/core/server/services/members/csv/types.ts +39 -0
  394. package/core/server/services/members/csv/unparse.js +69 -0
  395. package/core/server/services/members/csv/unparse.ts +79 -0
  396. package/core/server/services/members/exporter/query.js +35 -8
  397. package/core/server/services/members/importer/config.js +35 -0
  398. package/core/server/services/members/importer/config.ts +39 -0
  399. package/core/server/services/members/importer/members-csv-importer.js +31 -13
  400. package/core/server/services/members/members-api/members-api.js +4 -2
  401. package/core/server/services/members/members-api/repositories/event-repository.js +13 -2
  402. package/core/server/services/members/members-api/services/member-bread-service.js +42 -19
  403. package/core/server/services/members/middleware.js +1 -1
  404. package/core/server/services/members/service.js +15 -2
  405. package/core/server/services/members/stripe-connect.js +1 -1
  406. package/core/server/services/members-custom-fields/actions.js +3 -0
  407. package/core/server/services/members-custom-fields/actions.ts +6 -2
  408. package/core/server/services/members-custom-fields/config.js +34 -0
  409. package/core/server/services/members-custom-fields/config.ts +38 -0
  410. package/core/server/services/members-custom-fields/definitions-service.js +156 -21
  411. package/core/server/services/members-custom-fields/definitions-service.ts +170 -25
  412. package/core/server/services/members-custom-fields/index.js +16 -3
  413. package/core/server/services/members-custom-fields/index.ts +17 -3
  414. package/core/server/services/members-custom-fields/values-service.js +56 -10
  415. package/core/server/services/members-custom-fields/values-service.ts +62 -10
  416. package/core/server/services/mentions/mention-sending-service.js +22 -2
  417. package/core/server/services/mentions/service.js +21 -5
  418. package/core/server/services/newsletters/index.js +1 -1
  419. package/core/server/services/oembed/oembed-service.js +122 -33
  420. package/core/server/services/oembed/service.js +4 -2
  421. package/core/server/services/offers/service.js +1 -1
  422. package/core/server/services/post-scheduling/index.js +4 -3
  423. package/core/server/services/post-scheduling/index.ts +4 -3
  424. package/core/server/services/post-scheduling/post-scheduling.js +1 -1
  425. package/core/server/services/post-scheduling/post-scheduling.ts +1 -1
  426. package/core/server/services/posts/post-email-handler.js +13 -6
  427. package/core/server/services/posts/post-scheduling.js +1 -1
  428. package/core/server/services/posts/posts-service-instance.js +1 -1
  429. package/core/server/services/posts/posts-service.js +2 -2
  430. package/core/server/services/posts-public/service.js +1 -1
  431. package/core/server/services/public-config/site.js +1 -1
  432. package/core/server/services/recommendations/recommendation-service-wrapper.js +1 -1
  433. package/core/server/services/recommendations/service/libraries.d.ts +0 -2
  434. package/core/server/services/route-settings/dynamic-routing-service.js +2 -3
  435. package/core/server/services/route-settings/index.js +1 -1
  436. package/core/server/services/route-settings/route-settings-parser.js +134 -124
  437. package/core/server/services/route-settings/route-settings-parser.ts +160 -125
  438. package/core/server/services/route-settings/validation-errors.js +178 -0
  439. package/core/server/services/route-settings/validation-errors.ts +196 -0
  440. package/core/server/services/settings/settings-service.js +2 -2
  441. package/core/server/services/settings-helpers/index.js +1 -1
  442. package/core/server/services/slack-notifications/service.js +1 -1
  443. package/core/server/services/slack-ping/constants.js +16 -0
  444. package/core/server/services/slack-ping/constants.ts +15 -0
  445. package/core/server/services/slack-ping/index.js +26 -204
  446. package/core/server/services/slack-ping/index.ts +35 -0
  447. package/core/server/services/slack-ping/slack-ping-service.js +214 -0
  448. package/core/server/services/slack-ping/slack-ping-service.ts +296 -0
  449. package/core/server/services/staff/index.js +1 -1
  450. package/core/server/services/stats/posts-stats-service.js +1 -1
  451. package/core/server/services/stats/service.js +1 -1
  452. package/core/server/services/stripe/service.js +1 -1
  453. package/core/server/services/tags-public/service.js +1 -1
  454. package/core/server/services/themes/validate.js +1 -1
  455. package/core/server/services/update-check/index.js +1 -1
  456. package/core/server/services/url/lazy-url-service.js +66 -6
  457. package/core/server/services/url/lazy-url-service.ts +73 -6
  458. package/core/server/services/url/url-generator.js +1 -1
  459. package/core/server/services/url/url-service-facade.js +68 -3
  460. package/core/server/services/url/url-service-facade.ts +79 -4
  461. package/core/server/services/url/url-service.js +1 -1
  462. package/core/server/services/url/urls.js +1 -1
  463. package/core/server/services/webhooks/index.js +19 -2
  464. package/core/server/services/webhooks/listen.js +6 -11
  465. package/core/server/services/webhooks/payload.js +1 -3
  466. package/core/server/services/webhooks/serialize.js +16 -1
  467. package/core/server/web/admin/app.js +1 -1
  468. package/core/server/web/admin/middleware/redirect-admin-urls.js +1 -1
  469. package/core/server/web/api/endpoints/admin/routes.js +1 -0
  470. package/core/server/web/api/middleware/cors.js +1 -1
  471. package/core/server/web/api/middleware/upload.js +4 -0
  472. package/core/server/web/gift-preview/controller.js +1 -1
  473. package/core/server/web/shared/middleware/redirect-amp-urls.js +1 -1
  474. package/core/server/web/shared/middleware/uncapitalise.js +2 -2
  475. package/core/server/web/shared/middleware/url-redirects.js +1 -1
  476. package/core/shared/config/defaults.json +8 -1
  477. package/core/shared/config/overrides.json +4 -0
  478. package/core/shared/url-utils.js +19 -15
  479. package/core/shared/url-utils.ts +20 -0
  480. package/ghost.js +0 -1
  481. package/package.json +26 -31
  482. package/pnpm-lock.yaml +681 -2789
  483. package/pnpm-workspace.yaml +31 -17
  484. package/components/tryghost-adapter-base-scheduling-0.0.0.tgz +0 -0
  485. package/components/tryghost-adapter-base-sso-0.0.0.tgz +0 -0
  486. package/core/built/admin/assets/Combination--5EZGaDs.js +0 -43
  487. package/core/built/admin/assets/Growth-C0NoKcHQ.js +0 -3
  488. package/core/built/admin/assets/Newsletters-Ed8kDjdy.js +0 -1
  489. package/core/built/admin/assets/Overview-CArPgRZt.js +0 -1
  490. package/core/built/admin/assets/Web-CjjYoVM3.js +0 -2
  491. package/core/built/admin/assets/account-migration-mfa5mNI9.js +0 -1
  492. package/core/built/admin/assets/activitypub/inbox-B3rjKMTv.js +0 -1221
  493. package/core/built/admin/assets/activitypub/layout-jcurg3rU.js +0 -1
  494. package/core/built/admin/assets/activitypub/use-activity-pub-queries-yqGRcnLn.js +0 -2569
  495. package/core/built/admin/assets/activitypub/users-CfyHIsTG.js +0 -1316
  496. package/core/built/admin/assets/automations-DkUnxNdv.js +0 -1
  497. package/core/built/admin/assets/automations-vjXofmV_.js +0 -1
  498. package/core/built/admin/assets/bluesky-sharing-T-pO3RcP.js +0 -1
  499. package/core/built/admin/assets/breadcrumb-CekPYTCn.js +0 -1
  500. package/core/built/admin/assets/button--i2uMDDn.js +0 -4
  501. package/core/built/admin/assets/card-CSWz_BXq.js +0 -1
  502. package/core/built/admin/assets/chart-helpers-C_4Ka_vT.js +0 -1
  503. package/core/built/admin/assets/chunk.524.8ce2c741473e2f0929dc.js +0 -25
  504. package/core/built/admin/assets/chunk.582.453459d6228d2955408b.js +0 -27
  505. package/core/built/admin/assets/code-editor-view-BfkwQto2.js +0 -1
  506. package/core/built/admin/assets/command-K75Jzs0G.js +0 -1
  507. package/core/built/admin/assets/comments-BEIi1DH-.js +0 -1
  508. package/core/built/admin/assets/container-BNXvlcjA.js +0 -1
  509. package/core/built/admin/assets/data-list-BmK5QMab.js +0 -1
  510. package/core/built/admin/assets/date-range-select-5sKzwbt7.js +0 -1
  511. package/core/built/admin/assets/disabled-sources-indicator-L_ssJTNr.js +0 -1
  512. package/core/built/admin/assets/dist-BBIJuyPg.js +0 -1
  513. package/core/built/admin/assets/dist-BHE0dp6o.js +0 -1
  514. package/core/built/admin/assets/dist-DJ6c4_De.js +0 -1
  515. package/core/built/admin/assets/dist-DW0QXQO3.js +0 -1
  516. package/core/built/admin/assets/dist-DxFLceO5.js +0 -1
  517. package/core/built/admin/assets/dist-QcACAOAD.js +0 -1
  518. package/core/built/admin/assets/dist-duxRDcQu.js +0 -177
  519. package/core/built/admin/assets/domain-CLaPZ9Rc.js +0 -1
  520. package/core/built/admin/assets/dropzone-E0bSX4_a.js +0 -5
  521. package/core/built/admin/assets/edit-profile-DqNPKaA4.js +0 -1
  522. package/core/built/admin/assets/editor-CkLXQDRp.js +0 -8
  523. package/core/built/admin/assets/empty-indicator-BTtOlgIo.js +0 -1
  524. package/core/built/admin/assets/esm-TSfGW7nz.js +0 -2
  525. package/core/built/admin/assets/explore-BEstLxKr.js +0 -1
  526. package/core/built/admin/assets/feed-C58p2voG.js +0 -1
  527. package/core/built/admin/assets/field-BSbDUHPv.js +0 -1
  528. package/core/built/admin/assets/filters-BgYv8Gt7.js +0 -1
  529. package/core/built/admin/assets/filters-DvenFkmK.js +0 -1
  530. package/core/built/admin/assets/framework-provider-jQktxm9P.js +0 -4
  531. package/core/built/admin/assets/ghost-dark-8590dea6cd695ff90f27d262c4464538.css +0 -1
  532. package/core/built/admin/assets/gift-link-modal-BPjXkEFt.js +0 -1
  533. package/core/built/admin/assets/growth-D4JNiVTe.js +0 -1
  534. package/core/built/admin/assets/hooks-Cjxexi_I.js +0 -2
  535. package/core/built/admin/assets/index-BacwlcOy.js +0 -67
  536. package/core/built/admin/assets/index-DxRNHH0o.css +0 -1
  537. package/core/built/admin/assets/inline-C22rnPro.js +0 -1
  538. package/core/built/admin/assets/input-group-CKfrILLP.js +0 -1
  539. package/core/built/admin/assets/jsx-runtime-CtMZ-PAS.js +0 -1
  540. package/core/built/admin/assets/kpi-card-DZxQKAIb.js +0 -1
  541. package/core/built/admin/assets/kpi-card-FidQ5zg3.js +0 -1
  542. package/core/built/admin/assets/kpi-helpers-C5T8Vaf1.js +0 -1
  543. package/core/built/admin/assets/kpi-tabs-_VRK6hGV.js +0 -1
  544. package/core/built/admin/assets/label-Cza7hPgn.js +0 -1
  545. package/core/built/admin/assets/label-picker-DgC_zLaw.js +0 -1
  546. package/core/built/admin/assets/layout-BxsXnKFX.js +0 -1
  547. package/core/built/admin/assets/limit-service-CTurluJQ.js +0 -20
  548. package/core/built/admin/assets/link-helpers-C3Gqy2cz.js +0 -1
  549. package/core/built/admin/assets/list-page-BtqCnow_.js +0 -1
  550. package/core/built/admin/assets/member-custom-fields-9uXFBqSt.js +0 -1
  551. package/core/built/admin/assets/member-detail-Dq6ZDIxo.js +0 -1
  552. package/core/built/admin/assets/members-CUWD9jal.js +0 -10
  553. package/core/built/admin/assets/modals-CIdwHVga.js +0 -31
  554. package/core/built/admin/assets/moderation-DTt04UDA.js +0 -1
  555. package/core/built/admin/assets/newsletter-cC8vcc9h.js +0 -1
  556. package/core/built/admin/assets/note-DZU0IY9e.js +0 -1
  557. package/core/built/admin/assets/notifications-NoHpBHJ4.js +0 -1
  558. package/core/built/admin/assets/nql-lang-CvCSOQG3.js +0 -19
  559. package/core/built/admin/assets/onboarding-route-Deg2hNm8.js +0 -1
  560. package/core/built/admin/assets/overview-BQPt_9w3.js +0 -1
  561. package/core/built/admin/assets/page-header-D6bEqPo2.js +0 -1
  562. package/core/built/admin/assets/post-analytics-header-BPw_B2_D.js +0 -1
  563. package/core/built/admin/assets/post-analytics-kp2_--XO.js +0 -1
  564. package/core/built/admin/assets/post-share-modal-Cave3Z4W.js +0 -1
  565. package/core/built/admin/assets/preferences-C7h3j_uy.js +0 -5
  566. package/core/built/admin/assets/profile-B2x4q2oB.js +0 -1
  567. package/core/built/admin/assets/router-provider-5fsX1CYn.js +0 -1
  568. package/core/built/admin/assets/select-PhPjIBBT.js +0 -1
  569. package/core/built/admin/assets/settings-D5P9Gwgo.js +0 -6
  570. package/core/built/admin/assets/settings-zUOzQV5I.js +0 -1
  571. package/core/built/admin/assets/share-modal-EfpfbuWF.js +0 -1
  572. package/core/built/admin/assets/social-urls-DgAF08Xc.js +0 -18
  573. package/core/built/admin/assets/sort-button-WOQYJm2H.js +0 -1
  574. package/core/built/admin/assets/source-icon-hm8Cj-Gx.js +0 -1
  575. package/core/built/admin/assets/stats-CnQDb62m.js +0 -1
  576. package/core/built/admin/assets/stats-view-CCfTJgSe.js +0 -1
  577. package/core/built/admin/assets/step-1-BGlhY4DS.js +0 -1
  578. package/core/built/admin/assets/step-2-D3sDEyFH.js +0 -1
  579. package/core/built/admin/assets/step-3-CvZoUdsc.js +0 -2
  580. package/core/built/admin/assets/switch-CNjkOmwz.js +0 -1
  581. package/core/built/admin/assets/table-C5nZYPnW.js +0 -1
  582. package/core/built/admin/assets/tabs-dtOcExye.js +0 -1
  583. package/core/built/admin/assets/tags-Dhm0FB_g.js +0 -1
  584. package/core/built/admin/assets/textarea-CeKw3wmV.js +0 -1
  585. package/core/built/admin/assets/toggle-group-DfhZIMTW.js +0 -1
  586. package/core/built/admin/assets/topic-filter-Cxe1Il41.js +0 -1
  587. package/core/built/admin/assets/typeof-Ca-duI-z.js +0 -1
  588. package/core/built/admin/assets/use-filter-params-Bub6BqNy.js +0 -1
  589. package/core/built/admin/assets/use-growth-stats-BJORomv0.js +0 -1
  590. package/core/built/admin/assets/use-reply-chain-data-B89YjVoo.js +0 -1
  591. package/core/built/admin/assets/use-simple-pagination-BL2SYXKi.js +0 -1
  592. package/core/built/admin/assets/virtual-list-DNJOSK9I.js +0 -1
  593. package/core/built/admin/assets/web-BHUE3YQc.js +0 -1
  594. package/core/server/adapters/scheduling/scheduling-base.js +0 -5
  595. package/core/server/adapters/sso/SSOBase.js +0 -5
  596. package/core/server/adapters/storage/index.js +0 -17
@@ -1 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-CtMZ-PAS.js";import{l as r,m as i}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{s as a}from"./router-provider-5fsX1CYn.js";import{Gt as o,Tn as s,Ut as c,Vn as l,c as u,d,er as f,it as p,n as m,on as h,t as g,u as _,un as v}from"./button--i2uMDDn.js";import{n as y}from"./dist-DW0QXQO3.js";import{a as b,i as x,n as S,r as C,t as w}from"./tabs-dtOcExye.js";import{t as ee}from"./edit-profile-DqNPKaA4.js";import{Ar as T,Bn as E,Di as te,F as D,Fr as ne,Ft as re,Gn as O,Hn as k,Ht as A,I as ie,Jt as j,L as ae,Nr as oe,Or as se,Ot as M,Pr as ce,Pt as le,Q as N,R as ue,Un as P,Ut as de,V as fe,Y as F,Yn as pe,_t as me,ar as I,at as he,cr as ge,ct as _e,er as L,fr as ve,gt as ye,hr as R,ir as z,ki as B,kt as V,lt as be,mr as xe,mt as Se,nr as H,or as U,ot as Ce,pr as W,pt as G,rr as K,sr as q,st as we,tr as Te,tt as J,zn as Y}from"./index-BacwlcOy.js";import"./layout-BxsXnKFX.js";import{t as Ee}from"./settings-zUOzQV5I.js";var X=e(t(),1);function De(e){return typeof e.name==`string`?e.name:typeof e.preferredUsername==`string`?e.preferredUsername:typeof e.preferredUsername==`object`&&e.preferredUsername!==null&&`@value`in e.preferredUsername&&typeof e.preferredUsername[`@value`]==`string`?e.preferredUsername[`@value`]:`Unknown`}var Z=n(),Oe=({noResultsMessage:e,actors:t,isLoading:n,fetchNextPage:r,hasNextPage:i,isFetchingNextPage:a})=>{let{data:o}=Se(`index`,`me`),s=(0,X.useRef)(null),c=(0,X.useRef)(null);(0,X.useEffect)(()=>(s.current&&s.current.disconnect(),s.current=new IntersectionObserver(e=>{e[0].isIntersecting&&i&&!a&&r()}),c.current&&s.current.observe(c.current),()=>{s.current&&s.current.disconnect()}),[i,a,r]);let l=j();return(0,Z.jsxs)(`div`,{className:`pt-3`,"data-testid":`actor-list`,children:[i===!1&&t.length===0?(0,Z.jsxs)(Y,{children:[(0,Z.jsx)(E,{children:(0,Z.jsx)(d,{})}),e]}):(0,Z.jsx)(`div`,{className:`flex flex-col`,children:t.map(({actor:e,isFollowing:t,blockedByMe:n,domainBlockedByMe:r})=>{let i=de(e),a=i===o?.handle;return(0,Z.jsx)(X.Fragment,{children:(0,Z.jsx)(J,{actor:e,align:`center`,isCurrentUser:a,side:`left`,children:(0,Z.jsx)(`div`,{children:(0,Z.jsxs)(fe,{"data-testid":`actor-item`,onClick:()=>{N(e,l)},children:[(0,Z.jsx)(be,{author:e}),(0,Z.jsx)(`div`,{children:(0,Z.jsxs)(`div`,{className:`break-anywhere text-gray-600`,children:[(0,Z.jsx)(`span`,{className:`mr-1 line-clamp-1 font-bold text-black dark:text-white`,children:De(e)}),(0,Z.jsx)(`div`,{className:`line-clamp-1 text-sm`,children:i})]})}),n||r?(0,Z.jsx)(g,{className:`pointer-events-none ml-auto min-w-[90px]`,variant:`destructive`,children:`Blocked`}):a?null:(0,Z.jsx)(_e,{className:`ml-auto`,"data-testid":`follow-button`,following:t,handle:i,type:`secondary`})]},e.id)})})},e.id)})}),(0,Z.jsx)(`div`,{ref:c,className:`h-1`}),(a||n)&&(0,Z.jsx)(`div`,{className:`mt-6 flex flex-col items-center justify-center gap-4 text-center`,children:(0,Z.jsx)(k,{size:`md`})})]})},Q=({posts:e,fetchNextPage:t,hasNextPage:n,isFetchingNextPage:r,isLoading:i})=>{let a=(0,X.useRef)(null),o=(0,X.useRef)(null),s=(0,X.useRef)(null),l=Math.max(0,Math.floor(e.length*.75)-1);(0,X.useEffect)(()=>(a.current&&a.current.disconnect(),a.current=new IntersectionObserver(e=>{e[0].isIntersecting&&n&&!r&&t()}),o.current&&a.current.observe(o.current),s.current&&a.current.observe(s.current),()=>{a.current&&a.current.disconnect()}),[n,r,t]);let u=j();return(0,Z.jsxs)(Z.Fragment,{children:[n===!1&&e.length===0&&(0,Z.jsxs)(Y,{children:[(0,Z.jsx)(E,{children:(0,Z.jsx)(c,{})}),`You haven't liked anything yet.`]}),(0,Z.jsxs)(`ul`,{className:`mx-auto flex max-w-[640px] flex-col`,"data-testid":`profile-likes-list`,children:[e.map((t,n)=>(0,Z.jsxs)(`li`,{"data-testid":`profile-like-item`,"data-test-view-article":!0,children:[(0,Z.jsx)(F,{actor:t.actor,allowDelete:t.object.authored,commentCount:t.object.replyCount,isLoading:i,layout:`feed`,likeCount:t.object.likeCount,object:t.object,repostCount:t.object.repostCount,type:t.type,onClick:()=>{t.object.type===`Note`?u(`/notes/${encodeURIComponent(t.object.id)}`):t.object.type===`Article`&&u(`/reader/${encodeURIComponent(t.object.id)}`)}}),n<e.length-1&&(0,Z.jsx)(O,{}),n===l&&(0,Z.jsx)(`div`,{ref:o,className:`h-1`})]},`likes-${t.id}`)),r&&(0,Z.jsx)(`li`,{className:`flex flex-col items-center justify-center gap-4 text-center`,children:(0,Z.jsx)(k,{size:`md`})})]}),(0,Z.jsx)(`div`,{ref:s,className:`h-1`})]})},ke=({posts:e,fetchNextPage:t,hasNextPage:n,isFetchingNextPage:r,isLoading:i,noResultsMessage:a})=>{let o=(0,X.useRef)(null),s=(0,X.useRef)(null),c=(0,X.useRef)(null),l=Math.max(0,Math.floor(e.length*.75)-1);(0,X.useEffect)(()=>(o.current&&o.current.disconnect(),o.current=new IntersectionObserver(e=>{e[0].isIntersecting&&n&&!r&&t()}),s.current&&o.current.observe(s.current),c.current&&o.current.observe(c.current),()=>{o.current&&o.current.disconnect()}),[n,r,t]);let u=j();return(0,Z.jsxs)(Z.Fragment,{children:[n===!1&&e.length===0&&(0,Z.jsxs)(Y,{children:[(0,Z.jsx)(E,{children:(0,Z.jsx)(p,{})}),a]}),(0,Z.jsxs)(`ul`,{className:`mx-auto flex max-w-[640px] flex-col`,"data-testid":`profile-posts-list`,children:[e.map((t,n)=>(0,Z.jsxs)(`li`,{"data-testid":`profile-post-item`,"data-test-view-article":!0,children:[(0,Z.jsx)(F,{actor:t.actor,allowDelete:t.object.authored,commentCount:t.object.replyCount,isLoading:i,layout:`feed`,likeCount:t.object.likeCount,object:t.object,repostCount:t.object.repostCount,type:t.type,onClick:()=>{t.object.type===`Note`?u(`/notes/${encodeURIComponent(t.object.id)}`):t.object.type===`Article`&&u(`/reader/${encodeURIComponent(t.object.id)}`)}}),n<e.length-1&&(0,Z.jsx)(O,{}),n===l&&(0,Z.jsx)(`div`,{ref:s,className:`h-1`})]},`posts-${t.id}`)),r&&(0,Z.jsx)(`li`,{className:`flex flex-col items-center justify-center gap-4 text-center`,children:(0,Z.jsx)(k,{size:`md`})})]}),(0,Z.jsx)(`div`,{ref:c,className:`h-1`})]})},$=({handle:e,isUserBlocked:t,isDomainBlocked:n,onUnblockUser:r,onUnblockDomain:i,trigger:a,onUnblockComplete:s,isOpen:c,onOpenChange:l})=>{let[d,f]=(0,X.useState)(!1),[p,m]=(0,X.useState)(()=>{let e=t&&n,r=t&&!n,i=!t&&n,a=`idle`;return e?a=`dual`:r?a=`userOnly`:i&&(a=`domainOnly`),{mode:a,userUnblocked:!1,domainUnblocked:!1}}),h=c!==void 0,_=h?c:d,[v,b]=(0,X.useState)(!1),x=(0,X.useCallback)(()=>{let e=t&&n,r=t&&!n,i=!t&&n,a=`idle`;e?a=`dual`:r?a=`userOnly`:i&&(a=`domainOnly`),m(e=>({...e,mode:a,userUnblocked:!1,domainUnblocked:!1}))},[t,n]);(0,X.useEffect)(()=>{_&&!v?(x(),b(!0)):_||b(!1)},[_,v,x]);let S=()=>{h?l?.(!0):f(!0)},C=e=>{e||(h?l?.(!1):f(!1))},w=async()=>{await r(),m(e=>({...e,userUnblocked:!0})),(p.mode!==`dual`||p.domainUnblocked)&&(C(!1),s?.()),y.success(`User unblocked`)},ee=async()=>{await i(),m(e=>({...e,domainUnblocked:!0})),(p.mode!==`dual`||p.userUnblocked)&&(C(!1),s?.()),y.success(`Domain unblocked`)},T=e.split(`@`).filter(Boolean)[1];return(0,Z.jsxs)(L,{open:_,onOpenChange:C,children:[a&&(0,Z.jsx)(ge,{asChild:!0,onClick:S,children:a}),(0,Z.jsx)(K,{className:`${p.mode===`dual`&&`max-w-[600px]`}`,children:p.mode===`dual`?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(U,{children:[(0,Z.jsx)(q,{className:`mb-1 flex flex-col gap-1`,children:`Unblock`}),(0,Z.jsx)(z,{className:`mt-4!`,asChild:!0,children:(0,Z.jsxs)(`div`,{className:`flex flex-col rounded-md border`,children:[(0,Z.jsxs)(`div`,{className:`flex justify-between gap-6 p-5`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(B,{children:`Unblock user`}),(0,Z.jsxs)(`p`,{children:[(0,Z.jsx)(`span`,{className:`font-semibold text-black`,children:e}),` will be able to follow you and engage with your public posts.`]})]}),(0,Z.jsxs)(g,{className:`gap-1 ${p.userUnblocked?`pointer-events-none border-green bg-green text-white hover:bg-green hover:text-white`:`text-red hover:text-red-400`}`,variant:`outline`,onClick:w,children:[(0,Z.jsx)(u,{}),p.userUnblocked?`User unblocked`:`Unblock user`]})]}),(0,Z.jsx)(`div`,{className:`border-t`}),(0,Z.jsxs)(`div`,{className:`flex justify-between gap-6 p-5`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(B,{children:`Unblock domain`}),(0,Z.jsxs)(`p`,{children:[`Users from `,(0,Z.jsx)(`span`,{className:`font-semibold text-black`,children:T}),` will be able to follow you and engage with your public posts.`]})]}),(0,Z.jsxs)(g,{className:`gap-1 ${p.domainUnblocked?`pointer-events-none border-green bg-green text-white hover:bg-green hover:text-white`:`text-red hover:text-red-400`}`,variant:`outline`,onClick:ee,children:[(0,Z.jsx)(o,{}),p.domainUnblocked?`Domain unblocked`:`Unblock domain`]})]})]})})]}),(0,Z.jsx)(I,{children:(0,Z.jsx)(g,{onClick:()=>C(!1),children:`OK`})})]}):(()=>{let t=p.mode===`userOnly`;return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(U,{children:[(0,Z.jsx)(q,{className:`mb-1 flex flex-col gap-1`,children:t?`Unblock this user?`:`Unblock this domain?`}),(0,Z.jsx)(z,{children:t?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`span`,{className:`font-semibold text-black`,children:e}),` will be able to follow you and engage with your public posts.`]}):(0,Z.jsxs)(Z.Fragment,{children:[`Users from `,(0,Z.jsx)(`span`,{className:`font-semibold text-black`,children:T}),` will be able to follow you and engage with your public posts.`]})})]}),(0,Z.jsxs)(I,{children:[(0,Z.jsx)(H,{children:`Cancel`}),(0,Z.jsx)(g,{onClick:t?w:ee,children:`Unblock`})]})]})})()})]})},Ae=({account:e,children:t,onCopyHandle:n,onBlockAccount:r,onBlockDomain:i,disabled:a=!1,isBlocked:o=!1,isDomainBlocked:s=!1})=>{let[c,l]=(0,X.useState)(null),[u,d]=(0,X.useState)(!1),f=e=>{e.stopPropagation(),n()},p=e=>{e.stopPropagation(),r()},h=e=>{e.stopPropagation(),i()},_=e?.handle,v=_?.split(`@`).filter(Boolean)[1];return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(ve,{children:[(0,Z.jsx)(R,{disabled:a,asChild:!0,onClick:e=>e.stopPropagation(),children:t}),(0,Z.jsx)(xe,{align:`end`,className:`p-2`,children:(0,Z.jsxs)(`div`,{className:`flex w-48 flex-col`,children:[(0,Z.jsx)(W,{asChild:!0,children:(0,Z.jsx)(g,{className:`justify-start`,variant:`ghost`,onClick:f,children:`Copy handle`})}),(0,Z.jsx)(W,{asChild:!0,children:(0,Z.jsx)(g,{className:`justify-start text-red hover:bg-red/5 hover:text-red`,variant:`ghost`,onClick:e=>{e.stopPropagation(),!o&&!s&&l(`user`),d(!0)},children:o?`Unblock user`:s?`Unblock domain`:`Block user`})})]})})]}),o||s?e&&(0,Z.jsx)($,{handle:e.handle,isDomainBlocked:e.domainBlockedByMe,isOpen:u,isUserBlocked:e.blockedByMe,onOpenChange:d,onUnblockDomain:i,onUnblockUser:r}):(0,Z.jsx)(L,{open:u,onOpenChange:d,children:(0,Z.jsxs)(K,{onClick:e=>e.stopPropagation(),children:[(0,Z.jsxs)(U,{children:[(0,Z.jsx)(q,{className:`mb-1 flex flex-col gap-1`,children:c===`user`?`Block this user?`:`Block this domain?`}),(0,Z.jsx)(z,{children:c===`user`?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`span`,{className:`font-semibold text-black`,children:_}),` will be able to see your public posts, but will no longer be able follow you or interact with your content on the social web.`]}):(0,Z.jsxs)(Z.Fragment,{children:[`All users from `,(0,Z.jsx)(`span`,{className:`font-semibold text-black`,children:v}),` will be able to see your public posts, but won't be able to follow you or interact with your content.`]})})]}),(0,Z.jsxs)(I,{children:[c!==`domain`&&(0,Z.jsx)(g,{className:`mr-auto -ml-3 hover:bg-transparent hover:opacity-80`,variant:`ghost`,onClick:e=>{e.stopPropagation(),l(`domain`)},children:`Block domain instead`}),(0,Z.jsx)(H,{onClick:e=>e.stopPropagation(),children:`Cancel`}),(0,Z.jsx)(Te,{className:m({variant:`destructive`}),onClick:c===`user`?p:h,children:`Block`})]})]})})]})},je=({account:e,onUnblock:t,onDomainUnblock:n,className:r=``})=>{let[i,a]=(0,X.useState)(!1),o=(0,Z.jsx)(g,{className:`min-w-[90px] ${r}`,variant:`destructive`,onMouseEnter:()=>a(!0),onMouseLeave:()=>a(!1),children:i?`Unblock`:`Blocked`});return(0,Z.jsx)($,{handle:e.handle,isDomainBlocked:e.domainBlockedByMe,isUserBlocked:e.blockedByMe,trigger:o,onUnblockDomain:n,onUnblockUser:t})},Me=()=>{},Ne=({account:e,customFields:t,isLoadingAccount:n,postsTab:o,likesTab:c,followingTab:u,followersTab:d})=>{let p=i(),m=r(),D=j(),{canGoBack:O}=a(),k=p.handle?`/profile/${p.handle}`:`/profile`,A=!p.handle,M=p.handle?p.tab||``:m.pathname.split(`/`).pop()||``,N=(0,X.useMemo)(()=>A?[`likes`,`following`,`followers`]:[`following`,`followers`],[A]),de=N.includes(M)?M:`posts`,fe=me(`index`),F=re(`index`),I=ye(`index`),ge=le(`index`),L=Se(`index`,`me`),{data:ve}=p.handle?L:{data:void 0},R=p.handle===ve?.handle||!p.handle,z=e?.blockedByMe,V=e?.domainBlockedByMe,[xe,H]=(0,X.useState)(!1),[U,W]=(0,X.useState)(!1),G=(0,X.useRef)(null);(0,X.useEffect)(()=>()=>{G.current&&window.clearTimeout(G.current)},[]);let K=()=>{z?F.mutate(e):(fe.mutate(e),y.success(`User blocked`)),H(!1)},q=()=>{V?ge.mutate({url:e.apId,handle:e.handle}):(I.mutate({url:e.apId,handle:e.handle}),y.success(`Domain blocked`)),H(!1)},Te=async()=>{if(!e?.handle||!navigator?.clipboard?.writeText){y.error(`Unable to copy handle`);return}try{await navigator.clipboard.writeText(e.handle),W(!0),y.success(`Handle copied`),G.current&&window.clearTimeout(G.current),G.current=window.setTimeout(()=>W(!1),2e3)}catch{y.error(`Failed to copy handle`),W(!1)}},[J,De]=(0,X.useState)(!1),[Oe,Q]=(0,X.useState)(!1),ke=()=>{De(!J)},$=(0,X.useRef)(null),[Ne,Pe]=(0,X.useState)(!1);(0,X.useEffect)(()=>{$.current&&Pe($.current.scrollHeight>160)},[J,e?.bio,t,n]),(0,X.useEffect)(()=>{M&&(N.includes(M)||D(k,{replace:!0}))},[N,k,D,M]);let Fe=e=>e===`posts`?k:`${k}/${e}`,Ie=e=>{e!==de&&D(Fe(e),{replace:!0})};return!n&&!e?(0,Z.jsx)(ue,{children:(0,Z.jsx)(`div`,{className:`mx-auto mt-4 flex w-full max-w-[620px] flex-col items-center [&_svg]:translate-x-px`,children:(0,Z.jsxs)(ae,{children:[(0,Z.jsx)(ie,{children:(0,Z.jsx)(_,{})}),(0,Z.jsx)(`div`,{children:`Profile not found`})]})})}):(0,Z.jsx)(ue,{children:(0,Z.jsx)(`div`,{className:`z-0 mx-[max(-4vw,-24px)] -mt-9 flex flex-col items-center pb-16`,children:(0,Z.jsx)(`div`,{className:`mx-auto w-full`,children:(0,Z.jsxs)(Z.Fragment,{children:[e?.bannerImageUrl?(0,Z.jsx)(`div`,{className:`h-[15vw] min-h-[200px] w-full overflow-hidden bg-gradient-to-tr from-gray-200 to-gray-100`,children:(0,Z.jsx)(`img`,{alt:e?.name,className:`size-full object-cover`,referrerPolicy:`no-referrer`,src:e?.bannerImageUrl})}):(0,Z.jsx)(`div`,{className:`h-[max(8vw,132px)] w-full overflow-hidden bg-gradient-to-tr from-white to-white dark:from-black dark:to-black`}),(0,Z.jsxs)(`div`,{className:`mx-auto max-w-[620px] px-6 ${!e?.bannerImageUrl&&!O?`-mt-8`:`-mt-12`}`,children:[(0,Z.jsxs)(`div`,{className:`flex items-end justify-between`,children:[(0,Z.jsx)(`div`,{className:`-ml-2 rounded-full bg-white p-1 dark:bg-background`,children:n?(0,Z.jsx)(P,{className:`size-[92px] rounded-full`}):(0,Z.jsx)(be,{author:{icon:{url:e?.avatarUrl},name:e?.name,handle:e?.handle},size:`lg`})}),!R&&!n&&(0,Z.jsxs)(`div`,{className:`flex gap-2`,children:[z||V?(0,Z.jsx)(je,{account:e,onDomainUnblock:q,onUnblock:K}):(0,Z.jsx)(_e,{following:e?.followedByMe,handle:e?.handle,type:`primary`,onFollow:Me,onUnfollow:Me}),(0,Z.jsx)(Ae,{account:e,isBlocked:z,isDomainBlocked:V,onBlockAccount:K,onBlockDomain:q,onCopyHandle:Te,children:(0,Z.jsx)(g,{"aria-label":`Open profile menu`,variant:`outline`,children:(0,Z.jsx)(h,{})})})]}),R&&!n&&(0,Z.jsxs)(se,{open:Oe,onOpenChange:Q,children:[(0,Z.jsx)(ne,{children:(0,Z.jsx)(Ee,{children:(0,Z.jsx)(g,{variant:`secondary`,children:`Edit profile`})})}),(0,Z.jsxs)(T,{className:`w-full max-w-[520px]`,onOpenAutoFocus:e=>e.preventDefault(),children:[(0,Z.jsx)(oe,{children:(0,Z.jsx)(ce,{children:`Profile settings`})}),e&&(0,Z.jsx)(ee,{account:e,setIsEditingProfile:Q})]})]})]}),(0,Z.jsx)(te,{className:`break-anywhere mt-4 truncate`,children:n?(0,Z.jsx)(P,{className:`w-32`}):e?.name}),(0,Z.jsxs)(`div`,{className:`mb-4 flex items-center gap-2`,children:[(0,Z.jsx)(`a`,{className:`inline-flex max-w-full truncate text-[1.5rem] text-gray-800 hover:text-gray-900 dark:text-gray-600 dark:hover:text-gray-500`,href:e?.url,rel:`noopener noreferrer`,target:`_blank`,children:(0,Z.jsx)(`span`,{className:`truncate`,children:n?(0,Z.jsx)(P,{className:`w-full max-w-56`}):e?.handle})}),!n&&(0,Z.jsx)(g,{className:`-ml-1.5 size-6 p-0 text-gray-800 hover:text-gray-900 dark:text-gray-700 dark:hover:text-gray-600`,title:`Copy handle`,variant:`link`,onClick:Te,children:U?(0,Z.jsx)(s,{size:16}):(0,Z.jsx)(v,{size:16})}),e?.followsMe&&!n&&(0,Z.jsx)(pe,{className:`mt-px whitespace-nowrap`,variant:`secondary`,children:`Follows you`})]}),(e?.bio||t?.length>0)&&(0,Z.jsxs)(`div`,{ref:$,className:`ap-profile-content break-anywhere relative text-[1.5rem] [&>p]:mb-3 ${J?`max-h-none pb-7`:`max-h-[160px] overflow-hidden`} relative`,children:[n?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(P,{}),(0,Z.jsx)(P,{className:`w-full max-w-48`})]}):(0,Z.jsx)(`div`,{dangerouslySetInnerHTML:{__html:Ce(he(we(e?.bio??``,[`a`,`br`])))}}),t?.map(e=>(0,Z.jsxs)(`span`,{className:`mt-3 line-clamp-1 flex flex-col text-[1.5rem]`,children:[(0,Z.jsx)(`span`,{className:`text-xs font-semibold`,children:e.name}),(0,Z.jsx)(`span`,{dangerouslySetInnerHTML:{__html:Ce(e.value)},className:`ap-profile-content truncate`})]},e.name)),!J&&Ne&&(0,Z.jsx)(`div`,{className:`absolute inset-x-0 bottom-0 h-16 bg-gradient-to-t from-white via-white/100 via-60% to-transparent dark:from-black dark:via-black/100`}),Ne&&(0,Z.jsx)(g,{className:`absolute bottom-0 h-auto p-0 text-md`,variant:`link`,onClick:ke,children:J?`Show less`:`Show all`})]}),(0,Z.jsxs)(w,{className:`mt-5`,value:de,variant:`underline`,onValueChange:e=>Ie(e),children:[(0,Z.jsxs)(C,{children:[(0,Z.jsx)(x,{value:`posts`,children:`Posts`}),A&&(0,Z.jsxs)(x,{value:`likes`,children:[`Likes`,(0,Z.jsx)(b,{children:f(e?.likedCount||0)})]}),(0,Z.jsxs)(x,{value:`following`,children:[`Following`,(0,Z.jsx)(b,{children:f(e?.followingCount||0)})]}),(0,Z.jsxs)(x,{value:`followers`,children:[`Followers`,(0,Z.jsx)(b,{children:f(e?.followerCount||0)})]})]}),(0,Z.jsx)(S,{value:`posts`,children:(z||V)&&!xe?(0,Z.jsxs)(Y,{children:[(0,Z.jsx)(E,{children:(0,Z.jsx)(l,{})}),(0,Z.jsxs)(`div`,{className:`mt-2 flex flex-col items-center gap-0.5`,children:[(0,Z.jsxs)(B,{children:[e.name,` is blocked`]}),(0,Z.jsx)(`p`,{children:`You can view the posts, but it won't unblock the user.`}),(0,Z.jsx)(g,{className:`mt-4`,variant:`secondary`,onClick:()=>H(!0),children:`View posts`})]})]}):o}),A&&(0,Z.jsx)(S,{value:`likes`,children:c}),(0,Z.jsx)(S,{value:`following`,children:u}),(0,Z.jsx)(S,{value:`followers`,children:d})]},p.handle||e?.handle||`current-user`)]})]})})})})},Pe=({handle:e})=>{let{postsByAccountQuery:t}=M(e||`me`,{enabled:!0}),{data:n,fetchNextPage:r,hasNextPage:i,isFetchingNextPage:a,isLoading:o}=t,s=n?.pages.flatMap(e=>e.posts)??Array.from({length:5},(e,t)=>({id:`placeholder-${t}`,object:{}}));return(0,Z.jsx)(ke,{fetchNextPage:r,hasNextPage:i,isFetchingNextPage:a,isLoading:o,noResultsMessage:e?`${e} hasn't posted anything yet`:`You haven't posted anything yet.`,posts:s})},Fe=()=>{let{postsLikedByAccountQuery:e}=V({enabled:!0}),{data:t,fetchNextPage:n,hasNextPage:r,isFetchingNextPage:i,isLoading:a}=e;return(0,Z.jsx)(Q,{fetchNextPage:n,hasNextPage:r,isFetchingNextPage:i,isLoading:a,posts:t?.pages.flatMap(e=>e.posts)??Array.from({length:5},(e,t)=>({id:`placeholder-${t}`,object:{}}))})},Ie=({handle:e})=>{let{data:t,fetchNextPage:n,hasNextPage:r,isFetchingNextPage:i,isLoading:a}=G(e===``?`me`:e,`following`);return(0,Z.jsx)(Oe,{actors:t?.pages.flatMap(e=>`following`in e?e.following:`accounts`in e?e.accounts.map(e=>({actor:{id:e.id,name:e.name,handle:e.handle,icon:{url:e.avatarUrl}},isFollowing:e.isFollowing,blockedByMe:e.blockedByMe,domainBlockedByMe:e.domainBlockedByMe})):[])??[],fetchNextPage:n,hasNextPage:r,isFetchingNextPage:i,isLoading:a,noResultsMessage:`${e||`You`} have no following`})},Le=({handle:e})=>{let{data:t,fetchNextPage:n,hasNextPage:r,isFetchingNextPage:i,isLoading:a}=G(e===``?`me`:e,`followers`);return(0,Z.jsx)(Oe,{actors:t?.pages.flatMap(e=>`followers`in e?e.followers:`accounts`in e?e.accounts.map(e=>({actor:{id:e.id,name:e.name,handle:e.handle,icon:{url:e.avatarUrl}},isFollowing:e.isFollowing})):[])??[],fetchNextPage:n,hasNextPage:r,isFetchingNextPage:i,isLoading:a,noResultsMessage:`${e||`You`} have no followers yet`})},Re=()=>{let e=i(),{data:t,isLoading:n,error:r,refetch:a}=Se(`index`,e.handle||`me`);if((0,X.useEffect)(()=>{a()},[e.handle,a]),r&&A(r)&&r.statusCode!==404)return(0,Z.jsx)(D,{errorCode:r.code,statusCode:r.statusCode});let o=Object.keys(t?.customFields||{}).map(e=>({name:e,value:t.customFields[e]}))||[],s=(0,Z.jsx)(Pe,{handle:e.handle||``}),c=(0,Z.jsx)(Fe,{}),l=(0,Z.jsx)(Ie,{handle:e.handle||``});return(0,Z.jsx)(Ne,{account:t,customFields:o,followersTab:(0,Z.jsx)(Le,{handle:e.handle||``}),followingTab:l,isLoadingAccount:n,likesTab:c,postsTab:s})};export{Re as default};
@@ -1 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{n}from"./framework-provider-jQktxm9P.js";import{t as r}from"./jsx-runtime-CtMZ-PAS.js";import{a as i,f as a,i as o,l as s,m as c,n as l,p as u}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{tr as d}from"./button--i2uMDDn.js";var f=e(t(),1),p=r(),m=f.createContext({stack:[],previousPath:null,canGoBack:!1,resetStack:()=>{}});function h({children:e,maxStackSize:t=100}){let n=s(),r=u(),[i,a]=(0,f.useState)([]),o=(0,f.useRef)(!1),c=(0,f.useRef)(n.pathname),l=(0,f.useCallback)(()=>{a([n.pathname]),c.current=n.pathname,o.current=!1},[n.pathname]);(0,f.useEffect)(()=>{if(!o.current){a([n.pathname]),c.current=n.pathname,o.current=!0;return}c.current!==n.pathname&&(c.current=n.pathname,r===`PUSH`?a(e=>[...e,n.pathname].slice(-t)):r===`POP`?a(e=>{let t=[...e];return t.pop(),t}):r===`REPLACE`&&a(e=>[...e.slice(0,-1),n.pathname].slice(-t)))},[n,r,t]);let d=i.length>1?i[i.length-2]:null,h=i.length>1;return(0,p.jsx)(m.Provider,{value:{stack:i,previousPath:d,canGoBack:h,resetStack:l},children:e})}function g(){let e=f.useContext(m),t=a();if(!e)throw Error(`useNavigationStack must be within a NavigationStackProvider`);let n=(0,f.useCallback)(()=>{e.canGoBack&&t(-1)},[e.canGoBack,t]);return{...e,goBack:n}}var _=f.forwardRef(({className:e,onBackToDashboard:t,...n},r)=>(0,p.jsx)(`div`,{ref:r,className:d(`admin-x-container-error`,e),...n,children:(0,p.jsxs)(`div`,{className:`admin-x-error max-w-xl`,children:[(0,p.jsx)(`h1`,{children:`Loading interrupted`}),(0,p.jsx)(`p`,{children:`They say life is a series of trials and tribulations. This moment right here? It's a tribulation. Our app was supposed to load, and yet here we are. Loadless. Click back to the dashboard to try again.`}),(0,p.jsx)(`a`,{className:`cursor-pointer text-green`,onClick:t,children:`← Back to the dashboard`})]})}));_.displayName=`ErrorPage`;var v=new Map;(0,f.createContext)({saveScrollPosition:()=>{},getScrollPosition:()=>void 0,resetScrollPosition:()=>{}});function y(e){v.delete(e)}function b({containerRef:e}){let t=s(),n=(0,f.useRef)(null),r=(0,f.useRef)(null);return(0,f.useEffect)(()=>{let n=e.current;if(!n)return;let i=()=>{let e=n.scrollTop;v.set(t.pathname,e),r.current=e};return n.addEventListener(`scroll`,i),()=>n.removeEventListener(`scroll`,i)},[t.pathname,e]),(0,f.useEffect)(()=>{let r=e.current;if(!r)return;let i=v.get(t.pathname);i!==void 0&&n.current!==t.pathname&&Math.abs(i-r.scrollTop)>5&&(r.scrollTop=i)},[t.pathname,e]),(0,f.useEffect)(()=>{n.current=t.pathname},[t.pathname]),null}function x({routes:e,prefix:t,errorElement:n,children:r}){return(0,p.jsx)(o,{router:(0,f.useMemo)(()=>{let a=`/${t?.replace(/\/+/g,`/`).replace(/^\/|\/$/g,``)}`;return i([{element:(0,p.jsx)(h,{children:r}),hydrateFallbackElement:(0,p.jsx)(p.Fragment,{}),children:e.map(e=>({...e,errorElement:e.errorElement||n||(0,p.jsx)(_,{})}))}],{basename:a})},[e,t,n,r])})}function S(){let e=a(),{externalNavigate:t}=n();return(0,f.useCallback)((n,r)=>{if(typeof n==`number`){e(n);return}if(r?.crossApp){t({route:n,isExternal:!0});return}e(n,r)},[e,t])}function C(){let e=c();return e&&Object.keys(e).length>0}function w({to:e,replace:t,state:r,crossApp:i}){let{externalNavigate:a}=n();return i?(a({route:e,isExternal:!0}),null):(0,p.jsx)(l,{replace:t,state:r,to:e})}export{S as a,y as i,x as n,C as o,b as r,g as s,w as t};
@@ -1 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./react-dom-C6aoWSfl.js";import{t as r}from"./jsx-runtime-CtMZ-PAS.js";import{a as i,c as a,d as o,f as s,i as c,n as l,o as u,r as d,s as f,t as p,u as m}from"./Combination--5EZGaDs.js";import{a as h,n as g}from"./dist-BBIJuyPg.js";import{Tn as _,tr as v,wn as y,xn as b}from"./button--i2uMDDn.js";import{n as x,r as S,t as C}from"./dist-CsekE4FL.js";import{t as w}from"./dist-DxFLceO5.js";import{a as T,i as E,n as D,r as O,t as k}from"./dist-BHE0dp6o.js";import{n as A}from"./dist-DJ6c4_De.js";import{t as j}from"./dist-JLOy8o0Q.js";import{Ti as M,ur as N,wi as ee}from"./index-BacwlcOy.js";var P=e(t(),1),F=e(n(),1),I=r();function L(e,[t,n]){return Math.min(n,Math.max(t,e))}var R=[` `,`Enter`,`ArrowUp`,`ArrowDown`],z=[` `,`Enter`],B=`Select`,[V,H,U]=M(B),[W,te]=S(B,[U,T]),G=T(),[ne,K]=W(B),[re,ie]=W(B),q=`SelectProvider`;function ae(e){let{__scopeSelect:t,children:n,open:r,defaultOpen:a,onOpenChange:o,value:s,defaultValue:c,onValueChange:l,dir:u,name:d,autoComplete:f,disabled:p,required:h,form:g,internal_do_not_use_render:_}=e,v=G(t),[y,b]=P.useState(null),[x,S]=P.useState(null),[C,w]=P.useState(!1),T=ee(u),[D,O]=m({prop:r,defaultProp:a??!1,onChange:o,caller:B}),[k,A]=m({prop:s,defaultProp:c,onChange:l,caller:B}),j=P.useRef(null),M=y?!!g||!!y.closest(`form`):!0,[N,F]=P.useState(new Set),L=i(),R=Array.from(N).map(e=>e.props.value).join(`;`),z=P.useCallback(e=>{F(t=>new Set(t).add(e))},[]),H=P.useCallback(e=>{F(t=>{let n=new Set(t);return n.delete(e),n})},[]),U={required:h,trigger:y,onTriggerChange:b,valueNode:x,onValueNodeChange:S,valueNodeHasChildren:C,onValueNodeHasChildrenChange:w,contentId:L,value:k,onValueChange:A,open:D,onOpenChange:O,dir:T,triggerPointerDownPosRef:j,disabled:p,name:d,autoComplete:f,form:g,nativeOptions:N,nativeSelectKey:R,isFormControl:M};return(0,I.jsx)(E,{...v,children:(0,I.jsx)(ne,{scope:t,...U,children:(0,I.jsx)(V.Provider,{scope:t,children:(0,I.jsx)(re,{scope:t,onNativeOptionAdd:z,onNativeOptionRemove:H,children:et(_)?_(U):n})})})})}ae.displayName=q;var oe=e=>{let{__scopeSelect:t,children:n,...r}=e;return(0,I.jsx)(ae,{__scopeSelect:t,...r,internal_do_not_use_render:({isFormControl:e})=>(0,I.jsxs)(I.Fragment,{children:[n,e?(0,I.jsx)($e,{__scopeSelect:t}):null]})})};oe.displayName=B;var se=`SelectTrigger`,ce=P.forwardRef((e,t)=>{let{__scopeSelect:n,disabled:r=!1,...i}=e,a=G(n),s=K(se,n),c=s.disabled||r,l=h(t,s.onTriggerChange),u=H(n),d=P.useRef(`touch`),[f,p,m]=tt(e=>{let t=u().filter(e=>!e.disabled),n=nt(t,e,t.find(e=>e.value===s.value));n!==void 0&&s.onValueChange(n.value)}),g=e=>{c||(s.onOpenChange(!0),m()),e&&(s.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,I.jsx)(k,{asChild:!0,...a,children:(0,I.jsx)(w.button,{type:`button`,role:`combobox`,"aria-controls":s.open?s.contentId:void 0,"aria-expanded":s.open,"aria-required":s.required,"aria-autocomplete":`none`,dir:s.dir,"data-state":s.open?`open`:`closed`,disabled:c,"data-disabled":c?``:void 0,"data-placeholder":$(s.value)?``:void 0,...i,ref:l,onClick:o(i.onClick,e=>{e.currentTarget.focus(),d.current!==`mouse`&&g(e)}),onPointerDown:o(i.onPointerDown,e=>{d.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(g(e),e.preventDefault())}),onKeyDown:o(i.onKeyDown,e=>{let t=f.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&p(e.key),!(t&&e.key===` `)&&R.includes(e.key)&&(g(),e.preventDefault())})})})});ce.displayName=se;var le=`SelectValue`,ue=P.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:i,children:a,placeholder:o=``,...s}=e,c=K(le,n),{onValueNodeHasChildrenChange:l}=c,u=a!==void 0,d=h(t,c.onValueNodeChange);x(()=>{l(u)},[l,u]);let f=$(c.value);return(0,I.jsx)(w.span,{...s,asChild:f?!1:s.asChild,ref:d,style:{pointerEvents:`none`},children:(0,I.jsx)(P.Fragment,{children:f?o:a},f?`placeholder`:`value`)})});ue.displayName=le;var de=`SelectIcon`,fe=P.forwardRef((e,t)=>{let{__scopeSelect:n,children:r,...i}=e;return(0,I.jsx)(w.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})});fe.displayName=de;var pe=`SelectPortal`,[me,he]=W(pe,{forceMount:void 0}),ge=e=>{let{__scopeSelect:t,forceMount:n,...r}=e;return(0,I.jsx)(me,{scope:e.__scopeSelect,forceMount:n,children:(0,I.jsx)(c,{asChild:!0,...r})})};ge.displayName=pe;var J=`SelectContent`,_e=P.forwardRef((e,t)=>{let n=he(J,e.__scopeSelect),{forceMount:r=n.forceMount,...i}=e,a=K(J,e.__scopeSelect),[o,s]=P.useState();return x(()=>{s(new DocumentFragment)},[]),(0,I.jsx)(d,{present:r||a.open,children:({present:e})=>e?(0,I.jsx)(Se,{...i,ref:t}):(0,I.jsx)(ve,{...i,fragment:o})})});_e.displayName=J;var ve=P.forwardRef((e,t)=>{let{__scopeSelect:n,children:r,fragment:i}=e;return i?F.createPortal((0,I.jsx)(ye,{scope:n,children:(0,I.jsx)(V.Slot,{scope:n,children:(0,I.jsx)(`div`,{ref:t,children:r})})}),i):null});ve.displayName=`SelectContentFragment`;var Y=10,[ye,X]=W(J),be=`SelectContentImpl`,xe=g(`SelectContent.RemoveScroll`),Se=P.forwardRef((e,t)=>{let{__scopeSelect:n}=e,{position:r=`item-aligned`,onCloseAutoFocus:i,onEscapeKeyDown:s,onPointerDownOutside:c,side:d,sideOffset:m,align:g,alignOffset:_,arrowPadding:v,collisionBoundary:y,collisionPadding:b,sticky:x,hideWhenDetached:S,avoidCollisions:C,...w}=e,T=K(J,n),[E,D]=P.useState(null),[O,k]=P.useState(null),A=h(t,D),[j,M]=P.useState(null),[N,ee]=P.useState(null),F=H(n),[L,R]=P.useState(!1),z=P.useRef(!1);P.useEffect(()=>{if(E)return l(E)},[E]),f();let B=P.useCallback(e=>{let[t,...n]=F().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&O&&(O.scrollTop=0),n===r&&O&&(O.scrollTop=O.scrollHeight),n?.focus(),document.activeElement!==i))return},[F,O]),V=P.useCallback(()=>B([j,E]),[B,j,E]);P.useEffect(()=>{L&&V()},[L,V]);let{onOpenChange:U,triggerPointerDownPosRef:W}=T;P.useEffect(()=>{if(E){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(W.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(W.current?.y??0))}},n=n=>{e.x<=10&&e.y<=10?n.preventDefault():n.composedPath().includes(E)||U(!1),document.removeEventListener(`pointermove`,t),W.current=null};return W.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[E,U,W]),P.useEffect(()=>{let e=()=>U(!1);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[U]);let[te,G]=tt(e=>{let t=F().filter(e=>!e.disabled),n=nt(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current?.focus())}),ne=P.useCallback((e,t,n)=>{let r=!z.current&&!n;(T.value!==void 0&&T.value===t||r)&&(M(e),r&&(z.current=!0))},[T.value]),re=P.useCallback(()=>E?.focus(),[E]),ie=P.useCallback((e,t,n)=>{let r=!z.current&&!n;(T.value!==void 0&&T.value===t||r)&&ee(e)},[T.value]),q=r===`popper`?Ee:we,ae=q===Ee?{side:d,sideOffset:m,align:g,alignOffset:_,arrowPadding:v,collisionBoundary:y,collisionPadding:b,sticky:x,hideWhenDetached:S,avoidCollisions:C}:{};return(0,I.jsx)(ye,{scope:n,content:E,viewport:O,onViewportChange:k,itemRefCallback:ne,selectedItem:j,onItemLeave:re,itemTextRefCallback:ie,focusSelectedItem:V,selectedItemText:N,position:r,isPositioned:L,searchRef:te,children:(0,I.jsx)(p,{as:xe,allowPinchZoom:!0,children:(0,I.jsx)(u,{asChild:!0,trapped:T.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:o(i,e=>{T.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,I.jsx)(a,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>T.onOpenChange(!1),children:(0,I.jsx)(q,{role:`listbox`,id:T.contentId,"data-state":T.open?`open`:`closed`,dir:T.dir,onContextMenu:e=>e.preventDefault(),...w,...ae,onPlaced:()=>R(!0),ref:A,style:{display:`flex`,flexDirection:`column`,outline:`none`,...w.style},onKeyDown:o(w.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&G(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=F().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>B(t)),e.preventDefault()}})})})})})})});Se.displayName=be;var Ce=`SelectItemAlignedPosition`,we=P.forwardRef((e,t)=>{let{__scopeSelect:n,onPlaced:r,...i}=e,a=K(J,n),o=X(J,n),[s,c]=P.useState(null),[l,u]=P.useState(null),d=h(t,u),f=H(n),p=P.useRef(!1),m=P.useRef(!0),{viewport:g,selectedItem:_,selectedItemText:v,focusSelectedItem:y}=o,b=P.useCallback(()=>{if(a.trigger&&a.valueNode&&s&&l&&g&&_&&v){let e=a.trigger.getBoundingClientRect(),t=l.getBoundingClientRect(),n=a.valueNode.getBoundingClientRect(),i=v.getBoundingClientRect();if(a.dir!==`rtl`){let r=i.left-t.left,a=n.left-r,o=e.left-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-Y,d=L(a,[Y,Math.max(Y,u-l)]);s.style.minWidth=c+`px`,s.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-Y,d=L(a,[Y,Math.max(Y,u-l)]);s.style.minWidth=c+`px`,s.style.right=d+`px`}let o=f(),c=window.innerHeight-Y*2,u=g.scrollHeight,d=window.getComputedStyle(l),m=parseInt(d.borderTopWidth,10),h=parseInt(d.paddingTop,10),y=parseInt(d.borderBottomWidth,10),b=parseInt(d.paddingBottom,10),x=m+h+u+b+y,S=Math.min(_.offsetHeight*5,x),C=window.getComputedStyle(g),w=parseInt(C.paddingTop,10),T=parseInt(C.paddingBottom,10),E=e.top+e.height/2-Y,D=c-E,O=_.offsetHeight/2,k=_.offsetTop+O,A=m+h+k,j=x-A;if(A<=E){let e=o.length>0&&_===o[o.length-1].ref.current;s.style.bottom=`0px`;let t=l.clientHeight-g.offsetTop-g.offsetHeight,n=A+Math.max(D,O+(e?T:0)+t+y);s.style.height=n+`px`}else{let e=o.length>0&&_===o[0].ref.current;s.style.top=`0px`;let t=Math.max(E,m+g.offsetTop+(e?w:0)+O)+j;s.style.height=t+`px`,g.scrollTop=A-E+g.offsetTop}s.style.margin=`${Y}px 0`,s.style.minHeight=S+`px`,s.style.maxHeight=c+`px`,r?.(),requestAnimationFrame(()=>p.current=!0)}},[f,a.trigger,a.valueNode,s,l,g,_,v,a.dir,r]);x(()=>b(),[b]);let[S,C]=P.useState();return x(()=>{l&&C(window.getComputedStyle(l).zIndex)},[l]),(0,I.jsx)(De,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:p,onScrollButtonChange:P.useCallback(e=>{e&&m.current===!0&&(b(),y?.(),m.current=!1)},[b,y]),children:(0,I.jsx)(`div`,{ref:c,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:S},children:(0,I.jsx)(w.div,{...i,ref:d,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})});we.displayName=Ce;var Te=`SelectPopperPosition`,Ee=P.forwardRef((e,t)=>{let{__scopeSelect:n,align:r=`start`,collisionPadding:i=Y,...a}=e,o=G(n);return(0,I.jsx)(O,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})});Ee.displayName=Te;var[De,Oe]=W(J,{}),ke=`SelectViewport`,Ae=P.forwardRef((e,t)=>{let{__scopeSelect:n,nonce:r,...i}=e,a=X(ke,n),s=Oe(ke,n),c=h(t,a.onViewportChange),l=P.useRef(0);return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,I.jsx)(V.Slot,{scope:n,children:(0,I.jsx)(w.div,{"data-radix-select-viewport":``,role:`presentation`,...i,ref:c,style:{position:`relative`,flex:1,overflow:`hidden auto`,...i.style},onScroll:o(i.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=s;if(r?.current&&n){let e=Math.abs(l.current-t.scrollTop);if(e>0){let r=window.innerHeight-Y*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}l.current=t.scrollTop})})})]})});Ae.displayName=ke;var je=`SelectGroup`,[Me,Ne]=W(je),Pe=P.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,a=i();return(0,I.jsx)(Me,{scope:n,id:a,children:(0,I.jsx)(w.div,{role:`group`,"aria-labelledby":a,...r,ref:t})})});Pe.displayName=je;var Fe=`SelectLabel`,Ie=P.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=Ne(Fe,n);return(0,I.jsx)(w.div,{id:i.id,...r,ref:t})});Ie.displayName=Fe;var Z=`SelectItem`,[Le,Re]=W(Z),ze=P.forwardRef((e,t)=>{let{__scopeSelect:n,value:r,disabled:a=!1,textValue:s,...c}=e,l=K(Z,n),u=X(Z,n),d=l.value===r,[f,p]=P.useState(s??``),[m,g]=P.useState(!1),_=h(t,C(e=>u.itemRefCallback?.(e,r,a))),v=i(),y=P.useRef(`touch`),b=()=>{a||(l.onValueChange(r),l.onOpenChange(!1))};return(0,I.jsx)(Le,{scope:n,value:r,disabled:a,textId:v,isSelected:d,onItemTextChange:P.useCallback(e=>{p(t=>t||(e?.textContent??``).trim())},[]),children:(0,I.jsx)(V.ItemSlot,{scope:n,value:r,disabled:a,textValue:f,children:(0,I.jsx)(w.div,{role:`option`,"aria-labelledby":v,"data-highlighted":m?``:void 0,"aria-selected":d&&m,"data-state":d?`checked`:`unchecked`,"aria-disabled":a||void 0,"data-disabled":a?``:void 0,tabIndex:a?void 0:-1,...c,ref:_,onFocus:o(c.onFocus,()=>g(!0)),onBlur:o(c.onBlur,()=>g(!1)),onClick:o(c.onClick,()=>{y.current!==`mouse`&&b()}),onPointerUp:o(c.onPointerUp,()=>{y.current===`mouse`&&b()}),onPointerDown:o(c.onPointerDown,e=>{y.current=e.pointerType}),onPointerMove:o(c.onPointerMove,e=>{y.current=e.pointerType,a?u.onItemLeave?.():y.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:o(c.onPointerLeave,e=>{e.currentTarget===document.activeElement&&u.onItemLeave?.()}),onKeyDown:o(c.onKeyDown,e=>{u.searchRef?.current!==``&&e.key===` `||(z.includes(e.key)&&b(),e.key===` `&&e.preventDefault())})})})})});ze.displayName=Z;var Q=`SelectItemText`,Be=P.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:i,...a}=e,o=K(Q,n),s=X(Q,n),c=Re(Q,n),l=ie(Q,n),[u,d]=P.useState(null),f=C(e=>s.itemTextRefCallback?.(e,c.value,c.disabled)),p=h(t,d,c.onItemTextChange,f),m=u?.textContent,g=P.useMemo(()=>(0,I.jsx)(`option`,{value:c.value,disabled:c.disabled,children:m},c.value),[c.disabled,c.value,m]),{onNativeOptionAdd:_,onNativeOptionRemove:v}=l;return x(()=>(_(g),()=>v(g)),[_,v,g]),(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(w.span,{id:c.textId,...a,ref:p}),c.isSelected&&o.valueNode&&!o.valueNodeHasChildren&&!$(o.value)?F.createPortal(a.children,o.valueNode):null]})});Be.displayName=Q;var Ve=`SelectItemIndicator`,He=P.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return Re(Ve,n).isSelected?(0,I.jsx)(w.span,{"aria-hidden":!0,...r,ref:t}):null});He.displayName=Ve;var Ue=`SelectScrollUpButton`,We=P.forwardRef((e,t)=>{let n=X(Ue,e.__scopeSelect),r=Oe(Ue,e.__scopeSelect),[i,a]=P.useState(!1),o=h(t,r.onScrollButtonChange);return x(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollTop>0;a(e)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,I.jsx)(qe,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null});We.displayName=Ue;var Ge=`SelectScrollDownButton`,Ke=P.forwardRef((e,t)=>{let n=X(Ge,e.__scopeSelect),r=Oe(Ge,e.__scopeSelect),[i,a]=P.useState(!1),o=h(t,r.onScrollButtonChange);return x(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight,n=Math.ceil(t.scrollTop)<e;a(n)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,I.jsx)(qe,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null});Ke.displayName=Ge;var qe=P.forwardRef((e,t)=>{let{__scopeSelect:n,onAutoScroll:r,...i}=e,a=X(`SelectScrollButton`,n),s=P.useRef(null),c=H(n),l=P.useCallback(()=>{s.current!==null&&(window.clearInterval(s.current),s.current=null)},[]);return P.useEffect(()=>()=>l(),[l]),x(()=>{c().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[c]),(0,I.jsx)(w.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:o(i.onPointerDown,()=>{s.current===null&&(s.current=window.setInterval(r,50))}),onPointerMove:o(i.onPointerMove,()=>{a.onItemLeave?.(),s.current===null&&(s.current=window.setInterval(r,50))}),onPointerLeave:o(i.onPointerLeave,()=>{l()})})}),Je=`SelectSeparator`,Ye=P.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return(0,I.jsx)(w.div,{"aria-hidden":!0,...r,ref:t})});Ye.displayName=Je;var Xe=`SelectArrow`,Ze=P.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=G(n);return X(Xe,n).position===`popper`?(0,I.jsx)(D,{...i,...r,ref:t}):null});Ze.displayName=Xe;var Qe=`SelectBubbleInput`,$e=P.forwardRef(({__scopeSelect:e,...t},n)=>{let r=K(Qe,e),{value:i,onValueChange:a,required:o,disabled:s,name:c,autoComplete:l,form:u}=r,{nativeOptions:d,nativeSelectKey:f}=r,p=P.useRef(null),m=h(n,p),g=i??``,_=j(g),v=Array.from(d).some(e=>(e.props.value??``)===``);return P.useEffect(()=>{let e=p.current;if(!e)return;let t=window.HTMLSelectElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set;if(_!==g&&n){let t=new Event(`change`,{bubbles:!0});n.call(e,g),e.dispatchEvent(t)}},[_,g]),(0,I.jsxs)(w.select,{"aria-hidden":!0,required:o,tabIndex:-1,name:c,autoComplete:l,disabled:s,form:u,onChange:e=>a(e.target.value),...t,style:{...A,...t.style},ref:m,defaultValue:g,children:[$(i)&&!v?(0,I.jsx)(`option`,{value:``}):null,Array.from(d)]},f)});$e.displayName=Qe;function et(e){return typeof e==`function`}function $(e){return e===``||e===void 0}function tt(e){let t=C(e),n=P.useRef(``),r=P.useRef(0),i=P.useCallback(e=>{let i=n.current+e;t(i),(function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))})(i)},[t]),a=P.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return P.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}function nt(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=rt(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}function rt(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var it=oe,at=Pe,ot=ue,st=P.forwardRef(({className:e,children:t,...n},r)=>(0,I.jsxs)(ce,{ref:r,className:v(N(`self`),`flex h-(--control-height) w-full items-center justify-between px-3 py-2 text-control whitespace-nowrap hover:bg-button-hover data-[placeholder]:text-muted-foreground dark:hover:bg-button-hover [&>span]:line-clamp-1`,e),...n,children:[t,(0,I.jsx)(fe,{asChild:!0,children:(0,I.jsx)(y,{className:`-mr-0.5 ml-1 size-4 opacity-50`})})]}));st.displayName=ce.displayName;var ct=P.forwardRef(({className:e,...t},n)=>(0,I.jsx)(We,{ref:n,className:v(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,I.jsx)(b,{className:`size-4`})}));ct.displayName=We.displayName;var lt=P.forwardRef(({className:e,...t},n)=>(0,I.jsx)(Ke,{ref:n,className:v(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,I.jsx)(y,{className:`size-4`})}));lt.displayName=Ke.displayName;var ut=P.forwardRef(({className:e,children:t,position:n=`popper`,...r},i)=>(0,I.jsx)(ge,{children:(0,I.jsx)(`div`,{className:s,children:(0,I.jsxs)(_e,{ref:i,className:v(`relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-border/60 bg-surface-elevated-2 text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 dark:border-border/30`,n===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,e),position:n,...r,children:[(0,I.jsx)(ct,{}),(0,I.jsx)(Ae,{className:v(`p-1`,n===`popper`&&`h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]`),children:t}),(0,I.jsx)(lt,{})]})})}));ut.displayName=_e.displayName;var dt=P.forwardRef(({className:e,...t},n)=>(0,I.jsx)(Ie,{ref:n,className:v(`px-2 py-1.5 text-control font-semibold`,e),...t}));dt.displayName=Ie.displayName;var ft=P.forwardRef(({className:e,children:t,...n},r)=>(0,I.jsxs)(ze,{ref:r,className:v(`relative flex w-full cursor-default items-center rounded-xs py-1.5 pr-8 pl-2 text-control outline-hidden select-none focus:bg-interactive-hover focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,e),...n,children:[(0,I.jsx)(`span`,{className:`absolute right-2 flex size-3.5 items-center justify-center`,children:(0,I.jsx)(He,{children:(0,I.jsx)(_,{className:`size-4`})})}),(0,I.jsx)(Be,{children:t})]}));ft.displayName=ze.displayName;var pt=P.forwardRef(({className:e,...t},n)=>(0,I.jsx)(Ye,{ref:n,className:v(`-mx-1 my-1 h-px bg-muted`,e),...t}));pt.displayName=Ye.displayName;export{dt as a,L as c,ft as i,ut as n,st as o,at as r,ot as s,it as t};