ghost 6.63.0 → 6.65.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 (883) hide show
  1. package/bin/create-migration.js +15 -0
  2. package/bin/lib/duplicate-deps.js +204 -0
  3. package/bin/validate-adapters.js +50 -6
  4. package/components/tryghost-adapter-base-scheduling-0.2.4.tgz +0 -0
  5. package/components/tryghost-adapter-base-sso-0.1.3.tgz +0 -0
  6. package/components/tryghost-admin-api-schema-0.0.0.tgz +0 -0
  7. package/components/tryghost-api-framework-0.0.0.tgz +0 -0
  8. package/components/tryghost-i18n-0.0.0.tgz +0 -0
  9. package/components/{tryghost-kg-default-cards-10.3.5.tgz → tryghost-kg-default-cards-10.3.6.tgz} +0 -0
  10. package/components/tryghost-kg-default-nodes-2.2.1.tgz +0 -0
  11. package/components/tryghost-kg-html-to-lexical-1.4.0.tgz +0 -0
  12. package/components/{tryghost-kg-lexical-html-renderer-1.5.0.tgz → tryghost-kg-lexical-html-renderer-1.5.1.tgz} +0 -0
  13. package/components/tryghost-limit-service-0.0.0.tgz +0 -0
  14. package/components/tryghost-metafield-types-0.0.0.tgz +0 -0
  15. package/content/themes/casper/assets/built/casper.js +1 -1
  16. package/content/themes/casper/assets/built/screen.css +1 -1
  17. package/content/themes/casper/assets/css/screen.css +15 -2
  18. package/content/themes/casper/assets/js/init.js +37 -9
  19. package/content/themes/casper/package.json +8 -8
  20. package/content/themes/source/assets/built/screen.css +1 -1
  21. package/content/themes/source/assets/built/source.js +1 -1
  22. package/content/themes/source/assets/css/screen.css +15 -2
  23. package/content/themes/source/assets/js/main.js +24 -4
  24. package/content/themes/source/package.json +8 -8
  25. package/core/boot.js +27 -15
  26. package/core/bridge.js +1 -1
  27. package/core/built/admin/assets/Combination-DQ6f9A5P.js +41 -0
  28. package/core/built/admin/assets/{PolarAngleAxis-pkMyqz8g.js → PolarAngleAxis-BBaU7PRV.js} +2 -2
  29. package/core/built/admin/assets/RadialBarChart-Bp20JPnA.js +1 -0
  30. package/core/built/admin/assets/about-Dp43j18M.js +1 -0
  31. package/core/built/admin/assets/accordion-h62UzFhj.js +1 -0
  32. package/core/built/admin/assets/account-migration-CBTbtX6Q.js +1 -0
  33. package/core/built/admin/assets/action-list-DC9QpX-l.js +1 -0
  34. package/core/built/admin/assets/activitypub/{account-migration-KA6Jjf9L.js → account-migration-B1DUZS4Q.js} +8 -8
  35. package/core/built/admin/assets/activitypub/activitypub.js +24 -11
  36. package/core/built/admin/assets/activitypub/avatar-CRGud8yf.js +153 -0
  37. package/core/built/admin/assets/activitypub/{avatar-flipboard-csQaNeYK.js → avatar-flipboard-BZNFAXfm.js} +3 -3
  38. package/core/built/admin/assets/activitypub/{bluesky-sharing-C7nTDMvw.js → bluesky-sharing-Cg_v-LwS.js} +30 -31
  39. package/core/built/admin/assets/activitypub/{chunk-KS7C4IRE-Ck3O4oo2.js → chunk-KS7C4IRE-CTUL98Lc.js} +2498 -1885
  40. package/core/built/admin/assets/activitypub/{content-formatters-CLcjaBwV.js → content-formatters-D7GWP7nH.js} +23 -24
  41. package/core/built/admin/assets/activitypub/{copy-DcOh8kXw.js → copy-CgzTvoeR.js} +2 -2
  42. package/core/built/admin/assets/activitypub/{domain-fZ-X8i4-.js → domain-C3G_nkHU.js} +46 -46
  43. package/core/built/admin/assets/activitypub/{edit-profile-BqMLQV88.js → edit-profile-C8cCY-AK.js} +927 -928
  44. package/core/built/admin/assets/activitypub/{explore-B4yPoP8E.js → explore-NlDT4inq.js} +11 -11
  45. package/core/built/admin/assets/activitypub/{feed-BRC_mvAe.js → feed-DF22jCTV.js} +10 -10
  46. package/core/built/admin/assets/activitypub/{field-COacNgOt.js → field-95-iuTte.js} +4 -4
  47. package/core/built/admin/assets/activitypub/{hash-C7u-irQQ.js → hash-R7LMLnhY.js} +2 -2
  48. package/core/built/admin/assets/activitypub/{inbox-CbTTdDQ3.js → inbox-DUJUiV6x.js} +2 -2
  49. package/core/built/admin/assets/activitypub/{inbox-BW-yvUoN.js → inbox-DerExBzA.js} +416 -414
  50. package/core/built/admin/assets/activitypub/{label-kPMmYI7l.js → label-EwCn1QYc.js} +4 -4
  51. package/core/built/admin/assets/activitypub/layout-Dy6NnW1G.js +1 -0
  52. package/core/built/admin/assets/activitypub/{moderation-CuidJzc0.js → moderation-BSkfiVYo.js} +73 -75
  53. package/core/built/admin/assets/activitypub/{note-CAMRRSqD.js → note-DOnAJTXK.js} +9 -9
  54. package/core/built/admin/assets/activitypub/{notifications-BmNlXGgp.js → notifications-DZc6XTjG.js} +27 -27
  55. package/core/built/admin/assets/activitypub/{onboarding-Dmun9jr_.js → onboarding-8vEIwYTH.js} +3 -3
  56. package/core/built/admin/assets/activitypub/{onboarding-Bqg7fh_L.js → onboarding-DYVqbNmp.js} +2 -2
  57. package/core/built/admin/assets/activitypub/{preferences--oH19wf9.js → preferences-DDok6F2N.js} +1418 -1390
  58. package/core/built/admin/assets/activitypub/{profile-DH_tQx2D.js → profile-DjVa2hUk.js} +254 -255
  59. package/core/built/admin/assets/activitypub/{reply-Cap9PxSH.js → reply-DtXBpHxu.js} +2 -2
  60. package/core/built/admin/assets/activitypub/routes-Cw302e1c.js +4946 -0
  61. package/core/built/admin/assets/activitypub/{separator-CAxxu8VV.js → separator-FpRpVDd3.js} +8 -9
  62. package/core/built/admin/assets/activitypub/settings-yK-puALn.js +314 -0
  63. package/core/built/admin/assets/activitypub/{site-BYps63oh.js → site-CHw0R2PA.js} +2 -2
  64. package/core/built/admin/assets/activitypub/{step-1-CKjR2KAm.js → step-1-737bnvxk.js} +7 -7
  65. package/core/built/admin/assets/activitypub/{step-2-B6PKfOUQ.js → step-2-DBaIsAsM.js} +7 -7
  66. package/core/built/admin/assets/activitypub/{step-3-C-qBbcUo.js → step-3-BBmy9m9V.js} +23 -23
  67. package/core/built/admin/assets/activitypub/tabs-LQ2xirdm.js +1101 -0
  68. package/core/built/admin/assets/activitypub/{topic-filter-DsUOuu0k.js → topic-filter-75Nu0CKj.js} +4 -4
  69. package/core/built/admin/assets/activitypub/{use-activity-pub-queries-CX9snsLs.js → use-activity-pub-queries-CYI2QJMs.js} +58 -58
  70. package/core/built/admin/assets/activitypub/{use-navigate-with-base-path-DsJTGDSS.js → use-navigate-with-base-path-B4jZ8hyg.js} +3924 -1403
  71. package/core/built/admin/assets/activitypub/{use-reply-chain-data-AJi9zkzm.js → use-reply-chain-data-BHmFxc3U.js} +6 -6
  72. package/core/built/admin/assets/activitypub/users-CSjOwpT9.js +886 -0
  73. package/core/built/admin/assets/activitypub/{x-DR8AT3-4.js → x-B9ptWCds.js} +2 -2
  74. package/core/built/admin/assets/add-integration-modal-BwePhq95.js +1 -0
  75. package/core/built/admin/assets/add-newsletter-modal-Zv0I7Msm.js +1 -0
  76. package/core/built/admin/assets/add-recommendation-modal-cdLv0wHy.js +1 -0
  77. package/core/built/admin/assets/analytics-DY8_SaP7.js +1 -0
  78. package/core/built/admin/assets/announcement-bar-modal-C-2yWwag.js +1 -0
  79. package/core/built/admin/assets/api-keys-BHKATUqQ.js +1 -0
  80. package/core/built/admin/assets/{api-keys-BGPzLHzA.js → api-keys-omLA6iYn.js} +1 -1
  81. package/core/built/admin/assets/{audience-ceV3XVHq.js → audience-wRcSN0jV.js} +1 -1
  82. package/core/built/admin/assets/automated-emails-CzUa3v4d.js +1 -0
  83. package/core/built/admin/assets/automations-DupSsSOr.js +1 -0
  84. package/core/built/admin/assets/automations-hDVcRPjh.js +1 -0
  85. package/core/built/admin/assets/avatar-flipboard-DiAGgshK.js +1 -0
  86. package/core/built/admin/assets/badge-CI1Z0xyG.js +1 -0
  87. package/core/built/admin/assets/bluesky-sharing-B8PC1SBj.js +1 -0
  88. package/core/built/admin/assets/box-LUuYRT-1.js +1 -0
  89. package/core/built/admin/assets/brand-icon-CrmbX86T.js +1 -0
  90. package/core/built/admin/assets/breadcrumb-DDDpzLyo.js +1 -0
  91. package/core/built/admin/assets/button-D414TI3B.js +1 -0
  92. package/core/built/admin/assets/calendar-Cp_opo3i.js +1 -0
  93. package/core/built/admin/assets/card-C2dfd5u0.js +1 -0
  94. package/core/built/admin/assets/chart-B_UNLXse.js +63 -0
  95. package/core/built/admin/assets/chart-helpers-Czu_9QpJ.js +1 -0
  96. package/core/built/admin/assets/checkbox-CFFqf0Nh.js +1 -0
  97. package/core/built/admin/assets/{chunk-KS7C4IRE-DCsL4i4D.js → chunk-KS7C4IRE-DhOcHQOU.js} +1 -1
  98. package/core/built/admin/assets/{chunk.254.035b85ec456ebbd7336b.js → chunk.201.6961b57ed7a281ac193e.js} +165 -122
  99. package/core/built/admin/assets/chunk.524.0b850e72ec49a0fa3882.js +25 -0
  100. package/core/built/admin/assets/chunk.582.db2ae9e968256e8d58ac.js +27 -0
  101. package/core/built/admin/assets/{chunk.901.4ccc639821020230bcca.js → chunk.972.4b8c97f93d66db15e751.js} +10625 -10088
  102. package/core/built/admin/assets/clean-tracked-url-dkN05vOf.js +1 -0
  103. package/core/built/admin/assets/code-editor-view-Bd_nnHKk.js +1 -0
  104. package/core/built/admin/assets/code-editor-view-BeU3Yf9M.js +1 -0
  105. package/core/built/admin/assets/color-picker-Bzm1V7qg.js +3 -0
  106. package/core/built/admin/assets/color-picker-field-DP0moHz9.js +1 -0
  107. package/core/built/admin/assets/combobox-6_ruuTuj.js +1 -0
  108. package/core/built/admin/assets/command-B5wfm6pd.js +1 -0
  109. package/core/built/admin/assets/comments-BB26dUSl.js +1 -0
  110. package/core/built/admin/assets/components-CwL6a6As-CCRaoCeP.js +1 -0
  111. package/core/built/admin/assets/{config-kSHvwdTG.js → config-BPljH6wF.js} +1 -1
  112. package/core/built/admin/assets/confirmation-context-znVJD4pX.js +1 -0
  113. package/core/built/admin/assets/container-CHHif8km.js +1 -0
  114. package/core/built/admin/assets/content-api-modal-DOHwl0yZ.js +1 -0
  115. package/core/built/admin/assets/context-menu-BpY46Dlb.js +1 -0
  116. package/core/built/admin/assets/copy-field-DRBx6Ady.js +1 -0
  117. package/core/built/admin/assets/create-ghost-browse-value-source-eIXo5Qws.js +1 -0
  118. package/core/built/admin/assets/{custom-field-type-option-BAuW0F-E.js → custom-field-type-option-DrSlETOI.js} +1 -1
  119. package/core/built/admin/assets/custom-integration-modal-Dgo425Ec.js +1 -0
  120. package/core/built/admin/assets/data-list-DM8yqpXi.js +1 -0
  121. package/core/built/admin/assets/date-range-select-DdC23c13.js +1 -0
  122. package/core/built/admin/assets/design-and-theme-modal-CbSu9IT4.js +2 -0
  123. package/core/built/admin/assets/detail-page-CN4NdhpV.js +1 -0
  124. package/core/built/admin/assets/dirty-confirm-dialog-BT_Vq9TD.js +1 -0
  125. package/core/built/admin/assets/disabled-sources-indicator-C5xtW0Q2.js +1 -0
  126. package/core/built/admin/assets/dist-B40T-RCQ.js +1 -0
  127. package/core/built/admin/assets/dist-BRQkNYN1.js +11 -0
  128. package/core/built/admin/assets/dist-Bm-PB47a.js +6 -0
  129. package/core/built/admin/assets/{dist-B6bJuxL3.js → dist-C2lYC76d.js} +1 -1
  130. package/core/built/admin/assets/dist-Cm2qbZKL.js +1 -0
  131. package/core/built/admin/assets/dist-CrlaEoaK.js +1 -0
  132. package/core/built/admin/assets/{dist-BtaTA7Ii.js → dist-D7yMk931.js} +1 -1
  133. package/core/built/admin/assets/{dist-zwwGt8Yf.js → dist-DNAdeRyr.js} +1 -1
  134. package/core/built/admin/assets/dist-DS6zpxid.js +1 -0
  135. package/core/built/admin/assets/dist-DVVKsyPh.js +23 -0
  136. package/core/built/admin/assets/dist-DxfQlAmn.js +1 -0
  137. package/core/built/admin/assets/dist-DziNzWI2.js +1 -0
  138. package/core/built/admin/assets/dist-nmRzULcD.js +1 -0
  139. package/core/built/admin/assets/domain-BPReCZa8.js +1 -0
  140. package/core/built/admin/assets/dropzone-B2auMkf2.js +5 -0
  141. package/core/built/admin/assets/edit-profile-B7XTBzKe.js +1 -0
  142. package/core/built/admin/assets/editor-BcaC9dqm.js +8 -0
  143. package/core/built/admin/assets/editor-screen-FuMpItC8.js +27 -0
  144. package/core/built/admin/assets/email-previews-Bs-JDhIw.js +1 -0
  145. package/core/built/admin/assets/email-sending-status-context-C76KYL1V.js +1 -0
  146. package/core/built/admin/assets/email-sending-status-provider-9d81o1C2.js +1 -0
  147. package/core/built/admin/assets/{emails-vFMk4yYl.js → emails-CgvIIz3q.js} +1 -1
  148. package/core/built/admin/assets/embed-signup-form-modal-CbVbMsxl.js +8 -0
  149. package/core/built/admin/assets/empty-indicator-CSQts7GV.js +1 -0
  150. package/core/built/admin/assets/esm--rhhUGIG.js +2 -0
  151. package/core/built/admin/assets/explore-DbSXFTJN.js +1 -0
  152. package/core/built/admin/assets/feature-flag-overrides-context-CrcQKm9Z.js +1 -0
  153. package/core/built/admin/assets/feature-image-placeholder-DFXA4vfJ.js +1 -0
  154. package/core/built/admin/assets/feed-W7RlF-Gp.js +1 -0
  155. package/core/built/admin/assets/feedback-BTPBQLT5.js +1 -0
  156. package/core/built/admin/assets/field-BXEh3ptU.js +1 -0
  157. package/core/built/admin/assets/filter-sources-DHK2IoCk.js +1 -0
  158. package/core/built/admin/assets/filters-0SYNTqyQ.js +1 -0
  159. package/core/built/admin/assets/filters-DTtZKQyq.js +1 -0
  160. package/core/built/admin/assets/first-promoter-modal-DcoN_OXu.js +1 -0
  161. package/core/built/admin/assets/focus-koenig-editor-on-bottom-click-CkFA8EkI.js +1 -0
  162. package/core/built/admin/assets/framework-provider-DB-svAju.js +4 -0
  163. package/core/built/admin/assets/{ghost-b4e8a403baba61905cd7560e30b9732d.js → ghost-25495154132af7305cb7b646fd83f48f.js} +580 -523
  164. package/core/built/admin/assets/gift-link-modal-BX-Q1TOk.js +1 -0
  165. package/core/built/admin/assets/{gift-links-CfLSnst2.js → gift-links-D8gl_yJS.js} +1 -1
  166. package/core/built/admin/assets/global-data-context-3MItMry2.js +1 -0
  167. package/core/built/admin/assets/grid-BEUIDQX7.js +1 -0
  168. package/core/built/admin/assets/growth-G6PLO4aF.js +1 -0
  169. package/core/built/admin/assets/growth-tkD-fBOY.js +3 -0
  170. package/core/built/admin/assets/heading-ih-fOVqF.js +1 -0
  171. package/core/built/admin/assets/history-modal-Ca-gStoq.js +1 -0
  172. package/core/built/admin/assets/hooks-DYfTEQLk.js +2 -0
  173. package/core/built/admin/assets/html-field-B3CrKV9Y.js +1 -0
  174. package/core/built/admin/assets/iframe-buffering-Bq1el-gw.js +1 -0
  175. package/core/built/admin/assets/images-H-BIm8OQ.js +1 -0
  176. package/core/built/admin/assets/{inbox-gJHG7_xd.js → inbox-DBbDVMPz.js} +35 -35
  177. package/core/built/admin/assets/index-DOF2jDq0.js +4 -0
  178. package/core/built/admin/assets/index-JrrNchW1.css +2 -0
  179. package/core/built/admin/assets/index.es-Ct5XQNSj.js +1 -0
  180. package/core/built/admin/assets/input-group-CvH-3d3F.js +1 -0
  181. package/core/built/admin/assets/input-surface-CL23Mlh8.js +1 -0
  182. package/core/built/admin/assets/integration-header-C7GXGis_.js +1 -0
  183. package/core/built/admin/assets/{integrations-B4kuRBFY.js → integrations-DnJrZnHv.js} +1 -1
  184. package/core/built/admin/assets/invite-user-modal-EJ2_6RpV.js +1 -0
  185. package/core/built/admin/assets/isPlainObject-BzzgUf1E.js +1 -0
  186. package/core/built/admin/assets/jsx-runtime-BlNNh7jY.js +1 -0
  187. package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +3 -3
  188. package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +1 -1
  189. package/core/built/admin/assets/{koenig-lexical-CGXb0F8o.js → koenig-lexical-Dkwee5FG.js} +1 -1
  190. package/core/built/admin/assets/koenig-loader-BzXCXHoA.js +2 -0
  191. package/core/built/admin/assets/kpi-card-iCDUTgOR.js +1 -0
  192. package/core/built/admin/assets/kpi-card-jTnpLKGr.js +1 -0
  193. package/core/built/admin/assets/kpi-helpers-Criu0YAf.js +1 -0
  194. package/core/built/admin/assets/kpi-tabs-DbOmmyOo.js +1 -0
  195. package/core/built/admin/assets/label-Du0yqMqL.js +1 -0
  196. package/core/built/admin/assets/label-picker-Bq1XXr1D.js +1 -0
  197. package/core/built/admin/assets/labels-0x2NfLtC.js +1 -0
  198. package/core/built/admin/assets/layout-Ckwzsnsu.js +1 -0
  199. package/core/built/admin/assets/lib-CCz2mjm8.js +2 -0
  200. package/core/built/admin/assets/link-helpers-o9GgBTni.js +1 -0
  201. package/core/built/admin/assets/links-Ctujreuh.js +1 -0
  202. package/core/built/admin/assets/list-page-CH_wnDC3.js +1 -0
  203. package/core/built/admin/assets/luxon-BXCsmep3.js +1 -0
  204. package/core/built/admin/assets/member-activity-CsAh6MxK.js +1 -0
  205. package/core/built/admin/assets/member-activity-feed-0ytsQbtY.js +1 -0
  206. package/core/built/admin/assets/member-custom-fields-CTFGnnYv.js +1 -0
  207. package/core/built/admin/assets/member-detail-QU3vB1ML.js +1 -0
  208. package/core/built/admin/assets/members-CtMVO_AB.js +4 -0
  209. package/core/built/admin/assets/modal-page-8Ipfl51B.js +1 -0
  210. package/core/built/admin/assets/moderation-B8VtA-W0.js +1 -0
  211. package/core/built/admin/assets/multi-select-combobox-_9wEYmGv.js +1 -0
  212. package/core/built/admin/assets/navigation-modal-CGcjJvkc.js +1 -0
  213. package/core/built/admin/assets/newsletter-BpHjjqmq.js +1 -0
  214. package/core/built/admin/assets/newsletter-detail-modal-DzTbGOyo.js +1 -0
  215. package/core/built/admin/assets/newsletter-emails-BMKH4Osp.js +1 -0
  216. package/core/built/admin/assets/newsletters-BxC84_cL.js +1 -0
  217. package/core/built/admin/assets/{newsletters-Rq1M3GD-.js → newsletters-Dz77m__5.js} +1 -1
  218. package/core/built/admin/assets/note-BPtEzzZS.js +1 -0
  219. package/core/built/admin/assets/notifications-ng3ulEdp.js +1 -0
  220. package/core/built/admin/assets/{nql-BLpCn7qX.js → nql-DnDc7UuU.js} +1 -1
  221. package/core/built/admin/assets/nql-lang-CeTB_Bhv.js +19 -0
  222. package/core/built/admin/assets/{offers--e2nGvkW.js → offers-ByWSK0rR.js} +1 -1
  223. package/core/built/admin/assets/offers-container-modal-CwqnRa3T.js +1 -0
  224. package/core/built/admin/assets/onboarding-B4hfBi9a.js +1 -0
  225. package/core/built/admin/assets/onboarding-DV_XbHts.js +1 -0
  226. package/core/built/admin/assets/onboarding-route-CplZzd7F.js +1 -0
  227. package/core/built/admin/assets/overview-B0yD9OoX.js +1 -0
  228. package/core/built/admin/assets/overview-C4eJzQqi.js +1 -0
  229. package/core/built/admin/assets/page-header-CdCpekG9.js +1 -0
  230. package/core/built/admin/assets/pagemenu-CKQD9hoP.js +1 -0
  231. package/core/built/admin/assets/{pages-CjDY2CBI.js → pages-DZ_YGB1D.js} +1 -1
  232. package/core/built/admin/assets/pages-route-CKsnxIvw.js +1 -0
  233. package/core/built/admin/assets/papaparse.min-BlhnCUXn.js +10 -0
  234. package/core/built/admin/assets/pintura-modal-C5jzeyGk.js +1 -0
  235. package/core/built/admin/assets/portal-frame-DYo0bh0E.js +1 -0
  236. package/core/built/admin/assets/portal-modal-C0d8xjKa.js +1 -0
  237. package/core/built/admin/assets/post-analytics-C5C7IyAm.js +1 -0
  238. package/core/built/admin/assets/post-analytics-context-bt2YTBAC.js +1 -0
  239. package/core/built/admin/assets/post-analytics-header-DKWHwoK2.js +1 -0
  240. package/core/built/admin/assets/post-analytics-provider-BqCPPxmW.js +1 -0
  241. package/core/built/admin/assets/post-share-modal-wxmqbAv_.js +1 -0
  242. package/core/built/admin/assets/posts-list-screen-B978ZO0R.js +2 -0
  243. package/core/built/admin/assets/posts-route-CDqxKazl.js +1 -0
  244. package/core/built/admin/assets/{posts-pCPrhQeR.js → posts-tcoO3iRG.js} +1 -1
  245. package/core/built/admin/assets/preferences-CnejTRc4.js +5 -0
  246. package/core/built/admin/assets/preview-chrome-C7yZWVLZ.js +1 -0
  247. package/core/built/admin/assets/preview-modal-CFUxUGHp.js +1 -0
  248. package/core/built/admin/assets/profile-ClRGiOqA.js +1 -0
  249. package/core/built/admin/assets/prop-types-6lTeqvom.js +1 -0
  250. package/core/built/admin/assets/radio-group-CTmLo0h9.js +1 -0
  251. package/core/built/admin/assets/react-BXwhMTuc.js +1 -0
  252. package/core/built/admin/assets/{jsx-runtime-DX3WBWVO.js → react-dom-CMOtJ5MH.js} +2 -2
  253. package/core/built/admin/assets/{referrers-D8oHPmDB.js → referrers-1R8bPpoV.js} +1 -1
  254. package/core/built/admin/assets/router-provider-DDZvgS3V.js +1 -0
  255. package/core/built/admin/assets/select-D_4xWFYv.js +1 -0
  256. package/core/built/admin/assets/settings-BRl7-7a9.js +1 -0
  257. package/core/built/admin/assets/settings-BoQcPa-y.js +4 -0
  258. package/core/built/admin/assets/settings-breadcrumbs-C9Yxl81q.js +1 -0
  259. package/core/built/admin/assets/{dist-B3keLvjj.js → shade-scope-Cccj-c7I-D0XwkdKQ.js} +5 -3
  260. package/core/built/admin/assets/share-modal-DBqZobuR.js +1 -0
  261. package/core/built/admin/assets/simple-pagination-D5t_ox6x.js +1 -0
  262. package/core/built/admin/assets/skeleton-CPcTiTSX.js +1 -0
  263. package/core/built/admin/assets/slack-modal-BF9ex8cd.js +1 -0
  264. package/core/built/admin/assets/sort-button-C0EXGjnS.js +1 -0
  265. package/core/built/admin/assets/source-icon-BzzftCQ2.js +1 -0
  266. package/core/built/admin/assets/{stats-D9PDLS3x.js → stats-Cvp8Ep5m.js} +1 -1
  267. package/core/built/admin/assets/stats-view-CzpGoHzF.js +1 -0
  268. package/core/built/admin/assets/step-1-CBUYUPPF.js +1 -0
  269. package/core/built/admin/assets/step-2-CEIXUwQa.js +1 -0
  270. package/core/built/admin/assets/step-3-C1HA5i1N.js +2 -0
  271. package/core/built/admin/assets/stripe-button-DMFsLs80.js +1 -0
  272. package/core/built/admin/assets/stripe-connect-modal-CEvxCUTv.js +1 -0
  273. package/core/built/admin/assets/switch-DoOJF2yg.js +1 -0
  274. package/core/built/admin/assets/table-BDYbUHJz.js +1 -0
  275. package/core/built/admin/assets/tabs-BZyz4ZCH.js +1 -0
  276. package/core/built/admin/assets/tag-detail-CFzaz_9E.js +2 -0
  277. package/core/built/admin/assets/tag-picker-BKUCZuRc.js +1 -0
  278. package/core/built/admin/assets/tags-Bs1FiD7m.js +1 -0
  279. package/core/built/admin/assets/{tags-ChfdwJyS.js → tags-NwZ7BPK6.js} +1 -1
  280. package/core/built/admin/assets/testimonials-modal-CVm0_7E-.js +1 -0
  281. package/core/built/admin/assets/text-BLI0C8Mc.js +1 -0
  282. package/core/built/admin/assets/textarea-C5qolByg.js +1 -0
  283. package/core/built/admin/assets/themes-DtcEFQWm.js +1 -0
  284. package/core/built/admin/assets/tier-detail-modal-Cmwzi-e7.js +1 -0
  285. package/core/built/admin/assets/{tiers-BCpIOGQr.js → tiers-6mPzCXlM.js} +1 -1
  286. package/core/built/admin/assets/toggle-group-BTL1QsWY.js +1 -0
  287. package/core/built/admin/assets/topic-filter-BMjhquv7.js +1 -0
  288. package/core/built/admin/assets/transistor-modal-hMv53jF8.js +1 -0
  289. package/core/built/admin/assets/trend-badge-1w_HEzkG.js +1 -0
  290. package/core/built/admin/assets/unsplash-modal-jzC8lEB2.js +1 -0
  291. package/core/built/admin/assets/use-analytics-data-B3lGOxsC.js +1 -0
  292. package/core/built/admin/assets/use-availability-DnKqOyqd.js +1 -0
  293. package/core/built/admin/assets/{use-check-theme-limit-error-DRUjK4YM.js → use-check-theme-limit-error-C1tc2P4N.js} +2 -2
  294. package/core/built/admin/assets/use-email-sending-status-DNMtL5B9.js +1 -0
  295. package/core/built/admin/assets/use-filter-params-DU-aiaTb.js +1 -0
  296. package/core/built/admin/assets/use-filterable-api-CxCrnPxG.js +1 -0
  297. package/core/built/admin/assets/use-form-DJKZJhQh.js +1 -0
  298. package/core/built/admin/assets/use-growth-stats-E13rMQUE.js +1 -0
  299. package/core/built/admin/assets/use-host-limits-mpTkZIq8.js +1 -0
  300. package/core/built/admin/assets/use-limiter-DlL7au90.js +19 -0
  301. package/core/built/admin/assets/use-navigate-with-base-path-BzgNwMAx.js +1 -0
  302. package/core/built/admin/assets/use-pintura-config-CtEV1JQY.js +1 -0
  303. package/core/built/admin/assets/use-pintura-editor-CaxE64kD.js +1 -0
  304. package/core/built/admin/assets/use-post-referrers-DyPjyBSN.js +1 -0
  305. package/core/built/admin/assets/use-query-params-DlOHCo-R.js +1 -0
  306. package/core/built/admin/assets/use-reply-chain-data-BST2OgCM.js +1 -0
  307. package/core/built/admin/assets/use-router-history-entry-CKx9LhqD.js +1 -0
  308. package/core/built/admin/assets/use-sending-eta-DR9ueMH8.js +1 -0
  309. package/core/built/admin/assets/use-setting-group-ldtX1Vsk.js +1 -0
  310. package/core/built/admin/assets/use-settings-navigation-CzGU4sus.js +1 -0
  311. package/core/built/admin/assets/use-staff-users-DoeXaPsb.js +1 -0
  312. package/core/built/admin/assets/use-tinybird-query-BaBNCaj0.js +1 -0
  313. package/core/built/admin/assets/use-tinybird-token-CnZ19NDf.js +1 -0
  314. package/core/built/admin/assets/use-unsaved-changes-guard-CKVPWz_F.js +1 -0
  315. package/core/built/admin/assets/use-upgrade-route-CVjDlNSs.js +1 -0
  316. package/core/built/admin/assets/{use-url-input-fvp-TpPx.js → use-url-input-C5KHJw79.js} +1 -1
  317. package/core/built/admin/assets/user-detail-modal-Dm0KfPeR.js +1 -0
  318. package/core/built/admin/assets/{users-DVNWrqg9.js → users-C60_hpn6.js} +1 -1
  319. package/core/built/admin/assets/{validator-Cr0sMKuW.js → validator-DlFQP70j.js} +1 -1
  320. package/core/built/admin/assets/{vendor-2dd263291938d407802568d3357ec69e.js → vendor-97e91ff8dd1457c668f9ef103ee1a77b.js} +2748 -2977
  321. package/core/built/admin/assets/virtual-list-tAuPUICw.js +1 -0
  322. package/core/built/admin/assets/web-BQlKcW2x.js +2 -0
  323. package/core/built/admin/assets/web-NTT5DkEz.js +1 -0
  324. package/core/built/admin/assets/zapier-modal-DsHG9Oev.js +1 -0
  325. package/core/built/admin/index.html +35 -34
  326. package/core/cli/command.js +17 -2
  327. package/core/frontend/apps/private-blogging/index.js +2 -2
  328. package/core/frontend/apps/private-blogging/lib/middleware.js +1 -1
  329. package/core/frontend/apps/private-blogging/lib/router.js +1 -1
  330. package/core/frontend/helpers/cancel_link.js +3 -3
  331. package/core/frontend/helpers/content.js +2 -2
  332. package/core/frontend/helpers/content_api_url.js +1 -1
  333. package/core/frontend/helpers/date.js +1 -1
  334. package/core/frontend/helpers/foreach.js +5 -5
  335. package/core/frontend/helpers/get.js +7 -4
  336. package/core/frontend/helpers/ghost_head.js +2 -2
  337. package/core/frontend/helpers/has.js +1 -3
  338. package/core/frontend/helpers/link.js +7 -7
  339. package/core/frontend/helpers/link_class.js +2 -2
  340. package/core/frontend/helpers/navigation.js +1 -2
  341. package/core/frontend/helpers/recommendations.js +5 -6
  342. package/core/frontend/helpers/tiers.js +1 -1
  343. package/core/frontend/helpers/total_members.js +1 -1
  344. package/core/frontend/helpers/total_paid_members.js +1 -1
  345. package/core/frontend/meta/asset-url.js +1 -16
  346. package/core/frontend/meta/author-url.js +1 -1
  347. package/core/frontend/meta/modified-date.js +1 -1
  348. package/core/frontend/meta/published-date.js +1 -1
  349. package/core/frontend/meta/schema.js +3 -8
  350. package/core/frontend/meta/structured-data.js +1 -2
  351. package/core/frontend/services/asset-hash/index.js +32 -2
  352. package/core/frontend/services/assets-minification/minifier.js +1 -1
  353. package/core/frontend/services/data/entry-lookup.js +1 -1
  354. package/core/frontend/services/data/fetch-data.js +2 -2
  355. package/core/frontend/services/rendering/format-response.js +1 -1
  356. package/core/frontend/services/rendering/renderer.js +3 -0
  357. package/core/frontend/services/rendering/templates.js +1 -1
  358. package/core/frontend/services/routing/controllers/static.js +1 -1
  359. package/core/frontend/services/routing/controllers/unsubscribe.js +2 -1
  360. package/core/frontend/services/routing/parent-router.js +1 -1
  361. package/core/frontend/services/routing/registry.js +1 -1
  362. package/core/frontend/services/rss/generate-feed.js +1 -1
  363. package/core/frontend/services/sitemap/base-site-map-generator.js +68 -97
  364. package/core/frontend/services/sitemap/site-map-index-generator.js +16 -21
  365. package/core/frontend/services/sitemap/site-map-manager.js +82 -43
  366. package/core/frontend/services/sitemap/sitemap-xml.js +72 -0
  367. package/core/frontend/services/theme-engine/active.js +2 -4
  368. package/core/frontend/services/theme-engine/handlebars/utils.js +8 -8
  369. package/core/frontend/services/theme-engine/i18n/i18n.js +15 -6
  370. package/core/frontend/services/theme-engine/i18next/theme-i18n.js +1 -1
  371. package/core/frontend/services/theme-engine/middleware/update-global-template-options.js +1 -1
  372. package/core/frontend/services/theme-engine/preview.js +1 -1
  373. package/core/frontend/utils/member-count.js +2 -2
  374. package/core/frontend/web/middleware/llms-discovery.js +34 -43
  375. package/core/frontend/web/routers/serve-public-file.js +1 -1
  376. package/core/server/adapters/route-settings/S3RouteSettingsStore.js +1 -1
  377. package/core/server/adapters/scheduling/README.md +4 -0
  378. package/core/server/adapters/scheduling/get-scheduler-idempotency-key.js +21 -0
  379. package/core/server/adapters/storage/LocalFilesStorage.js +12 -2
  380. package/core/server/adapters/storage/LocalStorageBase.js +15 -1
  381. package/core/server/api/endpoints/actions.js +2 -1
  382. package/core/server/api/endpoints/automated-emails.js +11 -4
  383. package/core/server/api/endpoints/automations.js +77 -49
  384. package/core/server/api/endpoints/db.js +1 -1
  385. package/core/server/api/endpoints/emails.js +11 -6
  386. package/core/server/api/endpoints/index.js +1 -1
  387. package/core/server/api/endpoints/invites.js +2 -1
  388. package/core/server/api/endpoints/labels.js +6 -2
  389. package/core/server/api/endpoints/mail.js +1 -1
  390. package/core/server/api/endpoints/member-metafields.js +2 -2
  391. package/core/server/api/endpoints/member-signin-urls.js +1 -1
  392. package/core/server/api/endpoints/members.js +23 -7
  393. package/core/server/api/endpoints/oembed.js +1 -1
  394. package/core/server/api/endpoints/pages.js +2 -6
  395. package/core/server/api/endpoints/posts.js +4 -12
  396. package/core/server/api/endpoints/settings.js +2 -2
  397. package/core/server/api/endpoints/snippets.js +2 -1
  398. package/core/server/api/endpoints/tags.js +6 -2
  399. package/core/server/api/endpoints/themes.js +5 -5
  400. package/core/server/api/endpoints/users.js +2 -6
  401. package/core/server/api/endpoints/utils/api-filter-utils.js +62 -3
  402. package/core/server/api/endpoints/utils/serializers/input/pages.js +2 -2
  403. package/core/server/api/endpoints/utils/serializers/input/posts.js +2 -2
  404. package/core/server/api/endpoints/utils/serializers/input/tags.js +1 -1
  405. package/core/server/api/endpoints/utils/serializers/input/utils/slug-filter-order.js +4 -4
  406. package/core/server/api/endpoints/utils/serializers/output/mappers/comments.js +8 -5
  407. package/core/server/api/endpoints/utils/serializers/output/mappers/posts.js +1 -1
  408. package/core/server/api/endpoints/utils/serializers/output/pages.js +4 -4
  409. package/core/server/api/endpoints/utils/serializers/output/posts.js +4 -4
  410. package/core/server/api/endpoints/utils/serializers/output/search-index.js +11 -11
  411. package/core/server/api/endpoints/utils/serializers/output/settings.js +1 -1
  412. package/core/server/api/endpoints/utils/serializers/output/utils/clean.js +2 -0
  413. package/core/server/api/endpoints/utils/serializers/output/utils/extra-attrs.js +6 -3
  414. package/core/server/api/endpoints/utils/validators/input/automated_emails.js +23 -33
  415. package/core/server/api/endpoints/utils/validators/input/settings.js +18 -4
  416. package/core/server/data/exporter/exporter.js +3 -3
  417. package/core/server/data/exporter/table-lists.js +4 -5
  418. package/core/server/data/importer/handlers/image.js +1 -2
  419. package/core/server/data/importer/handlers/json.js +1 -3
  420. package/core/server/data/importer/handlers/markdown.js +4 -8
  421. package/core/server/data/importer/import-manager.js +1 -1
  422. package/core/server/data/importer/importers/content-file-importer.js +4 -8
  423. package/core/server/data/importer/importers/data/base.js +10 -10
  424. package/core/server/data/importer/importers/data/custom-theme-settings-importer.js +1 -1
  425. package/core/server/data/importer/importers/data/data-importer.js +3 -4
  426. package/core/server/data/importer/importers/data/posts-importer.js +10 -10
  427. package/core/server/data/importer/importers/data/products-importer.js +3 -3
  428. package/core/server/data/importer/importers/data/settings-importer.js +10 -4
  429. package/core/server/data/importer/importers/data/stripe-prices-importer.js +1 -1
  430. package/core/server/data/importer/importers/data/stripe-products-importer.js +1 -1
  431. package/core/server/data/importer/importers/data/tags-importer.js +1 -1
  432. package/core/server/data/importer/importers/data/users-importer.js +2 -2
  433. package/core/server/data/importer/importers/json-to-html.js +12 -9
  434. package/core/server/data/migrations/versions/5.0/2022-05-11-13-12-rename-settings.js +1 -1
  435. package/core/server/data/migrations/versions/6.64/2026-09-03-15-40-25-add-member-access-to-members-metafields.js +12 -0
  436. package/core/server/data/migrations/versions/6.64/2026-09-08-11-01-12-add-posts-auto-excerpt-and-reading-time-columns.js +17 -0
  437. package/core/server/data/migrations/versions/6.64/2026-09-09-13-56-18-add-automation-run-updated-at-indexes.js +6 -0
  438. package/core/server/data/migrations/versions/6.64/2026-09-09-13-56-18-add-tinybird-syncs-table.js +10 -0
  439. package/core/server/data/migrations/versions/6.65/2026-09-16-15-35-26-add-members-metafield-change-events.js +17 -0
  440. package/core/server/data/schema/fixtures/fixture-manager.js +3 -3
  441. package/core/server/data/schema/index.js +1 -1
  442. package/core/server/data/schema/schema.js +54 -2
  443. package/core/server/data/schema/validator.js +96 -123
  444. package/core/server/data/seeders/importers/automations-importer.js +0 -1
  445. package/core/server/data/seeders/importers/comments-importer.js +1 -1
  446. package/core/server/data/seeders/importers/email-recipients-importer.js +3 -3
  447. package/core/server/data/seeders/importers/emails-importer.js +1 -1
  448. package/core/server/data/seeders/importers/members-importer.js +1 -1
  449. package/core/server/data/seeders/importers/members-login-events-importer.js +2 -2
  450. package/core/server/data/seeders/importers/members-newsletters-importer.js +1 -1
  451. package/core/server/data/seeders/importers/members-paid-subscription-events-importer.js +1 -1
  452. package/core/server/data/seeders/importers/members-status-events-importer.js +1 -1
  453. package/core/server/data/seeders/importers/members-stripe-customers-importer.js +1 -1
  454. package/core/server/data/seeders/importers/members-stripe-customers-subscriptions-importer.js +2 -2
  455. package/core/server/data/seeders/importers/members-subscribe-events-importer.js +2 -2
  456. package/core/server/data/seeders/importers/members-subscription-created-events-importer.js +1 -1
  457. package/core/server/data/seeders/utils/blog-info.js +4 -3
  458. package/core/server/data/seeders/utils/event-generator.js +72 -46
  459. package/core/server/data/tinybird/datasources/_mv_automation_run_steps.datasource +10 -0
  460. package/core/server/data/tinybird/datasources/_mv_automation_runs.datasource +10 -0
  461. package/core/server/data/tinybird/datasources/_mv_pending_automation_runs.datasource +10 -0
  462. package/core/server/data/tinybird/datasources/automation_run_events.datasource +12 -0
  463. package/core/server/data/tinybird/datasources/automation_run_step_events.datasource +12 -0
  464. package/core/server/data/tinybird/endpoints/api_automation_browse_stats.pipe +43 -0
  465. package/core/server/data/tinybird/fixtures/automation_run_events.ndjson +7 -0
  466. package/core/server/data/tinybird/fixtures/automation_run_step_events.ndjson +8 -0
  467. package/core/server/data/tinybird/pipes/mv_automation_run_steps.pipe +13 -0
  468. package/core/server/data/tinybird/pipes/mv_automation_runs.pipe +15 -0
  469. package/core/server/data/tinybird/pipes/mv_hits.pipe +25 -20
  470. package/core/server/data/tinybird/pipes/mv_pending_automation_runs.pipe +7 -0
  471. package/core/server/data/tinybird/scripts/docker-analytics-manager.js +2 -2
  472. package/core/server/data/tinybird/tests/api_automation_browse_stats.yaml +18 -0
  473. package/core/server/ghost-server.js +4 -22
  474. package/core/server/lib/generate-password.js +54 -0
  475. package/core/server/lib/image/image-size.js +1 -3
  476. package/core/server/lib/public-jwk.js +77 -0
  477. package/core/server/lib/request-external.js +53 -117
  478. package/core/server/models/base/plugins/actions.js +2 -3
  479. package/core/server/models/base/plugins/crud.js +1 -2
  480. package/core/server/models/base/plugins/events.js +4 -4
  481. package/core/server/models/base/plugins/raw-knex.js +3 -3
  482. package/core/server/models/base/plugins/sanitize.js +1 -1
  483. package/core/server/models/benefit.js +1 -1
  484. package/core/server/models/collection.js +1 -1
  485. package/core/server/models/comment.js +3 -3
  486. package/core/server/models/invite.js +2 -5
  487. package/core/server/models/label.js +3 -6
  488. package/core/server/models/member.js +7 -10
  489. package/core/server/models/newsletter.js +1 -1
  490. package/core/server/models/permission.js +3 -6
  491. package/core/server/models/post.js +20 -23
  492. package/core/server/models/product.js +4 -1
  493. package/core/server/models/relations/authors.js +9 -12
  494. package/core/server/models/role.js +2 -5
  495. package/core/server/models/settings.js +3 -3
  496. package/core/server/models/tag.js +2 -5
  497. package/core/server/models/user.js +19 -19
  498. package/core/server/models/webhook.js +2 -4
  499. package/core/server/notify.js +2 -2
  500. package/core/server/services/adapter-manager/base-classes.js +21 -3
  501. package/core/server/services/adapter-manager/utils.js +6 -1
  502. package/core/server/services/api-version-compatibility/legacy-api-path-match.js +2 -2
  503. package/core/server/services/auth/api-key/admin.js +2 -2
  504. package/core/server/services/auth/api-key/content.js +1 -1
  505. package/core/server/services/auth/passwordreset.js +1 -1
  506. package/core/server/services/auth/setup.js +1 -3
  507. package/core/server/services/automations/README.md +19 -0
  508. package/core/server/services/automations/automations-api.js +46 -1
  509. package/core/server/services/automations/poll.js +3 -1
  510. package/core/server/services/automations/service.js +2 -2
  511. package/core/server/services/automations/tinybird-automation-stats.js +56 -0
  512. package/core/server/services/automations/welcome-email-automation-poll.js +199 -293
  513. package/core/server/services/comments/comments-controller.js +9 -30
  514. package/core/server/services/comments/comments-service-email-renderer.js +1 -1
  515. package/core/server/services/comments/comments-service-emails.js +1 -1
  516. package/core/server/services/comments/comments-service.js +27 -58
  517. package/core/server/services/comments/comments-stats-service.js +1 -1
  518. package/core/server/services/content-import/import/media.js +1 -1
  519. package/core/server/services/content-import/import/staged-file.js +9 -9
  520. package/core/server/services/content-import/index.js +1 -1
  521. package/core/server/services/custom-redirects/validation.js +1 -1
  522. package/core/server/services/email-analytics/email-analytics-service-wrapper.js +38 -84
  523. package/core/server/services/email-analytics/email-analytics-service.js +19 -3
  524. package/core/server/services/email-analytics/index.js +44 -23
  525. package/core/server/services/email-analytics/jobs/email-analytics-job-scheduler.js +31 -60
  526. package/core/server/services/email-rendering/finalize.js +7 -2
  527. package/core/server/services/email-service/README.md +38 -0
  528. package/core/server/services/email-service/batch-sending-service.js +13 -14
  529. package/core/server/services/email-service/email-renderer.js +57 -16
  530. package/core/server/services/email-service/email-service-wrapper.js +4 -3
  531. package/core/server/services/email-service/email-service.js +76 -42
  532. package/core/server/services/email-service/email-templates/partials/feedback-button.hbs +2 -1
  533. package/core/server/services/email-service/email-templates/partials/styles.hbs +0 -6
  534. package/core/server/services/email-service/email-templates/template.hbs +1 -1
  535. package/core/server/services/email-service/jobs/send-email-job.js +12 -0
  536. package/core/server/services/email-service/mailgun-email-provider.js +7 -2
  537. package/core/server/services/email-service/sending-service.js +1 -1
  538. package/core/server/services/email-service/sending-status.js +10 -4
  539. package/core/server/services/gifts/gift-email-service.js +10 -3
  540. package/core/server/services/gifts/gift-service.js +12 -3
  541. package/core/server/services/gifts/index.js +1 -2
  542. package/core/server/services/gifts/jobs/index.js +12 -24
  543. package/core/server/services/gifts/jobs/send-gift-reminders-job.js +6 -46
  544. package/core/server/services/i18n.js +1 -1
  545. package/core/server/services/identity-tokens/identity-token-service-wrapper.js +3 -4
  546. package/core/server/services/invitations/accept.js +2 -2
  547. package/core/server/services/jobs/job-service.js +0 -28
  548. package/core/server/services/jobs-service/jobs-service.js +5 -0
  549. package/core/server/services/jobs-service/register-job-handlers.js +17 -1
  550. package/core/server/services/lib/mailgun-client.js +16 -1
  551. package/core/server/services/lib/mailgun-recipient-message-id.js +49 -0
  552. package/core/server/services/limits.js +18 -2
  553. package/core/server/services/mail/ghost-mailer.js +1 -1
  554. package/core/server/services/member-attribution/member-attribution-service.js +1 -1
  555. package/core/server/services/member-attribution/referrer-translator.js +1 -1
  556. package/core/server/services/member-welcome-emails/service.js +1 -1
  557. package/core/server/services/members/account-service.js +3 -3
  558. package/core/server/services/members/api.js +1 -1
  559. package/core/server/services/members/import-export/import/importer.js +25 -16
  560. package/core/server/services/members/import-export/import/spool.js +11 -15
  561. package/core/server/services/members/import-export/index.js +11 -8
  562. package/core/server/services/members/jobs/index.js +1 -1
  563. package/core/server/services/members/jobs/members-import-job.js +18 -0
  564. package/core/server/services/members/member-avatar.js +18 -0
  565. package/core/server/services/members/members-api/controllers/member-controller.js +2 -2
  566. package/core/server/services/members/members-api/controllers/router-controller.js +7 -2
  567. package/core/server/services/members/members-api/controllers/well-known-controller.js +2 -1
  568. package/core/server/services/members/members-api/members-api.js +4 -4
  569. package/core/server/services/members/members-api/repositories/event-repository.js +40 -1
  570. package/core/server/services/members/members-api/repositories/member-repository.js +55 -17
  571. package/core/server/services/members/members-api/repositories/product-repository.js +1 -1
  572. package/core/server/services/members/members-api/services/member-bread-service.js +19 -19
  573. package/core/server/services/members/members-api/services/token-service.js +11 -12
  574. package/core/server/services/members/middleware.js +9 -2
  575. package/core/server/services/members/request-integrity-token-provider.js +2 -1
  576. package/core/server/services/members/service.js +7 -2
  577. package/core/server/services/members/stats/members-stats.js +2 -2
  578. package/core/server/services/members-events/event-storage.js +2 -2
  579. package/core/server/services/members-metafields/access.js +31 -20
  580. package/core/server/services/members-metafields/actions.js +24 -2
  581. package/core/server/services/members-metafields/bindings-service.js +5 -5
  582. package/core/server/services/members-metafields/codec.js +9 -2
  583. package/core/server/services/members-metafields/definitions-service.js +57 -52
  584. package/core/server/services/members-metafields/index.js +3 -2
  585. package/core/server/services/members-metafields/models.js +2 -0
  586. package/core/server/services/members-metafields/queries.js +45 -11
  587. package/core/server/services/members-metafields/schema.js +51 -1
  588. package/core/server/services/members-metafields/serializers.js +1 -0
  589. package/core/server/services/members-metafields/values-service.js +132 -21
  590. package/core/server/services/mentions/mention-discovery-service.js +1 -1
  591. package/core/server/services/mentions/mention-sending-service.js +3 -3
  592. package/core/server/services/mentions/mention.js +4 -5
  593. package/core/server/services/mentions/mentions-api.js +4 -1
  594. package/core/server/services/mentions-jobs/job-service.js +0 -28
  595. package/core/server/services/milestones/milestones-service.js +1 -1
  596. package/core/server/services/newsletters/newsletters-service.js +1 -1
  597. package/core/server/services/notifications/notifications.js +3 -3
  598. package/core/server/services/oembed/oembed-service.js +115 -14
  599. package/core/server/services/permissions/can-this.js +1 -2
  600. package/core/server/services/post-scheduling/post-scheduling.js +8 -1
  601. package/core/server/services/posts/post-scheduling.js +27 -0
  602. package/core/server/services/settings/settings-bread-service.js +3 -3
  603. package/core/server/services/settings/settings-utils.js +1 -1
  604. package/core/server/services/settings-helpers/settings-helpers.js +1 -1
  605. package/core/server/services/staff/staff-service-emails.js +14 -10
  606. package/core/server/services/stats/posts-stats-service.js +10 -10
  607. package/core/server/services/stats/referrers-stats-service.js +1 -1
  608. package/core/server/services/stats/stats-service.js +12 -3
  609. package/core/server/services/stats/subscription-stats-service.js +3 -3
  610. package/core/server/services/stats/utils/tinybird.js +8 -1
  611. package/core/server/services/stripe/stripe-api.js +3 -3
  612. package/core/server/services/stripe/stripe-migrations.js +6 -6
  613. package/core/server/services/themes/storage.js +21 -26
  614. package/core/server/services/themes/theme-storage.js +2 -2
  615. package/core/server/services/tier-checkout-config/service.js +17 -1
  616. package/core/server/services/tiers/tier.js +15 -15
  617. package/core/server/services/tinybird/tinybird-service.js +1 -0
  618. package/core/server/services/tinybird-sync/get-ingest-config.js +39 -0
  619. package/core/server/services/tinybird-sync/index.js +31 -0
  620. package/core/server/services/tinybird-sync/sync-table-to-tinybird.js +149 -0
  621. package/core/server/services/tinybird-sync/tinybird-sync-service.js +67 -0
  622. package/core/server/services/update-check/update-check-service.js +3 -3
  623. package/core/server/services/webhooks/serialize.js +1 -1
  624. package/core/server/web/api/app.js +0 -5
  625. package/core/server/web/api/endpoints/admin/routes.js +33 -34
  626. package/core/server/web/api/middleware/upload.js +29 -2
  627. package/core/server/web/parent/middleware/index.js +1 -1
  628. package/core/server/web/parent/middleware/log-request.js +5 -0
  629. package/core/server/web/parent/middleware/queue-request.js +104 -59
  630. package/core/server/web/shared/middleware/api/spam-prevention.js +2 -2
  631. package/core/server/web/well-known.js +12 -16
  632. package/core/shared/config/defaults.json +7 -3
  633. package/core/shared/custom-theme-settings-cache/custom-theme-settings-service.js +1 -1
  634. package/core/shared/{flush-logs.js → flush.js} +7 -3
  635. package/core/shared/labs.js +5 -2
  636. package/core/shared/settings-cache/cache-manager.js +1 -1
  637. package/core/shared/timing-safe-string-equal.js +26 -0
  638. package/nodemon.json +1 -1
  639. package/package.json +47 -48
  640. package/patches/@elastic__elasticsearch@8.19.2.patch +67 -0
  641. package/patches/juice@11.1.1.patch +46 -0
  642. package/pnpm-lock.yaml +571 -2107
  643. package/pnpm-workspace.yaml +38 -28
  644. package/scripts/prune.mts +70 -3
  645. package/tsconfig.json +1 -1
  646. package/components/tryghost-adapter-base-scheduling-0.2.3.tgz +0 -0
  647. package/core/built/admin/assets/Combination-B0l4MKVh.js +0 -41
  648. package/core/built/admin/assets/RadialBarChart-JAKoS4KT.js +0 -1
  649. package/core/built/admin/assets/_baseAssignValue-C_vooEQc.js +0 -1
  650. package/core/built/admin/assets/about-C1C3s5-g.js +0 -1
  651. package/core/built/admin/assets/accordion-CxGsDKwa.js +0 -1
  652. package/core/built/admin/assets/account-migration-CbUhW6gk.js +0 -1
  653. package/core/built/admin/assets/action-list-C4v0-du8.js +0 -1
  654. package/core/built/admin/assets/activitypub/avatar-DVJF5bxP.js +0 -261
  655. package/core/built/admin/assets/activitypub/layout-BL4_jtuV.js +0 -1
  656. package/core/built/admin/assets/activitypub/routes-DdyY9uFF.js +0 -7181
  657. package/core/built/admin/assets/activitypub/settings-B6EEcVkW.js +0 -315
  658. package/core/built/admin/assets/activitypub/tabs-DLhZtVde.js +0 -1083
  659. package/core/built/admin/assets/activitypub/users-inweyKL5.js +0 -1499
  660. package/core/built/admin/assets/add-integration-modal-BT_onDJy.js +0 -1
  661. package/core/built/admin/assets/add-newsletter-modal-Cx1kQpiY.js +0 -1
  662. package/core/built/admin/assets/add-recommendation-modal-B5nvAhvr.js +0 -1
  663. package/core/built/admin/assets/analytics-DjoJWPI7.js +0 -1
  664. package/core/built/admin/assets/announcement-bar-modal-Dwd0EGFP.js +0 -1
  665. package/core/built/admin/assets/api-keys-BoeacM-s.js +0 -1
  666. package/core/built/admin/assets/automated-emails-BLesE41L.js +0 -1
  667. package/core/built/admin/assets/automations-BN4u3GR8.js +0 -1
  668. package/core/built/admin/assets/automations-C-ZTUwW3.js +0 -1
  669. package/core/built/admin/assets/avatar-flipboard-C6Kj3Awu.js +0 -1
  670. package/core/built/admin/assets/bluesky-sharing-vzh-oPXL.js +0 -1
  671. package/core/built/admin/assets/box-CdfQAP_F.js +0 -1
  672. package/core/built/admin/assets/brand-icon-CrIGOA3Z.js +0 -1
  673. package/core/built/admin/assets/breadcrumb-CaLk2b7D.js +0 -1
  674. package/core/built/admin/assets/build-CsiH26uS.js +0 -1
  675. package/core/built/admin/assets/button-Dvcv1QSR.js +0 -1
  676. package/core/built/admin/assets/calendar-Bl9RLcZX.js +0 -1
  677. package/core/built/admin/assets/card--VNbfgo3.js +0 -1
  678. package/core/built/admin/assets/chart-BrhA41Zi.js +0 -63
  679. package/core/built/admin/assets/chart-helpers-FHywU0pj.js +0 -1
  680. package/core/built/admin/assets/checkbox-BtayFtjg.js +0 -1
  681. package/core/built/admin/assets/chunk.524.e6975095fccdf22d90f8.js +0 -32
  682. package/core/built/admin/assets/chunk.582.98b485f9b2802f540897.js +0 -34
  683. package/core/built/admin/assets/code-editor-view-C3ZfoF1X.js +0 -1
  684. package/core/built/admin/assets/code-editor-view-CAyRWy1s.js +0 -1
  685. package/core/built/admin/assets/color-picker-G4kGR7rp.js +0 -3
  686. package/core/built/admin/assets/color-picker-field-DQFVTNnT.js +0 -1
  687. package/core/built/admin/assets/combobox-BnYzgEB4.js +0 -1
  688. package/core/built/admin/assets/command-C_vyTikI.js +0 -1
  689. package/core/built/admin/assets/comments-aBrxfnZf.js +0 -1
  690. package/core/built/admin/assets/components-CwL6a6As-B0E0-NBJ.js +0 -1
  691. package/core/built/admin/assets/confirmation-context-DwXX_Y5h.js +0 -1
  692. package/core/built/admin/assets/container-BuQG1wuP.js +0 -1
  693. package/core/built/admin/assets/content-api-modal-D2G0nJP6.js +0 -1
  694. package/core/built/admin/assets/context-menu-DOVB6yaz.js +0 -1
  695. package/core/built/admin/assets/copy-field-DCJwh9qf.js +0 -1
  696. package/core/built/admin/assets/create-ghost-browse-value-source-5C53jJaX.js +0 -1
  697. package/core/built/admin/assets/custom-integration-modal-AbJGVyKc.js +0 -1
  698. package/core/built/admin/assets/data-list-CA2jYGPq.js +0 -1
  699. package/core/built/admin/assets/date-range-select-BY3K-ukj.js +0 -1
  700. package/core/built/admin/assets/design-and-theme-modal-BvEy4_pC.js +0 -2
  701. package/core/built/admin/assets/detail-page-Dnv-CdR1.js +0 -1
  702. package/core/built/admin/assets/dirty-confirm-dialog-DVPuGz3U.js +0 -1
  703. package/core/built/admin/assets/disabled-sources-indicator-Cy7Zp4c8.js +0 -1
  704. package/core/built/admin/assets/dist-4m6pHdc0.js +0 -23
  705. package/core/built/admin/assets/dist-8YJUlf3B.js +0 -1
  706. package/core/built/admin/assets/dist-CZgIBXQN.js +0 -1
  707. package/core/built/admin/assets/dist-CiHx7vA5.js +0 -6
  708. package/core/built/admin/assets/dist-DIC8yz5C.js +0 -1
  709. package/core/built/admin/assets/dist-Dcsslyo72.js +0 -1
  710. package/core/built/admin/assets/dist-Dgt2cr6a.js +0 -1
  711. package/core/built/admin/assets/dist-ECAUrdGc.js +0 -1
  712. package/core/built/admin/assets/dist-JLOy8o0Q.js +0 -1
  713. package/core/built/admin/assets/dist-Ndy-PuGN.js +0 -1
  714. package/core/built/admin/assets/dist-Z97pCNqS.js +0 -11
  715. package/core/built/admin/assets/domain-Dl61QGuk.js +0 -1
  716. package/core/built/admin/assets/dropzone-Dtz5Rmjt.js +0 -5
  717. package/core/built/admin/assets/edit-profile-DNJSMDwm.js +0 -1
  718. package/core/built/admin/assets/editor-DbAen9zf.js +0 -8
  719. package/core/built/admin/assets/editor-screen-BFWThIai.js +0 -26
  720. package/core/built/admin/assets/email-sending-status-context-CWDOD1FN.js +0 -1
  721. package/core/built/admin/assets/email-sending-status-provider-DCPkDICt.js +0 -1
  722. package/core/built/admin/assets/embed-signup-form-modal-DGqsORxS.js +0 -8
  723. package/core/built/admin/assets/empty-indicator-D9QdpuNX.js +0 -1
  724. package/core/built/admin/assets/en-B1jX3WMs.js +0 -1
  725. package/core/built/admin/assets/esm-CXo5SEPy.js +0 -2
  726. package/core/built/admin/assets/explore-nnRr1Fja.js +0 -1
  727. package/core/built/admin/assets/feature-flag-overrides-context-DQjdJFAk.js +0 -1
  728. package/core/built/admin/assets/feature-image-placeholder-BrIHmPs8.js +0 -1
  729. package/core/built/admin/assets/feed-BNUcNu-W.js +0 -1
  730. package/core/built/admin/assets/feedback-DJ4Zb9rZ.js +0 -1
  731. package/core/built/admin/assets/field-C93_Mg6j.js +0 -1
  732. package/core/built/admin/assets/filter-bar-Da1qxybu.js +0 -1
  733. package/core/built/admin/assets/filter-sources-CGJb4C5r.js +0 -1
  734. package/core/built/admin/assets/filters--kKP-EC8.js +0 -1
  735. package/core/built/admin/assets/filters-DxA_a4FP.js +0 -1
  736. package/core/built/admin/assets/first-promoter-modal-BYDtrz2S.js +0 -1
  737. package/core/built/admin/assets/focus-koenig-editor-on-bottom-click-BbSnGOtK.js +0 -1
  738. package/core/built/admin/assets/framework-provider-DqI25epG.js +0 -4
  739. package/core/built/admin/assets/gift-link-modal-B7u5bD4e.js +0 -1
  740. package/core/built/admin/assets/global-data-context-gAMDH9u1.js +0 -1
  741. package/core/built/admin/assets/grid-Dj29PY05.js +0 -1
  742. package/core/built/admin/assets/growth-Cd1uO9d2.js +0 -1
  743. package/core/built/admin/assets/growth-aG32xfdE.js +0 -3
  744. package/core/built/admin/assets/heading-Dh5SFVjL.js +0 -1
  745. package/core/built/admin/assets/history-modal-Df8lW8h-.js +0 -1
  746. package/core/built/admin/assets/hooks-Cy_-oZ4o.js +0 -2
  747. package/core/built/admin/assets/html-field-DA4eU7eq.js +0 -1
  748. package/core/built/admin/assets/iframe-buffering-B2OKJzbz.js +0 -1
  749. package/core/built/admin/assets/images-KXmyO3Ss.js +0 -1
  750. package/core/built/admin/assets/index-BHHXtR5C.css +0 -2
  751. package/core/built/admin/assets/index-CgMCwsxN.js +0 -4
  752. package/core/built/admin/assets/index.es-CY6-yuw9.js +0 -1
  753. package/core/built/admin/assets/inline-BWSs_VzR.js +0 -1
  754. package/core/built/admin/assets/input-group-BE8rM2y1.js +0 -1
  755. package/core/built/admin/assets/input-surface-BsrIZeSF.js +0 -1
  756. package/core/built/admin/assets/integration-header-Bm6IDb1A.js +0 -1
  757. package/core/built/admin/assets/invite-user-modal-B4CuNcx4.js +0 -1
  758. package/core/built/admin/assets/koenig-loader-BeM5rFPX.js +0 -2
  759. package/core/built/admin/assets/kpi-card-B21aToe8.js +0 -1
  760. package/core/built/admin/assets/kpi-card-pz6Wv4Ae.js +0 -1
  761. package/core/built/admin/assets/kpi-helpers-Dq5jelmP.js +0 -1
  762. package/core/built/admin/assets/kpi-tabs-DEZHpKUt.js +0 -1
  763. package/core/built/admin/assets/label-OLCzze8N.js +0 -1
  764. package/core/built/admin/assets/label-picker-BigOvMPV.js +0 -1
  765. package/core/built/admin/assets/labels-Dr0SgUQD.js +0 -1
  766. package/core/built/admin/assets/layout-DUTL8SH5.js +0 -1
  767. package/core/built/admin/assets/lib-7QPTI0FS.js +0 -1
  768. package/core/built/admin/assets/limit-service-BhiEvqcP.js +0 -20
  769. package/core/built/admin/assets/link-helpers-BRAg9SCj.js +0 -1
  770. package/core/built/admin/assets/links-BDHPTlyj.js +0 -1
  771. package/core/built/admin/assets/list-page-BucXJ0hi.js +0 -1
  772. package/core/built/admin/assets/luxon-D1RVjjpq.js +0 -1
  773. package/core/built/admin/assets/member-custom-fields-TRTHCAz9.js +0 -1
  774. package/core/built/admin/assets/member-detail-b6dRwc3C.js +0 -1
  775. package/core/built/admin/assets/members-Czt5lJSc.js +0 -4
  776. package/core/built/admin/assets/modal-page-xCivTMvI.js +0 -1
  777. package/core/built/admin/assets/moderation-ZWefD9uH.js +0 -1
  778. package/core/built/admin/assets/multi-select-combobox-CT13MTo-.js +0 -1
  779. package/core/built/admin/assets/navigation-modal-C8FEhBK5.js +0 -1
  780. package/core/built/admin/assets/newsletter-5VYW4RyJ.js +0 -1
  781. package/core/built/admin/assets/newsletter-detail-modal-ChjC0ZqH.js +0 -1
  782. package/core/built/admin/assets/newsletter-emails-DZH6I-PY.js +0 -1
  783. package/core/built/admin/assets/newsletters-DOC9KBcX.js +0 -1
  784. package/core/built/admin/assets/note-DIV-Pojr.js +0 -1
  785. package/core/built/admin/assets/notifications-s20-H49V.js +0 -1
  786. package/core/built/admin/assets/nql-lang-CaWrLesS.js +0 -19
  787. package/core/built/admin/assets/offers-container-modal-BmG5M5Tv.js +0 -1
  788. package/core/built/admin/assets/onboarding-CUuy9unR.js +0 -1
  789. package/core/built/admin/assets/onboarding-pXyct0Jm.js +0 -1
  790. package/core/built/admin/assets/onboarding-route-CK4pcXoR.js +0 -1
  791. package/core/built/admin/assets/overview-CaPsciMs.js +0 -1
  792. package/core/built/admin/assets/overview-a8GfcsKX.js +0 -1
  793. package/core/built/admin/assets/page-header-DM_KyoFI.js +0 -1
  794. package/core/built/admin/assets/pagemenu-vgZVUVKR.js +0 -1
  795. package/core/built/admin/assets/pages-route-BzKZYdV5.js +0 -1
  796. package/core/built/admin/assets/papaparse.min-cQwnxGCG.js +0 -10
  797. package/core/built/admin/assets/pintura-modal-DExCF1ii.js +0 -1
  798. package/core/built/admin/assets/portal-frame-Cqanidq4.js +0 -1
  799. package/core/built/admin/assets/portal-modal-oinBgA27.js +0 -1
  800. package/core/built/admin/assets/post-analytics-C5oJ1dWV.js +0 -1
  801. package/core/built/admin/assets/post-analytics-context-D0Mw-Pmv.js +0 -1
  802. package/core/built/admin/assets/post-analytics-header-OATo3X_r.js +0 -1
  803. package/core/built/admin/assets/post-analytics-provider-tOpIVGT5.js +0 -1
  804. package/core/built/admin/assets/post-share-modal-DvhC1XgV.js +0 -1
  805. package/core/built/admin/assets/posts-list-screen-o4ZjbgS3.js +0 -2
  806. package/core/built/admin/assets/posts-route-9F--xdIb.js +0 -1
  807. package/core/built/admin/assets/preferences--vNubsqD.js +0 -5
  808. package/core/built/admin/assets/preview-chrome-BljUBlOk.js +0 -1
  809. package/core/built/admin/assets/preview-modal-YYbzlYdO.js +0 -1
  810. package/core/built/admin/assets/profile-BllKV3dR.js +0 -1
  811. package/core/built/admin/assets/prop-types-DeUPn3oD.js +0 -1
  812. package/core/built/admin/assets/radio-group-DL8GI8rt.js +0 -1
  813. package/core/built/admin/assets/react-Bb3IsNbi.js +0 -1
  814. package/core/built/admin/assets/rolldown-runtime-DAXXjFlN.js +0 -1
  815. package/core/built/admin/assets/router-provider-BSvTXgZY.js +0 -1
  816. package/core/built/admin/assets/select-v5YbA3Mw.js +0 -1
  817. package/core/built/admin/assets/settings-PEsZupw1.js +0 -4
  818. package/core/built/admin/assets/settings-breadcrumbs-NwPnCTC7.js +0 -1
  819. package/core/built/admin/assets/settings-u_s1CRkr.js +0 -1
  820. package/core/built/admin/assets/shade-app-CcS3f8MZ-vwURazk8.js +0 -3
  821. package/core/built/admin/assets/share-modal-SskCmVGL.js +0 -1
  822. package/core/built/admin/assets/skeleton-Ce9GgUpf.js +0 -1
  823. package/core/built/admin/assets/slack-modal-XxSJiYgo.js +0 -1
  824. package/core/built/admin/assets/sort-button-Cx1KtINE.js +0 -1
  825. package/core/built/admin/assets/source-icon-Bdp9Im_5.js +0 -1
  826. package/core/built/admin/assets/stack-B2eszIiq.js +0 -1
  827. package/core/built/admin/assets/stats-view-W2g6Jsd-.js +0 -1
  828. package/core/built/admin/assets/step-1-BQYzvBzr.js +0 -1
  829. package/core/built/admin/assets/step-2-xES32xJV.js +0 -1
  830. package/core/built/admin/assets/step-3-DA_XK5kW.js +0 -2
  831. package/core/built/admin/assets/stripe-button-CVsLHelt.js +0 -1
  832. package/core/built/admin/assets/stripe-connect-modal-ClmLOMGS.js +0 -1
  833. package/core/built/admin/assets/switch-CI4gLWqb.js +0 -1
  834. package/core/built/admin/assets/table-BenqVupI.js +0 -1
  835. package/core/built/admin/assets/tabs-eBBlxPp8.js +0 -1
  836. package/core/built/admin/assets/tag-detail-Ce8Se2qd.js +0 -2
  837. package/core/built/admin/assets/tag-picker-C3UR-uJ-.js +0 -1
  838. package/core/built/admin/assets/tags-B-kJxCs7.js +0 -1
  839. package/core/built/admin/assets/testimonials-modal-9Q6fT06V.js +0 -1
  840. package/core/built/admin/assets/text-BQDSDsKs.js +0 -1
  841. package/core/built/admin/assets/textarea-DJ1Q5V39.js +0 -1
  842. package/core/built/admin/assets/tier-detail-modal-CDyYdqK7.js +0 -1
  843. package/core/built/admin/assets/toggle-group-CviIkyok.js +0 -1
  844. package/core/built/admin/assets/topic-filter-I2jCBGxm.js +0 -1
  845. package/core/built/admin/assets/transistor-modal-p53u3W8y.js +0 -1
  846. package/core/built/admin/assets/trend-badge-CideVzQd.js +0 -1
  847. package/core/built/admin/assets/types-uYQ1HgqL.js +0 -1
  848. package/core/built/admin/assets/unsplash-modal-DY8UcKcE.js +0 -1
  849. package/core/built/admin/assets/use-analytics-data-DAIGcr2f.js +0 -1
  850. package/core/built/admin/assets/use-filter-params-JkZhIS8L.js +0 -1
  851. package/core/built/admin/assets/use-filterable-api-BVEVMrhZ.js +0 -1
  852. package/core/built/admin/assets/use-form-vRjI0Kwk.js +0 -1
  853. package/core/built/admin/assets/use-growth-stats-937CUj6j.js +0 -1
  854. package/core/built/admin/assets/use-host-limits-D0Dv3tKA.js +0 -1
  855. package/core/built/admin/assets/use-limiter-CohWfzvK.js +0 -2
  856. package/core/built/admin/assets/use-navigate-with-base-path-BkxcPj5l.js +0 -1
  857. package/core/built/admin/assets/use-pintura-config-xgytjU35.js +0 -1
  858. package/core/built/admin/assets/use-pintura-editor-CaV1mbfO.js +0 -1
  859. package/core/built/admin/assets/use-post-referrers-BCQI7fDg.js +0 -1
  860. package/core/built/admin/assets/use-query-params-BfzuqbcD.js +0 -1
  861. package/core/built/admin/assets/use-reply-chain-data-CYRhoaxY.js +0 -1
  862. package/core/built/admin/assets/use-router-history-entry-NOKcd--l.js +0 -1
  863. package/core/built/admin/assets/use-setting-group-bLKMwoBT.js +0 -1
  864. package/core/built/admin/assets/use-settings-navigation-B-qrriKD.js +0 -1
  865. package/core/built/admin/assets/use-simple-pagination-CNPd6Rf6.js +0 -1
  866. package/core/built/admin/assets/use-staff-users-pRIMIyiW.js +0 -1
  867. package/core/built/admin/assets/use-tinybird-query-CmdbCS9X.js +0 -1
  868. package/core/built/admin/assets/use-tinybird-token-KLne235s.js +0 -1
  869. package/core/built/admin/assets/use-unsaved-changes-guard-7-ug0JdH.js +0 -1
  870. package/core/built/admin/assets/use-upgrade-route-Dm_qqKr0.js +0 -1
  871. package/core/built/admin/assets/user-detail-modal-D3KlGYv-.js +0 -1
  872. package/core/built/admin/assets/virtual-list-CZ3RK2Yf.js +0 -1
  873. package/core/built/admin/assets/web-ClEJsCAj.js +0 -2
  874. package/core/built/admin/assets/web-X9rdnrtq.js +0 -1
  875. package/core/built/admin/assets/zapier-modal-DfVhV17j.js +0 -1
  876. package/core/frontend/services/sitemap/utils.js +0 -17
  877. package/core/server/services/automations/get-scheduler-idempotency-key.js +0 -13
  878. package/core/server/web/api/testmode/index.js +0 -1
  879. package/core/server/web/api/testmode/jobs/cpu-hog.js +0 -15
  880. package/core/server/web/api/testmode/jobs/graceful-job.js +0 -50
  881. package/core/server/web/api/testmode/jobs/say-hello.js +0 -17
  882. package/core/server/web/api/testmode/routes.js +0 -120
  883. /package/core/built/admin/assets/{chunk.901.4ccc639821020230bcca.js.LICENSE.txt → chunk.972.4b8c97f93d66db15e751.js.LICENSE.txt} +0 -0
@@ -0,0 +1,4946 @@
1
+ import { A as e, S as t, T as n, _ as r, a as i, c as a, d as o, g as s, i as c, l, p as u, r as d, s as f, t as p, u as m, v as h, w as g, x as _ } from "./_react-D4KM8XEu.js";
2
+ import { C as v, c as y, f as b, m as x, o as S, r as C, s as w, t as T } from "./chunk-KS7C4IRE-CTUL98Lc.js";
3
+ import { i as E } from "./users-CSjOwpT9.js";
4
+ import { A as D, B as O, C as k, D as A, G as j, H as M, I as ee, J as N, L as P, M as F, N as I, O as L, P as R, T as te, U as ne, V as re, W as z, _ as ie, b as ae, c as B, g as oe, h as V, i as se, j as ce, m as le, n as ue, o as H, p as U, q as de, r as W, t as fe, v as pe, w as G, x as K, y as me, z as he } from "./use-navigate-with-base-path-B4jZ8hyg.js";
5
+ import { A as ge, C as _e, D as q, F as ve, J as ye, M as be, N as xe, P as Se, Q as Ce, R as we, S as Te, U as Ee, X as De, Z as J, a as Oe, f as ke, j as Ae, p as je, t as Me, x as Ne, y as Pe, z as Fe } from "./use-activity-pub-queries-CYI2QJMs.js";
6
+ import { a as Ie, i as Le, n as Re, r as ze, t as Be } from "./x-B9ptWCds.js";
7
+ import { c as Ve, d as He, i as Ue, l as We, o as Ge, s as Ke, u as Y } from "./content-formatters-D7GWP7nH.js";
8
+ import { a as qe, i as Je, n as Ye, r as Xe, t as Ze } from "./avatar-CRGud8yf.js";
9
+ import { n as Qe, t as $e } from "./onboarding-8vEIwYTH.js";
10
+ import "./onboarding-DYVqbNmp.js";
11
+ //#region ../admin-x-framework/dist/utils/lazy-component.js
12
+ function X(e) {
13
+ return () => e().then(({ default: e }) => ({ Component: e }));
14
+ }
15
+ //#endregion
16
+ //#region src/lib/feature-flags.tsx
17
+ o();
18
+ var Z = v(), et = [], tt = a(void 0), nt = ({ children: e }) => {
19
+ let t = w(), [r, i] = n(() => {
20
+ let e = localStorage.getItem("featureFlags");
21
+ return e ? JSON.parse(e) : rt();
22
+ });
23
+ h(() => {
24
+ let e = it(t.search);
25
+ Object.keys(e).length > 0 && i((t) => {
26
+ let n = {
27
+ ...t,
28
+ ...e
29
+ };
30
+ return localStorage.setItem("featureFlags", JSON.stringify(n)), n;
31
+ });
32
+ }, [t.search]);
33
+ let a = {
34
+ isEnabled: (e) => r[e] ?? !1,
35
+ flags: r,
36
+ allFlags: et
37
+ };
38
+ return /* @__PURE__ */ (0, Z.jsx)(tt.Provider, {
39
+ value: a,
40
+ children: e
41
+ });
42
+ }, rt = () => et.reduce((e, t) => ({
43
+ ...e,
44
+ [t]: !1
45
+ }), {}), it = (e) => {
46
+ let t = new URLSearchParams(e), n = {};
47
+ return et.forEach((e) => {
48
+ let r = t.get(e);
49
+ r === "ON" ? n[e] = !0 : r === "OFF" && (n[e] = !1);
50
+ }), n;
51
+ }, at = () => {
52
+ let e = r(tt);
53
+ if (e === void 0) throw Error("useFeatureFlags must be used within a FeatureFlagsProvider");
54
+ return e;
55
+ }, ot = (e, t) => {
56
+ t?.(e), e.defaultPrevented || e.stopPropagation();
57
+ }, st = H("arrow-left", [["path", {
58
+ d: "m12 19-7-7 7-7",
59
+ key: "1l729n"
60
+ }], ["path", {
61
+ d: "M19 12H5",
62
+ key: "x3x0zl"
63
+ }]]), ct = H("ban", [["circle", {
64
+ cx: "12",
65
+ cy: "12",
66
+ r: "10",
67
+ key: "1mglay"
68
+ }], ["path", {
69
+ d: "M4.929 4.929 19.07 19.071",
70
+ key: "196cmz"
71
+ }]]), lt = H("book-open", [["path", {
72
+ d: "M12 7v14",
73
+ key: "1akyts"
74
+ }], ["path", {
75
+ d: "M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",
76
+ key: "ruj8y"
77
+ }]]), ut = H("chevron-left", [["path", {
78
+ d: "m15 18-6-6 6-6",
79
+ key: "1wnfg3"
80
+ }]]), dt = H("chevron-right", [["path", {
81
+ d: "m9 18 6-6-6-6",
82
+ key: "mthhwq"
83
+ }]]), ft = H("cloud-download", [
84
+ ["path", {
85
+ d: "M12 13v8l-4-4",
86
+ key: "1f5nwf"
87
+ }],
88
+ ["path", {
89
+ d: "m12 21 4-4",
90
+ key: "1lfcce"
91
+ }],
92
+ ["path", {
93
+ d: "M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284",
94
+ key: "ui1hmy"
95
+ }]
96
+ ]), pt = H("ellipsis", [
97
+ ["circle", {
98
+ cx: "12",
99
+ cy: "12",
100
+ r: "1",
101
+ key: "41hilf"
102
+ }],
103
+ ["circle", {
104
+ cx: "19",
105
+ cy: "12",
106
+ r: "1",
107
+ key: "1wjl8i"
108
+ }],
109
+ ["circle", {
110
+ cx: "5",
111
+ cy: "12",
112
+ r: "1",
113
+ key: "1pcz8c"
114
+ }]
115
+ ]), mt = H("external-link", [
116
+ ["path", {
117
+ d: "M15 3h6v6",
118
+ key: "1q9fwt"
119
+ }],
120
+ ["path", {
121
+ d: "M10 14 21 3",
122
+ key: "gplh6r"
123
+ }],
124
+ ["path", {
125
+ d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",
126
+ key: "a6xqqp"
127
+ }]
128
+ ]), ht = H("eye-off", [
129
+ ["path", {
130
+ d: "M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",
131
+ key: "ct8e1f"
132
+ }],
133
+ ["path", {
134
+ d: "M14.084 14.158a3 3 0 0 1-4.242-4.242",
135
+ key: "151rxh"
136
+ }],
137
+ ["path", {
138
+ d: "M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",
139
+ key: "13bj9a"
140
+ }],
141
+ ["path", {
142
+ d: "m2 2 20 20",
143
+ key: "1ooewy"
144
+ }]
145
+ ]), gt = H("image-off", [
146
+ ["line", {
147
+ x1: "2",
148
+ x2: "22",
149
+ y1: "2",
150
+ y2: "22",
151
+ key: "a6p6uj"
152
+ }],
153
+ ["path", {
154
+ d: "M10.41 10.41a2 2 0 1 1-2.83-2.83",
155
+ key: "1bzlo9"
156
+ }],
157
+ ["line", {
158
+ x1: "13.5",
159
+ x2: "6",
160
+ y1: "13.5",
161
+ y2: "21",
162
+ key: "1q0aeu"
163
+ }],
164
+ ["line", {
165
+ x1: "18",
166
+ x2: "21",
167
+ y1: "12",
168
+ y2: "15",
169
+ key: "5mozeu"
170
+ }],
171
+ ["path", {
172
+ d: "M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59",
173
+ key: "mmje98"
174
+ }],
175
+ ["path", {
176
+ d: "M21 15V5a2 2 0 0 0-2-2H9",
177
+ key: "43el77"
178
+ }]
179
+ ]), _t = H("image", [
180
+ ["rect", {
181
+ width: "18",
182
+ height: "18",
183
+ x: "3",
184
+ y: "3",
185
+ rx: "2",
186
+ ry: "2",
187
+ key: "1m3agn"
188
+ }],
189
+ ["circle", {
190
+ cx: "9",
191
+ cy: "9",
192
+ r: "2",
193
+ key: "af1f0g"
194
+ }],
195
+ ["path", {
196
+ d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",
197
+ key: "1xmnt7"
198
+ }]
199
+ ]), vt = H("link", [["path", {
200
+ d: "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",
201
+ key: "1cjeqo"
202
+ }], ["path", {
203
+ d: "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",
204
+ key: "19qd67"
205
+ }]]), yt = H("menu", [
206
+ ["path", {
207
+ d: "M4 5h16",
208
+ key: "1tepv9"
209
+ }],
210
+ ["path", {
211
+ d: "M4 12h16",
212
+ key: "1lakjw"
213
+ }],
214
+ ["path", {
215
+ d: "M4 19h16",
216
+ key: "1djgab"
217
+ }]
218
+ ]), bt = H("message-circle", [["path", {
219
+ d: "M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",
220
+ key: "1sd12s"
221
+ }]]), xt = H("message-square", [["path", {
222
+ d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",
223
+ key: "18887p"
224
+ }]]), St = H("play", [["path", {
225
+ d: "M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",
226
+ key: "10ikf1"
227
+ }]]), Ct = H("refresh-cw", [
228
+ ["path", {
229
+ d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",
230
+ key: "v9h5vc"
231
+ }],
232
+ ["path", {
233
+ d: "M21 3v5h-5",
234
+ key: "1q7to0"
235
+ }],
236
+ ["path", {
237
+ d: "M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",
238
+ key: "3uifl3"
239
+ }],
240
+ ["path", {
241
+ d: "M8 16H3v5",
242
+ key: "1cv678"
243
+ }]
244
+ ]), wt = H("search-x", [
245
+ ["path", {
246
+ d: "m13.5 8.5-5 5",
247
+ key: "1cs55j"
248
+ }],
249
+ ["path", {
250
+ d: "m8.5 8.5 5 5",
251
+ key: "a8mexj"
252
+ }],
253
+ ["circle", {
254
+ cx: "11",
255
+ cy: "11",
256
+ r: "8",
257
+ key: "4ej97u"
258
+ }],
259
+ ["path", {
260
+ d: "m21 21-4.3-4.3",
261
+ key: "1qie3q"
262
+ }]
263
+ ]), Tt = H("settings-2", [
264
+ ["path", {
265
+ d: "M14 17H5",
266
+ key: "gfn3mx"
267
+ }],
268
+ ["path", {
269
+ d: "M19 7h-9",
270
+ key: "6i9tg"
271
+ }],
272
+ ["circle", {
273
+ cx: "17",
274
+ cy: "17",
275
+ r: "3",
276
+ key: "18b49y"
277
+ }],
278
+ ["circle", {
279
+ cx: "7",
280
+ cy: "7",
281
+ r: "3",
282
+ key: "dfmy0x"
283
+ }]
284
+ ]), Et = H("settings", [["path", {
285
+ d: "M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",
286
+ key: "1i5ecw"
287
+ }], ["circle", {
288
+ cx: "12",
289
+ cy: "12",
290
+ r: "3",
291
+ key: "1v7zrd"
292
+ }]]), Dt = H("trash-2", [
293
+ ["path", {
294
+ d: "M10 11v6",
295
+ key: "nco0om"
296
+ }],
297
+ ["path", {
298
+ d: "M14 11v6",
299
+ key: "outv1u"
300
+ }],
301
+ ["path", {
302
+ d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",
303
+ key: "miytrc"
304
+ }],
305
+ ["path", {
306
+ d: "M3 6h18",
307
+ key: "d0wm0j"
308
+ }],
309
+ ["path", {
310
+ d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",
311
+ key: "e791ji"
312
+ }]
313
+ ]), Ot = H("triangle-alert", [
314
+ ["path", {
315
+ d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",
316
+ key: "wmoenq"
317
+ }],
318
+ ["path", {
319
+ d: "M12 9v4",
320
+ key: "juzpu7"
321
+ }],
322
+ ["path", {
323
+ d: "M12 17h.01",
324
+ key: "p32p05"
325
+ }]
326
+ ]), kt = H("user-round-minus", [
327
+ ["path", {
328
+ d: "M2 21a8 8 0 0 1 13.292-6",
329
+ key: "bjp14o"
330
+ }],
331
+ ["circle", {
332
+ cx: "10",
333
+ cy: "8",
334
+ r: "5",
335
+ key: "o932ke"
336
+ }],
337
+ ["path", {
338
+ d: "M22 19h-6",
339
+ key: "vcuq98"
340
+ }]
341
+ ]), At = H("user-round-plus", [
342
+ ["path", {
343
+ d: "M2 21a8 8 0 0 1 13.292-6",
344
+ key: "bjp14o"
345
+ }],
346
+ ["circle", {
347
+ cx: "10",
348
+ cy: "8",
349
+ r: "5",
350
+ key: "o932ke"
351
+ }],
352
+ ["path", {
353
+ d: "M19 16v6",
354
+ key: "tddt3s"
355
+ }],
356
+ ["path", {
357
+ d: "M22 19h-6",
358
+ key: "vcuq98"
359
+ }]
360
+ ]);
361
+ //#endregion
362
+ //#region ../../node_modules/.pnpm/@radix-ui+react-focus-guards@1.1.4_@types+react@18.3.31_react@18.3.1/node_modules/@radix-ui/react-focus-guards/dist/index.mjs
363
+ o();
364
+ var jt = 0, Mt = null;
365
+ function Nt() {
366
+ h(() => {
367
+ Mt ||= {
368
+ start: Pt(),
369
+ end: Pt()
370
+ };
371
+ let { start: e, end: t } = Mt;
372
+ return document.body.firstElementChild !== e && document.body.insertAdjacentElement("afterbegin", e), document.body.lastElementChild !== t && document.body.insertAdjacentElement("beforeend", t), jt++, () => {
373
+ jt === 1 && (Mt?.start.remove(), Mt?.end.remove(), Mt = null), jt = Math.max(0, jt - 1);
374
+ };
375
+ }, []);
376
+ }
377
+ function Pt() {
378
+ let e = document.createElement("span");
379
+ return e.setAttribute("data-radix-focus-guard", ""), e.tabIndex = 0, e.style.outline = "none", e.style.opacity = "0", e.style.position = "fixed", e.style.pointerEvents = "none", e;
380
+ }
381
+ //#endregion
382
+ //#region ../../node_modules/.pnpm/@radix-ui+react-focus-scope@1.1.11_@types+react-dom@18.3.7_@types+react@18.3.31__@types_3d67843e15cde1f59ec8940982ecbaf3/node_modules/@radix-ui/react-focus-scope/dist/index.mjs
383
+ o();
384
+ var Ft = "focusScope.autoFocusOnMount", It = "focusScope.autoFocusOnUnmount", Lt = {
385
+ bubbles: !1,
386
+ cancelable: !0
387
+ }, Rt = "FocusScope", zt = m((e, t) => {
388
+ let { loop: r = !1, trapped: i = !1, onMountAutoFocus: a, onUnmountAutoFocus: o, ...c } = e, [l, u] = n(null), d = A(a), f = A(o), p = g(null), m = I(t, u), _ = g({
389
+ paused: !1,
390
+ pause() {
391
+ this.paused = !0;
392
+ },
393
+ resume() {
394
+ this.paused = !1;
395
+ }
396
+ }).current;
397
+ h(() => {
398
+ if (i) {
399
+ let e = function(e) {
400
+ if (_.paused || !l) return;
401
+ let t = e.target;
402
+ l.contains(t) ? p.current = t : Kt(p.current, { select: !0 });
403
+ }, t = function(e) {
404
+ if (_.paused || !l) return;
405
+ let t = e.relatedTarget;
406
+ t !== null && (l.contains(t) || Kt(p.current, { select: !0 }));
407
+ }, n = function(e) {
408
+ if (document.activeElement === document.body) for (let t of e) t.removedNodes.length > 0 && Kt(l);
409
+ };
410
+ document.addEventListener("focusin", e), document.addEventListener("focusout", t);
411
+ let r = new MutationObserver(n);
412
+ return l && r.observe(l, {
413
+ childList: !0,
414
+ subtree: !0
415
+ }), () => {
416
+ document.removeEventListener("focusin", e), document.removeEventListener("focusout", t), r.disconnect();
417
+ };
418
+ }
419
+ }, [
420
+ i,
421
+ l,
422
+ _.paused
423
+ ]), h(() => {
424
+ if (l) {
425
+ qt.add(_);
426
+ let e = document.activeElement;
427
+ if (!l.contains(e)) {
428
+ let t = new CustomEvent(Ft, Lt);
429
+ l.addEventListener(Ft, d), l.dispatchEvent(t), t.defaultPrevented || (Bt(Xt(Ht(l)), { select: !0 }), document.activeElement === e && Kt(l));
430
+ }
431
+ return () => {
432
+ l.removeEventListener(Ft, d), setTimeout(() => {
433
+ let t = new CustomEvent(It, Lt);
434
+ l.addEventListener(It, f), l.dispatchEvent(t), t.defaultPrevented || Kt(e ?? document.body, { select: !0 }), l.removeEventListener(It, f), qt.remove(_);
435
+ }, 0);
436
+ };
437
+ }
438
+ }, [
439
+ l,
440
+ d,
441
+ f,
442
+ _
443
+ ]);
444
+ let v = s((e) => {
445
+ if (!r && !i || _.paused) return;
446
+ let t = e.key === "Tab" && !e.altKey && !e.ctrlKey && !e.metaKey, n = document.activeElement;
447
+ if (t && n) {
448
+ let t = e.currentTarget, [i, a] = Vt(t);
449
+ i && a ? !e.shiftKey && n === a ? (e.preventDefault(), r && Kt(i, { select: !0 })) : e.shiftKey && n === i && (e.preventDefault(), r && Kt(a, { select: !0 })) : n === t && e.preventDefault();
450
+ }
451
+ }, [
452
+ r,
453
+ i,
454
+ _.paused
455
+ ]);
456
+ return /* @__PURE__ */ (0, Z.jsx)(L.div, {
457
+ tabIndex: -1,
458
+ ...c,
459
+ ref: m,
460
+ onKeyDown: v
461
+ });
462
+ });
463
+ zt.displayName = Rt;
464
+ function Bt(e, { select: t = !1 } = {}) {
465
+ let n = document.activeElement;
466
+ for (let r of e) if (Kt(r, { select: t }), document.activeElement !== n) return;
467
+ }
468
+ function Vt(e) {
469
+ let t = Ht(e);
470
+ return [Ut(t, e), Ut(t.reverse(), e)];
471
+ }
472
+ function Ht(e) {
473
+ let t = [], n = document.createTreeWalker(e, NodeFilter.SHOW_ELEMENT, { acceptNode: (e) => {
474
+ let t = e.tagName === "INPUT" && e.type === "hidden";
475
+ return e.disabled || e.hidden || t ? NodeFilter.FILTER_SKIP : e.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
476
+ } });
477
+ for (; n.nextNode();) t.push(n.currentNode);
478
+ return t;
479
+ }
480
+ function Ut(e, t) {
481
+ for (let n of e) if (!Wt(n, { upTo: t })) return n;
482
+ }
483
+ function Wt(e, { upTo: t }) {
484
+ if (getComputedStyle(e).visibility === "hidden") return !0;
485
+ for (; e;) {
486
+ if (t !== void 0 && e === t) return !1;
487
+ if (getComputedStyle(e).display === "none") return !0;
488
+ e = e.parentElement;
489
+ }
490
+ return !1;
491
+ }
492
+ function Gt(e) {
493
+ return e instanceof HTMLInputElement && "select" in e;
494
+ }
495
+ function Kt(e, { select: t = !1 } = {}) {
496
+ if (e && e.focus) {
497
+ let n = document.activeElement;
498
+ e.focus({ preventScroll: !0 }), e !== n && Gt(e) && t && e.select();
499
+ }
500
+ }
501
+ var qt = Jt();
502
+ function Jt() {
503
+ let e = [];
504
+ return {
505
+ add(t) {
506
+ let n = e[0];
507
+ t !== n && n?.pause(), e = Yt(e, t), e.unshift(t);
508
+ },
509
+ remove(t) {
510
+ e = Yt(e, t), e[0]?.resume();
511
+ }
512
+ };
513
+ }
514
+ function Yt(e, t) {
515
+ let n = [...e], r = n.indexOf(t);
516
+ return r !== -1 && n.splice(r, 1), n;
517
+ }
518
+ function Xt(e) {
519
+ return e.filter((e) => e.tagName !== "A");
520
+ }
521
+ //#endregion
522
+ //#region ../../node_modules/.pnpm/aria-hidden@1.2.6/node_modules/aria-hidden/dist/es2015/index.js
523
+ var Zt = function(e) {
524
+ return typeof document > "u" ? null : (Array.isArray(e) ? e[0] : e).ownerDocument.body;
525
+ }, Qt = /* @__PURE__ */ new WeakMap(), $t = /* @__PURE__ */ new WeakMap(), en = {}, tn = 0, nn = function(e) {
526
+ return e && (e.host || nn(e.parentNode));
527
+ }, rn = function(e, t) {
528
+ return t.map(function(t) {
529
+ if (e.contains(t)) return t;
530
+ var n = nn(t);
531
+ return n && e.contains(n) ? n : (console.error("aria-hidden", t, "in not contained inside", e, ". Doing nothing"), null);
532
+ }).filter(function(e) {
533
+ return !!e;
534
+ });
535
+ }, an = function(e, t, n, r) {
536
+ var i = rn(t, Array.isArray(e) ? e : [e]);
537
+ en[n] || (en[n] = /* @__PURE__ */ new WeakMap());
538
+ var a = en[n], o = [], s = /* @__PURE__ */ new Set(), c = new Set(i), l = function(e) {
539
+ !e || s.has(e) || (s.add(e), l(e.parentNode));
540
+ };
541
+ i.forEach(l);
542
+ var u = function(e) {
543
+ !e || c.has(e) || Array.prototype.forEach.call(e.children, function(e) {
544
+ if (s.has(e)) u(e);
545
+ else try {
546
+ var t = e.getAttribute(r), i = t !== null && t !== "false", c = (Qt.get(e) || 0) + 1, l = (a.get(e) || 0) + 1;
547
+ Qt.set(e, c), a.set(e, l), o.push(e), c === 1 && i && $t.set(e, !0), l === 1 && e.setAttribute(n, "true"), i || e.setAttribute(r, "true");
548
+ } catch (t) {
549
+ console.error("aria-hidden: cannot operate on ", e, t);
550
+ }
551
+ });
552
+ };
553
+ return u(t), s.clear(), tn++, function() {
554
+ o.forEach(function(e) {
555
+ var t = Qt.get(e) - 1, i = a.get(e) - 1;
556
+ Qt.set(e, t), a.set(e, i), t || ($t.has(e) || e.removeAttribute(r), $t.delete(e)), i || e.removeAttribute(n);
557
+ }), tn--, tn || (Qt = /* @__PURE__ */ new WeakMap(), Qt = /* @__PURE__ */ new WeakMap(), $t = /* @__PURE__ */ new WeakMap(), en = {});
558
+ };
559
+ }, on = function(e, t, n) {
560
+ n === void 0 && (n = "data-aria-hidden");
561
+ var r = Array.from(Array.isArray(e) ? e : [e]), i = t || Zt(e);
562
+ return i ? (r.push.apply(r, Array.from(i.querySelectorAll("[aria-live], script"))), an(r, i, n, "aria-hidden")) : function() {
563
+ return null;
564
+ };
565
+ }, Q = function() {
566
+ return Q = Object.assign || function(e) {
567
+ for (var t, n = 1, r = arguments.length; n < r; n++) for (var i in t = arguments[n], t) Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]);
568
+ return e;
569
+ }, Q.apply(this, arguments);
570
+ };
571
+ function sn(e, t) {
572
+ var n = {};
573
+ for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && t.indexOf(r) < 0 && (n[r] = e[r]);
574
+ if (e != null && typeof Object.getOwnPropertySymbols == "function") for (var i = 0, r = Object.getOwnPropertySymbols(e); i < r.length; i++) t.indexOf(r[i]) < 0 && Object.prototype.propertyIsEnumerable.call(e, r[i]) && (n[r[i]] = e[r[i]]);
575
+ return n;
576
+ }
577
+ function cn(e, t, n) {
578
+ if (n || arguments.length === 2) for (var r = 0, i = t.length, a; r < i; r++) (a || !(r in t)) && (a ||= Array.prototype.slice.call(t, 0, r), a[r] = t[r]);
579
+ return e.concat(a || Array.prototype.slice.call(t));
580
+ }
581
+ //#endregion
582
+ //#region ../../node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types+react@18.3.31_react@18.3.1/node_modules/react-remove-scroll-bar/dist/es2015/constants.js
583
+ var ln = "right-scroll-bar-position", un = "width-before-scroll-bar", dn = "with-scroll-bars-hidden", fn = "--removed-body-scroll-bar-size";
584
+ //#endregion
585
+ //#region ../../node_modules/.pnpm/use-callback-ref@1.3.3_@types+react@18.3.31_react@18.3.1/node_modules/use-callback-ref/dist/es2015/assignRef.js
586
+ function pn(e, t) {
587
+ return typeof e == "function" ? e(t) : e && (e.current = t), e;
588
+ }
589
+ //#endregion
590
+ //#region ../../node_modules/.pnpm/use-callback-ref@1.3.3_@types+react@18.3.31_react@18.3.1/node_modules/use-callback-ref/dist/es2015/useRef.js
591
+ o();
592
+ function mn(e, t) {
593
+ var r = n(function() {
594
+ return {
595
+ value: e,
596
+ callback: t,
597
+ facade: {
598
+ get current() {
599
+ return r.value;
600
+ },
601
+ set current(e) {
602
+ var t = r.value;
603
+ t !== e && (r.value = e, r.callback(e, t));
604
+ }
605
+ }
606
+ };
607
+ })[0];
608
+ return r.callback = t, r.facade;
609
+ }
610
+ //#endregion
611
+ //#region ../../node_modules/.pnpm/use-callback-ref@1.3.3_@types+react@18.3.31_react@18.3.1/node_modules/use-callback-ref/dist/es2015/useMergeRef.js
612
+ o();
613
+ var hn = typeof window < "u" ? _ : h, gn = /* @__PURE__ */ new WeakMap();
614
+ function _n(e, t) {
615
+ var n = mn(t || null, function(t) {
616
+ return e.forEach(function(e) {
617
+ return pn(e, t);
618
+ });
619
+ });
620
+ return hn(function() {
621
+ var t = gn.get(n);
622
+ if (t) {
623
+ var r = new Set(t), i = new Set(e), a = n.current;
624
+ r.forEach(function(e) {
625
+ i.has(e) || pn(e, null);
626
+ }), i.forEach(function(e) {
627
+ r.has(e) || pn(e, a);
628
+ });
629
+ }
630
+ gn.set(n, e);
631
+ }, [e]), n;
632
+ }
633
+ //#endregion
634
+ //#region ../../node_modules/.pnpm/use-sidecar@1.1.3_@types+react@18.3.31_react@18.3.1/node_modules/use-sidecar/dist/es2015/medium.js
635
+ function vn(e) {
636
+ return e;
637
+ }
638
+ function yn(e, t) {
639
+ t === void 0 && (t = vn);
640
+ var n = [], r = !1;
641
+ return {
642
+ read: function() {
643
+ if (r) throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");
644
+ return n.length ? n[n.length - 1] : e;
645
+ },
646
+ useMedium: function(e) {
647
+ var i = t(e, r);
648
+ return n.push(i), function() {
649
+ n = n.filter(function(e) {
650
+ return e !== i;
651
+ });
652
+ };
653
+ },
654
+ assignSyncMedium: function(e) {
655
+ for (r = !0; n.length;) {
656
+ var t = n;
657
+ n = [], t.forEach(e);
658
+ }
659
+ n = {
660
+ push: function(t) {
661
+ return e(t);
662
+ },
663
+ filter: function() {
664
+ return n;
665
+ }
666
+ };
667
+ },
668
+ assignMedium: function(e) {
669
+ r = !0;
670
+ var t = [];
671
+ if (n.length) {
672
+ var i = n;
673
+ n = [], i.forEach(e), t = n;
674
+ }
675
+ var a = function() {
676
+ var n = t;
677
+ t = [], n.forEach(e);
678
+ }, o = function() {
679
+ return Promise.resolve().then(a);
680
+ };
681
+ o(), n = {
682
+ push: function(e) {
683
+ t.push(e), o();
684
+ },
685
+ filter: function(e) {
686
+ return t = t.filter(e), n;
687
+ }
688
+ };
689
+ }
690
+ };
691
+ }
692
+ function bn(e) {
693
+ e === void 0 && (e = {});
694
+ var t = yn(null);
695
+ return t.options = Q({
696
+ async: !0,
697
+ ssr: !1
698
+ }, e), t;
699
+ }
700
+ //#endregion
701
+ //#region ../../node_modules/.pnpm/use-sidecar@1.1.3_@types+react@18.3.31_react@18.3.1/node_modules/use-sidecar/dist/es2015/exports.js
702
+ o();
703
+ var xn = function(e) {
704
+ var t = e.sideCar, n = sn(e, ["sideCar"]);
705
+ if (!t) throw Error("Sidecar: please provide `sideCar` property to import the right car");
706
+ var r = t.read();
707
+ if (!r) throw Error("Sidecar medium not found");
708
+ return l(r, Q({}, n));
709
+ };
710
+ xn.isSideCarExport = !0;
711
+ function Sn(e, t) {
712
+ return e.useMedium(t), xn;
713
+ }
714
+ //#endregion
715
+ //#region ../../node_modules/.pnpm/react-remove-scroll@2.7.2_@types+react@18.3.31_react@18.3.1/node_modules/react-remove-scroll/dist/es2015/medium.js
716
+ var Cn = bn();
717
+ //#endregion
718
+ //#region ../../node_modules/.pnpm/react-remove-scroll@2.7.2_@types+react@18.3.31_react@18.3.1/node_modules/react-remove-scroll/dist/es2015/UI.js
719
+ o();
720
+ var wn = function() {}, Tn = m(function(e, t) {
721
+ var r = g(null), i = n({
722
+ onScrollCapture: wn,
723
+ onWheelCapture: wn,
724
+ onTouchMoveCapture: wn
725
+ }), a = i[0], o = i[1], s = e.forwardProps, c = e.children, u = e.className, m = e.removeScrollBar, h = e.enabled, _ = e.shards, v = e.sideCar, y = e.noRelative, b = e.noIsolation, x = e.inert, S = e.allowPinchZoom, C = e.as, w = C === void 0 ? "div" : C, T = e.gapMode, E = sn(e, [
726
+ "forwardProps",
727
+ "children",
728
+ "className",
729
+ "removeScrollBar",
730
+ "enabled",
731
+ "shards",
732
+ "sideCar",
733
+ "noRelative",
734
+ "noIsolation",
735
+ "inert",
736
+ "allowPinchZoom",
737
+ "as",
738
+ "gapMode"
739
+ ]), D = v, O = _n([r, t]), k = Q(Q({}, E), a);
740
+ return l(d, null, h && l(D, {
741
+ sideCar: Cn,
742
+ removeScrollBar: m,
743
+ shards: _,
744
+ noRelative: y,
745
+ noIsolation: b,
746
+ inert: x,
747
+ setCallbacks: o,
748
+ allowPinchZoom: !!S,
749
+ lockRef: r,
750
+ gapMode: T
751
+ }), s ? f(p.only(c), Q(Q({}, k), { ref: O })) : l(w, Q({}, k, {
752
+ className: u,
753
+ ref: O
754
+ }), c));
755
+ });
756
+ Tn.defaultProps = {
757
+ enabled: !0,
758
+ removeScrollBar: !0,
759
+ inert: !1
760
+ }, Tn.classNames = {
761
+ fullWidth: un,
762
+ zeroRight: ln
763
+ };
764
+ //#endregion
765
+ //#region ../../node_modules/.pnpm/get-nonce@1.0.1/node_modules/get-nonce/dist/es2015/index.js
766
+ var En, Dn = function() {
767
+ if (En) return En;
768
+ if (typeof __webpack_nonce__ < "u") return __webpack_nonce__;
769
+ };
770
+ //#endregion
771
+ //#region ../../node_modules/.pnpm/react-style-singleton@2.2.3_@types+react@18.3.31_react@18.3.1/node_modules/react-style-singleton/dist/es2015/singleton.js
772
+ function On() {
773
+ if (!document) return null;
774
+ var e = document.createElement("style");
775
+ e.type = "text/css";
776
+ var t = Dn();
777
+ return t && e.setAttribute("nonce", t), e;
778
+ }
779
+ function kn(e, t) {
780
+ e.styleSheet ? e.styleSheet.cssText = t : e.appendChild(document.createTextNode(t));
781
+ }
782
+ function An(e) {
783
+ (document.head || document.getElementsByTagName("head")[0]).appendChild(e);
784
+ }
785
+ var jn = function() {
786
+ var e = 0, t = null;
787
+ return {
788
+ add: function(n) {
789
+ e == 0 && (t = On()) && (kn(t, n), An(t)), e++;
790
+ },
791
+ remove: function() {
792
+ e--, !e && t && (t.parentNode && t.parentNode.removeChild(t), t = null);
793
+ }
794
+ };
795
+ };
796
+ //#endregion
797
+ //#region ../../node_modules/.pnpm/react-style-singleton@2.2.3_@types+react@18.3.31_react@18.3.1/node_modules/react-style-singleton/dist/es2015/hook.js
798
+ o();
799
+ var Mn = function() {
800
+ var e = jn();
801
+ return function(t, n) {
802
+ h(function() {
803
+ return e.add(t), function() {
804
+ e.remove();
805
+ };
806
+ }, [t && n]);
807
+ };
808
+ }, Nn = function() {
809
+ var e = Mn();
810
+ return function(t) {
811
+ var n = t.styles, r = t.dynamic;
812
+ return e(n, r), null;
813
+ };
814
+ }, Pn = {
815
+ left: 0,
816
+ top: 0,
817
+ right: 0,
818
+ gap: 0
819
+ }, Fn = function(e) {
820
+ return parseInt(e || "", 10) || 0;
821
+ }, In = function(e) {
822
+ var t = window.getComputedStyle(document.body), n = t[e === "padding" ? "paddingLeft" : "marginLeft"], r = t[e === "padding" ? "paddingTop" : "marginTop"], i = t[e === "padding" ? "paddingRight" : "marginRight"];
823
+ return [
824
+ Fn(n),
825
+ Fn(r),
826
+ Fn(i)
827
+ ];
828
+ }, Ln = function(e) {
829
+ if (e === void 0 && (e = "margin"), typeof window > "u") return Pn;
830
+ var t = In(e), n = document.documentElement.clientWidth, r = window.innerWidth;
831
+ return {
832
+ left: t[0],
833
+ top: t[1],
834
+ right: t[2],
835
+ gap: Math.max(0, r - n + t[2] - t[0])
836
+ };
837
+ };
838
+ //#endregion
839
+ //#region ../../node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types+react@18.3.31_react@18.3.1/node_modules/react-remove-scroll-bar/dist/es2015/component.js
840
+ o();
841
+ var Rn = Nn(), zn = "data-scroll-locked", Bn = function(e, t, n, r) {
842
+ var i = e.left, a = e.top, o = e.right, s = e.gap;
843
+ return n === void 0 && (n = "margin"), `
844
+ .${dn} {
845
+ overflow: hidden ${r};
846
+ padding-right: ${s}px ${r};
847
+ }
848
+ body[${zn}] {
849
+ overflow: hidden ${r};
850
+ overscroll-behavior: contain;
851
+ ${[
852
+ t && `position: relative ${r};`,
853
+ n === "margin" && `
854
+ padding-left: ${i}px;
855
+ padding-top: ${a}px;
856
+ padding-right: ${o}px;
857
+ margin-left:0;
858
+ margin-top:0;
859
+ margin-right: ${s}px ${r};
860
+ `,
861
+ n === "padding" && `padding-right: ${s}px ${r};`
862
+ ].filter(Boolean).join("")}
863
+ }
864
+
865
+ .${ln} {
866
+ right: ${s}px ${r};
867
+ }
868
+
869
+ .${un} {
870
+ margin-right: ${s}px ${r};
871
+ }
872
+
873
+ .${ln} .${ln} {
874
+ right: 0 ${r};
875
+ }
876
+
877
+ .${un} .${un} {
878
+ margin-right: 0 ${r};
879
+ }
880
+
881
+ body[${zn}] {
882
+ ${fn}: ${s}px;
883
+ }
884
+ `;
885
+ }, Vn = function() {
886
+ var e = parseInt(document.body.getAttribute("data-scroll-locked") || "0", 10);
887
+ return isFinite(e) ? e : 0;
888
+ }, Hn = function() {
889
+ h(function() {
890
+ return document.body.setAttribute(zn, (Vn() + 1).toString()), function() {
891
+ var e = Vn() - 1;
892
+ e <= 0 ? document.body.removeAttribute(zn) : document.body.setAttribute(zn, e.toString());
893
+ };
894
+ }, []);
895
+ }, Un = function(e) {
896
+ var n = e.noRelative, r = e.noImportant, i = e.gapMode, a = i === void 0 ? "margin" : i;
897
+ return Hn(), l(Rn, { styles: Bn(t(function() {
898
+ return Ln(a);
899
+ }, [a]), !n, a, r ? "" : "!important") });
900
+ }, Wn = !1;
901
+ if (typeof window < "u") try {
902
+ var Gn = Object.defineProperty({}, "passive", { get: function() {
903
+ return Wn = !0, !0;
904
+ } });
905
+ window.addEventListener("test", Gn, Gn), window.removeEventListener("test", Gn, Gn);
906
+ } catch {
907
+ Wn = !1;
908
+ }
909
+ var Kn = Wn ? { passive: !1 } : !1, qn = function(e) {
910
+ return e.tagName === "TEXTAREA";
911
+ }, Jn = function(e, t) {
912
+ if (!(e instanceof Element)) return !1;
913
+ var n = window.getComputedStyle(e);
914
+ return n[t] !== "hidden" && !(n.overflowY === n.overflowX && !qn(e) && n[t] === "visible");
915
+ }, Yn = function(e) {
916
+ return Jn(e, "overflowY");
917
+ }, Xn = function(e) {
918
+ return Jn(e, "overflowX");
919
+ }, Zn = function(e, t) {
920
+ var n = t.ownerDocument, r = t;
921
+ do {
922
+ if (typeof ShadowRoot < "u" && r instanceof ShadowRoot && (r = r.host), er(e, r)) {
923
+ var i = tr(e, r);
924
+ if (i[1] > i[2]) return !0;
925
+ }
926
+ r = r.parentNode;
927
+ } while (r && r !== n.body);
928
+ return !1;
929
+ }, Qn = function(e) {
930
+ return [
931
+ e.scrollTop,
932
+ e.scrollHeight,
933
+ e.clientHeight
934
+ ];
935
+ }, $n = function(e) {
936
+ return [
937
+ e.scrollLeft,
938
+ e.scrollWidth,
939
+ e.clientWidth
940
+ ];
941
+ }, er = function(e, t) {
942
+ return e === "v" ? Yn(t) : Xn(t);
943
+ }, tr = function(e, t) {
944
+ return e === "v" ? Qn(t) : $n(t);
945
+ }, nr = function(e, t) {
946
+ return e === "h" && t === "rtl" ? -1 : 1;
947
+ }, rr = function(e, t, n, r, i) {
948
+ var a = nr(e, window.getComputedStyle(t).direction), o = a * r, s = n.target, c = t.contains(s), l = !1, u = o > 0, d = 0, f = 0;
949
+ do {
950
+ if (!s) break;
951
+ var p = tr(e, s), m = p[0], h = p[1] - p[2] - a * m;
952
+ (m || h) && er(e, s) && (d += h, f += m);
953
+ var g = s.parentNode;
954
+ s = g && g.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? g.host : g;
955
+ } while (!c && s !== document.body || c && (t.contains(s) || t === s));
956
+ return (u && (i && Math.abs(d) < 1 || !i && o > d) || !u && (i && Math.abs(f) < 1 || !i && -o > f)) && (l = !0), l;
957
+ };
958
+ //#endregion
959
+ //#region ../../node_modules/.pnpm/react-remove-scroll@2.7.2_@types+react@18.3.31_react@18.3.1/node_modules/react-remove-scroll/dist/es2015/SideEffect.js
960
+ o();
961
+ var ir = function(e) {
962
+ return "changedTouches" in e ? [e.changedTouches[0].clientX, e.changedTouches[0].clientY] : [0, 0];
963
+ }, ar = function(e) {
964
+ return [e.deltaX, e.deltaY];
965
+ }, or = function(e) {
966
+ return e && "current" in e ? e.current : e;
967
+ }, sr = function(e, t) {
968
+ return e[0] === t[0] && e[1] === t[1];
969
+ }, cr = function(e) {
970
+ return `
971
+ .block-interactivity-${e} {pointer-events: none;}
972
+ .allow-interactivity-${e} {pointer-events: all;}
973
+ `;
974
+ }, lr = 0, ur = [];
975
+ function dr(e) {
976
+ var t = g([]), r = g([0, 0]), i = g(), a = n(lr++)[0], o = n(Nn)[0], c = g(e);
977
+ h(function() {
978
+ c.current = e;
979
+ }, [e]), h(function() {
980
+ if (e.inert) {
981
+ document.body.classList.add(`block-interactivity-${a}`);
982
+ var t = cn([e.lockRef.current], (e.shards || []).map(or), !0).filter(Boolean);
983
+ return t.forEach(function(e) {
984
+ return e.classList.add(`allow-interactivity-${a}`);
985
+ }), function() {
986
+ document.body.classList.remove(`block-interactivity-${a}`), t.forEach(function(e) {
987
+ return e.classList.remove(`allow-interactivity-${a}`);
988
+ });
989
+ };
990
+ }
991
+ }, [
992
+ e.inert,
993
+ e.lockRef.current,
994
+ e.shards
995
+ ]);
996
+ var u = s(function(e, t) {
997
+ if ("touches" in e && e.touches.length === 2 || e.type === "wheel" && e.ctrlKey) return !c.current.allowPinchZoom;
998
+ var n = ir(e), a = r.current, o = "deltaX" in e ? e.deltaX : a[0] - n[0], s = "deltaY" in e ? e.deltaY : a[1] - n[1], l, u = e.target, d = Math.abs(o) > Math.abs(s) ? "h" : "v";
999
+ if ("touches" in e && d === "h" && u.type === "range") return !1;
1000
+ var f = window.getSelection(), p = f && f.anchorNode;
1001
+ if (p && (p === u || p.contains(u))) return !1;
1002
+ var m = Zn(d, u);
1003
+ if (!m) return !0;
1004
+ if (m ? l = d : (l = d === "v" ? "h" : "v", m = Zn(d, u)), !m) return !1;
1005
+ if (!i.current && "changedTouches" in e && (o || s) && (i.current = l), !l) return !0;
1006
+ var h = i.current || l;
1007
+ return rr(h, t, e, h === "h" ? o : s, !0);
1008
+ }, []), f = s(function(e) {
1009
+ var n = e;
1010
+ if (!(!ur.length || ur[ur.length - 1] !== o)) {
1011
+ var r = "deltaY" in n ? ar(n) : ir(n), i = t.current.filter(function(e) {
1012
+ return e.name === n.type && (e.target === n.target || n.target === e.shadowParent) && sr(e.delta, r);
1013
+ })[0];
1014
+ if (i && i.should) {
1015
+ n.cancelable && n.preventDefault();
1016
+ return;
1017
+ }
1018
+ if (!i) {
1019
+ var a = (c.current.shards || []).map(or).filter(Boolean).filter(function(e) {
1020
+ return e.contains(n.target);
1021
+ });
1022
+ (a.length > 0 ? u(n, a[0]) : !c.current.noIsolation) && n.cancelable && n.preventDefault();
1023
+ }
1024
+ }
1025
+ }, []), p = s(function(e, n, r, i) {
1026
+ var a = {
1027
+ name: e,
1028
+ delta: n,
1029
+ target: r,
1030
+ should: i,
1031
+ shadowParent: fr(r)
1032
+ };
1033
+ t.current.push(a), setTimeout(function() {
1034
+ t.current = t.current.filter(function(e) {
1035
+ return e !== a;
1036
+ });
1037
+ }, 1);
1038
+ }, []), m = s(function(e) {
1039
+ r.current = ir(e), i.current = void 0;
1040
+ }, []), _ = s(function(t) {
1041
+ p(t.type, ar(t), t.target, u(t, e.lockRef.current));
1042
+ }, []), v = s(function(t) {
1043
+ p(t.type, ir(t), t.target, u(t, e.lockRef.current));
1044
+ }, []);
1045
+ h(function() {
1046
+ return ur.push(o), e.setCallbacks({
1047
+ onScrollCapture: _,
1048
+ onWheelCapture: _,
1049
+ onTouchMoveCapture: v
1050
+ }), document.addEventListener("wheel", f, Kn), document.addEventListener("touchmove", f, Kn), document.addEventListener("touchstart", m, Kn), function() {
1051
+ ur = ur.filter(function(e) {
1052
+ return e !== o;
1053
+ }), document.removeEventListener("wheel", f, Kn), document.removeEventListener("touchmove", f, Kn), document.removeEventListener("touchstart", m, Kn);
1054
+ };
1055
+ }, []);
1056
+ var y = e.removeScrollBar, b = e.inert;
1057
+ return l(d, null, b ? l(o, { styles: cr(a) }) : null, y ? l(Un, {
1058
+ noRelative: e.noRelative,
1059
+ gapMode: e.gapMode
1060
+ }) : null);
1061
+ }
1062
+ function fr(e) {
1063
+ for (var t = null; e !== null;) e instanceof ShadowRoot && (t = e.host, e = e.host), e = e.parentNode;
1064
+ return t;
1065
+ }
1066
+ //#endregion
1067
+ //#region ../../node_modules/.pnpm/react-remove-scroll@2.7.2_@types+react@18.3.31_react@18.3.1/node_modules/react-remove-scroll/dist/es2015/sidecar.js
1068
+ var pr = Sn(Cn, dr);
1069
+ //#endregion
1070
+ //#region ../../node_modules/.pnpm/react-remove-scroll@2.7.2_@types+react@18.3.31_react@18.3.1/node_modules/react-remove-scroll/dist/es2015/Combination.js
1071
+ o();
1072
+ var mr = m(function(e, t) {
1073
+ return l(Tn, Q({}, e, {
1074
+ ref: t,
1075
+ sideCar: pr
1076
+ }));
1077
+ });
1078
+ mr.classNames = Tn.classNames;
1079
+ //#endregion
1080
+ //#region ../shade/es/components/ui/input-surface.js
1081
+ var hr = {
1082
+ base: "rounded-control border border-control-border bg-control-surface transition-colors",
1083
+ focusSelf: "focus-visible:outline-hidden focus-visible:border-focus-ring focus-visible:ring-2 focus-visible:ring-focus-ring/25",
1084
+ focusWithin: "has-[:focus-visible]:outline-hidden has-[:focus-visible]:border-focus-ring has-[:focus-visible]:ring-2 has-[:focus-visible]:ring-focus-ring/25",
1085
+ invalidSelf: "aria-[invalid=true]:border-destructive aria-[invalid=true]:ring-destructive/20 dark:aria-[invalid=true]:ring-destructive/40",
1086
+ invalidWithin: "has-[[aria-invalid=true]]:border-destructive has-[[aria-invalid=true]]:ring-destructive/20 dark:has-[[aria-invalid=true]]:ring-destructive/40",
1087
+ disabledSelf: "disabled:cursor-not-allowed disabled:opacity-50",
1088
+ disabledFieldSelf: "disabled:bg-control-disabled-surface disabled:text-muted-foreground disabled:opacity-100 disabled:hover:bg-control-disabled-surface"
1089
+ };
1090
+ function gr(e = "self") {
1091
+ return e === "self" ? z(hr.base, hr.focusSelf, hr.invalidSelf, hr.disabledSelf) : z(hr.base, hr.focusWithin, hr.invalidWithin);
1092
+ }
1093
+ //#endregion
1094
+ //#region ../../node_modules/.pnpm/@radix-ui+react-dialog@1.1.18_@types+react-dom@18.3.7_@types+react@18.3.31__@types+reac_2e1089bf12b8c5f777f8a71849ab93fd/node_modules/@radix-ui/react-dialog/dist/index.mjs
1095
+ o();
1096
+ var _r = "Dialog", [vr, yr] = F(_r), [br, $] = vr(_r), xr = (e) => {
1097
+ let { __scopeDialog: t, children: n, open: r, defaultOpen: i, onOpenChange: a, modal: o = !0 } = e, c = g(null), l = g(null), [u, d] = le({
1098
+ prop: r,
1099
+ defaultProp: i ?? !1,
1100
+ onChange: a,
1101
+ caller: _r
1102
+ });
1103
+ return /* @__PURE__ */ (0, Z.jsx)(br, {
1104
+ scope: t,
1105
+ triggerRef: c,
1106
+ contentRef: l,
1107
+ contentId: k(),
1108
+ titleId: k(),
1109
+ descriptionId: k(),
1110
+ open: u,
1111
+ onOpenChange: d,
1112
+ onOpenToggle: s(() => d((e) => !e), [d]),
1113
+ modal: o,
1114
+ children: n
1115
+ });
1116
+ };
1117
+ xr.displayName = _r;
1118
+ var Sr = "DialogTrigger", Cr = m((e, t) => {
1119
+ let { __scopeDialog: n, ...r } = e, i = $(Sr, n), a = I(t, i.triggerRef);
1120
+ return /* @__PURE__ */ (0, Z.jsx)(L.button, {
1121
+ type: "button",
1122
+ "aria-haspopup": "dialog",
1123
+ "aria-expanded": i.open,
1124
+ "aria-controls": i.open ? i.contentId : void 0,
1125
+ "data-state": Ur(i.open),
1126
+ ...r,
1127
+ ref: a,
1128
+ onClick: R(e.onClick, i.onOpenToggle)
1129
+ });
1130
+ });
1131
+ Cr.displayName = Sr;
1132
+ var wr = "DialogPortal", [Tr, Er] = vr(wr, { forceMount: void 0 }), Dr = (e) => {
1133
+ let { __scopeDialog: t, forceMount: n, children: r, container: i } = e, a = $(wr, t);
1134
+ return /* @__PURE__ */ (0, Z.jsx)(Tr, {
1135
+ scope: t,
1136
+ forceMount: n,
1137
+ children: p.map(r, (e) => /* @__PURE__ */ (0, Z.jsx)(V, {
1138
+ present: n || a.open,
1139
+ children: /* @__PURE__ */ (0, Z.jsx)(oe, {
1140
+ asChild: !0,
1141
+ container: i,
1142
+ children: e
1143
+ })
1144
+ }))
1145
+ });
1146
+ };
1147
+ Dr.displayName = wr;
1148
+ var Or = "DialogOverlay", kr = m((e, t) => {
1149
+ let n = Er(Or, e.__scopeDialog), { forceMount: r = n.forceMount, ...i } = e, a = $(Or, e.__scopeDialog);
1150
+ return a.modal ? /* @__PURE__ */ (0, Z.jsx)(V, {
1151
+ present: r || a.open,
1152
+ children: /* @__PURE__ */ (0, Z.jsx)(jr, {
1153
+ ...i,
1154
+ ref: t
1155
+ })
1156
+ }) : null;
1157
+ });
1158
+ kr.displayName = Or;
1159
+ var Ar = ce("DialogOverlay.RemoveScroll"), jr = m((e, t) => {
1160
+ let { __scopeDialog: n, ...r } = e, i = $(Or, n), a = I(t, te());
1161
+ return /* @__PURE__ */ (0, Z.jsx)(mr, {
1162
+ as: Ar,
1163
+ allowPinchZoom: !0,
1164
+ shards: [i.contentRef],
1165
+ children: /* @__PURE__ */ (0, Z.jsx)(L.div, {
1166
+ "data-state": Ur(i.open),
1167
+ ...r,
1168
+ ref: a,
1169
+ style: {
1170
+ pointerEvents: "auto",
1171
+ ...r.style
1172
+ }
1173
+ })
1174
+ });
1175
+ }), Mr = "DialogContent", Nr = m((e, t) => {
1176
+ let n = Er(Mr, e.__scopeDialog), { forceMount: r = n.forceMount, ...i } = e, a = $(Mr, e.__scopeDialog);
1177
+ return /* @__PURE__ */ (0, Z.jsx)(V, {
1178
+ present: r || a.open,
1179
+ children: a.modal ? /* @__PURE__ */ (0, Z.jsx)(Pr, {
1180
+ ...i,
1181
+ ref: t
1182
+ }) : /* @__PURE__ */ (0, Z.jsx)(Fr, {
1183
+ ...i,
1184
+ ref: t
1185
+ })
1186
+ });
1187
+ });
1188
+ Nr.displayName = Mr;
1189
+ var Pr = m((e, t) => {
1190
+ let n = $(Mr, e.__scopeDialog), r = g(null), i = I(t, n.contentRef, r);
1191
+ return h(() => {
1192
+ let e = r.current;
1193
+ if (e) return on(e);
1194
+ }, []), /* @__PURE__ */ (0, Z.jsx)(Ir, {
1195
+ ...e,
1196
+ ref: i,
1197
+ trapFocus: n.open,
1198
+ disableOutsidePointerEvents: n.open,
1199
+ onCloseAutoFocus: R(e.onCloseAutoFocus, (e) => {
1200
+ e.preventDefault(), n.triggerRef.current?.focus();
1201
+ }),
1202
+ onPointerDownOutside: R(e.onPointerDownOutside, (e) => {
1203
+ let t = e.detail.originalEvent, n = t.button === 0 && t.ctrlKey === !0;
1204
+ (t.button === 2 || n) && e.preventDefault();
1205
+ }),
1206
+ onFocusOutside: R(e.onFocusOutside, (e) => e.preventDefault())
1207
+ });
1208
+ }), Fr = m((e, t) => {
1209
+ let n = $(Mr, e.__scopeDialog), r = g(!1), i = g(!1);
1210
+ return /* @__PURE__ */ (0, Z.jsx)(Ir, {
1211
+ ...e,
1212
+ ref: t,
1213
+ trapFocus: !1,
1214
+ disableOutsidePointerEvents: !1,
1215
+ onCloseAutoFocus: (t) => {
1216
+ e.onCloseAutoFocus?.(t), t.defaultPrevented || (r.current || n.triggerRef.current?.focus(), t.preventDefault()), r.current = !1, i.current = !1;
1217
+ },
1218
+ onInteractOutside: (t) => {
1219
+ e.onInteractOutside?.(t), t.defaultPrevented || (r.current = !0, t.detail.originalEvent.type === "pointerdown" && (i.current = !0));
1220
+ let a = t.target;
1221
+ n.triggerRef.current?.contains(a) && t.preventDefault(), t.detail.originalEvent.type === "focusin" && i.current && t.preventDefault();
1222
+ }
1223
+ });
1224
+ }), Ir = m((e, t) => {
1225
+ let { __scopeDialog: n, trapFocus: r, onOpenAutoFocus: i, onCloseAutoFocus: a, ...o } = e, s = $(Mr, n);
1226
+ return Nt(), /* @__PURE__ */ (0, Z.jsx)(Z.Fragment, { children: /* @__PURE__ */ (0, Z.jsx)(zt, {
1227
+ asChild: !0,
1228
+ loop: !0,
1229
+ trapped: r,
1230
+ onMountAutoFocus: i,
1231
+ onUnmountAutoFocus: a,
1232
+ children: /* @__PURE__ */ (0, Z.jsx)(G, {
1233
+ role: "dialog",
1234
+ id: s.contentId,
1235
+ "aria-describedby": s.descriptionId,
1236
+ "aria-labelledby": s.titleId,
1237
+ "data-state": Ur(s.open),
1238
+ ...o,
1239
+ ref: t,
1240
+ deferPointerDownOutside: !0,
1241
+ onDismiss: () => s.onOpenChange(!1)
1242
+ })
1243
+ }) });
1244
+ }), Lr = "DialogTitle", Rr = m((e, t) => {
1245
+ let { __scopeDialog: n, ...r } = e, i = $(Lr, n);
1246
+ return /* @__PURE__ */ (0, Z.jsx)(L.h2, {
1247
+ id: i.titleId,
1248
+ ...r,
1249
+ ref: t
1250
+ });
1251
+ });
1252
+ Rr.displayName = Lr;
1253
+ var zr = "DialogDescription", Br = m((e, t) => {
1254
+ let { __scopeDialog: n, ...r } = e, i = $(zr, n);
1255
+ return /* @__PURE__ */ (0, Z.jsx)(L.p, {
1256
+ id: i.descriptionId,
1257
+ ...r,
1258
+ ref: t
1259
+ });
1260
+ });
1261
+ Br.displayName = zr;
1262
+ var Vr = "DialogClose", Hr = m((e, t) => {
1263
+ let { __scopeDialog: n, ...r } = e, i = $(Vr, n);
1264
+ return /* @__PURE__ */ (0, Z.jsx)(L.button, {
1265
+ type: "button",
1266
+ ...r,
1267
+ ref: t,
1268
+ onClick: R(e.onClick, () => i.onOpenChange(!1))
1269
+ });
1270
+ });
1271
+ Hr.displayName = Vr;
1272
+ function Ur(e) {
1273
+ return e ? "open" : "closed";
1274
+ }
1275
+ //#endregion
1276
+ //#region ../shade/es/components/ui/dialog.js
1277
+ o();
1278
+ var Wr = xr, Gr = Cr, Kr = Dr, qr = Hr, Jr = m(({ className: e, ...t }, n) => /* @__PURE__ */ (0, Z.jsx)(kr, {
1279
+ ref: n,
1280
+ className: z("fixed inset-0 z-50 transform-gpu bg-black/30 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0 dark:bg-black/60", e),
1281
+ ...t
1282
+ }));
1283
+ Jr.displayName = kr.displayName;
1284
+ var Yr = m(({ className: e, children: t, ...n }, r) => /* @__PURE__ */ (0, Z.jsx)(Kr, { children: /* @__PURE__ */ (0, Z.jsxs)(B, { children: [/* @__PURE__ */ (0, Z.jsx)(Jr, {}), /* @__PURE__ */ (0, Z.jsx)(Nr, {
1285
+ ref: r,
1286
+ className: z("fixed top-[8vmin] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] transform-gpu gap-6 bg-surface-elevated-2 p-6 shadow-lg outline-hidden duration-200 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 sm:rounded-lg", e),
1287
+ ...n,
1288
+ children: t
1289
+ })] }) }));
1290
+ Yr.displayName = Nr.displayName;
1291
+ var Xr = ({ className: e, ...t }) => /* @__PURE__ */ (0, Z.jsx)("div", {
1292
+ className: z("flex flex-col gap-y-1.5 text-center sm:text-left", e),
1293
+ ...t
1294
+ });
1295
+ Xr.displayName = "DialogHeader";
1296
+ var Zr = ({ className: e, ...t }) => /* @__PURE__ */ (0, Z.jsx)("div", {
1297
+ className: z("flex flex-col-reverse sm:flex-row sm:items-end sm:justify-end sm:gap-2 [&_button]:min-w-20", e),
1298
+ ...t
1299
+ });
1300
+ Zr.displayName = "DialogFooter";
1301
+ var Qr = m(({ className: e, ...t }, n) => /* @__PURE__ */ (0, Z.jsx)(Rr, {
1302
+ ref: n,
1303
+ className: z("text-xl leading-none font-semibold tracking-tight", e),
1304
+ ...t
1305
+ }));
1306
+ Qr.displayName = Rr.displayName;
1307
+ var $r = m(({ className: e, ...t }, n) => /* @__PURE__ */ (0, Z.jsx)(Br, {
1308
+ ref: n,
1309
+ className: z("text-muted-foreground", e),
1310
+ ...t
1311
+ }));
1312
+ //#endregion
1313
+ //#region ../../node_modules/.pnpm/@radix-ui+react-popover@1.1.18_@types+react-dom@18.3.7_@types+react@18.3.31__@types+rea_8a3b109e72d032b35181788743af8841/node_modules/@radix-ui/react-popover/dist/index.mjs
1314
+ $r.displayName = Br.displayName, o();
1315
+ var ei = "Popover", [ti, ni] = F(ei, [K]), ri = K(), [ii, ai] = ti(ei), oi = (e) => {
1316
+ let { __scopePopover: t, children: r, open: i, defaultOpen: a, onOpenChange: o, modal: c = !1 } = e, l = ri(t), u = g(null), [d, f] = n(!1), [p, m] = le({
1317
+ prop: i,
1318
+ defaultProp: a ?? !1,
1319
+ onChange: o,
1320
+ caller: ei
1321
+ });
1322
+ return /* @__PURE__ */ (0, Z.jsx)(ae, {
1323
+ ...l,
1324
+ children: /* @__PURE__ */ (0, Z.jsx)(ii, {
1325
+ scope: t,
1326
+ contentId: k(),
1327
+ triggerRef: u,
1328
+ open: p,
1329
+ onOpenChange: m,
1330
+ onOpenToggle: s(() => m((e) => !e), [m]),
1331
+ hasCustomAnchor: d,
1332
+ onCustomAnchorAdd: s(() => f(!0), []),
1333
+ onCustomAnchorRemove: s(() => f(!1), []),
1334
+ modal: c,
1335
+ children: r
1336
+ })
1337
+ });
1338
+ };
1339
+ oi.displayName = ei;
1340
+ var si = "PopoverAnchor", ci = m((e, t) => {
1341
+ let { __scopePopover: n, ...r } = e, i = ai(si, n), a = ri(n), { onCustomAnchorAdd: o, onCustomAnchorRemove: s } = i;
1342
+ return h(() => (o(), () => s()), [o, s]), /* @__PURE__ */ (0, Z.jsx)(ie, {
1343
+ ...a,
1344
+ ...r,
1345
+ ref: t
1346
+ });
1347
+ });
1348
+ ci.displayName = si;
1349
+ var li = "PopoverTrigger", ui = m((e, t) => {
1350
+ let { __scopePopover: n, ...r } = e, i = ai(li, n), a = ri(n), o = I(t, i.triggerRef), s = /* @__PURE__ */ (0, Z.jsx)(L.button, {
1351
+ type: "button",
1352
+ "aria-haspopup": "dialog",
1353
+ "aria-expanded": i.open,
1354
+ "aria-controls": i.open ? i.contentId : void 0,
1355
+ "data-state": Ti(i.open),
1356
+ ...r,
1357
+ ref: o,
1358
+ onClick: R(e.onClick, i.onOpenToggle)
1359
+ });
1360
+ return i.hasCustomAnchor ? s : /* @__PURE__ */ (0, Z.jsx)(ie, {
1361
+ asChild: !0,
1362
+ ...a,
1363
+ children: s
1364
+ });
1365
+ });
1366
+ ui.displayName = li;
1367
+ var di = "PopoverPortal", [fi, pi] = ti(di, { forceMount: void 0 }), mi = (e) => {
1368
+ let { __scopePopover: t, forceMount: n, children: r, container: i } = e, a = ai(di, t);
1369
+ return /* @__PURE__ */ (0, Z.jsx)(fi, {
1370
+ scope: t,
1371
+ forceMount: n,
1372
+ children: /* @__PURE__ */ (0, Z.jsx)(V, {
1373
+ present: n || a.open,
1374
+ children: /* @__PURE__ */ (0, Z.jsx)(oe, {
1375
+ asChild: !0,
1376
+ container: i,
1377
+ children: r
1378
+ })
1379
+ })
1380
+ });
1381
+ };
1382
+ mi.displayName = di;
1383
+ var hi = "PopoverContent", gi = m((e, t) => {
1384
+ let n = pi(hi, e.__scopePopover), { forceMount: r = n.forceMount, ...i } = e, a = ai(hi, e.__scopePopover);
1385
+ return /* @__PURE__ */ (0, Z.jsx)(V, {
1386
+ present: r || a.open,
1387
+ children: a.modal ? /* @__PURE__ */ (0, Z.jsx)(vi, {
1388
+ ...i,
1389
+ ref: t
1390
+ }) : /* @__PURE__ */ (0, Z.jsx)(yi, {
1391
+ ...i,
1392
+ ref: t
1393
+ })
1394
+ });
1395
+ });
1396
+ gi.displayName = hi;
1397
+ var _i = ce("PopoverContent.RemoveScroll"), vi = m((e, t) => {
1398
+ let n = ai(hi, e.__scopePopover), r = g(null), i = I(t, r), a = g(!1);
1399
+ return h(() => {
1400
+ let e = r.current;
1401
+ if (e) return on(e);
1402
+ }, []), /* @__PURE__ */ (0, Z.jsx)(mr, {
1403
+ as: _i,
1404
+ allowPinchZoom: !0,
1405
+ children: /* @__PURE__ */ (0, Z.jsx)(bi, {
1406
+ ...e,
1407
+ ref: i,
1408
+ trapFocus: n.open,
1409
+ disableOutsidePointerEvents: !0,
1410
+ onCloseAutoFocus: R(e.onCloseAutoFocus, (e) => {
1411
+ e.preventDefault(), a.current || n.triggerRef.current?.focus();
1412
+ }),
1413
+ onPointerDownOutside: R(e.onPointerDownOutside, (e) => {
1414
+ let t = e.detail.originalEvent, n = t.button === 0 && t.ctrlKey === !0, r = t.button === 2 || n;
1415
+ a.current = r;
1416
+ }, { checkForDefaultPrevented: !1 }),
1417
+ onFocusOutside: R(e.onFocusOutside, (e) => e.preventDefault(), { checkForDefaultPrevented: !1 })
1418
+ })
1419
+ });
1420
+ }), yi = m((e, t) => {
1421
+ let n = ai(hi, e.__scopePopover), r = g(!1), i = g(!1);
1422
+ return /* @__PURE__ */ (0, Z.jsx)(bi, {
1423
+ ...e,
1424
+ ref: t,
1425
+ trapFocus: !1,
1426
+ disableOutsidePointerEvents: !1,
1427
+ onCloseAutoFocus: (t) => {
1428
+ e.onCloseAutoFocus?.(t), t.defaultPrevented || (r.current || n.triggerRef.current?.focus(), t.preventDefault()), r.current = !1, i.current = !1;
1429
+ },
1430
+ onInteractOutside: (t) => {
1431
+ e.onInteractOutside?.(t), t.defaultPrevented || (r.current = !0, t.detail.originalEvent.type === "pointerdown" && (i.current = !0));
1432
+ let a = t.target;
1433
+ n.triggerRef.current?.contains(a) && t.preventDefault(), t.detail.originalEvent.type === "focusin" && i.current && t.preventDefault();
1434
+ }
1435
+ });
1436
+ }), bi = m((e, t) => {
1437
+ let { __scopePopover: n, trapFocus: r, onOpenAutoFocus: i, onCloseAutoFocus: a, disableOutsidePointerEvents: o, onEscapeKeyDown: s, onPointerDownOutside: c, onFocusOutside: l, onInteractOutside: u, ...d } = e, f = ai(hi, n), p = ri(n);
1438
+ return Nt(), /* @__PURE__ */ (0, Z.jsx)(zt, {
1439
+ asChild: !0,
1440
+ loop: !0,
1441
+ trapped: r,
1442
+ onMountAutoFocus: i,
1443
+ onUnmountAutoFocus: a,
1444
+ children: /* @__PURE__ */ (0, Z.jsx)(G, {
1445
+ asChild: !0,
1446
+ disableOutsidePointerEvents: o,
1447
+ onInteractOutside: u,
1448
+ onEscapeKeyDown: s,
1449
+ onPointerDownOutside: c,
1450
+ onFocusOutside: l,
1451
+ onDismiss: () => f.onOpenChange(!1),
1452
+ deferPointerDownOutside: !0,
1453
+ children: /* @__PURE__ */ (0, Z.jsx)(me, {
1454
+ "data-state": Ti(f.open),
1455
+ role: "dialog",
1456
+ id: f.contentId,
1457
+ ...p,
1458
+ ...d,
1459
+ ref: t,
1460
+ style: {
1461
+ ...d.style,
1462
+ "--radix-popover-content-transform-origin": "var(--radix-popper-transform-origin)",
1463
+ "--radix-popover-content-available-width": "var(--radix-popper-available-width)",
1464
+ "--radix-popover-content-available-height": "var(--radix-popper-available-height)",
1465
+ "--radix-popover-trigger-width": "var(--radix-popper-anchor-width)",
1466
+ "--radix-popover-trigger-height": "var(--radix-popper-anchor-height)"
1467
+ }
1468
+ })
1469
+ })
1470
+ });
1471
+ }), xi = "PopoverClose", Si = m((e, t) => {
1472
+ let { __scopePopover: n, ...r } = e, i = ai(xi, n);
1473
+ return /* @__PURE__ */ (0, Z.jsx)(L.button, {
1474
+ type: "button",
1475
+ ...r,
1476
+ ref: t,
1477
+ onClick: R(e.onClick, () => i.onOpenChange(!1))
1478
+ });
1479
+ });
1480
+ Si.displayName = xi;
1481
+ var Ci = "PopoverArrow", wi = m((e, t) => {
1482
+ let { __scopePopover: n, ...r } = e, i = ri(n);
1483
+ return /* @__PURE__ */ (0, Z.jsx)(pe, {
1484
+ ...i,
1485
+ ...r,
1486
+ ref: t
1487
+ });
1488
+ });
1489
+ wi.displayName = Ci;
1490
+ function Ti(e) {
1491
+ return e ? "open" : "closed";
1492
+ }
1493
+ var Ei = oi, Di = ui, Oi = mi, ki = gi, Ai = Si;
1494
+ //#endregion
1495
+ //#region ../shade/es/components/ui/popover.js
1496
+ o();
1497
+ var ji = Ei, Mi = Di, Ni = Ai, Pi = m(({ className: e, align: t = "center", onEscapeKeyDown: n, sideOffset: r = 4, ...i }, a) => /* @__PURE__ */ (0, Z.jsx)(Oi, { children: /* @__PURE__ */ (0, Z.jsx)(B, { children: /* @__PURE__ */ (0, Z.jsx)(ki, {
1498
+ ref: a,
1499
+ align: t,
1500
+ className: z("z-50 origin-(--radix-popover-content-transform-origin) rounded-menu border border-border/60 bg-surface-elevated-2 p-5 text-popover-foreground shadow-md outline-hidden 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", e),
1501
+ sideOffset: r,
1502
+ onEscapeKeyDown: (e) => ot(e, n),
1503
+ ...i
1504
+ }) }) }));
1505
+ //#endregion
1506
+ //#region ../../node_modules/.pnpm/@radix-ui+react-alert-dialog@1.1.18_@types+react-dom@18.3.7_@types+react@18.3.31__@type_6219ffd5c85ad0b85061ea739c6eab31/node_modules/@radix-ui/react-alert-dialog/dist/index.mjs
1507
+ Pi.displayName = ki.displayName, o();
1508
+ var Fi = "AlertDialog", [Ii, Li] = F(Fi, [yr]), Ri = yr(), zi = (e) => {
1509
+ let { __scopeAlertDialog: t, ...n } = e, r = Ri(t);
1510
+ return /* @__PURE__ */ (0, Z.jsx)(xr, {
1511
+ ...r,
1512
+ ...n,
1513
+ modal: !0
1514
+ });
1515
+ };
1516
+ zi.displayName = Fi;
1517
+ var Bi = "AlertDialogTrigger", Vi = m((e, t) => {
1518
+ let { __scopeAlertDialog: n, ...r } = e, i = Ri(n);
1519
+ return /* @__PURE__ */ (0, Z.jsx)(Cr, {
1520
+ ...i,
1521
+ ...r,
1522
+ ref: t
1523
+ });
1524
+ });
1525
+ Vi.displayName = Bi;
1526
+ var Hi = "AlertDialogPortal", Ui = (e) => {
1527
+ let { __scopeAlertDialog: t, ...n } = e, r = Ri(t);
1528
+ return /* @__PURE__ */ (0, Z.jsx)(Dr, {
1529
+ ...r,
1530
+ ...n
1531
+ });
1532
+ };
1533
+ Ui.displayName = Hi;
1534
+ var Wi = "AlertDialogOverlay", Gi = m((e, t) => {
1535
+ let { __scopeAlertDialog: n, ...r } = e, i = Ri(n);
1536
+ return /* @__PURE__ */ (0, Z.jsx)(kr, {
1537
+ ...i,
1538
+ ...r,
1539
+ ref: t
1540
+ });
1541
+ });
1542
+ Gi.displayName = Wi;
1543
+ var Ki = "AlertDialogContent", [qi, Ji] = Ii(Ki), Yi = m((e, t) => {
1544
+ let { __scopeAlertDialog: n, children: r, ...i } = e, a = Ri(n), o = I(t, g(null)), s = g(null);
1545
+ return /* @__PURE__ */ (0, Z.jsx)(qi, {
1546
+ scope: n,
1547
+ cancelRef: s,
1548
+ children: /* @__PURE__ */ (0, Z.jsx)(Nr, {
1549
+ role: "alertdialog",
1550
+ ...a,
1551
+ ...i,
1552
+ ref: o,
1553
+ onOpenAutoFocus: R(i.onOpenAutoFocus, (e) => {
1554
+ e.preventDefault(), s.current?.focus({ preventScroll: !0 });
1555
+ }),
1556
+ onPointerDownOutside: (e) => e.preventDefault(),
1557
+ onInteractOutside: (e) => e.preventDefault(),
1558
+ children: r
1559
+ })
1560
+ });
1561
+ });
1562
+ Yi.displayName = Ki;
1563
+ var Xi = "AlertDialogTitle", Zi = m((e, t) => {
1564
+ let { __scopeAlertDialog: n, ...r } = e, i = Ri(n);
1565
+ return /* @__PURE__ */ (0, Z.jsx)(Rr, {
1566
+ ...i,
1567
+ ...r,
1568
+ ref: t
1569
+ });
1570
+ });
1571
+ Zi.displayName = Xi;
1572
+ var Qi = "AlertDialogDescription", $i = m((e, t) => {
1573
+ let { __scopeAlertDialog: n, ...r } = e, i = Ri(n);
1574
+ return /* @__PURE__ */ (0, Z.jsx)(Br, {
1575
+ ...i,
1576
+ ...r,
1577
+ ref: t
1578
+ });
1579
+ });
1580
+ $i.displayName = Qi;
1581
+ var ea = "AlertDialogAction", ta = m((e, t) => {
1582
+ let { __scopeAlertDialog: n, ...r } = e, i = Ri(n);
1583
+ return /* @__PURE__ */ (0, Z.jsx)(Hr, {
1584
+ ...i,
1585
+ ...r,
1586
+ ref: t
1587
+ });
1588
+ });
1589
+ ta.displayName = ea;
1590
+ var na = "AlertDialogCancel", ra = m((e, t) => {
1591
+ let { __scopeAlertDialog: n, ...r } = e, { cancelRef: i } = Ji(na, n), a = Ri(n), o = I(t, i);
1592
+ return /* @__PURE__ */ (0, Z.jsx)(Hr, {
1593
+ ...a,
1594
+ ...r,
1595
+ ref: o
1596
+ });
1597
+ });
1598
+ ra.displayName = na;
1599
+ var ia = zi, aa = Vi, oa = Ui, sa = Gi, ca = Yi, la = ta, ua = ra, da = Zi, fa = $i;
1600
+ //#endregion
1601
+ //#region ../shade/es/components/ui/alert-dialog.js
1602
+ o();
1603
+ var pa = ia, ma = aa, ha = oa, ga = m(({ className: e, ...t }, n) => /* @__PURE__ */ (0, Z.jsx)(sa, {
1604
+ className: z("fixed inset-0 z-50 transform-gpu bg-black/30 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0 dark:bg-black/60", e),
1605
+ ...t,
1606
+ ref: n
1607
+ }));
1608
+ ga.displayName = sa.displayName;
1609
+ var _a = m(({ className: e, overlayClassName: t, ...n }, r) => /* @__PURE__ */ (0, Z.jsx)(ha, { children: /* @__PURE__ */ (0, Z.jsxs)(B, { children: [/* @__PURE__ */ (0, Z.jsx)(ga, {
1610
+ className: t,
1611
+ onClick: (e) => e.stopPropagation()
1612
+ }), /* @__PURE__ */ (0, Z.jsx)(ca, {
1613
+ ref: r,
1614
+ className: z("fixed top-[20%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-20%] gap-6 bg-surface-elevated-2 p-6 shadow-lg duration-200 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:slide-out-to-top-[18%] data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:slide-in-from-top-[18%] sm:rounded-lg", e),
1615
+ ...n
1616
+ })] }) }));
1617
+ _a.displayName = ca.displayName;
1618
+ var va = ({ className: e, ...t }) => /* @__PURE__ */ (0, Z.jsx)("div", {
1619
+ className: z("flex flex-col gap-y-2 text-center sm:text-left", e),
1620
+ ...t
1621
+ });
1622
+ va.displayName = "AlertDialogHeader";
1623
+ var ya = ({ className: e, ...t }) => /* @__PURE__ */ (0, Z.jsx)("div", {
1624
+ className: z("flex flex-col-reverse sm:flex-row sm:justify-end sm:gap-2", e),
1625
+ ...t
1626
+ });
1627
+ ya.displayName = "AlertDialogFooter";
1628
+ var ba = m(({ className: e, ...t }, n) => /* @__PURE__ */ (0, Z.jsx)(da, {
1629
+ ref: n,
1630
+ className: z("text-xl font-semibold", e),
1631
+ ...t
1632
+ }));
1633
+ ba.displayName = da.displayName;
1634
+ var xa = m(({ className: e, ...t }, n) => /* @__PURE__ */ (0, Z.jsx)(fa, {
1635
+ ref: n,
1636
+ className: z("text-base", e),
1637
+ ...t
1638
+ }));
1639
+ xa.displayName = fa.displayName;
1640
+ var Sa = m(({ className: e, variant: t, ...n }, r) => {
1641
+ let { controlShape: i, isAdmin7: a } = U();
1642
+ return /* @__PURE__ */ (0, Z.jsx)(la, {
1643
+ ref: r,
1644
+ className: z(se({
1645
+ isAdmin7: a,
1646
+ shape: i,
1647
+ variant: t
1648
+ }), e),
1649
+ ...n,
1650
+ "data-control-shape": i
1651
+ });
1652
+ });
1653
+ Sa.displayName = la.displayName;
1654
+ var Ca = m(({ className: e, ...t }, n) => {
1655
+ let { controlShape: r, isAdmin7: i } = U();
1656
+ return /* @__PURE__ */ (0, Z.jsx)(ua, {
1657
+ ref: n,
1658
+ className: z(se({
1659
+ isAdmin7: i,
1660
+ shape: r,
1661
+ variant: "outline"
1662
+ }), "mt-2 sm:mt-0", e),
1663
+ ...t,
1664
+ "data-control-shape": r
1665
+ });
1666
+ });
1667
+ //#endregion
1668
+ //#region ../shade/es/components/ui/input.js
1669
+ Ca.displayName = ua.displayName, o();
1670
+ var wa = m(({ className: e, type: t, ...n }, r) => /* @__PURE__ */ (0, Z.jsx)("input", {
1671
+ ref: r,
1672
+ className: z(gr("self"), hr.disabledFieldSelf, "flex h-(--control-height) w-full px-3 py-1 text-control file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground", e),
1673
+ type: t,
1674
+ ...n
1675
+ }));
1676
+ //#endregion
1677
+ //#region ../shade/es/components/ui/loading-indicator.js
1678
+ wa.displayName = "Input", o();
1679
+ var Ta = ({ size: e = "md", color: t = "dark", className: n = "" }) => {
1680
+ let r = "relative mx-0 my-[-0.5] box-border inline-block animate-spin rounded-full before:z-10 before:block before:rounded-full before:content-['']";
1681
+ switch (e) {
1682
+ case "sm":
1683
+ r += " h-[16px] w-[16px] border-2 before:mt-[10px] before:h-[3px] before:w-[3px]";
1684
+ break;
1685
+ case "md":
1686
+ r += " h-[20px] w-[20px] border-2 before:mt-[13px] before:h-[3px] before:w-[3px]";
1687
+ break;
1688
+ default:
1689
+ r += " h-[50px] w-[50px] border before:mt-[7px] before:h-[7px] before:w-[7px]";
1690
+ break;
1691
+ }
1692
+ switch (t) {
1693
+ case "current":
1694
+ r += " border-current/20 before:bg-current";
1695
+ break;
1696
+ case "light":
1697
+ r += " border-white/20 before:bg-white dark:border-black/10 dark:before:bg-black";
1698
+ break;
1699
+ default:
1700
+ r += " border-black/10 before:bg-black dark:border-white/20 dark:before:bg-white";
1701
+ break;
1702
+ }
1703
+ return /* @__PURE__ */ (0, Z.jsx)("div", { className: `${r} ${n}` });
1704
+ };
1705
+ //#endregion
1706
+ //#region ../shade/es/components/ui/animated-number.js
1707
+ o();
1708
+ var Ea = u(() => import("./dist-ByFmDSNP.js")), Da = (e) => /* @__PURE__ */ (0, Z.jsx)(c, {
1709
+ fallback: /* @__PURE__ */ (0, Z.jsx)("div", {}),
1710
+ children: /* @__PURE__ */ (0, Z.jsx)(Ea, { ...e })
1711
+ });
1712
+ //#endregion
1713
+ //#region ../shade/es/components/ui/badge.js
1714
+ o();
1715
+ var Oa = ee("inline-flex items-center border font-semibold transition-colors focus:ring-2 focus:ring-focus-ring focus:ring-offset-2 focus:outline-hidden", {
1716
+ variants: {
1717
+ variant: {
1718
+ default: "border-transparent bg-primary text-primary-foreground",
1719
+ secondary: "border-transparent bg-secondary text-secondary-foreground/70",
1720
+ destructive: "border-transparent bg-destructive/20 text-destructive",
1721
+ success: "border-transparent bg-green/20 text-green",
1722
+ warning: "border-transparent bg-state-warning/20 text-yellow-600",
1723
+ outline: "text-foreground"
1724
+ },
1725
+ size: {
1726
+ default: "px-1.5 text-xs",
1727
+ sm: "h-5 px-2 text-sm",
1728
+ md: "h-6 px-2.5 text-sm"
1729
+ },
1730
+ shape: {
1731
+ rounded: "rounded-xs",
1732
+ pill: "rounded-full"
1733
+ }
1734
+ },
1735
+ defaultVariants: {
1736
+ variant: "default",
1737
+ size: "default",
1738
+ shape: "pill"
1739
+ }
1740
+ });
1741
+ function ka({ className: e, shape: t, size: n, variant: r, asChild: i = !1, ...a }) {
1742
+ let { controlShape: o } = U();
1743
+ return /* @__PURE__ */ (0, Z.jsx)(i ? D : "div", {
1744
+ className: z(Oa({
1745
+ shape: t ?? o,
1746
+ size: n,
1747
+ variant: r
1748
+ }), e),
1749
+ ...a
1750
+ });
1751
+ }
1752
+ //#endregion
1753
+ //#region ../../node_modules/.pnpm/@radix-ui+react-label@2.1.11_@types+react-dom@18.3.7_@types+react@18.3.31__@types+react_b52ba80fbc885fa57ca9a4089e26a791/node_modules/@radix-ui/react-label/dist/index.mjs
1754
+ o();
1755
+ var Aa = "Label", ja = m((e, t) => /* @__PURE__ */ (0, Z.jsx)(L.label, {
1756
+ ...e,
1757
+ ref: t,
1758
+ onMouseDown: (t) => {
1759
+ t.target.closest("button, input, select, textarea") || (e.onMouseDown?.(t), !t.defaultPrevented && t.detail > 1 && t.preventDefault());
1760
+ }
1761
+ }));
1762
+ ja.displayName = Aa;
1763
+ var Ma = ja;
1764
+ //#endregion
1765
+ //#region ../../node_modules/.pnpm/@radix-ui+react-hover-card@1.1.18_@types+react-dom@18.3.7_@types+react@18.3.31__@types+_5116cc60c827801c0ce163cced83a480/node_modules/@radix-ui/react-hover-card/dist/index.mjs
1766
+ o();
1767
+ var Na, Pa = "HoverCard", [Fa, Ia] = F(Pa, [K]), La = K(), [Ra, za] = Fa(Pa), Ba = (e) => {
1768
+ let { __scopeHoverCard: t, children: n, open: r, defaultOpen: i, onOpenChange: a, openDelay: o = 700, closeDelay: c = 300 } = e, l = La(t), u = g(0), d = g(0), f = g(!1), p = g(!1), [m, _] = le({
1769
+ prop: r,
1770
+ defaultProp: i ?? !1,
1771
+ onChange: a,
1772
+ caller: Pa
1773
+ }), v = s(() => {
1774
+ clearTimeout(d.current), u.current = window.setTimeout(() => _(!0), o);
1775
+ }, [o, _]), y = s(() => {
1776
+ clearTimeout(u.current), !f.current && !p.current && (d.current = window.setTimeout(() => _(!1), c));
1777
+ }, [c, _]), b = s(() => _(!1), [_]);
1778
+ return h(() => () => {
1779
+ clearTimeout(u.current), clearTimeout(d.current);
1780
+ }, []), /* @__PURE__ */ (0, Z.jsx)(Ra, {
1781
+ scope: t,
1782
+ open: m,
1783
+ onOpenChange: _,
1784
+ onOpen: v,
1785
+ onClose: y,
1786
+ onDismiss: b,
1787
+ hasSelectionRef: f,
1788
+ isPointerDownOnContentRef: p,
1789
+ children: /* @__PURE__ */ (0, Z.jsx)(ae, {
1790
+ ...l,
1791
+ children: n
1792
+ })
1793
+ });
1794
+ };
1795
+ Ba.displayName = Pa;
1796
+ var Va = "HoverCardTrigger", Ha = m((e, t) => {
1797
+ let { __scopeHoverCard: n, ...r } = e, i = za(Va, n), a = La(n);
1798
+ return /* @__PURE__ */ (0, Z.jsx)(ie, {
1799
+ asChild: !0,
1800
+ ...a,
1801
+ children: /* @__PURE__ */ (0, Z.jsx)(L.a, {
1802
+ "data-state": i.open ? "open" : "closed",
1803
+ ...r,
1804
+ ref: t,
1805
+ onPointerEnter: R(e.onPointerEnter, Qa(i.onOpen)),
1806
+ onPointerLeave: R(e.onPointerLeave, Qa(i.onClose)),
1807
+ onFocus: R(e.onFocus, i.onOpen),
1808
+ onBlur: R(e.onBlur, i.onClose),
1809
+ onTouchStart: R(e.onTouchStart, (e) => e.preventDefault())
1810
+ })
1811
+ });
1812
+ });
1813
+ Ha.displayName = Va;
1814
+ var Ua = "HoverCardPortal", [Wa, Ga] = Fa(Ua, { forceMount: void 0 }), Ka = (e) => {
1815
+ let { __scopeHoverCard: t, forceMount: n, children: r, container: i } = e, a = za(Ua, t);
1816
+ return /* @__PURE__ */ (0, Z.jsx)(Wa, {
1817
+ scope: t,
1818
+ forceMount: n,
1819
+ children: /* @__PURE__ */ (0, Z.jsx)(V, {
1820
+ present: n || a.open,
1821
+ children: /* @__PURE__ */ (0, Z.jsx)(oe, {
1822
+ asChild: !0,
1823
+ container: i,
1824
+ children: r
1825
+ })
1826
+ })
1827
+ });
1828
+ };
1829
+ Ka.displayName = Ua;
1830
+ var qa = "HoverCardContent", Ja = m((e, t) => {
1831
+ let n = Ga(qa, e.__scopeHoverCard), { forceMount: r = n.forceMount, ...i } = e, a = za(qa, e.__scopeHoverCard);
1832
+ return /* @__PURE__ */ (0, Z.jsx)(V, {
1833
+ present: r || a.open,
1834
+ children: /* @__PURE__ */ (0, Z.jsx)(Ya, {
1835
+ "data-state": a.open ? "open" : "closed",
1836
+ ...i,
1837
+ onPointerEnter: R(e.onPointerEnter, Qa(a.onOpen)),
1838
+ onPointerLeave: R(e.onPointerLeave, Qa(a.onClose)),
1839
+ ref: t
1840
+ })
1841
+ });
1842
+ });
1843
+ Ja.displayName = qa;
1844
+ var Ya = m((e, t) => {
1845
+ let { __scopeHoverCard: r, onEscapeKeyDown: i, onPointerDownOutside: a, onFocusOutside: o, onInteractOutside: s, ...c } = e, l = za(qa, r), u = La(r), d = g(null), f = I(t, d), [p, m] = n(!1);
1846
+ return h(() => {
1847
+ if (p) {
1848
+ let e = document.body;
1849
+ return Na = e.style.userSelect || e.style.webkitUserSelect, e.style.userSelect = "none", e.style.webkitUserSelect = "none", () => {
1850
+ e.style.userSelect = Na, e.style.webkitUserSelect = Na;
1851
+ };
1852
+ }
1853
+ }, [p]), h(() => {
1854
+ if (d.current) {
1855
+ let e = () => {
1856
+ m(!1), l.isPointerDownOnContentRef.current = !1, setTimeout(() => {
1857
+ document.getSelection()?.toString() !== "" && (l.hasSelectionRef.current = !0);
1858
+ });
1859
+ };
1860
+ return document.addEventListener("pointerup", e), () => {
1861
+ document.removeEventListener("pointerup", e), l.hasSelectionRef.current = !1, l.isPointerDownOnContentRef.current = !1;
1862
+ };
1863
+ }
1864
+ }, [l.isPointerDownOnContentRef, l.hasSelectionRef]), h(() => {
1865
+ d.current && $a(d.current).forEach((e) => e.setAttribute("tabindex", "-1"));
1866
+ }), /* @__PURE__ */ (0, Z.jsx)(G, {
1867
+ asChild: !0,
1868
+ disableOutsidePointerEvents: !1,
1869
+ onInteractOutside: s,
1870
+ onEscapeKeyDown: i,
1871
+ onPointerDownOutside: a,
1872
+ onFocusOutside: R(o, (e) => {
1873
+ e.preventDefault();
1874
+ }),
1875
+ onDismiss: l.onDismiss,
1876
+ children: /* @__PURE__ */ (0, Z.jsx)(me, {
1877
+ ...u,
1878
+ ...c,
1879
+ onPointerDown: R(c.onPointerDown, (e) => {
1880
+ e.currentTarget.contains(e.target) && m(!0), l.hasSelectionRef.current = !1, l.isPointerDownOnContentRef.current = !0;
1881
+ }),
1882
+ ref: f,
1883
+ style: {
1884
+ ...c.style,
1885
+ userSelect: p ? "text" : void 0,
1886
+ WebkitUserSelect: p ? "text" : void 0,
1887
+ "--radix-hover-card-content-transform-origin": "var(--radix-popper-transform-origin)",
1888
+ "--radix-hover-card-content-available-width": "var(--radix-popper-available-width)",
1889
+ "--radix-hover-card-content-available-height": "var(--radix-popper-available-height)",
1890
+ "--radix-hover-card-trigger-width": "var(--radix-popper-anchor-width)",
1891
+ "--radix-hover-card-trigger-height": "var(--radix-popper-anchor-height)"
1892
+ }
1893
+ })
1894
+ });
1895
+ }), Xa = "HoverCardArrow", Za = m((e, t) => {
1896
+ let { __scopeHoverCard: n, ...r } = e, i = La(n);
1897
+ return /* @__PURE__ */ (0, Z.jsx)(pe, {
1898
+ ...i,
1899
+ ...r,
1900
+ ref: t
1901
+ });
1902
+ });
1903
+ Za.displayName = Xa;
1904
+ function Qa(e) {
1905
+ return (t) => t.pointerType === "touch" ? void 0 : e();
1906
+ }
1907
+ function $a(e) {
1908
+ let t = [], n = document.createTreeWalker(e, NodeFilter.SHOW_ELEMENT, { acceptNode: (e) => e.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP });
1909
+ for (; n.nextNode();) t.push(n.currentNode);
1910
+ return t;
1911
+ }
1912
+ var eo = Ba, to = Ha, no = Ka, ro = Ja;
1913
+ //#endregion
1914
+ //#region ../shade/es/components/ui/hover-card.js
1915
+ o();
1916
+ var io = eo, ao = to, oo = m(({ className: e, align: t = "center", sideOffset: n = 4, ...r }, i) => /* @__PURE__ */ (0, Z.jsx)(no, { children: /* @__PURE__ */ (0, Z.jsx)(B, { children: /* @__PURE__ */ (0, Z.jsx)(ro, {
1917
+ ref: i,
1918
+ align: t,
1919
+ className: z("pointer-events-auto z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95", e),
1920
+ sideOffset: n,
1921
+ ...r
1922
+ }) }) }));
1923
+ //#endregion
1924
+ //#region ../shade/es/components/ui/no-value-label.js
1925
+ oo.displayName = ro.displayName, o();
1926
+ var so = ({ className: e = "", children: t }) => /* @__PURE__ */ (0, Z.jsx)("div", {
1927
+ className: `my-10 flex flex-col items-center gap-1 text-sm text-text-secondary ${e}`,
1928
+ children: t
1929
+ }), co = ({ className: e = "", children: t }) => /* @__PURE__ */ (0, Z.jsx)("div", {
1930
+ className: `text-text-tertiary [&>svg]:size-8 [&>svg]:stroke-[1px] ${e}`,
1931
+ children: t
1932
+ });
1933
+ //#endregion
1934
+ //#region src/components/global/back-button.tsx
1935
+ o();
1936
+ var lo = ({ className: e, onClick: t }) => {
1937
+ let n = fe(), { previousPath: r } = N();
1938
+ return /* @__PURE__ */ (0, Z.jsx)(W, {
1939
+ className: z("size-8 rounded-full bg-white/85 px-2 backdrop-blur-md focus-visible:ring-0 dark:bg-transparent dark:text-white [&_svg]:size-6", e),
1940
+ variant: "ghost",
1941
+ onClick: () => {
1942
+ if (t) {
1943
+ t();
1944
+ return;
1945
+ }
1946
+ n(r ? -1 : "/");
1947
+ },
1948
+ children: /* @__PURE__ */ (0, Z.jsx)(st, {
1949
+ size: 20,
1950
+ strokeWidth: 1.25
1951
+ })
1952
+ });
1953
+ }, uo = () => {
1954
+ let e = S(nc, w().pathname);
1955
+ if (!e) return null;
1956
+ let t = e.map((e) => e.route).filter((e) => e.pageTitle);
1957
+ return t[t.length - 1] || e[e.length - 1].route;
1958
+ };
1959
+ //#endregion
1960
+ //#region src/hooks/use-current-page.ts
1961
+ function fo() {
1962
+ let e = y(), t = e.findIndex((e) => e.handle === "activitypub-basepath");
1963
+ if (t === -1) return "";
1964
+ let n = e[t + 1];
1965
+ if (!n) return "";
1966
+ let r = e[t].pathname, i = n.pathname, a = i.startsWith(r) ? i.slice(r.length) : i;
1967
+ return a = a.replace(/^\//, ""), a.split("/")[0];
1968
+ }
1969
+ //#endregion
1970
+ //#region src/components/layout/header/header.tsx
1971
+ o();
1972
+ var po = ({ title: e, backIcon: t }) => t ? /* @__PURE__ */ (0, Z.jsx)(lo, { className: "-ml-2" }) : /* @__PURE__ */ (0, Z.jsx)(ye, {
1973
+ className: "!text-[1.5rem] font-semibold tracking-normal",
1974
+ children: e
1975
+ }), mo = ({ onToggleMobileSidebar: e }) => /* @__PURE__ */ (0, Z.jsx)(W, {
1976
+ className: "px:0 mr-[-9px] w-[34px] rounded-full bg-white/85 backdrop-blur-md lg:hidden dark:bg-black/85 dark:text-white",
1977
+ variant: "ghost",
1978
+ onClick: e,
1979
+ children: /* @__PURE__ */ (0, Z.jsx)(yt, { className: "size-5!" })
1980
+ }), ho = ({ onToggleMobileSidebar: e, showBorder: t = !0 }) => {
1981
+ let { canGoBack: n } = N(), r = fo(), i = M(), a = uo(), o = !1;
1982
+ r === "profile" && (o = !0), r === "notes" && n && (o = !0);
1983
+ let s = n && i || a?.showBackButton === !0;
1984
+ return /* @__PURE__ */ (0, Z.jsx)(Z.Fragment, { children: o ? /* @__PURE__ */ (0, Z.jsxs)("div", {
1985
+ className: "sticky top-5 left-0 z-50 inline-block max-lg:flex max-lg:items-center max-lg:justify-between max-lg:pr-[15.5px] max-md:top-4",
1986
+ children: [/* @__PURE__ */ (0, Z.jsx)("div", { children: s && /* @__PURE__ */ (0, Z.jsx)(lo, { className: "ml-6 max-md:ml-[10px]" }) }), !s && /* @__PURE__ */ (0, Z.jsx)(mo, { onToggleMobileSidebar: e })]
1987
+ }) : /* @__PURE__ */ (0, Z.jsx)("div", {
1988
+ className: "sticky top-0 z-50 bg-white/85 backdrop-blur-md dark:bg-background",
1989
+ "data-network-header": "header",
1990
+ children: /* @__PURE__ */ (0, Z.jsxs)("div", {
1991
+ className: `relative flex h-[72px] items-center justify-between gap-5 px-[min(4vw,24px)] max-md:h-[68px] ${t ? "before:absolute before:inset-x-[min(4vw,24px)] before:bottom-0 before:block before:border-b before:border-gray-200 before:content-[\"\"] dark:before:border-gray-950" : ""}`,
1992
+ children: [/* @__PURE__ */ (0, Z.jsx)(po, {
1993
+ backIcon: s,
1994
+ title: a?.pageTitle || ""
1995
+ }), /* @__PURE__ */ (0, Z.jsx)(mo, { onToggleMobileSidebar: e })]
1996
+ })
1997
+ }) });
1998
+ };
1999
+ //#endregion
2000
+ //#region ../../node_modules/.pnpm/@radix-ui+react-form@0.1.11_@types+react-dom@18.3.7_@types+react@18.3.31__@types+react@_f82e31d0dd301bb9df24fd3128bc88e8/node_modules/@radix-ui/react-form/dist/index.mjs
2001
+ o();
2002
+ var [go, _o] = F("Form"), vo = "Form", [yo, bo] = go(vo), [xo, So] = go(vo), Co = m((e, t) => {
2003
+ let { __scopeForm: r, onClearServerErrors: i = () => {}, ...a } = e, o = I(t, g(null)), [c, l] = n({}), u = s((e) => c[e], [c]), d = s((e, t) => l((n) => ({
2004
+ ...n,
2005
+ [e]: {
2006
+ ...n[e] ?? {},
2007
+ ...t
2008
+ }
2009
+ })), []), f = s((e) => {
2010
+ l((t) => ({
2011
+ ...t,
2012
+ [e]: void 0
2013
+ })), b((t) => ({
2014
+ ...t,
2015
+ [e]: {}
2016
+ }));
2017
+ }, []), [p, m] = n({}), h = s((e) => p[e] ?? [], [p]), _ = s((e, t) => {
2018
+ m((n) => ({
2019
+ ...n,
2020
+ [e]: [...n[e] ?? [], t]
2021
+ }));
2022
+ }, []), v = s((e, t) => {
2023
+ m((n) => ({
2024
+ ...n,
2025
+ [e]: (n[e] ?? []).filter((e) => e.id !== t)
2026
+ }));
2027
+ }, []), [y, b] = n({}), x = s((e) => y[e] ?? {}, [y]), S = s((e, t) => {
2028
+ b((n) => ({
2029
+ ...n,
2030
+ [e]: {
2031
+ ...n[e] ?? {},
2032
+ ...t
2033
+ }
2034
+ }));
2035
+ }, []), [C, w] = n({});
2036
+ return /* @__PURE__ */ (0, Z.jsx)(yo, {
2037
+ scope: r,
2038
+ getFieldValidity: u,
2039
+ onFieldValidityChange: d,
2040
+ getFieldCustomMatcherEntries: h,
2041
+ onFieldCustomMatcherEntryAdd: _,
2042
+ onFieldCustomMatcherEntryRemove: v,
2043
+ getFieldCustomErrors: x,
2044
+ onFieldCustomErrorsChange: S,
2045
+ onFieldValiditionClear: f,
2046
+ children: /* @__PURE__ */ (0, Z.jsx)(xo, {
2047
+ scope: r,
2048
+ onFieldMessageIdAdd: s((e, t) => {
2049
+ w((n) => {
2050
+ let r = new Set(n[e]).add(t);
2051
+ return {
2052
+ ...n,
2053
+ [e]: r
2054
+ };
2055
+ });
2056
+ }, []),
2057
+ onFieldMessageIdRemove: s((e, t) => {
2058
+ w((n) => {
2059
+ let r = new Set(n[e]);
2060
+ return r.delete(t), {
2061
+ ...n,
2062
+ [e]: r
2063
+ };
2064
+ });
2065
+ }, []),
2066
+ getFieldDescription: s((e) => Array.from(C[e] ?? []).join(" ") || void 0, [C]),
2067
+ children: /* @__PURE__ */ (0, Z.jsx)(L.form, {
2068
+ ...a,
2069
+ ref: o,
2070
+ onInvalid: R(e.onInvalid, (e) => {
2071
+ let t = qo(e.currentTarget);
2072
+ t === e.target && t.focus(), e.preventDefault();
2073
+ }),
2074
+ onSubmit: R(e.onSubmit, i, { checkForDefaultPrevented: !1 }),
2075
+ onReset: R(e.onReset, i)
2076
+ })
2077
+ })
2078
+ });
2079
+ });
2080
+ Co.displayName = vo;
2081
+ var wo = "FormField", [To, Eo] = go(wo), Do = m((e, t) => {
2082
+ let { __scopeForm: n, name: r, serverInvalid: i = !1, ...a } = e, o = bo(wo, n).getFieldValidity(r);
2083
+ return /* @__PURE__ */ (0, Z.jsx)(To, {
2084
+ scope: n,
2085
+ id: k(),
2086
+ name: r,
2087
+ serverInvalid: i,
2088
+ children: /* @__PURE__ */ (0, Z.jsx)(L.div, {
2089
+ "data-valid": Qo(o, i),
2090
+ "data-invalid": $o(o, i),
2091
+ ...a,
2092
+ ref: t
2093
+ })
2094
+ });
2095
+ });
2096
+ Do.displayName = wo;
2097
+ var Oo = "FormLabel", ko = m((e, t) => {
2098
+ let { __scopeForm: n, ...r } = e, i = bo(Oo, n), a = Eo(Oo, n), o = r.htmlFor || a.id, s = i.getFieldValidity(a.name);
2099
+ return /* @__PURE__ */ (0, Z.jsx)(ja, {
2100
+ "data-valid": Qo(s, a.serverInvalid),
2101
+ "data-invalid": $o(s, a.serverInvalid),
2102
+ ...r,
2103
+ ref: t,
2104
+ htmlFor: o
2105
+ });
2106
+ });
2107
+ ko.displayName = Oo;
2108
+ var Ao = "FormControl", jo = m((e, t) => {
2109
+ let { __scopeForm: n, ...r } = e, i = bo(Ao, n), a = Eo(Ao, n), o = So(Ao, n), c = g(null), l = I(t, c), u = r.name || a.name, d = r.id || a.id, f = i.getFieldCustomMatcherEntries(u), { onFieldValidityChange: p, onFieldCustomErrorsChange: m, onFieldValiditionClear: _ } = i, v = s(async (e) => {
2110
+ if (Zo(e.validity)) {
2111
+ let t = Uo(e.validity);
2112
+ p(u, t);
2113
+ return;
2114
+ }
2115
+ let t = e.form ? new FormData(e.form) : new FormData(), n = [e.value, t], r = [], i = [];
2116
+ f.forEach((e) => {
2117
+ Jo(e, n) ? i.push(e) : Yo(e) && r.push(e);
2118
+ });
2119
+ let a = r.map(({ id: e, match: t }) => [e, t(...n)]), o = Object.fromEntries(a), s = Object.values(o).some(Boolean), c = s;
2120
+ e.setCustomValidity(c ? Mo : "");
2121
+ let l = Uo(e.validity);
2122
+ if (p(u, l), m(u, o), !s && i.length > 0) {
2123
+ let t = i.map(({ id: e, match: t }) => t(...n).then((t) => [e, t])), r = await Promise.all(t), a = Object.fromEntries(r), o = Object.values(a).some(Boolean);
2124
+ e.setCustomValidity(o ? Mo : "");
2125
+ let s = Uo(e.validity);
2126
+ p(u, s), m(u, a);
2127
+ }
2128
+ }, [
2129
+ f,
2130
+ u,
2131
+ m,
2132
+ p
2133
+ ]);
2134
+ h(() => {
2135
+ let e = c.current;
2136
+ if (e) {
2137
+ let t = () => v(e);
2138
+ return e.addEventListener("change", t), () => e.removeEventListener("change", t);
2139
+ }
2140
+ }, [v]);
2141
+ let y = s(() => {
2142
+ let e = c.current;
2143
+ e && (e.setCustomValidity(""), _(u));
2144
+ }, [u, _]);
2145
+ h(() => {
2146
+ let e = c.current?.form;
2147
+ if (e) return e.addEventListener("reset", y), () => e.removeEventListener("reset", y);
2148
+ }, [y]), h(() => {
2149
+ let e = c.current, t = e?.closest("form");
2150
+ if (t && a.serverInvalid) {
2151
+ let n = qo(t);
2152
+ n === e && n.focus();
2153
+ }
2154
+ }, [a.serverInvalid]);
2155
+ let b = i.getFieldValidity(u);
2156
+ return /* @__PURE__ */ (0, Z.jsx)(L.input, {
2157
+ "data-valid": Qo(b, a.serverInvalid),
2158
+ "data-invalid": $o(b, a.serverInvalid),
2159
+ "aria-invalid": a.serverInvalid ? !0 : void 0,
2160
+ "aria-describedby": o.getFieldDescription(u),
2161
+ title: "",
2162
+ ...r,
2163
+ ref: l,
2164
+ id: d,
2165
+ name: u,
2166
+ onInvalid: R(e.onInvalid, (e) => {
2167
+ let t = e.currentTarget;
2168
+ v(t);
2169
+ }),
2170
+ onChange: R(e.onChange, (e) => {
2171
+ y();
2172
+ })
2173
+ });
2174
+ });
2175
+ jo.displayName = Ao;
2176
+ var Mo = "This value is not valid", No = {
2177
+ badInput: Mo,
2178
+ patternMismatch: "This value does not match the required pattern",
2179
+ rangeOverflow: "This value is too large",
2180
+ rangeUnderflow: "This value is too small",
2181
+ stepMismatch: "This value does not match the required step",
2182
+ tooLong: "This value is too long",
2183
+ tooShort: "This value is too short",
2184
+ typeMismatch: "This value does not match the required type",
2185
+ valid: void 0,
2186
+ valueMissing: "This value is missing"
2187
+ }, Po = "FormMessage", Fo = m((e, t) => {
2188
+ let { match: n, name: r, ...i } = e, a = Eo(Po, e.__scopeForm), o = r ?? a.name;
2189
+ return n === void 0 ? /* @__PURE__ */ (0, Z.jsx)(Ro, {
2190
+ ...i,
2191
+ ref: t,
2192
+ name: o,
2193
+ children: e.children || Mo
2194
+ }) : typeof n == "function" ? /* @__PURE__ */ (0, Z.jsx)(Lo, {
2195
+ match: n,
2196
+ ...i,
2197
+ ref: t,
2198
+ name: o
2199
+ }) : /* @__PURE__ */ (0, Z.jsx)(Io, {
2200
+ match: n,
2201
+ ...i,
2202
+ ref: t,
2203
+ name: o
2204
+ });
2205
+ });
2206
+ Fo.displayName = Po;
2207
+ var Io = m((e, t) => {
2208
+ let { match: n, forceMatch: r = !1, name: i, children: a, ...o } = e, s = bo(Po, o.__scopeForm).getFieldValidity(i);
2209
+ return r || s?.[n] ? /* @__PURE__ */ (0, Z.jsx)(Ro, {
2210
+ ref: t,
2211
+ ...o,
2212
+ name: i,
2213
+ children: a ?? No[n]
2214
+ }) : null;
2215
+ }), Lo = m((e, n) => {
2216
+ let { match: r, forceMatch: i = !1, name: a, id: o, children: s, ...c } = e, l = bo(Po, c.__scopeForm), u = I(n, g(null)), d = k(), f = o ?? d, p = t(() => ({
2217
+ id: f,
2218
+ match: r
2219
+ }), [f, r]), { onFieldCustomMatcherEntryAdd: m, onFieldCustomMatcherEntryRemove: _ } = l;
2220
+ h(() => (m(a, p), () => _(a, p.id)), [
2221
+ p,
2222
+ a,
2223
+ m,
2224
+ _
2225
+ ]);
2226
+ let v = l.getFieldValidity(a), y = l.getFieldCustomErrors(a)[f];
2227
+ return i || v && !Zo(v) && y ? /* @__PURE__ */ (0, Z.jsx)(Ro, {
2228
+ id: f,
2229
+ ref: u,
2230
+ ...c,
2231
+ name: a,
2232
+ children: s ?? Mo
2233
+ }) : null;
2234
+ }), Ro = m((e, t) => {
2235
+ let { __scopeForm: n, id: r, name: i, ...a } = e, o = So(Po, n), s = k(), c = r ?? s, { onFieldMessageIdAdd: l, onFieldMessageIdRemove: u } = o;
2236
+ return h(() => (l(i, c), () => u(i, c)), [
2237
+ i,
2238
+ c,
2239
+ l,
2240
+ u
2241
+ ]), /* @__PURE__ */ (0, Z.jsx)(L.span, {
2242
+ id: c,
2243
+ ...a,
2244
+ ref: t
2245
+ });
2246
+ }), zo = "FormValidityState", Bo = (e) => {
2247
+ let { __scopeForm: t, name: n, children: r } = e, i = bo(zo, t), a = Eo(zo, t), o = n ?? a.name;
2248
+ return /* @__PURE__ */ (0, Z.jsx)(Z.Fragment, { children: r(i.getFieldValidity(o)) });
2249
+ };
2250
+ Bo.displayName = zo;
2251
+ var Vo = "FormSubmit", Ho = m((e, t) => {
2252
+ let { __scopeForm: n, ...r } = e;
2253
+ return /* @__PURE__ */ (0, Z.jsx)(L.button, {
2254
+ type: "submit",
2255
+ ...r,
2256
+ ref: t
2257
+ });
2258
+ });
2259
+ Ho.displayName = Vo;
2260
+ function Uo(e) {
2261
+ let t = {};
2262
+ for (let n in e) t[n] = e[n];
2263
+ return t;
2264
+ }
2265
+ function Wo(e) {
2266
+ return e instanceof HTMLElement;
2267
+ }
2268
+ function Go(e) {
2269
+ return "validity" in e;
2270
+ }
2271
+ function Ko(e) {
2272
+ return Go(e) && (e.validity.valid === !1 || e.getAttribute("aria-invalid") === "true");
2273
+ }
2274
+ function qo(e) {
2275
+ let t = e.elements, [n] = Array.from(t).filter(Wo).filter(Ko);
2276
+ return n;
2277
+ }
2278
+ function Jo(e, t) {
2279
+ return e.match.constructor.name === "AsyncFunction" || Xo(e.match, t);
2280
+ }
2281
+ function Yo(e) {
2282
+ return e.match.constructor.name === "Function";
2283
+ }
2284
+ function Xo(e, t) {
2285
+ return e(...t) instanceof Promise;
2286
+ }
2287
+ function Zo(e) {
2288
+ let t = !1;
2289
+ for (let n in e) {
2290
+ let r = n;
2291
+ if (r !== "valid" && r !== "customError" && e[r]) {
2292
+ t = !0;
2293
+ break;
2294
+ }
2295
+ }
2296
+ return t;
2297
+ }
2298
+ function Qo(e, t) {
2299
+ if (e?.valid === !0 && !t) return !0;
2300
+ }
2301
+ function $o(e, t) {
2302
+ if (e?.valid === !1 || t) return !0;
2303
+ }
2304
+ var es = Co, ts = Do, ns = jo, rs = ({ trigger: e, onCopyLink: t, onDelete: n, allowDelete: r = !1, disabled: i = !1, layout: a, followedByMe: o = !1, authoredByMe: s = !1, onFollow: c = () => {}, onUnfollow: l = () => {} }) => /* @__PURE__ */ (0, Z.jsxs)(pa, { children: [/* @__PURE__ */ (0, Z.jsxs)(ji, { children: [/* @__PURE__ */ (0, Z.jsx)(Mi, {
2305
+ disabled: i,
2306
+ asChild: !0,
2307
+ onClick: (e) => e.stopPropagation(),
2308
+ children: e
2309
+ }), /* @__PURE__ */ (0, Z.jsx)(Pi, {
2310
+ align: `${a === "modal" ? "start" : "end"}`,
2311
+ alignOffset: a === "modal" ? -12 : 0,
2312
+ className: "p-2",
2313
+ children: /* @__PURE__ */ (0, Z.jsxs)("div", {
2314
+ className: "flex w-48 flex-col",
2315
+ children: [
2316
+ (!r || a === "inbox") && /* @__PURE__ */ (0, Z.jsx)(Ni, {
2317
+ asChild: !0,
2318
+ children: /* @__PURE__ */ (0, Z.jsxs)(W, {
2319
+ className: "justify-start",
2320
+ variant: "ghost",
2321
+ onClick: (e) => {
2322
+ e.stopPropagation(), t();
2323
+ },
2324
+ children: [/* @__PURE__ */ (0, Z.jsx)(vt, {}), "Copy link"]
2325
+ })
2326
+ }),
2327
+ !s && /* @__PURE__ */ (0, Z.jsx)(Ni, {
2328
+ asChild: !0,
2329
+ children: /* @__PURE__ */ (0, Z.jsxs)(W, {
2330
+ className: "justify-start",
2331
+ variant: "ghost",
2332
+ onClick: (e) => {
2333
+ e.stopPropagation(), o ? l() : c();
2334
+ },
2335
+ children: [o ? /* @__PURE__ */ (0, Z.jsx)(kt, {}) : /* @__PURE__ */ (0, Z.jsx)(At, {}), o ? "Unfollow" : "Follow"]
2336
+ })
2337
+ }),
2338
+ r && /* @__PURE__ */ (0, Z.jsx)(ma, {
2339
+ asChild: !0,
2340
+ children: /* @__PURE__ */ (0, Z.jsx)(Ni, {
2341
+ asChild: !0,
2342
+ children: /* @__PURE__ */ (0, Z.jsxs)(W, {
2343
+ className: "justify-start text-red hover:bg-red/5 hover:text-red",
2344
+ variant: "ghost",
2345
+ onClick: (e) => e.stopPropagation(),
2346
+ children: [/* @__PURE__ */ (0, Z.jsx)(Dt, {}), "Delete"]
2347
+ })
2348
+ })
2349
+ })
2350
+ ]
2351
+ })
2352
+ })] }), /* @__PURE__ */ (0, Z.jsxs)(_a, {
2353
+ onClick: (e) => e.stopPropagation(),
2354
+ children: [/* @__PURE__ */ (0, Z.jsxs)(va, { children: [/* @__PURE__ */ (0, Z.jsx)(ba, { children: "Delete this post?" }), /* @__PURE__ */ (0, Z.jsx)(xa, { children: a === "inbox" ? "This will remove the post from the Ghost social web, but it will remain on your website." : /* @__PURE__ */ (0, Z.jsx)(Z.Fragment, { children: "If you delete this post, you won't be able to restore it." }) })] }), /* @__PURE__ */ (0, Z.jsxs)(ya, { children: [/* @__PURE__ */ (0, Z.jsx)(Ca, {
2355
+ onClick: (e) => e.stopPropagation(),
2356
+ children: "Cancel"
2357
+ }), /* @__PURE__ */ (0, Z.jsx)(Sa, {
2358
+ variant: "destructive",
2359
+ onClick: (e) => {
2360
+ e.stopPropagation(), n();
2361
+ },
2362
+ children: "Delete"
2363
+ })] })]
2364
+ })] });
2365
+ //#endregion
2366
+ //#region src/components/global/image-lightbox.tsx
2367
+ o();
2368
+ function is(e) {
2369
+ let [t, r] = n({
2370
+ images: [],
2371
+ currentIndex: 0,
2372
+ isOpen: !1
2373
+ }), i = (e) => {
2374
+ let t = bs(e);
2375
+ if (!t) return [];
2376
+ if (Array.isArray(t)) return t.map((e, t) => ({
2377
+ url: e.url,
2378
+ alt: e.name || `Image-${t}`
2379
+ }));
2380
+ if (t.mediaType?.startsWith("image/") || t.type === "Image") return [{
2381
+ url: t.url,
2382
+ alt: t.name || "Image"
2383
+ }];
2384
+ if (e.image) {
2385
+ let t;
2386
+ if (t = typeof e.image == "string" ? e.image : e.image?.url, t) return [{
2387
+ url: t,
2388
+ alt: "Image"
2389
+ }];
2390
+ }
2391
+ return [];
2392
+ };
2393
+ return {
2394
+ lightboxState: t,
2395
+ openLightbox: (t) => {
2396
+ if (!e) return;
2397
+ let n = i(e), a = n.findIndex((e) => e.url === t);
2398
+ a !== -1 && r({
2399
+ images: n,
2400
+ currentIndex: a,
2401
+ isOpen: !0
2402
+ });
2403
+ },
2404
+ closeLightbox: () => {
2405
+ r((e) => ({
2406
+ ...e,
2407
+ isOpen: !1
2408
+ }));
2409
+ },
2410
+ navigateToIndex: (e) => {
2411
+ r((t) => ({
2412
+ ...t,
2413
+ currentIndex: e
2414
+ }));
2415
+ }
2416
+ };
2417
+ }
2418
+ var as = ({ images: e, currentIndex: t, isOpen: n, onClose: r, onNavigate: i }) => {
2419
+ let a = t === 0, o = t === e.length - 1, c = s(() => {
2420
+ e.length <= 1 || o || i((t + 1) % e.length);
2421
+ }, [
2422
+ e.length,
2423
+ o,
2424
+ t,
2425
+ i
2426
+ ]), l = s(() => {
2427
+ e.length <= 1 || a || i((t - 1 + e.length) % e.length);
2428
+ }, [
2429
+ e.length,
2430
+ a,
2431
+ t,
2432
+ i
2433
+ ]);
2434
+ return h(() => {
2435
+ let e = (e) => {
2436
+ n && (e.key === "ArrowRight" && !o ? c() : e.key === "ArrowLeft" && !a && l());
2437
+ };
2438
+ return window.addEventListener("keydown", e), () => {
2439
+ window.removeEventListener("keydown", e);
2440
+ };
2441
+ }, [
2442
+ n,
2443
+ t,
2444
+ e.length,
2445
+ c,
2446
+ l,
2447
+ o,
2448
+ a
2449
+ ]), !n || e.length === 0 ? null : /* @__PURE__ */ (0, Z.jsx)(Wr, {
2450
+ open: n,
2451
+ onOpenChange: (e) => {
2452
+ e || r();
2453
+ },
2454
+ children: /* @__PURE__ */ (0, Z.jsxs)(Yr, {
2455
+ className: "top-[50%] h-[100vh] max-h-[100vh] w-[100vw] max-w-[100vw] translate-y-[-50%] items-center border-none bg-transparent p-0 shadow-none data-[state=closed]:zoom-out-100 data-[state=closed]:slide-out-to-top-[50%] data-[state=open]:zoom-in-100 data-[state=open]:slide-in-from-top-[50%]",
2456
+ onClick: () => r(),
2457
+ children: [
2458
+ /* @__PURE__ */ (0, Z.jsx)("img", {
2459
+ alt: e[t].alt,
2460
+ className: "mx-auto max-h-[90vh] max-w-[90vw] object-contain",
2461
+ src: e[t].url,
2462
+ onClick: (e) => e.stopPropagation()
2463
+ }),
2464
+ e.length > 1 && /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [/* @__PURE__ */ (0, Z.jsxs)(W, {
2465
+ className: "absolute top-1/2 left-5 size-11 -translate-y-1/2 rounded-full bg-black/50 p-0 pr-0.5 hover:bg-black/70",
2466
+ disabled: a,
2467
+ onClick: (e) => {
2468
+ e.stopPropagation(), l();
2469
+ },
2470
+ children: [/* @__PURE__ */ (0, Z.jsx)(ut, { className: "size-6!" }), /* @__PURE__ */ (0, Z.jsx)("span", {
2471
+ className: "sr-only",
2472
+ children: "Previous image"
2473
+ })]
2474
+ }), /* @__PURE__ */ (0, Z.jsxs)(W, {
2475
+ className: "absolute top-1/2 right-5 size-11 -translate-y-1/2 rounded-full bg-black/50 p-0 pl-0.5 hover:bg-black/70",
2476
+ disabled: o,
2477
+ onClick: (e) => {
2478
+ e.stopPropagation(), c();
2479
+ },
2480
+ children: [/* @__PURE__ */ (0, Z.jsx)(dt, { className: "size-6!" }), /* @__PURE__ */ (0, Z.jsx)("span", {
2481
+ className: "sr-only",
2482
+ children: "Next image"
2483
+ })]
2484
+ })] }),
2485
+ /* @__PURE__ */ (0, Z.jsx)(qr, {
2486
+ asChild: !0,
2487
+ children: /* @__PURE__ */ (0, Z.jsxs)(W, {
2488
+ className: "absolute top-5 right-5 size-11 rounded-full bg-black/50 p-0 hover:bg-black/70",
2489
+ children: [/* @__PURE__ */ (0, Z.jsx)(Be, { className: "size-5!" }), /* @__PURE__ */ (0, Z.jsx)("span", {
2490
+ className: "sr-only",
2491
+ children: "Close"
2492
+ })]
2493
+ })
2494
+ })
2495
+ ]
2496
+ })
2497
+ });
2498
+ };
2499
+ //#endregion
2500
+ //#region src/components/global/follow-button.tsx
2501
+ o();
2502
+ var os = () => {}, ss = ({ className: e, following: t, handle: r, variant: i = "default", onFollow: a = os, onUnfollow: o = os, "data-testid": s }) => {
2503
+ let [c, l] = n(t), u = we("index", () => {}, () => {
2504
+ l(!0);
2505
+ }), d = Pe("index", () => {}, () => {
2506
+ l(!1);
2507
+ }), f = async () => {
2508
+ c ? (l(!1), o(), u.mutate(r)) : (l(!0), a(), d.mutate(r));
2509
+ };
2510
+ h(() => {
2511
+ l(t);
2512
+ }, [t]);
2513
+ let p = c ? "Following" : "Follow";
2514
+ return i === "link" ? /* @__PURE__ */ (0, Z.jsx)(W, {
2515
+ className: de("p-0 font-medium", c ? "text-gray-700 hover:text-black dark:text-gray-600 dark:hover:text-white" : "text-purple hover:text-black dark:hover:text-white", e),
2516
+ "data-testid": s,
2517
+ variant: "link",
2518
+ onClick: (e) => {
2519
+ e?.preventDefault(), e?.stopPropagation(), f();
2520
+ },
2521
+ children: p
2522
+ }) : /* @__PURE__ */ (0, Z.jsx)(W, {
2523
+ className: de("min-w-[90px]", e),
2524
+ "data-testid": s,
2525
+ title: c ? "Click to unfollow" : "",
2526
+ variant: c ? "outline" : "default",
2527
+ onClick: (e) => {
2528
+ e?.preventDefault(), e?.stopPropagation(), f();
2529
+ },
2530
+ children: p
2531
+ });
2532
+ };
2533
+ //#endregion
2534
+ //#region src/components/global/profile-preview-hover-card.tsx
2535
+ o();
2536
+ var cs = (e) => "preferredUsername" in e, ls = ({ actor: e, children: t, disabled: r = !1, side: i = "bottom", align: a = "start", isCurrentUser: o = !1 }) => {
2537
+ let [s, c] = n(!1), l = fe(), u = e?.handle;
2538
+ !u && e && cs(e) && (u = We(e));
2539
+ let d = r || !u && !e, f = Oe("index", u || "", { enabled: s && !!u }), p = f.isFetching || f.isLoading, m = f.error, g = f.data ? typeof f.data.followerCount == "number" && typeof f.data.followingCount == "number" && f.data.bio !== void 0 : !1;
2540
+ if (h(() => {
2541
+ !s || !u || !g && !p && !m && f.refetch({ cancelRefetch: !1 });
2542
+ }, [
2543
+ f,
2544
+ p,
2545
+ m,
2546
+ g,
2547
+ s,
2548
+ u
2549
+ ]), d) return /* @__PURE__ */ (0, Z.jsx)(Z.Fragment, { children: t });
2550
+ let _ = f.data || e, v = _?.handle ?? u ?? "", y = _?.name ?? "", b = _?.avatarUrl ?? (e && cs(e) ? e.icon?.url : null) ?? null, x = !!_?.followsMe, S = typeof _?.followingCount == "number" ? _.followingCount : Number(_?.followingCount) || 0, C = typeof _?.followerCount == "number" ? _.followerCount : Number(_?.followerCount) || 0, w = _?.bio ? Ue(Ke(_.bio, ["a"])) : void 0, T = () => {
2551
+ v && l(`/profile/${v}`);
2552
+ };
2553
+ return /* @__PURE__ */ (0, Z.jsxs)(io, {
2554
+ onOpenChange: c,
2555
+ children: [/* @__PURE__ */ (0, Z.jsx)(ao, {
2556
+ asChild: !0,
2557
+ children: t
2558
+ }), /* @__PURE__ */ (0, Z.jsx)(oo, {
2559
+ align: a,
2560
+ className: "w-[320px] cursor-default rounded-2xl border-0 p-5 text-left text-gray-900 shadow-lg outline-hidden dark:bg-surface-elevated-2",
2561
+ side: i,
2562
+ sideOffset: 12,
2563
+ onClick: (e) => e.stopPropagation(),
2564
+ children: /* @__PURE__ */ (0, Z.jsxs)("div", {
2565
+ className: "flex flex-col gap-2",
2566
+ children: [
2567
+ /* @__PURE__ */ (0, Z.jsxs)("div", {
2568
+ className: "flex flex-col gap-2",
2569
+ children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
2570
+ className: "flex justify-between",
2571
+ children: [/* @__PURE__ */ (0, Z.jsxs)(Ze, {
2572
+ className: "size-14 cursor-pointer",
2573
+ onClick: T,
2574
+ children: [b && /* @__PURE__ */ (0, Z.jsx)(Xe, {
2575
+ alt: y,
2576
+ className: "rounded-full outline-[0.5px] outline-offset-[-0.5px] outline-black/10",
2577
+ src: b,
2578
+ onError: (e) => {
2579
+ e.target.src = "", e.target.style.display = "none";
2580
+ }
2581
+ }), /* @__PURE__ */ (0, Z.jsx)(Ye, {
2582
+ className: "bg-gray-200 text-sm font-semibold text-gray-700 dark:bg-gray-800 dark:text-gray-200",
2583
+ children: /* @__PURE__ */ (0, Z.jsx)(He, {
2584
+ className: "size-5 text-gray-500 dark:text-gray-400",
2585
+ strokeWidth: 1.5
2586
+ })
2587
+ })]
2588
+ }), !o && /* @__PURE__ */ (0, Z.jsx)(ss, {
2589
+ following: !!_?.followedByMe,
2590
+ handle: v,
2591
+ type: "primary"
2592
+ })]
2593
+ }), /* @__PURE__ */ (0, Z.jsxs)("div", {
2594
+ className: "flex cursor-pointer flex-col items-start",
2595
+ onClick: T,
2596
+ children: [/* @__PURE__ */ (0, Z.jsx)(De, {
2597
+ className: "w-full truncate",
2598
+ children: y
2599
+ }), /* @__PURE__ */ (0, Z.jsxs)("div", {
2600
+ className: "flex w-full gap-2",
2601
+ children: [/* @__PURE__ */ (0, Z.jsx)("span", {
2602
+ className: "truncate text-gray-700 dark:text-gray-600",
2603
+ children: v
2604
+ }), x && !o && /* @__PURE__ */ (0, Z.jsx)(ka, {
2605
+ className: "mt-px whitespace-nowrap",
2606
+ variant: "secondary",
2607
+ children: "Follows you"
2608
+ })]
2609
+ })]
2610
+ })]
2611
+ }),
2612
+ /* @__PURE__ */ (0, Z.jsx)("div", {
2613
+ className: "flex gap-3 dark:text-gray-300",
2614
+ children: p ? /* @__PURE__ */ (0, Z.jsx)(Y, { className: "h-4 w-32" }) : !m && /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [/* @__PURE__ */ (0, Z.jsxs)("span", {
2615
+ className: "cursor-pointer hover:underline",
2616
+ onClick: () => {
2617
+ v && l(`/profile/${v}/following`);
2618
+ },
2619
+ children: [
2620
+ /* @__PURE__ */ (0, Z.jsx)("span", {
2621
+ className: "font-bold text-black dark:text-white",
2622
+ children: ne(S)
2623
+ }),
2624
+ " ",
2625
+ "Following"
2626
+ ]
2627
+ }), /* @__PURE__ */ (0, Z.jsxs)("span", {
2628
+ className: "cursor-pointer hover:underline",
2629
+ onClick: () => {
2630
+ v && l(`/profile/${v}/followers`);
2631
+ },
2632
+ children: [
2633
+ /* @__PURE__ */ (0, Z.jsx)("span", {
2634
+ className: "font-bold text-black dark:text-white",
2635
+ children: ne(C)
2636
+ }),
2637
+ " ",
2638
+ "Followers"
2639
+ ]
2640
+ })] })
2641
+ }),
2642
+ p ? /* @__PURE__ */ (0, Z.jsx)(Y, { className: "h-4 w-48" }) : !m && w ? /* @__PURE__ */ (0, Z.jsx)("div", {
2643
+ dangerouslySetInnerHTML: { __html: Ge(w) },
2644
+ className: "leading-tight dark:text-gray-300 [&_.invisible]:hidden [&_a]:text-[#00a4eb] [&_a:hover]:underline"
2645
+ }) : null
2646
+ ]
2647
+ })
2648
+ })]
2649
+ });
2650
+ };
2651
+ //#endregion
2652
+ //#region src/hooks/use-keyboard-shortcuts.tsx
2653
+ o();
2654
+ var us = (e = {}) => {
2655
+ let [t, r] = n(!1), i = w();
2656
+ return h(() => {
2657
+ let t = (t) => {
2658
+ if (t.target instanceof HTMLInputElement || t.target instanceof HTMLTextAreaElement || t.target instanceof HTMLElement && t.target.isContentEditable || t.target instanceof HTMLSelectElement || t.metaKey || t.ctrlKey || t.altKey || t.shiftKey) return;
2659
+ let n = document.querySelector("[role=\"dialog\"][data-state=\"open\"]");
2660
+ if (!(n && (e.componentRef?.current)?.closest("[role=\"dialog\"]") !== n)) switch (t.key.toLowerCase()) {
2661
+ case "n":
2662
+ n || (t.preventDefault(), e.onOpenNewNote ? e.onOpenNewNote() : r(!0));
2663
+ break;
2664
+ case "r":
2665
+ e.isReplyAvailable && e.onOpenReply && (i.pathname.includes("/notes/") || i.pathname.includes("/reader/")) && (t.preventDefault(), e.onOpenReply());
2666
+ break;
2667
+ }
2668
+ };
2669
+ return document.addEventListener("keydown", t), () => document.removeEventListener("keydown", t);
2670
+ }, [e, i.pathname]), {
2671
+ isNewNoteModalOpen: t,
2672
+ setIsNewNoteModalOpen: r
2673
+ };
2674
+ };
2675
+ //#endregion
2676
+ //#region src/components/feed/feed-item-stats.tsx
2677
+ o();
2678
+ var ds = ({ actor: e, object: t, likeCount: r, commentCount: i, repostCount: a, layout: o, disabled: s = !1, buttonClassName: c = "", onLikeClick: l, onCommentClick: u, onReplyCountChange: d }) => {
2679
+ let [f, p] = n(t.liked), [m, _] = n(t.reposted), [v, y] = n(!1), b = g(null);
2680
+ us({
2681
+ isReplyAvailable: !u && o !== "reply",
2682
+ onOpenReply: () => y(!0),
2683
+ componentRef: b
2684
+ }), h(() => {
2685
+ p(t.liked), _(t.reposted);
2686
+ }, [t.liked, t.reposted]), h(() => {
2687
+ E(a);
2688
+ }, [a]);
2689
+ let x = Ne("index"), S = Fe("index"), C = Ae("index"), w = je("index"), [T, E] = n(a), D = async (e) => {
2690
+ e.stopPropagation(), f ? S.mutate(t.id) : x.mutate(t.id, { onError() {
2691
+ p(!1);
2692
+ } }), p(!f), l();
2693
+ }, O = (e) => {
2694
+ e.stopPropagation(), u ? u() : y(!0);
2695
+ }, k = `px-2 gap-1.5 font-normal text-md [&_svg]:size-[18px] transition-color ap-action-button text-gray-900 hover:text-gray-900 hover:bg-black/[3%] dark:hover:bg-gray-950 dark:text-gray-600 ${c}`;
2696
+ return /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
2697
+ ref: b,
2698
+ className: `flex ${o !== "inbox" && "gap-1"}`,
2699
+ children: [
2700
+ /* @__PURE__ */ (0, Z.jsxs)(W, {
2701
+ className: `${k} ${f && "text-pink-500 hover:text-pink-500"}`,
2702
+ "data-testid": "like-button",
2703
+ disabled: s,
2704
+ id: "like",
2705
+ title: `${f ? "Undo like" : "Like"}`,
2706
+ variant: "ghost",
2707
+ onClick: (e) => {
2708
+ e?.stopPropagation(), e && D(e);
2709
+ },
2710
+ children: [/* @__PURE__ */ (0, Z.jsx)(qe, { className: `${f && "fill-pink-500 text-pink-500"}` }), o !== "inbox" && /* @__PURE__ */ (0, Z.jsx)(Da, {
2711
+ className: r === 0 ? "-ml-1.5 w-0 overflow-hidden" : "",
2712
+ spinTiming: { duration: 300 },
2713
+ value: r
2714
+ })]
2715
+ }),
2716
+ /* @__PURE__ */ (0, Z.jsxs)(W, {
2717
+ className: `${k}`,
2718
+ "data-testid": "reply-button",
2719
+ disabled: s,
2720
+ id: "comment",
2721
+ title: "Reply",
2722
+ variant: "ghost",
2723
+ onClick: O,
2724
+ children: [/* @__PURE__ */ (0, Z.jsx)(bt, { className: "-mr-px" }), o !== "inbox" && i > 0 && j(i)]
2725
+ }),
2726
+ /* @__PURE__ */ (0, Z.jsxs)(W, {
2727
+ className: `${k} ${m && "text-green-500 hover:text-green-500"}`,
2728
+ "data-testid": "repost-button",
2729
+ disabled: s,
2730
+ id: "repost",
2731
+ title: `${m ? "Undo repost" : "Repost"}`,
2732
+ variant: "ghost",
2733
+ onClick: (e) => {
2734
+ e?.stopPropagation(), m ? (w.mutate(t.id), E(T - 1)) : (C.mutate(t.id, { onError() {
2735
+ _(!1), E(T - 1);
2736
+ } }), E(T + 1)), _(!m);
2737
+ },
2738
+ children: [/* @__PURE__ */ (0, Z.jsx)(Ct, { className: `${m && "text-green-500"}` }), o !== "inbox" && /* @__PURE__ */ (0, Z.jsx)(Da, {
2739
+ className: T === 0 ? "-ml-1.5 w-0 overflow-hidden" : "",
2740
+ spinTiming: { duration: 300 },
2741
+ value: T
2742
+ })]
2743
+ })
2744
+ ]
2745
+ }), v && /* @__PURE__ */ (0, Z.jsx)(Ps, {
2746
+ open: v,
2747
+ replyTo: {
2748
+ object: t,
2749
+ actor: e
2750
+ },
2751
+ onOpenChange: (e) => {
2752
+ y(e);
2753
+ },
2754
+ onReply: () => {
2755
+ d?.(1), y(!1);
2756
+ },
2757
+ onReplyError: () => {
2758
+ d?.(-1);
2759
+ }
2760
+ })] });
2761
+ };
2762
+ //#endregion
2763
+ //#region src/utils/get-reading-time.ts
2764
+ function fs(e) {
2765
+ let t = e.replace(/<[^>]*>/g, "").split(/\s+/).filter((e) => e.length > 0).length;
2766
+ return `${Math.ceil(t / 275)} min read`;
2767
+ }
2768
+ //#endregion
2769
+ //#region src/utils/handle-profile-click.ts
2770
+ var ps = (e, t, n) => {
2771
+ n?.stopPropagation(), t(typeof e == "string" ? `/profile/${e}` : `/profile/${We(e)}`);
2772
+ }, ms = (e) => {
2773
+ let t = /* @__PURE__ */ new Date(), n = (e) => new Date(e.getFullYear(), e.getMonth(), e.getDate()), r = n(t), i = n(/* @__PURE__ */ new Date(t.getTime() - 1440 * 60 * 1e3)), a = n(e);
2774
+ return a.getTime() === r.getTime() ? hs(e) : a.getTime() === i.getTime() ? "Yesterday" : gs(e);
2775
+ }, hs = (e) => {
2776
+ let t = Math.floor(((/* @__PURE__ */ new Date()).getTime() - e.getTime()) / 1e3);
2777
+ if (t < 1) return "Just now";
2778
+ if (t < 60) return `${t}s`;
2779
+ let n = Math.floor(t / 60);
2780
+ return n < 60 ? `${n}m` : `${Math.floor(n / 60)}h`;
2781
+ }, gs = (e) => {
2782
+ let t = /* @__PURE__ */ new Date(), n = e.getDate(), r = e.toLocaleString("default", { month: "short" });
2783
+ return e.getFullYear() === t.getFullYear() ? `${n} ${r}` : `${n} ${r} ${e.getFullYear()}`;
2784
+ };
2785
+ //#endregion
2786
+ //#region src/utils/render-timestamp.tsx
2787
+ function _s(e) {
2788
+ return new Date(e).toLocaleDateString("default", {
2789
+ year: "numeric",
2790
+ month: "short",
2791
+ day: "2-digit"
2792
+ }) + ", " + new Date(e).toLocaleTimeString("default", {
2793
+ hour: "2-digit",
2794
+ minute: "2-digit"
2795
+ });
2796
+ }
2797
+ function vs(e, t = !0) {
2798
+ let n = new Date(e?.published ?? e?.createdAt ?? /* @__PURE__ */ new Date()), r = _s(n), i = ms(n);
2799
+ return t && !e.url?.includes("/.ghost/activitypub") ? /* @__PURE__ */ (0, Z.jsx)("a", {
2800
+ className: "whitespace-nowrap text-gray-700 hover:underline",
2801
+ href: e.url,
2802
+ rel: "noreferrer",
2803
+ target: "_blank",
2804
+ title: r,
2805
+ onClick: (e) => e.stopPropagation(),
2806
+ children: i
2807
+ }) : /* @__PURE__ */ (0, Z.jsx)("span", {
2808
+ className: "whitespace-nowrap text-gray-700",
2809
+ children: i
2810
+ });
2811
+ }
2812
+ //#endregion
2813
+ //#region src/hooks/use-sensitive-media-disclosure.ts
2814
+ o();
2815
+ function ys({ contentWarning: e, sensitive: t, hasMedia: r, resetKey: i }) {
2816
+ let { data: a } = q(), o = a?.showSensitiveMedia ?? !1, [s, c] = n(!1), [l, u] = n(!1), [d, f] = n(!1), [p, m] = n(!0), [v, y] = n(void 0), b = g(null);
2817
+ h(() => {
2818
+ c(!1), u(!1), f(!1), m(!0), y(void 0);
2819
+ }, [i]), _(() => {
2820
+ !d || !p || (m(!1), y(void 0));
2821
+ }, [d, p]);
2822
+ let x = e?.trim() || null, S = x !== null, C = t === !0 && r && !S && !o, w = C && (l || !s);
2823
+ return {
2824
+ contentWarning: x,
2825
+ shouldHideContentWarning: S && !d,
2826
+ shouldHideSensitiveMedia: w,
2827
+ canHideSensitiveMedia: C && !w,
2828
+ isContentWarningRevealed: d,
2829
+ showContentWarningOverlay: p,
2830
+ contentWarningMinHeight: v,
2831
+ contentWarningWrapperRef: b,
2832
+ revealSensitiveMedia: (e) => {
2833
+ e.stopPropagation(), u(!1), c(!0);
2834
+ },
2835
+ hideSensitiveMedia: (e) => {
2836
+ e.stopPropagation(), u(!0), c(!1);
2837
+ },
2838
+ revealContentWarning: (e) => {
2839
+ e.stopPropagation();
2840
+ let t = b.current?.offsetHeight;
2841
+ t && y(t), f(!0);
2842
+ }
2843
+ };
2844
+ }
2845
+ //#endregion
2846
+ //#region src/components/feed/feed-item.tsx
2847
+ o();
2848
+ function bs(e) {
2849
+ let t;
2850
+ if (e.image && (t = typeof e.image == "string" ? {
2851
+ type: "Image",
2852
+ url: e.image
2853
+ } : {
2854
+ type: e.image.type ?? "Image",
2855
+ mediaType: e.image.mediaType,
2856
+ url: e.image.url
2857
+ }), e.type === "Note" && !t && (t = e.attachment), !t) return null;
2858
+ if (Array.isArray(t)) {
2859
+ if (t.length === 0) return null;
2860
+ if (t.length === 1) return t[0];
2861
+ }
2862
+ return t;
2863
+ }
2864
+ function xs(e, t, n, r) {
2865
+ let i = bs(e);
2866
+ if (!i) return null;
2867
+ let a = (e) => (n) => {
2868
+ n.stopPropagation(), t && t(e);
2869
+ }, o = (e) => {
2870
+ r && r(e);
2871
+ }, s = (e, t = !1) => /* @__PURE__ */ (0, Z.jsx)("div", {
2872
+ className: `${e} ${t ? "min-h-[200px]" : ""} flex w-full items-center justify-center bg-gray-100 dark:bg-gray-950/30`,
2873
+ children: /* @__PURE__ */ (0, Z.jsx)(gt, {
2874
+ className: "text-gray-400",
2875
+ size: 24,
2876
+ strokeWidth: 1.5
2877
+ })
2878
+ });
2879
+ if (Array.isArray(i)) {
2880
+ let e = i.length, r = "";
2881
+ return e === 1 ? r = "grid-cols-1" : e >= 2 && e <= 4 ? r = "grid-cols-2 auto-rows-[150px]" : e > 4 && (r = "grid-cols-3 auto-rows-[150px]"), /* @__PURE__ */ (0, Z.jsx)("div", {
2882
+ className: `attachment-gallery mt-3 grid w-full ${r} gap-2`,
2883
+ children: i.map((r, i) => {
2884
+ let c = `size-full rounded-md outline-1 -outline-offset-1 outline-black/10 ${e === 3 && i === 0 ? "row-span-2" : ""}`;
2885
+ return n && n.has(r.url) ? s(c, e === 1) : /* @__PURE__ */ (0, Z.jsx)("img", {
2886
+ alt: r.name || `Image-${i}`,
2887
+ className: `${c} cursor-pointer object-cover`,
2888
+ referrerPolicy: "no-referrer",
2889
+ src: r.url,
2890
+ onClick: t ? a(r.url) : void 0,
2891
+ onError: () => o(r.url)
2892
+ }, r.url);
2893
+ })
2894
+ });
2895
+ }
2896
+ switch (i.mediaType) {
2897
+ case "image/jpeg":
2898
+ case "image/png":
2899
+ case "image/gif":
2900
+ case "image/webp": return n && n.has(i.url) ? s(`${e.type === "Article" ? "w-full rounded-t-md" : "mt-3 max-h-[420px] rounded-md outline-1 -outline-offset-1 outline-black/10"}`, !0) : /* @__PURE__ */ (0, Z.jsx)("img", {
2901
+ alt: i.name || "Image",
2902
+ className: `cursor-pointer ${e.type === "Article" ? "w-full rounded-t-md" : "mt-3 max-h-[420px] rounded-md outline-1 -outline-offset-1 outline-black/10"}`,
2903
+ referrerPolicy: "no-referrer",
2904
+ src: i.url,
2905
+ onClick: t ? a(i.url) : void 0,
2906
+ onError: () => o(i.url)
2907
+ });
2908
+ case "video/mp4":
2909
+ case "video/webm": return /* @__PURE__ */ (0, Z.jsx)("div", {
2910
+ className: "relative mt-3 mb-4",
2911
+ children: /* @__PURE__ */ (0, Z.jsx)("video", {
2912
+ className: "h-[300px] w-full rounded object-cover",
2913
+ src: i.url,
2914
+ controls: !0
2915
+ })
2916
+ });
2917
+ case "audio/mpeg":
2918
+ case "audio/ogg": return /* @__PURE__ */ (0, Z.jsx)("div", {
2919
+ className: "relative mt-2 mb-4 w-full",
2920
+ children: /* @__PURE__ */ (0, Z.jsx)("audio", {
2921
+ className: "w-full",
2922
+ src: i.url,
2923
+ controls: !0
2924
+ })
2925
+ });
2926
+ default:
2927
+ if (e.image || i.type === "Image") {
2928
+ let r = e.type === "Article" ? "cursor-pointer aspect-[16/7.55] w-full rounded-t-md object-cover" : "cursor-pointer mt-3 max-h-[420px] rounded-md outline-1 -outline-offset-1 outline-black/10", c;
2929
+ return c = e.image ? typeof e.image == "string" ? e.image : e.image?.url : i.url, n && n.has(c) ? s(r, !0) : /* @__PURE__ */ (0, Z.jsx)("img", {
2930
+ alt: i.name || "Image",
2931
+ className: r,
2932
+ referrerPolicy: "no-referrer",
2933
+ src: c,
2934
+ onClick: t ? a(c) : void 0,
2935
+ onError: () => o(c)
2936
+ });
2937
+ }
2938
+ return null;
2939
+ }
2940
+ }
2941
+ function Ss({ className: e = "", isLayered: t = !1, size: n = "default", showLabel: r = !0, onReveal: i }) {
2942
+ let a = n === "compact";
2943
+ return /* @__PURE__ */ (0, Z.jsxs)("div", {
2944
+ className: de("flex items-center justify-center overflow-hidden bg-foreground/45 text-background backdrop-blur-xl", a ? "p-2" : "[container-type:size] p-[clamp(0.75rem,6cqh,2rem)]", t ? "absolute inset-0 rounded-none" : a ? "relative rounded-md" : "relative mt-3 min-h-[300px] w-full rounded-md", e),
2945
+ "data-testid": "sensitive-media-overlay",
2946
+ onClick: (e) => e.stopPropagation(),
2947
+ children: [/* @__PURE__ */ (0, Z.jsx)("div", { className: "absolute inset-0 bg-foreground/35" }), a ? /* @__PURE__ */ (0, Z.jsxs)("div", {
2948
+ className: "relative z-10 flex flex-col items-center justify-center gap-0.5 text-center",
2949
+ children: [
2950
+ /* @__PURE__ */ (0, Z.jsx)(ht, {
2951
+ "aria-hidden": "true",
2952
+ className: "size-5",
2953
+ strokeWidth: 2.25
2954
+ }),
2955
+ r && /* @__PURE__ */ (0, Z.jsx)(Ce, {
2956
+ className: "text-sm leading-none text-background",
2957
+ weight: "bold",
2958
+ children: "Sensitive media"
2959
+ }),
2960
+ /* @__PURE__ */ (0, Z.jsx)(W, {
2961
+ "aria-label": "Show media",
2962
+ className: "mt-0.5 h-6 rounded-full bg-background/35 px-3 text-xs font-bold text-background shadow-[0_0_0_1px_color-mix(in_oklab,var(--background)_35%,transparent)] hover:bg-background/25 hover:text-background",
2963
+ size: "sm",
2964
+ type: "button",
2965
+ variant: "ghost",
2966
+ onClick: i,
2967
+ children: "Show"
2968
+ })
2969
+ ]
2970
+ }) : /* @__PURE__ */ (0, Z.jsxs)("div", {
2971
+ className: "relative z-10 grid size-full max-w-[520px] grid-rows-[minmax(0,1fr)_auto_minmax(0.5rem,6cqh)_auto_minmax(0.75rem,8cqh)_auto_minmax(0,1fr)] justify-items-center text-center",
2972
+ children: [
2973
+ /* @__PURE__ */ (0, Z.jsx)(ht, {
2974
+ "aria-hidden": "true",
2975
+ className: "row-start-2 size-[clamp(1.5rem,14cqh,2.25rem)]",
2976
+ strokeWidth: 2.25
2977
+ }),
2978
+ /* @__PURE__ */ (0, Z.jsxs)("div", {
2979
+ className: "row-start-4 flex flex-col items-center gap-1",
2980
+ children: [/* @__PURE__ */ (0, Z.jsx)(Ce, {
2981
+ className: "text-background",
2982
+ weight: "bold",
2983
+ children: "Sensitive media"
2984
+ }), /* @__PURE__ */ (0, Z.jsx)(Ce, {
2985
+ className: "leading-tight text-background",
2986
+ children: "The following may contain sensitive material"
2987
+ })]
2988
+ }),
2989
+ /* @__PURE__ */ (0, Z.jsx)(W, {
2990
+ "aria-label": "Show media",
2991
+ className: "row-start-6 rounded-full bg-background/35 px-8 font-bold text-background shadow-[0_0_0_1px_color-mix(in_oklab,var(--background)_35%,transparent)] hover:bg-background/25 hover:text-background",
2992
+ size: "default",
2993
+ type: "button",
2994
+ variant: "ghost",
2995
+ onClick: i,
2996
+ children: "Show"
2997
+ })
2998
+ ]
2999
+ })]
3000
+ });
3001
+ }
3002
+ function Cs({ label: e = "Hide media", layout: t = "overlay", onHide: n }) {
3003
+ return /* @__PURE__ */ (0, Z.jsx)(W, {
3004
+ "aria-label": "Hide sensitive media",
3005
+ className: de("z-20 rounded-full bg-foreground/80 px-6 font-bold text-background hover:bg-foreground/90 hover:text-background", t === "overlay" && "absolute top-5 right-5"),
3006
+ size: "default",
3007
+ type: "button",
3008
+ variant: "ghost",
3009
+ onClick: n,
3010
+ children: e
3011
+ });
3012
+ }
3013
+ function ws({ className: e = "", isLayered: t = !1, label: n, size: r = "default", onReveal: i }) {
3014
+ let a = r === "compact";
3015
+ return /* @__PURE__ */ (0, Z.jsxs)("div", {
3016
+ className: de("flex w-full items-center justify-center overflow-hidden bg-foreground/45 text-background backdrop-blur-xl", a ? "p-4" : "[container-type:inline-size] p-[clamp(0.75rem,6cqw,2rem)]", t ? "absolute inset-0 rounded-none" : a ? "relative min-h-[73px] w-full rounded-md" : "relative min-h-[300px] w-full rounded-md", e),
3017
+ "data-testid": "content-warning-overlay",
3018
+ onClick: (e) => e.stopPropagation(),
3019
+ children: [/* @__PURE__ */ (0, Z.jsx)("div", { className: "absolute inset-0 bg-foreground/35" }), a ? /* @__PURE__ */ (0, Z.jsxs)("div", {
3020
+ className: "relative z-10 flex w-full max-w-[520px] flex-col items-center justify-center gap-2 text-center",
3021
+ children: [
3022
+ /* @__PURE__ */ (0, Z.jsx)(ht, {
3023
+ "aria-hidden": "true",
3024
+ className: "size-5",
3025
+ strokeWidth: 2.25
3026
+ }),
3027
+ /* @__PURE__ */ (0, Z.jsxs)("div", {
3028
+ className: "flex flex-col items-center gap-0.5",
3029
+ children: [/* @__PURE__ */ (0, Z.jsx)(Ce, {
3030
+ className: "text-sm text-background",
3031
+ weight: "bold",
3032
+ children: "Content warning:"
3033
+ }), /* @__PURE__ */ (0, Z.jsx)(Ce, {
3034
+ className: "text-sm leading-tight text-background",
3035
+ children: n
3036
+ })]
3037
+ }),
3038
+ /* @__PURE__ */ (0, Z.jsx)(W, {
3039
+ "aria-label": "Show post",
3040
+ className: "rounded-full bg-background/35 px-6 text-sm font-bold text-background shadow-[0_0_0_1px_color-mix(in_oklab,var(--background)_35%,transparent)] hover:bg-background/25 hover:text-background",
3041
+ size: "sm",
3042
+ type: "button",
3043
+ variant: "ghost",
3044
+ onClick: i,
3045
+ children: "Show"
3046
+ })
3047
+ ]
3048
+ }) : /* @__PURE__ */ (0, Z.jsxs)("div", {
3049
+ className: "relative z-10 grid size-full max-w-[520px] grid-rows-[minmax(0,1fr)_auto_clamp(1.25rem,3.85cqw,1.8rem)_auto_clamp(1.5rem,5.15cqw,2.4rem)_auto_minmax(0,1fr)] justify-items-center text-center",
3050
+ children: [
3051
+ /* @__PURE__ */ (0, Z.jsx)(ht, {
3052
+ "aria-hidden": "true",
3053
+ className: "row-start-2 size-[clamp(1.5rem,4.85cqw,2.25rem)]",
3054
+ strokeWidth: 2.25
3055
+ }),
3056
+ /* @__PURE__ */ (0, Z.jsxs)("div", {
3057
+ className: "row-start-4 flex flex-col items-center gap-1",
3058
+ children: [/* @__PURE__ */ (0, Z.jsx)(Ce, {
3059
+ className: "text-background",
3060
+ weight: "bold",
3061
+ children: "Content warning:"
3062
+ }), /* @__PURE__ */ (0, Z.jsx)(Ce, {
3063
+ className: "leading-tight text-background",
3064
+ children: n
3065
+ })]
3066
+ }),
3067
+ /* @__PURE__ */ (0, Z.jsx)(W, {
3068
+ "aria-label": "Show post",
3069
+ className: "row-start-6 rounded-full bg-background/35 px-8 font-bold text-background shadow-[0_0_0_1px_color-mix(in_oklab,var(--background)_35%,transparent)] hover:bg-background/25 hover:text-background",
3070
+ size: "default",
3071
+ type: "button",
3072
+ variant: "ghost",
3073
+ onClick: i,
3074
+ children: "Show"
3075
+ })
3076
+ ]
3077
+ })]
3078
+ });
3079
+ }
3080
+ function Ts(e, t) {
3081
+ let n = bs(e), r = "ml-8 md:ml-9 shrink-0 rounded-md h-[91px] w-[121px] relative hidden @md/inbox-item:block", i = de("object-cover outline-1 -outline-offset-1 outline-black/[0.05]", r);
3082
+ if (t) return /* @__PURE__ */ (0, Z.jsx)(Y, { className: `${i} outline-0` });
3083
+ if (!n) return null;
3084
+ if (Array.isArray(n)) return /* @__PURE__ */ (0, Z.jsx)("img", {
3085
+ className: i,
3086
+ referrerPolicy: "no-referrer",
3087
+ src: n[0].url
3088
+ });
3089
+ switch (n.mediaType) {
3090
+ case "image/jpeg":
3091
+ case "image/png":
3092
+ case "image/gif": return /* @__PURE__ */ (0, Z.jsx)("img", {
3093
+ className: i,
3094
+ referrerPolicy: "no-referrer",
3095
+ src: n.url
3096
+ });
3097
+ case "video/mp4":
3098
+ case "video/webm": return /* @__PURE__ */ (0, Z.jsxs)("div", {
3099
+ className: r,
3100
+ children: [
3101
+ /* @__PURE__ */ (0, Z.jsx)("video", {
3102
+ className: "h-[80px] w-full rounded object-cover",
3103
+ src: n.url
3104
+ }),
3105
+ /* @__PURE__ */ (0, Z.jsx)("div", { className: "absolute inset-0 rounded bg-gray-900 opacity-50" }),
3106
+ /* @__PURE__ */ (0, Z.jsx)("div", {
3107
+ className: "absolute inset-0 flex items-center justify-center",
3108
+ children: /* @__PURE__ */ (0, Z.jsx)(St, {
3109
+ color: "white",
3110
+ fill: "white",
3111
+ size: 40
3112
+ })
3113
+ })
3114
+ ]
3115
+ });
3116
+ case "audio/mpeg":
3117
+ case "audio/ogg": return /* @__PURE__ */ (0, Z.jsx)("div", {
3118
+ className: "ml-8 w-[120px]",
3119
+ children: /* @__PURE__ */ (0, Z.jsx)("div", {
3120
+ className: "relative mt-2 mb-4 w-full",
3121
+ children: /* @__PURE__ */ (0, Z.jsx)("audio", {
3122
+ className: "w-full",
3123
+ src: n.url,
3124
+ controls: !0
3125
+ })
3126
+ })
3127
+ });
3128
+ default: return e.image ? /* @__PURE__ */ (0, Z.jsx)("img", {
3129
+ className: i,
3130
+ referrerPolicy: "no-referrer",
3131
+ src: typeof e.image == "string" ? e.image : e.image?.url
3132
+ }) : null;
3133
+ }
3134
+ }
3135
+ var Es = () => {}, Ds = /* @__PURE__ */ (0, Z.jsx)(Ct, {
3136
+ className: "shrink-0 text-gray-700 dark:text-gray-600",
3137
+ size: 16,
3138
+ strokeWidth: 1.5
3139
+ }), Os = ({ actor: e, allowDelete: t = !1, object: r, parentId: i = void 0, layout: a, type: o, commentCount: s = 0, repostCount: c = 0, likeCount: l = 0, showHeader: u = !0, last: d, isLoading: f, isPending: p = !1, isCompact: m = !1, isChainContinuation: _ = !1, isChainParent: v = !1, onClick: y = Es, onDelete: b = Es, showStats: S = !0 }) => {
3140
+ let C = new Date(r?.published ?? /* @__PURE__ */ new Date()).toLocaleDateString("default", {
3141
+ year: "numeric",
3142
+ month: "short",
3143
+ day: "2-digit"
3144
+ }) + ", " + new Date(r?.published ?? /* @__PURE__ */ new Date()).toLocaleTimeString("default", {
3145
+ hour: "2-digit",
3146
+ minute: "2-digit"
3147
+ }), [, w] = n(!1), [T, E] = n(/* @__PURE__ */ new Set()), D = g(null), [O, k] = n(!1), A = ke("index"), j = fe(), { contentWarning: M, shouldHideContentWarning: ee, shouldHideSensitiveMedia: N, canHideSensitiveMedia: P, isContentWarningRevealed: F, showContentWarningOverlay: I, contentWarningMinHeight: L, contentWarningWrapperRef: R, revealSensitiveMedia: te, hideSensitiveMedia: ne, revealContentWarning: re } = ys({
3148
+ contentWarning: r?.contentWarning,
3149
+ sensitive: r?.sensitive,
3150
+ hasMedia: bs(r) !== null,
3151
+ resetKey: r?.id
3152
+ }), z = Pe("index", () => {
3153
+ x.success(`Followed ${U?.name}`);
3154
+ }, () => {
3155
+ x.error("Failed to follow");
3156
+ }), ie = we("index", () => {
3157
+ x.info(`Unfollowed ${U?.name}`);
3158
+ }, () => {
3159
+ x.error("Failed to unfollow");
3160
+ });
3161
+ h(() => {
3162
+ let e = D.current;
3163
+ e && k(e.scrollHeight > e.clientHeight);
3164
+ }, [r?.content]), h(() => {
3165
+ let e = D.current;
3166
+ if (!e) return;
3167
+ let t = (e) => {
3168
+ let t = e.target.closest("a[data-profile]");
3169
+ if (t) {
3170
+ let n = t.getAttribute("data-profile")?.trim();
3171
+ /^@([\w.-]+)@([\w-]+\.[\w.-]+[a-zA-Z])$/.test(n || "") && n && (e.preventDefault(), e.stopPropagation(), ps(n, j));
3172
+ }
3173
+ };
3174
+ return e.addEventListener("click", t), () => {
3175
+ e.removeEventListener("click", t);
3176
+ };
3177
+ }, [j, r?.content]);
3178
+ let ae = () => {}, B = () => {
3179
+ p || y();
3180
+ }, oe = () => {
3181
+ A.mutate({
3182
+ id: r.id,
3183
+ parentId: i
3184
+ }), b();
3185
+ }, V = async () => {
3186
+ r?.url && (await navigator.clipboard.writeText(r.url), w(!0), x.success("Link copied"), setTimeout(() => w(!1), 2e3));
3187
+ }, se = (e) => {
3188
+ E((t) => new Set(t).add(e));
3189
+ }, ce = (e) => {
3190
+ if (N) {
3191
+ let e = xs(r, void 0, T, se);
3192
+ return e ? /* @__PURE__ */ (0, Z.jsxs)("div", {
3193
+ className: de("relative mt-3 overflow-hidden rounded-md [&>.attachment-gallery]:mt-0 [&>img]:mt-0 [&>img]:block", Array.isArray(bs(r)) ? "w-full" : "w-fit max-w-full"),
3194
+ children: [e, /* @__PURE__ */ (0, Z.jsx)(Ss, {
3195
+ isLayered: !0,
3196
+ onReveal: te
3197
+ })]
3198
+ }) : /* @__PURE__ */ (0, Z.jsx)(Ss, { onReveal: te });
3199
+ }
3200
+ let t = xs(r, e, T, se);
3201
+ return t ? P ? /* @__PURE__ */ (0, Z.jsxs)("div", {
3202
+ className: de("relative mt-3 [&>.attachment-gallery]:mt-0 [&>img]:mt-0 [&>img]:block", Array.isArray(bs(r)) ? "w-full" : "w-fit max-w-full"),
3203
+ children: [t, /* @__PURE__ */ (0, Z.jsx)(Cs, {
3204
+ label: "Hide",
3205
+ onHide: ne
3206
+ })]
3207
+ }) : t : null;
3208
+ }, le = (e = !1) => M ? /* @__PURE__ */ (0, Z.jsx)(ws, {
3209
+ isLayered: e,
3210
+ label: M,
3211
+ size: a === "inbox" || a === "reply" ? "compact" : "default",
3212
+ onReveal: re
3213
+ }) : null, ue = (e) => {
3214
+ let { contentClassName: t = "ap-note-content break-anywhere line-clamp-[10] leading-[1.4285714286] tracking-[-0.006em] text-pretty text-gray-900 dark:text-gray-300 [&_p+p]:mt-3", mediaClickHandler: n = ve, showName: i = !1 } = e ?? {};
3215
+ return /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [
3216
+ i && r.name && /* @__PURE__ */ (0, Z.jsx)(J, {
3217
+ className: "break-anywhere mb-1 leading-tight",
3218
+ "data-test-activity-heading": !0,
3219
+ children: r.name
3220
+ }),
3221
+ /* @__PURE__ */ (0, Z.jsx)("div", {
3222
+ className: t,
3223
+ children: f ? /* @__PURE__ */ (0, Z.jsx)(Y, { count: 2 }) : /* @__PURE__ */ (0, Z.jsx)("div", {
3224
+ dangerouslySetInnerHTML: { __html: Ge(Ue(r.content || "") ?? "") },
3225
+ ref: D,
3226
+ onClick: (e) => {
3227
+ let t = e.target;
3228
+ (t.tagName === "A" || t.closest("a")) && e.stopPropagation();
3229
+ }
3230
+ })
3231
+ }),
3232
+ O && /* @__PURE__ */ (0, Z.jsx)("button", {
3233
+ className: "mt-1 text-blue-600",
3234
+ type: "button",
3235
+ children: "Show more"
3236
+ }),
3237
+ ce(n)
3238
+ ] });
3239
+ }, H = (e) => M ? /* @__PURE__ */ (0, Z.jsxs)("div", {
3240
+ ref: R,
3241
+ className: "relative w-full",
3242
+ style: L ? { minHeight: L } : void 0,
3243
+ children: [F && ue(e), I && le(F)]
3244
+ }) : ue(e), U = e;
3245
+ o === "Announce" && (U = typeof r.attributedTo == "object" ? r.attributedTo : e);
3246
+ let pe = U ? We(U) : null, G = U?.followedByMe || !1, K = o === "Announce" ? typeof r.attributedTo == "object" && r.attributedTo && !Array.isArray(r.attributedTo) && "authored" in r.attributedTo ? r.attributedTo.authored : typeof r.attributedTo == "object" && r.attributedTo && !Array.isArray(r.attributedTo) && typeof e == "object" && e && r.attributedTo.id === e.id : r.authored, me = o === "Announce" ? r.reposted ?? !1 : r.authored, he = () => {
3247
+ pe && z.mutate(pe);
3248
+ }, ge = () => {
3249
+ pe && ie.mutate(pe);
3250
+ }, _e = /* @__PURE__ */ (0, Z.jsx)(W, {
3251
+ className: `relative z-10 size-[34px] rounded-md ${a === "inbox" || a === "modal" ? "text-gray-900 hover:text-gray-900 dark:text-gray-600 dark:hover:text-gray-600" : "text-gray-500 hover:text-gray-500"} dark:hover:bg-gray-950 [&_svg]:size-5`,
3252
+ "data-testid": "menu-button",
3253
+ variant: "ghost",
3254
+ children: /* @__PURE__ */ (0, Z.jsx)(pt, {})
3255
+ }), { lightboxState: q, openLightbox: ve, closeLightbox: ye, navigateToIndex: be } = is(r);
3256
+ return a === "feed" ? /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [r && /* @__PURE__ */ (0, Z.jsxs)("div", {
3257
+ className: `group/article relative -mx-4 ${p ? "pointer-events-none" : "cursor-pointer"} rounded-lg p-6 px-4 pb-[18px]`,
3258
+ "data-layout": "feed",
3259
+ "data-object-id": r.id,
3260
+ onClick: B,
3261
+ children: [o === "Announce" && /* @__PURE__ */ (0, Z.jsxs)("div", {
3262
+ className: "z-10 mb-2 flex items-center gap-1.5 text-gray-700 dark:text-gray-600",
3263
+ children: [Ds, /* @__PURE__ */ (0, Z.jsxs)("div", {
3264
+ className: "flex min-w-0 items-center gap-1 text-sm",
3265
+ children: [/* @__PURE__ */ (0, Z.jsx)(ls, {
3266
+ actor: e,
3267
+ align: "center",
3268
+ isCurrentUser: me,
3269
+ children: /* @__PURE__ */ (0, Z.jsx)("span", {
3270
+ className: "break-anywhere truncate hover:underline",
3271
+ onClick: (t) => {
3272
+ ps(e, j, t);
3273
+ },
3274
+ children: e.name
3275
+ })
3276
+ }), "reposted"]
3277
+ })]
3278
+ }), /* @__PURE__ */ (0, Z.jsxs)("div", {
3279
+ className: "flex flex-col gap-2.5",
3280
+ "data-test-activity": !0,
3281
+ children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
3282
+ className: "flex items-center justify-between",
3283
+ children: [/* @__PURE__ */ (0, Z.jsx)(ls, {
3284
+ actor: U,
3285
+ isCurrentUser: K,
3286
+ children: /* @__PURE__ */ (0, Z.jsxs)("div", {
3287
+ className: "flex min-w-0 grow items-center gap-3",
3288
+ children: [/* @__PURE__ */ (0, Z.jsx)(Ve, {
3289
+ author: U,
3290
+ disabled: p,
3291
+ showFollowButton: !K && !G
3292
+ }), /* @__PURE__ */ (0, Z.jsxs)("div", {
3293
+ className: "flex min-w-0 grow flex-col",
3294
+ onClick: (e) => {
3295
+ p || ps(U, j, e);
3296
+ },
3297
+ children: [/* @__PURE__ */ (0, Z.jsx)("span", {
3298
+ className: `break-anywhere min-w-0 truncate font-semibold ${m ? "text-lg" : "text-md"} ${p ? "" : "hover-underline"} dark:text-white`,
3299
+ "data-test-activity-heading": !0,
3300
+ children: f ? /* @__PURE__ */ (0, Z.jsx)(Y, { className: "w-24" }) : U.name
3301
+ }), /* @__PURE__ */ (0, Z.jsxs)("div", {
3302
+ className: "flex w-full text-md text-gray-700 dark:text-gray-600",
3303
+ children: [/* @__PURE__ */ (0, Z.jsx)("span", {
3304
+ className: `truncate ${p ? "" : "hover-underline"}`,
3305
+ children: f ? /* @__PURE__ */ (0, Z.jsx)(Y, { className: "w-56" }) : We(U)
3306
+ }), /* @__PURE__ */ (0, Z.jsx)("div", {
3307
+ className: `ml-1 before:mr-1 ${!f && "before:content-[\"·\"]"}`,
3308
+ title: `${C}`,
3309
+ children: f ? /* @__PURE__ */ (0, Z.jsx)(Y, { className: "w-4" }) : vs(r, p === !1 && !r.authored)
3310
+ })]
3311
+ })]
3312
+ })]
3313
+ })
3314
+ }), /* @__PURE__ */ (0, Z.jsx)(rs, {
3315
+ allowDelete: t,
3316
+ authoredByMe: K,
3317
+ disabled: p,
3318
+ followedByMe: G,
3319
+ layout: "feed",
3320
+ trigger: _e,
3321
+ onCopyLink: V,
3322
+ onDelete: oe,
3323
+ onFollow: he,
3324
+ onUnfollow: ge
3325
+ })]
3326
+ }), /* @__PURE__ */ (0, Z.jsx)("div", {
3327
+ className: "relative col-start-2 col-end-3 w-full gap-4 pl-[52px]",
3328
+ children: /* @__PURE__ */ (0, Z.jsxs)("div", {
3329
+ className: "flex flex-col",
3330
+ children: [/* @__PURE__ */ (0, Z.jsx)("div", {
3331
+ className: "",
3332
+ children: r.type === "Article" ? ee ? le() : /* @__PURE__ */ (0, Z.jsxs)("div", {
3333
+ className: "rounded-md border border-gray-200 transition-colors hover:bg-gray-100 dark:border-gray-950 dark:hover:bg-gray-950",
3334
+ children: [ce(B), /* @__PURE__ */ (0, Z.jsxs)("div", {
3335
+ className: "p-5",
3336
+ children: [/* @__PURE__ */ (0, Z.jsx)("div", {
3337
+ className: "break-anywhere mb-1 line-clamp-2 text-lg leading-tight font-semibold tracking-tight text-pretty",
3338
+ "data-test-activity-heading": !0,
3339
+ children: r.name
3340
+ }), /* @__PURE__ */ (0, Z.jsx)("div", {
3341
+ className: "break-anywhere line-clamp-3 leading-[1.4em]",
3342
+ children: r.preview?.content
3343
+ })]
3344
+ })]
3345
+ }) : /* @__PURE__ */ (0, Z.jsx)("div", {
3346
+ className: "relative",
3347
+ children: H()
3348
+ })
3349
+ }), /* @__PURE__ */ (0, Z.jsx)("div", {
3350
+ className: "space-between relative z-[30] mt-1 ml-[-8px] flex",
3351
+ children: f ? /* @__PURE__ */ (0, Z.jsx)(Y, { className: "ml-2 w-18" }) : S && /* @__PURE__ */ (0, Z.jsx)(ds, {
3352
+ actor: U,
3353
+ commentCount: s,
3354
+ disabled: p,
3355
+ layout: a,
3356
+ likeCount: l,
3357
+ object: r,
3358
+ repostCount: c,
3359
+ onLikeClick: ae
3360
+ })
3361
+ })]
3362
+ })
3363
+ })]
3364
+ })]
3365
+ }), /* @__PURE__ */ (0, Z.jsx)(as, {
3366
+ currentIndex: q.currentIndex,
3367
+ images: q.images,
3368
+ isOpen: q.isOpen,
3369
+ onClose: ye,
3370
+ onNavigate: be
3371
+ })] }) : a === "modal" ? /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [r && /* @__PURE__ */ (0, Z.jsxs)("div", {
3372
+ "data-object-id": r.id,
3373
+ children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
3374
+ className: "group/article relative",
3375
+ "data-layout": "modal",
3376
+ onClick: B,
3377
+ children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
3378
+ className: "z-10 -my-1 grid grid-cols-[auto_1fr] grid-rows-[auto_1fr] gap-3 pt-4 pb-3",
3379
+ "data-test-activity": !0,
3380
+ children: [u && /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [/* @__PURE__ */ (0, Z.jsx)("div", {
3381
+ className: "relative z-10 pt-[3px]",
3382
+ children: /* @__PURE__ */ (0, Z.jsx)(Ve, {
3383
+ author: U,
3384
+ showFollowButton: !K && !G
3385
+ })
3386
+ }), /* @__PURE__ */ (0, Z.jsxs)("div", {
3387
+ className: "relative z-10 flex w-full min-w-0 cursor-pointer flex-col overflow-visible text-[1.5rem]",
3388
+ onClick: (e) => {
3389
+ p || ps(U, j, e);
3390
+ },
3391
+ children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
3392
+ className: "flex w-full",
3393
+ children: [/* @__PURE__ */ (0, Z.jsx)("span", {
3394
+ className: "break-anywhere min-w-0 truncate font-semibold whitespace-nowrap after:mx-1 after:font-normal after:text-gray-700 after:content-[\"·\"] after:dark:text-gray-600",
3395
+ "data-test-activity-heading": !0,
3396
+ children: U.name
3397
+ }), /* @__PURE__ */ (0, Z.jsx)("div", { children: vs(r, !r.authored) })]
3398
+ }), /* @__PURE__ */ (0, Z.jsx)("div", {
3399
+ className: "flex w-full",
3400
+ children: /* @__PURE__ */ (0, Z.jsx)("span", {
3401
+ className: "min-w-0 truncate text-gray-700 dark:text-gray-600",
3402
+ children: We(U)
3403
+ })
3404
+ })]
3405
+ })] }), /* @__PURE__ */ (0, Z.jsx)("div", {
3406
+ className: "relative z-10 col-start-1 col-end-3 w-full gap-4",
3407
+ children: /* @__PURE__ */ (0, Z.jsxs)("div", {
3408
+ className: "flex flex-col items-start",
3409
+ children: [H({
3410
+ contentClassName: "ap-note-content-large break-anywhere text-[1.6rem] tracking-[-0.011em] text-pretty text-gray-900 dark:text-gray-300 [&_p+p]:mt-3",
3411
+ showName: !0
3412
+ }), /* @__PURE__ */ (0, Z.jsx)("div", {
3413
+ className: "space-between mt-3 ml-[-8px] flex",
3414
+ children: S && /* @__PURE__ */ (0, Z.jsx)(ds, {
3415
+ actor: U,
3416
+ commentCount: s,
3417
+ layout: a,
3418
+ likeCount: l,
3419
+ object: r,
3420
+ repostCount: c,
3421
+ onLikeClick: ae
3422
+ })
3423
+ })]
3424
+ })
3425
+ })]
3426
+ }), /* @__PURE__ */ (0, Z.jsx)("div", { className: "absolute -inset-x-3 -inset-y-0 z-0 rounded transition-colors max-lg:hidden" })]
3427
+ }), /* @__PURE__ */ (0, Z.jsx)("div", { className: "mt-3 h-px bg-gray-200 dark:bg-gray-950" })]
3428
+ }), /* @__PURE__ */ (0, Z.jsx)(as, {
3429
+ currentIndex: q.currentIndex,
3430
+ images: q.images,
3431
+ isOpen: q.isOpen,
3432
+ onClose: ye,
3433
+ onNavigate: be
3434
+ })] }) : a === "reply" ? /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [r && /* @__PURE__ */ (0, Z.jsxs)("div", {
3435
+ className: `group/article relative ${m ? "pb-6" : _ ? "pb-5" : "py-5"} ${p ? "pointer-events-none" : "cursor-pointer"}`,
3436
+ "data-layout": "reply",
3437
+ "data-object-id": r.id,
3438
+ onClick: B,
3439
+ children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
3440
+ className: "flex flex-col gap-2.5 border-b-gray-200",
3441
+ "data-test-activity": !0,
3442
+ children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
3443
+ className: "flex items-center justify-between",
3444
+ children: [/* @__PURE__ */ (0, Z.jsx)(ls, {
3445
+ actor: U,
3446
+ isCurrentUser: K,
3447
+ children: /* @__PURE__ */ (0, Z.jsxs)("div", {
3448
+ className: "flex min-w-0 grow items-center gap-3",
3449
+ children: [/* @__PURE__ */ (0, Z.jsx)(Ve, {
3450
+ author: U,
3451
+ disabled: p,
3452
+ showFollowButton: !K && !G
3453
+ }), /* @__PURE__ */ (0, Z.jsxs)("div", {
3454
+ className: "flex min-w-0 grow flex-col",
3455
+ onClick: (e) => {
3456
+ p || ps(U, j, e);
3457
+ },
3458
+ children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
3459
+ className: "flex",
3460
+ children: [/* @__PURE__ */ (0, Z.jsx)("span", {
3461
+ className: "break-anywhere min-w-0 truncate font-semibold whitespace-nowrap text-black after:mx-1 after:font-normal after:text-gray-700 after:content-[\"·\"] dark:text-white",
3462
+ "data-test-activity-heading": !0,
3463
+ children: U.name
3464
+ }), /* @__PURE__ */ (0, Z.jsx)("div", { children: vs(r, p === !1 && !r.authored) })]
3465
+ }), /* @__PURE__ */ (0, Z.jsx)("div", {
3466
+ className: "flex",
3467
+ children: /* @__PURE__ */ (0, Z.jsx)("span", {
3468
+ className: "truncate text-gray-700",
3469
+ children: We(U)
3470
+ })
3471
+ })]
3472
+ })]
3473
+ })
3474
+ }), !m && /* @__PURE__ */ (0, Z.jsx)(rs, {
3475
+ allowDelete: t,
3476
+ authoredByMe: K,
3477
+ disabled: p,
3478
+ followedByMe: G,
3479
+ layout: "reply",
3480
+ trigger: _e,
3481
+ onCopyLink: V,
3482
+ onDelete: oe,
3483
+ onFollow: he,
3484
+ onUnfollow: ge
3485
+ })]
3486
+ }), /* @__PURE__ */ (0, Z.jsx)("div", {
3487
+ className: "relative z-10 col-start-2 col-end-3 w-full gap-4 pl-[52px]",
3488
+ children: /* @__PURE__ */ (0, Z.jsxs)("div", {
3489
+ className: "flex flex-col items-start",
3490
+ children: [ee ? le() : /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [
3491
+ r.type === "Article" && ce(B),
3492
+ r.name && /* @__PURE__ */ (0, Z.jsx)(J, {
3493
+ className: "break-anywhere mt-2.5 leading-tight text-pretty",
3494
+ "data-test-activity-heading": !0,
3495
+ children: r.name
3496
+ }),
3497
+ r.preview && r.type === "Article" ? /* @__PURE__ */ (0, Z.jsx)("div", {
3498
+ className: "mt-1 line-clamp-3 leading-tight",
3499
+ children: r.preview.content
3500
+ }) : /* @__PURE__ */ (0, Z.jsx)("div", {
3501
+ dangerouslySetInnerHTML: { __html: Ge(Ue(r.content || "") ?? "") },
3502
+ ref: D,
3503
+ className: "ap-note-content break-anywhere tracking-[-0.006em] text-pretty text-gray-900 dark:text-gray-300 [&_p+p]:mt-3"
3504
+ }),
3505
+ r.type === "Note" && ce(ve),
3506
+ r.type === "Article" && /* @__PURE__ */ (0, Z.jsx)(W, {
3507
+ className: "mt-3 w-full",
3508
+ id: "read-more",
3509
+ variant: "secondary",
3510
+ children: "Read more"
3511
+ })
3512
+ ] }), !m && /* @__PURE__ */ (0, Z.jsx)("div", {
3513
+ className: "space-between mt-2 ml-[-8px] flex",
3514
+ children: S && /* @__PURE__ */ (0, Z.jsx)(ds, {
3515
+ actor: U,
3516
+ commentCount: s,
3517
+ disabled: p,
3518
+ layout: a,
3519
+ likeCount: l,
3520
+ object: r,
3521
+ repostCount: c,
3522
+ onLikeClick: ae
3523
+ })
3524
+ })]
3525
+ })
3526
+ })]
3527
+ }), !d && /* @__PURE__ */ (0, Z.jsx)("div", { className: `absolute left-[19px] ${m ? "top-[51px] bottom-[8px]" : _ ? "top-[51px] bottom-[5px]" : v ? "top-[71px] bottom-[5px]" : "top-[71px] bottom-[-7px]"} z-0 w-[2px] rounded-sm bg-gray-200 dark:bg-gray-950` })]
3528
+ }), /* @__PURE__ */ (0, Z.jsx)(as, {
3529
+ currentIndex: q.currentIndex,
3530
+ images: q.images,
3531
+ isOpen: q.isOpen,
3532
+ onClose: ye,
3533
+ onNavigate: be
3534
+ })] }) : a === "inbox" ? /* @__PURE__ */ (0, Z.jsx)(Z.Fragment, { children: r && /* @__PURE__ */ (0, Z.jsxs)("div", {
3535
+ className: "group/article @container/inbox-item relative -mx-4 -my-px flex min-h-[112px] min-w-0 cursor-pointer items-center justify-between rounded-lg p-6 hover:bg-gray-100 dark:hover:bg-gray-950/50",
3536
+ "data-layout": "inbox",
3537
+ "data-object-id": r.id,
3538
+ onClick: B,
3539
+ children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
3540
+ className: "w-full min-w-0",
3541
+ children: [/* @__PURE__ */ (0, Z.jsx)("div", {
3542
+ className: "z-10 mb-1.5 flex w-full min-w-0 items-center gap-1.5 text-sm group-hover/article:border-transparent",
3543
+ children: f ? /* @__PURE__ */ (0, Z.jsx)(Y, { className: "w-24" }) : /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [
3544
+ /* @__PURE__ */ (0, Z.jsx)(ls, {
3545
+ actor: U,
3546
+ isCurrentUser: K,
3547
+ children: /* @__PURE__ */ (0, Z.jsxs)("div", {
3548
+ className: "flex items-center gap-1",
3549
+ children: [/* @__PURE__ */ (0, Z.jsx)(Ve, {
3550
+ author: U,
3551
+ size: "2xs"
3552
+ }), /* @__PURE__ */ (0, Z.jsx)("span", {
3553
+ className: "min-w-0 truncate font-semibold text-gray-900 hover:underline dark:text-gray-600",
3554
+ "data-test-activity-heading": !0,
3555
+ onClick: (e) => {
3556
+ ps(U, j, e);
3557
+ },
3558
+ children: U.name
3559
+ })]
3560
+ })
3561
+ }),
3562
+ o === "Announce" && /* @__PURE__ */ (0, Z.jsxs)("span", {
3563
+ className: "z-10 flex items-center gap-1 text-gray-700 dark:text-gray-600",
3564
+ children: [
3565
+ Ds,
3566
+ /* @__PURE__ */ (0, Z.jsx)(ls, {
3567
+ actor: e,
3568
+ align: "center",
3569
+ isCurrentUser: me,
3570
+ children: /* @__PURE__ */ (0, Z.jsx)("span", {
3571
+ className: "line-clamp-1 hover:underline",
3572
+ onClick: (t) => {
3573
+ ps(e, j, t);
3574
+ },
3575
+ children: e.name
3576
+ })
3577
+ }),
3578
+ " ",
3579
+ "reposted"
3580
+ ]
3581
+ }),
3582
+ /* @__PURE__ */ (0, Z.jsx)("span", {
3583
+ className: "shrink-0 whitespace-nowrap text-gray-600 before:mr-1 before:content-[\"·\"]",
3584
+ title: `${C}`,
3585
+ children: vs(r, !r.authored)
3586
+ })
3587
+ ] })
3588
+ }), /* @__PURE__ */ (0, Z.jsxs)("div", {
3589
+ className: "flex",
3590
+ children: [/* @__PURE__ */ (0, Z.jsx)("div", {
3591
+ className: "flex min-h-[73px] w-full min-w-0 flex-col items-start justify-start gap-1",
3592
+ children: ee ? le() : /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [
3593
+ /* @__PURE__ */ (0, Z.jsx)(J, {
3594
+ className: "break-anywhere line-clamp-2 w-full max-w-[600px] leading-tight text-pretty",
3595
+ "data-test-activity-heading": !0,
3596
+ children: f ? /* @__PURE__ */ (0, Z.jsx)(Y, { className: "w-full max-w-96" }) : r.name ? r.name : /* @__PURE__ */ (0, Z.jsx)("span", { dangerouslySetInnerHTML: { __html: Ge(Ke(r.content || "")) } })
3597
+ }),
3598
+ /* @__PURE__ */ (0, Z.jsx)("div", {
3599
+ className: "ap-note-content break-anywhere line-clamp-2 w-full max-w-[600px] text-base leading-normal text-pretty text-gray-900 dark:text-gray-300 [&_p+p]:mt-3",
3600
+ children: f ? /* @__PURE__ */ (0, Z.jsx)(Y, { count: 2 }) : /* @__PURE__ */ (0, Z.jsx)("div", { dangerouslySetInnerHTML: { __html: Ge(Ke(r.preview?.content ?? r.content ?? "")) } })
3601
+ }),
3602
+ /* @__PURE__ */ (0, Z.jsx)("span", {
3603
+ className: "mt-1 shrink-0 text-sm leading-none whitespace-nowrap text-gray-600",
3604
+ children: f ? /* @__PURE__ */ (0, Z.jsx)(Y, { className: "w-16" }) : r.content && `${fs(r.content)}`
3605
+ })
3606
+ ] })
3607
+ }), /* @__PURE__ */ (0, Z.jsxs)("div", {
3608
+ className: "invisible absolute top-8 right-3 z-[49] flex -translate-y-1/2 rounded-lg bg-white p-1 shadow-md group-hover/article:visible dark:bg-black",
3609
+ children: [S && /* @__PURE__ */ (0, Z.jsx)(ds, {
3610
+ actor: U,
3611
+ commentCount: s,
3612
+ layout: a,
3613
+ likeCount: l,
3614
+ object: r,
3615
+ repostCount: c,
3616
+ onLikeClick: ae
3617
+ }), /* @__PURE__ */ (0, Z.jsx)(rs, {
3618
+ allowDelete: t,
3619
+ authoredByMe: K,
3620
+ followedByMe: G,
3621
+ layout: "inbox",
3622
+ trigger: _e,
3623
+ onCopyLink: V,
3624
+ onDelete: oe,
3625
+ onFollow: he,
3626
+ onUnfollow: ge
3627
+ })]
3628
+ })]
3629
+ })]
3630
+ }), ee ? null : N ? /* @__PURE__ */ (0, Z.jsx)(Ss, {
3631
+ className: "ml-8 hidden h-[91px] w-[121px] shrink-0 md:ml-9 @md/inbox-item:flex",
3632
+ size: "compact",
3633
+ onReveal: te
3634
+ }) : Ts(r, f)]
3635
+ }) }) : /* @__PURE__ */ (0, Z.jsx)(Z.Fragment, {});
3636
+ }, ks = 5 * 1024 * 1024, As = "Image must be less than 5MB in size.", js = async (e) => {
3637
+ try {
3638
+ let t = await fetch(e, { mode: "cors" });
3639
+ if (!t.ok) throw Error(`Failed to fetch image: ${t.status}`);
3640
+ let n = await t.blob();
3641
+ return new Promise((e, t) => {
3642
+ let r = new FileReader();
3643
+ r.onload = () => e(r.result), r.onerror = t, r.readAsDataURL(n);
3644
+ });
3645
+ } catch {
3646
+ return e;
3647
+ }
3648
+ }, Ms = (e) => new Promise((t) => {
3649
+ let n = new Image();
3650
+ n.onload = () => {
3651
+ URL.revokeObjectURL(n.src), t(n.width === n.height);
3652
+ }, n.src = URL.createObjectURL(e);
3653
+ }), Ns = "Image must be square.";
3654
+ //#endregion
3655
+ //#region src/components/modals/new-note-modal.tsx
3656
+ o();
3657
+ var Ps = ({ children: e, replyTo: t, onReply: r, onReplyError: i, onOpenChange: a, ...o }) => {
3658
+ let { data: c } = Ee("index"), l = Te("index", c), u = ge("index", c), { data: d, isLoading: f } = Oe("index", "me"), [p, m] = n(!1), _ = g(null), v = g(null), [y, b] = n(null), [S, C] = n(!1), w = g(null), [T, E] = n(""), [D, O] = n(null), [k, A] = n(""), [j, M] = n(!1), [ee, N] = n(!1), [P, F] = n(!1), I = fe();
3659
+ h(() => {
3660
+ o.open !== void 0 && m(o.open);
3661
+ }, [o.open]), h(() => {
3662
+ if (o.open === void 0 ? p : o.open) {
3663
+ let e = setTimeout(() => {
3664
+ F(!0);
3665
+ }, 300);
3666
+ return () => clearTimeout(e);
3667
+ } else F(!1);
3668
+ }, [p, o.open]);
3669
+ let L = !T.trim() || !c || ee || T.length > 500, R = s(async () => {
3670
+ let e = T.trim();
3671
+ if (!(!e || !c)) try {
3672
+ N(!0), t ? (await u.mutateAsync({
3673
+ inReplyTo: t.object.id,
3674
+ content: e,
3675
+ imageUrl: D || void 0,
3676
+ altText: k || void 0
3677
+ }), r?.()) : (await l.mutateAsync({
3678
+ content: e,
3679
+ imageUrl: D || void 0,
3680
+ altText: k || void 0
3681
+ }), I("/notes")), m(!1), a && a(!1), x.success(t ? "Reply posted" : "Note posted");
3682
+ } catch {
3683
+ t && i?.();
3684
+ } finally {
3685
+ N(!1);
3686
+ }
3687
+ }, [
3688
+ T,
3689
+ c,
3690
+ t,
3691
+ u,
3692
+ l,
3693
+ D,
3694
+ k,
3695
+ r,
3696
+ i,
3697
+ m,
3698
+ I,
3699
+ a
3700
+ ]), te = (e) => {
3701
+ E(e.target.value);
3702
+ };
3703
+ h(() => {
3704
+ _.current && (_.current.style.height = "auto", _.current.style.height = `${_.current.scrollHeight}px`);
3705
+ }, [T]), h(() => {
3706
+ if ((o.open === void 0 ? p : o.open) && _.current) {
3707
+ let e = setTimeout(() => {
3708
+ _.current?.focus();
3709
+ }, 100);
3710
+ return () => clearTimeout(e);
3711
+ }
3712
+ }, [p, o.open]), h(() => {
3713
+ if (j && v.current) {
3714
+ let e = setTimeout(() => {
3715
+ v.current?.focus();
3716
+ }, 100);
3717
+ return () => clearTimeout(e);
3718
+ }
3719
+ }, [j]), h(() => {
3720
+ let e = (e) => {
3721
+ (e.metaKey || e.ctrlKey) && e.key === "Enter" && (e.preventDefault(), !L && !S && R());
3722
+ };
3723
+ if (o.open === void 0 ? p : o.open) return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
3724
+ }, [
3725
+ p,
3726
+ o.open,
3727
+ L,
3728
+ S,
3729
+ R
3730
+ ]);
3731
+ let ne = s(async (e) => {
3732
+ let t = e.clipboardData?.items;
3733
+ if (t) for (let n = 0; n < t.length; n++) {
3734
+ let r = t[n];
3735
+ if (r.type.indexOf("image") !== -1) {
3736
+ e.preventDefault();
3737
+ let t = r.getAsFile();
3738
+ if (t) {
3739
+ if (t.size > 5242880) {
3740
+ x.error(As);
3741
+ return;
3742
+ }
3743
+ let e = URL.createObjectURL(t);
3744
+ b(e), await re(t);
3745
+ }
3746
+ break;
3747
+ }
3748
+ }
3749
+ }, []);
3750
+ h(() => {
3751
+ if (o.open === void 0 ? p : o.open) return document.addEventListener("paste", ne), () => document.removeEventListener("paste", ne);
3752
+ }, [
3753
+ p,
3754
+ o.open,
3755
+ ne
3756
+ ]);
3757
+ let re = async (e) => {
3758
+ try {
3759
+ C(!0);
3760
+ let t = await Me(e);
3761
+ O(t);
3762
+ } catch (e) {
3763
+ b(null);
3764
+ let t = "Failed to upload image. Try again.";
3765
+ if (e && typeof e == "object" && "statusCode" in e) switch (e.statusCode) {
3766
+ case 413:
3767
+ t = "Image size exceeds limit.";
3768
+ break;
3769
+ case 415:
3770
+ t = "The file type is not supported.";
3771
+ break;
3772
+ default:
3773
+ }
3774
+ x.error(t);
3775
+ } finally {
3776
+ C(!1);
3777
+ }
3778
+ }, z = async (e) => {
3779
+ let t = e.target.files;
3780
+ if (t && t.length > 0) {
3781
+ let n = t[0];
3782
+ if (n.size > 5242880) {
3783
+ x.error(As), e.target.value = "";
3784
+ return;
3785
+ }
3786
+ let r = URL.createObjectURL(n);
3787
+ b(r), await re(n);
3788
+ }
3789
+ }, ie = (e) => {
3790
+ e.stopPropagation(), b(null), O(null), A(""), M(!1), y && URL.revokeObjectURL(y), w.current && (w.current.value = "");
3791
+ }, ae = (e) => {
3792
+ e.stopPropagation(), M(!j);
3793
+ }, B = () => {
3794
+ _.current?.focus();
3795
+ };
3796
+ h(() => () => {
3797
+ y && URL.revokeObjectURL(y);
3798
+ }, [y]);
3799
+ let oe = "What's new?";
3800
+ if (t) {
3801
+ let e = t.object.attributedTo || {};
3802
+ typeof e == "object" && "preferredUsername" in e && "id" in e && (oe = `Reply to ${We(e)}...`);
3803
+ }
3804
+ return /* @__PURE__ */ (0, Z.jsxs)(Wr, {
3805
+ open: o.open === void 0 ? p : o.open,
3806
+ onOpenChange: (e) => {
3807
+ e && (E(""), b(null), O(null), A(""), M(!1), y && URL.revokeObjectURL(y), w.current && (w.current.value = "")), m(e), a && a(e);
3808
+ },
3809
+ ...o.open === void 0 ? o : {},
3810
+ children: [/* @__PURE__ */ (0, Z.jsx)(Gr, {
3811
+ asChild: !0,
3812
+ children: e
3813
+ }), /* @__PURE__ */ (0, Z.jsxs)(Yr, {
3814
+ className: "max-h-[80vh] min-h-[240px] gap-0 overflow-y-auto pb-0",
3815
+ "data-testid": "new-note-modal",
3816
+ onClick: (e) => e.stopPropagation(),
3817
+ children: [
3818
+ /* @__PURE__ */ (0, Z.jsxs)(Xr, {
3819
+ className: "hidden",
3820
+ children: [/* @__PURE__ */ (0, Z.jsx)(Qr, { children: t ? "Reply" : "New note" }), /* @__PURE__ */ (0, Z.jsx)($r, { children: "Post your thoughts to the Social web" })]
3821
+ }),
3822
+ t && /* @__PURE__ */ (0, Z.jsx)(Os, {
3823
+ actor: t.actor,
3824
+ allowDelete: !1,
3825
+ commentCount: t.object.replyCount ?? 0,
3826
+ isCompact: !0,
3827
+ layout: "reply",
3828
+ likeCount: t.object.likeCount ?? 0,
3829
+ object: t.object,
3830
+ repostCount: t.object.repostCount ?? 0,
3831
+ type: t.object.type === "Article" ? "Article" : "Note",
3832
+ onClick: () => {}
3833
+ }),
3834
+ /* @__PURE__ */ (0, Z.jsxs)("div", {
3835
+ className: `flex ${y ? "" : "min-h-36"} cursor-text items-start gap-3`,
3836
+ onClick: B,
3837
+ children: [/* @__PURE__ */ (0, Z.jsx)("div", {
3838
+ className: "sticky top-0",
3839
+ children: /* @__PURE__ */ (0, Z.jsx)(Ve, { author: c })
3840
+ }), /* @__PURE__ */ (0, Z.jsx)(es, {
3841
+ asChild: !0,
3842
+ children: /* @__PURE__ */ (0, Z.jsxs)("div", {
3843
+ className: "-mt-0.5 flex w-full flex-col gap-0.5",
3844
+ children: [
3845
+ f ? /* @__PURE__ */ (0, Z.jsx)(Y, { className: "w-10" }) : /* @__PURE__ */ (0, Z.jsx)("span", {
3846
+ className: "break-anywhere min-w-0 truncate font-semibold whitespace-nowrap text-black dark:text-white",
3847
+ children: d?.name
3848
+ }),
3849
+ /* @__PURE__ */ (0, Z.jsx)(ts, {
3850
+ name: "content",
3851
+ asChild: !0,
3852
+ children: /* @__PURE__ */ (0, Z.jsx)(ns, {
3853
+ asChild: !0,
3854
+ children: /* @__PURE__ */ (0, Z.jsx)("textarea", {
3855
+ ref: _,
3856
+ autoFocus: !0,
3857
+ className: "ap-textarea break-anywhere w-full resize-none bg-transparent text-[1.5rem] dark:placeholder:text-gray-700",
3858
+ "data-testid": "note-textarea",
3859
+ placeholder: oe,
3860
+ rows: 1,
3861
+ value: T,
3862
+ onChange: te,
3863
+ onPaste: ne
3864
+ })
3865
+ })
3866
+ }),
3867
+ /* @__PURE__ */ (0, Z.jsx)(ts, {
3868
+ name: "image",
3869
+ asChild: !0,
3870
+ children: /* @__PURE__ */ (0, Z.jsx)(ns, {
3871
+ asChild: !0,
3872
+ children: /* @__PURE__ */ (0, Z.jsx)("input", {
3873
+ ref: w,
3874
+ accept: "image/jpeg,image/png,image/webp,image/gif",
3875
+ className: "hidden",
3876
+ type: "file",
3877
+ onChange: z
3878
+ })
3879
+ })
3880
+ })
3881
+ ]
3882
+ })
3883
+ })]
3884
+ }),
3885
+ y && /* @__PURE__ */ (0, Z.jsxs)("div", {
3886
+ className: "group relative mt-6 flex min-h-[200px] w-full items-center justify-center",
3887
+ children: [
3888
+ /* @__PURE__ */ (0, Z.jsx)("img", {
3889
+ alt: "Image attachment preview",
3890
+ className: `max-h-[320px] w-full rounded-sm object-cover outline-1 -outline-offset-1 outline-black/10 ${S && "opacity-10"}`,
3891
+ src: y
3892
+ }),
3893
+ S && /* @__PURE__ */ (0, Z.jsx)("div", {
3894
+ className: "absolute leading-[0]",
3895
+ children: /* @__PURE__ */ (0, Z.jsx)(Ta, { size: "md" })
3896
+ }),
3897
+ /* @__PURE__ */ (0, Z.jsx)(W, {
3898
+ className: "absolute top-3 right-3 size-8 bg-black/60 text-white opacity-0 group-hover:opacity-100 hover:bg-black/80",
3899
+ onClick: ie,
3900
+ children: /* @__PURE__ */ (0, Z.jsx)(Dt, {})
3901
+ }),
3902
+ !S && /* @__PURE__ */ (0, Z.jsx)(W, {
3903
+ className: `absolute bottom-3 left-3 h-6 px-2 py-0 text-white ${j ? "bg-green-500 hover:bg-green-500" : "bg-black/60 hover:bg-black/80"}`,
3904
+ onClick: ae,
3905
+ children: "Alt"
3906
+ })
3907
+ ]
3908
+ }),
3909
+ y && !S && j && /* @__PURE__ */ (0, Z.jsx)("div", {
3910
+ className: "mt-1",
3911
+ children: /* @__PURE__ */ (0, Z.jsx)(wa, {
3912
+ ref: v,
3913
+ className: "w-full border-0 bg-transparent px-0 focus-visible:border-0 focus-visible:bg-transparent focus-visible:shadow-none focus-visible:outline-0 dark:bg-(--color-popover) dark:text-white dark:placeholder:text-gray-800",
3914
+ placeholder: "Type alt text for image (optional)",
3915
+ type: "text",
3916
+ value: k,
3917
+ onChange: (e) => A(e.target.value)
3918
+ })
3919
+ }),
3920
+ /* @__PURE__ */ (0, Z.jsxs)(Zr, {
3921
+ className: `${P ? "sticky" : "static"} bottom-0 flex-row bg-background py-6 dark:bg-surface-elevated-2`,
3922
+ children: [/* @__PURE__ */ (0, Z.jsx)(W, {
3923
+ className: "mr-auto w-[34px] min-w-0!",
3924
+ variant: "outline",
3925
+ onClick: () => w.current?.click(),
3926
+ children: /* @__PURE__ */ (0, Z.jsx)(_t, {})
3927
+ }), /* @__PURE__ */ (0, Z.jsxs)("div", {
3928
+ className: "flex items-center gap-3",
3929
+ children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
3930
+ className: `text-sm ${T.length >= 500 ? "text-red-500" : T.length >= 500 * .9 ? "text-yellow-600" : "text-gray-500"}`,
3931
+ children: [
3932
+ T.length,
3933
+ "/",
3934
+ 500
3935
+ ]
3936
+ }), /* @__PURE__ */ (0, Z.jsx)(W, {
3937
+ className: "min-w-16",
3938
+ "data-testid": "post-button",
3939
+ disabled: L || S,
3940
+ onClick: R,
3941
+ children: ee ? /* @__PURE__ */ (0, Z.jsx)(Ta, {
3942
+ color: "light",
3943
+ size: "sm"
3944
+ }) : "Post"
3945
+ })]
3946
+ })]
3947
+ })
3948
+ ]
3949
+ })]
3950
+ });
3951
+ };
3952
+ //#endregion
3953
+ //#region src/components/layout/sidebar/feedback-box.tsx
3954
+ o();
3955
+ var Fs = () => {
3956
+ let e = fe();
3957
+ function t() {
3958
+ e("/notes/https%3A%2F%2Factivitypub.ghost.org%2F.ghost%2Factivitypub%2Fnote%2F6d6d7f57-b656-4caa-ba9e-efa1d9a4b3fb");
3959
+ }
3960
+ return /* @__PURE__ */ (0, Z.jsxs)("div", {
3961
+ className: "z-20 w-full bg-white dark:bg-background",
3962
+ children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
3963
+ className: "flex w-full flex-col gap-0.5 border-t border-gray-200 bg-white px-3 pt-6 dark:border-gray-950 dark:bg-background",
3964
+ children: [
3965
+ /* @__PURE__ */ (0, Z.jsxs)("div", {
3966
+ className: "flex items-center gap-2",
3967
+ children: [/* @__PURE__ */ (0, Z.jsx)(xt, {
3968
+ className: "text-purple-500",
3969
+ size: 20,
3970
+ strokeWidth: 1.5
3971
+ }), /* @__PURE__ */ (0, Z.jsx)(J, { children: "Beta feedback" })]
3972
+ }),
3973
+ /* @__PURE__ */ (0, Z.jsx)("span", {
3974
+ className: "text-sm text-gray-700 dark:text-gray-600",
3975
+ children: "Something not working? Let us know"
3976
+ }),
3977
+ /* @__PURE__ */ (0, Z.jsx)(W, {
3978
+ className: "mt-2 dark:bg-gray-950/70 dark:hover:bg-gray-900",
3979
+ variant: "secondary",
3980
+ onClick: t,
3981
+ children: "Send feedback"
3982
+ })
3983
+ ]
3984
+ }), /* @__PURE__ */ (0, Z.jsxs)("div", {
3985
+ className: "-mb-1 ml-3 flex items-center gap-1.5 pt-4 pb-2 text-xs text-gray-400",
3986
+ children: [
3987
+ /* @__PURE__ */ (0, Z.jsx)("a", {
3988
+ className: "text-xs font-medium text-gray-700 hover:text-black dark:text-gray-600 dark:hover:text-white",
3989
+ href: "https://ghost.org/help/social-web/",
3990
+ rel: "noreferrer",
3991
+ target: "_blank",
3992
+ children: "Help"
3993
+ }),
3994
+ "⋅",
3995
+ /* @__PURE__ */ (0, Z.jsx)("a", {
3996
+ className: "text-xs font-medium text-gray-700 hover:text-black dark:text-gray-600 dark:hover:text-white",
3997
+ href: "https://activitypub.ghost.org/archive",
3998
+ rel: "noreferrer",
3999
+ target: "_blank",
4000
+ children: "Updates"
4001
+ })
4002
+ ]
4003
+ })]
4004
+ });
4005
+ };
4006
+ //#endregion
4007
+ //#region src/components/activities/activity-item.tsx
4008
+ o();
4009
+ var Is = ({ children: e, url: t = null, onClick: n, "data-testid": r, isSelected: a = !1 }) => {
4010
+ let o = i.Children.toArray(e), s = /* @__PURE__ */ (0, Z.jsx)("div", {
4011
+ className: `relative flex w-full max-w-[620px] cursor-pointer flex-col before:absolute before:inset-x-[-16px] before:inset-y-[-1px] before:rounded-md before:bg-gray-50 before:transition-opacity hover:z-10 hover:cursor-pointer hover:border-b-transparent hover:before:opacity-100 dark:before:bg-gray-950 ${a ? "z-10 before:opacity-100" : "before:opacity-0"}`,
4012
+ "data-testid": r,
4013
+ onClick: () => {
4014
+ !t && n && n();
4015
+ },
4016
+ children: /* @__PURE__ */ (0, Z.jsxs)("div", {
4017
+ className: "relative z-10 flex w-full items-center gap-3 py-3",
4018
+ children: [
4019
+ o[0],
4020
+ o[1],
4021
+ o[2]
4022
+ ]
4023
+ })
4024
+ });
4025
+ return t ? /* @__PURE__ */ (0, Z.jsx)("a", {
4026
+ href: t,
4027
+ rel: "noreferrer",
4028
+ target: "_blank",
4029
+ onClick: (e) => {
4030
+ n && (e.preventDefault(), n());
4031
+ },
4032
+ children: s
4033
+ }) : s;
4034
+ };
4035
+ //#endregion
4036
+ //#region src/components/layout/sidebar/recommendations.tsx
4037
+ o();
4038
+ var Ls = () => {
4039
+ let e = fe(), { suggestedProfilesQuery: t } = Se("index", 3), { data: n, isLoading: r } = t, i = r ? [
4040
+ ,
4041
+ ,
4042
+ ,
4043
+ ].fill(null) : n || [], { resetStack: a } = N();
4044
+ return !r && (!n || n.length === 0) ? null : /* @__PURE__ */ (0, Z.jsxs)("div", {
4045
+ className: "border-t border-gray-200 px-3 pt-6 dark:border-gray-950 [@media(max-height:740px)]:hidden",
4046
+ children: [
4047
+ /* @__PURE__ */ (0, Z.jsxs)("div", {
4048
+ className: "mb-3 flex flex-col gap-0.5",
4049
+ children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
4050
+ className: "flex items-center gap-2",
4051
+ children: [/* @__PURE__ */ (0, Z.jsx)(ze, {
4052
+ className: "text-purple-500",
4053
+ size: 20,
4054
+ strokeWidth: 1.5
4055
+ }), /* @__PURE__ */ (0, Z.jsx)(J, { children: "Follow suggestions" })]
4056
+ }), /* @__PURE__ */ (0, Z.jsx)("span", {
4057
+ className: "text-sm text-gray-700 dark:text-gray-600",
4058
+ children: "Accounts you might be interested in"
4059
+ })]
4060
+ }),
4061
+ /* @__PURE__ */ (0, Z.jsx)("ul", {
4062
+ className: "grow",
4063
+ children: i.map((t, n) => {
4064
+ let i = t?.id || `loading-${n}`, a = t?.name || "", o = t?.handle || "", s = t?.avatarUrl || "", c;
4065
+ switch (n) {
4066
+ case 0:
4067
+ c = "[@media(max-height:740px)]:hidden";
4068
+ break;
4069
+ case 1:
4070
+ c = "[@media(max-height:800px)]:hidden";
4071
+ break;
4072
+ case 2:
4073
+ c = "[@media(max-height:860px)]:hidden";
4074
+ break;
4075
+ }
4076
+ return /* @__PURE__ */ (0, Z.jsx)(d, { children: /* @__PURE__ */ (0, Z.jsx)("li", {
4077
+ className: c,
4078
+ children: /* @__PURE__ */ (0, Z.jsx)(ls, {
4079
+ actor: t,
4080
+ align: "center",
4081
+ isCurrentUser: !1,
4082
+ side: "left",
4083
+ children: /* @__PURE__ */ (0, Z.jsx)("div", { children: /* @__PURE__ */ (0, Z.jsxs)(Is, {
4084
+ onClick: () => {
4085
+ !r && t && ps(t, e);
4086
+ },
4087
+ children: [r ? /* @__PURE__ */ (0, Z.jsx)(Y, { className: "z-10 size-10" }) : /* @__PURE__ */ (0, Z.jsx)(Ve, {
4088
+ author: {
4089
+ icon: { url: s },
4090
+ name: a,
4091
+ handle: o
4092
+ },
4093
+ showFollowButton: !0
4094
+ }), /* @__PURE__ */ (0, Z.jsxs)("div", {
4095
+ className: "flex min-w-0 flex-col",
4096
+ children: [/* @__PURE__ */ (0, Z.jsx)("span", {
4097
+ className: "block max-w-[190px] truncate font-semibold text-black dark:text-white",
4098
+ children: r ? /* @__PURE__ */ (0, Z.jsx)(Y, { className: "w-24" }) : a
4099
+ }), /* @__PURE__ */ (0, Z.jsx)("span", {
4100
+ className: "block max-w-[190px] truncate text-sm text-gray-700 dark:text-gray-600",
4101
+ children: r ? /* @__PURE__ */ (0, Z.jsx)(Y, { className: "w-40" }) : o
4102
+ })]
4103
+ })]
4104
+ }) })
4105
+ })
4106
+ }, i) }, i);
4107
+ })
4108
+ }),
4109
+ /* @__PURE__ */ (0, Z.jsx)(W, {
4110
+ className: "p-0 font-medium text-purple hover:text-black dark:hover:text-white",
4111
+ variant: "link",
4112
+ onClick: () => {
4113
+ a(), e("/explore");
4114
+ },
4115
+ children: "Find more →"
4116
+ })
4117
+ ]
4118
+ });
4119
+ };
4120
+ //#endregion
4121
+ //#region src/components/global/suggested-profiles.tsx
4122
+ o();
4123
+ var Rs = ({ profile: e, update: t, isLoading: n, onOpenChange: r }) => {
4124
+ let i = () => {
4125
+ t(e.id, { followedByMe: !0 });
4126
+ }, a = () => {
4127
+ t(e.id, { followedByMe: !1 });
4128
+ }, o = fe();
4129
+ return /* @__PURE__ */ (0, Z.jsx)(ls, {
4130
+ actor: e,
4131
+ align: "center",
4132
+ isCurrentUser: !1,
4133
+ side: "left",
4134
+ children: /* @__PURE__ */ (0, Z.jsx)("div", { children: /* @__PURE__ */ (0, Z.jsxs)(Is, {
4135
+ onClick: () => {
4136
+ r?.(!1), o(`/profile/${e.handle}`);
4137
+ },
4138
+ children: [
4139
+ /* @__PURE__ */ (0, Z.jsx)(Ve, {
4140
+ author: {
4141
+ icon: { url: e.avatarUrl },
4142
+ name: e.name,
4143
+ handle: e.handle
4144
+ },
4145
+ onClick: () => r?.(!1)
4146
+ }),
4147
+ /* @__PURE__ */ (0, Z.jsxs)("div", {
4148
+ className: "break-anywhere flex grow flex-col",
4149
+ children: [/* @__PURE__ */ (0, Z.jsx)("span", {
4150
+ className: "line-clamp-1 font-semibold text-black dark:text-white",
4151
+ children: n ? /* @__PURE__ */ (0, Z.jsx)(Y, { className: "w-full max-w-64" }) : e.name
4152
+ }), /* @__PURE__ */ (0, Z.jsx)("span", {
4153
+ className: "line-clamp-1 text-sm text-gray-700 dark:text-gray-600",
4154
+ children: n ? /* @__PURE__ */ (0, Z.jsx)(Y, { className: "w-24" }) : e.handle
4155
+ })]
4156
+ }),
4157
+ n ? /* @__PURE__ */ (0, Z.jsx)("div", {
4158
+ className: "inline-flex items-center",
4159
+ children: /* @__PURE__ */ (0, Z.jsx)(Y, { className: "w-12" })
4160
+ }) : /* @__PURE__ */ (0, Z.jsx)(ss, {
4161
+ className: "ml-auto",
4162
+ following: e.followedByMe,
4163
+ handle: e.handle,
4164
+ type: "secondary",
4165
+ onFollow: i,
4166
+ onUnfollow: a
4167
+ })
4168
+ ]
4169
+ }, e.id) })
4170
+ });
4171
+ }, zs = ({ onOpenChange: e }) => {
4172
+ let { suggestedProfilesQuery: t, updateSuggestedProfile: n } = Se("index", 5), { data: r = [], isLoading: a } = t;
4173
+ return !a && (!r || r.length === 0) ? null : /* @__PURE__ */ (0, Z.jsx)("div", {
4174
+ className: "mb-[-15px] flex flex-col gap-3 pt-2",
4175
+ children: /* @__PURE__ */ (0, Z.jsx)("div", {
4176
+ className: "flex flex-col",
4177
+ children: (a ? [
4178
+ ,
4179
+ ,
4180
+ ,
4181
+ ,
4182
+ ,
4183
+ ].fill(null) : r || []).map((t, r) => /* @__PURE__ */ (0, Z.jsx)(i.Fragment, { children: /* @__PURE__ */ (0, Z.jsx)(Rs, {
4184
+ isLoading: a,
4185
+ profile: t || {
4186
+ id: "",
4187
+ name: "",
4188
+ handle: "",
4189
+ avatarUrl: "",
4190
+ bio: "",
4191
+ followerCount: 0,
4192
+ followingCount: 0,
4193
+ followedByMe: !1
4194
+ },
4195
+ update: n,
4196
+ onOpenChange: e
4197
+ }) }, t?.id || `loading-${r}`))
4198
+ })
4199
+ });
4200
+ };
4201
+ //#endregion
4202
+ //#region ../../node_modules/.pnpm/use-debounce@10.1.1_react@18.3.1/node_modules/use-debounce/dist/index.module.js
4203
+ o();
4204
+ function Bs(e, n, r, i) {
4205
+ var a = this, o = g(null), s = g(0), c = g(0), l = g(null), u = g([]), d = g(), f = g(), p = g(e), m = g(!0), _ = g(), v = g();
4206
+ p.current = e;
4207
+ var y = typeof window < "u", b = !n && n !== 0 && y;
4208
+ if (typeof e != "function") throw TypeError("Expected a function");
4209
+ n = +n || 0;
4210
+ var x = !!(r ||= {}).leading, S = !("trailing" in r) || !!r.trailing, C = !!r.flushOnExit && S, w = "maxWait" in r, T = "debounceOnServer" in r && !!r.debounceOnServer, E = w ? Math.max(+r.maxWait || 0, n) : null, D = t(function() {
4211
+ var e = function(e) {
4212
+ var t = u.current, n = d.current;
4213
+ return u.current = d.current = null, s.current = e, c.current = c.current || e, f.current = p.current.apply(n, t);
4214
+ }, t = function(e, t) {
4215
+ b && cancelAnimationFrame(l.current), l.current = b ? requestAnimationFrame(e) : setTimeout(e, t);
4216
+ }, r = function(e) {
4217
+ if (!m.current) return !1;
4218
+ var t = e - o.current;
4219
+ return !o.current || t >= n || t < 0 || w && e - s.current >= E;
4220
+ }, h = function(t) {
4221
+ return l.current = null, S && u.current ? e(t) : (u.current = d.current = null, f.current);
4222
+ }, g = function e() {
4223
+ var i = Date.now();
4224
+ if (x && c.current === s.current && D(), r(i)) return h(i);
4225
+ if (m.current) {
4226
+ var a = n - (i - o.current);
4227
+ t(e, w ? Math.min(a, E - (i - s.current)) : a);
4228
+ }
4229
+ }, D = function() {
4230
+ i && i({});
4231
+ }, O = function() {
4232
+ if (y || T) {
4233
+ var i, c = Date.now(), p = r(c);
4234
+ if (u.current = [].slice.call(arguments), d.current = a, o.current = c, C && !_.current && (_.current = function() {
4235
+ globalThis.document?.visibilityState === "hidden" && v.current.flush();
4236
+ }, (i = globalThis.document) == null || i.addEventListener == null || i.addEventListener("visibilitychange", _.current)), p) {
4237
+ if (!l.current && m.current) return s.current = o.current, t(g, n), x ? e(o.current) : f.current;
4238
+ if (w) return t(g, n), e(o.current);
4239
+ }
4240
+ return l.current || t(g, n), f.current;
4241
+ }
4242
+ };
4243
+ return O.cancel = function() {
4244
+ var e = l.current;
4245
+ e && (b ? cancelAnimationFrame(l.current) : clearTimeout(l.current)), s.current = 0, u.current = o.current = d.current = l.current = null, e && i && i({});
4246
+ }, O.isPending = function() {
4247
+ return !!l.current;
4248
+ }, O.flush = function() {
4249
+ return l.current ? h(Date.now()) : f.current;
4250
+ }, O;
4251
+ }, [
4252
+ x,
4253
+ w,
4254
+ n,
4255
+ E,
4256
+ S,
4257
+ C,
4258
+ b,
4259
+ y,
4260
+ T,
4261
+ i
4262
+ ]);
4263
+ return v.current = D, h(function() {
4264
+ return m.current = !0, function() {
4265
+ var e;
4266
+ C && v.current.flush(), _.current &&= ((e = globalThis.document) == null || e.removeEventListener == null || e.removeEventListener("visibilitychange", _.current), null), m.current = !1;
4267
+ };
4268
+ }, [C]), D;
4269
+ }
4270
+ function Vs(e, t) {
4271
+ return e === t;
4272
+ }
4273
+ function Hs(e, t, r) {
4274
+ var i = r && r.equalityFn || Vs, a = g(e), o = n({})[1], c = Bs(s(function(e) {
4275
+ a.current = e, o({});
4276
+ }, [o]), t, r, o), l = g(e);
4277
+ return i(l.current, e) || (c(e), l.current = e), [a.current, c];
4278
+ }
4279
+ //#endregion
4280
+ //#region src/components/modals/search.tsx
4281
+ o();
4282
+ var Us = 80, Ws = ({ onOpenChange: e, query: r, setQuery: i }) => {
4283
+ let a = g(null), o = g([]), s = g(0), c = fe(), [l] = Hs(r, 300), u = r.length >= 2, { searchQuery: d, updateAccountSearchResult: f } = xe("index", u ? l : ""), { data: p, isFetching: m, isFetched: _ } = d, { suggestedProfilesQuery: v } = Se("index", 5), { data: y, isLoading: b } = v, x = b || y && y.length > 0, { topicsQuery: S } = ve(), { data: C } = S, { data: w } = Oe("index", "me"), [T, E] = n([]), [D, O] = n(null), [k, A] = n(0), j = t(() => {
4284
+ let e = C?.topics || [];
4285
+ if (!u || e.length === 0) return [];
4286
+ let t = r.toLowerCase();
4287
+ return e.filter((e) => e.slug === "following" ? !1 : e.name.toLowerCase().startsWith(t) || e.slug.toLowerCase().startsWith(t));
4288
+ }, [
4289
+ r,
4290
+ u,
4291
+ C?.topics
4292
+ ]), M = t(() => [...j.map((e) => ({
4293
+ type: "topic",
4294
+ data: e
4295
+ })), ...T.map((e) => ({
4296
+ type: "account",
4297
+ data: e
4298
+ }))], [j, T]);
4299
+ h(() => {
4300
+ if (!u) {
4301
+ E([]), O(null);
4302
+ return;
4303
+ }
4304
+ _ && (p?.accounts && p.accounts.length > 0 ? (E(p.accounts), O("results"), A(0)) : (E([]), O("none"), A(0)));
4305
+ }, [
4306
+ p?.accounts,
4307
+ _,
4308
+ u
4309
+ ]);
4310
+ let ee = m && u, N = r.length < 2 || !D && u && j.length === 0, P = !N && D === "none" && j.length === 0, F = !N && (T.length > 0 || j.length > 0);
4311
+ return h(() => {
4312
+ a.current?.focus();
4313
+ }, []), h(() => {
4314
+ let e = o.current[k];
4315
+ if (!e) return;
4316
+ let t = e.closest("[data-radix-scroll-area-viewport]") || e.closest(".overflow-y-auto");
4317
+ if (!t) {
4318
+ e.scrollIntoView({ block: "nearest" });
4319
+ return;
4320
+ }
4321
+ let n = t.getBoundingClientRect(), r = e.getBoundingClientRect();
4322
+ r.top < n.top + Us ? t.scrollTo({
4323
+ top: t.scrollTop - (n.top + Us - r.top),
4324
+ behavior: "smooth"
4325
+ }) : r.bottom > n.bottom - Us && t.scrollTo({
4326
+ top: t.scrollTop + (r.bottom - n.bottom + Us),
4327
+ behavior: "smooth"
4328
+ });
4329
+ }, [k]), /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
4330
+ className: "sticky -top-6 z-30 -mt-6 flex h-[72px] shrink-0 items-center gap-2 bg-white pt-3 pb-2 before:pointer-events-none before:absolute before:-inset-x-6 before:bottom-0 before:h-0 before:border-b before:border-b-gray-200 before:content-[\"\"] dark:bg-surface-elevated-2 dark:before:border-b-gray-950",
4331
+ children: [
4332
+ /* @__PURE__ */ (0, Z.jsx)(Re, {
4333
+ className: "text-gray-600",
4334
+ size: 18,
4335
+ strokeWidth: 1.5
4336
+ }),
4337
+ /* @__PURE__ */ (0, Z.jsx)(wa, {
4338
+ ref: a,
4339
+ autoComplete: "off",
4340
+ className: "flex h-10 w-full items-center rounded-lg border-0 bg-transparent px-0 py-1.5 text-lg !shadow-none !outline-none focus-visible:!border-0 focus-visible:bg-transparent focus-visible:!shadow-none focus-visible:!ring-0 focus-visible:!outline-0 dark:bg-surface-elevated-2 dark:text-white dark:placeholder:text-gray-800",
4341
+ placeholder: "Search by name, handle, or URL...",
4342
+ title: "Search",
4343
+ type: "text",
4344
+ value: r,
4345
+ onChange: (e) => i(e.target.value),
4346
+ onKeyDown: (t) => {
4347
+ if (!(!F || M.length === 0)) {
4348
+ if (t.key === "ArrowDown" || t.key === "ArrowUp") {
4349
+ t.preventDefault();
4350
+ let e = Date.now();
4351
+ if (e - s.current < 50) return;
4352
+ s.current = e, t.key === "ArrowDown" ? A((e) => (e + 1) % M.length) : A((e) => (e - 1 + M.length) % M.length);
4353
+ } else if (t.key === "Enter") {
4354
+ let n = M[k];
4355
+ if (!n) return;
4356
+ t.preventDefault(), e?.(!1), n.type === "topic" ? c(`/explore/${n.data.slug}`) : c(`/profile/${n.data.handle}`);
4357
+ }
4358
+ }
4359
+ }
4360
+ }),
4361
+ ee && /* @__PURE__ */ (0, Z.jsx)(Ta, {
4362
+ className: "absolute! right-0 mr-0.5 shrink-0",
4363
+ size: "sm"
4364
+ })
4365
+ ]
4366
+ }), /* @__PURE__ */ (0, Z.jsxs)("div", {
4367
+ className: "h-full",
4368
+ children: [
4369
+ P && /* @__PURE__ */ (0, Z.jsx)("div", {
4370
+ className: "flex h-full items-center justify-center pb-14",
4371
+ children: /* @__PURE__ */ (0, Z.jsxs)(so, { children: [/* @__PURE__ */ (0, Z.jsx)(co, { children: /* @__PURE__ */ (0, Z.jsx)(He, {}) }), "No users matching this handle or account URL"] })
4372
+ }),
4373
+ F && /* @__PURE__ */ (0, Z.jsx)("div", {
4374
+ className: "mt-[-14px] pb-2",
4375
+ children: M.map((t, n) => {
4376
+ let r = n === k;
4377
+ if (t.type === "topic") return /* @__PURE__ */ (0, Z.jsx)("div", {
4378
+ ref: (e) => o.current[n] = e,
4379
+ children: /* @__PURE__ */ (0, Z.jsxs)(Is, {
4380
+ isSelected: r,
4381
+ onClick: () => {
4382
+ e?.(!1), c(`/explore/${t.data.slug}`);
4383
+ },
4384
+ children: [/* @__PURE__ */ (0, Z.jsx)("div", {
4385
+ className: "flex size-10 shrink-0 items-center justify-center rounded-full bg-gray-100 dark:bg-gray-900",
4386
+ children: /* @__PURE__ */ (0, Z.jsx)(ze, {
4387
+ className: "text-gray-700 dark:text-gray-500",
4388
+ size: 18,
4389
+ strokeWidth: 1.5
4390
+ })
4391
+ }), /* @__PURE__ */ (0, Z.jsxs)("div", {
4392
+ className: "flex flex-col",
4393
+ children: [/* @__PURE__ */ (0, Z.jsx)("span", {
4394
+ className: "font-semibold text-black dark:text-white",
4395
+ children: t.data.name
4396
+ }), /* @__PURE__ */ (0, Z.jsx)("span", {
4397
+ className: "text-sm text-gray-700 dark:text-gray-600",
4398
+ children: "Topic"
4399
+ })]
4400
+ })]
4401
+ })
4402
+ }, t.data.slug);
4403
+ let i = t.data, a = i.handle === w?.handle;
4404
+ return /* @__PURE__ */ (0, Z.jsx)(ls, {
4405
+ actor: i,
4406
+ align: "center",
4407
+ isCurrentUser: a,
4408
+ side: "left",
4409
+ children: /* @__PURE__ */ (0, Z.jsx)("div", {
4410
+ ref: (e) => o.current[n] = e,
4411
+ children: /* @__PURE__ */ (0, Z.jsxs)(Is, {
4412
+ isSelected: r,
4413
+ onClick: () => {
4414
+ e?.(!1), c(`/profile/${i.handle}`);
4415
+ },
4416
+ children: [
4417
+ /* @__PURE__ */ (0, Z.jsx)(Ve, { author: {
4418
+ icon: { url: i.avatarUrl },
4419
+ name: i.name,
4420
+ handle: i.handle
4421
+ } }),
4422
+ /* @__PURE__ */ (0, Z.jsxs)("div", {
4423
+ className: "break-anywhere flex flex-col",
4424
+ children: [/* @__PURE__ */ (0, Z.jsx)("span", {
4425
+ className: "line-clamp-1 font-semibold text-black dark:text-white",
4426
+ children: i.name
4427
+ }), /* @__PURE__ */ (0, Z.jsx)("span", {
4428
+ className: "line-clamp-1 text-sm text-gray-700 dark:text-gray-600",
4429
+ children: i.handle
4430
+ })]
4431
+ }),
4432
+ i.blockedByMe || i.domainBlockedByMe ? /* @__PURE__ */ (0, Z.jsx)(W, {
4433
+ className: "pointer-events-none ml-auto min-w-[90px]",
4434
+ variant: "destructive",
4435
+ children: "Blocked"
4436
+ }) : a ? null : /* @__PURE__ */ (0, Z.jsx)(ss, {
4437
+ className: "ml-auto",
4438
+ following: i.followedByMe,
4439
+ handle: i.handle,
4440
+ type: "secondary",
4441
+ onFollow: () => f(i.id, { followedByMe: !0 }),
4442
+ onUnfollow: () => f(i.id, { followedByMe: !1 })
4443
+ })
4444
+ ]
4445
+ })
4446
+ })
4447
+ }, i.id);
4448
+ })
4449
+ }),
4450
+ N && x && /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [/* @__PURE__ */ (0, Z.jsx)(J, { children: "More people to follow" }), /* @__PURE__ */ (0, Z.jsx)(zs, { onOpenChange: e })] })
4451
+ ]
4452
+ })] });
4453
+ };
4454
+ //#endregion
4455
+ //#region src/components/layout/header/search-input.tsx
4456
+ o();
4457
+ var Gs = () => /* @__PURE__ */ (0, Z.jsxs)("div", {
4458
+ className: "inline-flex h-9 w-full items-center justify-start gap-2 rounded-full bg-gray-100 px-3 font-normal text-gray-600 hover:bg-gray-200 hover:text-gray-600 dark:bg-gray-950/70 dark:text-gray-700 dark:hover:bg-gray-950 [&_svg]:size-[18px]",
4459
+ children: [/* @__PURE__ */ (0, Z.jsx)(Re, {
4460
+ size: 18,
4461
+ strokeWidth: 1.5
4462
+ }), " Search the social web"]
4463
+ });
4464
+ //#endregion
4465
+ //#region src/components/layout/sidebar/sidebar-menu-link.tsx
4466
+ o();
4467
+ var Ks = m(({ to: e, children: t, count: n, ...r }, i) => {
4468
+ let a = w(), { resetStack: o } = N(), s = ue(), c = e && e.startsWith("/") ? `${s}${e}` : e, l = z("h-8 justify-start font-medium text-gray-800 dark:text-gray-500 dark:hover:bg-gray-950/70 [&_svg]:size-[18px]", c && (a.pathname === c || a.pathname.startsWith(`${c}/`)) && "bg-gray-100 font-semibold text-black dark:bg-gray-950/70 dark:text-white"), u = n && n > 0 ? /* @__PURE__ */ (0, Z.jsx)("span", {
4469
+ className: z("ml-auto flex h-5 min-w-[20px] items-center justify-center rounded-full bg-purple-500 px-1.5 py-1 text-xs font-semibold text-white"),
4470
+ children: j(n)
4471
+ }) : null;
4472
+ return c ? /* @__PURE__ */ (0, Z.jsx)(W, {
4473
+ className: l,
4474
+ variant: "ghost",
4475
+ asChild: !0,
4476
+ children: /* @__PURE__ */ (0, Z.jsxs)(T, {
4477
+ to: c,
4478
+ onClick: () => {
4479
+ o(), O(c);
4480
+ },
4481
+ children: [t, u]
4482
+ })
4483
+ }) : /* @__PURE__ */ (0, Z.jsxs)(W, {
4484
+ ref: i,
4485
+ className: l,
4486
+ variant: "ghost",
4487
+ onClick: r.onClick,
4488
+ ...r,
4489
+ children: [t, u]
4490
+ });
4491
+ });
4492
+ //#endregion
4493
+ //#region src/components/layout/sidebar/sidebar.tsx
4494
+ Ks.displayName = "SidebarMenuLink", o();
4495
+ var qs = ({ isMobileSidebarOpen: e }) => {
4496
+ let { allFlags: t, flags: r } = at(), [i, a] = n(!1), [o, c] = n(""), { data: l } = E(), u = w(), d = ue(), { data: f } = _e(l?.slug || ""), p = be(l?.slug || ""), { topicsQuery: m } = ve(), { data: g, isLoading: _ } = m, v = !_ && g && g.topics.length === 0;
4497
+ h(() => {
4498
+ u.pathname === `${d}/notifications` && f && f > 0 && p.mutate();
4499
+ }, [
4500
+ u.pathname,
4501
+ d,
4502
+ f,
4503
+ p
4504
+ ]);
4505
+ let y = s(() => {
4506
+ f && f > 0 && p.mutate();
4507
+ }, [f, p]);
4508
+ return /* @__PURE__ */ (0, Z.jsx)("div", {
4509
+ className: `sticky top-0 flex min-h-screen w-[320px] flex-col border-l border-gray-200 pr-[var(--network-gutter,1.5rem)] transition-transform duration-300 ease-in-out max-lg:fixed max-lg:inset-y-0 max-lg:right-0 max-lg:z-50 max-lg:border-0 max-lg:bg-white max-lg:shadow-xl max-md:bottom-[72px] max-md:min-h-[auto] max-md:overflow-y-scroll dark:border-gray-950 max-lg:dark:bg-black ${e ? "max-lg:translate-x-0" : "max-lg:translate-x-full"}`,
4510
+ children: /* @__PURE__ */ (0, Z.jsxs)("div", {
4511
+ className: "flex grow flex-col justify-between",
4512
+ children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
4513
+ className: "isolate flex w-full flex-col items-start gap-6 pt-5 pl-6",
4514
+ children: [
4515
+ /* @__PURE__ */ (0, Z.jsx)("div", {
4516
+ className: "flex w-full items-center",
4517
+ children: /* @__PURE__ */ (0, Z.jsxs)(Wr, {
4518
+ open: i,
4519
+ onOpenChange: a,
4520
+ children: [/* @__PURE__ */ (0, Z.jsx)(Gr, {
4521
+ className: "mt-0.5 w-full",
4522
+ children: /* @__PURE__ */ (0, Z.jsx)(Gs, {})
4523
+ }), /* @__PURE__ */ (0, Z.jsx)(Yr, {
4524
+ className: "flex h-full max-h-[452px] flex-col overflow-y-auto pb-0",
4525
+ children: /* @__PURE__ */ (0, Z.jsx)(Ws, {
4526
+ query: o,
4527
+ setQuery: c,
4528
+ onOpenChange: a
4529
+ })
4530
+ })]
4531
+ })
4532
+ }),
4533
+ /* @__PURE__ */ (0, Z.jsxs)("div", {
4534
+ className: "flex w-full flex-col gap-px",
4535
+ children: [
4536
+ /* @__PURE__ */ (0, Z.jsxs)(Ks, {
4537
+ to: "/reader",
4538
+ children: [/* @__PURE__ */ (0, Z.jsx)(lt, {
4539
+ size: 18,
4540
+ strokeWidth: 1.5
4541
+ }), "Reader"]
4542
+ }),
4543
+ /* @__PURE__ */ (0, Z.jsxs)(Ks, {
4544
+ to: "/notes",
4545
+ children: [/* @__PURE__ */ (0, Z.jsx)(bt, {
4546
+ size: 18,
4547
+ strokeWidth: 1.5
4548
+ }), "Notes"]
4549
+ }),
4550
+ /* @__PURE__ */ (0, Z.jsxs)(Ks, {
4551
+ count: u.pathname === `${d}/notifications` ? void 0 : f,
4552
+ to: "/notifications",
4553
+ onClick: y,
4554
+ children: [/* @__PURE__ */ (0, Z.jsx)(Ie, {
4555
+ size: 18,
4556
+ strokeWidth: 1.5
4557
+ }), "Notifications"]
4558
+ }),
4559
+ v ? /* @__PURE__ */ (0, Z.jsx)(W, {
4560
+ className: "inline-flex w-full items-center gap-2 rounded-sm px-3 py-2.5 text-left font-medium text-gray-800 transition-colors hover:bg-gray-100 dark:text-gray-500 dark:hover:bg-gray-950/70",
4561
+ variant: "ghost",
4562
+ asChild: !0,
4563
+ children: /* @__PURE__ */ (0, Z.jsxs)("a", {
4564
+ href: "https://explore.ghost.org/social-web",
4565
+ rel: "noopener noreferrer",
4566
+ target: "_blank",
4567
+ children: [
4568
+ /* @__PURE__ */ (0, Z.jsx)(ze, {
4569
+ size: 18,
4570
+ strokeWidth: 1.5
4571
+ }),
4572
+ "Explore",
4573
+ /* @__PURE__ */ (0, Z.jsx)(mt, {
4574
+ className: "ml-auto",
4575
+ size: 14,
4576
+ strokeWidth: 1.5
4577
+ })
4578
+ ]
4579
+ })
4580
+ }) : /* @__PURE__ */ (0, Z.jsxs)(Ks, {
4581
+ to: "/explore",
4582
+ children: [/* @__PURE__ */ (0, Z.jsx)(ze, {
4583
+ size: 18,
4584
+ strokeWidth: 1.5
4585
+ }), "Explore"]
4586
+ }),
4587
+ /* @__PURE__ */ (0, Z.jsxs)(Ks, {
4588
+ to: "/profile",
4589
+ children: [/* @__PURE__ */ (0, Z.jsx)(Je, {
4590
+ size: 18,
4591
+ strokeWidth: 1.5
4592
+ }), "Profile"]
4593
+ }),
4594
+ /* @__PURE__ */ (0, Z.jsxs)(Ks, {
4595
+ to: "/preferences",
4596
+ children: [/* @__PURE__ */ (0, Z.jsx)(Tt, {
4597
+ size: 18,
4598
+ strokeWidth: 1.5
4599
+ }), "Preferences"]
4600
+ })
4601
+ ]
4602
+ }),
4603
+ /* @__PURE__ */ (0, Z.jsx)(Ps, { children: /* @__PURE__ */ (0, Z.jsxs)(W, {
4604
+ className: "h-9 rounded-full bg-purple-500 px-3 text-white hover:bg-purple-600 dark:hover:bg-purple-600",
4605
+ children: [/* @__PURE__ */ (0, Z.jsx)(Le, {}), "New note"]
4606
+ }) }),
4607
+ /* @__PURE__ */ (0, Z.jsx)(Ls, {}),
4608
+ t.map((e) => r[e] ? /* @__PURE__ */ (0, Z.jsxs)("div", {
4609
+ className: "flex items-center justify-between gap-1 pl-3 opacity-50",
4610
+ children: [/* @__PURE__ */ (0, Z.jsx)("span", {
4611
+ className: "font-mono text-xs",
4612
+ children: e
4613
+ }), /* @__PURE__ */ (0, Z.jsx)("span", {
4614
+ className: "inline-flex items-center rounded bg-green-100 px-1 py-0.5 text-xs font-medium text-green-800",
4615
+ children: "ON"
4616
+ })]
4617
+ }, e) : /* @__PURE__ */ (0, Z.jsx)(Z.Fragment, {}))
4618
+ ]
4619
+ }), /* @__PURE__ */ (0, Z.jsx)("div", {
4620
+ className: "sticky bottom-0 flex items-center gap-2 bg-white pb-4 pl-4 dark:bg-background",
4621
+ children: /* @__PURE__ */ (0, Z.jsx)(Fs, {})
4622
+ })]
4623
+ })
4624
+ });
4625
+ };
4626
+ //#endregion
4627
+ //#region src/components/layout/host-context.tsx
4628
+ qs.displayName = "Sidebar", o();
4629
+ var Js = a(void 0), Ys = Js.Provider, Xs = () => r(Js);
4630
+ //#endregion
4631
+ //#region src/components/layout/layout.tsx
4632
+ o();
4633
+ var Zs = ({ children: e, className: t, style: r, ...i }) => {
4634
+ let a = Xs(), { isOnboarded: o } = Qe(), s = ue(), { data: c, isLoading: l } = E(), u = g(null), [d, f] = n(!1), p = fo(), { topicsQuery: m } = ve(), { data: h } = m, _ = h && h.topics.length > 0, { isNewNoteModalOpen: v, setIsNewNoteModalOpen: y } = us(), b = () => {
4635
+ f(!d);
4636
+ }, x = () => {
4637
+ f(!1);
4638
+ };
4639
+ return l || !c ? null : o ? /* @__PURE__ */ (0, Z.jsxs)("div", {
4640
+ ref: u,
4641
+ className: `h-screen w-full ${o && "overflow-y-auto"}`,
4642
+ "data-scrollable-container": !0,
4643
+ children: [
4644
+ /* @__PURE__ */ (0, Z.jsx)(he, { containerRef: u }),
4645
+ /* @__PURE__ */ (0, Z.jsx)("div", {
4646
+ className: z("relative mx-auto flex max-w-page flex-col", t, a?.contentClassName),
4647
+ style: {
4648
+ ...r,
4649
+ "--network-gutter": a?.contentGutter
4650
+ },
4651
+ ...i,
4652
+ children: o ? /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
4653
+ className: "block grid-cols-[auto_320px] items-start lg:grid",
4654
+ children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
4655
+ className: "z-0 min-w-0",
4656
+ children: [/* @__PURE__ */ (0, Z.jsx)(ho, {
4657
+ showBorder: !(p === "reader" && _) && p !== "explore",
4658
+ onToggleMobileSidebar: b
4659
+ }), /* @__PURE__ */ (0, Z.jsx)("div", {
4660
+ className: "px-[var(--network-gutter,min(4vw,24px))]",
4661
+ children: e
4662
+ })]
4663
+ }), /* @__PURE__ */ (0, Z.jsx)(qs, {
4664
+ isMobileSidebarOpen: d,
4665
+ onCloseMobileSidebar: x
4666
+ })]
4667
+ }), d && /* @__PURE__ */ (0, Z.jsx)("div", {
4668
+ className: "fixed inset-0 z-40 lg:hidden",
4669
+ onClick: x
4670
+ })] }) : /* @__PURE__ */ (0, Z.jsx)($e, {})
4671
+ }),
4672
+ /* @__PURE__ */ (0, Z.jsx)(Ps, {
4673
+ open: v,
4674
+ onOpenChange: y
4675
+ })
4676
+ ]
4677
+ }) : /* @__PURE__ */ (0, Z.jsx)(P, {
4678
+ to: `${s}/welcome`,
4679
+ replace: !0
4680
+ });
4681
+ };
4682
+ //#endregion
4683
+ //#region src/components/global/empty-view-indicator.tsx
4684
+ o();
4685
+ var Qs = ({ children: e }) => /* @__PURE__ */ (0, Z.jsx)("div", {
4686
+ className: "flex max-h-12 max-w-12 grow-0 items-center justify-center rounded-full bg-gray-100 p-3 text-gray-700 dark:bg-gray-950/70 [&_svg]:size-8 [&_svg]:stroke-1",
4687
+ children: e
4688
+ }), $s = ({ children: e, className: t }) => /* @__PURE__ */ (0, Z.jsx)("div", {
4689
+ className: `mx-auto mt-[24vh] flex max-w-[500px] flex-col items-center gap-5 text-center text-gray-700 ${t || ""}`,
4690
+ children: e
4691
+ }), ec = ({ statusCode: e, errorCode: t }) => {
4692
+ let n = b(), r = re();
4693
+ return n ? /* @__PURE__ */ (0, Z.jsx)(Zs, { children: /* @__PURE__ */ (0, Z.jsxs)($s, { children: [
4694
+ /* @__PURE__ */ (0, Z.jsx)(Qs, { children: /* @__PURE__ */ (0, Z.jsx)(wt, {}) }),
4695
+ /* @__PURE__ */ (0, Z.jsx)(J, {
4696
+ className: "-mb-4",
4697
+ children: "Oops, page not found!"
4698
+ }),
4699
+ /* @__PURE__ */ (0, Z.jsx)("div", { children: "We couldn't find the page you were looking for. It may have been moved, deleted, or never existed in the first place." })
4700
+ ] }) }) : e === 429 ? /* @__PURE__ */ (0, Z.jsxs)($s, {
4701
+ className: "mt-[50vh] -translate-y-1/2",
4702
+ children: [
4703
+ /* @__PURE__ */ (0, Z.jsx)(Qs, { children: /* @__PURE__ */ (0, Z.jsx)(Ot, {}) }),
4704
+ /* @__PURE__ */ (0, Z.jsx)(J, {
4705
+ className: "-mb-4",
4706
+ children: "Rate limit exceeded"
4707
+ }),
4708
+ /* @__PURE__ */ (0, Z.jsx)("div", { children: "You've made too many requests. Please try again in a moment." }),
4709
+ /* @__PURE__ */ (0, Z.jsx)(W, {
4710
+ asChild: !0,
4711
+ children: /* @__PURE__ */ (0, Z.jsx)("a", {
4712
+ href: "https://ghost.org/help/social-web/",
4713
+ rel: "noopener noreferrer",
4714
+ target: "_blank",
4715
+ children: "Learn more →"
4716
+ })
4717
+ })
4718
+ ]
4719
+ }) : e === 403 ? t === "ROLE_MISSING" || t === "SITE_MISSING" ? /* @__PURE__ */ (0, Z.jsxs)($s, {
4720
+ className: "mt-[50vh] -translate-y-1/2",
4721
+ children: [
4722
+ /* @__PURE__ */ (0, Z.jsx)(Qs, { children: /* @__PURE__ */ (0, Z.jsx)(Et, {}) }),
4723
+ /* @__PURE__ */ (0, Z.jsx)(J, {
4724
+ className: "-mb-4",
4725
+ children: "Site not configured correctly"
4726
+ }),
4727
+ /* @__PURE__ */ (0, Z.jsx)("div", { children: "This feature can't be used because the site isn't set up correctly. If you manage this site, check your settings or server logs, or contact support." }),
4728
+ /* @__PURE__ */ (0, Z.jsx)(W, {
4729
+ asChild: !0,
4730
+ children: /* @__PURE__ */ (0, Z.jsx)("a", {
4731
+ href: "https://ghost.org/help/social-web/",
4732
+ rel: "noopener noreferrer",
4733
+ target: "_blank",
4734
+ children: "Learn more →"
4735
+ })
4736
+ })
4737
+ ]
4738
+ }) : /* @__PURE__ */ (0, Z.jsxs)($s, {
4739
+ className: "mt-[50vh] -translate-y-1/2",
4740
+ children: [
4741
+ /* @__PURE__ */ (0, Z.jsx)(Qs, { children: /* @__PURE__ */ (0, Z.jsx)(ct, {}) }),
4742
+ /* @__PURE__ */ (0, Z.jsx)(J, {
4743
+ className: "-mb-4",
4744
+ children: "Account suspended"
4745
+ }),
4746
+ /* @__PURE__ */ (0, Z.jsx)("div", { children: "Your account has been suspended due to policy violations." }),
4747
+ /* @__PURE__ */ (0, Z.jsx)(W, {
4748
+ asChild: !0,
4749
+ children: /* @__PURE__ */ (0, Z.jsx)("a", {
4750
+ href: "https://ghost.org/help/social-web/",
4751
+ rel: "noopener noreferrer",
4752
+ target: "_blank",
4753
+ children: "Learn more →"
4754
+ })
4755
+ })
4756
+ ]
4757
+ }) : e === 410 && t === "INVALID_VERSION" ? /* @__PURE__ */ (0, Z.jsxs)($s, {
4758
+ className: "mt-[50vh] -translate-y-1/2",
4759
+ children: [
4760
+ /* @__PURE__ */ (0, Z.jsx)(Qs, { children: /* @__PURE__ */ (0, Z.jsx)(ft, {}) }),
4761
+ /* @__PURE__ */ (0, Z.jsx)(J, {
4762
+ className: "-mb-4",
4763
+ children: "New version available"
4764
+ }),
4765
+ /* @__PURE__ */ (0, Z.jsx)("div", { children: "We've made some updates! Refresh your page to see what's new" }),
4766
+ /* @__PURE__ */ (0, Z.jsx)(W, {
4767
+ asChild: !0,
4768
+ children: /* @__PURE__ */ (0, Z.jsx)("button", {
4769
+ type: "button",
4770
+ onClick: () => window.location.reload(),
4771
+ children: "Refresh your page"
4772
+ })
4773
+ })
4774
+ ]
4775
+ }) : /* @__PURE__ */ (0, Z.jsx)("div", {
4776
+ className: "admin-x-container-error",
4777
+ children: /* @__PURE__ */ (0, Z.jsxs)("div", {
4778
+ className: "admin-x-error max-w-xl",
4779
+ children: [
4780
+ /* @__PURE__ */ (0, Z.jsx)("h1", { children: "Loading interrupted" }),
4781
+ /* @__PURE__ */ (0, Z.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." }),
4782
+ /* @__PURE__ */ (0, Z.jsx)("a", {
4783
+ className: "cursor-pointer text-green",
4784
+ onClick: (e) => {
4785
+ e.preventDefault(), r("/analytics/", { crossApp: !0 });
4786
+ },
4787
+ children: "← Back to the homepage"
4788
+ })
4789
+ ]
4790
+ })
4791
+ });
4792
+ }, tc = /* @__PURE__ */ e({ default: () => ec }), nc = [{
4793
+ path: "activitypub",
4794
+ element: /* @__PURE__ */ (0, Z.jsx)(C, {}),
4795
+ errorElement: /* @__PURE__ */ (0, Z.jsx)(ec, {}),
4796
+ handle: "activitypub-basepath",
4797
+ children: [
4798
+ {
4799
+ index: !0,
4800
+ element: /* @__PURE__ */ (0, Z.jsx)(P, { to: "reader" })
4801
+ },
4802
+ {
4803
+ path: "inbox",
4804
+ element: /* @__PURE__ */ (0, Z.jsx)(P, {
4805
+ to: "../reader",
4806
+ replace: !0
4807
+ })
4808
+ },
4809
+ {
4810
+ path: "feed",
4811
+ element: /* @__PURE__ */ (0, Z.jsx)(P, {
4812
+ to: "../notes",
4813
+ replace: !0
4814
+ })
4815
+ },
4816
+ {
4817
+ path: "reader",
4818
+ lazy: X(() => import("./inbox-DerExBzA.js")),
4819
+ pageTitle: "Reader"
4820
+ },
4821
+ {
4822
+ path: "reader/:postId",
4823
+ lazy: X(() => import("./inbox-DerExBzA.js")),
4824
+ pageTitle: "Reader"
4825
+ },
4826
+ {
4827
+ path: "notes",
4828
+ lazy: X(() => import("./feed-DF22jCTV.js")),
4829
+ pageTitle: "Notes"
4830
+ },
4831
+ {
4832
+ path: "notes/:postId",
4833
+ lazy: X(() => import("./note-DOnAJTXK.js")),
4834
+ pageTitle: "Note"
4835
+ },
4836
+ {
4837
+ path: "notifications",
4838
+ lazy: X(() => import("./notifications-DZc6XTjG.js")),
4839
+ pageTitle: "Notifications"
4840
+ },
4841
+ {
4842
+ path: "explore",
4843
+ lazy: X(() => import("./explore-NlDT4inq.js")),
4844
+ pageTitle: "Explore"
4845
+ },
4846
+ {
4847
+ path: "explore/:topic",
4848
+ lazy: X(() => import("./explore-NlDT4inq.js")),
4849
+ pageTitle: "Explore"
4850
+ },
4851
+ {
4852
+ path: "profile",
4853
+ lazy: X(() => import("./profile-DjVa2hUk.js")),
4854
+ pageTitle: "Profile"
4855
+ },
4856
+ {
4857
+ path: "profile/likes",
4858
+ lazy: X(() => import("./profile-DjVa2hUk.js")),
4859
+ pageTitle: "Profile"
4860
+ },
4861
+ {
4862
+ path: "profile/following",
4863
+ lazy: X(() => import("./profile-DjVa2hUk.js")),
4864
+ pageTitle: "Profile"
4865
+ },
4866
+ {
4867
+ path: "profile/followers",
4868
+ lazy: X(() => import("./profile-DjVa2hUk.js")),
4869
+ pageTitle: "Profile"
4870
+ },
4871
+ {
4872
+ path: "profile/:handle/:tab?",
4873
+ lazy: X(() => import("./profile-DjVa2hUk.js")),
4874
+ pageTitle: "Profile"
4875
+ },
4876
+ {
4877
+ path: "preferences",
4878
+ lazy: X(() => import("./preferences-DDok6F2N.js")),
4879
+ pageTitle: "Preferences"
4880
+ },
4881
+ {
4882
+ path: "preferences/moderation",
4883
+ lazy: X(() => import("./moderation-BSkfiVYo.js")),
4884
+ pageTitle: "Moderation",
4885
+ showBackButton: !0
4886
+ },
4887
+ {
4888
+ path: "preferences/bluesky-sharing",
4889
+ lazy: X(() => import("./bluesky-sharing-Cg_v-LwS.js")),
4890
+ showBackButton: !0
4891
+ },
4892
+ {
4893
+ path: "preferences/move",
4894
+ lazy: X(() => import("./account-migration-B1DUZS4Q.js")),
4895
+ pageTitle: "Account migration",
4896
+ showBackButton: !0
4897
+ },
4898
+ {
4899
+ path: "preferences/handle",
4900
+ lazy: X(() => import("./domain-C3G_nkHU.js")),
4901
+ pageTitle: "Handle",
4902
+ showBackButton: !0
4903
+ },
4904
+ {
4905
+ path: "welcome",
4906
+ lazy: X(() => import("./onboarding-DYVqbNmp.js").then((e) => e.t)),
4907
+ pageTitle: "Welcome",
4908
+ children: [
4909
+ {
4910
+ path: "",
4911
+ element: /* @__PURE__ */ (0, Z.jsx)(P, {
4912
+ to: "1",
4913
+ replace: !0
4914
+ })
4915
+ },
4916
+ {
4917
+ path: "1",
4918
+ lazy: X(() => import("./step-1-737bnvxk.js"))
4919
+ },
4920
+ {
4921
+ path: "2",
4922
+ lazy: X(() => import("./step-2-DBaIsAsM.js"))
4923
+ },
4924
+ {
4925
+ path: "3",
4926
+ lazy: X(() => import("./step-3-BBmy9m9V.js"))
4927
+ },
4928
+ {
4929
+ path: "*",
4930
+ element: /* @__PURE__ */ (0, Z.jsx)(P, {
4931
+ to: "1",
4932
+ replace: !0
4933
+ })
4934
+ }
4935
+ ]
4936
+ },
4937
+ {
4938
+ path: "*",
4939
+ lazy: X(() => Promise.resolve().then(() => tc))
4940
+ }
4941
+ ]
4942
+ }];
4943
+ //#endregion
4944
+ export { Xr as $, co as A, ya as B, ps as C, ss as D, ls as E, pa as F, Ni as G, ba as H, Sa as I, Wr as J, Pi as K, Ca as L, ka as M, Ta as N, lo as O, wa as P, Zr as Q, _a as R, vs as S, ds as T, ma as U, va as V, ji as W, Yr as X, qr as Y, $r as Z, Cs as _, Zs as a, on as at, xs as b, Is as c, At as ct, ks as d, pt as dt, Qr as et, Ns as f, dt as ft, Os as g, nt as gt, ws as h, ot as ht, $s as i, mr as it, Ma as j, so as k, Ps as l, Dt as lt, Ms as m, ct as mt, ec as n, gr as nt, Ys as o, zt as ot, js as p, ut as pt, Mi as q, Qs as r, hr as rt, Hs as s, Nt as st, nc as t, Gr as tt, As as u, mt as ut, Ss as v, fs as w, ys as x, bs as y, xa as z };
4945
+
4946
+ //# sourceMappingURL=routes-Cw302e1c.js.map