ghost 6.37.1 → 6.38.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 (258) hide show
  1. package/components/tryghost-i18n-0.0.0.tgz +0 -0
  2. package/core/boot.js +13 -9
  3. package/core/bridge.js +10 -6
  4. package/core/built/admin/assets/{PolarAngleAxis-Cavik65s.js → PolarAngleAxis-CB-FJBDa.js} +1 -1
  5. package/core/built/admin/assets/{_baseAssignValue-CnqN6ZMT.js → _baseAssignValue-BEAjPAfy.js} +1 -1
  6. package/core/built/admin/assets/{a-large-small-Wi4LtZX-.js → a-large-small-L1BJa6mG.js} +1 -1
  7. package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +1 -1
  8. package/core/built/admin/assets/admin-x-settings/{code-editor-view-Cf8T5Jfd.mjs → code-editor-view-bOZzJ3a1.mjs} +2 -2
  9. package/core/built/admin/assets/admin-x-settings/{index-BMWEh-vR.mjs → index-BRuMxaCz.mjs} +2 -2
  10. package/core/built/admin/assets/admin-x-settings/{index-Aj-hFSnY.mjs → index-CTAQj489.mjs} +5 -5
  11. package/core/built/admin/assets/admin-x-settings/{index-DjBJrXYn.mjs → index-WoKKBOe4.mjs} +2 -2
  12. package/core/built/admin/assets/admin-x-settings/{modals-8WpWZZdI.mjs → modals-BQ5M-RTA.mjs} +3 -3
  13. package/core/built/admin/assets/{arrow-right-BiAOKOto.js → arrow-right-B2j-ecEK.js} +1 -1
  14. package/core/built/admin/assets/{at-sign-z5gBMxDW.js → at-sign-CtAw8_lw.js} +1 -1
  15. package/core/built/admin/assets/{audience-DxNilLIv.js → audience-CvSOqHuo.js} +1 -1
  16. package/core/built/admin/assets/automations-BVUNuVOh.js +1 -0
  17. package/core/built/admin/assets/automations-Bi9RJq5E.js +1 -0
  18. package/core/built/admin/assets/{avatar-flipboard-5OzseZFV.js → avatar-flipboard-DocLTXLh.js} +1 -1
  19. package/core/built/admin/assets/{bluesky-sharing-D9YcSpW8.js → bluesky-sharing-DafX2lE1.js} +1 -1
  20. package/core/built/admin/assets/chart-BRQeD9eh.js +67 -0
  21. package/core/built/admin/assets/{chevron-up-DVt6fhV3.js → chevron-up-v4_QwmnL.js} +1 -1
  22. package/core/built/admin/assets/{chunk.524.fcd26ef812d73e2b0620.js → chunk.524.c3d844070c24d7984fd7.js} +4 -4
  23. package/core/built/admin/assets/{chunk.582.b61ffaad1c2fa4aba820.js → chunk.582.0e0ede1eac12926acceb.js} +6 -6
  24. package/core/built/admin/assets/{chunk.383.adb5a3fe32b6b98c43ff.js → chunk.995.4b32363ab39da3e7f5d7.js} +3 -3
  25. package/core/built/admin/assets/circle-alert-Dbz54fYb.js +1 -0
  26. package/core/built/admin/assets/{code-editor-view-CbQIqTrK.js → code-editor-view-D-pYCcdu.js} +1 -1
  27. package/core/built/admin/assets/comments-DSv09jRn.js +1 -0
  28. package/core/built/admin/assets/{content-helpers-jANWGIfA.js → content-helpers-DQdPPDGb.js} +1 -1
  29. package/core/built/admin/assets/{copy-BBLeLEnG.js → copy-BULQsPZ4.js} +1 -1
  30. package/core/built/admin/assets/{data-list-BveeOSGI.js → data-list-WxXC0iKE.js} +1 -1
  31. package/core/built/admin/assets/{deleted-feed-item-DupAEk4P.js → deleted-feed-item-ZBLfgRkK.js} +1 -1
  32. package/core/built/admin/assets/{dropzone-D3PSdAHN.js → dropzone-B8mAoWrn.js} +1 -1
  33. package/core/built/admin/assets/{edit-profile-NrCR9_bi.js → edit-profile-Bj3th8H0.js} +1 -1
  34. package/core/built/admin/assets/editor-BZV40eAE.css +1 -0
  35. package/core/built/admin/assets/editor-u20VuPzn.js +7 -0
  36. package/core/built/admin/assets/{empty-indicator-Dhi_KeYX.js → empty-indicator-P3IsUguf.js} +1 -1
  37. package/core/built/admin/assets/{en-BontI3SP.js → en-C9bUnuy7.js} +1 -1
  38. package/core/built/admin/assets/{feed-B3Kfiz5R.js → feed-B94mO944.js} +1 -1
  39. package/core/built/admin/assets/{filter-query-core-Dwh4Qulu.js → filter-query-core-CM0KKIr2.js} +1 -1
  40. package/core/built/admin/assets/filters-D52FTE0z.js +1 -0
  41. package/core/built/admin/assets/gh-chart-Xa6Nvzwz.js +1 -0
  42. package/core/built/admin/assets/{ghost-c25434d5bbf5a5429883d4c3590f1946.js → ghost-82f1c4ffe0e1cd058ce4b66b5253b620.js} +159 -201
  43. package/core/built/admin/assets/{ghost-dark-52df27573e5f2a75e6cf4b1d06eea9e4.css → ghost-dark-9897cf5102772faedf566e5e54d4fbee.css} +1 -1
  44. package/core/built/admin/assets/{ghost-fcf460028e04192f392f16e173f2e3a8.css → ghost-e11f1814be0f38e98bb77b49eba11178.css} +1 -1
  45. package/core/built/admin/assets/{growth-DRH8zUIJ.js → growth-D3TW3JIB.js} +1 -1
  46. package/core/built/admin/assets/{hash-UvX5iOa9.js → hash-CstXS-iB.js} +1 -1
  47. package/core/built/admin/assets/{header-G1a38jnf.js → header-StkTITw-.js} +1 -1
  48. package/core/built/admin/assets/{inbox-By7HZskI.js → inbox-D1RM3kVF.js} +1 -1
  49. package/core/built/admin/assets/index-BEkJ9xtY.css +1 -0
  50. package/core/built/admin/assets/{index-CS_ZmI8F.js → index-BJx5Uas5.js} +1 -1
  51. package/core/built/admin/assets/index-BKzg6OE7.js +1 -0
  52. package/core/built/admin/assets/{index-D7JyKf1m.js → index-BM-MBdD0.js} +1 -1
  53. package/core/built/admin/assets/index-BRzvVuXt.js +2 -0
  54. package/core/built/admin/assets/index-B_3xqeM9.js +1 -0
  55. package/core/built/admin/assets/{index-ydyrczVl.js → index-C-OdR2wJ.js} +1 -1
  56. package/core/built/admin/assets/{index-X-MG1ikg.js → index-C59QlJqT.js} +1 -1
  57. package/core/built/admin/assets/{index-CJo0Qh4V.js → index-CCq_1tCo.js} +1 -1
  58. package/core/built/admin/assets/{index-qHUvPjQB.js → index-CYyEyBYw.js} +11 -11
  59. package/core/built/admin/assets/{index-CX4ztLSk.js → index-DHbiBjyq.js} +1 -1
  60. package/core/built/admin/assets/{index-BP6hBbPK.js → index-DTVgSMyL.js} +2 -2
  61. package/core/built/admin/assets/{index-vZMbI8e8.js → index-DiUjEgRw.js} +1 -1
  62. package/core/built/admin/assets/{index-YM4ZplGj.js → index-DugxKzA6.js} +1 -1
  63. package/core/built/admin/assets/{index-D8InZCr2.js → index-DzVHlhO1.js} +1 -1
  64. package/core/built/admin/assets/{index-D4b7U6K-.js → index-LsaD9Cq7.js} +1 -1
  65. package/core/built/admin/assets/{index-DRUPF8nN.js → index-x0hNfyqU.js} +1 -1
  66. package/core/built/admin/assets/{inline-Bc9zHR7e.js → inline-B4cWemrJ.js} +1 -1
  67. package/core/built/admin/assets/{koenig-lexical-B-ZnqRE1.js → koenig-lexical-BOdeH3QJ.js} +1 -1
  68. package/core/built/admin/assets/{kpi-card-zyi5Onb0.js → kpi-card-P7zSpcx0.js} +1 -1
  69. package/core/built/admin/assets/{kpi-card-CzlPIEPE.js → kpi-card-plhYOEtA.js} +1 -1
  70. package/core/built/admin/assets/{kpi-tabs-Dsa5ldXK.js → kpi-tabs-DZw2Qktb.js} +1 -1
  71. package/core/built/admin/assets/{kpis-Cw5ZRQhk.js → kpis-CDHM0xhW.js} +1 -1
  72. package/core/built/admin/assets/{label-BvxmsD1M.js → label-Ckacdx14.js} +1 -1
  73. package/core/built/admin/assets/{links-CiS5BPKS.js → links-BtXE5d0Y.js} +1 -1
  74. package/core/built/admin/assets/{list-filter-zmkB7rg4.js → list-filter-DLjjiktn.js} +1 -1
  75. package/core/built/admin/assets/{list-header-Cp779e3H.js → list-header-Cc7Ia3nr.js} +1 -1
  76. package/core/built/admin/assets/loader-circle-DLJd-dNm.js +1 -0
  77. package/core/built/admin/assets/{mail-i2qs8CIG.js → mail-B97w28e2.js} +1 -1
  78. package/core/built/admin/assets/{main-layout-KCvKOX8F.js → main-layout-bwWvzc9B.js} +1 -1
  79. package/core/built/admin/assets/{members-w601v5JJ.js → members-CokS8MI2.js} +5 -5
  80. package/core/built/admin/assets/{message-square-text-bG9IoWIt.js → message-square-text-D3rsjDFR.js} +1 -1
  81. package/core/built/admin/assets/minus-BzXQVmMw.js +1 -0
  82. package/core/built/admin/assets/{modals-lNzhiL0o.js → modals-D0lip-iy.js} +2 -2
  83. package/core/built/admin/assets/{moderation-CyfNRSWj.js → moderation-Dv7AadCV.js} +1 -1
  84. package/core/built/admin/assets/newsletter-BazC5rIj.js +1 -0
  85. package/core/built/admin/assets/{newsletters-B8xSXSr_.js → newsletters-m6HQgU5J.js} +1 -1
  86. package/core/built/admin/assets/{note-dNfKEpxw.js → note-CCGiEKz-.js} +1 -1
  87. package/core/built/admin/assets/{onboarding-route-Drbw0QtT.js → onboarding-route-Cbt7qWNE.js} +1 -1
  88. package/core/built/admin/assets/overview-TN50tzUh.js +1 -0
  89. package/core/built/admin/assets/{pagemenu-VJXMoMB4.js → pagemenu-BXrHWtsU.js} +1 -1
  90. package/core/built/admin/assets/{pencil-DHNmlLjO.js → pencil-BL1r8KVy.js} +1 -1
  91. package/core/built/admin/assets/{post-analytics-PsqLsS2e.js → post-analytics-BqEXi6Ps.js} +1 -1
  92. package/core/built/admin/assets/{post-analytics-context-QLZsZCFg.js → post-analytics-context-DekYNlb3.js} +1 -1
  93. package/core/built/admin/assets/{post-analytics-header-PecXsIT-.js → post-analytics-header-AkNbn6uc.js} +1 -1
  94. package/core/built/admin/assets/{post-share-modal-B4Rvo7W1.js → post-share-modal-CXDGVKoQ.js} +1 -1
  95. package/core/built/admin/assets/posts/{app-utils-DIc5TmxO.mjs → app-utils-DxA7edI_.mjs} +2 -2
  96. package/core/built/admin/assets/posts/{automations-BZpT35kJ.mjs → automations-Cwu_gHl4.mjs} +64 -67
  97. package/core/built/admin/assets/posts/automations-D81hV_2c.mjs +13 -0
  98. package/core/built/admin/assets/posts/{avatar-K63cvqSS.mjs → avatar-IkjEzEjI.mjs} +19 -19
  99. package/core/built/admin/assets/posts/{button-ufGBCcsV.mjs → button-KaJZKcou.mjs} +21 -21
  100. package/core/built/admin/assets/posts/{check-IcEnuTpD.mjs → check-Cf74RvZ1.mjs} +21 -21
  101. package/core/built/admin/assets/posts/{comments-CyJU9Ums.mjs → comments-pdKhYbYG.mjs} +54 -52
  102. package/core/built/admin/assets/posts/createLucideIcon-Cj7h3r9g.mjs +320 -0
  103. package/core/built/admin/assets/posts/{dialog-D6_lBvtT.mjs → dialog-Ci3W8fjx.mjs} +71 -76
  104. package/core/built/admin/assets/posts/{dropdown-menu-BSSmAory.mjs → dropdown-menu-DZ9XCHSw.mjs} +5 -5
  105. package/core/built/admin/assets/posts/editor-Bb-xle0o.mjs +6084 -0
  106. package/core/built/admin/assets/posts/ellipsis-ChhZo9aT.mjs +10 -0
  107. package/core/built/admin/assets/posts/{empty-indicator-DvGCvRAX.mjs → empty-indicator-DnFs7hDy.mjs} +2 -2
  108. package/core/built/admin/assets/posts/{filters-BLBaHhJz.mjs → filters-CO_FUPX-.mjs} +42 -40
  109. package/core/built/admin/assets/posts/get-site-timezone-C21yKZT_.mjs +87 -0
  110. package/core/built/admin/assets/posts/{growth-Bz1ChJNB.mjs → growth-CtX9Efm2.mjs} +12 -12
  111. package/core/built/admin/assets/posts/heading-DZ_KtDTL.mjs +138 -0
  112. package/core/built/admin/assets/posts/{hooks-BEngBys9.mjs → hooks-DVhBDVlA.mjs} +3 -2
  113. package/core/built/admin/assets/posts/{index-BAF0YXsp.mjs → index-B4db8w_H.mjs} +181 -172
  114. package/core/built/admin/assets/posts/{inline-C2YFQAdU.mjs → inline-BfB-SNk0.mjs} +2 -2
  115. package/core/built/admin/assets/posts/{input-surface-TqJlNSp_.mjs → input-surface-CNwZJloi.mjs} +2 -2
  116. package/core/built/admin/assets/posts/{kpis-DAX5_0-Q.mjs → kpis-BvY_5Y1u.mjs} +8792 -8803
  117. package/core/built/admin/assets/posts/{links-A1YTsBbF.mjs → links-Ck-h7SKg.mjs} +57 -57
  118. package/core/built/admin/assets/posts/{loading-indicator-BZsjmp8g.mjs → loading-indicator-B_rU9Lie.mjs} +3 -3
  119. package/core/built/admin/assets/posts/mail-DiZ3oKEW.mjs +9 -0
  120. package/core/built/admin/assets/posts/{main-layout-D_HHTP_n.mjs → main-layout-aYo6qOBZ.mjs} +2 -2
  121. package/core/built/admin/assets/posts/{newsletter-BRzgjOIa.mjs → newsletter-BQc53TF2.mjs} +31 -30
  122. package/core/built/admin/assets/posts/{overview-C41VFjn7.mjs → overview-blz9Ak9q.mjs} +42 -41
  123. package/core/built/admin/assets/posts/plus-YVjtYaK3.mjs +15 -0
  124. package/core/built/admin/assets/posts/{post-analytics-DGgMkFaf.mjs → post-analytics-BQbWGoeu.mjs} +6 -6
  125. package/core/built/admin/assets/posts/{post-analytics-context-B1r3HBrp.mjs → post-analytics-context-Be7THgnd.mjs} +7 -7
  126. package/core/built/admin/assets/posts/{post-analytics-header-DTWSO0Aq.mjs → post-analytics-header-iDFy7Bao.mjs} +2762 -2764
  127. package/core/built/admin/assets/posts/{post-share-modal-ohHwk0Yt.mjs → post-share-modal-akP16idN.mjs} +50 -48
  128. package/core/built/admin/assets/posts/posts.js +2 -1
  129. package/core/built/admin/assets/posts/{settings-CZYL6Jhr.mjs → settings-BdQhfHxY.mjs} +2 -2
  130. package/core/built/admin/assets/posts/{sheet-D7YesQJE.mjs → sheet-3dBlKeXf.mjs} +14 -13
  131. package/core/built/admin/assets/posts/{skeleton-S1k58YKa.mjs → skeleton-DMgSvYqr.mjs} +11 -11
  132. package/core/built/admin/assets/posts/{source-icon-DnpCy5N4.mjs → source-icon-Bp5Qxq1E.mjs} +4 -4
  133. package/core/built/admin/assets/posts/{stats-CbOpowXb.mjs → stats-DJx9qc_u.mjs} +4 -4
  134. package/core/built/admin/assets/posts/{table-Cw3Wxf1C.mjs → table-BpVwuzeH.mjs} +2 -2
  135. package/core/built/admin/assets/posts/{data-list-BnZARP88.mjs → tabs-CbZCpxfI.mjs} +4885 -5284
  136. package/core/built/admin/assets/posts/{tags-BoMt6Ce3.mjs → tags-CNtvDS6f.mjs} +33 -33
  137. package/core/built/admin/assets/posts/{tags-CNdsvTtZ.mjs → tags-DFOoFZ_3.mjs} +2 -2
  138. package/core/built/admin/assets/posts/{tooltip-CTcyINxz.mjs → tooltip-Cc_09RDU.mjs} +106 -117
  139. package/core/built/admin/assets/posts/value-CwGM7M-1.mjs +410 -0
  140. package/core/built/admin/assets/posts/{virtual-list-window-Bs88yrut.mjs → virtual-list-window-D6nRoL0y.mjs} +5 -5
  141. package/core/built/admin/assets/posts/{web-Bsd8eTP6.mjs → web-yfPssEt8.mjs} +1042 -1040
  142. package/core/built/admin/assets/posts/x-DrUGcpfp.mjs +9 -0
  143. package/core/built/admin/assets/posts/zap-DAN0ur-o.mjs +24 -0
  144. package/core/built/admin/assets/posts-D-jyPPE6.js +1 -0
  145. package/core/built/admin/assets/power-Cc5ncYVl.js +1 -0
  146. package/core/built/admin/assets/{referrers-kcBT5smx.js → referrers-qnXsKsuv.js} +1 -1
  147. package/core/built/admin/assets/{repeat-Cn2sKd-L.js → repeat-BGIBynZH.js} +1 -1
  148. package/core/built/admin/assets/{reply-D7E-ZMd5.js → reply-DOKdAsL_.js} +1 -1
  149. package/core/built/admin/assets/{rocket-DnH0XAGW.js → rocket-CAN2NB82.js} +1 -1
  150. package/core/built/admin/assets/{select-f0MMMQWu.js → select-8S9kYGSM.js} +1 -1
  151. package/core/built/admin/assets/{settings-BAQNP3gU.js → settings-DeD-bmZc.js} +4 -4
  152. package/core/built/admin/assets/{settings-ORttG1jT.js → settings-e4IB9sx6.js} +1 -1
  153. package/core/built/admin/assets/{share-modal-CXU4tGY8.js → share-modal-CBavk20I.js} +1 -1
  154. package/core/built/admin/assets/{sort-button-BXMrChFu.js → sort-button-DlSKBzUq.js} +1 -1
  155. package/core/built/admin/assets/{source-icon-cjy79jGT.js → source-icon-27VIJSXr.js} +1 -1
  156. package/core/built/admin/assets/{sprout-DZ4tZ78G.js → sprout-D66nqc79.js} +1 -1
  157. package/core/built/admin/assets/{square-vOzqJf7x.js → square-DccaXQWe.js} +1 -1
  158. package/core/built/admin/assets/stats/{audience-5NeJICtP.mjs → audience-B84ClTDM.mjs} +3 -3
  159. package/core/built/admin/assets/stats/{content-helpers-DFSTl3uB.mjs → content-helpers-CBAddUg7.mjs} +4 -4
  160. package/core/built/admin/assets/stats/{index-C4T7u699.mjs → index-Bz5oVpED.mjs} +5 -5
  161. package/core/built/admin/assets/stats/{index-B8bp6qe2.mjs → index-Cs8i1uR4.mjs} +74 -75
  162. package/core/built/admin/assets/stats/{index-wvi17m79.mjs → index-DEsP_Tbd.mjs} +8 -8
  163. package/core/built/admin/assets/stats/{index-CFfAYHdD.mjs → index-Ds-pM47x.mjs} +5 -5
  164. package/core/built/admin/assets/stats/{index-Chqk7VlR.mjs → index-Wzk1IcAz.mjs} +6 -6
  165. package/core/built/admin/assets/stats/{kpi-tabs-Df9yOI2P.mjs → kpi-tabs-Cs4l8B_M.mjs} +7 -7
  166. package/core/built/admin/assets/stats/{sort-button-Doi8OgMU.mjs → sort-button-rR-GA9Hu.mjs} +3 -3
  167. package/core/built/admin/assets/stats/{stats-FXeCefyd.mjs → stats-RFpEJpEq.mjs} +34 -34
  168. package/core/built/admin/assets/stats/stats.js +1 -1
  169. package/core/built/admin/assets/stats/{use-growth-stats-93C_3EZk.mjs → use-growth-stats-DwgFzbq9.mjs} +3 -3
  170. package/core/built/admin/assets/{stats-CIGz2Win.js → stats-B4OybenW.js} +1 -1
  171. package/core/built/admin/assets/{stats-view-BTKRxYTQ.js → stats-view-BuExwFXa.js} +1 -1
  172. package/core/built/admin/assets/{step-1-BSMHbT-q.js → step-1-D_5LOQrC.js} +1 -1
  173. package/core/built/admin/assets/{step-2-_YC0LCZv.js → step-2-BZLBj8cj.js} +1 -1
  174. package/core/built/admin/assets/{step-3-DWMqP2bO.js → step-3-s5uNbcOH.js} +1 -1
  175. package/core/built/admin/assets/{table-mHKjXQba.js → table-pGS7EeJe.js} +1 -1
  176. package/core/built/admin/assets/{tabs-B93IVRBz.js → tabs-CjdKssUe.js} +1 -1
  177. package/core/built/admin/assets/{tags-DCb-x2ZB.js → tags-B0vRk0A6.js} +1 -1
  178. package/core/built/admin/assets/{tags-kUHJ1MZo.js → tags-Dso4-FA_.js} +1 -1
  179. package/core/built/admin/assets/{textarea-DswCtM7_.js → textarea-DzFnun0_.js} +1 -1
  180. package/core/built/admin/assets/{tiers-DueraQKd.js → tiers-4Vkr_D-L.js} +1 -1
  181. package/core/built/admin/assets/{toggle-group-ChTo8MPD.js → toggle-group-hDsr47IB.js} +1 -1
  182. package/core/built/admin/assets/{topic-filter-DrW3fYWo.js → topic-filter-C7TpPe1G.js} +1 -1
  183. package/core/built/admin/assets/{trash-B2ESGftj.js → trash-DCVuk7ZX.js} +1 -1
  184. package/core/built/admin/assets/{underline-vo-bPRac.js → underline-CjK8la2G.js} +1 -1
  185. package/core/built/admin/assets/{upload-DXQRkBBq.js → upload-CPYhmtWZ.js} +1 -1
  186. package/core/built/admin/assets/{use-growth-stats-CoB8-lsd.js → use-growth-stats-CaFSgp_R.js} +1 -1
  187. package/core/built/admin/assets/{use-simple-pagination-Y_Wv2N6g.js → use-simple-pagination-D0vJBMvF.js} +1 -1
  188. package/core/built/admin/assets/{user-round-check-Dp9a2x-e.js → user-round-check-CzQQeFd8.js} +1 -1
  189. package/core/built/admin/assets/{user-round-x-DwCTGlxc.js → user-round-x-BDFm8yQj.js} +1 -1
  190. package/core/built/admin/assets/value-BGBiTkF3.js +1 -0
  191. package/core/built/admin/assets/{vendor-17f3b979ba6f3898d1a8c5249cc22ff1.js → vendor-ce3fc901ccbcf37f36eb791b4e454138.js} +29 -31
  192. package/core/built/admin/assets/{virtual-list-window-BF7IvGMC.js → virtual-list-window-EKtWZ5cP.js} +1 -1
  193. package/core/built/admin/assets/{wallet-cards-IEmcxJvG.js → wallet-cards-C1NOBbWE.js} +1 -1
  194. package/core/built/admin/assets/web-DCA7HR1S.js +1 -0
  195. package/core/built/admin/index.html +8 -8
  196. package/core/frontend/helpers/social_accounts.js +91 -0
  197. package/core/frontend/services/sitemap/handler.js +14 -2
  198. package/core/frontend/services/sitemap/site-map-manager.js +133 -9
  199. package/core/frontend/web/middleware/handle-image-sizes.js +4 -0
  200. package/core/server/api/endpoints/automations.js +38 -45
  201. package/core/server/models/member.js +30 -25
  202. package/core/server/services/automations/automations-api.js +58 -0
  203. package/core/server/services/automations/automations-api.ts +71 -0
  204. package/core/server/services/automations/automations-repository.js +2 -0
  205. package/core/server/services/automations/automations-repository.ts +63 -0
  206. package/core/server/services/automations/fake-database-automations-repository.js +210 -0
  207. package/core/server/services/automations/fake-database-automations-repository.ts +273 -0
  208. package/core/server/services/automations/temporary-fake-database.js +5 -4
  209. package/core/server/services/gifts/email-templates/gift-purchase-confirmation.hbs +10 -32
  210. package/core/server/services/gifts/email-templates/gift-purchase-confirmation.js +6 -8
  211. package/core/server/services/gifts/email-templates/gift-purchase-confirmation.ts +6 -8
  212. package/core/server/services/gifts/email-templates/gift-reminder.hbs +12 -37
  213. package/core/server/services/gifts/email-templates/gift-reminder.js +5 -9
  214. package/core/server/services/gifts/email-templates/gift-reminder.ts +5 -9
  215. package/core/server/services/gifts/gift-service.js +1 -1
  216. package/core/server/services/gifts/gift-service.ts +2 -2
  217. package/core/server/services/member-welcome-emails/service.js +0 -1
  218. package/core/server/services/members/members-api/controllers/router-controller.js +52 -7
  219. package/core/server/services/members/members-api/services/member-bread-service.js +0 -8
  220. package/core/server/services/route-settings/route-settings.js +18 -2
  221. package/core/server/services/staff/email-templates/gift.hbs +1 -1
  222. package/core/server/services/staff/email-templates/gift.txt.js +1 -1
  223. package/core/server/services/staff/email-templates/new-gift-subscription.hbs +1 -1
  224. package/core/server/services/staff/email-templates/new-gift-subscription.txt.js +1 -1
  225. package/core/server/services/staff/staff-service-emails.js +1 -1
  226. package/core/server/services/url/index.js +16 -1
  227. package/core/server/services/url/lazy-find-resource.js +49 -0
  228. package/core/server/services/url/lazy-find-resource.ts +62 -0
  229. package/core/server/services/url/lazy-url-service.js +220 -0
  230. package/core/server/services/url/lazy-url-service.ts +265 -0
  231. package/core/server/web/api/endpoints/admin/routes.js +1 -0
  232. package/core/server/web/gift-preview/Inter.ttf +0 -0
  233. package/core/server/web/gift-preview/controller.js +56 -6
  234. package/core/server/web/gift-preview/gift-card-noise.png +0 -0
  235. package/core/server/web/gift-preview/gift-card-orb.png +0 -0
  236. package/core/server/web/gift-preview/image.js +170 -43
  237. package/core/shared/config/defaults.json +1 -0
  238. package/core/shared/one-at-a-time.js +28 -33
  239. package/core/shared/one-at-a-time.ts +58 -0
  240. package/package.json +18 -16
  241. package/pnpm-lock.yaml +989 -356
  242. package/core/built/admin/assets/automations-D1uMjd06.js +0 -1
  243. package/core/built/admin/assets/chart-_EXssQtm.js +0 -67
  244. package/core/built/admin/assets/comments-E00h1SbR.js +0 -1
  245. package/core/built/admin/assets/filters-CC7XfjOS.js +0 -1
  246. package/core/built/admin/assets/gh-chart-B9_ywrJJ.js +0 -1
  247. package/core/built/admin/assets/index-AsV-aY0z.css +0 -1
  248. package/core/built/admin/assets/index-B0y_ynZw.js +0 -1
  249. package/core/built/admin/assets/index-Bs6wWbLA.js +0 -2
  250. package/core/built/admin/assets/index-Cb4641XW.js +0 -1
  251. package/core/built/admin/assets/loader-circle-B5UPqSok.js +0 -1
  252. package/core/built/admin/assets/minus-DWx9VUtr.js +0 -1
  253. package/core/built/admin/assets/newsletter-fkQye9OK.js +0 -1
  254. package/core/built/admin/assets/overview-CZ-VrnXy.js +0 -1
  255. package/core/built/admin/assets/posts/createLucideIcon-DcUfTBt_.mjs +0 -454
  256. package/core/built/admin/assets/posts/get-site-timezone-DlXmHA3y.mjs +0 -93
  257. package/core/built/admin/assets/posts-Bx1RWrub.js +0 -1
  258. package/core/built/admin/assets/web-DSME3e8c.js +0 -1
@@ -1,10 +1,10 @@
1
- import{j as e,z as ae,de as Lt,c8 as ts,ab as Us,r as d,a0 as qe,B as z,cQ as ss,X as pt,d7 as ht,ah as ft,aj as Bs,cM as rs,cN as as,cO as ns,D as Te,v as Fe,w as Ue,x as Be,ap as Re,ae as ve,df as zs,dg as $s,dh as is,e as Qe,bv as Vs,C as Hs,ch as Ws,cF as Pe,aG as bt,di as Gs,ad as Ks,cq as ls,aX as os,dj as Ys,dk as qs,W as ce,aM as Qs,aO as Js,b5 as Xs,aN as Zs,b7 as ke,b8 as Mt,cp as cs,c6 as er,dl as tr,dm as sr,dn as rr,b4 as Ze,co as dt,dp as gt,dq as ar,dr as nr,cf as Rt,ds as ir,dt as ds,du as It,aI as ze,cu as Se,dv as us,t as ne,d6 as lr,cD as or,bV as cr,bW as dr,c$ as ms,bJ as ur,bU as ps,d0 as mr,d2 as pr}from"./index-qHUvPjQB.js";import{C as xt,a as hr,b as vt,d as yt,e as Je,f as Ot,g as $e,h as fr,F as br}from"./filters-CC7XfjOS.js";import{P as hs}from"./pencil-DHNmlLjO.js";import{h as fs,o as wt,q as gr,r as xr,v as bs,d as vr,D as Ve,a as He,w as at,s as we,x as nt,b as We,t as Dt,y as yr,g as wr,f as _r,c as Sr,u as jr,i as Er,p as gs,j as Nr,n as Cr,l as kr,k as Lr,m as Mr}from"./filter-query-core-Dwh4Qulu.js";import{D as Rr,u as Ir}from"./dropzone-D3PSdAHN.js";import{U as xs,D as Or,b as Dr,N as Ar,T as Pr,M as Tr,P as Fr,a as Ur,S as Br,A as zr,C as $r,c as Vr,d as Hr,e as Wr}from"./upload-DXQRkBBq.js";import{S as Gr,a as Kr,b as Yr,c as qr,f as At}from"./select-f0MMMQWu.js";import{a as Xe,b as _t,c as je,d as be,e as vs,f as me}from"./table-mHKjXQba.js";import{b as Qr}from"./member-route-ZLy3opLv.js";import{u as ys}from"./newsletters-B8xSXSr_.js";import{T as Jr}from"./tags-kUHJ1MZo.js";import{E as ut}from"./empty-indicator-Dhi_KeYX.js";import{L as it,C as Xr,E as Zr,F as ea,a as ta}from"./loader-circle-B5UPqSok.js";import{M as sa}from"./mail-i2qs8CIG.js";import{g as ws}from"./get-site-timezone-BDBAcjmq.js";import{u as ra}from"./tiers-DueraQKd.js";import{b as aa}from"./posts-Bx1RWrub.js";import{L as Me}from"./list-header-Cp779e3H.js";import{A as Pt}from"./arrow-right-BiAOKOto.js";import{M as na}from"./main-layout-KCvKOX8F.js";import{u as ia,a as la,L as oa}from"./virtual-list-window-BF7IvGMC.js";import"./index-D8InZCr2.js";import"./typeof-QjJsDpFa.js";import"./index-DRUPF8nN.js";import"./chevron-up-DVt6fhV3.js";import"./inline-Bc9zHR7e.js";function ca({className:t,...s}){return e.jsx("div",{className:ae(Lt.base,Lt.invalidWithin,"group/input-group relative flex w-full items-center outline-hidden","h-9 has-[>textarea]:h-auto","has-[>[data-align=inline-start]]:[&>input]:pl-2","has-[>[data-align=inline-end]]:[&>input]:pr-2","has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3","has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3","has-[[data-slot=input-group-control]:focus-visible]:outline-hidden has-[[data-slot=input-group-control]:focus-visible]:bg-transparent has-[[data-slot=input-group-control]:focus-visible]:border-focus-ring has-[[data-slot=input-group-control]:focus-visible]:ring-2 has-[[data-slot=input-group-control]:focus-visible]:ring-focus-ring/25",t),"data-slot":"input-group",role:"group",...s})}const da=Us("flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--input-group-radius)-5px)] [&>svg:not([class*='size-'])]:size-4",{variants:{align:{"inline-start":"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]","inline-end":"order-last pr-3 has-[>button]:mr-[-0.4rem] has-[>kbd]:mr-[-0.35rem]","block-start":"order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5 [.border-b]:pb-3","block-end":"order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5 [.border-t]:pt-3"}},defaultVariants:{align:"inline-start"}});function ua({className:t,align:s="inline-start",...r}){return e.jsx("div",{className:ae(da({align:s}),t),"data-align":s,"data-slot":"input-group-addon",role:"group",onClick:a=>{var i;if(a.target.closest("button"))return;const o=(i=a.currentTarget.closest('[data-slot="input-group"]'))==null?void 0:i.querySelector('[data-slot="input-group-control"]');o?.focus()},...r})}function ma({className:t,...s}){return e.jsx(ts,{className:ae("flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 focus-visible:outline-hidden focus-visible:shadow-none dark:bg-transparent",t),"data-slot":"input-group-control",...s})}const pa={searchPlaceholder:"Search...",noResultsFound:"No results found.",loading:"Loading...",loadMore:"Load more"};function ha(t,s){const r=s.trim().toLowerCase();return r?t.filter(a=>{var i;return a.label.toLowerCase().includes(r)||((i=a.detail)==null?void 0:i.toLowerCase().includes(r))}):t}function fa(t,s,r,a,i,o,h){if(t)return{...t,shouldClientFilter:h??t.shouldClientFilter};const u=!!s,c=s?.useOptions({query:a,selectedValues:i});return{options:u?c?.options??[]:r??[],isInitialLoad:u?c?.isInitialLoad??!1:o&&(r?.length??0)===0,isSearching:u?c?.isSearching??!1:o&&(r?.length??0)>0,hasMore:u?c?.hasMore??!1:!1,isLoadingMore:u?c?.isLoadingMore??!1:!1,loadMore:u?c?.loadMore??(()=>{}):()=>{},shouldClientFilter:h??!u}}function ba({optionSource:t,options:s,values:r,onChange:a,valueSource:i,searchable:o=!0,isLoading:h=!1,maxSelections:u,isMultiSelect:c=!0,onClose:m,autoCloseOnSelect:b=!1,className:E,searchInputClassName:v,shouldFilter:y,onSearchChange:N,i18n:C,renderItem:f,header:M,footer:A}){const P=d.useMemo(()=>({...pa,...C}),[C]),[D,j]=d.useState(""),_=d.useCallback(k=>{var H;j(k),(H=t?.onSearchChange)==null||H.call(t,k),N?.(k)},[N,t]),w=fa(t,i,s,D,r,h,y),n=w.options,[l,p]=d.useState([]),g=d.useMemo(()=>n.filter(k=>r.includes(k.value)),[n,r]);d.useEffect(()=>{if(r.length===0){p([]);return}g.length>0&&p(k=>{const H=[];for(const X of r){const T=g.find(W=>W.value===X)??k.find(W=>W.value===X);T&&H.push(T)}return H})},[g,r]);const x=d.useMemo(()=>r.length===0?[]:l.length>0?l:g,[l,r.length,g]),I=d.useMemo(()=>ha(x,D),[D,x]),V=d.useMemo(()=>n.filter(k=>!r.includes(k.value)),[n,r]),ee=d.useCallback(k=>{a(r.filter(H=>H!==k.value))},[a,r]),J=k=>{a([]),m?.()},S=k=>{const H=[...r,k.value];u&&H.length>u||(a(H),b&&m?.())},$=k=>{a([k.value]),m?.()},R=c?ee:J,Y=c?S:$,L=d.useCallback(()=>_(""),[_]),F=(k,H)=>{if(H)return;const X=k.detail?` - ${k.detail}`:"";return k.label+X},B=f??(({option:k,isSelected:H,onSelect:X})=>e.jsxs($e,{className:"group flex items-center gap-2",value:F(k,H),onSelect:X,children:[k.icon,e.jsxs("div",{className:"flex flex-col overflow-hidden",children:[e.jsx("span",{className:"truncate text-accent-foreground",title:k.label,children:k.label}),k.detail&&e.jsx("span",{className:"truncate text-sm text-muted-foreground",title:k.detail,children:k.detail})]}),e.jsx(qe,{className:ae("ms-auto text-primary",!H&&"opacity-0")})]},String(k.value)));return e.jsx("div",{className:ae("w-full",E),children:e.jsxs(xt,{shouldFilter:w.shouldClientFilter,children:[M?.({selectedOptions:x,onDeselect:ee}),o&&e.jsxs("div",{className:"relative",children:[e.jsx(hr,{className:ae("h-(--control-height) pr-8 text-sm",v),placeholder:P.searchPlaceholder,value:D,onValueChange:_}),w.isSearching&&e.jsx(it,{className:"pointer-events-none absolute top-1/2 right-3 size-4 -translate-y-1/2 animate-spin text-muted-foreground"})]}),e.jsxs(vt,{className:"outline-hidden",children:[w.isInitialLoad?e.jsxs("div",{className:"flex items-center justify-center py-6 text-sm text-muted-foreground",children:[e.jsx(it,{className:"mr-2 size-4 animate-spin"}),P.loading]}):e.jsx(yt,{children:P.noResultsFound}),I.length>0&&e.jsx(Je,{heading:P.selectedHeading,children:I.map(k=>B({option:k,isSelected:!0,onSelect:()=>R(k)}))}),V.length>0&&e.jsxs(e.Fragment,{children:[I.length>0&&e.jsx(Ot,{}),e.jsx(Je,{children:V.map(k=>B({option:k,isSelected:!1,onSelect:()=>Y(k)}))})]}),w.hasMore&&e.jsxs(e.Fragment,{children:[(I.length>0||V.length>0)&&e.jsx(Ot,{}),e.jsx("div",{className:"p-1.5",children:e.jsxs("button",{className:"flex w-full items-center justify-center rounded-xs px-2 py-1.5 text-sm text-muted-foreground hover:bg-accent hover:text-accent-foreground disabled:opacity-50",disabled:w.isLoadingMore,type:"button",onClick:w.loadMore,children:[w.isLoadingMore&&e.jsx(it,{className:"mr-2 size-4 animate-spin"}),w.isLoadingMore?P.loading:P.loadMore]})})]})]}),A?.({searchInput:D,clearSearch:L})]})})}const _s=({label:t,onSave:s,onCancel:r,onDelete:a,isDuplicateName:i})=>{const[o,h]=d.useState(t.name),[u,c]=d.useState(!1),[m,b]=d.useState(""),[E,v]=d.useState(!1),[y,N]=d.useState(!1),C=d.useRef(null),f=E||y;d.useEffect(()=>{C.current?.focus(),C.current?.select()},[]);const M=j=>{const _=j.trim();return _?i?.(_,t.id)?"A label with this name already exists":"":"Name is required"},A=async()=>{const j=M(o);if(j){b(j);return}v(!0);try{await s(t.id,o.trim()),r()}catch{v(!1)}},P=j=>{j.key==="Enter"?(j.preventDefault(),A()):j.key==="Escape"&&(j.preventDefault(),f||r())},D=async()=>{N(!0);try{await a(t.id)}catch{N(!1),c(!1)}};return e.jsxs("div",{className:"flex flex-col gap-2 py-1.5","data-edit-row":!0,children:[e.jsx("input",{ref:C,className:"h-7 w-full rounded border border-border bg-background px-2 text-sm outline-hidden focus:ring-1 focus:ring-ring disabled:opacity-50",disabled:f,type:"text",value:o,onChange:j=>{h(j.target.value),b("")},onKeyDown:P}),m&&e.jsx("span",{className:"text-xs text-destructive",children:m}),u?e.jsxs("div",{className:"flex items-center gap-1 text-sm",children:[e.jsx("span",{className:"flex-1 font-semibold",children:"Delete label?"}),e.jsx(z,{className:"h-6 px-2 text-xs",disabled:f,size:"sm",variant:"outline",onClick:()=>c(!1),children:"Cancel"}),e.jsx(z,{className:"h-6 px-2 text-xs",disabled:f,size:"sm",variant:"destructive",onClick:D,children:y?"Deleting...":"Delete"})]}):e.jsxs("div",{className:"flex items-center",children:[e.jsx(z,{className:"h-6 gap-1 px-1.5 text-xs text-red hover:bg-red/5 hover:text-red",disabled:f,size:"sm",variant:"ghost",onClick:()=>c(!0),children:"Delete"}),e.jsxs("div",{className:"ml-auto flex gap-1",children:[e.jsx(z,{className:"h-6 px-2 text-xs",disabled:f,size:"sm",variant:"outline",onClick:r,children:"Cancel"}),e.jsx(z,{className:"h-6 px-2 text-xs",disabled:f,size:"sm",onClick:A,children:E?"Saving...":"Save"})]})]})]})},ga=({label:t,isSelected:s,showEdit:r,onToggle:a,onEditClick:i})=>e.jsxs($e,{className:"group",value:t.slug,onSelect:()=>a(t.slug),children:[e.jsx("span",{className:"flex-1 truncate",children:t.name}),r?e.jsxs("button",{"aria-label":`Edit label ${t.name}`,className:"relative ml-1 flex size-5 shrink-0 items-center justify-center rounded text-muted-foreground hover:text-foreground",type:"button",onClick:o=>{o.stopPropagation(),o.preventDefault(),i()},children:[s&&e.jsx(qe,{className:"absolute size-3 text-primary transition-opacity duration-150 group-hover:opacity-0"}),e.jsx(hs,{className:"absolute size-3 translate-x-2 opacity-0 transition-all duration-150 ease-out group-hover:translate-x-0 group-hover:opacity-100"})]}):s&&e.jsx(qe,{className:"size-4 shrink-0 text-primary"})]}),xa=({labels:t,selectedSlugs:s,search:r,onToggle:a,onEdit:i,onDelete:o,isDuplicateName:h,canCreateFromSearch:u,onCreate:c,isCreating:m,onSearchClear:b})=>{const[E,v]=d.useState(null),y=r.trim().toLowerCase(),N=y?t.filter(D=>D.name.toLowerCase().includes(y)):t,C=!!c&&r.trim()&&u?.(r),f=!!i,M=async()=>{if(c){const D=await c(r.trim());D&&a(D.slug),b?.()}},A=async(D,j)=>{i&&await i(D,j)},P=async D=>{o&&(await o(D),v(null))};return e.jsxs(e.Fragment,{children:[!C&&N.length===0&&e.jsx(yt,{children:"No labels found"}),N.length>0&&e.jsx(Je,{className:"[&_[cmdk-group-heading]]:hidden",children:N.map(D=>E===D.id?e.jsx(_s,{isDuplicateName:h,label:D,onCancel:()=>v(null),onDelete:P,onSave:A},D.id):e.jsx(ga,{isSelected:s.includes(D.slug),label:D,showEdit:f,onEditClick:()=>v(D.id),onToggle:a},D.id))}),C&&e.jsx(Je,{className:"[&_[cmdk-group-heading]]:hidden",children:e.jsxs($e,{disabled:m,onSelect:M,children:[e.jsx(ht,{className:"size-4"}),m?"Creating...":`Create "${r.trim()}"`]})})]})},va=({labels:t,onToggle:s})=>e.jsx(e.Fragment,{children:t.map(r=>e.jsxs(ss,{className:"cursor-pointer gap-1 pr-1",variant:"outline",onClick:a=>{a.stopPropagation(),s(r.slug)},children:[r.name,e.jsx(pt,{className:"size-3"})]},r.id))}),St=({labels:t,optionSource:s,selectedSlugs:r,resolvedSelectedLabels:a,onToggle:i,canCreateFromSearch:o,onCreate:h,isCreating:u,onEdit:c,onDelete:m,isDuplicateName:b})=>{const E=a||r.map(v=>t.find(y=>y.slug===v)).filter(v=>!!v);return e.jsx(ya,{canCreateFromSearch:o,isCreating:u,isDuplicateName:b,labels:t,optionSource:s,selectedLabels:E,selectedSlugs:r,onCreate:h,onDelete:m,onEdit:c,onToggle:i})},ya=({labels:t,optionSource:s,selectedLabels:r,selectedSlugs:a,onToggle:i,canCreateFromSearch:o,onCreate:h,isCreating:u,onEdit:c,onDelete:m,isDuplicateName:b})=>{const[E,v]=d.useState(!1),[y,N]=d.useState(""),C=d.useRef(null),f=d.useRef(null),M=d.useCallback(P=>{N(P),s.onSearchChange?.(P)},[s]);d.useEffect(()=>{if(!E)return;const P=D=>{f.current&&!f.current.contains(D.target)&&v(!1)};return document.addEventListener("pointerdown",P),()=>document.removeEventListener("pointerdown",P)},[E]);const A=P=>{P.key==="Backspace"&&!y&&a.length>0&&i(a[a.length-1]),P.key==="Escape"&&(v(!1),C.current?.blur())};return e.jsxs("div",{ref:f,className:"relative",children:[e.jsxs("div",{className:"flex min-h-9 w-full cursor-text flex-wrap items-center gap-1.5 rounded-md border border-transparent bg-gray-150 px-3 py-1 text-sm transition-colors focus-within:border-green focus-within:bg-transparent focus-within:shadow-[0_0_0_2px_rgba(48,207,67,.25)] dark:bg-gray-900",role:"combobox",onClick:()=>{C.current?.focus(),v(!0)},children:[e.jsx(va,{labels:r,onToggle:i}),e.jsx("input",{ref:C,className:"min-w-[80px] flex-1 bg-transparent text-sm outline-hidden placeholder:text-muted-foreground",placeholder:r.length===0?"Search labels...":"",value:y,onChange:P=>{M(P.target.value),E||v(!0)},onFocus:()=>v(!0),onKeyDown:A})]}),E&&e.jsx("div",{className:"absolute top-full left-0 z-50 mt-1 w-full rounded-md border bg-white shadow-md dark:bg-gray-950",children:s.isInitialLoad?e.jsx("div",{className:"flex items-center justify-center py-6 text-sm text-muted-foreground",children:"Loading labels..."}):e.jsx(xt,{shouldFilter:!1,children:e.jsx(vt,{className:"max-h-64 overflow-y-auto",children:e.jsx(xa,{canCreateFromSearch:o,isCreating:u,isDuplicateName:b,labels:t,search:y,selectedSlugs:a,onCreate:h,onDelete:m,onEdit:c,onSearchClear:()=>M(""),onToggle:i})})})})]})},et="LabelsResponseType",wa=Bs({dataType:et,path:"/labels/",defaultNextPageParams:(t,s)=>{if(t.meta?.pagination.next)return{...s,page:t.meta.pagination.next.toString()}},returnData:t=>{const{pages:s}=t,r=s.flatMap(i=>i.labels),a=s[s.length-1].meta;return{labels:r,meta:a,isEnd:a?a.pagination.pages===a.pagination.page:!0}}}),_a=ft({method:"POST",path:()=>"/labels/",body:t=>({labels:[t]}),invalidateQueries:{dataType:et}}),Sa=ft({method:"PUT",path:t=>`/labels/${t.id}/`,body:t=>({labels:[t]}),invalidateQueries:{dataType:et}}),ja=ft({method:"DELETE",path:t=>`/labels/${t}/`,invalidateQueries:{dataType:et}}),Ea=()=>{};function Na(t){return function(){const a=t.useRemoteSource({enabled:!0}).useInitialBrowse(),[i,o]=d.useState(null);d.useEffect(()=>{i!==null||!a.pagination||o(a.pagination.total<=t.pageLimit||a.pagination.next===null?"local":"remote")},[i,a.pagination]);const h=t.useLocalSource(a,{enabled:i==="local"}),u=t.useRemoteSource({enabled:i==="remote"}),c=m=>{const b=h.useOptions(m),E=u.useOptions(m);return i===null?{options:[],isInitialLoad:a.isLoading,isSearching:!1,isLoadingMore:!1,hasMore:!1,loadMore:Ea}:i==="remote"?E:b};return{id:t.id,useOptions:c}}}const Ss="100";function mt(t){return{value:t.slug,label:t.name,metadata:{id:t.id}}}function Ca(t,s){const{enabled:r=!0}=s;return{id:"posts.labels.local",useOptions:({query:i,selectedValues:o})=>{const h=(t.items||[]).map(mt),u=o.map(c=>{const m=t.items?.find(b=>b.slug===c);return m?mt(m):{value:c,label:c}});return r?{options:xr(u,bs(h,i)),isInitialLoad:t.isLoading&&h.length===0,isSearching:!1,isLoadingMore:!1,hasMore:!1,loadMore:()=>{}}:{options:[],isInitialLoad:!1,isSearching:!1,isLoadingMore:!1,hasMore:!1,loadMore:()=>{}}}}}const ka=fs({id:"posts.labels.remote",buildBrowseSearchParams:t=>({limit:Ss,order:"name asc",...t?{filter:`name:~${wt(t)}`}:{}}),buildHydrateFilter:t=>gr("slug",t),buildHydrateSearchParams:t=>({filter:t,order:"name asc"}),selectItems:t=>t?.labels,useQuery:({enabled:t,searchParams:s})=>wa({enabled:t,keepPreviousData:!0,searchParams:s}),toOption:mt,debounceMs:250}),La=Na({id:"posts.labels.hybrid",pageLimit:Number(Ss),useLocalSource:Ca,useRemoteSource:ka});function js(){return La()}function tt({selectedSlugs:t,onSelectionChange:s,valueSource:r}){const a=js(),i=r??a,[o,h]=d.useState(""),u=i.useOptions({query:o,selectedValues:t}),c=d.useMemo(()=>u.options.flatMap(j=>j.metadata?.id?[{id:String(j.metadata.id),name:j.label,slug:String(j.value),created_at:"",updated_at:""}]:[]),[u.options]),m={...u,shouldClientFilter:!1,onSearchChange:h},{mutateAsync:b,isLoading:E}=_a(),{mutateAsync:v}=Sa(),{mutateAsync:y}=ja(),N=d.useRef(t);N.current=t;const C=d.useCallback(j=>{const _=N.current;_.includes(j)?s(_.filter(w=>w!==j)):s([..._,j])},[s]),f=d.useCallback((j,_)=>{const w=j.trim().toLowerCase();return c.some(n=>n.name.toLowerCase()===w&&n.id!==_)},[c]),M=d.useCallback(j=>{const _=j.trim();return _?!f(_):!1},[f]),A=d.useCallback(async j=>{const _=j.trim();return!_||f(_)?void 0:(await b({name:_}))?.labels?.[0]},[b,f]),P=d.useCallback(async(j,_)=>{const w=_.trim();if(!w||f(w,j))return;const n=c.find(g=>g.id===j),p=(await v({id:j,name:w}))?.labels?.[0];if(n&&p&&n.slug!==p.slug){const g=N.current;g.includes(n.slug)&&s(g.map(x=>x===n.slug?p.slug:x))}},[v,f,c,s]),D=d.useCallback(async j=>{const _=c.find(w=>w.id===j);if(await y(j),_){const w=N.current;w.includes(_.slug)&&s(w.filter(n=>n!==_.slug))}},[y,c,s]);return{labels:c,optionSource:m,selectedSlugs:t,resolvedSelectedLabels:t.map(j=>c.find(_=>_.slug===j)).filter(j=>!!j),toggleLabel:C,createLabel:A,editLabel:P,deleteLabel:D,isDuplicateName:f,canCreateFromSearch:M,isCreating:E}}const Ma=({field:t,values:s,onChange:r})=>{const a=tt({selectedSlugs:s,onSelectionChange:r,valueSource:t.valueSource}),i=d.useRef(null),[o,h]=d.useState(0),u=d.useCallback(()=>{const y=i.current,N=y?.parentElement;if(y&&N){const C=y.getBoundingClientRect(),f=N.getBoundingClientRect();h(Math.round(f.left-C.left))}},[]);let c="Select...";a.resolvedSelectedLabels.length===1?c=a.resolvedSelectedLabels[0].name:a.resolvedSelectedLabels.length>1&&(c=`${a.resolvedSelectedLabels.length} labels`);const[m,b]=d.useState(null),E=d.useCallback(({option:y,isSelected:N,onSelect:C})=>{const f=String(y.metadata?.id??"");if(m===f&&!N){const M={id:f,name:y.label,slug:String(y.value),created_at:"",updated_at:""};return e.jsx(_s,{isDuplicateName:a.isDuplicateName,label:M,onCancel:()=>b(null),onDelete:async A=>{await a.deleteLabel(A),b(null)},onSave:async(A,P)=>{await a.editLabel(A,P),b(null)}},f)}return e.jsxs($e,{className:"group",value:y.label,onSelect:C,children:[e.jsx("span",{className:"flex-1 truncate",children:y.label}),N?e.jsx(qe,{className:"size-3 shrink-0 text-primary"}):e.jsx("button",{"aria-label":`Edit label ${y.label}`,className:"relative ml-1 flex size-5 shrink-0 items-center justify-center rounded text-muted-foreground hover:text-foreground",type:"button",onClick:M=>{M.stopPropagation(),M.preventDefault(),b(f)},children:e.jsx(hs,{className:"absolute size-3 translate-x-2 opacity-0 transition-all duration-150 ease-out group-hover:translate-x-0 group-hover:opacity-100"})})]},String(y.value))},[m,a]),v=d.useCallback(({searchInput:y,clearSearch:N})=>y.trim()&&a.canCreateFromSearch(y)?e.jsx("div",{className:"border-t p-1",children:e.jsxs(z,{className:"h-8 w-full justify-start gap-2 px-2 text-sm font-normal",disabled:a.isCreating,variant:"ghost",onClick:async()=>{const f=await a.createLabel(y.trim());f&&a.toggleLabel(f.slug),N()},children:[e.jsx(ht,{className:"size-4"}),a.isCreating?"Creating...":`Create "${y.trim()}"`]})}):null,[a]);return e.jsxs(rs,{onOpenChange:y=>{y?u():a.optionSource.onSearchChange?.("")},children:[e.jsx(as,{asChild:!0,children:e.jsx("button",{ref:i,className:"flex size-full items-center truncate text-left text-sm",type:"button",children:c})}),e.jsx(ns,{align:"start",alignOffset:o,className:"w-64 p-0",children:a.optionSource.isInitialLoad?e.jsx("div",{className:"flex items-center justify-center py-6 text-sm text-muted-foreground",children:"Loading labels..."}):e.jsx(ba,{footer:v,i18n:{searchPlaceholder:"Search labels...",noResultsFound:"No labels found"},optionSource:a.optionSource,renderItem:E,values:s,onChange:r})})]})};function Ra({open:t,memberCount:s,onOpenChange:r,onConfirm:a,isLoading:i=!1}){const[o,h]=d.useState([]),u=tt({selectedSlugs:o,onSelectionChange:h}),c=d.useCallback(b=>{b||h([]),r(b)},[r]),m=()=>{const b=u.labels.filter(E=>o.includes(E.slug)).map(E=>E.id);b.length>0&&a(b)};return e.jsx(Te,{open:t,onOpenChange:c,children:e.jsxs(Fe,{className:"gap-5",onOpenAutoFocus:b=>b.preventDefault(),children:[e.jsx(Ue,{children:e.jsxs(Be,{children:["Add label to ",Re(s)," ",s===1?"member":"members"]})}),e.jsx(St,{canCreateFromSearch:u.canCreateFromSearch,isCreating:u.isCreating,isDuplicateName:u.isDuplicateName,labels:u.labels,optionSource:u.optionSource,resolvedSelectedLabels:u.resolvedSelectedLabels,selectedSlugs:o,onCreate:u.createLabel,onDelete:u.deleteLabel,onEdit:u.editLabel,onToggle:u.toggleLabel}),e.jsxs(ve,{children:[e.jsx(z,{variant:"outline",onClick:()=>c(!1),children:"Cancel"}),e.jsx(z,{disabled:o.length===0||i,onClick:m,children:i?"Adding...":o.length>1?`Add ${Re(o.length)} labels`:"Add label"})]})]})})}function Ia({open:t,memberCount:s,nql:r,search:a,onOpenChange:i,onConfirm:o,isLoading:h=!1}){const[u,c]=d.useState([]),{data:m,isLoading:b}=zs({searchParams:{...r?{filter:r}:{},...a?{search:a}:{},include:"labels",limit:"all",fields:"id"},enabled:t}),E=d.useMemo(()=>{const f=new Set;for(const M of m?.members||[])for(const A of M.labels||[])f.add(A.slug);return f},[m]),v=tt({selectedSlugs:u,onSelectionChange:c}),y={...v.optionSource,options:v.optionSource.options.filter(f=>E.has(String(f.value)))},N=d.useCallback(f=>{f||c([]),i(f)},[i]),C=()=>{const f=v.labels.filter(M=>u.includes(M.slug)).map(M=>M.id);f.length>0&&o(f)};return e.jsx(Te,{open:t,onOpenChange:N,children:e.jsxs(Fe,{className:"gap-5",onOpenAutoFocus:f=>f.preventDefault(),children:[e.jsx(Ue,{children:e.jsxs(Be,{children:["Remove label from ",Re(s)," ",s===1?"member":"members"]})}),e.jsx(St,{isDuplicateName:v.isDuplicateName,labels:v.labels.filter(f=>E.has(f.slug)),optionSource:{...y,isInitialLoad:y.isInitialLoad||b},resolvedSelectedLabels:v.resolvedSelectedLabels.filter(f=>E.has(f.slug)),selectedSlugs:u,onDelete:v.deleteLabel,onEdit:v.editLabel,onToggle:v.toggleLabel}),e.jsxs(ve,{children:[e.jsx(z,{variant:"outline",onClick:()=>N(!1),children:"Cancel"}),e.jsx(z,{disabled:u.length===0||h,onClick:C,children:h?"Removing...":u.length>1?`Remove ${Re(u.length)} labels`:"Remove label"})]})]})})}function Oa({open:t,newsletters:s,memberCount:r,onOpenChange:a,onConfirm:i,isLoading:o=!1}){const[h,u]=d.useState("all"),[c,m]=d.useState([]),[b,E]=d.useState(""),[v,y]=d.useState(!1),N=d.useRef(null),C=d.useRef(null);d.useEffect(()=>{t||(u("all"),m([]),E(""),y(!1))},[t]),d.useEffect(()=>{if(!v)return;const _=w=>{N.current&&!N.current.contains(w.target)&&y(!1)};return document.addEventListener("pointerdown",_),()=>document.removeEventListener("pointerdown",_)},[v]);const f=_=>{_||(u("all"),m([]),E(""),y(!1)),a(_)},M=d.useCallback(_=>{m(w=>w.includes(_)?w.filter(n=>n!==_):[...w,_])},[]),A=s.length>=2,P=()=>{i(!A||h==="all"?null:c)},D=o||A&&h==="selected"&&c.length===0,j=r===1?"member":"members";return e.jsx(Te,{open:t,onOpenChange:f,children:e.jsxs(Fe,{className:"gap-5",children:[e.jsx(Ue,{children:e.jsx(Be,{children:"Unsubscribe members"})}),A?e.jsxs(e.Fragment,{children:[e.jsxs("div",{"aria-label":"Unsubscribe scope",className:"flex flex-col gap-3",role:"radiogroup",children:[e.jsxs("label",{className:"flex cursor-pointer items-start gap-3",children:[e.jsx("input",{checked:h==="all",className:"mt-0.5 size-4 cursor-pointer accent-black",name:"unsubscribe-mode",type:"radio",value:"all",onChange:()=>u("all")}),e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"text-sm font-semibold",children:"Unsubscribe from all newsletters"}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:[r.toLocaleString()," ",j," will be unsubscribed from"," ",s.length," ",s.length===1?"newsletter":"newsletters","."]})]})]}),e.jsxs("label",{className:"flex cursor-pointer items-start gap-3",children:[e.jsx("input",{checked:h==="selected",className:"mt-0.5 size-4 cursor-pointer accent-black",name:"unsubscribe-mode",type:"radio",value:"selected",onChange:()=>u("selected")}),e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"text-sm font-semibold",children:"Unsubscribe from selected newsletters"}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:["Select which newsletters to unsubscribe"," ",r.toLocaleString()," ",j," from."]})]})]})]}),h==="selected"&&e.jsxs("div",{ref:N,className:"relative space-y-2",children:[e.jsx("label",{className:"text-sm font-semibold",htmlFor:"newsletter-search",children:"Newsletters"}),e.jsxs("div",{className:"flex min-h-9 w-full cursor-text flex-wrap items-center gap-1.5 rounded-md border bg-background px-3 py-1 text-sm",onClick:()=>{C.current?.focus(),y(!0)},children:[c.map(_=>{const w=s.find(n=>n.id===_);return w?e.jsxs(ss,{className:"cursor-pointer gap-1 pr-1",variant:"outline",onClick:n=>{n.stopPropagation(),M(_)},children:[w.name,e.jsx(pt,{className:"size-3"})]},_):null}),e.jsx("input",{ref:C,className:"min-w-[80px] flex-1 bg-transparent py-1 text-sm outline-hidden placeholder:text-muted-foreground",id:"newsletter-search",placeholder:c.length===0?"Search newsletters...":"",value:b,onChange:_=>{E(_.target.value),v||y(!0)},onFocus:()=>y(!0),onKeyDown:_=>{_.key==="Escape"&&(y(!1),C.current?.blur()),_.key==="Backspace"&&!b&&c.length>0&&M(c[c.length-1])}})]}),v&&e.jsx("div",{className:"absolute top-full left-0 z-50 mt-1 w-full rounded-md border bg-white shadow-md dark:bg-gray-950",children:e.jsx(xt,{shouldFilter:!1,children:e.jsxs(vt,{className:"max-h-64 overflow-y-auto",children:[e.jsx(yt,{children:"No newsletters found."}),s.filter(_=>_.name.toLowerCase().includes(b.toLowerCase())).map(_=>e.jsxs($e,{value:_.name,onSelect:()=>M(_.id),children:[_.name,c.includes(_.id)&&e.jsx(fr,{})]},_.id))]})})})]})]}):e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Are you sure you want to unsubscribe"," ",r.toLocaleString()," ",j," from all newsletters? They will no longer receive any email newsletters from you."]}),e.jsxs(ve,{children:[e.jsx(z,{variant:"outline",onClick:()=>f(!1),children:"Cancel"}),e.jsx(z,{disabled:D,variant:"destructive",onClick:P,children:o?"Unsubscribing...":"Unsubscribe"})]})]})})}function Da({open:t,memberCount:s,onOpenChange:r,onConfirm:a,onExportBackup:i,isLoading:o=!1}){const[h,u]=d.useState(!1),c=b=>{b||u(!1),r(b)},m=async()=>{if(!(s<1||o||h))try{u(!0),await i(),a()}catch{}finally{u(!1)}};return e.jsx(Te,{open:t,onOpenChange:c,children:e.jsxs(Fe,{className:"gap-5",children:[e.jsx(Ue,{children:e.jsx(Be,{children:"Delete selected members?"})}),e.jsx("div",{className:"text-sm",children:s>0?e.jsxs(e.Fragment,{children:[e.jsxs("p",{children:["You're about to delete ",e.jsxs("strong",{children:[s.toLocaleString()," ",s===1?"member":"members"]}),". This is permanent! All Ghost data will be deleted, this will have no effect on subscriptions in Stripe."]}),e.jsx("p",{className:"mt-4",children:"A backup of your selection will be automatically downloaded to your device before deletion."})]}):e.jsx("p",{children:"No members are selected."})}),e.jsxs(ve,{children:[e.jsx(z,{variant:"outline",onClick:()=>c(!1),children:"Cancel"}),e.jsx(z,{disabled:o||h||s<1,variant:"destructive",onClick:m,children:o||h?"Deleting...":"Download backup & delete members"})]})]})})}function Aa({fileError:t,onClose:s,onDropAccepted:r,onDropRejected:a}){return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mt-5 space-y-5",children:[e.jsxs($s,{variant:"info",children:["Need some help? ",e.jsx("a",{className:"font-semibold underline",href:"https://ghost.org/help/import-members/",rel:"noopener noreferrer",target:"_blank",children:"Learn more"})," about importing members or ",e.jsx("a",{className:"font-semibold underline",href:"https://static.ghost.org/v4.0.0/files/member-import-template.csv",rel:"noopener noreferrer",target:"_blank",children:"download a sample CSV file"}),"."]}),t&&e.jsxs("div",{className:"flex items-start gap-2 text-sm text-red-600",children:[e.jsx(is,{className:"mt-0.5 size-4 shrink-0"}),e.jsx("p",{children:t})]}),e.jsx(Rr,{accept:{"text/csv":[".csv"],"application/vnd.ms-excel":[".csv"]},"aria-label":"Select or drop a CSV file",onDropAccepted:i=>{const o=i[0];o&&r(o)},onDropRejected:a,children:({isDragActive:i,isDragReject:o})=>e.jsxs(e.Fragment,{children:[e.jsx(xs,{className:"mb-2 size-6 text-grey-600"}),e.jsx("span",{className:"text-sm text-grey-700",children:o?"The file type you uploaded is not supported":i?"Drop CSV file to upload":"Select or drop a CSV file"})]})})]}),e.jsx(ve,{className:"mt-5",children:e.jsx(z,{variant:"outline",onClick:s,children:"Close"})})]})}function Pa({status:t,fileData:s,mapping:r,mappingError:a,showMappingErrors:i,membersCount:o,dataPreviewIndex:h,hasPrevRecord:u,hasNextRecord:c,fieldMappings:m,labelPicker:b,onUpdateMapping:E,onDataPreviewIndexChange:v,onStartOver:y,onUpload:N}){const C=s&&s.length>0&&r?Object.entries(s[h]||{}).map(([f,M])=>({key:f,value:M,mapTo:r.get(f)})):[];return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mt-5 space-y-5",children:s===null?e.jsx("div",{className:"flex items-center justify-center rounded-md border bg-muted p-10",children:e.jsx(Qe,{size:"md"})}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:ae("overflow-hidden rounded-md border",i&&a&&"border-red-500"),children:e.jsx("div",{className:"max-h-[400px] overflow-auto",children:e.jsxs(Xe,{className:"table-fixed",children:[e.jsx(_t,{children:e.jsxs(je,{children:[e.jsx(be,{className:"w-1/3",children:"Field"}),e.jsx(be,{className:"w-1/3",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("span",{children:["Sample data ",e.jsxs("span",{className:"text-muted-foreground",children:["(#",Re(h+1),")"]})]}),e.jsxs("div",{className:"flex items-center",children:[e.jsx("button",{"aria-label":"Show previous sample row",className:ae("rounded p-0.5 hover:bg-muted",!u&&"cursor-default opacity-30"),disabled:!u||t==="UPLOADING",type:"button",onClick:()=>v(h-1),children:e.jsx(Vs,{className:"size-4"})}),e.jsx("button",{"aria-label":"Show next sample row",className:ae("rounded p-0.5 hover:bg-muted",!c&&"cursor-default opacity-30"),disabled:!c||t==="UPLOADING",type:"button",onClick:()=>v(h+1),children:e.jsx(Hs,{className:"size-4"})})]})]})}),e.jsx(be,{className:"w-1/3",children:"Import as"})]})}),e.jsx(vs,{children:C.length>0?C.map(f=>e.jsxs(je,{className:ae(!f.mapTo&&"bg-muted"),children:[e.jsx(me,{className:"text-sm font-medium break-all",children:f.key}),e.jsx(me,{className:ae("break-all text-sm",!f.value&&"text-muted-foreground"),children:f.value||" "}),e.jsx(me,{children:e.jsxs(Gr,{disabled:t==="UPLOADING",value:f.mapTo||"__not_imported__",onValueChange:M=>{E(f.key,M==="__not_imported__"?null:M)},children:[e.jsx(Kr,{className:ae("h-8 text-sm",!f.mapTo&&"text-muted-foreground"),children:e.jsx(Yr,{})}),e.jsxs(qr,{children:[e.jsx(At,{value:"__not_imported__",children:"Not imported"}),m.map(M=>e.jsx(At,{value:M.value,children:M.label},M.value))]})]})})]},f.key)):e.jsx(je,{children:e.jsx(me,{className:"text-muted-foreground",colSpan:3,children:"No data found in the uploaded CSV."})})})]})})}),i&&a&&e.jsx("p",{className:"text-sm text-red-600",children:a}),o>0&&e.jsx("p",{className:"text-sm text-muted-foreground",children:"If an email address in your CSV matches an existing member, they will be updated with the mapped values."}),e.jsxs("div",{className:"mt-5",children:[e.jsx("label",{className:"mb-1 block text-sm font-semibold",children:"Label these members"}),e.jsx(St,{canCreateFromSearch:b.canCreateFromSearch,isCreating:b.isCreating,isDuplicateName:b.isDuplicateName,labels:b.labels,optionSource:b.optionSource,resolvedSelectedLabels:b.resolvedSelectedLabels,selectedSlugs:b.selectedSlugs,onCreate:b.createLabel,onDelete:b.deleteLabel,onEdit:b.editLabel,onToggle:b.toggleLabel})]})]})}),e.jsxs(ve,{className:"mt-5",children:[e.jsx(z,{disabled:t==="UPLOADING",variant:"outline",onClick:y,children:"Start over"}),e.jsx(z,{disabled:t==="UPLOADING"||o===0,onClick:N,children:t==="UPLOADING"?e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx(Qe,{color:"light",size:"sm"}),"Uploading"]}):o>0?`Import ${Re(o)} ${o===1?"member":"members"}`:"Import members"})]})]})}function Ta({onUploadAnotherFile:t,onClose:s}){return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mt-5",children:e.jsx("p",{className:"text-sm",children:"Your import is being processed, and you'll receive a confirmation email as soon as it's complete. Usually this only takes a few minutes, but larger imports may take longer."})}),e.jsxs(ve,{className:"mt-5",children:[e.jsx(z,{variant:"outline",onClick:t,children:"Upload another file"}),e.jsx(z,{onClick:s,children:"Got it"})]})]})}function Fa({importResponse:t,onReset:s,onClose:r}){return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mt-5 space-y-4",children:[t.importedCount===0?e.jsxs("p",{className:"text-sm",children:["No members were added",t.errorCount>0?" due to the following errors:":"."]}):e.jsxs("p",{className:"text-sm",children:["A total of ",e.jsx("strong",{children:t.importedCount.toLocaleString()})," ",t.importedCount===1?"person was":"people were"," successfully added or updated in your list of members, and now have access to your site."]}),t.errorCount>0&&e.jsxs(e.Fragment,{children:[t.importedCount>0&&e.jsxs(e.Fragment,{children:[e.jsx("hr",{className:"border-grey-200"}),e.jsxs("p",{className:"text-sm",children:[e.jsx("strong",{children:t.errorCount.toLocaleString()})," ",t.errorCount===1?"member was":"members were"," skipped due to the following errors:"]})]}),e.jsx("ul",{className:"list-inside list-disc space-y-1 text-sm text-muted-foreground",children:t.errorList.map(a=>e.jsxs("li",{children:[a.message," (",a.count,")"]},a.message))})]})]}),e.jsx(ve,{className:"mt-5",children:t.errorCount>0?e.jsxs(e.Fragment,{children:[e.jsx(z,{variant:"outline",asChild:!0,children:e.jsx("a",{download:t.errorCsvName,href:t.errorCsvUrl,children:"Download error file"})}),t.importedCount===0?e.jsx(z,{onClick:s,children:"Try again"}):e.jsx(z,{onClick:r,children:"View members"})]}):e.jsx(e.Fragment,{children:t.importedCount===0?e.jsxs(e.Fragment,{children:[e.jsx(z,{variant:"outline",onClick:r,children:"Close"}),e.jsx(z,{onClick:s,children:"Try again"})]}):e.jsxs(e.Fragment,{children:[e.jsx(z,{variant:"outline",onClick:s,children:"Upload another file"}),e.jsx(z,{onClick:r,children:"View members"})]})})})]})}function Ua({errorMessage:t,showTryAgainButton:s,onTryAgain:r,onClose:a}){return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mt-5",children:e.jsxs("div",{className:"flex items-start gap-2 text-sm text-red-600",children:[e.jsx(is,{className:"mt-0.5 size-4 shrink-0"}),e.jsx("p",{children:t})]})}),e.jsxs(ve,{className:"mt-5",children:[s&&e.jsx(z,{variant:"outline",onClick:r,children:"Try again"}),e.jsx(z,{onClick:a,children:"OK"})]})]})}const Ba=[{label:"Email",value:"email"},{label:"Name",value:"name"},{label:"Note",value:"note"},{label:"Subscribed to emails",value:"subscribed_to_emails"},{label:"Stripe Customer ID",value:"stripe_customer_id"},{label:"Complimentary plan",value:"complimentary_plan"},{label:"Labels",value:"labels"},{label:"Created at",value:"created_at"}],Es={label:"Tier",value:"import_tier"},Ns={label:"Gift ID",value:"gift_id"},za=["email","name","note","subscribed_to_emails","complimentary_plan","stripe_customer_id","labels","created_at"];function $a({importMemberTier:t=!1,giftSubscriptionsEnabled:s=!1}={}){return[...za,...t?[Es.value]:[],...s?[Ns.value]:[]]}function Va({importMemberTier:t=!1,giftSubscriptionsEnabled:s=!1}={}){return[...Ba,...t?[Es]:[],...s?[Ns]:[]]}const Ha=["email"],Wa=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;class jt{_mapping;constructor(s){if(this._mapping={},s)for(const[r,a]of Object.entries(s))this._mapping[a]=r}get(s){return this._mapping[s]??null}toJSON(){return{...this._mapping}}getKeyByValue(s){for(const[r,a]of Object.entries(this._mapping))if(a===s)return r;return null}updateMapping(s,r){const a=new jt({});if(a._mapping={...this._mapping},r)for(const i in a._mapping)a._mapping[i]===r&&(a._mapping[i]=null);return a._mapping[s]=r,a}}function Ga(t,s=30){if(!t||t.length<=s)return t;const r=[];return Object.keys(t[0]).forEach(i=>{const o=t.filter(u=>u[i]&&u[i].trim()!=="");let h=[];if(o.length<=s)h=o;else{const u=Math.floor(s/3),c=u,m=s-u-c,b=o.slice(0,u),E=c>0?o.slice(-c):[],v=Math.max(0,Math.floor(o.length/2)-Math.floor(m/2)),y=o.slice(v,v+m);h=[...b,...y,...E].slice(0,s)}h.forEach((u,c)=>{r[c]||(r[c]={}),r[c][i]=u[i]})}),r}function Ka(t,s={}){const r=Ga(t),a={},i=$a(s);if(t.length>0)for(const h of Object.keys(t[0])){if(!a.name&&/name/i.test(h)){a.name=h;continue}!a[h]&&i.includes(h)&&!Ha.includes(h)&&(a[h]=h)}let o=0;for(;o<=r.length-1&&!a.email;){const h=r[o];for(const[u,c]of Object.entries(h))!a.email&&c&&Wa.test(c)&&(a.email=u);o+=1}return a}function Ya(t){return t.replace("Value in [members.email] cannot be blank.","Missing email address").replace("Value in [members.note] exceeds maximum length of 2000 characters.","Note is too long").replace("Value in [members.subscribed] must be one of true, false, 0 or 1.",'Value of "Subscribed to emails" must be "true" or "false"').replace("Validation (isEmail) failed for email","Invalid email address").replace(/No such customer:[^,]*/,"Could not find Stripe customer")}var Ye={exports:{}};var qa=Ye.exports,Tt;function Qa(){return Tt||(Tt=1,(function(t,s){((r,a)=>{t.exports=a()})(qa,function r(){var a=typeof self<"u"?self:typeof window<"u"?window:a!==void 0?a:{},i,o=!a.document&&!!a.postMessage,h=a.IS_PAPA_WORKER||!1,u={},c=0,m={};function b(n){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine="",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},(function(l){var p=j(l);p.chunkSize=parseInt(p.chunkSize),l.step||l.chunk||(p.chunkSize=null),this._handle=new C(p),(this._handle.streamer=this)._config=p}).call(this,n),this.parseChunk=function(l,p){var g=parseInt(this._config.skipFirstNLines)||0;if(this.isFirstChunk&&0<g){let I=this._config.newline;I||(x=this._config.quoteChar||'"',I=this._handle.guessLineEndings(l,x)),l=[...l.split(I).slice(g)].join(I)}this.isFirstChunk&&w(this._config.beforeFirstChunk)&&(x=this._config.beforeFirstChunk(l))!==void 0&&(l=x),this.isFirstChunk=!1,this._halted=!1;var g=this._partialLine+l,x=(this._partialLine="",this._handle.parse(g,this._baseIndex,!this._finished));if(!this._handle.paused()&&!this._handle.aborted()){if(l=x.meta.cursor,g=(this._finished||(this._partialLine=g.substring(l-this._baseIndex),this._baseIndex=l),x&&x.data&&(this._rowCount+=x.data.length),this._finished||this._config.preview&&this._rowCount>=this._config.preview),h)a.postMessage({results:x,workerId:m.WORKER_ID,finished:g});else if(w(this._config.chunk)&&!p){if(this._config.chunk(x,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);this._completeResults=x=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(x.data),this._completeResults.errors=this._completeResults.errors.concat(x.errors),this._completeResults.meta=x.meta),this._completed||!g||!w(this._config.complete)||x&&x.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),g||x&&x.meta.paused||this._nextChunk(),x}this._halted=!0},this._sendError=function(l){w(this._config.error)?this._config.error(l):h&&this._config.error&&a.postMessage({workerId:m.WORKER_ID,error:l,finished:!1})}}function E(n){var l;(n=n||{}).chunkSize||(n.chunkSize=m.RemoteChunkSize),b.call(this,n),this._nextChunk=o?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(p){this._input=p,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(l=new XMLHttpRequest,this._config.withCredentials&&(l.withCredentials=this._config.withCredentials),o||(l.onload=_(this._chunkLoaded,this),l.onerror=_(this._chunkError,this)),l.open(this._config.downloadRequestBody?"POST":"GET",this._input,!o),this._config.downloadRequestHeaders){var p,g=this._config.downloadRequestHeaders;for(p in g)l.setRequestHeader(p,g[p])}var x;this._config.chunkSize&&(x=this._start+this._config.chunkSize-1,l.setRequestHeader("Range","bytes="+this._start+"-"+x));try{l.send(this._config.downloadRequestBody)}catch(I){this._chunkError(I.message)}o&&l.status===0&&this._chunkError()}},this._chunkLoaded=function(){l.readyState===4&&(l.status<200||400<=l.status?this._chunkError():(this._start+=this._config.chunkSize||l.responseText.length,this._finished=!this._config.chunkSize||this._start>=(p=>(p=p.getResponseHeader("Content-Range"))!==null?parseInt(p.substring(p.lastIndexOf("/")+1)):-1)(l),this.parseChunk(l.responseText)))},this._chunkError=function(p){p=l.statusText||p,this._sendError(new Error(p))}}function v(n){(n=n||{}).chunkSize||(n.chunkSize=m.LocalChunkSize),b.call(this,n);var l,p,g=typeof FileReader<"u";this.stream=function(x){this._input=x,p=x.slice||x.webkitSlice||x.mozSlice,g?((l=new FileReader).onload=_(this._chunkLoaded,this),l.onerror=_(this._chunkError,this)):l=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount<this._config.preview)||this._readChunk()},this._readChunk=function(){var x=this._input,I=(this._config.chunkSize&&(I=Math.min(this._start+this._config.chunkSize,this._input.size),x=p.call(x,this._start,I)),l.readAsText(x,this._config.encoding));g||this._chunkLoaded({target:{result:I}})},this._chunkLoaded=function(x){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(x.target.result)},this._chunkError=function(){this._sendError(l.error)}}function y(n){var l;b.call(this,n=n||{}),this.stream=function(p){return l=p,this._nextChunk()},this._nextChunk=function(){var p,g;if(!this._finished)return p=this._config.chunkSize,l=p?(g=l.substring(0,p),l.substring(p)):(g=l,""),this._finished=!l,this.parseChunk(g)}}function N(n){b.call(this,n=n||{});var l=[],p=!0,g=!1;this.pause=function(){b.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){b.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(x){this._input=x,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){g&&l.length===1&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),l.length?this.parseChunk(l.shift()):p=!0},this._streamData=_(function(x){try{l.push(typeof x=="string"?x:x.toString(this._config.encoding)),p&&(p=!1,this._checkIsFinished(),this.parseChunk(l.shift()))}catch(I){this._streamError(I)}},this),this._streamError=_(function(x){this._streamCleanUp(),this._sendError(x)},this),this._streamEnd=_(function(){this._streamCleanUp(),g=!0,this._streamData("")},this),this._streamCleanUp=_(function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)},this)}function C(n){var l,p,g,x,I=Math.pow(2,53),V=-I,ee=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,J=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,S=this,$=0,R=0,Y=!1,L=!1,F=[],O={data:[],errors:[],meta:{}};function B(T){return n.skipEmptyLines==="greedy"?T.join("").trim()==="":T.length===1&&T[0].length===0}function k(){if(O&&g&&(X("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+m.DefaultDelimiter+"'"),g=!1),n.skipEmptyLines&&(O.data=O.data.filter(function(U){return!B(U)})),H()){let U=function(re,ie){w(n.transformHeader)&&(re=n.transformHeader(re,ie)),F.push(re)};if(O)if(Array.isArray(O.data[0])){for(var T=0;H()&&T<O.data.length;T++)O.data[T].forEach(U);O.data.splice(0,1)}else O.data.forEach(U)}function W(U,re){for(var ie=n.header?{}:[],q=0;q<U.length;q++){var Q=q,K=U[q],K=((ue,G)=>(te=>(n.dynamicTypingFunction&&n.dynamicTyping[te]===void 0&&(n.dynamicTyping[te]=n.dynamicTypingFunction(te)),(n.dynamicTyping[te]||n.dynamicTyping)===!0))(ue)?G==="true"||G==="TRUE"||G!=="false"&&G!=="FALSE"&&((te=>{if(ee.test(te)&&(te=parseFloat(te),V<te&&te<I))return 1})(G)?parseFloat(G):J.test(G)?new Date(G):G===""?null:G):G)(Q=n.header?q>=F.length?"__parsed_extra":F[q]:Q,K=n.transform?n.transform(K,Q):K);Q==="__parsed_extra"?(ie[Q]=ie[Q]||[],ie[Q].push(K)):ie[Q]=K}return n.header&&(q>F.length?X("FieldMismatch","TooManyFields","Too many fields: expected "+F.length+" fields but parsed "+q,R+re):q<F.length&&X("FieldMismatch","TooFewFields","Too few fields: expected "+F.length+" fields but parsed "+q,R+re)),ie}var Z;O&&(n.header||n.dynamicTyping||n.transform)&&(Z=1,!O.data.length||Array.isArray(O.data[0])?(O.data=O.data.map(W),Z=O.data.length):O.data=W(O.data,0),n.header&&O.meta&&(O.meta.fields=F),R+=Z)}function H(){return n.header&&F.length===0}function X(T,W,Z,U){T={type:T,code:W,message:Z},U!==void 0&&(T.row=U),O.errors.push(T)}w(n.step)&&(x=n.step,n.step=function(T){O=T,H()?k():(k(),O.data.length!==0&&($+=T.data.length,n.preview&&$>n.preview?p.abort():(O.data=O.data[0],x(O,S))))}),this.parse=function(T,W,Z){var U=n.quoteChar||'"',U=(n.newline||(n.newline=this.guessLineEndings(T,U)),g=!1,n.delimiter?w(n.delimiter)&&(n.delimiter=n.delimiter(T),O.meta.delimiter=n.delimiter):((U=((re,ie,q,Q,K)=>{var ue,G,te,ye;K=K||[","," ","|",";",m.RECORD_SEP,m.UNIT_SEP];for(var Ne=0;Ne<K.length;Ne++){for(var pe,Ie=K[Ne],oe=0,he=0,le=0,de=(te=void 0,new M({comments:Q,delimiter:Ie,newline:ie,preview:10}).parse(re)),ge=0;ge<de.data.length;ge++)q&&B(de.data[ge])?le++:(pe=de.data[ge].length,he+=pe,te===void 0?te=pe:0<pe&&(oe+=Math.abs(pe-te),te=pe));0<de.data.length&&(he/=de.data.length-le),(G===void 0||oe<=G)&&(ye===void 0||ye<he)&&1.99<he&&(G=oe,ue=Ie,ye=he)}return{successful:!!(n.delimiter=ue),bestDelimiter:ue}})(T,n.newline,n.skipEmptyLines,n.comments,n.delimitersToGuess)).successful?n.delimiter=U.bestDelimiter:(g=!0,n.delimiter=m.DefaultDelimiter),O.meta.delimiter=n.delimiter),j(n));return n.preview&&n.header&&U.preview++,l=T,p=new M(U),O=p.parse(l,W,Z),k(),Y?{meta:{paused:!0}}:O||{meta:{paused:!1}}},this.paused=function(){return Y},this.pause=function(){Y=!0,p.abort(),l=w(n.chunk)?"":l.substring(p.getCharIndex())},this.resume=function(){S.streamer._halted?(Y=!1,S.streamer.parseChunk(l,!0)):setTimeout(S.resume,3)},this.aborted=function(){return L},this.abort=function(){L=!0,p.abort(),O.meta.aborted=!0,w(n.complete)&&n.complete(O),l=""},this.guessLineEndings=function(re,U){re=re.substring(0,1048576);var U=new RegExp(f(U)+"([^]*?)"+f(U),"gm"),Z=(re=re.replace(U,"")).split("\r"),U=re.split(`
1
+ import{j as e,z as ae,de as Lt,c8 as ts,ab as Us,r as d,a0 as qe,B as z,cQ as ss,X as pt,d7 as ft,ai as ht,aj as Bs,cM as rs,cN as as,cO as ns,D as Te,v as Fe,w as Ue,x as Be,ap as Re,ag as ve,df as zs,dg as $s,dh as is,e as Qe,bv as Vs,C as Hs,ch as Ws,cF as Pe,aG as bt,di as Gs,af as Ks,cq as ls,aX as os,dj as Ys,dk as qs,W as ce,aM as Qs,aO as Js,b5 as Xs,aN as Zs,b7 as ke,b8 as Mt,cp as cs,c6 as er,dl as tr,dm as sr,dn as rr,b4 as Ze,co as dt,dp as gt,dq as ar,dr as nr,cf as Rt,ds as ir,dt as ds,du as It,aI as ze,cu as Se,dv as us,t as ne,d6 as lr,cD as or,bV as cr,bW as dr,c$ as ms,bJ as ur,bU as ps,d0 as mr,d2 as pr}from"./index-CYyEyBYw.js";import{C as xt,a as fr,b as vt,d as yt,e as Je,f as Ot,g as $e,h as hr,F as br}from"./filters-D52FTE0z.js";import{P as fs}from"./pencil-BL1r8KVy.js";import{h as hs,o as wt,q as gr,r as xr,v as bs,d as vr,D as Ve,a as He,w as at,s as we,x as nt,b as We,t as Dt,y as yr,g as wr,f as _r,c as Sr,u as jr,i as Er,p as gs,j as Nr,n as Cr,l as kr,k as Lr,m as Mr}from"./filter-query-core-CM0KKIr2.js";import{D as Rr,u as Ir}from"./dropzone-B8mAoWrn.js";import{U as xs,D as Or,b as Dr,N as Ar,T as Pr,M as Tr,P as Fr,a as Ur,S as Br,A as zr,C as $r,c as Vr,d as Hr,e as Wr}from"./upload-CPYhmtWZ.js";import{S as Gr,a as Kr,b as Yr,c as qr,f as At}from"./select-8S9kYGSM.js";import{a as Xe,b as _t,c as je,d as be,e as vs,f as me}from"./table-pGS7EeJe.js";import{b as Qr}from"./member-route-ZLy3opLv.js";import{u as ys}from"./newsletters-m6HQgU5J.js";import{T as Jr}from"./tags-Dso4-FA_.js";import{E as ut}from"./empty-indicator-P3IsUguf.js";import{L as it,C as Xr,E as Zr,F as ea,a as ta}from"./loader-circle-DLJd-dNm.js";import{M as sa}from"./mail-B97w28e2.js";import{g as ws}from"./get-site-timezone-BDBAcjmq.js";import{u as ra}from"./tiers-4Vkr_D-L.js";import{b as aa}from"./posts-D-jyPPE6.js";import{L as Me}from"./list-header-Cc7Ia3nr.js";import{A as Pt}from"./arrow-right-B2j-ecEK.js";import{M as na}from"./main-layout-bwWvzc9B.js";import{u as ia,a as la,L as oa}from"./virtual-list-window-EKtWZ5cP.js";import"./circle-alert-Dbz54fYb.js";import"./index-DzVHlhO1.js";import"./typeof-QjJsDpFa.js";import"./index-x0hNfyqU.js";import"./chevron-up-v4_QwmnL.js";import"./inline-B4cWemrJ.js";function ca({className:t,...s}){return e.jsx("div",{className:ae(Lt.base,Lt.invalidWithin,"group/input-group relative flex w-full items-center outline-hidden","h-9 has-[>textarea]:h-auto","has-[>[data-align=inline-start]]:[&>input]:pl-2","has-[>[data-align=inline-end]]:[&>input]:pr-2","has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3","has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3","has-[[data-slot=input-group-control]:focus-visible]:outline-hidden has-[[data-slot=input-group-control]:focus-visible]:bg-transparent has-[[data-slot=input-group-control]:focus-visible]:border-focus-ring has-[[data-slot=input-group-control]:focus-visible]:ring-2 has-[[data-slot=input-group-control]:focus-visible]:ring-focus-ring/25",t),"data-slot":"input-group",role:"group",...s})}const da=Us("flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--input-group-radius)-5px)] [&>svg:not([class*='size-'])]:size-4",{variants:{align:{"inline-start":"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]","inline-end":"order-last pr-3 has-[>button]:mr-[-0.4rem] has-[>kbd]:mr-[-0.35rem]","block-start":"order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5 [.border-b]:pb-3","block-end":"order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5 [.border-t]:pt-3"}},defaultVariants:{align:"inline-start"}});function ua({className:t,align:s="inline-start",...r}){return e.jsx("div",{className:ae(da({align:s}),t),"data-align":s,"data-slot":"input-group-addon",role:"group",onClick:a=>{var i;if(a.target.closest("button"))return;const o=(i=a.currentTarget.closest('[data-slot="input-group"]'))==null?void 0:i.querySelector('[data-slot="input-group-control"]');o?.focus()},...r})}function ma({className:t,...s}){return e.jsx(ts,{className:ae("flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 focus-visible:outline-hidden focus-visible:shadow-none dark:bg-transparent",t),"data-slot":"input-group-control",...s})}const pa={searchPlaceholder:"Search...",noResultsFound:"No results found.",loading:"Loading...",loadMore:"Load more"};function fa(t,s){const r=s.trim().toLowerCase();return r?t.filter(a=>{var i;return a.label.toLowerCase().includes(r)||((i=a.detail)==null?void 0:i.toLowerCase().includes(r))}):t}function ha(t,s,r,a,i,o,f){if(t)return{...t,shouldClientFilter:f??t.shouldClientFilter};const u=!!s,c=s?.useOptions({query:a,selectedValues:i});return{options:u?c?.options??[]:r??[],isInitialLoad:u?c?.isInitialLoad??!1:o&&(r?.length??0)===0,isSearching:u?c?.isSearching??!1:o&&(r?.length??0)>0,hasMore:u?c?.hasMore??!1:!1,isLoadingMore:u?c?.isLoadingMore??!1:!1,loadMore:u?c?.loadMore??(()=>{}):()=>{},shouldClientFilter:f??!u}}function ba({optionSource:t,options:s,values:r,onChange:a,valueSource:i,searchable:o=!0,isLoading:f=!1,maxSelections:u,isMultiSelect:c=!0,onClose:m,autoCloseOnSelect:b=!1,className:E,searchInputClassName:v,shouldFilter:y,onSearchChange:N,i18n:C,renderItem:h,header:M,footer:A}){const P=d.useMemo(()=>({...pa,...C}),[C]),[D,j]=d.useState(""),_=d.useCallback(k=>{var H;j(k),(H=t?.onSearchChange)==null||H.call(t,k),N?.(k)},[N,t]),w=ha(t,i,s,D,r,f,y),n=w.options,[l,p]=d.useState([]),g=d.useMemo(()=>n.filter(k=>r.includes(k.value)),[n,r]);d.useEffect(()=>{if(r.length===0){p([]);return}g.length>0&&p(k=>{const H=[];for(const X of r){const T=g.find(W=>W.value===X)??k.find(W=>W.value===X);T&&H.push(T)}return H})},[g,r]);const x=d.useMemo(()=>r.length===0?[]:l.length>0?l:g,[l,r.length,g]),I=d.useMemo(()=>fa(x,D),[D,x]),V=d.useMemo(()=>n.filter(k=>!r.includes(k.value)),[n,r]),ee=d.useCallback(k=>{a(r.filter(H=>H!==k.value))},[a,r]),J=k=>{a([]),m?.()},S=k=>{const H=[...r,k.value];u&&H.length>u||(a(H),b&&m?.())},$=k=>{a([k.value]),m?.()},R=c?ee:J,Y=c?S:$,L=d.useCallback(()=>_(""),[_]),F=(k,H)=>{if(H)return;const X=k.detail?` - ${k.detail}`:"";return k.label+X},B=h??(({option:k,isSelected:H,onSelect:X})=>e.jsxs($e,{className:"group flex items-center gap-2",value:F(k,H),onSelect:X,children:[k.icon,e.jsxs("div",{className:"flex flex-col overflow-hidden",children:[e.jsx("span",{className:"truncate text-accent-foreground",title:k.label,children:k.label}),k.detail&&e.jsx("span",{className:"truncate text-sm text-muted-foreground",title:k.detail,children:k.detail})]}),e.jsx(qe,{className:ae("ms-auto text-primary",!H&&"opacity-0")})]},String(k.value)));return e.jsx("div",{className:ae("w-full",E),children:e.jsxs(xt,{shouldFilter:w.shouldClientFilter,children:[M?.({selectedOptions:x,onDeselect:ee}),o&&e.jsxs("div",{className:"relative",children:[e.jsx(fr,{className:ae("h-(--control-height) pr-8 text-sm",v),placeholder:P.searchPlaceholder,value:D,onValueChange:_}),w.isSearching&&e.jsx(it,{className:"pointer-events-none absolute top-1/2 right-3 size-4 -translate-y-1/2 animate-spin text-muted-foreground"})]}),e.jsxs(vt,{className:"outline-hidden",children:[w.isInitialLoad?e.jsxs("div",{className:"flex items-center justify-center py-6 text-sm text-muted-foreground",children:[e.jsx(it,{className:"mr-2 size-4 animate-spin"}),P.loading]}):e.jsx(yt,{children:P.noResultsFound}),I.length>0&&e.jsx(Je,{heading:P.selectedHeading,children:I.map(k=>B({option:k,isSelected:!0,onSelect:()=>R(k)}))}),V.length>0&&e.jsxs(e.Fragment,{children:[I.length>0&&e.jsx(Ot,{}),e.jsx(Je,{children:V.map(k=>B({option:k,isSelected:!1,onSelect:()=>Y(k)}))})]}),w.hasMore&&e.jsxs(e.Fragment,{children:[(I.length>0||V.length>0)&&e.jsx(Ot,{}),e.jsx("div",{className:"p-1.5",children:e.jsxs("button",{className:"flex w-full items-center justify-center rounded-xs px-2 py-1.5 text-sm text-muted-foreground hover:bg-accent hover:text-accent-foreground disabled:opacity-50",disabled:w.isLoadingMore,type:"button",onClick:w.loadMore,children:[w.isLoadingMore&&e.jsx(it,{className:"mr-2 size-4 animate-spin"}),w.isLoadingMore?P.loading:P.loadMore]})})]})]}),A?.({searchInput:D,clearSearch:L})]})})}const _s=({label:t,onSave:s,onCancel:r,onDelete:a,isDuplicateName:i})=>{const[o,f]=d.useState(t.name),[u,c]=d.useState(!1),[m,b]=d.useState(""),[E,v]=d.useState(!1),[y,N]=d.useState(!1),C=d.useRef(null),h=E||y;d.useEffect(()=>{C.current?.focus(),C.current?.select()},[]);const M=j=>{const _=j.trim();return _?i?.(_,t.id)?"A label with this name already exists":"":"Name is required"},A=async()=>{const j=M(o);if(j){b(j);return}v(!0);try{await s(t.id,o.trim()),r()}catch{v(!1)}},P=j=>{j.key==="Enter"?(j.preventDefault(),A()):j.key==="Escape"&&(j.preventDefault(),h||r())},D=async()=>{N(!0);try{await a(t.id)}catch{N(!1),c(!1)}};return e.jsxs("div",{className:"flex flex-col gap-2 py-1.5","data-edit-row":!0,children:[e.jsx("input",{ref:C,className:"h-7 w-full rounded border border-border bg-background px-2 text-sm outline-hidden focus:ring-1 focus:ring-ring disabled:opacity-50",disabled:h,type:"text",value:o,onChange:j=>{f(j.target.value),b("")},onKeyDown:P}),m&&e.jsx("span",{className:"text-xs text-destructive",children:m}),u?e.jsxs("div",{className:"flex items-center gap-1 text-sm",children:[e.jsx("span",{className:"flex-1 font-semibold",children:"Delete label?"}),e.jsx(z,{className:"h-6 px-2 text-xs",disabled:h,size:"sm",variant:"outline",onClick:()=>c(!1),children:"Cancel"}),e.jsx(z,{className:"h-6 px-2 text-xs",disabled:h,size:"sm",variant:"destructive",onClick:D,children:y?"Deleting...":"Delete"})]}):e.jsxs("div",{className:"flex items-center",children:[e.jsx(z,{className:"h-6 gap-1 px-1.5 text-xs text-red hover:bg-red/5 hover:text-red",disabled:h,size:"sm",variant:"ghost",onClick:()=>c(!0),children:"Delete"}),e.jsxs("div",{className:"ml-auto flex gap-1",children:[e.jsx(z,{className:"h-6 px-2 text-xs",disabled:h,size:"sm",variant:"outline",onClick:r,children:"Cancel"}),e.jsx(z,{className:"h-6 px-2 text-xs",disabled:h,size:"sm",onClick:A,children:E?"Saving...":"Save"})]})]})]})},ga=({label:t,isSelected:s,showEdit:r,onToggle:a,onEditClick:i})=>e.jsxs($e,{className:"group",value:t.slug,onSelect:()=>a(t.slug),children:[e.jsx("span",{className:"flex-1 truncate",children:t.name}),r?e.jsxs("button",{"aria-label":`Edit label ${t.name}`,className:"relative ml-1 flex size-5 shrink-0 items-center justify-center rounded text-muted-foreground hover:text-foreground",type:"button",onClick:o=>{o.stopPropagation(),o.preventDefault(),i()},children:[s&&e.jsx(qe,{className:"absolute size-3 text-primary transition-opacity duration-150 group-hover:opacity-0"}),e.jsx(fs,{className:"absolute size-3 translate-x-2 opacity-0 transition-all duration-150 ease-out group-hover:translate-x-0 group-hover:opacity-100"})]}):s&&e.jsx(qe,{className:"size-4 shrink-0 text-primary"})]}),xa=({labels:t,selectedSlugs:s,search:r,onToggle:a,onEdit:i,onDelete:o,isDuplicateName:f,canCreateFromSearch:u,onCreate:c,isCreating:m,onSearchClear:b})=>{const[E,v]=d.useState(null),y=r.trim().toLowerCase(),N=y?t.filter(D=>D.name.toLowerCase().includes(y)):t,C=!!c&&r.trim()&&u?.(r),h=!!i,M=async()=>{if(c){const D=await c(r.trim());D&&a(D.slug),b?.()}},A=async(D,j)=>{i&&await i(D,j)},P=async D=>{o&&(await o(D),v(null))};return e.jsxs(e.Fragment,{children:[!C&&N.length===0&&e.jsx(yt,{children:"No labels found"}),N.length>0&&e.jsx(Je,{className:"[&_[cmdk-group-heading]]:hidden",children:N.map(D=>E===D.id?e.jsx(_s,{isDuplicateName:f,label:D,onCancel:()=>v(null),onDelete:P,onSave:A},D.id):e.jsx(ga,{isSelected:s.includes(D.slug),label:D,showEdit:h,onEditClick:()=>v(D.id),onToggle:a},D.id))}),C&&e.jsx(Je,{className:"[&_[cmdk-group-heading]]:hidden",children:e.jsxs($e,{disabled:m,onSelect:M,children:[e.jsx(ft,{className:"size-4"}),m?"Creating...":`Create "${r.trim()}"`]})})]})},va=({labels:t,onToggle:s})=>e.jsx(e.Fragment,{children:t.map(r=>e.jsxs(ss,{className:"cursor-pointer gap-1 pr-1",variant:"outline",onClick:a=>{a.stopPropagation(),s(r.slug)},children:[r.name,e.jsx(pt,{className:"size-3"})]},r.id))}),St=({labels:t,optionSource:s,selectedSlugs:r,resolvedSelectedLabels:a,onToggle:i,canCreateFromSearch:o,onCreate:f,isCreating:u,onEdit:c,onDelete:m,isDuplicateName:b})=>{const E=a||r.map(v=>t.find(y=>y.slug===v)).filter(v=>!!v);return e.jsx(ya,{canCreateFromSearch:o,isCreating:u,isDuplicateName:b,labels:t,optionSource:s,selectedLabels:E,selectedSlugs:r,onCreate:f,onDelete:m,onEdit:c,onToggle:i})},ya=({labels:t,optionSource:s,selectedLabels:r,selectedSlugs:a,onToggle:i,canCreateFromSearch:o,onCreate:f,isCreating:u,onEdit:c,onDelete:m,isDuplicateName:b})=>{const[E,v]=d.useState(!1),[y,N]=d.useState(""),C=d.useRef(null),h=d.useRef(null),M=d.useCallback(P=>{N(P),s.onSearchChange?.(P)},[s]);d.useEffect(()=>{if(!E)return;const P=D=>{h.current&&!h.current.contains(D.target)&&v(!1)};return document.addEventListener("pointerdown",P),()=>document.removeEventListener("pointerdown",P)},[E]);const A=P=>{P.key==="Backspace"&&!y&&a.length>0&&i(a[a.length-1]),P.key==="Escape"&&(v(!1),C.current?.blur())};return e.jsxs("div",{ref:h,className:"relative",children:[e.jsxs("div",{className:"flex min-h-9 w-full cursor-text flex-wrap items-center gap-1.5 rounded-md border border-transparent bg-gray-150 px-3 py-1 text-sm transition-colors focus-within:border-green focus-within:bg-transparent focus-within:shadow-[0_0_0_2px_rgba(48,207,67,.25)] dark:bg-gray-900",role:"combobox",onClick:()=>{C.current?.focus(),v(!0)},children:[e.jsx(va,{labels:r,onToggle:i}),e.jsx("input",{ref:C,className:"min-w-[80px] flex-1 bg-transparent text-sm outline-hidden placeholder:text-muted-foreground",placeholder:r.length===0?"Search labels...":"",value:y,onChange:P=>{M(P.target.value),E||v(!0)},onFocus:()=>v(!0),onKeyDown:A})]}),E&&e.jsx("div",{className:"absolute top-full left-0 z-50 mt-1 w-full rounded-md border bg-white shadow-md dark:bg-gray-950",children:s.isInitialLoad?e.jsx("div",{className:"flex items-center justify-center py-6 text-sm text-muted-foreground",children:"Loading labels..."}):e.jsx(xt,{shouldFilter:!1,children:e.jsx(vt,{className:"max-h-64 overflow-y-auto",children:e.jsx(xa,{canCreateFromSearch:o,isCreating:u,isDuplicateName:b,labels:t,search:y,selectedSlugs:a,onCreate:f,onDelete:m,onEdit:c,onSearchClear:()=>M(""),onToggle:i})})})})]})},et="LabelsResponseType",wa=Bs({dataType:et,path:"/labels/",defaultNextPageParams:(t,s)=>{if(t.meta?.pagination.next)return{...s,page:t.meta.pagination.next.toString()}},returnData:t=>{const{pages:s}=t,r=s.flatMap(i=>i.labels),a=s[s.length-1].meta;return{labels:r,meta:a,isEnd:a?a.pagination.pages===a.pagination.page:!0}}}),_a=ht({method:"POST",path:()=>"/labels/",body:t=>({labels:[t]}),invalidateQueries:{dataType:et}}),Sa=ht({method:"PUT",path:t=>`/labels/${t.id}/`,body:t=>({labels:[t]}),invalidateQueries:{dataType:et}}),ja=ht({method:"DELETE",path:t=>`/labels/${t}/`,invalidateQueries:{dataType:et}}),Ea=()=>{};function Na(t){return function(){const a=t.useRemoteSource({enabled:!0}).useInitialBrowse(),[i,o]=d.useState(null);d.useEffect(()=>{i!==null||!a.pagination||o(a.pagination.total<=t.pageLimit||a.pagination.next===null?"local":"remote")},[i,a.pagination]);const f=t.useLocalSource(a,{enabled:i==="local"}),u=t.useRemoteSource({enabled:i==="remote"}),c=m=>{const b=f.useOptions(m),E=u.useOptions(m);return i===null?{options:[],isInitialLoad:a.isLoading,isSearching:!1,isLoadingMore:!1,hasMore:!1,loadMore:Ea}:i==="remote"?E:b};return{id:t.id,useOptions:c}}}const Ss="100";function mt(t){return{value:t.slug,label:t.name,metadata:{id:t.id}}}function Ca(t,s){const{enabled:r=!0}=s;return{id:"posts.labels.local",useOptions:({query:i,selectedValues:o})=>{const f=(t.items||[]).map(mt),u=o.map(c=>{const m=t.items?.find(b=>b.slug===c);return m?mt(m):{value:c,label:c}});return r?{options:xr(u,bs(f,i)),isInitialLoad:t.isLoading&&f.length===0,isSearching:!1,isLoadingMore:!1,hasMore:!1,loadMore:()=>{}}:{options:[],isInitialLoad:!1,isSearching:!1,isLoadingMore:!1,hasMore:!1,loadMore:()=>{}}}}}const ka=hs({id:"posts.labels.remote",buildBrowseSearchParams:t=>({limit:Ss,order:"name asc",...t?{filter:`name:~${wt(t)}`}:{}}),buildHydrateFilter:t=>gr("slug",t),buildHydrateSearchParams:t=>({filter:t,order:"name asc"}),selectItems:t=>t?.labels,useQuery:({enabled:t,searchParams:s})=>wa({enabled:t,keepPreviousData:!0,searchParams:s}),toOption:mt,debounceMs:250}),La=Na({id:"posts.labels.hybrid",pageLimit:Number(Ss),useLocalSource:Ca,useRemoteSource:ka});function js(){return La()}function tt({selectedSlugs:t,onSelectionChange:s,valueSource:r}){const a=js(),i=r??a,[o,f]=d.useState(""),u=i.useOptions({query:o,selectedValues:t}),c=d.useMemo(()=>u.options.flatMap(j=>j.metadata?.id?[{id:String(j.metadata.id),name:j.label,slug:String(j.value),created_at:"",updated_at:""}]:[]),[u.options]),m={...u,shouldClientFilter:!1,onSearchChange:f},{mutateAsync:b,isLoading:E}=_a(),{mutateAsync:v}=Sa(),{mutateAsync:y}=ja(),N=d.useRef(t);N.current=t;const C=d.useCallback(j=>{const _=N.current;_.includes(j)?s(_.filter(w=>w!==j)):s([..._,j])},[s]),h=d.useCallback((j,_)=>{const w=j.trim().toLowerCase();return c.some(n=>n.name.toLowerCase()===w&&n.id!==_)},[c]),M=d.useCallback(j=>{const _=j.trim();return _?!h(_):!1},[h]),A=d.useCallback(async j=>{const _=j.trim();return!_||h(_)?void 0:(await b({name:_}))?.labels?.[0]},[b,h]),P=d.useCallback(async(j,_)=>{const w=_.trim();if(!w||h(w,j))return;const n=c.find(g=>g.id===j),p=(await v({id:j,name:w}))?.labels?.[0];if(n&&p&&n.slug!==p.slug){const g=N.current;g.includes(n.slug)&&s(g.map(x=>x===n.slug?p.slug:x))}},[v,h,c,s]),D=d.useCallback(async j=>{const _=c.find(w=>w.id===j);if(await y(j),_){const w=N.current;w.includes(_.slug)&&s(w.filter(n=>n!==_.slug))}},[y,c,s]);return{labels:c,optionSource:m,selectedSlugs:t,resolvedSelectedLabels:t.map(j=>c.find(_=>_.slug===j)).filter(j=>!!j),toggleLabel:C,createLabel:A,editLabel:P,deleteLabel:D,isDuplicateName:h,canCreateFromSearch:M,isCreating:E}}const Ma=({field:t,values:s,onChange:r})=>{const a=tt({selectedSlugs:s,onSelectionChange:r,valueSource:t.valueSource}),i=d.useRef(null),[o,f]=d.useState(0),u=d.useCallback(()=>{const y=i.current,N=y?.parentElement;if(y&&N){const C=y.getBoundingClientRect(),h=N.getBoundingClientRect();f(Math.round(h.left-C.left))}},[]);let c="Select...";a.resolvedSelectedLabels.length===1?c=a.resolvedSelectedLabels[0].name:a.resolvedSelectedLabels.length>1&&(c=`${a.resolvedSelectedLabels.length} labels`);const[m,b]=d.useState(null),E=d.useCallback(({option:y,isSelected:N,onSelect:C})=>{const h=String(y.metadata?.id??"");if(m===h&&!N){const M={id:h,name:y.label,slug:String(y.value),created_at:"",updated_at:""};return e.jsx(_s,{isDuplicateName:a.isDuplicateName,label:M,onCancel:()=>b(null),onDelete:async A=>{await a.deleteLabel(A),b(null)},onSave:async(A,P)=>{await a.editLabel(A,P),b(null)}},h)}return e.jsxs($e,{className:"group",value:y.label,onSelect:C,children:[e.jsx("span",{className:"flex-1 truncate",children:y.label}),N?e.jsx(qe,{className:"size-3 shrink-0 text-primary"}):e.jsx("button",{"aria-label":`Edit label ${y.label}`,className:"relative ml-1 flex size-5 shrink-0 items-center justify-center rounded text-muted-foreground hover:text-foreground",type:"button",onClick:M=>{M.stopPropagation(),M.preventDefault(),b(h)},children:e.jsx(fs,{className:"absolute size-3 translate-x-2 opacity-0 transition-all duration-150 ease-out group-hover:translate-x-0 group-hover:opacity-100"})})]},String(y.value))},[m,a]),v=d.useCallback(({searchInput:y,clearSearch:N})=>y.trim()&&a.canCreateFromSearch(y)?e.jsx("div",{className:"border-t p-1",children:e.jsxs(z,{className:"h-8 w-full justify-start gap-2 px-2 text-sm font-normal",disabled:a.isCreating,variant:"ghost",onClick:async()=>{const h=await a.createLabel(y.trim());h&&a.toggleLabel(h.slug),N()},children:[e.jsx(ft,{className:"size-4"}),a.isCreating?"Creating...":`Create "${y.trim()}"`]})}):null,[a]);return e.jsxs(rs,{onOpenChange:y=>{y?u():a.optionSource.onSearchChange?.("")},children:[e.jsx(as,{asChild:!0,children:e.jsx("button",{ref:i,className:"flex size-full items-center truncate text-left text-sm",type:"button",children:c})}),e.jsx(ns,{align:"start",alignOffset:o,className:"w-64 p-0",children:a.optionSource.isInitialLoad?e.jsx("div",{className:"flex items-center justify-center py-6 text-sm text-muted-foreground",children:"Loading labels..."}):e.jsx(ba,{footer:v,i18n:{searchPlaceholder:"Search labels...",noResultsFound:"No labels found"},optionSource:a.optionSource,renderItem:E,values:s,onChange:r})})]})};function Ra({open:t,memberCount:s,onOpenChange:r,onConfirm:a,isLoading:i=!1}){const[o,f]=d.useState([]),u=tt({selectedSlugs:o,onSelectionChange:f}),c=d.useCallback(b=>{b||f([]),r(b)},[r]),m=()=>{const b=u.labels.filter(E=>o.includes(E.slug)).map(E=>E.id);b.length>0&&a(b)};return e.jsx(Te,{open:t,onOpenChange:c,children:e.jsxs(Fe,{className:"gap-5",onOpenAutoFocus:b=>b.preventDefault(),children:[e.jsx(Ue,{children:e.jsxs(Be,{children:["Add label to ",Re(s)," ",s===1?"member":"members"]})}),e.jsx(St,{canCreateFromSearch:u.canCreateFromSearch,isCreating:u.isCreating,isDuplicateName:u.isDuplicateName,labels:u.labels,optionSource:u.optionSource,resolvedSelectedLabels:u.resolvedSelectedLabels,selectedSlugs:o,onCreate:u.createLabel,onDelete:u.deleteLabel,onEdit:u.editLabel,onToggle:u.toggleLabel}),e.jsxs(ve,{children:[e.jsx(z,{variant:"outline",onClick:()=>c(!1),children:"Cancel"}),e.jsx(z,{disabled:o.length===0||i,onClick:m,children:i?"Adding...":o.length>1?`Add ${Re(o.length)} labels`:"Add label"})]})]})})}function Ia({open:t,memberCount:s,nql:r,search:a,onOpenChange:i,onConfirm:o,isLoading:f=!1}){const[u,c]=d.useState([]),{data:m,isLoading:b}=zs({searchParams:{...r?{filter:r}:{},...a?{search:a}:{},include:"labels",limit:"all",fields:"id"},enabled:t}),E=d.useMemo(()=>{const h=new Set;for(const M of m?.members||[])for(const A of M.labels||[])h.add(A.slug);return h},[m]),v=tt({selectedSlugs:u,onSelectionChange:c}),y={...v.optionSource,options:v.optionSource.options.filter(h=>E.has(String(h.value)))},N=d.useCallback(h=>{h||c([]),i(h)},[i]),C=()=>{const h=v.labels.filter(M=>u.includes(M.slug)).map(M=>M.id);h.length>0&&o(h)};return e.jsx(Te,{open:t,onOpenChange:N,children:e.jsxs(Fe,{className:"gap-5",onOpenAutoFocus:h=>h.preventDefault(),children:[e.jsx(Ue,{children:e.jsxs(Be,{children:["Remove label from ",Re(s)," ",s===1?"member":"members"]})}),e.jsx(St,{isDuplicateName:v.isDuplicateName,labels:v.labels.filter(h=>E.has(h.slug)),optionSource:{...y,isInitialLoad:y.isInitialLoad||b},resolvedSelectedLabels:v.resolvedSelectedLabels.filter(h=>E.has(h.slug)),selectedSlugs:u,onDelete:v.deleteLabel,onEdit:v.editLabel,onToggle:v.toggleLabel}),e.jsxs(ve,{children:[e.jsx(z,{variant:"outline",onClick:()=>N(!1),children:"Cancel"}),e.jsx(z,{disabled:u.length===0||f,onClick:C,children:f?"Removing...":u.length>1?`Remove ${Re(u.length)} labels`:"Remove label"})]})]})})}function Oa({open:t,newsletters:s,memberCount:r,onOpenChange:a,onConfirm:i,isLoading:o=!1}){const[f,u]=d.useState("all"),[c,m]=d.useState([]),[b,E]=d.useState(""),[v,y]=d.useState(!1),N=d.useRef(null),C=d.useRef(null);d.useEffect(()=>{t||(u("all"),m([]),E(""),y(!1))},[t]),d.useEffect(()=>{if(!v)return;const _=w=>{N.current&&!N.current.contains(w.target)&&y(!1)};return document.addEventListener("pointerdown",_),()=>document.removeEventListener("pointerdown",_)},[v]);const h=_=>{_||(u("all"),m([]),E(""),y(!1)),a(_)},M=d.useCallback(_=>{m(w=>w.includes(_)?w.filter(n=>n!==_):[...w,_])},[]),A=s.length>=2,P=()=>{i(!A||f==="all"?null:c)},D=o||A&&f==="selected"&&c.length===0,j=r===1?"member":"members";return e.jsx(Te,{open:t,onOpenChange:h,children:e.jsxs(Fe,{className:"gap-5",children:[e.jsx(Ue,{children:e.jsx(Be,{children:"Unsubscribe members"})}),A?e.jsxs(e.Fragment,{children:[e.jsxs("div",{"aria-label":"Unsubscribe scope",className:"flex flex-col gap-3",role:"radiogroup",children:[e.jsxs("label",{className:"flex cursor-pointer items-start gap-3",children:[e.jsx("input",{checked:f==="all",className:"mt-0.5 size-4 cursor-pointer accent-black",name:"unsubscribe-mode",type:"radio",value:"all",onChange:()=>u("all")}),e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"text-sm font-semibold",children:"Unsubscribe from all newsletters"}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:[r.toLocaleString()," ",j," will be unsubscribed from"," ",s.length," ",s.length===1?"newsletter":"newsletters","."]})]})]}),e.jsxs("label",{className:"flex cursor-pointer items-start gap-3",children:[e.jsx("input",{checked:f==="selected",className:"mt-0.5 size-4 cursor-pointer accent-black",name:"unsubscribe-mode",type:"radio",value:"selected",onChange:()=>u("selected")}),e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"text-sm font-semibold",children:"Unsubscribe from selected newsletters"}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:["Select which newsletters to unsubscribe"," ",r.toLocaleString()," ",j," from."]})]})]})]}),f==="selected"&&e.jsxs("div",{ref:N,className:"relative space-y-2",children:[e.jsx("label",{className:"text-sm font-semibold",htmlFor:"newsletter-search",children:"Newsletters"}),e.jsxs("div",{className:"flex min-h-9 w-full cursor-text flex-wrap items-center gap-1.5 rounded-md border bg-background px-3 py-1 text-sm",onClick:()=>{C.current?.focus(),y(!0)},children:[c.map(_=>{const w=s.find(n=>n.id===_);return w?e.jsxs(ss,{className:"cursor-pointer gap-1 pr-1",variant:"outline",onClick:n=>{n.stopPropagation(),M(_)},children:[w.name,e.jsx(pt,{className:"size-3"})]},_):null}),e.jsx("input",{ref:C,className:"min-w-[80px] flex-1 bg-transparent py-1 text-sm outline-hidden placeholder:text-muted-foreground",id:"newsletter-search",placeholder:c.length===0?"Search newsletters...":"",value:b,onChange:_=>{E(_.target.value),v||y(!0)},onFocus:()=>y(!0),onKeyDown:_=>{_.key==="Escape"&&(y(!1),C.current?.blur()),_.key==="Backspace"&&!b&&c.length>0&&M(c[c.length-1])}})]}),v&&e.jsx("div",{className:"absolute top-full left-0 z-50 mt-1 w-full rounded-md border bg-white shadow-md dark:bg-gray-950",children:e.jsx(xt,{shouldFilter:!1,children:e.jsxs(vt,{className:"max-h-64 overflow-y-auto",children:[e.jsx(yt,{children:"No newsletters found."}),s.filter(_=>_.name.toLowerCase().includes(b.toLowerCase())).map(_=>e.jsxs($e,{value:_.name,onSelect:()=>M(_.id),children:[_.name,c.includes(_.id)&&e.jsx(hr,{})]},_.id))]})})})]})]}):e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Are you sure you want to unsubscribe"," ",r.toLocaleString()," ",j," from all newsletters? They will no longer receive any email newsletters from you."]}),e.jsxs(ve,{children:[e.jsx(z,{variant:"outline",onClick:()=>h(!1),children:"Cancel"}),e.jsx(z,{disabled:D,variant:"destructive",onClick:P,children:o?"Unsubscribing...":"Unsubscribe"})]})]})})}function Da({open:t,memberCount:s,onOpenChange:r,onConfirm:a,onExportBackup:i,isLoading:o=!1}){const[f,u]=d.useState(!1),c=b=>{b||u(!1),r(b)},m=async()=>{if(!(s<1||o||f))try{u(!0),await i(),a()}catch{}finally{u(!1)}};return e.jsx(Te,{open:t,onOpenChange:c,children:e.jsxs(Fe,{className:"gap-5",children:[e.jsx(Ue,{children:e.jsx(Be,{children:"Delete selected members?"})}),e.jsx("div",{className:"text-sm",children:s>0?e.jsxs(e.Fragment,{children:[e.jsxs("p",{children:["You're about to delete ",e.jsxs("strong",{children:[s.toLocaleString()," ",s===1?"member":"members"]}),". This is permanent! All Ghost data will be deleted, this will have no effect on subscriptions in Stripe."]}),e.jsx("p",{className:"mt-4",children:"A backup of your selection will be automatically downloaded to your device before deletion."})]}):e.jsx("p",{children:"No members are selected."})}),e.jsxs(ve,{children:[e.jsx(z,{variant:"outline",onClick:()=>c(!1),children:"Cancel"}),e.jsx(z,{disabled:o||f||s<1,variant:"destructive",onClick:m,children:o||f?"Deleting...":"Download backup & delete members"})]})]})})}function Aa({fileError:t,onClose:s,onDropAccepted:r,onDropRejected:a}){return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mt-5 space-y-5",children:[e.jsxs($s,{variant:"info",children:["Need some help? ",e.jsx("a",{className:"font-semibold underline",href:"https://ghost.org/help/import-members/",rel:"noopener noreferrer",target:"_blank",children:"Learn more"})," about importing members or ",e.jsx("a",{className:"font-semibold underline",href:"https://static.ghost.org/v4.0.0/files/member-import-template.csv",rel:"noopener noreferrer",target:"_blank",children:"download a sample CSV file"}),"."]}),t&&e.jsxs("div",{className:"flex items-start gap-2 text-sm text-red-600",children:[e.jsx(is,{className:"mt-0.5 size-4 shrink-0"}),e.jsx("p",{children:t})]}),e.jsx(Rr,{accept:{"text/csv":[".csv"],"application/vnd.ms-excel":[".csv"]},"aria-label":"Select or drop a CSV file",onDropAccepted:i=>{const o=i[0];o&&r(o)},onDropRejected:a,children:({isDragActive:i,isDragReject:o})=>e.jsxs(e.Fragment,{children:[e.jsx(xs,{className:"mb-2 size-6 text-grey-600"}),e.jsx("span",{className:"text-sm text-grey-700",children:o?"The file type you uploaded is not supported":i?"Drop CSV file to upload":"Select or drop a CSV file"})]})})]}),e.jsx(ve,{className:"mt-5",children:e.jsx(z,{variant:"outline",onClick:s,children:"Close"})})]})}function Pa({status:t,fileData:s,mapping:r,mappingError:a,showMappingErrors:i,membersCount:o,dataPreviewIndex:f,hasPrevRecord:u,hasNextRecord:c,fieldMappings:m,labelPicker:b,onUpdateMapping:E,onDataPreviewIndexChange:v,onStartOver:y,onUpload:N}){const C=s&&s.length>0&&r?Object.entries(s[f]||{}).map(([h,M])=>({key:h,value:M,mapTo:r.get(h)})):[];return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mt-5 space-y-5",children:s===null?e.jsx("div",{className:"flex items-center justify-center rounded-md border bg-muted p-10",children:e.jsx(Qe,{size:"md"})}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:ae("overflow-hidden rounded-md border",i&&a&&"border-red-500"),children:e.jsx("div",{className:"max-h-[400px] overflow-auto",children:e.jsxs(Xe,{className:"table-fixed",children:[e.jsx(_t,{children:e.jsxs(je,{children:[e.jsx(be,{className:"w-1/3",children:"Field"}),e.jsx(be,{className:"w-1/3",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("span",{children:["Sample data ",e.jsxs("span",{className:"text-muted-foreground",children:["(#",Re(f+1),")"]})]}),e.jsxs("div",{className:"flex items-center",children:[e.jsx("button",{"aria-label":"Show previous sample row",className:ae("rounded p-0.5 hover:bg-muted",!u&&"cursor-default opacity-30"),disabled:!u||t==="UPLOADING",type:"button",onClick:()=>v(f-1),children:e.jsx(Vs,{className:"size-4"})}),e.jsx("button",{"aria-label":"Show next sample row",className:ae("rounded p-0.5 hover:bg-muted",!c&&"cursor-default opacity-30"),disabled:!c||t==="UPLOADING",type:"button",onClick:()=>v(f+1),children:e.jsx(Hs,{className:"size-4"})})]})]})}),e.jsx(be,{className:"w-1/3",children:"Import as"})]})}),e.jsx(vs,{children:C.length>0?C.map(h=>e.jsxs(je,{className:ae(!h.mapTo&&"bg-muted"),children:[e.jsx(me,{className:"text-sm font-medium break-all",children:h.key}),e.jsx(me,{className:ae("break-all text-sm",!h.value&&"text-muted-foreground"),children:h.value||" "}),e.jsx(me,{children:e.jsxs(Gr,{disabled:t==="UPLOADING",value:h.mapTo||"__not_imported__",onValueChange:M=>{E(h.key,M==="__not_imported__"?null:M)},children:[e.jsx(Kr,{className:ae("h-8 text-sm",!h.mapTo&&"text-muted-foreground"),children:e.jsx(Yr,{})}),e.jsxs(qr,{children:[e.jsx(At,{value:"__not_imported__",children:"Not imported"}),m.map(M=>e.jsx(At,{value:M.value,children:M.label},M.value))]})]})})]},h.key)):e.jsx(je,{children:e.jsx(me,{className:"text-muted-foreground",colSpan:3,children:"No data found in the uploaded CSV."})})})]})})}),i&&a&&e.jsx("p",{className:"text-sm text-red-600",children:a}),o>0&&e.jsx("p",{className:"text-sm text-muted-foreground",children:"If an email address in your CSV matches an existing member, they will be updated with the mapped values."}),e.jsxs("div",{className:"mt-5",children:[e.jsx("label",{className:"mb-1 block text-sm font-semibold",children:"Label these members"}),e.jsx(St,{canCreateFromSearch:b.canCreateFromSearch,isCreating:b.isCreating,isDuplicateName:b.isDuplicateName,labels:b.labels,optionSource:b.optionSource,resolvedSelectedLabels:b.resolvedSelectedLabels,selectedSlugs:b.selectedSlugs,onCreate:b.createLabel,onDelete:b.deleteLabel,onEdit:b.editLabel,onToggle:b.toggleLabel})]})]})}),e.jsxs(ve,{className:"mt-5",children:[e.jsx(z,{disabled:t==="UPLOADING",variant:"outline",onClick:y,children:"Start over"}),e.jsx(z,{disabled:t==="UPLOADING"||o===0,onClick:N,children:t==="UPLOADING"?e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx(Qe,{color:"light",size:"sm"}),"Uploading"]}):o>0?`Import ${Re(o)} ${o===1?"member":"members"}`:"Import members"})]})]})}function Ta({onUploadAnotherFile:t,onClose:s}){return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mt-5",children:e.jsx("p",{className:"text-sm",children:"Your import is being processed, and you'll receive a confirmation email as soon as it's complete. Usually this only takes a few minutes, but larger imports may take longer."})}),e.jsxs(ve,{className:"mt-5",children:[e.jsx(z,{variant:"outline",onClick:t,children:"Upload another file"}),e.jsx(z,{onClick:s,children:"Got it"})]})]})}function Fa({importResponse:t,onReset:s,onClose:r}){return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mt-5 space-y-4",children:[t.importedCount===0?e.jsxs("p",{className:"text-sm",children:["No members were added",t.errorCount>0?" due to the following errors:":"."]}):e.jsxs("p",{className:"text-sm",children:["A total of ",e.jsx("strong",{children:t.importedCount.toLocaleString()})," ",t.importedCount===1?"person was":"people were"," successfully added or updated in your list of members, and now have access to your site."]}),t.errorCount>0&&e.jsxs(e.Fragment,{children:[t.importedCount>0&&e.jsxs(e.Fragment,{children:[e.jsx("hr",{className:"border-grey-200"}),e.jsxs("p",{className:"text-sm",children:[e.jsx("strong",{children:t.errorCount.toLocaleString()})," ",t.errorCount===1?"member was":"members were"," skipped due to the following errors:"]})]}),e.jsx("ul",{className:"list-inside list-disc space-y-1 text-sm text-muted-foreground",children:t.errorList.map(a=>e.jsxs("li",{children:[a.message," (",a.count,")"]},a.message))})]})]}),e.jsx(ve,{className:"mt-5",children:t.errorCount>0?e.jsxs(e.Fragment,{children:[e.jsx(z,{variant:"outline",asChild:!0,children:e.jsx("a",{download:t.errorCsvName,href:t.errorCsvUrl,children:"Download error file"})}),t.importedCount===0?e.jsx(z,{onClick:s,children:"Try again"}):e.jsx(z,{onClick:r,children:"View members"})]}):e.jsx(e.Fragment,{children:t.importedCount===0?e.jsxs(e.Fragment,{children:[e.jsx(z,{variant:"outline",onClick:r,children:"Close"}),e.jsx(z,{onClick:s,children:"Try again"})]}):e.jsxs(e.Fragment,{children:[e.jsx(z,{variant:"outline",onClick:s,children:"Upload another file"}),e.jsx(z,{onClick:r,children:"View members"})]})})})]})}function Ua({errorMessage:t,showTryAgainButton:s,onTryAgain:r,onClose:a}){return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mt-5",children:e.jsxs("div",{className:"flex items-start gap-2 text-sm text-red-600",children:[e.jsx(is,{className:"mt-0.5 size-4 shrink-0"}),e.jsx("p",{children:t})]})}),e.jsxs(ve,{className:"mt-5",children:[s&&e.jsx(z,{variant:"outline",onClick:r,children:"Try again"}),e.jsx(z,{onClick:a,children:"OK"})]})]})}const Ba=[{label:"Email",value:"email"},{label:"Name",value:"name"},{label:"Note",value:"note"},{label:"Subscribed to emails",value:"subscribed_to_emails"},{label:"Stripe Customer ID",value:"stripe_customer_id"},{label:"Complimentary plan",value:"complimentary_plan"},{label:"Labels",value:"labels"},{label:"Created at",value:"created_at"}],Es={label:"Tier",value:"import_tier"},Ns={label:"Gift ID",value:"gift_id"},za=["email","name","note","subscribed_to_emails","complimentary_plan","stripe_customer_id","labels","created_at"];function $a({importMemberTier:t=!1,giftSubscriptionsEnabled:s=!1}={}){return[...za,...t?[Es.value]:[],...s?[Ns.value]:[]]}function Va({importMemberTier:t=!1,giftSubscriptionsEnabled:s=!1}={}){return[...Ba,...t?[Es]:[],...s?[Ns]:[]]}const Ha=["email"],Wa=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;class jt{_mapping;constructor(s){if(this._mapping={},s)for(const[r,a]of Object.entries(s))this._mapping[a]=r}get(s){return this._mapping[s]??null}toJSON(){return{...this._mapping}}getKeyByValue(s){for(const[r,a]of Object.entries(this._mapping))if(a===s)return r;return null}updateMapping(s,r){const a=new jt({});if(a._mapping={...this._mapping},r)for(const i in a._mapping)a._mapping[i]===r&&(a._mapping[i]=null);return a._mapping[s]=r,a}}function Ga(t,s=30){if(!t||t.length<=s)return t;const r=[];return Object.keys(t[0]).forEach(i=>{const o=t.filter(u=>u[i]&&u[i].trim()!=="");let f=[];if(o.length<=s)f=o;else{const u=Math.floor(s/3),c=u,m=s-u-c,b=o.slice(0,u),E=c>0?o.slice(-c):[],v=Math.max(0,Math.floor(o.length/2)-Math.floor(m/2)),y=o.slice(v,v+m);f=[...b,...y,...E].slice(0,s)}f.forEach((u,c)=>{r[c]||(r[c]={}),r[c][i]=u[i]})}),r}function Ka(t,s={}){const r=Ga(t),a={},i=$a(s);if(t.length>0)for(const f of Object.keys(t[0])){if(!a.name&&/name/i.test(f)){a.name=f;continue}!a[f]&&i.includes(f)&&!Ha.includes(f)&&(a[f]=f)}let o=0;for(;o<=r.length-1&&!a.email;){const f=r[o];for(const[u,c]of Object.entries(f))!a.email&&c&&Wa.test(c)&&(a.email=u);o+=1}return a}function Ya(t){return t.replace("Value in [members.email] cannot be blank.","Missing email address").replace("Value in [members.note] exceeds maximum length of 2000 characters.","Note is too long").replace("Value in [members.subscribed] must be one of true, false, 0 or 1.",'Value of "Subscribed to emails" must be "true" or "false"').replace("Validation (isEmail) failed for email","Invalid email address").replace(/No such customer:[^,]*/,"Could not find Stripe customer")}var Ye={exports:{}};var qa=Ye.exports,Tt;function Qa(){return Tt||(Tt=1,(function(t,s){((r,a)=>{t.exports=a()})(qa,function r(){var a=typeof self<"u"?self:typeof window<"u"?window:a!==void 0?a:{},i,o=!a.document&&!!a.postMessage,f=a.IS_PAPA_WORKER||!1,u={},c=0,m={};function b(n){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine="",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},(function(l){var p=j(l);p.chunkSize=parseInt(p.chunkSize),l.step||l.chunk||(p.chunkSize=null),this._handle=new C(p),(this._handle.streamer=this)._config=p}).call(this,n),this.parseChunk=function(l,p){var g=parseInt(this._config.skipFirstNLines)||0;if(this.isFirstChunk&&0<g){let I=this._config.newline;I||(x=this._config.quoteChar||'"',I=this._handle.guessLineEndings(l,x)),l=[...l.split(I).slice(g)].join(I)}this.isFirstChunk&&w(this._config.beforeFirstChunk)&&(x=this._config.beforeFirstChunk(l))!==void 0&&(l=x),this.isFirstChunk=!1,this._halted=!1;var g=this._partialLine+l,x=(this._partialLine="",this._handle.parse(g,this._baseIndex,!this._finished));if(!this._handle.paused()&&!this._handle.aborted()){if(l=x.meta.cursor,g=(this._finished||(this._partialLine=g.substring(l-this._baseIndex),this._baseIndex=l),x&&x.data&&(this._rowCount+=x.data.length),this._finished||this._config.preview&&this._rowCount>=this._config.preview),f)a.postMessage({results:x,workerId:m.WORKER_ID,finished:g});else if(w(this._config.chunk)&&!p){if(this._config.chunk(x,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);this._completeResults=x=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(x.data),this._completeResults.errors=this._completeResults.errors.concat(x.errors),this._completeResults.meta=x.meta),this._completed||!g||!w(this._config.complete)||x&&x.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),g||x&&x.meta.paused||this._nextChunk(),x}this._halted=!0},this._sendError=function(l){w(this._config.error)?this._config.error(l):f&&this._config.error&&a.postMessage({workerId:m.WORKER_ID,error:l,finished:!1})}}function E(n){var l;(n=n||{}).chunkSize||(n.chunkSize=m.RemoteChunkSize),b.call(this,n),this._nextChunk=o?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(p){this._input=p,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(l=new XMLHttpRequest,this._config.withCredentials&&(l.withCredentials=this._config.withCredentials),o||(l.onload=_(this._chunkLoaded,this),l.onerror=_(this._chunkError,this)),l.open(this._config.downloadRequestBody?"POST":"GET",this._input,!o),this._config.downloadRequestHeaders){var p,g=this._config.downloadRequestHeaders;for(p in g)l.setRequestHeader(p,g[p])}var x;this._config.chunkSize&&(x=this._start+this._config.chunkSize-1,l.setRequestHeader("Range","bytes="+this._start+"-"+x));try{l.send(this._config.downloadRequestBody)}catch(I){this._chunkError(I.message)}o&&l.status===0&&this._chunkError()}},this._chunkLoaded=function(){l.readyState===4&&(l.status<200||400<=l.status?this._chunkError():(this._start+=this._config.chunkSize||l.responseText.length,this._finished=!this._config.chunkSize||this._start>=(p=>(p=p.getResponseHeader("Content-Range"))!==null?parseInt(p.substring(p.lastIndexOf("/")+1)):-1)(l),this.parseChunk(l.responseText)))},this._chunkError=function(p){p=l.statusText||p,this._sendError(new Error(p))}}function v(n){(n=n||{}).chunkSize||(n.chunkSize=m.LocalChunkSize),b.call(this,n);var l,p,g=typeof FileReader<"u";this.stream=function(x){this._input=x,p=x.slice||x.webkitSlice||x.mozSlice,g?((l=new FileReader).onload=_(this._chunkLoaded,this),l.onerror=_(this._chunkError,this)):l=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount<this._config.preview)||this._readChunk()},this._readChunk=function(){var x=this._input,I=(this._config.chunkSize&&(I=Math.min(this._start+this._config.chunkSize,this._input.size),x=p.call(x,this._start,I)),l.readAsText(x,this._config.encoding));g||this._chunkLoaded({target:{result:I}})},this._chunkLoaded=function(x){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(x.target.result)},this._chunkError=function(){this._sendError(l.error)}}function y(n){var l;b.call(this,n=n||{}),this.stream=function(p){return l=p,this._nextChunk()},this._nextChunk=function(){var p,g;if(!this._finished)return p=this._config.chunkSize,l=p?(g=l.substring(0,p),l.substring(p)):(g=l,""),this._finished=!l,this.parseChunk(g)}}function N(n){b.call(this,n=n||{});var l=[],p=!0,g=!1;this.pause=function(){b.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){b.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(x){this._input=x,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){g&&l.length===1&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),l.length?this.parseChunk(l.shift()):p=!0},this._streamData=_(function(x){try{l.push(typeof x=="string"?x:x.toString(this._config.encoding)),p&&(p=!1,this._checkIsFinished(),this.parseChunk(l.shift()))}catch(I){this._streamError(I)}},this),this._streamError=_(function(x){this._streamCleanUp(),this._sendError(x)},this),this._streamEnd=_(function(){this._streamCleanUp(),g=!0,this._streamData("")},this),this._streamCleanUp=_(function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)},this)}function C(n){var l,p,g,x,I=Math.pow(2,53),V=-I,ee=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,J=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,S=this,$=0,R=0,Y=!1,L=!1,F=[],O={data:[],errors:[],meta:{}};function B(T){return n.skipEmptyLines==="greedy"?T.join("").trim()==="":T.length===1&&T[0].length===0}function k(){if(O&&g&&(X("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+m.DefaultDelimiter+"'"),g=!1),n.skipEmptyLines&&(O.data=O.data.filter(function(U){return!B(U)})),H()){let U=function(re,ie){w(n.transformHeader)&&(re=n.transformHeader(re,ie)),F.push(re)};if(O)if(Array.isArray(O.data[0])){for(var T=0;H()&&T<O.data.length;T++)O.data[T].forEach(U);O.data.splice(0,1)}else O.data.forEach(U)}function W(U,re){for(var ie=n.header?{}:[],q=0;q<U.length;q++){var Q=q,K=U[q],K=((ue,G)=>(te=>(n.dynamicTypingFunction&&n.dynamicTyping[te]===void 0&&(n.dynamicTyping[te]=n.dynamicTypingFunction(te)),(n.dynamicTyping[te]||n.dynamicTyping)===!0))(ue)?G==="true"||G==="TRUE"||G!=="false"&&G!=="FALSE"&&((te=>{if(ee.test(te)&&(te=parseFloat(te),V<te&&te<I))return 1})(G)?parseFloat(G):J.test(G)?new Date(G):G===""?null:G):G)(Q=n.header?q>=F.length?"__parsed_extra":F[q]:Q,K=n.transform?n.transform(K,Q):K);Q==="__parsed_extra"?(ie[Q]=ie[Q]||[],ie[Q].push(K)):ie[Q]=K}return n.header&&(q>F.length?X("FieldMismatch","TooManyFields","Too many fields: expected "+F.length+" fields but parsed "+q,R+re):q<F.length&&X("FieldMismatch","TooFewFields","Too few fields: expected "+F.length+" fields but parsed "+q,R+re)),ie}var Z;O&&(n.header||n.dynamicTyping||n.transform)&&(Z=1,!O.data.length||Array.isArray(O.data[0])?(O.data=O.data.map(W),Z=O.data.length):O.data=W(O.data,0),n.header&&O.meta&&(O.meta.fields=F),R+=Z)}function H(){return n.header&&F.length===0}function X(T,W,Z,U){T={type:T,code:W,message:Z},U!==void 0&&(T.row=U),O.errors.push(T)}w(n.step)&&(x=n.step,n.step=function(T){O=T,H()?k():(k(),O.data.length!==0&&($+=T.data.length,n.preview&&$>n.preview?p.abort():(O.data=O.data[0],x(O,S))))}),this.parse=function(T,W,Z){var U=n.quoteChar||'"',U=(n.newline||(n.newline=this.guessLineEndings(T,U)),g=!1,n.delimiter?w(n.delimiter)&&(n.delimiter=n.delimiter(T),O.meta.delimiter=n.delimiter):((U=((re,ie,q,Q,K)=>{var ue,G,te,ye;K=K||[","," ","|",";",m.RECORD_SEP,m.UNIT_SEP];for(var Ne=0;Ne<K.length;Ne++){for(var pe,Ie=K[Ne],oe=0,fe=0,le=0,de=(te=void 0,new M({comments:Q,delimiter:Ie,newline:ie,preview:10}).parse(re)),ge=0;ge<de.data.length;ge++)q&&B(de.data[ge])?le++:(pe=de.data[ge].length,fe+=pe,te===void 0?te=pe:0<pe&&(oe+=Math.abs(pe-te),te=pe));0<de.data.length&&(fe/=de.data.length-le),(G===void 0||oe<=G)&&(ye===void 0||ye<fe)&&1.99<fe&&(G=oe,ue=Ie,ye=fe)}return{successful:!!(n.delimiter=ue),bestDelimiter:ue}})(T,n.newline,n.skipEmptyLines,n.comments,n.delimitersToGuess)).successful?n.delimiter=U.bestDelimiter:(g=!0,n.delimiter=m.DefaultDelimiter),O.meta.delimiter=n.delimiter),j(n));return n.preview&&n.header&&U.preview++,l=T,p=new M(U),O=p.parse(l,W,Z),k(),Y?{meta:{paused:!0}}:O||{meta:{paused:!1}}},this.paused=function(){return Y},this.pause=function(){Y=!0,p.abort(),l=w(n.chunk)?"":l.substring(p.getCharIndex())},this.resume=function(){S.streamer._halted?(Y=!1,S.streamer.parseChunk(l,!0)):setTimeout(S.resume,3)},this.aborted=function(){return L},this.abort=function(){L=!0,p.abort(),O.meta.aborted=!0,w(n.complete)&&n.complete(O),l=""},this.guessLineEndings=function(re,U){re=re.substring(0,1048576);var U=new RegExp(h(U)+"([^]*?)"+h(U),"gm"),Z=(re=re.replace(U,"")).split("\r"),U=re.split(`
2
2
  `),re=1<U.length&&U[0].length<Z[0].length;if(Z.length===1||re)return`
3
3
  `;for(var ie=0,q=0;q<Z.length;q++)Z[q][0]===`
4
4
  `&&ie++;return ie>=Z.length/2?`\r
5
- `:"\r"}}function f(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function M(n){var l=(n=n||{}).delimiter,p=n.newline,g=n.comments,x=n.step,I=n.preview,V=n.fastMode,ee=null,J=!1,S=n.quoteChar==null?'"':n.quoteChar,$=S;if(n.escapeChar!==void 0&&($=n.escapeChar),(typeof l!="string"||-1<m.BAD_DELIMITERS.indexOf(l))&&(l=","),g===l)throw new Error("Comment character same as delimiter");g===!0?g="#":(typeof g!="string"||-1<m.BAD_DELIMITERS.indexOf(g))&&(g=!1),p!==`
5
+ `:"\r"}}function h(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function M(n){var l=(n=n||{}).delimiter,p=n.newline,g=n.comments,x=n.step,I=n.preview,V=n.fastMode,ee=null,J=!1,S=n.quoteChar==null?'"':n.quoteChar,$=S;if(n.escapeChar!==void 0&&($=n.escapeChar),(typeof l!="string"||-1<m.BAD_DELIMITERS.indexOf(l))&&(l=","),g===l)throw new Error("Comment character same as delimiter");g===!0?g="#":(typeof g!="string"||-1<m.BAD_DELIMITERS.indexOf(g))&&(g=!1),p!==`
6
6
  `&&p!=="\r"&&p!==`\r
7
7
  `&&(p=`
8
- `);var R=0,Y=!1;this.parse=function(L,F,O){if(typeof L!="string")throw new Error("Input must be a string");var B=L.length,k=l.length,H=p.length,X=g.length,T=w(x),W=[],Z=[],U=[],re=R=0;if(!L)return oe();if(V||V!==!1&&L.indexOf(S)===-1){for(var ie=L.split(p),q=0;q<ie.length;q++){if(U=ie[q],R+=U.length,q!==ie.length-1)R+=p.length;else if(O)return oe();if(!g||U.substring(0,X)!==g){if(T){if(W=[],ye(U.split(l)),he(),Y)return oe()}else ye(U.split(l));if(I&&I<=q)return W=W.slice(0,I),oe(!0)}}return oe()}for(var Q=L.indexOf(l,R),K=L.indexOf(p,R),ue=new RegExp(f($)+f(S),"g"),G=L.indexOf(S,R);;)if(L[R]===S)for(G=R,R++;;){if((G=L.indexOf(S,G+1))===-1)return O||Z.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:W.length,index:R}),pe();if(G===B-1)return pe(L.substring(R,G).replace(ue,S));if(S===$&&L[G+1]===$)G++;else if(S===$||G===0||L[G-1]!==$){Q!==-1&&Q<G+1&&(Q=L.indexOf(l,G+1));var te=Ne((K=K!==-1&&K<G+1?L.indexOf(p,G+1):K)===-1?Q:Math.min(Q,K));if(L.substr(G+1+te,k)===l){U.push(L.substring(R,G).replace(ue,S)),L[R=G+1+te+k]!==S&&(G=L.indexOf(S,R)),Q=L.indexOf(l,R),K=L.indexOf(p,R);break}if(te=Ne(K),L.substring(G+1+te,G+1+te+H)===p){if(U.push(L.substring(R,G).replace(ue,S)),Ie(G+1+te+H),Q=L.indexOf(l,R),G=L.indexOf(S,R),T&&(he(),Y))return oe();if(I&&W.length>=I)return oe(!0);break}Z.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:W.length,index:R}),G++}}else if(g&&U.length===0&&L.substring(R,R+X)===g){if(K===-1)return oe();R=K+H,K=L.indexOf(p,R),Q=L.indexOf(l,R)}else if(Q!==-1&&(Q<K||K===-1))U.push(L.substring(R,Q)),R=Q+k,Q=L.indexOf(l,R);else{if(K===-1)break;if(U.push(L.substring(R,K)),Ie(K+H),T&&(he(),Y))return oe();if(I&&W.length>=I)return oe(!0)}return pe();function ye(le){W.push(le),re=R}function Ne(le){var de=0;return de=le!==-1&&(le=L.substring(G+1,le))&&le.trim()===""?le.length:de}function pe(le){return O||(le===void 0&&(le=L.substring(R)),U.push(le),R=B,ye(U),T&&he()),oe()}function Ie(le){R=le,ye(U),U=[],K=L.indexOf(p,R)}function oe(le){if(n.header&&!F&&W.length&&!J){var de=W[0],ge=Object.create(null),rt=new Set(de);let Ct=!1;for(let Ce=0;Ce<de.length;Ce++){let fe=de[Ce];if(ge[fe=w(n.transformHeader)?n.transformHeader(fe,Ce):fe]){let Oe,kt=ge[fe];for(;Oe=fe+"_"+kt,kt++,rt.has(Oe););rt.add(Oe),de[Ce]=Oe,ge[fe]++,Ct=!0,(ee=ee===null?{}:ee)[Oe]=fe}else ge[fe]=1,de[Ce]=fe;rt.add(fe)}Ct&&console.warn("Duplicate headers found and renamed."),J=!0}return{data:W,errors:Z,meta:{delimiter:l,linebreak:p,aborted:Y,truncated:!!le,cursor:re+(F||0),renamedHeaders:ee}}}function he(){x(oe()),W=[],Z=[]}},this.abort=function(){Y=!0},this.getCharIndex=function(){return R}}function A(n){var l=n.data,p=u[l.workerId],g=!1;if(l.error)p.userError(l.error,l.file);else if(l.results&&l.results.data){var x={abort:function(){g=!0,P(l.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:D,resume:D};if(w(p.userStep)){for(var I=0;I<l.results.data.length&&(p.userStep({data:l.results.data[I],errors:l.results.errors,meta:l.results.meta},x),!g);I++);delete l.results}else w(p.userChunk)&&(p.userChunk(l.results,x,l.file),delete l.results)}l.finished&&!g&&P(l.workerId,l.results)}function P(n,l){var p=u[n];w(p.userComplete)&&p.userComplete(l),p.terminate(),delete u[n]}function D(){throw new Error("Not implemented.")}function j(n){if(typeof n!="object"||n===null)return n;var l,p=Array.isArray(n)?[]:{};for(l in n)p[l]=j(n[l]);return p}function _(n,l){return function(){n.apply(l,arguments)}}function w(n){return typeof n=="function"}return m.parse=function(n,l){var p=(l=l||{}).dynamicTyping||!1;if(w(p)&&(l.dynamicTypingFunction=p,p={}),l.dynamicTyping=p,l.transform=!!w(l.transform)&&l.transform,!l.worker||!m.WORKERS_SUPPORTED)return p=null,m.NODE_STREAM_INPUT,typeof n=="string"?(n=(g=>g.charCodeAt(0)!==65279?g:g.slice(1))(n),p=new(l.download?E:y)(l)):n.readable===!0&&w(n.read)&&w(n.on)?p=new N(l):(a.File&&n instanceof File||n instanceof Object)&&(p=new v(l)),p.stream(n);(p=(()=>{var g;return!!m.WORKERS_SUPPORTED&&(g=(()=>{var x=a.URL||a.webkitURL||null,I=r.toString();return m.BLOB_URL||(m.BLOB_URL=x.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",I,")();"],{type:"text/javascript"})))})(),(g=new a.Worker(g)).onmessage=A,g.id=c++,u[g.id]=g)})()).userStep=l.step,p.userChunk=l.chunk,p.userComplete=l.complete,p.userError=l.error,l.step=w(l.step),l.chunk=w(l.chunk),l.complete=w(l.complete),l.error=w(l.error),delete l.worker,p.postMessage({input:n,config:l,workerId:p.id})},m.unparse=function(n,l){var p=!1,g=!0,x=",",I=`\r
9
- `,V='"',ee=V+V,J=!1,S=null,$=!1,R=((()=>{if(typeof l=="object"){if(typeof l.delimiter!="string"||m.BAD_DELIMITERS.filter(function(F){return l.delimiter.indexOf(F)!==-1}).length||(x=l.delimiter),typeof l.quotes!="boolean"&&typeof l.quotes!="function"&&!Array.isArray(l.quotes)||(p=l.quotes),typeof l.skipEmptyLines!="boolean"&&typeof l.skipEmptyLines!="string"||(J=l.skipEmptyLines),typeof l.newline=="string"&&(I=l.newline),typeof l.quoteChar=="string"&&(V=l.quoteChar),typeof l.header=="boolean"&&(g=l.header),Array.isArray(l.columns)){if(l.columns.length===0)throw new Error("Option columns is empty");S=l.columns}l.escapeChar!==void 0&&(ee=l.escapeChar+V),l.escapeFormulae instanceof RegExp?$=l.escapeFormulae:typeof l.escapeFormulae=="boolean"&&l.escapeFormulae&&($=/^[=+\-@\t\r].*$/)}})(),new RegExp(f(V),"g"));if(typeof n=="string"&&(n=JSON.parse(n)),Array.isArray(n)){if(!n.length||Array.isArray(n[0]))return Y(null,n,J);if(typeof n[0]=="object")return Y(S||Object.keys(n[0]),n,J)}else if(typeof n=="object")return typeof n.data=="string"&&(n.data=JSON.parse(n.data)),Array.isArray(n.data)&&(n.fields||(n.fields=n.meta&&n.meta.fields||S),n.fields||(n.fields=Array.isArray(n.data[0])?n.fields:typeof n.data[0]=="object"?Object.keys(n.data[0]):[]),Array.isArray(n.data[0])||typeof n.data[0]=="object"||(n.data=[n.data])),Y(n.fields||[],n.data||[],J);throw new Error("Unable to serialize unrecognized input");function Y(F,O,B){var k="",H=(typeof F=="string"&&(F=JSON.parse(F)),typeof O=="string"&&(O=JSON.parse(O)),Array.isArray(F)&&0<F.length),X=!Array.isArray(O[0]);if(H&&g){for(var T=0;T<F.length;T++)0<T&&(k+=x),k+=L(F[T],T);0<O.length&&(k+=I)}for(var W=0;W<O.length;W++){var Z=(H?F:O[W]).length,U=!1,re=H?Object.keys(O[W]).length===0:O[W].length===0;if(B&&!H&&(U=B==="greedy"?O[W].join("").trim()==="":O[W].length===1&&O[W][0].length===0),B==="greedy"&&H){for(var ie=[],q=0;q<Z;q++){var Q=X?F[q]:q;ie.push(O[W][Q])}U=ie.join("").trim()===""}if(!U){for(var K=0;K<Z;K++){0<K&&!re&&(k+=x);var ue=H&&X?F[K]:K;k+=L(O[W][ue],K)}W<O.length-1&&(!B||0<Z&&!re)&&(k+=I)}}return k}function L(F,O){var B,k;return F==null?"":F.constructor===Date?JSON.stringify(F).slice(1,25):(k=!1,$&&typeof F=="string"&&$.test(F)&&(F="'"+F,k=!0),B=F.toString().replace(R,ee),(k=k||p===!0||typeof p=="function"&&p(F,O)||Array.isArray(p)&&p[O]||((H,X)=>{for(var T=0;T<X.length;T++)if(-1<H.indexOf(X[T]))return!0;return!1})(B,m.BAD_DELIMITERS)||-1<B.indexOf(x)||B.charAt(0)===" "||B.charAt(B.length-1)===" ")?V+B+V:B)}},m.RECORD_SEP="",m.UNIT_SEP="",m.BYTE_ORDER_MARK="\uFEFF",m.BAD_DELIMITERS=["\r",`
10
- `,'"',m.BYTE_ORDER_MARK],m.WORKERS_SUPPORTED=!o&&!!a.Worker,m.NODE_STREAM_INPUT=1,m.LocalChunkSize=10485760,m.RemoteChunkSize=5242880,m.DefaultDelimiter=",",m.Parser=M,m.ParserHandle=C,m.NetworkStreamer=E,m.FileStreamer=v,m.StringStreamer=y,m.ReadableStreamStreamer=N,a.jQuery&&((i=a.jQuery).fn.parse=function(n){var l=n.config||{},p=[];return this.each(function(I){if(!(i(this).prop("tagName").toUpperCase()==="INPUT"&&i(this).attr("type").toLowerCase()==="file"&&a.FileReader)||!this.files||this.files.length===0)return!0;for(var V=0;V<this.files.length;V++)p.push({file:this.files[V],inputElem:this,instanceConfig:i.extend({},l)})}),g(),this;function g(){if(p.length===0)w(n.complete)&&n.complete();else{var I,V,ee,J,S=p[0];if(w(n.before)){var $=n.before(S.file,S.inputElem);if(typeof $=="object"){if($.action==="abort")return I="AbortError",V=S.file,ee=S.inputElem,J=$.reason,void(w(n.error)&&n.error({name:I},V,ee,J));if($.action==="skip")return void x();typeof $.config=="object"&&(S.instanceConfig=i.extend(S.instanceConfig,$.config))}else if($==="skip")return void x()}var R=S.instanceConfig.complete;S.instanceConfig.complete=function(Y){w(R)&&R(Y,S.file,S.inputElem),x()},m.parse(S.file,S.instanceConfig)}}function x(){p.splice(0,1),g()}}),h&&(a.onmessage=function(n){n=n.data,m.WORKER_ID===void 0&&n&&(m.WORKER_ID=n.workerId),typeof n.input=="string"?a.postMessage({workerId:m.WORKER_ID,results:m.parse(n.input,n.config),finished:!0}):(a.File&&n.input instanceof File||n.input instanceof Object)&&(n=m.parse(n.input,n.config))&&a.postMessage({workerId:m.WORKER_ID,results:n,finished:!0})}),(E.prototype=Object.create(b.prototype)).constructor=E,(v.prototype=Object.create(b.prototype)).constructor=v,(y.prototype=Object.create(y.prototype)).constructor=y,(N.prototype=Object.create(b.prototype)).constructor=N,m})})(Ye)),Ye.exports}var Ja=Qa();const Cs=Ws(Ja);function Xa(t){const s=Cs.parse(t,{header:!0,skipEmptyLines:!0});return!s.data||s.data.length<1?[]:s.data.map(r=>{const a={};for(const[i,o]of Object.entries(r))a[i]=typeof o=="string"?o:o==null?"":String(o);return a})}function Za(t){return t.length===0?"":Cs.unparse(t,{quotes:!0})}function en(t){const s=t.meta.stats.imported,r=t.meta.stats.invalid||[],a=r.length,i={},o=r.map(E=>{const v=Ya(E.error);return v.split(",").forEach(y=>{const N=y.trim();i[N]?i[N].count+=1:i[N]={message:N,count:1}}),{...E,error:v}}),h=Za(o),u=new Blob([h],{type:"text/csv"}),c=URL.createObjectURL(u),m=t.meta.import_label,b=m?`${m.name} - Errors.csv`:`Import ${Pe().format("YYYY-MM-DD HH:mm")} - Errors.csv`;return{importedCount:s,errorCount:a,errorCsvUrl:c,errorCsvName:b,errorList:Object.values(i),importLabel:t.meta.import_label}}const ks=()=>({status:"INIT",file:null,fileData:null,mapping:null,selectedLabelSlugs:[],dataPreviewIndex:0,mappingError:null,showMappingErrors:!1,importResponse:null,errorMessage:null,errorHeader:"Import error",showTryAgainButton:!0,dragOver:!1,fileError:null});function tn(t,s){switch(s.type){case"SELECT_FILE":return{...t,status:"MAPPING",file:s.file,fileData:null,mapping:null,dataPreviewIndex:0,mappingError:null,showMappingErrors:!1,fileError:null};case"SET_FILE_ERROR":return{...t,fileError:s.fileError};case"PARSE_SUCCESS":return{...t,fileData:s.fileData,mapping:s.mapping,mappingError:s.mappingError};case"PARSE_FAILURE":return{...t,fileData:[],mapping:null,mappingError:s.mappingError};case"UPDATE_MAPPING":return{...t,mapping:s.mapping,mappingError:s.mappingError};case"SET_SELECTED_LABEL_SLUGS":return{...t,selectedLabelSlugs:s.selectedLabelSlugs};case"SET_DATA_PREVIEW_INDEX":return{...t,dataPreviewIndex:s.dataPreviewIndex};case"SET_SHOW_MAPPING_ERRORS":return{...t,showMappingErrors:s.showMappingErrors};case"SET_DRAG_OVER":return{...t,dragOver:s.dragOver};case"UPLOAD_START":return{...t,status:"UPLOADING",showMappingErrors:!1};case"UPLOAD_ACCEPTED":return{...t,status:"PROCESSING"};case"UPLOAD_COMPLETE":return{...t,status:"COMPLETE",importResponse:s.importResponse};case"UPLOAD_ERROR":return{...t,status:"ERROR",errorMessage:s.errorMessage,errorHeader:s.errorHeader??"Import error",showTryAgainButton:s.showTryAgainButton??!0};case"RESET":return ks();default:return t}}function sn({open:t,onOpenChange:s,onComplete:r,onClose:a}){const[i,o]=d.useReducer(tn,void 0,ks),h=d.useRef(null),{data:u}=bt(),c=u?.config?.labs?.importMemberTier===!0,m=u?.config?.labs?.giftSubscriptions===!0,b=d.useMemo(()=>Va({importMemberTier:c,giftSubscriptionsEnabled:m}),[c,m]),E=tt({selectedSlugs:i.selectedLabelSlugs,onSelectionChange:n=>o({type:"SET_SELECTED_LABEL_SLUGS",selectedLabelSlugs:n})}),v=d.useCallback(()=>{h.current&&typeof URL.revokeObjectURL=="function"?(URL.revokeObjectURL(h.current),h.current=null):h.current&&(h.current=null)},[]),y=d.useCallback(()=>{v(),o({type:"RESET"})},[v]);d.useEffect(()=>()=>{v()},[v]);const N=d.useCallback(n=>{if(!(!n&&i.status==="UPLOADING")){if(!n){const l=i.importResponse??void 0;y(),a?.(l)}s(n)}},[a,s,y,i.importResponse,i.status]);d.useEffect(()=>{if(!i.file)return;let n=!1;const l=new FileReader;return l.onload=p=>{if(!n)try{const g=p.target?.result,x=Xa(g);if(x.length>0){const I=Ka(x,{importMemberTier:c,giftSubscriptionsEnabled:m}),V=new jt(I);o({type:"PARSE_SUCCESS",fileData:x,mapping:V,mappingError:V.getKeyByValue("email")?null:'Please map "Email" to one of the fields in the CSV.'})}else o({type:"PARSE_SUCCESS",fileData:[],mapping:null,mappingError:"File is empty, nothing to import. Please select a different file."})}catch{o({type:"PARSE_FAILURE",mappingError:"Failed to parse this file. Please try another CSV file."})}},l.onerror=()=>{n||o({type:"PARSE_FAILURE",mappingError:`Failed to read file${l.error?.message?`: ${l.error.message}`:""}`})},l.onabort=()=>{n||o({type:"PARSE_FAILURE",mappingError:"File read was interrupted. Please try again."})},l.readAsText(i.file),()=>{n=!0,l.readyState===FileReader.LOADING&&l.abort()}},[c,m,i.file]);const C=d.useCallback(n=>{const p=/(?:\.([^.]+))?$/.exec(n.name)?.[1];return!p||p.toLowerCase()!=="csv"?(o({type:"SET_FILE_ERROR",fileError:"The file type you uploaded is not supported"}),!1):(o({type:"SET_FILE_ERROR",fileError:null}),!0)},[]),f=d.useCallback(n=>{C(n)&&o({type:"SELECT_FILE",file:n})},[C]),M=d.useCallback((n,l)=>{if(!i.mapping)return;const p=i.mapping.updateMapping(n,l),g=i.fileData&&i.fileData.length===0?"File is empty, nothing to import. Please select a different file.":p.getKeyByValue("email")?null:'Please map "Email" to one of the fields in the CSV.';o({type:"UPDATE_MAPPING",mapping:p,mappingError:g})},[i.fileData,i.mapping]),A=d.useCallback(async()=>{if(!i.file||i.mappingError){o({type:"SET_SHOW_MAPPING_ERRORS",showMappingErrors:!0});return}o({type:"UPLOAD_START"});const n=new FormData;n.append("membersfile",i.file);for(const l of i.selectedLabelSlugs){const p=E.labels.find(g=>g.slug===l);p&&n.append("labels",p.name)}if(i.mapping){const l=i.mapping.toJSON();for(const[p,g]of Object.entries(l))g&&n.append(`mapping[${p}]`,g)}try{const{apiRoot:l}=Gs(),p=await fetch(`${l}/members/upload/`,{method:"POST",body:n,credentials:"include",mode:"cors",headers:{"app-pragma":"no-cache"}});if(p.status===202){o({type:"UPLOAD_ACCEPTED"}),r?.();return}if(p.status===413){o({type:"UPLOAD_ERROR",errorMessage:"The file you uploaded was larger than the maximum file size your server allows."});return}if(!p.ok){const V=(await p.json())?.errors?.[0];if(V?.type==="HostLimitError"&&V?.code==="EMAIL_VERIFICATION_NEEDED"){o({type:"UPLOAD_ERROR",errorMessage:V.message,errorHeader:"Woah there cowboy, that's a big list",showTryAgainButton:!1}),r?.();return}if(V?.type==="DataImportError"||V?.type==="ValidationError"){o({type:"UPLOAD_ERROR",errorMessage:V.message});return}o({type:"UPLOAD_ERROR",errorMessage:"An unexpected error occurred, please try again"});return}const g=await p.json(),x=en(g);v(),h.current=x.errorCsvUrl,o({type:"UPLOAD_COMPLETE",importResponse:x}),r?.(x)}catch{o({type:"UPLOAD_ERROR",errorMessage:"An unexpected error occurred, please try again"})}},[i.file,i.mapping,i.mappingError,i.selectedLabelSlugs,E.labels,v,r]),P=i.fileData?!!i.fileData[i.dataPreviewIndex+1]:!1,D=i.dataPreviewIndex>0,j=i.fileData?.length??0,_=i.status==="MAPPING"||i.status==="UPLOADING",w=d.useMemo(()=>{switch(i.status){case"PROCESSING":return"Import in progress";case"COMPLETE":return"Import complete";case"ERROR":return i.errorHeader;default:return"Import members"}},[i.errorHeader,i.status]);return e.jsx(Te,{open:t,onOpenChange:N,children:e.jsxs(Fe,{className:ae("gap-0",_&&"max-w-2xl"),children:[e.jsxs(Ue,{children:[e.jsx(Be,{children:w}),e.jsx(Ks,{className:"sr-only",children:"Import members from a CSV file."})]}),i.status==="INIT"&&e.jsx(Aa,{fileError:i.fileError,onClose:()=>N(!1),onDropAccepted:f,onDropRejected:()=>o({type:"SET_FILE_ERROR",fileError:"The file type you uploaded is not supported"})}),(i.status==="MAPPING"||i.status==="UPLOADING")&&e.jsx(Pa,{dataPreviewIndex:i.dataPreviewIndex,fieldMappings:b,fileData:i.fileData,hasNextRecord:P,hasPrevRecord:D,labelPicker:E,mapping:i.mapping,mappingError:i.mappingError,membersCount:j,showMappingErrors:i.showMappingErrors,status:i.status,onDataPreviewIndexChange:n=>{o({type:"SET_DATA_PREVIEW_INDEX",dataPreviewIndex:n})},onStartOver:y,onUpdateMapping:M,onUpload:A}),i.status==="PROCESSING"&&e.jsx(Ta,{onClose:()=>N(!1),onUploadAnotherFile:y}),i.status==="COMPLETE"&&i.importResponse&&e.jsx(Fa,{importResponse:i.importResponse,onClose:()=>N(!1),onReset:y}),i.status==="ERROR"&&e.jsx(Ua,{errorMessage:i.errorMessage,showTryAgainButton:i.showTryAgainButton,onClose:()=>N(!1),onTryAgain:y})]})})}const Ft=["is","contains","does-not-contain","starts-with","ends-with"],lt=["is","is-greater","is-less"],xe=["is","is-not"],ot=["is-any","is-not-any"],rn=[{value:"active",label:"Active"},{value:"trialing",label:"Trialing"},{value:"canceled",label:"Canceled"},{value:"unpaid",label:"Unpaid"},{value:"past_due",label:"Past Due"},{value:"incomplete",label:"Incomplete"},{value:"incomplete_expired",label:"Incomplete - Expired"}],an={parse(){return null},serialize(t){const s=t.values[0];return t.operator!=="is"&&t.operator!=="is-not"?null:s==="email-disabled"?t.operator==="is"?["(email_disabled:1)"]:["(email_disabled:0)"]:s==="subscribed"?t.operator==="is"?["(subscribed:true+email_disabled:0)"]:["(subscribed:false,email_disabled:1)"]:s==="unsubscribed"?t.operator==="is"?["(subscribed:false+email_disabled:0)"]:["(subscribed:true,email_disabled:1)"]:null}},nn={parse(){return null},serialize(t,s){const r=s.params.slug,a=t.values[0];return!r||t.operator!=="is"?null:a==="subscribed"?[`(newsletters.slug:${r}+email_disabled:0)`]:a==="unsubscribed"?[`(newsletters.slug:-${r},email_disabled:1)`]:null}},ln={parse(){return null},serialize(t){const s=t.values[0];return typeof s!="string"||!s||t.operator!=="1"&&t.operator!=="0"?null:[`(feedback.post_id:${wt(s)}+feedback.score:${t.operator})`]}},Ee=vr({name:{operators:Ft,ui:{label:"Name",type:"text",placeholder:"Enter name...",defaultOperator:"contains",className:"w-48"},codec:Dt()},email:{operators:Ft,ui:{label:"Email",type:"text",placeholder:"Enter email...",defaultOperator:"contains",className:"w-48"},codec:Dt()},label:{operators:ot,ui:{label:"Label",type:"multiselect",searchable:!0,className:"w-64",defaultOperator:"is-any"},metadata:{activeColumn:{key:"labels",label:"Labels",include:"labels"}},codec:at()},subscribed:{operators:xe,ui:{label:"Newsletter subscription",type:"select",searchable:!1},options:[{value:"subscribed",label:"Subscribed"},{value:"unsubscribed",label:"Unsubscribed"},{value:"email-disabled",label:"Email disabled"}],codec:an},last_seen_at:{operators:He,ui:{label:"Last seen",type:"date",defaultOperator:Ve},codec:We()},created_at:{operators:He,ui:{label:"Created",type:"date",defaultOperator:Ve},codec:We()},signup:{operators:xe,ui:{label:"Signed up on post/page",type:"select",searchable:!0,placeholder:"Select a post or page...",className:"w-64"},codec:we({quoteStrings:!0})},"newsletters.:slug":{operators:["is"],ui:{label:"Newsletter",type:"select",searchable:!1,hideOperatorSelect:!0},options:[{value:"subscribed",label:"Subscribed"},{value:"unsubscribed",label:"Unsubscribed"}],codec:nn},tier_id:{operators:ot,ui:{label:"Membership tier",type:"multiselect",searchable:!0,className:"w-64",defaultOperator:"is-any"},metadata:{activeColumn:{key:"tiers",label:"Tiers",include:"tiers"}},codec:at()},status:{operators:xe,ui:{label:"Member status",type:"select",searchable:!1},options:[{value:"paid",label:"Paid"},{value:"free",label:"Free"},{value:"comped",label:"Complimentary"}],codec:we()},"subscriptions.plan_interval":{operators:xe,ui:{label:"Billing period",type:"select",searchable:!1},options:[{value:"month",label:"Monthly"},{value:"year",label:"Yearly"}],metadata:{activeColumn:{key:"subscriptions.plan_interval",label:"Billing period",include:"subscriptions"}},codec:we()},"subscriptions.status":{operators:xe,ui:{label:"Stripe subscription status",type:"select",searchable:!1},options:rn,metadata:{activeColumn:{key:"subscriptions.status",label:"Subscription status",include:"subscriptions"}},codec:we()},"subscriptions.start_date":{operators:He,ui:{label:"Paid start date",type:"date",defaultOperator:Ve},metadata:{activeColumn:{key:"subscriptions.start_date",label:"Paid start date",include:"subscriptions"}},codec:We()},"subscriptions.current_period_end":{operators:He,ui:{label:"Next billing date",type:"date",defaultOperator:Ve},metadata:{activeColumn:{key:"subscriptions.current_period_end",label:"Next billing date",include:"subscriptions"}},codec:We()},conversion:{operators:xe,ui:{label:"Subscription started on post/page",type:"select",searchable:!0,placeholder:"Select a post or page...",className:"w-64"},codec:we({quoteStrings:!0})},email_count:{operators:lt,ui:{label:"Emails sent (all time)",type:"number",defaultOperator:"is-greater",min:0,className:"w-24"},codec:nt()},email_opened_count:{operators:lt,ui:{label:"Emails opened (all time)",type:"number",defaultOperator:"is-greater",min:0,className:"w-24"},codec:nt()},email_open_rate:{operators:lt,ui:{label:"Open rate (all time)",type:"number",defaultOperator:"is-greater",min:0,max:100,suffix:"%",className:"w-24"},codec:nt()},"emails.post_id":{operators:xe,ui:{label:"Sent email",type:"select",searchable:!0,placeholder:"Select an email...",className:"w-64"},codec:we({quoteStrings:!0})},"opened_emails.post_id":{operators:xe,ui:{label:"Opened email",type:"select",searchable:!0,placeholder:"Select an email...",className:"w-64"},codec:we({quoteStrings:!0})},"clicked_links.post_id":{operators:xe,ui:{label:"Clicked email",type:"select",searchable:!0,placeholder:"Select an email...",className:"w-64"},codec:we({quoteStrings:!0})},newsletter_feedback:{operators:["1","0"],ui:{label:"Responded with feedback",type:"select",searchable:!0,placeholder:"Select an email...",className:"w-64",defaultOperator:"1"},codec:ln},offer_redemptions:{operators:ot,ui:{label:"Offer",type:"multiselect",searchable:!0,className:"w-64",defaultOperator:"is-any"},metadata:{activeColumn:{key:"offer_redemptions",label:"Offer"}},codec:at({quoteStrings:!0,serializeSingletonAsScalar:!0})}}),on=2,Ut=new Set(["active","trialing","unpaid","past_due"]);function Ls(t){const s=new Map;for(const r of t){const a=yr(Ee,r.field,"UTC")?.definition.metadata?.activeColumn;a&&s.set(a.key,a)}return Array.from(s.values()).slice(0,on)}function cn(t){const s=new Set(["labels","tiers"]);for(const r of Ls(t))r.include&&s.add(r.include);return Array.from(s).join(",")}function dn({filters:t,nql:s,search:r}){if(!s&&!r)return;const a={include:cn(t),limit:"100",order:"created_at desc"};return s&&(a.filter=s),r&&(a.search=r),a}function un({nql:t,search:s}){return!t&&!s?{all:!0}:{...t?{filter:t}:{},...s?{search:s}:{}}}function Ge(t){if(!t?.length)return null;const s=t.filter(a=>a.id);return s.length?[...s].sort((a,i)=>{const o=Ut.has(a.status),h=Ut.has(i.status);if(o&&!h)return-1;if(!o&&h)return 1;const u=new Date(a.current_period_end).getTime(),c=new Date(i.current_period_end).getTime();return Number.isNaN(u)&&Number.isNaN(c)?0:Number.isNaN(u)?1:Number.isNaN(c)?-1:c-u})[0]:null}function Bt(t,s){return t?{text:Pe.tz(t,s).format("D MMM YYYY"),subtext:Pe(t).fromNow()}:null}function mn(t,s,r){switch(t.key){case"labels":return s.labels?.length?{text:s.labels.map(a=>a.name).join(", ")}:null;case"tiers":return s.tiers?.length?{text:s.tiers.map(a=>a.name).join(", ")}:null;case"subscriptions.plan_interval":{const a=Ge(s.subscriptions)?.plan?.interval;return a?{text:a==="month"?"Monthly":"Yearly"}:null}case"subscriptions.status":{const a=Ge(s.subscriptions)?.status;return a?{text:a.split("_").map(i=>i.charAt(0).toUpperCase()+i.slice(1)).join(" ")}:null}case"subscriptions.start_date":return Bt(Ge(s.subscriptions)?.start_date,r);case"subscriptions.current_period_end":return Bt(Ge(s.subscriptions)?.current_period_end,r);case"offer_redemptions":{const a=s.subscriptions?.map(i=>i.offer?.name).filter(Boolean);return a?.length?{text:a.join(", ")}:null}default:return null}}async function zt(t,s){const r=new URLSearchParams({limit:"all"});t&&r.set("filter",t),s&&r.set("search",s);const a=new Date().toJSON().substring(0,10);await tr(`/members/upload/?${r}`,`members.${a}.csv`)}const pn=({hasFilterOrSearch:t,memberCount:s,nql:r,search:a,canBulkDelete:i,onImportComplete:o})=>{const h=ls(),u=os(),c=h.pathname==="/members/import",m=h.search??"",b=h.pathname==="/members"?`${h.pathname}${m}`:"/members",E=`#/members/new?back=${encodeURIComponent(b)}`,[v,y]=d.useState(!1),[N,C]=d.useState(!1),[f,M]=d.useState(!1),[A,P]=d.useState(!1),{data:D,isLoading:j}=ys({searchParams:{filter:"status:-archived",limit:"50"}}),_=D?.newsletters||[],{mutateAsync:w,isLoading:n}=Ys(),{mutate:l,isLoading:p}=qs(),[g,x]=d.useState(!1),I=un({nql:r,search:a}),V=d.useCallback(async()=>{try{await zt(r,a)}catch(B){throw ce.error("Export failed",{description:"There was a problem downloading your member data. Please check your connection and try again."}),B}},[r,a]),ee=d.useCallback(async B=>{try{for(const k of B)await w({...I,action:{type:"addLabel",meta:{label:{id:k}}}});y(!1),ce.success(B.length>1?"Labels added successfully":"Label added successfully")}catch{ce.error("Failed to add label",{description:"There was a problem applying this label. Please try again."})}},[w,I]),J=d.useCallback(async B=>{try{for(const k of B)await w({...I,action:{type:"removeLabel",meta:{label:{id:k}}}});C(!1),ce.success(B.length>1?"Labels removed successfully":"Label removed successfully")}catch{ce.error("Failed to remove label",{description:"There was a problem removing this label. Please try again."})}},[w,I]),S=d.useCallback(async B=>{const k=I;if(B===null){try{await w({...k,action:{type:"unsubscribe"}}),M(!1),ce.success("Members unsubscribed successfully")}catch{ce.error("Failed to unsubscribe members",{description:"There was a problem unsubscribing these members. Please try again."})}return}x(!0);try{const H=await Promise.allSettled(B.map(W=>w({...k,action:{type:"unsubscribe",newsletter:W}}))),X=H.filter(W=>W.status==="fulfilled").length,T=H.length;M(!1),X===T?ce.success(`Unsubscribed from ${T} ${T===1?"newsletter":"newsletters"}`):X>0?ce.warning(`Unsubscribed from ${X} of ${T} newsletters`,{description:"Some newsletters could not be unsubscribed. Please try again."}):ce.error("Failed to unsubscribe members",{description:"There was a problem unsubscribing these members. Please try again."})}catch{ce.error("Failed to unsubscribe members",{description:"There was a problem unsubscribing these members. Please try again."})}finally{x(!1)}},[w,I]),$=d.useCallback(()=>{l(I,{onSuccess:()=>{P(!1),ce.success("Members deleted successfully")},onError:()=>{ce.error("Failed to delete members",{description:"There was a problem deleting these members. Please try again."})}})},[l,I]),R=d.useCallback(async()=>{try{await zt(r,a)}catch(B){throw ce.error("Export failed",{description:"There was a problem downloading your backup. Please check your connection and try again."}),B}},[r,a]),Y=d.useCallback(()=>{},[]),L=d.useCallback(()=>{u(`/members/import${m}`)},[m,u]),F=d.useCallback(B=>{o?.(B)},[o]),O=d.useCallback(B=>{if(B?.importLabel){u(Qr({filter:`label:[${B.importLabel.slug}]`}),{replace:!0});return}u(`/members${m}`,{replace:!0})},[m,u]);return e.jsxs(e.Fragment,{children:[e.jsxs(Qs,{children:[e.jsx(Js,{asChild:!0,children:e.jsx(z,{"data-testid":"members-actions",variant:"outline",children:e.jsx(Xs,{className:"size-4"})})}),e.jsxs(Zs,{align:"end",children:[e.jsxs(ke,{onClick:L,children:[e.jsx(xs,{className:"mr-2 size-4"}),"Import members"]}),s>0&&e.jsxs(e.Fragment,{children:[e.jsxs(ke,{onClick:V,children:[e.jsx(Or,{className:"mr-2 size-4"}),t?`Export ${s.toLocaleString()} members`:"Export all members"]}),e.jsx(Mt,{}),e.jsxs(ke,{onClick:()=>y(!0),children:[e.jsx(Jr,{className:"mr-2 size-4"}),"Add label to ",s.toLocaleString()," ",s===1?"member":"members"]}),e.jsxs(ke,{onClick:()=>C(!0),children:[e.jsx(cs,{className:"mr-2 size-4"}),"Remove label from ",s.toLocaleString()," ",s===1?"member":"members"]}),e.jsxs(ke,{disabled:j,onClick:()=>M(!0),children:[e.jsx(Dr,{className:"mr-2 size-4"}),"Unsubscribe ",s.toLocaleString()," ",s===1?"member":"members"]}),e.jsx(Mt,{}),e.jsxs(ke,{className:"text-destructive focus:text-destructive",disabled:!i,onClick:()=>P(!0),children:[e.jsx(er,{className:"mr-2 size-4"}),"Delete ",s.toLocaleString()," ",s===1?"member":"members"]})]})]})]}),e.jsx(z,{asChild:!0,children:e.jsxs("a",{"aria-label":"New member",className:"inline-flex items-center gap-2 font-bold",href:E,children:[e.jsx(ht,{className:"size-4"}),e.jsx("span",{className:"hidden sm:inline",children:"New member"})]})}),e.jsx(sn,{open:c,onClose:O,onComplete:F,onOpenChange:Y}),e.jsx(Ra,{isLoading:n,memberCount:s,open:v,onConfirm:ee,onOpenChange:y}),e.jsx(Ia,{isLoading:n,memberCount:s,nql:r,open:N,search:a,onConfirm:J,onOpenChange:C}),e.jsx(Oa,{isLoading:n||g,memberCount:s,newsletters:_,open:f,onConfirm:S,onOpenChange:M}),e.jsx(Da,{isLoading:p,memberCount:s,open:A,onConfirm:$,onExportBackup:R,onOpenChange:P})]})},Ms=({children:t,className:s,...r})=>e.jsx("section",{className:ae("size-full grow min-w-0 flex flex-col gap-6 p-4 lg:p-8",s),...r,children:t}),hn=({membershipsEnabled:t,onMemberCreated:s})=>{const{data:r,isLoading:a}=sr(),{mutateAsync:i,isLoading:o}=rr(),h=Ze(),u=os(),c=d.useCallback(async()=>{if(!(!r||o))try{await i({email:r.email,name:r.name}),ce.success("You've been added as a member"),await s?.()}catch(m){h(m)}},[i,r,h,o,s]);return t?e.jsx("div",{className:"flex h-full flex-col items-center justify-center px-4",children:e.jsx("div",{className:"flex max-w-lg flex-col items-center gap-3",children:e.jsx(ut,{actions:e.jsxs("div",{className:"flex flex-col items-center gap-3",children:[e.jsx(z,{disabled:o||a||!r,onClick:c,children:o?"Adding...":"Add yourself as a member to test"}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Have members already?"," ",e.jsx("a",{className:"font-medium text-foreground hover:underline",href:"#/members/new",children:"Add them manually"})," ","or"," ",e.jsx("button",{className:"font-medium text-foreground hover:underline",type:"button",onClick:()=>u("/members/import"),children:"import from CSV"})]})]}),description:"Use memberships to allow your readers to sign up and subscribe to your content.",title:"Start building your audience",children:e.jsx(dt,{})})})}):e.jsx("div",{className:"flex h-full flex-col items-center justify-center px-4",children:e.jsx(ut,{actions:e.jsx(z,{variant:"outline",asChild:!0,children:e.jsx("a",{href:"#/settings/members",children:"Membership settings"})}),description:"Adjust your membership settings to start adding members.",title:"Memberships have been disabled",children:e.jsx(dt,{})})})},fn=ar.extend({route:ir("members"),filter:nr(Rt(),Rt().nullable()).refine(t=>typeof t.filter=="string"&&t.filter.length>0)}),$t="A view with this name already exists",bn="Saved view could not be found for update",gn="Multiple saved views matched update target",xn="Saved view could not be found for delete",vn="Multiple saved views matched delete target";function yn(t){return fn.safeParse(t).success}function wn(t){const s=gt(t);return s.ok?{ok:!0,views:s.views.filter(yn)}:s}function _n(t,s){return{name:t.trim(),route:"members",filter:{filter:s}}}function Sn(t,s,r,a){const i=_n(s,r);if(a){const o=ds(t,a);if(o.length===0)throw new Error(bn);if(o.length>1)throw new Error(gn);const h=o[0];if(It(t,i,h))throw new Error($t);return t.map((u,c)=>c===h?i:u)}if(It(t,i))throw new Error($t);return[...t,i]}function jn(t,s){const r=ds(t,s);if(r.length===0)throw new Error(xn);if(r.length>1)throw new Error(vn);const a=r[0];return t.filter((i,o)=>o!==a)}const Rs="Cannot modify saved views because shared_views is invalid";function Et(t){return Se(t?.settings??null,"shared_views")??"[]"}function En(){const{data:t}=ze(),s=Ze(),r=Et(t),a=d.useRef(null),i=d.useMemo(()=>wn(r),[r]);return d.useEffect(()=>{i.ok||a.current===r||(a.current=r,s(i.error,{withToast:!1}))},[s,i,r]),i.ok?i.views:[]}function Nn(){const{data:t}=ze(),{mutateAsync:s}=us(),r=Ze();return d.useCallback(async(a,i,o)=>{const h=gt(Et(t));if(!h.ok){const c=new Error(Rs,{cause:h.error});throw r(c,{withToast:!1}),c}const u=Sn(h.views,a,i,o);try{await s([{key:"shared_views",value:JSON.stringify(u)}])}catch(c){throw r(c,{withToast:!1}),c}},[t,s,r])}function Cn(){const{data:t}=ze(),{mutateAsync:s}=us(),r=Ze();return d.useCallback(async a=>{const i=gt(Et(t));if(!i.ok){const h=new Error(Rs,{cause:i.error});throw r(h,{withToast:!1}),h}const o=jn(i.views,a);try{await s([{key:"shared_views",value:JSON.stringify(o)}])}catch(h){throw r(h,{withToast:!1}),h}},[t,s,r])}function kn(t,s){return d.useMemo(()=>!s||t.length===0?null:t.find(r=>r.filter.filter===s)??null,[t,s])}const Ln=({filter:t,existingViews:s,activeView:r,onDeleted:a,onClose:i})=>{const[o,h]=d.useState(()=>r?.name??""),[u,c]=d.useState(""),[m,b]=d.useState(!1),[E,v]=d.useState(!1),[y,N]=d.useState(!1),C=Nn(),f=Cn(),M=!!r,A=async()=>{const j=o.trim();if(!j){c("Please enter a name");return}if(!M&&s.find(w=>w.name.trim().toLowerCase()===j.toLowerCase())){c("A view with this name already exists");return}b(!0);try{await C(j,t,r??void 0),i()}catch(_){c(_ instanceof Error?_.message:"Failed to save view")}finally{b(!1)}},P=async()=>{if(r){v(!0);try{await f(r),i(),a?.()}catch(j){c(j instanceof Error?j.message:"Failed to delete view")}finally{v(!1)}}},D=j=>{j.key==="Enter"&&(j.preventDefault(),A())};return e.jsx(ns,{align:"end",className:"w-72",children:e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsx("h3",{className:"text-sm font-semibold",children:M?"Edit view":"Save view"}),e.jsxs("div",{className:"flex flex-col gap-1.5",children:[e.jsx(ts,{placeholder:"View name",value:o,autoFocus:!0,onChange:j=>{h(j.target.value),u&&c("")},onKeyDown:D}),u&&e.jsx("p",{className:"text-xs text-red-500",children:u})]}),M?y?e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Delete view?"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(z,{size:"sm",variant:"outline",onClick:()=>N(!1),children:"Cancel"}),e.jsx(z,{disabled:E,size:"sm",variant:"destructive",onClick:()=>{P()},children:E?"Deleting...":"Delete"})]})]}):e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(z,{className:"text-red hover:bg-red/5 hover:text-red",size:"sm",variant:"ghost",onClick:()=>N(!0),children:"Delete"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(z,{size:"sm",variant:"outline",onClick:i,children:"Cancel"}),e.jsx(z,{disabled:m||!o.trim(),size:"sm",onClick:()=>{A()},children:m?"Saving...":"Save"})]})]}):e.jsx(z,{className:"w-full",disabled:m||!o.trim(),onClick:()=>{A()},children:m?"Saving...":"Save"})]})})},Mn=({filter:t,existingViews:s,activeView:r,onDeleted:a})=>{const[i,o]=d.useState(!1),h=r?`edit:${r.name}:${r.filter.filter}`:`save:${t}`;return e.jsxs(rs,{open:i,onOpenChange:o,children:[e.jsx(as,{asChild:!0,children:e.jsx(z,{variant:"outline",children:r?"Edit view":"Save view"})}),i&&e.jsx(Ln,{activeView:r,existingViews:s,filter:t,onClose:()=>o(!1),onDeleted:a},h)]})},Rn={"is-any":"is any of","is-not-any":"is none of","does-not-contain":"does not contain",..._r,1:"More like this",0:"Less like this"},ct={"is-greater":"is greater than","is-less":"is less than"};function In(t){switch(t){case"name":return ne.createElement(dr,{className:"size-4"});case"email":case"subscribed":return ne.createElement(sa,{className:"size-4"});case"label":return ne.createElement(cs,{className:"size-4"});case"last_seen_at":return ne.createElement(Zr,{className:"size-4"});case"created_at":return ne.createElement(Xr,{className:"size-4"});case"signup":return ne.createElement(cr,{className:"size-4"});case"tier_id":case"subscriptions.status":return ne.createElement(or,{className:"size-4"});case"status":return ne.createElement(Wr,{className:"size-4"});case"subscriptions.plan_interval":return ne.createElement(Hr,{className:"size-4"});case"subscriptions.start_date":return ne.createElement(Vr,{className:"size-4"});case"subscriptions.current_period_end":return ne.createElement($r,{className:"size-4"});case"conversion":return ne.createElement(zr,{className:"size-4"});case"email_count":case"emails.post_id":return ne.createElement(Br,{className:"size-4"});case"email_opened_count":case"opened_emails.post_id":return ne.createElement(Ur,{className:"size-4"});case"email_open_rate":return ne.createElement(Fr,{className:"size-4"});case"clicked_links.post_id":return ne.createElement(Tr,{className:"size-4"});case"newsletter_feedback":return ne.createElement(lr,{className:"size-4"});case"offer_redemptions":return ne.createElement(Pr,{className:"size-4"});default:return t.startsWith("newsletters.")?ne.createElement(Ar,{className:"size-4"}):void 0}}function se(t,s={},r=Rn){const a=t.startsWith("newsletters.")?Ee["newsletters.:slug"]:Ee[t];return{key:t,...a.ui,icon:In(t),operators:Sr(a.operators,{labels:r}),..."options"in a&&a.options?{options:a.options}:{},...s}}function Ke(t,s){return se(t,{defaultValue:s})}function _e(t,s){return{options:t,valueSource:s}}function On(t){const s=new Map,r=[],a=[];for(const i of t)i.redemption_type==="retention"&&(i.cadence==="month"?r.push(i.id):i.cadence==="year"&&a.push(i.id));return r.length>0&&s.set("retention:month",r),a.length>0&&s.set("retention:year",a),s}function Is(t){return Array.isArray(t.metadata?.offerIds)?t.metadata.offerIds.filter(s=>typeof s=="string"):null}function Os(t){const s=[],r=On(t);for(const a of t)a.redemption_type!=="retention"&&s.push({value:a.id,label:a.name});return r.has("retention:month")&&s.push({value:"retention:month",label:"Monthly Retention",metadata:{offerIds:r.get("retention:month")}}),r.has("retention:year")&&s.push({value:"retention:year",label:"Yearly Retention",metadata:{offerIds:r.get("retention:year")}}),s}function Dn(t,s){const r=[],a=new Set;for(const i of s){const o=Is(i);o&&o.length>0&&o.every(h=>t.includes(h))&&(r.push(String(i.value)),o.forEach(h=>{a.add(h)}))}for(const i of t)a.has(i)||r.push(i);return r}function An(t,s){const r=[];for(const a of t){const i=s.find(h=>h.value===a),o=i?Is(i):null;o?r.push(...o):r.push(a)}return[...new Set(r)]}function Pn(t){return new Map(t.map(s=>[s.id,s.name]))}function Tn(t,s,r){const a=t.map(i=>s.find(o=>o.value===i)).filter(i=>!!i);return a.length===1?a[0].label:a.length>1?`${a.length} selected`:t.length===1?r.get(t[0])??"Select...":t.length>1?`${t.length} selected`:"Select..."}function Fn({labelValueSource:t,tierValueSource:s,newsletters:r=[],hydratedNewsletterSlugs:a=[],hasMultipleTiers:i=!1,paidMembersEnabled:o=!1,emailFiltersEnabled:h=!1,postValueSource:u,emailValueSource:c,offers:m=[],membersTrackSources:b=!1,emailTrackOpens:E=!1,emailTrackClicks:v=!1,siteTimezone:y="UTC",giftSubscriptionsEnabled:N=!1}){return d.useMemo(()=>{const C=[],f=r.filter(n=>n.status!=="archived"),M=new Set(f.map(n=>n.slug)),A=[...new Set(a)].map(n=>{const l=r.find(p=>p.slug===n);return{slug:n,name:l?.name??n}}),P=A.filter(n=>!M.has(n.slug)),D=Os(m),j=Pn(m),_=wr(y),w=[se("name"),se("email")];if(t&&w.push(se("label",{..._e([],t),customRenderer:n=>ne.createElement(Ma,n)})),f.length<=1){w.push(se("subscribed"));for(const n of A)w.push(se(`newsletters.${n.slug}`,{label:n.name}))}if(w.push(Ke("last_seen_at",_),Ke("created_at",_)),b&&w.push(se("signup",_e([],u))),C.push({group:"Basic",fields:w}),f.length>1){const n=[se("subscribed",{label:"All newsletters",options:[{value:"subscribed",label:"Subscribed to at least one"},{value:"unsubscribed",label:"Unsubscribed from all"},{value:"email-disabled",label:"Email disabled"}]})];for(const l of f)n.push(se(`newsletters.${l.slug}`,{label:l.name}));for(const l of P)n.push(se(`newsletters.${l.slug}`,{label:l.name}));C.push({group:"Newsletters",fields:n})}if(o){const n=[];i&&n.push(se("tier_id",_e([],s))),n.push(se("status",N?{options:[...Ee.status.options,{value:"gift",label:"Gift subscription"}]}:{}),se("subscriptions.plan_interval"),se("subscriptions.status"),Ke("subscriptions.start_date",_),Ke("subscriptions.current_period_end",_)),b&&n.push(se("conversion",_e([],u))),m.length>0&&n.push(se("offer_redemptions",{options:D,customValueRenderer:l=>Tn(l,D,j)})),C.push({group:"Subscription",fields:n})}if(h){const n=[se("email_count",{},ct),se("email_opened_count",{},ct)];E&&n.push(se("email_open_rate",{},ct)),n.push(se("emails.post_id",_e([],c))),E&&n.push(se("opened_emails.post_id",_e([],c))),v&&n.push(se("clicked_links.post_id",_e([],c))),n.push(se("newsletter_feedback",_e([],c))),C.push({group:"Email",fields:n})}return C},[h,c,v,E,N,i,t,b,r,m,a,o,u,y,s])}const Vt="(status:published,status:sent)+newsletter_id:-null";function Un(t){return t?`${Vt}+title:~${wt(t)}`:Vt}function Bn(t){return{value:t.id,label:t.title}}const zn=fs({id:"posts.email.remote",buildBrowseSearchParams:t=>({filter:Un(t),limit:"25",fields:"id,title",order:"published_at DESC"}),buildHydrateSearchParams:t=>({fields:"id,title",filter:t}),selectItems:t=>t?.posts,useQuery:({enabled:t,searchParams:s})=>aa({enabled:t,keepPreviousData:!0,searchParams:s}),toOption:Bn});function $n(){return zn()}const Ht=()=>{};function Vn(t){return function(r={}){const{enabled:a=!0}=r,i=({query:o})=>{const h=t.useItems({enabled:a}),u=(h.data||[]).map(t.toOption),c=t.filterOptions?t.filterOptions(u,o):bs(u,o);return a?{options:c,isInitialLoad:h.isLoading&&u.length===0,isSearching:!1,isLoadingMore:!1,hasMore:!1,loadMore:Ht}:{options:[],isInitialLoad:!1,isSearching:!1,isLoadingMore:!1,hasMore:!1,loadMore:Ht}};return{id:t.id,useOptions:i}}}function Hn(t=[]){return Vn({id:"posts.tiers.local",useItems:()=>({data:t,isLoading:!1}),toOption:r=>r})()}const Wn=[];function Wt(t,s){return t.map(r=>r.field!=="offer_redemptions"?r:{...r,values:s(r.values)})}const Gt=({filters:t,nql:s,onFiltersChange:r,savedViews:a=[],activeView:i,iconOnly:o=!1})=>{const{data:h}=ra({searchParams:{limit:"100"}}),{data:u}=Ir({}),{data:c}=ys({searchParams:{limit:"100"}}),{data:m}=ze({}),{data:b}=bt(),E=m?.settings||[],v=Se(E,"paid_members_enabled")===!0,y=Se(E,"editor_default_email_recipients")!=="disabled",N=Se(E,"members_track_sources")===!0,C=Se(E,"email_track_opens")===!0,f=Se(E,"email_track_clicks")===!0,M=ws(E),A=b?.config?.labs?.giftSubscriptions===!0,P=h?.tiers||[],D=c?.newsletters||[],j=d.useMemo(()=>u?.offers??Wn,[u?.offers]),_=P.filter(L=>L.type==="paid"&&L.active),w=_.length>1,n=d.useMemo(()=>Os(j),[j]),l=d.useMemo(()=>[...new Set(t.map(L=>L.field).filter(L=>L.startsWith("newsletters.")).map(L=>L.slice(12)).filter(Boolean))],[t]),p=d.useMemo(()=>Wt(t,L=>Dn(L,n)),[t,n]),g=d.useCallback(L=>{r(Wt(L,F=>An(F,n)))},[r,n]),x=jr(),I=$n(),V=js(),ee=Hn(_.map(L=>({value:L.id,label:L.name,detail:L.slug}))),J=Fn({newsletters:D,hydratedNewsletterSlugs:l,hasMultipleTiers:w,paidMembersEnabled:v,emailFiltersEnabled:y,labelValueSource:V,tierValueSource:ee,offers:j,postValueSource:x,emailValueSource:I,membersTrackSources:N,emailTrackOpens:C,emailTrackClicks:f,siteTimezone:M,giftSubscriptionsEnabled:A}),S=t.length>0,R=ae("border-input bg-white dark:bg-background",o&&!S&&"min-w-[34px] gap-0 px-2 text-[0px] lg:min-w-0 lg:gap-1.5 lg:px-3 lg:text-sm !px-3"),Y=S?e.jsxs("div",{className:"flex shrink-0 items-center gap-4 sm:absolute sm:top-0 sm:right-0",children:[e.jsxs(z,{className:"hidden items-center gap-1 !px-0 text-sm font-normal text-muted-foreground hover:bg-transparent hover:text-foreground lg:inline-flex",type:"button",variant:"ghost",onClick:()=>r([]),children:[e.jsx(pt,{className:"size-4"}),"Clear"]}),s&&e.jsx(Mn,{activeView:i,existingViews:a,filter:s,onDeleted:()=>r([])})]}):void 0;return e.jsx(br,{addButtonClassName:R,addButtonIcon:S?e.jsx(ea,{}):e.jsx(ta,{}),addButtonText:S?"Add filter":"Filter",allowMultiple:!0,className:`[&>button]:order-last ${S?"sm:!pr-40 [&>button]:border-none":"w-auto"}`,clearButton:Y,fields:J,filters:p,keyboardShortcut:"f",popoverAlign:"start",popoverContentClassName:"z-[80] w-[280px] [&_[data-slot=command-list]]:max-h-[450px]",showClearButton:S,showSearchInput:!0,onChange:g})},Ds=({children:t,totalMembers:s,isLoading:r})=>e.jsxs(Me,{blurredBackground:!1,className:"relative",sticky:!1,children:[e.jsx(Me.Left,{children:e.jsxs(Me.Title,{children:["Members"," ",!r&&e.jsx(Me.Count,{className:"hidden sm:inline",children:s.toLocaleString()})]})}),t]}),Kt=({search:t,onSearchChange:s,autoFocus:r=!1,ariaLabel:a="Search members"})=>{const i=a==="Search members mobile"?"members-mobile-search-input":"members-search-input";return e.jsxs(ca,{className:"h-[34px] min-w-0 basis-full lg:w-[180px] lg:basis-auto xl:w-[240px]",children:[e.jsx(ua,{children:e.jsx(ms,{className:"size-4",strokeWidth:1.75})}),e.jsx(ma,{"aria-label":a,autoFocus:r,className:"!h-[34px]","data-testid":i,placeholder:"Search members...",value:t,onChange:o=>s(o.target.value)})]})},Gn=""+new URL("members-1-D83QUU3l.jpg",import.meta.url).href,Kn=""+new URL("members-2-S_btKMmm.jpg",import.meta.url).href,Yn=()=>e.jsxs("div",{className:"mx-auto grid w-full max-w-lg grid-cols-1 gap-4 sm:grid-cols-2",children:[e.jsxs("a",{className:"group flex flex-col overflow-hidden rounded-xl border bg-card transition-all hover:shadow-sm",href:"https://ghost.org/resources/build-audience-subscriber-signups/",rel:"noopener noreferrer",target:"_blank",children:[e.jsx("div",{className:"h-36 w-full bg-cover bg-center",style:{backgroundImage:`url(${Gn})`}}),e.jsxs("div",{className:"flex grow flex-col p-5",children:[e.jsx("h4",{className:"text-sm font-semibold",children:"Building your audience with subscriber signups"}),e.jsx("p",{className:"mt-1.5 text-sm leading-relaxed text-muted-foreground",children:"Learn how to turn anonymous visitors into logged-in members with memberships in Ghost."}),e.jsxs("span",{className:"mt-3 inline-flex items-center gap-1 text-sm font-medium text-foreground",children:["Start building",e.jsx(Pt,{className:"size-3.5 transition-transform group-hover:translate-x-0.5"})]})]})]}),e.jsxs("a",{className:"group flex flex-col overflow-hidden rounded-xl border bg-card transition-all hover:shadow-sm",href:"https://ghost.org/resources/first-100-email-subscribers/",rel:"noopener noreferrer",target:"_blank",children:[e.jsx("div",{className:"h-36 w-full bg-cover bg-center",style:{backgroundImage:`url(${Kn})`}}),e.jsxs("div",{className:"flex grow flex-col p-5",children:[e.jsx("h4",{className:"text-sm font-semibold",children:"Get your first 100 email subscribers"}),e.jsx("p",{className:"mt-1.5 text-sm leading-relaxed text-muted-foreground",children:"Starting from zero? Use this guide to find your founding audience members."}),e.jsxs("span",{className:"mt-3 inline-flex items-center gap-1 text-sm font-medium text-foreground",children:["Become an expert",e.jsx(Pt,{className:"size-3.5 transition-transform group-hover:translate-x-0.5"})]})]})]})]}),As=({children:t})=>e.jsx(na,{children:e.jsx("div",{className:"grid w-full min-w-0 grow",children:e.jsx("div",{className:"flex h-full min-w-0 flex-col","data-testid":"members-page",children:t})})});function Nt(t,s){const r=new URLSearchParams;s&&r.set("back",s);const a=r.toString();return`/members/${t}${a?`?${a}`:""}`}const Yt={left:"100%"};function qn(t){if(!t)return{text:"Unknown",isKnown:!1};try{const s=JSON.parse(t);return s.country?s.country_code==="US"&&s.region?{text:`${s.region}, US`,isKnown:!0}:{text:s.country,isKnown:!0}:{text:"Unknown",isKnown:!1}}catch{return{text:"Unknown",isKnown:!1}}}function Qn(t){switch(t){case"paid":return"Paid";case"comped":return"Complimentary";case"gift":return"Gift";default:return"Free"}}function Ps(t){return t.button!==0||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey}function qt(t,s){window.open(`#${Nt(t,s)}`,"_blank","noopener")}function Jn({item:t,backPath:s,onClick:r}){return e.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[e.jsx(ur,{className:"size-10 min-w-10",email:t.email,name:t.name,src:t.avatar_image}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("a",{className:"block min-w-0 cursor-pointer",href:`#${Nt(t.id,s)}`,onClick:r?a=>{if(Ps(a)){a.stopPropagation();return}a.preventDefault(),a.stopPropagation(),r(t.id)}:void 0,children:e.jsx("span",{className:"block truncate font-medium",children:t.name||t.email||"Anonymous"})}),t.name&&t.email&&e.jsx("div",{className:"truncate text-sm text-muted-foreground","data-testid":"member-email",children:t.email})]})]})}function Xn({status:t,tiers:s}){const r=s?.map(a=>a.name).join(", ");return e.jsx("div",{className:"flex min-w-0 justify-start",children:e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"truncate text-sm",children:Qn(t)}),r&&e.jsx("div",{className:"truncate text-xs text-muted-foreground",children:r})]})})}function Zn({emailOpenRate:t}){const s=t!=null;return e.jsx("div",{className:ae("text-sm",s?"text-foreground":"text-muted-foreground"),children:s?`${Math.round(t)}%`:"N/A"})}function ei({geolocation:t}){const s=qn(t);return e.jsx("div",{className:ae("truncate text-sm",s.isKnown?"text-foreground":"text-muted-foreground"),children:s.text})}function ti({createdAt:t}){return e.jsxs("div",{children:[e.jsx("div",{className:"text-sm",children:Pe.utc(t).format("D MMM YYYY")}),e.jsx("div",{className:"text-xs text-muted-foreground",children:Pe.utc(t).fromNow()})]})}function si({column:t,member:s,timezone:r}){const a=mn(t,s,r);return a?e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"truncate text-sm",children:a.text}),a.subtext&&e.jsx("div",{className:"truncate text-xs text-muted-foreground",children:a.subtext})]}):e.jsx("span",{className:"text-sm text-muted-foreground",children:"-"})}function ri({item:t,activeColumns:s,backPath:r,columnStyles:a,showPinnedEdge:i,showEmailOpenRate:o,timezone:h,onClick:u,...c}){const m={"--members-sticky-hover-bg":"color-mix(in hsl, var(--muted) 50%, var(--background))"},b=v=>{if(Ps(v)){qt(t.id,r);return}u(t.id)},E=v=>{v.button===1&&(v.preventDefault(),qt(t.id,r))};return e.jsxs(je,{...c,className:ae("group cursor-pointer",c.className),"data-testid":"members-list-item",onAuxClick:E,onClick:b,children:[e.jsxs(me,{className:ae("min-w-0 bg-background px-4 py-3 group-hover:bg-[var(--members-sticky-hover-bg)] max-sm:!w-full max-sm:!min-w-0 lg:sticky lg:left-0 lg:z-20"),style:m,children:[e.jsx(Jn,{backPath:r,item:t,onClick:u}),i&&e.jsxs(e.Fragment,{children:[e.jsx("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-y-px hidden w-[24px] group-hover:opacity-0 lg:block",style:{...Yt,background:"linear-gradient(to right, var(--background) 0px, color-mix(in hsl, var(--background) 78%, transparent) 6px, color-mix(in hsl, var(--background) 28%, transparent) 16px, transparent 24px)"}}),e.jsx("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-y-px hidden w-[24px] opacity-0 group-hover:opacity-100 lg:block",style:{...Yt,background:"linear-gradient(to right, var(--members-sticky-hover-bg) 0px, color-mix(in hsl, var(--members-sticky-hover-bg) 78%, transparent) 6px, color-mix(in hsl, var(--members-sticky-hover-bg) 28%, transparent) 16px, transparent 24px)"}})]})]}),e.jsx(me,{className:"hidden px-4 py-3 sm:table-cell",style:a.status,children:e.jsx(Xn,{status:t.status,tiers:t.tiers})}),o&&e.jsx(me,{className:"hidden px-4 py-3 lg:table-cell",style:a.openRate,children:e.jsx(Zn,{emailOpenRate:t.email_open_rate})}),e.jsx(me,{className:"hidden px-4 py-3 lg:table-cell",style:a.location,children:e.jsx(ei,{geolocation:t.geolocation})}),e.jsx(me,{className:"hidden px-4 py-3 lg:table-cell",style:a.created,children:e.jsx(ti,{createdAt:t.created_at})}),s.map(v=>e.jsx(me,{className:"hidden px-4 py-3 lg:table-cell",style:a.dynamic,children:e.jsx(si,{column:v,member:t,timezone:h})},v.key))]})}const ai={left:"100%",background:"linear-gradient(to right, var(--members-sticky-fade-base) 0px, color-mix(in hsl, var(--members-sticky-fade-base) 78%, transparent) 6px, color-mix(in hsl, var(--members-sticky-fade-base) 28%, transparent) 16px, transparent 24px)"},Qt=({activeColumns:t,columnStyles:s,showEmailOpenRate:r})=>e.jsxs("colgroup",{children:[e.jsx("col",{className:"max-sm:!w-full max-sm:!min-w-0 sm:max-lg:!w-auto sm:max-lg:!min-w-0",style:s.member}),e.jsx("col",{className:"hidden sm:table-column",style:s.status}),r&&e.jsx("col",{className:"hidden lg:table-column",style:s.openRate}),e.jsx("col",{className:"hidden lg:table-column",style:s.location}),e.jsx("col",{className:"hidden lg:table-column",style:s.created}),t.map(a=>e.jsx("col",{className:"hidden lg:table-column",style:s.dynamic},a.key))]}),Jt=({activeColumns:t,className:s,columnStyles:r,headerRef:a,memberHeaderRef:i,showEmailOpenRate:o})=>e.jsx(_t,{ref:a,className:ae("hidden bg-transparent lg:table-header-group [&_th]:whitespace-nowrap",s),children:e.jsxs(je,{children:[e.jsx(be,{ref:i,className:"sticky left-0 z-[70] bg-transparent px-4 py-3 [--members-sticky-fade-base:var(--background)]",style:r.member,children:"Member"}),e.jsx(be,{className:"bg-transparent px-4 py-3",style:r.status,children:"Status"}),o&&e.jsx(be,{className:"bg-transparent px-4 py-3",style:r.openRate,children:"Open rate"}),e.jsx(be,{className:"bg-transparent px-4 py-3",style:r.location,children:"Location"}),e.jsx(be,{className:"bg-transparent px-4 py-3",style:r.created,children:"Created"}),t.map(h=>e.jsx(be,{className:"bg-transparent px-4 py-3",style:r.dynamic,children:h.label},h.key))]})}),ni=({columnStyle:t,showPinnedEdge:s})=>e.jsxs("div",{className:"pointer-events-none absolute inset-y-0 left-0 z-[70] overflow-visible bg-transparent [--members-sticky-fade-base:var(--background)]",style:t,children:[e.jsxs(Xe,{className:"w-full table-fixed border-collapse",children:[e.jsx("colgroup",{children:e.jsx("col",{style:{width:"100%"}})}),e.jsx(_t,{className:"bg-transparent lg:table-header-group [&_th]:whitespace-nowrap",children:e.jsx(je,{children:e.jsx(be,{className:"bg-transparent px-4 py-3",children:"Member"})})})]}),s&&e.jsx("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-y-px w-[24px]",style:ai})]}),De={member:40,status:15,openRate:10,location:17.5,created:17.5},Le={member:320,status:180,openRate:140,location:180,created:160},Xt=17.5,Zt=220;function ii(t){return Number.isFinite(t)?Math.max(0,Math.floor(t)):0}function li({showEmailOpenRate:t,activeColumnCount:s}){const r=[{key:"member",width:De.member},{key:"status",width:De.status},...t?[{key:"openRate",width:De.openRate}]:[],{key:"location",width:De.location},{key:"created",width:De.created}],a=ii(s),i=r.reduce((m,b)=>m+b.width,0),o=100+a*Xt,h=Xt/o*100,u=r.reduce((m,b)=>{const E=b.width/i*100;return m[b.key]=E/o*100,m},{member:0,status:0,openRate:0,location:0,created:0}),c=r.reduce((m,b)=>m+Le[b.key],0)+a*Zt;return{tableWidthPercentage:o,minTableWidth:c,dynamicColumnWidthPercentage:h,baseColumnWidthPercentages:u,baseColumnMinWidths:{member:Le.member,status:Le.status,openRate:Le.openRate,location:Le.location,created:Le.created},dynamicColumnMinWidth:Zt}}function oi(t){const s=(r,a)=>({width:`${r}%`,minWidth:`${a}px`});return{tableStyle:{"--members-table-width":`${t.tableWidthPercentage}%`,"--members-table-min-width":`${t.minTableWidth}px`},columnStyles:{member:s(t.baseColumnWidthPercentages.member,t.baseColumnMinWidths.member),status:s(t.baseColumnWidthPercentages.status,t.baseColumnMinWidths.status),openRate:s(t.baseColumnWidthPercentages.openRate,t.baseColumnMinWidths.openRate),location:s(t.baseColumnWidthPercentages.location,t.baseColumnMinWidths.location),created:s(t.baseColumnWidthPercentages.created,t.baseColumnMinWidths.created),dynamic:s(t.dynamicColumnWidthPercentage,t.dynamicColumnMinWidth)}}}const es=({height:t})=>e.jsx("tr",{"aria-hidden":"true",style:{height:t},children:e.jsx("td",{colSpan:999})}),ci=d.forwardRef(function(s,r){return e.jsx(je,{ref:r,...s,"aria-hidden":"true",children:e.jsx(me,{className:"h-[72px] px-4 py-3",colSpan:999,children:e.jsx("div",{className:"h-full animate-pulse rounded-md bg-muted","data-testid":"loading-placeholder"})})})});function di({items:t,totalItems:s,backPath:r,hasNextPage:a,isFetchingNextPage:i,fetchNextPage:o,isLoading:h,showEmailOpenRate:u=!0,activeColumns:c,timezone:m,pageHeaderRef:b,onRowClick:E}){const v=d.useRef(null),y=d.useRef(null),N=d.useRef(null),C=d.useRef(null),f=d.useRef(null),[M,A]=d.useState(0),[P,D]=d.useState(0),[j,_]=d.useState(!1),{visibleItemCount:w,canLoadMore:n,loadMore:l}=ia(s),p=d.useMemo(()=>li({showEmailOpenRate:u,activeColumnCount:c.length}),[c.length,u]),{tableStyle:g,columnStyles:x}=d.useMemo(()=>oi(p),[p]);Er({parentRef:v,isLoading:h}),d.useEffect(()=>{const S=f.current;if(!S)return;const $=()=>{const R=S.scrollLeft;_(R>0),C.current&&(C.current.scrollLeft=R)};return $(),S.addEventListener("scroll",$,{passive:!0}),window.addEventListener("resize",$),()=>{S.removeEventListener("scroll",$),window.removeEventListener("resize",$)}},[c.length,t.length,u]),d.useEffect(()=>{const S=b?.current,$=y.current,R=N.current;if(!S||!$||!R){A(0),D(0);return}const Y=S.style.paddingBottom,L=S.style.marginBottom,F=parseFloat(getComputedStyle(S).paddingBottom)||0,O=parseFloat(getComputedStyle(S).marginBottom)||0,B=()=>{Y?S.style.setProperty("padding-bottom",Y):S.style.removeProperty("padding-bottom"),L?S.style.setProperty("margin-bottom",L):S.style.removeProperty("margin-bottom")},k=()=>{if(!window.matchMedia("(min-width: 1024px)").matches){B(),A(0),D(0);return}const T=$.getBoundingClientRect().height,W=R.getBoundingClientRect().width;S.style.setProperty("padding-bottom",`${F+T}px`,"important"),S.style.setProperty("margin-bottom",`${O-T}px`,"important");const Z=S.getBoundingClientRect().height;A(W),D(Math.max(Z-T,0))};k();const H=new ResizeObserver(()=>{k()});return H.observe(S),H.observe($),H.observe(R),window.addEventListener("resize",k),()=>{B(),H.disconnect(),window.removeEventListener("resize",k)}},[c.length,b,u]);const{visibleItems:I,spaceBefore:V,spaceAfter:ee}=la({items:t,totalItems:w,hasNextPage:a,isFetchingNextPage:i,fetchNextPage:o,parentRef:v,estimateSize:()=>72}),J=S=>{E?E(S):window.location.hash=Nt(S,r)};return e.jsxs("div",{ref:v,className:"-mt-4 w-full min-w-0 lg:-mt-8","data-testid":"members-list-scroll-root",children:[e.jsx("div",{className:"sticky z-[50] hidden overflow-visible bg-transparent lg:block",style:{top:P},children:e.jsxs("div",{className:"relative",children:[e.jsx(ni,{columnStyle:M>0?{width:M}:x.member,showPinnedEdge:j}),e.jsx("div",{ref:C,className:"w-full overflow-hidden",style:M>0?{clipPath:`inset(0 0 0 ${M}px)`}:void 0,children:e.jsxs(Xe,{"aria-hidden":"true",className:"w-full border-collapse lg:w-[var(--members-table-width)] lg:min-w-[var(--members-table-min-width)] lg:table-fixed",style:g,children:[e.jsx(Qt,{activeColumns:c,columnStyles:x,showEmailOpenRate:u}),e.jsx(Jt,{activeColumns:c,columnStyles:x,headerRef:y,memberHeaderRef:N,showEmailOpenRate:u})]})})]})}),e.jsx("div",{ref:f,className:"w-full overflow-x-auto overflow-y-visible",children:e.jsxs(Xe,{className:"w-full border-collapse max-sm:table-fixed sm:max-lg:table-auto lg:w-[var(--members-table-width)] lg:min-w-[var(--members-table-min-width)] lg:table-fixed","data-testid":"members-list",style:g,children:[e.jsx(Qt,{activeColumns:c,columnStyles:x,showEmailOpenRate:u}),e.jsx(Jt,{activeColumns:c,className:"lg:h-0 lg:overflow-hidden lg:[&_th]:pointer-events-none lg:[&_th]:h-0 lg:[&_th]:border-0 lg:[&_th]:p-0 lg:[&_th]:text-[0px] lg:[&_th]:leading-none lg:[&_th]:opacity-0 lg:[&_tr]:h-0 lg:[&_tr]:border-0",columnStyles:x,showEmailOpenRate:u}),e.jsxs(vs,{children:[e.jsx(es,{height:V}),I.map(({key:S,virtualItem:$,item:R,props:Y})=>$.index>t.length-1?e.jsx(ci,{...Y},S):e.jsx(ri,{...Y,activeColumns:c,backPath:r,columnStyles:x,item:R,showEmailOpenRate:u,showPinnedEdge:j,timezone:m,onClick:J},S)),e.jsx(es,{height:ee})]})]})}),n&&e.jsx(oa,{isLoading:i,onClick:l})]})}const ui=["subscriptions.plan_interval","subscriptions.status","subscriptions.start_date","subscriptions.current_period_end","conversion","offer_redemptions"];function mi(t,s){return s&&t.length===0?!1:!t.some(r=>ui.includes(r.field))}function pi({isFetching:t,isFetchingNextPage:s}){return t&&!s}const hi=Cr(Ee,"date");function st(t){return Array.isArray(t.$and)?{operator:"$and",children:t.$and}:Array.isArray(t.$or)?{operator:"$or",children:t.$or}:null}function fi(t){if(typeof t.subscribed=="boolean")return{field:"subscribed",operator:"is",values:[t.subscribed?"subscribed":"unsubscribed"]};if(typeof t.email_disabled=="number"){if(t.email_disabled===1)return{field:"subscribed",operator:"is",values:["email-disabled"]};if(t.email_disabled===0)return{field:"subscribed",operator:"is-not",values:["email-disabled"]}}const s=st(t);if(!s||s.children.length!==2)return null;let r,a;for(const i of s.children)typeof i.subscribed=="boolean"&&(r=i.subscribed),typeof i.email_disabled=="number"&&(a=i.email_disabled);return s.operator==="$and"&&a===0&&r!==void 0?{field:"subscribed",operator:"is",values:[r?"subscribed":"unsubscribed"]}:s.operator==="$or"&&a===1&&r!==void 0?{field:"subscribed",operator:"is-not",values:[r?"unsubscribed":"subscribed"]}:null}function bi(t){const s=st(t);if(!s||s.children.length!==2)return null;let r,a;for(const i of s.children){const o=i["newsletters.slug"];typeof o=="string"&&(r=o),o&&typeof o=="object"&&!Array.isArray(o)&&typeof o.$ne=="string"&&(r=o.$ne),typeof i.email_disabled=="number"&&(a=i.email_disabled)}return r?s.operator==="$and"&&a===0?{field:`newsletters.${r}`,operator:"is",values:["subscribed"]}:s.operator==="$or"&&a===1?{field:`newsletters.${r}`,operator:"is",values:["unsubscribed"]}:null:null}function gi(t){const s=st(t);if(!s||s.operator!=="$and"||s.children.length!==2)return null;let r,a;for(const i of s.children)typeof i["feedback.post_id"]=="string"&&(r=i["feedback.post_id"]),typeof i["feedback.score"]=="number"&&(a=i["feedback.score"]);return!r||a!==0&&a!==1?null:{field:"newsletter_feedback",operator:String(a),values:[r]}}const xi=[fi,bi,gi];function Ts(t,s){for(const a of xi){const i=a(t);if(i)return[i]}const r=st(t);return r?.operator==="$and"?r.children.flatMap(a=>Ts(a,s)):Mr([t],Ee,s)}function vi(t,s){const r=gs(t??"");return r?kr(Ts(r,s)):[]}function yi(t){const s=gs(t??"");return s?Nr(s,hi):!1}function Fs(t,s){return Lr(t,Ee,s)}function wi(t,s,r=!s){return!!t&&r&&!s&&yi(t)}function Ae({baseSearchParams:t,filters:s,search:r,timezone:a}){const i=new URLSearchParams(t),o=Fs(s,a);return i.delete("filter"),i.delete("search"),o&&i.set("filter",o),r&&i.set("search",r),i}function _i(t){const[s,r]=ps(),a=d.useRef(null),i=d.useMemo(()=>s.get("filter")??void 0,[s]),o=d.useMemo(()=>s.toString(),[s]),h=d.useMemo(()=>vi(i,t),[i,t]),[u,c]=d.useState(h),m=d.useMemo(()=>s.get("search")??"",[s]),b=d.useMemo(()=>Fs(u,t),[u,t]);d.useEffect(()=>{o!==a.current&&(c(h),a.current=o)},[o,h]),d.useEffect(()=>{if(a.current!==null&&o!==a.current)return;const C=Ae({baseSearchParams:s,filters:u,search:m,timezone:t}),f=C.toString();f!==o&&(a.current=f,r(C,{replace:!0}))},[o,u,m,s,r,t]);const E=d.useCallback((C,f={})=>{const M=f.replace??!0,A=Ae({baseSearchParams:s,filters:C,search:m,timezone:t});c(C),a.current=A.toString(),r(A,{replace:M})},[m,s,r,t]),v=d.useCallback((C,f={})=>{const M=f.replace??!0,A=Ae({baseSearchParams:s,filters:u,search:C,timezone:t});a.current=A.toString(),r(A,{replace:M})},[u,s,r,t]),y=d.useCallback(({replace:C=!0}={})=>{const f=Ae({baseSearchParams:s,filters:[],search:m,timezone:t});c([]),a.current=f.toString(),r(f,{replace:C})},[m,s,r,t]),N=d.useCallback(({replace:C=!0}={})=>{const f=Ae({baseSearchParams:s,filters:[],search:"",timezone:t});c([]),a.current=f.toString(),r(f,{replace:C})},[s,r,t]);return{filters:u,nql:b,search:m,setFilters:E,setSearch:v,clearFilters:y,clearAll:N,hasFilterOrSearch:!!b||m.length>0}}const Si=250,ji=6,Ei=({timezone:t,membershipsEnabled:s})=>{const r=d.useRef(null),{filters:a,nql:i,search:o,setFilters:h,setSearch:u,hasFilterOrSearch:c,clearAll:m}=_i(t),b=ls(),{data:E}=bt(),v=En(),y=kn(v,i),[N,C]=d.useState(!1),[f,M]=d.useState(!1),[A,P]=d.useState(o),[D]=mr(A,Si),j=E?.config?.emailAnalytics===!0,_=d.useMemo(()=>Ls(a),[a]),w=d.useMemo(()=>mi(a,i),[a,i]),n=d.useMemo(()=>dn({filters:a,nql:i,search:o}),[a,i,o]),{data:l,isError:p,isFetching:g,isFetchingNextPage:x,refetch:I,fetchNextPage:V,hasNextPage:ee}=pr({searchParams:n,keepPreviousData:!0}),J=pi({isFetching:g,isFetchingNextPage:x}),S=l?.meta?.pagination?.total??0,$=a.length>0,R=N,Y=$,L=!c&&!J&&!p&&S<ji;d.useEffect(()=>{P(o)},[o]),d.useEffect(()=>{D!==o&&u(D)},[D,o,u]);const F=()=>{if(N){C(!1),M(!1);return}M(!0),C(!0)};return e.jsxs(As,{children:[e.jsxs("div",{ref:r,className:"sticky top-0 z-50 flex flex-col gap-4 bg-gradient-to-b from-background via-background/70 to-background/70 py-4 backdrop-blur-md sidebar:gap-6 sidebar:py-6 dark:bg-black",children:[e.jsx(Ds,{isLoading:J,totalMembers:S,children:e.jsx(Me.Actions,{children:e.jsxs(Me.ActionGroup,{className:"ml-auto flex-wrap justify-end sm:ml-0 sm:flex-nowrap",children:[e.jsx("div",{className:"hidden lg:flex",children:e.jsx(Kt,{search:A,onSearchChange:P})}),e.jsx(z,{"aria-label":N?"Hide member search":"Show member search",className:ae("lg:hidden",N&&"bg-secondary hover:bg-secondary"),variant:"outline",onClick:F,children:e.jsx(ms,{className:"size-4"})}),!$&&e.jsx(Gt,{activeView:y,filters:a,iconOnly:!0,nql:i,savedViews:v,onFiltersChange:h}),e.jsx(pn,{canBulkDelete:w,hasFilterOrSearch:c,memberCount:S,nql:i,search:o,onImportComplete:()=>{I()}})]})})}),(Y||R)&&e.jsxs("div",{className:ae("flex flex-col gap-4 px-4 lg:flex-row lg:items-center sidebar:gap-6 lg:px-8 lg:gap-6",!Y&&"lg:hidden"),children:[R&&e.jsx("div",{className:"lg:hidden",children:e.jsx(Kt,{ariaLabel:"Search members mobile",autoFocus:f,search:A,onSearchChange:P})}),Y&&e.jsx(Gt,{activeView:y,filters:a,nql:i,savedViews:v,onFiltersChange:h})]})]}),e.jsxs(Ms,{children:[J?e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsx(Qe,{size:"lg"})}):p?e.jsxs("div",{className:"mb-16 flex h-full flex-col items-center justify-center",children:[e.jsx("h2",{className:"mb-2 text-xl font-medium",children:"Error loading members"}),e.jsx("p",{className:"mb-4 text-muted-foreground",children:"Please reload the page to try again"}),e.jsx(z,{onClick:()=>window.location.reload(),children:"Reload page"})]}):l?.members.length?e.jsx(di,{activeColumns:_,backPath:`${b.pathname}${b.search}`,fetchNextPage:V,hasNextPage:ee,isFetchingNextPage:x,isLoading:g&&!x,items:l.members,pageHeaderRef:r,showEmailOpenRate:j,timezone:t,totalItems:S}):c?e.jsx("div",{className:"flex h-full flex-col items-center justify-center",children:e.jsx(ut,{actions:e.jsx(z,{variant:"outline",onClick:()=>m({replace:!1}),children:"Show all members"}),title:"No matching members found.",children:e.jsx(dt,{})})}):e.jsx(hn,{membershipsEnabled:s,onMemberCreated:async()=>{await I()}}),L&&e.jsx(Yn,{})]})]})},Xi=()=>{const[t]=ps(),{data:s,isLoading:r}=ze({}),a=t.get("filter")??void 0,i=!!s?.settings,o=wi(a,i,r);if(r||!s?.settings||o)return e.jsxs(As,{children:[e.jsx("div",{className:"sticky top-0 z-50 bg-gradient-to-b from-background via-background/70 to-background/70 backdrop-blur-md dark:bg-black",children:e.jsx(Ds,{isLoading:!0,totalMembers:0})}),e.jsx(Ms,{children:e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsx(Qe,{size:"lg"})})})]});const h=ws(s.settings),c=Se(s.settings,"members_signup_access")!=="none";return e.jsx(Ei,{membershipsEnabled:c,timezone:h})};export{Xi as default};
8
+ `);var R=0,Y=!1;this.parse=function(L,F,O){if(typeof L!="string")throw new Error("Input must be a string");var B=L.length,k=l.length,H=p.length,X=g.length,T=w(x),W=[],Z=[],U=[],re=R=0;if(!L)return oe();if(V||V!==!1&&L.indexOf(S)===-1){for(var ie=L.split(p),q=0;q<ie.length;q++){if(U=ie[q],R+=U.length,q!==ie.length-1)R+=p.length;else if(O)return oe();if(!g||U.substring(0,X)!==g){if(T){if(W=[],ye(U.split(l)),fe(),Y)return oe()}else ye(U.split(l));if(I&&I<=q)return W=W.slice(0,I),oe(!0)}}return oe()}for(var Q=L.indexOf(l,R),K=L.indexOf(p,R),ue=new RegExp(h($)+h(S),"g"),G=L.indexOf(S,R);;)if(L[R]===S)for(G=R,R++;;){if((G=L.indexOf(S,G+1))===-1)return O||Z.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:W.length,index:R}),pe();if(G===B-1)return pe(L.substring(R,G).replace(ue,S));if(S===$&&L[G+1]===$)G++;else if(S===$||G===0||L[G-1]!==$){Q!==-1&&Q<G+1&&(Q=L.indexOf(l,G+1));var te=Ne((K=K!==-1&&K<G+1?L.indexOf(p,G+1):K)===-1?Q:Math.min(Q,K));if(L.substr(G+1+te,k)===l){U.push(L.substring(R,G).replace(ue,S)),L[R=G+1+te+k]!==S&&(G=L.indexOf(S,R)),Q=L.indexOf(l,R),K=L.indexOf(p,R);break}if(te=Ne(K),L.substring(G+1+te,G+1+te+H)===p){if(U.push(L.substring(R,G).replace(ue,S)),Ie(G+1+te+H),Q=L.indexOf(l,R),G=L.indexOf(S,R),T&&(fe(),Y))return oe();if(I&&W.length>=I)return oe(!0);break}Z.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:W.length,index:R}),G++}}else if(g&&U.length===0&&L.substring(R,R+X)===g){if(K===-1)return oe();R=K+H,K=L.indexOf(p,R),Q=L.indexOf(l,R)}else if(Q!==-1&&(Q<K||K===-1))U.push(L.substring(R,Q)),R=Q+k,Q=L.indexOf(l,R);else{if(K===-1)break;if(U.push(L.substring(R,K)),Ie(K+H),T&&(fe(),Y))return oe();if(I&&W.length>=I)return oe(!0)}return pe();function ye(le){W.push(le),re=R}function Ne(le){var de=0;return de=le!==-1&&(le=L.substring(G+1,le))&&le.trim()===""?le.length:de}function pe(le){return O||(le===void 0&&(le=L.substring(R)),U.push(le),R=B,ye(U),T&&fe()),oe()}function Ie(le){R=le,ye(U),U=[],K=L.indexOf(p,R)}function oe(le){if(n.header&&!F&&W.length&&!J){var de=W[0],ge=Object.create(null),rt=new Set(de);let Ct=!1;for(let Ce=0;Ce<de.length;Ce++){let he=de[Ce];if(ge[he=w(n.transformHeader)?n.transformHeader(he,Ce):he]){let Oe,kt=ge[he];for(;Oe=he+"_"+kt,kt++,rt.has(Oe););rt.add(Oe),de[Ce]=Oe,ge[he]++,Ct=!0,(ee=ee===null?{}:ee)[Oe]=he}else ge[he]=1,de[Ce]=he;rt.add(he)}Ct&&console.warn("Duplicate headers found and renamed."),J=!0}return{data:W,errors:Z,meta:{delimiter:l,linebreak:p,aborted:Y,truncated:!!le,cursor:re+(F||0),renamedHeaders:ee}}}function fe(){x(oe()),W=[],Z=[]}},this.abort=function(){Y=!0},this.getCharIndex=function(){return R}}function A(n){var l=n.data,p=u[l.workerId],g=!1;if(l.error)p.userError(l.error,l.file);else if(l.results&&l.results.data){var x={abort:function(){g=!0,P(l.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:D,resume:D};if(w(p.userStep)){for(var I=0;I<l.results.data.length&&(p.userStep({data:l.results.data[I],errors:l.results.errors,meta:l.results.meta},x),!g);I++);delete l.results}else w(p.userChunk)&&(p.userChunk(l.results,x,l.file),delete l.results)}l.finished&&!g&&P(l.workerId,l.results)}function P(n,l){var p=u[n];w(p.userComplete)&&p.userComplete(l),p.terminate(),delete u[n]}function D(){throw new Error("Not implemented.")}function j(n){if(typeof n!="object"||n===null)return n;var l,p=Array.isArray(n)?[]:{};for(l in n)p[l]=j(n[l]);return p}function _(n,l){return function(){n.apply(l,arguments)}}function w(n){return typeof n=="function"}return m.parse=function(n,l){var p=(l=l||{}).dynamicTyping||!1;if(w(p)&&(l.dynamicTypingFunction=p,p={}),l.dynamicTyping=p,l.transform=!!w(l.transform)&&l.transform,!l.worker||!m.WORKERS_SUPPORTED)return p=null,m.NODE_STREAM_INPUT,typeof n=="string"?(n=(g=>g.charCodeAt(0)!==65279?g:g.slice(1))(n),p=new(l.download?E:y)(l)):n.readable===!0&&w(n.read)&&w(n.on)?p=new N(l):(a.File&&n instanceof File||n instanceof Object)&&(p=new v(l)),p.stream(n);(p=(()=>{var g;return!!m.WORKERS_SUPPORTED&&(g=(()=>{var x=a.URL||a.webkitURL||null,I=r.toString();return m.BLOB_URL||(m.BLOB_URL=x.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",I,")();"],{type:"text/javascript"})))})(),(g=new a.Worker(g)).onmessage=A,g.id=c++,u[g.id]=g)})()).userStep=l.step,p.userChunk=l.chunk,p.userComplete=l.complete,p.userError=l.error,l.step=w(l.step),l.chunk=w(l.chunk),l.complete=w(l.complete),l.error=w(l.error),delete l.worker,p.postMessage({input:n,config:l,workerId:p.id})},m.unparse=function(n,l){var p=!1,g=!0,x=",",I=`\r
9
+ `,V='"',ee=V+V,J=!1,S=null,$=!1,R=((()=>{if(typeof l=="object"){if(typeof l.delimiter!="string"||m.BAD_DELIMITERS.filter(function(F){return l.delimiter.indexOf(F)!==-1}).length||(x=l.delimiter),typeof l.quotes!="boolean"&&typeof l.quotes!="function"&&!Array.isArray(l.quotes)||(p=l.quotes),typeof l.skipEmptyLines!="boolean"&&typeof l.skipEmptyLines!="string"||(J=l.skipEmptyLines),typeof l.newline=="string"&&(I=l.newline),typeof l.quoteChar=="string"&&(V=l.quoteChar),typeof l.header=="boolean"&&(g=l.header),Array.isArray(l.columns)){if(l.columns.length===0)throw new Error("Option columns is empty");S=l.columns}l.escapeChar!==void 0&&(ee=l.escapeChar+V),l.escapeFormulae instanceof RegExp?$=l.escapeFormulae:typeof l.escapeFormulae=="boolean"&&l.escapeFormulae&&($=/^[=+\-@\t\r].*$/)}})(),new RegExp(h(V),"g"));if(typeof n=="string"&&(n=JSON.parse(n)),Array.isArray(n)){if(!n.length||Array.isArray(n[0]))return Y(null,n,J);if(typeof n[0]=="object")return Y(S||Object.keys(n[0]),n,J)}else if(typeof n=="object")return typeof n.data=="string"&&(n.data=JSON.parse(n.data)),Array.isArray(n.data)&&(n.fields||(n.fields=n.meta&&n.meta.fields||S),n.fields||(n.fields=Array.isArray(n.data[0])?n.fields:typeof n.data[0]=="object"?Object.keys(n.data[0]):[]),Array.isArray(n.data[0])||typeof n.data[0]=="object"||(n.data=[n.data])),Y(n.fields||[],n.data||[],J);throw new Error("Unable to serialize unrecognized input");function Y(F,O,B){var k="",H=(typeof F=="string"&&(F=JSON.parse(F)),typeof O=="string"&&(O=JSON.parse(O)),Array.isArray(F)&&0<F.length),X=!Array.isArray(O[0]);if(H&&g){for(var T=0;T<F.length;T++)0<T&&(k+=x),k+=L(F[T],T);0<O.length&&(k+=I)}for(var W=0;W<O.length;W++){var Z=(H?F:O[W]).length,U=!1,re=H?Object.keys(O[W]).length===0:O[W].length===0;if(B&&!H&&(U=B==="greedy"?O[W].join("").trim()==="":O[W].length===1&&O[W][0].length===0),B==="greedy"&&H){for(var ie=[],q=0;q<Z;q++){var Q=X?F[q]:q;ie.push(O[W][Q])}U=ie.join("").trim()===""}if(!U){for(var K=0;K<Z;K++){0<K&&!re&&(k+=x);var ue=H&&X?F[K]:K;k+=L(O[W][ue],K)}W<O.length-1&&(!B||0<Z&&!re)&&(k+=I)}}return k}function L(F,O){var B,k;return F==null?"":F.constructor===Date?JSON.stringify(F).slice(1,25):(k=!1,$&&typeof F=="string"&&$.test(F)&&(F="'"+F,k=!0),B=F.toString().replace(R,ee),(k=k||p===!0||typeof p=="function"&&p(F,O)||Array.isArray(p)&&p[O]||((H,X)=>{for(var T=0;T<X.length;T++)if(-1<H.indexOf(X[T]))return!0;return!1})(B,m.BAD_DELIMITERS)||-1<B.indexOf(x)||B.charAt(0)===" "||B.charAt(B.length-1)===" ")?V+B+V:B)}},m.RECORD_SEP="",m.UNIT_SEP="",m.BYTE_ORDER_MARK="\uFEFF",m.BAD_DELIMITERS=["\r",`
10
+ `,'"',m.BYTE_ORDER_MARK],m.WORKERS_SUPPORTED=!o&&!!a.Worker,m.NODE_STREAM_INPUT=1,m.LocalChunkSize=10485760,m.RemoteChunkSize=5242880,m.DefaultDelimiter=",",m.Parser=M,m.ParserHandle=C,m.NetworkStreamer=E,m.FileStreamer=v,m.StringStreamer=y,m.ReadableStreamStreamer=N,a.jQuery&&((i=a.jQuery).fn.parse=function(n){var l=n.config||{},p=[];return this.each(function(I){if(!(i(this).prop("tagName").toUpperCase()==="INPUT"&&i(this).attr("type").toLowerCase()==="file"&&a.FileReader)||!this.files||this.files.length===0)return!0;for(var V=0;V<this.files.length;V++)p.push({file:this.files[V],inputElem:this,instanceConfig:i.extend({},l)})}),g(),this;function g(){if(p.length===0)w(n.complete)&&n.complete();else{var I,V,ee,J,S=p[0];if(w(n.before)){var $=n.before(S.file,S.inputElem);if(typeof $=="object"){if($.action==="abort")return I="AbortError",V=S.file,ee=S.inputElem,J=$.reason,void(w(n.error)&&n.error({name:I},V,ee,J));if($.action==="skip")return void x();typeof $.config=="object"&&(S.instanceConfig=i.extend(S.instanceConfig,$.config))}else if($==="skip")return void x()}var R=S.instanceConfig.complete;S.instanceConfig.complete=function(Y){w(R)&&R(Y,S.file,S.inputElem),x()},m.parse(S.file,S.instanceConfig)}}function x(){p.splice(0,1),g()}}),f&&(a.onmessage=function(n){n=n.data,m.WORKER_ID===void 0&&n&&(m.WORKER_ID=n.workerId),typeof n.input=="string"?a.postMessage({workerId:m.WORKER_ID,results:m.parse(n.input,n.config),finished:!0}):(a.File&&n.input instanceof File||n.input instanceof Object)&&(n=m.parse(n.input,n.config))&&a.postMessage({workerId:m.WORKER_ID,results:n,finished:!0})}),(E.prototype=Object.create(b.prototype)).constructor=E,(v.prototype=Object.create(b.prototype)).constructor=v,(y.prototype=Object.create(y.prototype)).constructor=y,(N.prototype=Object.create(b.prototype)).constructor=N,m})})(Ye)),Ye.exports}var Ja=Qa();const Cs=Ws(Ja);function Xa(t){const s=Cs.parse(t,{header:!0,skipEmptyLines:!0});return!s.data||s.data.length<1?[]:s.data.map(r=>{const a={};for(const[i,o]of Object.entries(r))a[i]=typeof o=="string"?o:o==null?"":String(o);return a})}function Za(t){return t.length===0?"":Cs.unparse(t,{quotes:!0})}function en(t){const s=t.meta.stats.imported,r=t.meta.stats.invalid||[],a=r.length,i={},o=r.map(E=>{const v=Ya(E.error);return v.split(",").forEach(y=>{const N=y.trim();i[N]?i[N].count+=1:i[N]={message:N,count:1}}),{...E,error:v}}),f=Za(o),u=new Blob([f],{type:"text/csv"}),c=URL.createObjectURL(u),m=t.meta.import_label,b=m?`${m.name} - Errors.csv`:`Import ${Pe().format("YYYY-MM-DD HH:mm")} - Errors.csv`;return{importedCount:s,errorCount:a,errorCsvUrl:c,errorCsvName:b,errorList:Object.values(i),importLabel:t.meta.import_label}}const ks=()=>({status:"INIT",file:null,fileData:null,mapping:null,selectedLabelSlugs:[],dataPreviewIndex:0,mappingError:null,showMappingErrors:!1,importResponse:null,errorMessage:null,errorHeader:"Import error",showTryAgainButton:!0,dragOver:!1,fileError:null});function tn(t,s){switch(s.type){case"SELECT_FILE":return{...t,status:"MAPPING",file:s.file,fileData:null,mapping:null,dataPreviewIndex:0,mappingError:null,showMappingErrors:!1,fileError:null};case"SET_FILE_ERROR":return{...t,fileError:s.fileError};case"PARSE_SUCCESS":return{...t,fileData:s.fileData,mapping:s.mapping,mappingError:s.mappingError};case"PARSE_FAILURE":return{...t,fileData:[],mapping:null,mappingError:s.mappingError};case"UPDATE_MAPPING":return{...t,mapping:s.mapping,mappingError:s.mappingError};case"SET_SELECTED_LABEL_SLUGS":return{...t,selectedLabelSlugs:s.selectedLabelSlugs};case"SET_DATA_PREVIEW_INDEX":return{...t,dataPreviewIndex:s.dataPreviewIndex};case"SET_SHOW_MAPPING_ERRORS":return{...t,showMappingErrors:s.showMappingErrors};case"SET_DRAG_OVER":return{...t,dragOver:s.dragOver};case"UPLOAD_START":return{...t,status:"UPLOADING",showMappingErrors:!1};case"UPLOAD_ACCEPTED":return{...t,status:"PROCESSING"};case"UPLOAD_COMPLETE":return{...t,status:"COMPLETE",importResponse:s.importResponse};case"UPLOAD_ERROR":return{...t,status:"ERROR",errorMessage:s.errorMessage,errorHeader:s.errorHeader??"Import error",showTryAgainButton:s.showTryAgainButton??!0};case"RESET":return ks();default:return t}}function sn({open:t,onOpenChange:s,onComplete:r,onClose:a}){const[i,o]=d.useReducer(tn,void 0,ks),f=d.useRef(null),{data:u}=bt(),c=u?.config?.labs?.importMemberTier===!0,m=u?.config?.labs?.giftSubscriptions===!0,b=d.useMemo(()=>Va({importMemberTier:c,giftSubscriptionsEnabled:m}),[c,m]),E=tt({selectedSlugs:i.selectedLabelSlugs,onSelectionChange:n=>o({type:"SET_SELECTED_LABEL_SLUGS",selectedLabelSlugs:n})}),v=d.useCallback(()=>{f.current&&typeof URL.revokeObjectURL=="function"?(URL.revokeObjectURL(f.current),f.current=null):f.current&&(f.current=null)},[]),y=d.useCallback(()=>{v(),o({type:"RESET"})},[v]);d.useEffect(()=>()=>{v()},[v]);const N=d.useCallback(n=>{if(!(!n&&i.status==="UPLOADING")){if(!n){const l=i.importResponse??void 0;y(),a?.(l)}s(n)}},[a,s,y,i.importResponse,i.status]);d.useEffect(()=>{if(!i.file)return;let n=!1;const l=new FileReader;return l.onload=p=>{if(!n)try{const g=p.target?.result,x=Xa(g);if(x.length>0){const I=Ka(x,{importMemberTier:c,giftSubscriptionsEnabled:m}),V=new jt(I);o({type:"PARSE_SUCCESS",fileData:x,mapping:V,mappingError:V.getKeyByValue("email")?null:'Please map "Email" to one of the fields in the CSV.'})}else o({type:"PARSE_SUCCESS",fileData:[],mapping:null,mappingError:"File is empty, nothing to import. Please select a different file."})}catch{o({type:"PARSE_FAILURE",mappingError:"Failed to parse this file. Please try another CSV file."})}},l.onerror=()=>{n||o({type:"PARSE_FAILURE",mappingError:`Failed to read file${l.error?.message?`: ${l.error.message}`:""}`})},l.onabort=()=>{n||o({type:"PARSE_FAILURE",mappingError:"File read was interrupted. Please try again."})},l.readAsText(i.file),()=>{n=!0,l.readyState===FileReader.LOADING&&l.abort()}},[c,m,i.file]);const C=d.useCallback(n=>{const p=/(?:\.([^.]+))?$/.exec(n.name)?.[1];return!p||p.toLowerCase()!=="csv"?(o({type:"SET_FILE_ERROR",fileError:"The file type you uploaded is not supported"}),!1):(o({type:"SET_FILE_ERROR",fileError:null}),!0)},[]),h=d.useCallback(n=>{C(n)&&o({type:"SELECT_FILE",file:n})},[C]),M=d.useCallback((n,l)=>{if(!i.mapping)return;const p=i.mapping.updateMapping(n,l),g=i.fileData&&i.fileData.length===0?"File is empty, nothing to import. Please select a different file.":p.getKeyByValue("email")?null:'Please map "Email" to one of the fields in the CSV.';o({type:"UPDATE_MAPPING",mapping:p,mappingError:g})},[i.fileData,i.mapping]),A=d.useCallback(async()=>{if(!i.file||i.mappingError){o({type:"SET_SHOW_MAPPING_ERRORS",showMappingErrors:!0});return}o({type:"UPLOAD_START"});const n=new FormData;n.append("membersfile",i.file);for(const l of i.selectedLabelSlugs){const p=E.labels.find(g=>g.slug===l);p&&n.append("labels",p.name)}if(i.mapping){const l=i.mapping.toJSON();for(const[p,g]of Object.entries(l))g&&n.append(`mapping[${p}]`,g)}try{const{apiRoot:l}=Gs(),p=await fetch(`${l}/members/upload/`,{method:"POST",body:n,credentials:"include",mode:"cors",headers:{"app-pragma":"no-cache"}});if(p.status===202){o({type:"UPLOAD_ACCEPTED"}),r?.();return}if(p.status===413){o({type:"UPLOAD_ERROR",errorMessage:"The file you uploaded was larger than the maximum file size your server allows."});return}if(!p.ok){const V=(await p.json())?.errors?.[0];if(V?.type==="HostLimitError"&&V?.code==="EMAIL_VERIFICATION_NEEDED"){o({type:"UPLOAD_ERROR",errorMessage:V.message,errorHeader:"Woah there cowboy, that's a big list",showTryAgainButton:!1}),r?.();return}if(V?.type==="DataImportError"||V?.type==="ValidationError"){o({type:"UPLOAD_ERROR",errorMessage:V.message});return}o({type:"UPLOAD_ERROR",errorMessage:"An unexpected error occurred, please try again"});return}const g=await p.json(),x=en(g);v(),f.current=x.errorCsvUrl,o({type:"UPLOAD_COMPLETE",importResponse:x}),r?.(x)}catch{o({type:"UPLOAD_ERROR",errorMessage:"An unexpected error occurred, please try again"})}},[i.file,i.mapping,i.mappingError,i.selectedLabelSlugs,E.labels,v,r]),P=i.fileData?!!i.fileData[i.dataPreviewIndex+1]:!1,D=i.dataPreviewIndex>0,j=i.fileData?.length??0,_=i.status==="MAPPING"||i.status==="UPLOADING",w=d.useMemo(()=>{switch(i.status){case"PROCESSING":return"Import in progress";case"COMPLETE":return"Import complete";case"ERROR":return i.errorHeader;default:return"Import members"}},[i.errorHeader,i.status]);return e.jsx(Te,{open:t,onOpenChange:N,children:e.jsxs(Fe,{className:ae("gap-0",_&&"max-w-2xl"),children:[e.jsxs(Ue,{children:[e.jsx(Be,{children:w}),e.jsx(Ks,{className:"sr-only",children:"Import members from a CSV file."})]}),i.status==="INIT"&&e.jsx(Aa,{fileError:i.fileError,onClose:()=>N(!1),onDropAccepted:h,onDropRejected:()=>o({type:"SET_FILE_ERROR",fileError:"The file type you uploaded is not supported"})}),(i.status==="MAPPING"||i.status==="UPLOADING")&&e.jsx(Pa,{dataPreviewIndex:i.dataPreviewIndex,fieldMappings:b,fileData:i.fileData,hasNextRecord:P,hasPrevRecord:D,labelPicker:E,mapping:i.mapping,mappingError:i.mappingError,membersCount:j,showMappingErrors:i.showMappingErrors,status:i.status,onDataPreviewIndexChange:n=>{o({type:"SET_DATA_PREVIEW_INDEX",dataPreviewIndex:n})},onStartOver:y,onUpdateMapping:M,onUpload:A}),i.status==="PROCESSING"&&e.jsx(Ta,{onClose:()=>N(!1),onUploadAnotherFile:y}),i.status==="COMPLETE"&&i.importResponse&&e.jsx(Fa,{importResponse:i.importResponse,onClose:()=>N(!1),onReset:y}),i.status==="ERROR"&&e.jsx(Ua,{errorMessage:i.errorMessage,showTryAgainButton:i.showTryAgainButton,onClose:()=>N(!1),onTryAgain:y})]})})}const Ft=["is","contains","does-not-contain","starts-with","ends-with"],lt=["is","is-greater","is-less"],xe=["is","is-not"],ot=["is-any","is-not-any"],rn=[{value:"active",label:"Active"},{value:"trialing",label:"Trialing"},{value:"canceled",label:"Canceled"},{value:"unpaid",label:"Unpaid"},{value:"past_due",label:"Past Due"},{value:"incomplete",label:"Incomplete"},{value:"incomplete_expired",label:"Incomplete - Expired"}],an={parse(){return null},serialize(t){const s=t.values[0];return t.operator!=="is"&&t.operator!=="is-not"?null:s==="email-disabled"?t.operator==="is"?["(email_disabled:1)"]:["(email_disabled:0)"]:s==="subscribed"?t.operator==="is"?["(subscribed:true+email_disabled:0)"]:["(subscribed:false,email_disabled:1)"]:s==="unsubscribed"?t.operator==="is"?["(subscribed:false+email_disabled:0)"]:["(subscribed:true,email_disabled:1)"]:null}},nn={parse(){return null},serialize(t,s){const r=s.params.slug,a=t.values[0];return!r||t.operator!=="is"?null:a==="subscribed"?[`(newsletters.slug:${r}+email_disabled:0)`]:a==="unsubscribed"?[`(newsletters.slug:-${r},email_disabled:1)`]:null}},ln={parse(){return null},serialize(t){const s=t.values[0];return typeof s!="string"||!s||t.operator!=="1"&&t.operator!=="0"?null:[`(feedback.post_id:${wt(s)}+feedback.score:${t.operator})`]}},Ee=vr({name:{operators:Ft,ui:{label:"Name",type:"text",placeholder:"Enter name...",defaultOperator:"contains",className:"w-48"},codec:Dt()},email:{operators:Ft,ui:{label:"Email",type:"text",placeholder:"Enter email...",defaultOperator:"contains",className:"w-48"},codec:Dt()},label:{operators:ot,ui:{label:"Label",type:"multiselect",searchable:!0,className:"w-64",defaultOperator:"is-any"},metadata:{activeColumn:{key:"labels",label:"Labels",include:"labels"}},codec:at()},subscribed:{operators:xe,ui:{label:"Newsletter subscription",type:"select",searchable:!1},options:[{value:"subscribed",label:"Subscribed"},{value:"unsubscribed",label:"Unsubscribed"},{value:"email-disabled",label:"Email disabled"}],codec:an},last_seen_at:{operators:He,ui:{label:"Last seen",type:"date",defaultOperator:Ve},codec:We()},created_at:{operators:He,ui:{label:"Created",type:"date",defaultOperator:Ve},codec:We()},signup:{operators:xe,ui:{label:"Signed up on post/page",type:"select",searchable:!0,placeholder:"Select a post or page...",className:"w-64"},codec:we({quoteStrings:!0})},"newsletters.:slug":{operators:["is"],ui:{label:"Newsletter",type:"select",searchable:!1,hideOperatorSelect:!0},options:[{value:"subscribed",label:"Subscribed"},{value:"unsubscribed",label:"Unsubscribed"}],codec:nn},tier_id:{operators:ot,ui:{label:"Membership tier",type:"multiselect",searchable:!0,className:"w-64",defaultOperator:"is-any"},metadata:{activeColumn:{key:"tiers",label:"Tiers",include:"tiers"}},codec:at()},status:{operators:xe,ui:{label:"Member status",type:"select",searchable:!1},options:[{value:"paid",label:"Paid"},{value:"free",label:"Free"},{value:"comped",label:"Complimentary"}],codec:we()},"subscriptions.plan_interval":{operators:xe,ui:{label:"Billing period",type:"select",searchable:!1},options:[{value:"month",label:"Monthly"},{value:"year",label:"Yearly"}],metadata:{activeColumn:{key:"subscriptions.plan_interval",label:"Billing period",include:"subscriptions"}},codec:we()},"subscriptions.status":{operators:xe,ui:{label:"Stripe subscription status",type:"select",searchable:!1},options:rn,metadata:{activeColumn:{key:"subscriptions.status",label:"Subscription status",include:"subscriptions"}},codec:we()},"subscriptions.start_date":{operators:He,ui:{label:"Paid start date",type:"date",defaultOperator:Ve},metadata:{activeColumn:{key:"subscriptions.start_date",label:"Paid start date",include:"subscriptions"}},codec:We()},"subscriptions.current_period_end":{operators:He,ui:{label:"Next billing date",type:"date",defaultOperator:Ve},metadata:{activeColumn:{key:"subscriptions.current_period_end",label:"Next billing date",include:"subscriptions"}},codec:We()},conversion:{operators:xe,ui:{label:"Subscription started on post/page",type:"select",searchable:!0,placeholder:"Select a post or page...",className:"w-64"},codec:we({quoteStrings:!0})},email_count:{operators:lt,ui:{label:"Emails sent (all time)",type:"number",defaultOperator:"is-greater",min:0,className:"w-24"},codec:nt()},email_opened_count:{operators:lt,ui:{label:"Emails opened (all time)",type:"number",defaultOperator:"is-greater",min:0,className:"w-24"},codec:nt()},email_open_rate:{operators:lt,ui:{label:"Open rate (all time)",type:"number",defaultOperator:"is-greater",min:0,max:100,suffix:"%",className:"w-24"},codec:nt()},"emails.post_id":{operators:xe,ui:{label:"Sent email",type:"select",searchable:!0,placeholder:"Select an email...",className:"w-64"},codec:we({quoteStrings:!0})},"opened_emails.post_id":{operators:xe,ui:{label:"Opened email",type:"select",searchable:!0,placeholder:"Select an email...",className:"w-64"},codec:we({quoteStrings:!0})},"clicked_links.post_id":{operators:xe,ui:{label:"Clicked email",type:"select",searchable:!0,placeholder:"Select an email...",className:"w-64"},codec:we({quoteStrings:!0})},newsletter_feedback:{operators:["1","0"],ui:{label:"Responded with feedback",type:"select",searchable:!0,placeholder:"Select an email...",className:"w-64",defaultOperator:"1"},codec:ln},offer_redemptions:{operators:ot,ui:{label:"Offer",type:"multiselect",searchable:!0,className:"w-64",defaultOperator:"is-any"},metadata:{activeColumn:{key:"offer_redemptions",label:"Offer"}},codec:at({quoteStrings:!0,serializeSingletonAsScalar:!0})}}),on=2,Ut=new Set(["active","trialing","unpaid","past_due"]);function Ls(t){const s=new Map;for(const r of t){const a=yr(Ee,r.field,"UTC")?.definition.metadata?.activeColumn;a&&s.set(a.key,a)}return Array.from(s.values()).slice(0,on)}function cn(t){const s=new Set(["labels","tiers"]);for(const r of Ls(t))r.include&&s.add(r.include);return Array.from(s).join(",")}function dn({filters:t,nql:s,search:r}){if(!s&&!r)return;const a={include:cn(t),limit:"100",order:"created_at desc"};return s&&(a.filter=s),r&&(a.search=r),a}function un({nql:t,search:s}){return!t&&!s?{all:!0}:{...t?{filter:t}:{},...s?{search:s}:{}}}function Ge(t){if(!t?.length)return null;const s=t.filter(a=>a.id);return s.length?[...s].sort((a,i)=>{const o=Ut.has(a.status),f=Ut.has(i.status);if(o&&!f)return-1;if(!o&&f)return 1;const u=new Date(a.current_period_end).getTime(),c=new Date(i.current_period_end).getTime();return Number.isNaN(u)&&Number.isNaN(c)?0:Number.isNaN(u)?1:Number.isNaN(c)?-1:c-u})[0]:null}function Bt(t,s){return t?{text:Pe.tz(t,s).format("D MMM YYYY"),subtext:Pe(t).fromNow()}:null}function mn(t,s,r){switch(t.key){case"labels":return s.labels?.length?{text:s.labels.map(a=>a.name).join(", ")}:null;case"tiers":return s.tiers?.length?{text:s.tiers.map(a=>a.name).join(", ")}:null;case"subscriptions.plan_interval":{const a=Ge(s.subscriptions)?.plan?.interval;return a?{text:a==="month"?"Monthly":"Yearly"}:null}case"subscriptions.status":{const a=Ge(s.subscriptions)?.status;return a?{text:a.split("_").map(i=>i.charAt(0).toUpperCase()+i.slice(1)).join(" ")}:null}case"subscriptions.start_date":return Bt(Ge(s.subscriptions)?.start_date,r);case"subscriptions.current_period_end":return Bt(Ge(s.subscriptions)?.current_period_end,r);case"offer_redemptions":{const a=s.subscriptions?.map(i=>i.offer?.name).filter(Boolean);return a?.length?{text:a.join(", ")}:null}default:return null}}async function zt(t,s){const r=new URLSearchParams({limit:"all"});t&&r.set("filter",t),s&&r.set("search",s);const a=new Date().toJSON().substring(0,10);await tr(`/members/upload/?${r}`,`members.${a}.csv`)}const pn=({hasFilterOrSearch:t,memberCount:s,nql:r,search:a,canBulkDelete:i,onImportComplete:o})=>{const f=ls(),u=os(),c=f.pathname==="/members/import",m=f.search??"",b=f.pathname==="/members"?`${f.pathname}${m}`:"/members",E=`#/members/new?back=${encodeURIComponent(b)}`,[v,y]=d.useState(!1),[N,C]=d.useState(!1),[h,M]=d.useState(!1),[A,P]=d.useState(!1),{data:D,isLoading:j}=ys({searchParams:{filter:"status:-archived",limit:"50"}}),_=D?.newsletters||[],{mutateAsync:w,isLoading:n}=Ys(),{mutate:l,isLoading:p}=qs(),[g,x]=d.useState(!1),I=un({nql:r,search:a}),V=d.useCallback(async()=>{try{await zt(r,a)}catch(B){throw ce.error("Export failed",{description:"There was a problem downloading your member data. Please check your connection and try again."}),B}},[r,a]),ee=d.useCallback(async B=>{try{for(const k of B)await w({...I,action:{type:"addLabel",meta:{label:{id:k}}}});y(!1),ce.success(B.length>1?"Labels added successfully":"Label added successfully")}catch{ce.error("Failed to add label",{description:"There was a problem applying this label. Please try again."})}},[w,I]),J=d.useCallback(async B=>{try{for(const k of B)await w({...I,action:{type:"removeLabel",meta:{label:{id:k}}}});C(!1),ce.success(B.length>1?"Labels removed successfully":"Label removed successfully")}catch{ce.error("Failed to remove label",{description:"There was a problem removing this label. Please try again."})}},[w,I]),S=d.useCallback(async B=>{const k=I;if(B===null){try{await w({...k,action:{type:"unsubscribe"}}),M(!1),ce.success("Members unsubscribed successfully")}catch{ce.error("Failed to unsubscribe members",{description:"There was a problem unsubscribing these members. Please try again."})}return}x(!0);try{const H=await Promise.allSettled(B.map(W=>w({...k,action:{type:"unsubscribe",newsletter:W}}))),X=H.filter(W=>W.status==="fulfilled").length,T=H.length;M(!1),X===T?ce.success(`Unsubscribed from ${T} ${T===1?"newsletter":"newsletters"}`):X>0?ce.warning(`Unsubscribed from ${X} of ${T} newsletters`,{description:"Some newsletters could not be unsubscribed. Please try again."}):ce.error("Failed to unsubscribe members",{description:"There was a problem unsubscribing these members. Please try again."})}catch{ce.error("Failed to unsubscribe members",{description:"There was a problem unsubscribing these members. Please try again."})}finally{x(!1)}},[w,I]),$=d.useCallback(()=>{l(I,{onSuccess:()=>{P(!1),ce.success("Members deleted successfully")},onError:()=>{ce.error("Failed to delete members",{description:"There was a problem deleting these members. Please try again."})}})},[l,I]),R=d.useCallback(async()=>{try{await zt(r,a)}catch(B){throw ce.error("Export failed",{description:"There was a problem downloading your backup. Please check your connection and try again."}),B}},[r,a]),Y=d.useCallback(()=>{},[]),L=d.useCallback(()=>{u(`/members/import${m}`)},[m,u]),F=d.useCallback(B=>{o?.(B)},[o]),O=d.useCallback(B=>{if(B?.importLabel){u(Qr({filter:`label:[${B.importLabel.slug}]`}),{replace:!0});return}u(`/members${m}`,{replace:!0})},[m,u]);return e.jsxs(e.Fragment,{children:[e.jsxs(Qs,{children:[e.jsx(Js,{asChild:!0,children:e.jsx(z,{"data-testid":"members-actions",variant:"outline",children:e.jsx(Xs,{className:"size-4"})})}),e.jsxs(Zs,{align:"end",children:[e.jsxs(ke,{onClick:L,children:[e.jsx(xs,{className:"mr-2 size-4"}),"Import members"]}),s>0&&e.jsxs(e.Fragment,{children:[e.jsxs(ke,{onClick:V,children:[e.jsx(Or,{className:"mr-2 size-4"}),t?`Export ${s.toLocaleString()} members`:"Export all members"]}),e.jsx(Mt,{}),e.jsxs(ke,{onClick:()=>y(!0),children:[e.jsx(Jr,{className:"mr-2 size-4"}),"Add label to ",s.toLocaleString()," ",s===1?"member":"members"]}),e.jsxs(ke,{onClick:()=>C(!0),children:[e.jsx(cs,{className:"mr-2 size-4"}),"Remove label from ",s.toLocaleString()," ",s===1?"member":"members"]}),e.jsxs(ke,{disabled:j,onClick:()=>M(!0),children:[e.jsx(Dr,{className:"mr-2 size-4"}),"Unsubscribe ",s.toLocaleString()," ",s===1?"member":"members"]}),e.jsx(Mt,{}),e.jsxs(ke,{className:"text-destructive focus:text-destructive",disabled:!i,onClick:()=>P(!0),children:[e.jsx(er,{className:"mr-2 size-4"}),"Delete ",s.toLocaleString()," ",s===1?"member":"members"]})]})]})]}),e.jsx(z,{asChild:!0,children:e.jsxs("a",{"aria-label":"New member",className:"inline-flex items-center gap-2 font-bold",href:E,children:[e.jsx(ft,{className:"size-4"}),e.jsx("span",{className:"hidden sm:inline",children:"New member"})]})}),e.jsx(sn,{open:c,onClose:O,onComplete:F,onOpenChange:Y}),e.jsx(Ra,{isLoading:n,memberCount:s,open:v,onConfirm:ee,onOpenChange:y}),e.jsx(Ia,{isLoading:n,memberCount:s,nql:r,open:N,search:a,onConfirm:J,onOpenChange:C}),e.jsx(Oa,{isLoading:n||g,memberCount:s,newsletters:_,open:h,onConfirm:S,onOpenChange:M}),e.jsx(Da,{isLoading:p,memberCount:s,open:A,onConfirm:$,onExportBackup:R,onOpenChange:P})]})},Ms=({children:t,className:s,...r})=>e.jsx("section",{className:ae("size-full grow min-w-0 flex flex-col gap-6 p-4 lg:p-8",s),...r,children:t}),fn=({membershipsEnabled:t,onMemberCreated:s})=>{const{data:r,isLoading:a}=sr(),{mutateAsync:i,isLoading:o}=rr(),f=Ze(),u=os(),c=d.useCallback(async()=>{if(!(!r||o))try{await i({email:r.email,name:r.name}),ce.success("You've been added as a member"),await s?.()}catch(m){f(m)}},[i,r,f,o,s]);return t?e.jsx("div",{className:"flex h-full flex-col items-center justify-center px-4",children:e.jsx("div",{className:"flex max-w-lg flex-col items-center gap-3",children:e.jsx(ut,{actions:e.jsxs("div",{className:"flex flex-col items-center gap-3",children:[e.jsx(z,{disabled:o||a||!r,onClick:c,children:o?"Adding...":"Add yourself as a member to test"}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Have members already?"," ",e.jsx("a",{className:"font-medium text-foreground hover:underline",href:"#/members/new",children:"Add them manually"})," ","or"," ",e.jsx("button",{className:"font-medium text-foreground hover:underline",type:"button",onClick:()=>u("/members/import"),children:"import from CSV"})]})]}),description:"Use memberships to allow your readers to sign up and subscribe to your content.",title:"Start building your audience",children:e.jsx(dt,{})})})}):e.jsx("div",{className:"flex h-full flex-col items-center justify-center px-4",children:e.jsx(ut,{actions:e.jsx(z,{variant:"outline",asChild:!0,children:e.jsx("a",{href:"#/settings/members",children:"Membership settings"})}),description:"Adjust your membership settings to start adding members.",title:"Memberships have been disabled",children:e.jsx(dt,{})})})},hn=ar.extend({route:ir("members"),filter:nr(Rt(),Rt().nullable()).refine(t=>typeof t.filter=="string"&&t.filter.length>0)}),$t="A view with this name already exists",bn="Saved view could not be found for update",gn="Multiple saved views matched update target",xn="Saved view could not be found for delete",vn="Multiple saved views matched delete target";function yn(t){return hn.safeParse(t).success}function wn(t){const s=gt(t);return s.ok?{ok:!0,views:s.views.filter(yn)}:s}function _n(t,s){return{name:t.trim(),route:"members",filter:{filter:s}}}function Sn(t,s,r,a){const i=_n(s,r);if(a){const o=ds(t,a);if(o.length===0)throw new Error(bn);if(o.length>1)throw new Error(gn);const f=o[0];if(It(t,i,f))throw new Error($t);return t.map((u,c)=>c===f?i:u)}if(It(t,i))throw new Error($t);return[...t,i]}function jn(t,s){const r=ds(t,s);if(r.length===0)throw new Error(xn);if(r.length>1)throw new Error(vn);const a=r[0];return t.filter((i,o)=>o!==a)}const Rs="Cannot modify saved views because shared_views is invalid";function Et(t){return Se(t?.settings??null,"shared_views")??"[]"}function En(){const{data:t}=ze(),s=Ze(),r=Et(t),a=d.useRef(null),i=d.useMemo(()=>wn(r),[r]);return d.useEffect(()=>{i.ok||a.current===r||(a.current=r,s(i.error,{withToast:!1}))},[s,i,r]),i.ok?i.views:[]}function Nn(){const{data:t}=ze(),{mutateAsync:s}=us(),r=Ze();return d.useCallback(async(a,i,o)=>{const f=gt(Et(t));if(!f.ok){const c=new Error(Rs,{cause:f.error});throw r(c,{withToast:!1}),c}const u=Sn(f.views,a,i,o);try{await s([{key:"shared_views",value:JSON.stringify(u)}])}catch(c){throw r(c,{withToast:!1}),c}},[t,s,r])}function Cn(){const{data:t}=ze(),{mutateAsync:s}=us(),r=Ze();return d.useCallback(async a=>{const i=gt(Et(t));if(!i.ok){const f=new Error(Rs,{cause:i.error});throw r(f,{withToast:!1}),f}const o=jn(i.views,a);try{await s([{key:"shared_views",value:JSON.stringify(o)}])}catch(f){throw r(f,{withToast:!1}),f}},[t,s,r])}function kn(t,s){return d.useMemo(()=>!s||t.length===0?null:t.find(r=>r.filter.filter===s)??null,[t,s])}const Ln=({filter:t,existingViews:s,activeView:r,onDeleted:a,onClose:i})=>{const[o,f]=d.useState(()=>r?.name??""),[u,c]=d.useState(""),[m,b]=d.useState(!1),[E,v]=d.useState(!1),[y,N]=d.useState(!1),C=Nn(),h=Cn(),M=!!r,A=async()=>{const j=o.trim();if(!j){c("Please enter a name");return}if(!M&&s.find(w=>w.name.trim().toLowerCase()===j.toLowerCase())){c("A view with this name already exists");return}b(!0);try{await C(j,t,r??void 0),i()}catch(_){c(_ instanceof Error?_.message:"Failed to save view")}finally{b(!1)}},P=async()=>{if(r){v(!0);try{await h(r),i(),a?.()}catch(j){c(j instanceof Error?j.message:"Failed to delete view")}finally{v(!1)}}},D=j=>{j.key==="Enter"&&(j.preventDefault(),A())};return e.jsx(ns,{align:"end",className:"w-72",children:e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsx("h3",{className:"text-sm font-semibold",children:M?"Edit view":"Save view"}),e.jsxs("div",{className:"flex flex-col gap-1.5",children:[e.jsx(ts,{placeholder:"View name",value:o,autoFocus:!0,onChange:j=>{f(j.target.value),u&&c("")},onKeyDown:D}),u&&e.jsx("p",{className:"text-xs text-red-500",children:u})]}),M?y?e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Delete view?"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(z,{size:"sm",variant:"outline",onClick:()=>N(!1),children:"Cancel"}),e.jsx(z,{disabled:E,size:"sm",variant:"destructive",onClick:()=>{P()},children:E?"Deleting...":"Delete"})]})]}):e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(z,{className:"text-red hover:bg-red/5 hover:text-red",size:"sm",variant:"ghost",onClick:()=>N(!0),children:"Delete"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(z,{size:"sm",variant:"outline",onClick:i,children:"Cancel"}),e.jsx(z,{disabled:m||!o.trim(),size:"sm",onClick:()=>{A()},children:m?"Saving...":"Save"})]})]}):e.jsx(z,{className:"w-full",disabled:m||!o.trim(),onClick:()=>{A()},children:m?"Saving...":"Save"})]})})},Mn=({filter:t,existingViews:s,activeView:r,onDeleted:a})=>{const[i,o]=d.useState(!1),f=r?`edit:${r.name}:${r.filter.filter}`:`save:${t}`;return e.jsxs(rs,{open:i,onOpenChange:o,children:[e.jsx(as,{asChild:!0,children:e.jsx(z,{variant:"outline",children:r?"Edit view":"Save view"})}),i&&e.jsx(Ln,{activeView:r,existingViews:s,filter:t,onClose:()=>o(!1),onDeleted:a},f)]})},Rn={"is-any":"is any of","is-not-any":"is none of","does-not-contain":"does not contain",..._r,1:"More like this",0:"Less like this"},ct={"is-greater":"is greater than","is-less":"is less than"};function In(t){switch(t){case"name":return ne.createElement(dr,{className:"size-4"});case"email":case"subscribed":return ne.createElement(sa,{className:"size-4"});case"label":return ne.createElement(cs,{className:"size-4"});case"last_seen_at":return ne.createElement(Zr,{className:"size-4"});case"created_at":return ne.createElement(Xr,{className:"size-4"});case"signup":return ne.createElement(cr,{className:"size-4"});case"tier_id":case"subscriptions.status":return ne.createElement(or,{className:"size-4"});case"status":return ne.createElement(Wr,{className:"size-4"});case"subscriptions.plan_interval":return ne.createElement(Hr,{className:"size-4"});case"subscriptions.start_date":return ne.createElement(Vr,{className:"size-4"});case"subscriptions.current_period_end":return ne.createElement($r,{className:"size-4"});case"conversion":return ne.createElement(zr,{className:"size-4"});case"email_count":case"emails.post_id":return ne.createElement(Br,{className:"size-4"});case"email_opened_count":case"opened_emails.post_id":return ne.createElement(Ur,{className:"size-4"});case"email_open_rate":return ne.createElement(Fr,{className:"size-4"});case"clicked_links.post_id":return ne.createElement(Tr,{className:"size-4"});case"newsletter_feedback":return ne.createElement(lr,{className:"size-4"});case"offer_redemptions":return ne.createElement(Pr,{className:"size-4"});default:return t.startsWith("newsletters.")?ne.createElement(Ar,{className:"size-4"}):void 0}}function se(t,s={},r=Rn){const a=t.startsWith("newsletters.")?Ee["newsletters.:slug"]:Ee[t];return{key:t,...a.ui,icon:In(t),operators:Sr(a.operators,{labels:r}),..."options"in a&&a.options?{options:a.options}:{},...s}}function Ke(t,s){return se(t,{defaultValue:s})}function _e(t,s){return{options:t,valueSource:s}}function On(t){const s=new Map,r=[],a=[];for(const i of t)i.redemption_type==="retention"&&(i.cadence==="month"?r.push(i.id):i.cadence==="year"&&a.push(i.id));return r.length>0&&s.set("retention:month",r),a.length>0&&s.set("retention:year",a),s}function Is(t){return Array.isArray(t.metadata?.offerIds)?t.metadata.offerIds.filter(s=>typeof s=="string"):null}function Os(t){const s=[],r=On(t);for(const a of t)a.redemption_type!=="retention"&&s.push({value:a.id,label:a.name});return r.has("retention:month")&&s.push({value:"retention:month",label:"Monthly Retention",metadata:{offerIds:r.get("retention:month")}}),r.has("retention:year")&&s.push({value:"retention:year",label:"Yearly Retention",metadata:{offerIds:r.get("retention:year")}}),s}function Dn(t,s){const r=[],a=new Set;for(const i of s){const o=Is(i);o&&o.length>0&&o.every(f=>t.includes(f))&&(r.push(String(i.value)),o.forEach(f=>{a.add(f)}))}for(const i of t)a.has(i)||r.push(i);return r}function An(t,s){const r=[];for(const a of t){const i=s.find(f=>f.value===a),o=i?Is(i):null;o?r.push(...o):r.push(a)}return[...new Set(r)]}function Pn(t){return new Map(t.map(s=>[s.id,s.name]))}function Tn(t,s,r){const a=t.map(i=>s.find(o=>o.value===i)).filter(i=>!!i);return a.length===1?a[0].label:a.length>1?`${a.length} selected`:t.length===1?r.get(t[0])??"Select...":t.length>1?`${t.length} selected`:"Select..."}function Fn({labelValueSource:t,tierValueSource:s,newsletters:r=[],hydratedNewsletterSlugs:a=[],hasMultipleTiers:i=!1,paidMembersEnabled:o=!1,emailFiltersEnabled:f=!1,postValueSource:u,emailValueSource:c,offers:m=[],membersTrackSources:b=!1,emailTrackOpens:E=!1,emailTrackClicks:v=!1,siteTimezone:y="UTC",giftSubscriptionsEnabled:N=!1}){return d.useMemo(()=>{const C=[],h=r.filter(n=>n.status!=="archived"),M=new Set(h.map(n=>n.slug)),A=[...new Set(a)].map(n=>{const l=r.find(p=>p.slug===n);return{slug:n,name:l?.name??n}}),P=A.filter(n=>!M.has(n.slug)),D=Os(m),j=Pn(m),_=wr(y),w=[se("name"),se("email")];if(t&&w.push(se("label",{..._e([],t),customRenderer:n=>ne.createElement(Ma,n)})),h.length<=1){w.push(se("subscribed"));for(const n of A)w.push(se(`newsletters.${n.slug}`,{label:n.name}))}if(w.push(Ke("last_seen_at",_),Ke("created_at",_)),b&&w.push(se("signup",_e([],u))),C.push({group:"Basic",fields:w}),h.length>1){const n=[se("subscribed",{label:"All newsletters",options:[{value:"subscribed",label:"Subscribed to at least one"},{value:"unsubscribed",label:"Unsubscribed from all"},{value:"email-disabled",label:"Email disabled"}]})];for(const l of h)n.push(se(`newsletters.${l.slug}`,{label:l.name}));for(const l of P)n.push(se(`newsletters.${l.slug}`,{label:l.name}));C.push({group:"Newsletters",fields:n})}if(o){const n=[];i&&n.push(se("tier_id",_e([],s))),n.push(se("status",N?{options:[...Ee.status.options,{value:"gift",label:"Gift subscription"}]}:{}),se("subscriptions.plan_interval"),se("subscriptions.status"),Ke("subscriptions.start_date",_),Ke("subscriptions.current_period_end",_)),b&&n.push(se("conversion",_e([],u))),m.length>0&&n.push(se("offer_redemptions",{options:D,customValueRenderer:l=>Tn(l,D,j)})),C.push({group:"Subscription",fields:n})}if(f){const n=[se("email_count",{},ct),se("email_opened_count",{},ct)];E&&n.push(se("email_open_rate",{},ct)),n.push(se("emails.post_id",_e([],c))),E&&n.push(se("opened_emails.post_id",_e([],c))),v&&n.push(se("clicked_links.post_id",_e([],c))),n.push(se("newsletter_feedback",_e([],c))),C.push({group:"Email",fields:n})}return C},[f,c,v,E,N,i,t,b,r,m,a,o,u,y,s])}const Vt="(status:published,status:sent)+newsletter_id:-null";function Un(t){return t?`${Vt}+title:~${wt(t)}`:Vt}function Bn(t){return{value:t.id,label:t.title}}const zn=hs({id:"posts.email.remote",buildBrowseSearchParams:t=>({filter:Un(t),limit:"25",fields:"id,title",order:"published_at DESC"}),buildHydrateSearchParams:t=>({fields:"id,title",filter:t}),selectItems:t=>t?.posts,useQuery:({enabled:t,searchParams:s})=>aa({enabled:t,keepPreviousData:!0,searchParams:s}),toOption:Bn});function $n(){return zn()}const Ht=()=>{};function Vn(t){return function(r={}){const{enabled:a=!0}=r,i=({query:o})=>{const f=t.useItems({enabled:a}),u=(f.data||[]).map(t.toOption),c=t.filterOptions?t.filterOptions(u,o):bs(u,o);return a?{options:c,isInitialLoad:f.isLoading&&u.length===0,isSearching:!1,isLoadingMore:!1,hasMore:!1,loadMore:Ht}:{options:[],isInitialLoad:!1,isSearching:!1,isLoadingMore:!1,hasMore:!1,loadMore:Ht}};return{id:t.id,useOptions:i}}}function Hn(t=[]){return Vn({id:"posts.tiers.local",useItems:()=>({data:t,isLoading:!1}),toOption:r=>r})()}const Wn=[];function Wt(t,s){return t.map(r=>r.field!=="offer_redemptions"?r:{...r,values:s(r.values)})}const Gt=({filters:t,nql:s,onFiltersChange:r,savedViews:a=[],activeView:i,iconOnly:o=!1})=>{const{data:f}=ra({searchParams:{limit:"100"}}),{data:u}=Ir({}),{data:c}=ys({searchParams:{limit:"100"}}),{data:m}=ze({}),{data:b}=bt(),E=m?.settings||[],v=Se(E,"paid_members_enabled")===!0,y=Se(E,"editor_default_email_recipients")!=="disabled",N=Se(E,"members_track_sources")===!0,C=Se(E,"email_track_opens")===!0,h=Se(E,"email_track_clicks")===!0,M=ws(E),A=b?.config?.labs?.giftSubscriptions===!0,P=f?.tiers||[],D=c?.newsletters||[],j=d.useMemo(()=>u?.offers??Wn,[u?.offers]),_=P.filter(L=>L.type==="paid"&&L.active),w=_.length>1,n=d.useMemo(()=>Os(j),[j]),l=d.useMemo(()=>[...new Set(t.map(L=>L.field).filter(L=>L.startsWith("newsletters.")).map(L=>L.slice(12)).filter(Boolean))],[t]),p=d.useMemo(()=>Wt(t,L=>Dn(L,n)),[t,n]),g=d.useCallback(L=>{r(Wt(L,F=>An(F,n)))},[r,n]),x=jr(),I=$n(),V=js(),ee=Hn(_.map(L=>({value:L.id,label:L.name,detail:L.slug}))),J=Fn({newsletters:D,hydratedNewsletterSlugs:l,hasMultipleTiers:w,paidMembersEnabled:v,emailFiltersEnabled:y,labelValueSource:V,tierValueSource:ee,offers:j,postValueSource:x,emailValueSource:I,membersTrackSources:N,emailTrackOpens:C,emailTrackClicks:h,siteTimezone:M,giftSubscriptionsEnabled:A}),S=t.length>0,R=ae("border-input bg-white dark:bg-background",o&&!S&&"min-w-[34px] gap-0 px-2 text-[0px] lg:min-w-0 lg:gap-1.5 lg:px-3 lg:text-sm !px-3"),Y=S?e.jsxs("div",{className:"flex shrink-0 items-center gap-4 sm:absolute sm:top-0 sm:right-0",children:[e.jsxs(z,{className:"hidden items-center gap-1 !px-0 text-sm font-normal text-muted-foreground hover:bg-transparent hover:text-foreground lg:inline-flex",type:"button",variant:"ghost",onClick:()=>r([]),children:[e.jsx(pt,{className:"size-4"}),"Clear"]}),s&&e.jsx(Mn,{activeView:i,existingViews:a,filter:s,onDeleted:()=>r([])})]}):void 0;return e.jsx(br,{addButtonClassName:R,addButtonIcon:S?e.jsx(ea,{}):e.jsx(ta,{}),addButtonText:S?"Add filter":"Filter",allowMultiple:!0,className:`[&>button]:order-last ${S?"sm:!pr-40 [&>button]:border-none":"w-auto"}`,clearButton:Y,fields:J,filters:p,keyboardShortcut:"f",popoverAlign:"start",popoverContentClassName:"z-[80] w-[280px] [&_[data-slot=command-list]]:max-h-[450px]",showClearButton:S,showSearchInput:!0,onChange:g})},Ds=({children:t,totalMembers:s,isLoading:r})=>e.jsxs(Me,{blurredBackground:!1,className:"relative",sticky:!1,children:[e.jsx(Me.Left,{children:e.jsxs(Me.Title,{children:["Members"," ",!r&&e.jsx(Me.Count,{className:"hidden sm:inline",children:s.toLocaleString()})]})}),t]}),Kt=({search:t,onSearchChange:s,autoFocus:r=!1,ariaLabel:a="Search members"})=>{const i=a==="Search members mobile"?"members-mobile-search-input":"members-search-input";return e.jsxs(ca,{className:"h-[34px] min-w-0 basis-full lg:w-[180px] lg:basis-auto xl:w-[240px]",children:[e.jsx(ua,{children:e.jsx(ms,{className:"size-4",strokeWidth:1.75})}),e.jsx(ma,{"aria-label":a,autoFocus:r,className:"!h-[34px]","data-testid":i,placeholder:"Search members...",value:t,onChange:o=>s(o.target.value)})]})},Gn=""+new URL("members-1-D83QUU3l.jpg",import.meta.url).href,Kn=""+new URL("members-2-S_btKMmm.jpg",import.meta.url).href,Yn=()=>e.jsxs("div",{className:"mx-auto grid w-full max-w-lg grid-cols-1 gap-4 sm:grid-cols-2",children:[e.jsxs("a",{className:"group flex flex-col overflow-hidden rounded-xl border bg-card transition-all hover:shadow-sm",href:"https://ghost.org/resources/build-audience-subscriber-signups/",rel:"noopener noreferrer",target:"_blank",children:[e.jsx("div",{className:"h-36 w-full bg-cover bg-center",style:{backgroundImage:`url(${Gn})`}}),e.jsxs("div",{className:"flex grow flex-col p-5",children:[e.jsx("h4",{className:"text-sm font-semibold",children:"Building your audience with subscriber signups"}),e.jsx("p",{className:"mt-1.5 text-sm leading-relaxed text-muted-foreground",children:"Learn how to turn anonymous visitors into logged-in members with memberships in Ghost."}),e.jsxs("span",{className:"mt-3 inline-flex items-center gap-1 text-sm font-medium text-foreground",children:["Start building",e.jsx(Pt,{className:"size-3.5 transition-transform group-hover:translate-x-0.5"})]})]})]}),e.jsxs("a",{className:"group flex flex-col overflow-hidden rounded-xl border bg-card transition-all hover:shadow-sm",href:"https://ghost.org/resources/first-100-email-subscribers/",rel:"noopener noreferrer",target:"_blank",children:[e.jsx("div",{className:"h-36 w-full bg-cover bg-center",style:{backgroundImage:`url(${Kn})`}}),e.jsxs("div",{className:"flex grow flex-col p-5",children:[e.jsx("h4",{className:"text-sm font-semibold",children:"Get your first 100 email subscribers"}),e.jsx("p",{className:"mt-1.5 text-sm leading-relaxed text-muted-foreground",children:"Starting from zero? Use this guide to find your founding audience members."}),e.jsxs("span",{className:"mt-3 inline-flex items-center gap-1 text-sm font-medium text-foreground",children:["Become an expert",e.jsx(Pt,{className:"size-3.5 transition-transform group-hover:translate-x-0.5"})]})]})]})]}),As=({children:t})=>e.jsx(na,{children:e.jsx("div",{className:"grid w-full min-w-0 grow",children:e.jsx("div",{className:"flex h-full min-w-0 flex-col","data-testid":"members-page",children:t})})});function Nt(t,s){const r=new URLSearchParams;s&&r.set("back",s);const a=r.toString();return`/members/${t}${a?`?${a}`:""}`}const Yt={left:"100%"};function qn(t){if(!t)return{text:"Unknown",isKnown:!1};try{const s=JSON.parse(t);return s.country?s.country_code==="US"&&s.region?{text:`${s.region}, US`,isKnown:!0}:{text:s.country,isKnown:!0}:{text:"Unknown",isKnown:!1}}catch{return{text:"Unknown",isKnown:!1}}}function Qn(t){switch(t){case"paid":return"Paid";case"comped":return"Complimentary";case"gift":return"Gift";default:return"Free"}}function Ps(t){return t.button!==0||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey}function qt(t,s){window.open(`#${Nt(t,s)}`,"_blank","noopener")}function Jn({item:t,backPath:s,onClick:r}){return e.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[e.jsx(ur,{className:"size-10 min-w-10",email:t.email,name:t.name,src:t.avatar_image}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("a",{className:"block min-w-0 cursor-pointer",href:`#${Nt(t.id,s)}`,onClick:r?a=>{if(Ps(a)){a.stopPropagation();return}a.preventDefault(),a.stopPropagation(),r(t.id)}:void 0,children:e.jsx("span",{className:"block truncate font-medium",children:t.name||t.email||"Anonymous"})}),t.name&&t.email&&e.jsx("div",{className:"truncate text-sm text-muted-foreground","data-testid":"member-email",children:t.email})]})]})}function Xn({status:t,tiers:s}){const r=s?.map(a=>a.name).join(", ");return e.jsx("div",{className:"flex min-w-0 justify-start",children:e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"truncate text-sm",children:Qn(t)}),r&&e.jsx("div",{className:"truncate text-xs text-muted-foreground",children:r})]})})}function Zn({emailOpenRate:t}){const s=t!=null;return e.jsx("div",{className:ae("text-sm",s?"text-foreground":"text-muted-foreground"),children:s?`${Math.round(t)}%`:"N/A"})}function ei({geolocation:t}){const s=qn(t);return e.jsx("div",{className:ae("truncate text-sm",s.isKnown?"text-foreground":"text-muted-foreground"),children:s.text})}function ti({createdAt:t}){return e.jsxs("div",{children:[e.jsx("div",{className:"text-sm",children:Pe.utc(t).format("D MMM YYYY")}),e.jsx("div",{className:"text-xs text-muted-foreground",children:Pe.utc(t).fromNow()})]})}function si({column:t,member:s,timezone:r}){const a=mn(t,s,r);return a?e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"truncate text-sm",children:a.text}),a.subtext&&e.jsx("div",{className:"truncate text-xs text-muted-foreground",children:a.subtext})]}):e.jsx("span",{className:"text-sm text-muted-foreground",children:"-"})}function ri({item:t,activeColumns:s,backPath:r,columnStyles:a,showPinnedEdge:i,showEmailOpenRate:o,timezone:f,onClick:u,...c}){const m={"--members-sticky-hover-bg":"color-mix(in hsl, var(--muted) 50%, var(--background))"},b=v=>{if(Ps(v)){qt(t.id,r);return}u(t.id)},E=v=>{v.button===1&&(v.preventDefault(),qt(t.id,r))};return e.jsxs(je,{...c,className:ae("group cursor-pointer",c.className),"data-testid":"members-list-item",onAuxClick:E,onClick:b,children:[e.jsxs(me,{className:ae("min-w-0 bg-background px-4 py-3 group-hover:bg-[var(--members-sticky-hover-bg)] max-sm:!w-full max-sm:!min-w-0 lg:sticky lg:left-0 lg:z-20"),style:m,children:[e.jsx(Jn,{backPath:r,item:t,onClick:u}),i&&e.jsxs(e.Fragment,{children:[e.jsx("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-y-px hidden w-[24px] group-hover:opacity-0 lg:block",style:{...Yt,background:"linear-gradient(to right, var(--background) 0px, color-mix(in hsl, var(--background) 78%, transparent) 6px, color-mix(in hsl, var(--background) 28%, transparent) 16px, transparent 24px)"}}),e.jsx("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-y-px hidden w-[24px] opacity-0 group-hover:opacity-100 lg:block",style:{...Yt,background:"linear-gradient(to right, var(--members-sticky-hover-bg) 0px, color-mix(in hsl, var(--members-sticky-hover-bg) 78%, transparent) 6px, color-mix(in hsl, var(--members-sticky-hover-bg) 28%, transparent) 16px, transparent 24px)"}})]})]}),e.jsx(me,{className:"hidden px-4 py-3 sm:table-cell",style:a.status,children:e.jsx(Xn,{status:t.status,tiers:t.tiers})}),o&&e.jsx(me,{className:"hidden px-4 py-3 lg:table-cell",style:a.openRate,children:e.jsx(Zn,{emailOpenRate:t.email_open_rate})}),e.jsx(me,{className:"hidden px-4 py-3 lg:table-cell",style:a.location,children:e.jsx(ei,{geolocation:t.geolocation})}),e.jsx(me,{className:"hidden px-4 py-3 lg:table-cell",style:a.created,children:e.jsx(ti,{createdAt:t.created_at})}),s.map(v=>e.jsx(me,{className:"hidden px-4 py-3 lg:table-cell",style:a.dynamic,children:e.jsx(si,{column:v,member:t,timezone:f})},v.key))]})}const ai={left:"100%",background:"linear-gradient(to right, var(--members-sticky-fade-base) 0px, color-mix(in hsl, var(--members-sticky-fade-base) 78%, transparent) 6px, color-mix(in hsl, var(--members-sticky-fade-base) 28%, transparent) 16px, transparent 24px)"},Qt=({activeColumns:t,columnStyles:s,showEmailOpenRate:r})=>e.jsxs("colgroup",{children:[e.jsx("col",{className:"max-sm:!w-full max-sm:!min-w-0 sm:max-lg:!w-auto sm:max-lg:!min-w-0",style:s.member}),e.jsx("col",{className:"hidden sm:table-column",style:s.status}),r&&e.jsx("col",{className:"hidden lg:table-column",style:s.openRate}),e.jsx("col",{className:"hidden lg:table-column",style:s.location}),e.jsx("col",{className:"hidden lg:table-column",style:s.created}),t.map(a=>e.jsx("col",{className:"hidden lg:table-column",style:s.dynamic},a.key))]}),Jt=({activeColumns:t,className:s,columnStyles:r,headerRef:a,memberHeaderRef:i,showEmailOpenRate:o})=>e.jsx(_t,{ref:a,className:ae("hidden bg-transparent lg:table-header-group [&_th]:whitespace-nowrap",s),children:e.jsxs(je,{children:[e.jsx(be,{ref:i,className:"sticky left-0 z-[70] bg-transparent px-4 py-3 [--members-sticky-fade-base:var(--background)]",style:r.member,children:"Member"}),e.jsx(be,{className:"bg-transparent px-4 py-3",style:r.status,children:"Status"}),o&&e.jsx(be,{className:"bg-transparent px-4 py-3",style:r.openRate,children:"Open rate"}),e.jsx(be,{className:"bg-transparent px-4 py-3",style:r.location,children:"Location"}),e.jsx(be,{className:"bg-transparent px-4 py-3",style:r.created,children:"Created"}),t.map(f=>e.jsx(be,{className:"bg-transparent px-4 py-3",style:r.dynamic,children:f.label},f.key))]})}),ni=({columnStyle:t,showPinnedEdge:s})=>e.jsxs("div",{className:"pointer-events-none absolute inset-y-0 left-0 z-[70] overflow-visible bg-transparent [--members-sticky-fade-base:var(--background)]",style:t,children:[e.jsxs(Xe,{className:"w-full table-fixed border-collapse",children:[e.jsx("colgroup",{children:e.jsx("col",{style:{width:"100%"}})}),e.jsx(_t,{className:"bg-transparent lg:table-header-group [&_th]:whitespace-nowrap",children:e.jsx(je,{children:e.jsx(be,{className:"bg-transparent px-4 py-3",children:"Member"})})})]}),s&&e.jsx("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-y-px w-[24px]",style:ai})]}),De={member:40,status:15,openRate:10,location:17.5,created:17.5},Le={member:320,status:180,openRate:140,location:180,created:160},Xt=17.5,Zt=220;function ii(t){return Number.isFinite(t)?Math.max(0,Math.floor(t)):0}function li({showEmailOpenRate:t,activeColumnCount:s}){const r=[{key:"member",width:De.member},{key:"status",width:De.status},...t?[{key:"openRate",width:De.openRate}]:[],{key:"location",width:De.location},{key:"created",width:De.created}],a=ii(s),i=r.reduce((m,b)=>m+b.width,0),o=100+a*Xt,f=Xt/o*100,u=r.reduce((m,b)=>{const E=b.width/i*100;return m[b.key]=E/o*100,m},{member:0,status:0,openRate:0,location:0,created:0}),c=r.reduce((m,b)=>m+Le[b.key],0)+a*Zt;return{tableWidthPercentage:o,minTableWidth:c,dynamicColumnWidthPercentage:f,baseColumnWidthPercentages:u,baseColumnMinWidths:{member:Le.member,status:Le.status,openRate:Le.openRate,location:Le.location,created:Le.created},dynamicColumnMinWidth:Zt}}function oi(t){const s=(r,a)=>({width:`${r}%`,minWidth:`${a}px`});return{tableStyle:{"--members-table-width":`${t.tableWidthPercentage}%`,"--members-table-min-width":`${t.minTableWidth}px`},columnStyles:{member:s(t.baseColumnWidthPercentages.member,t.baseColumnMinWidths.member),status:s(t.baseColumnWidthPercentages.status,t.baseColumnMinWidths.status),openRate:s(t.baseColumnWidthPercentages.openRate,t.baseColumnMinWidths.openRate),location:s(t.baseColumnWidthPercentages.location,t.baseColumnMinWidths.location),created:s(t.baseColumnWidthPercentages.created,t.baseColumnMinWidths.created),dynamic:s(t.dynamicColumnWidthPercentage,t.dynamicColumnMinWidth)}}}const es=({height:t})=>e.jsx("tr",{"aria-hidden":"true",style:{height:t},children:e.jsx("td",{colSpan:999})}),ci=d.forwardRef(function(s,r){return e.jsx(je,{ref:r,...s,"aria-hidden":"true",children:e.jsx(me,{className:"h-[72px] px-4 py-3",colSpan:999,children:e.jsx("div",{className:"h-full animate-pulse rounded-md bg-muted","data-testid":"loading-placeholder"})})})});function di({items:t,totalItems:s,backPath:r,hasNextPage:a,isFetchingNextPage:i,fetchNextPage:o,isLoading:f,showEmailOpenRate:u=!0,activeColumns:c,timezone:m,pageHeaderRef:b,onRowClick:E}){const v=d.useRef(null),y=d.useRef(null),N=d.useRef(null),C=d.useRef(null),h=d.useRef(null),[M,A]=d.useState(0),[P,D]=d.useState(0),[j,_]=d.useState(!1),{visibleItemCount:w,canLoadMore:n,loadMore:l}=ia(s),p=d.useMemo(()=>li({showEmailOpenRate:u,activeColumnCount:c.length}),[c.length,u]),{tableStyle:g,columnStyles:x}=d.useMemo(()=>oi(p),[p]);Er({parentRef:v,isLoading:f}),d.useEffect(()=>{const S=h.current;if(!S)return;const $=()=>{const R=S.scrollLeft;_(R>0),C.current&&(C.current.scrollLeft=R)};return $(),S.addEventListener("scroll",$,{passive:!0}),window.addEventListener("resize",$),()=>{S.removeEventListener("scroll",$),window.removeEventListener("resize",$)}},[c.length,t.length,u]),d.useEffect(()=>{const S=b?.current,$=y.current,R=N.current;if(!S||!$||!R){A(0),D(0);return}const Y=S.style.paddingBottom,L=S.style.marginBottom,F=parseFloat(getComputedStyle(S).paddingBottom)||0,O=parseFloat(getComputedStyle(S).marginBottom)||0,B=()=>{Y?S.style.setProperty("padding-bottom",Y):S.style.removeProperty("padding-bottom"),L?S.style.setProperty("margin-bottom",L):S.style.removeProperty("margin-bottom")},k=()=>{if(!window.matchMedia("(min-width: 1024px)").matches){B(),A(0),D(0);return}const T=$.getBoundingClientRect().height,W=R.getBoundingClientRect().width;S.style.setProperty("padding-bottom",`${F+T}px`,"important"),S.style.setProperty("margin-bottom",`${O-T}px`,"important");const Z=S.getBoundingClientRect().height;A(W),D(Math.max(Z-T,0))};k();const H=new ResizeObserver(()=>{k()});return H.observe(S),H.observe($),H.observe(R),window.addEventListener("resize",k),()=>{B(),H.disconnect(),window.removeEventListener("resize",k)}},[c.length,b,u]);const{visibleItems:I,spaceBefore:V,spaceAfter:ee}=la({items:t,totalItems:w,hasNextPage:a,isFetchingNextPage:i,fetchNextPage:o,parentRef:v,estimateSize:()=>72}),J=S=>{E?E(S):window.location.hash=Nt(S,r)};return e.jsxs("div",{ref:v,className:"-mt-4 w-full min-w-0 lg:-mt-8","data-testid":"members-list-scroll-root",children:[e.jsx("div",{className:"sticky z-[50] hidden overflow-visible bg-transparent lg:block",style:{top:P},children:e.jsxs("div",{className:"relative",children:[e.jsx(ni,{columnStyle:M>0?{width:M}:x.member,showPinnedEdge:j}),e.jsx("div",{ref:C,className:"w-full overflow-hidden",style:M>0?{clipPath:`inset(0 0 0 ${M}px)`}:void 0,children:e.jsxs(Xe,{"aria-hidden":"true",className:"w-full border-collapse lg:w-[var(--members-table-width)] lg:min-w-[var(--members-table-min-width)] lg:table-fixed",style:g,children:[e.jsx(Qt,{activeColumns:c,columnStyles:x,showEmailOpenRate:u}),e.jsx(Jt,{activeColumns:c,columnStyles:x,headerRef:y,memberHeaderRef:N,showEmailOpenRate:u})]})})]})}),e.jsx("div",{ref:h,className:"w-full overflow-x-auto overflow-y-visible",children:e.jsxs(Xe,{className:"w-full border-collapse max-sm:table-fixed sm:max-lg:table-auto lg:w-[var(--members-table-width)] lg:min-w-[var(--members-table-min-width)] lg:table-fixed","data-testid":"members-list",style:g,children:[e.jsx(Qt,{activeColumns:c,columnStyles:x,showEmailOpenRate:u}),e.jsx(Jt,{activeColumns:c,className:"lg:h-0 lg:overflow-hidden lg:[&_th]:pointer-events-none lg:[&_th]:h-0 lg:[&_th]:border-0 lg:[&_th]:p-0 lg:[&_th]:text-[0px] lg:[&_th]:leading-none lg:[&_th]:opacity-0 lg:[&_tr]:h-0 lg:[&_tr]:border-0",columnStyles:x,showEmailOpenRate:u}),e.jsxs(vs,{children:[e.jsx(es,{height:V}),I.map(({key:S,virtualItem:$,item:R,props:Y})=>$.index>t.length-1?e.jsx(ci,{...Y},S):e.jsx(ri,{...Y,activeColumns:c,backPath:r,columnStyles:x,item:R,showEmailOpenRate:u,showPinnedEdge:j,timezone:m,onClick:J},S)),e.jsx(es,{height:ee})]})]})}),n&&e.jsx(oa,{isLoading:i,onClick:l})]})}const ui=["subscriptions.plan_interval","subscriptions.status","subscriptions.start_date","subscriptions.current_period_end","conversion","offer_redemptions"];function mi(t,s){return s&&t.length===0?!1:!t.some(r=>ui.includes(r.field))}function pi({isFetching:t,isFetchingNextPage:s}){return t&&!s}const fi=Cr(Ee,"date");function st(t){return Array.isArray(t.$and)?{operator:"$and",children:t.$and}:Array.isArray(t.$or)?{operator:"$or",children:t.$or}:null}function hi(t){if(typeof t.subscribed=="boolean")return{field:"subscribed",operator:"is",values:[t.subscribed?"subscribed":"unsubscribed"]};if(typeof t.email_disabled=="number"){if(t.email_disabled===1)return{field:"subscribed",operator:"is",values:["email-disabled"]};if(t.email_disabled===0)return{field:"subscribed",operator:"is-not",values:["email-disabled"]}}const s=st(t);if(!s||s.children.length!==2)return null;let r,a;for(const i of s.children)typeof i.subscribed=="boolean"&&(r=i.subscribed),typeof i.email_disabled=="number"&&(a=i.email_disabled);return s.operator==="$and"&&a===0&&r!==void 0?{field:"subscribed",operator:"is",values:[r?"subscribed":"unsubscribed"]}:s.operator==="$or"&&a===1&&r!==void 0?{field:"subscribed",operator:"is-not",values:[r?"unsubscribed":"subscribed"]}:null}function bi(t){const s=st(t);if(!s||s.children.length!==2)return null;let r,a;for(const i of s.children){const o=i["newsletters.slug"];typeof o=="string"&&(r=o),o&&typeof o=="object"&&!Array.isArray(o)&&typeof o.$ne=="string"&&(r=o.$ne),typeof i.email_disabled=="number"&&(a=i.email_disabled)}return r?s.operator==="$and"&&a===0?{field:`newsletters.${r}`,operator:"is",values:["subscribed"]}:s.operator==="$or"&&a===1?{field:`newsletters.${r}`,operator:"is",values:["unsubscribed"]}:null:null}function gi(t){const s=st(t);if(!s||s.operator!=="$and"||s.children.length!==2)return null;let r,a;for(const i of s.children)typeof i["feedback.post_id"]=="string"&&(r=i["feedback.post_id"]),typeof i["feedback.score"]=="number"&&(a=i["feedback.score"]);return!r||a!==0&&a!==1?null:{field:"newsletter_feedback",operator:String(a),values:[r]}}const xi=[hi,bi,gi];function Ts(t,s){for(const a of xi){const i=a(t);if(i)return[i]}const r=st(t);return r?.operator==="$and"?r.children.flatMap(a=>Ts(a,s)):Mr([t],Ee,s)}function vi(t,s){const r=gs(t??"");return r?kr(Ts(r,s)):[]}function yi(t){const s=gs(t??"");return s?Nr(s,fi):!1}function Fs(t,s){return Lr(t,Ee,s)}function wi(t,s,r=!s){return!!t&&r&&!s&&yi(t)}function Ae({baseSearchParams:t,filters:s,search:r,timezone:a}){const i=new URLSearchParams(t),o=Fs(s,a);return i.delete("filter"),i.delete("search"),o&&i.set("filter",o),r&&i.set("search",r),i}function _i(t){const[s,r]=ps(),a=d.useRef(null),i=d.useMemo(()=>s.get("filter")??void 0,[s]),o=d.useMemo(()=>s.toString(),[s]),f=d.useMemo(()=>vi(i,t),[i,t]),[u,c]=d.useState(f),m=d.useMemo(()=>s.get("search")??"",[s]),b=d.useMemo(()=>Fs(u,t),[u,t]);d.useEffect(()=>{o!==a.current&&(c(f),a.current=o)},[o,f]),d.useEffect(()=>{if(a.current!==null&&o!==a.current)return;const C=Ae({baseSearchParams:s,filters:u,search:m,timezone:t}),h=C.toString();h!==o&&(a.current=h,r(C,{replace:!0}))},[o,u,m,s,r,t]);const E=d.useCallback((C,h={})=>{const M=h.replace??!0,A=Ae({baseSearchParams:s,filters:C,search:m,timezone:t});c(C),a.current=A.toString(),r(A,{replace:M})},[m,s,r,t]),v=d.useCallback((C,h={})=>{const M=h.replace??!0,A=Ae({baseSearchParams:s,filters:u,search:C,timezone:t});a.current=A.toString(),r(A,{replace:M})},[u,s,r,t]),y=d.useCallback(({replace:C=!0}={})=>{const h=Ae({baseSearchParams:s,filters:[],search:m,timezone:t});c([]),a.current=h.toString(),r(h,{replace:C})},[m,s,r,t]),N=d.useCallback(({replace:C=!0}={})=>{const h=Ae({baseSearchParams:s,filters:[],search:"",timezone:t});c([]),a.current=h.toString(),r(h,{replace:C})},[s,r,t]);return{filters:u,nql:b,search:m,setFilters:E,setSearch:v,clearFilters:y,clearAll:N,hasFilterOrSearch:!!b||m.length>0}}const Si=250,ji=6,Ei=({timezone:t,membershipsEnabled:s})=>{const r=d.useRef(null),{filters:a,nql:i,search:o,setFilters:f,setSearch:u,hasFilterOrSearch:c,clearAll:m}=_i(t),b=ls(),{data:E}=bt(),v=En(),y=kn(v,i),[N,C]=d.useState(!1),[h,M]=d.useState(!1),[A,P]=d.useState(o),[D]=mr(A,Si),j=E?.config?.emailAnalytics===!0,_=d.useMemo(()=>Ls(a),[a]),w=d.useMemo(()=>mi(a,i),[a,i]),n=d.useMemo(()=>dn({filters:a,nql:i,search:o}),[a,i,o]),{data:l,isError:p,isFetching:g,isFetchingNextPage:x,refetch:I,fetchNextPage:V,hasNextPage:ee}=pr({searchParams:n,keepPreviousData:!0}),J=pi({isFetching:g,isFetchingNextPage:x}),S=l?.meta?.pagination?.total??0,$=a.length>0,R=N,Y=$,L=!c&&!J&&!p&&S<ji;d.useEffect(()=>{P(o)},[o]),d.useEffect(()=>{D!==o&&u(D)},[D,o,u]);const F=()=>{if(N){C(!1),M(!1);return}M(!0),C(!0)};return e.jsxs(As,{children:[e.jsxs("div",{ref:r,className:"sticky top-0 z-50 flex flex-col gap-4 bg-gradient-to-b from-background via-background/70 to-background/70 py-4 backdrop-blur-md sidebar:gap-6 sidebar:py-6 dark:bg-black",children:[e.jsx(Ds,{isLoading:J,totalMembers:S,children:e.jsx(Me.Actions,{children:e.jsxs(Me.ActionGroup,{className:"ml-auto flex-wrap justify-end sm:ml-0 sm:flex-nowrap",children:[e.jsx("div",{className:"hidden lg:flex",children:e.jsx(Kt,{search:A,onSearchChange:P})}),e.jsx(z,{"aria-label":N?"Hide member search":"Show member search",className:ae("lg:hidden",N&&"bg-secondary hover:bg-secondary"),variant:"outline",onClick:F,children:e.jsx(ms,{className:"size-4"})}),!$&&e.jsx(Gt,{activeView:y,filters:a,iconOnly:!0,nql:i,savedViews:v,onFiltersChange:f}),e.jsx(pn,{canBulkDelete:w,hasFilterOrSearch:c,memberCount:S,nql:i,search:o,onImportComplete:()=>{I()}})]})})}),(Y||R)&&e.jsxs("div",{className:ae("flex flex-col gap-4 px-4 lg:flex-row lg:items-center sidebar:gap-6 lg:px-8 lg:gap-6",!Y&&"lg:hidden"),children:[R&&e.jsx("div",{className:"lg:hidden",children:e.jsx(Kt,{ariaLabel:"Search members mobile",autoFocus:h,search:A,onSearchChange:P})}),Y&&e.jsx(Gt,{activeView:y,filters:a,nql:i,savedViews:v,onFiltersChange:f})]})]}),e.jsxs(Ms,{children:[J?e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsx(Qe,{size:"lg"})}):p?e.jsxs("div",{className:"mb-16 flex h-full flex-col items-center justify-center",children:[e.jsx("h2",{className:"mb-2 text-xl font-medium",children:"Error loading members"}),e.jsx("p",{className:"mb-4 text-muted-foreground",children:"Please reload the page to try again"}),e.jsx(z,{onClick:()=>window.location.reload(),children:"Reload page"})]}):l?.members.length?e.jsx(di,{activeColumns:_,backPath:`${b.pathname}${b.search}`,fetchNextPage:V,hasNextPage:ee,isFetchingNextPage:x,isLoading:g&&!x,items:l.members,pageHeaderRef:r,showEmailOpenRate:j,timezone:t,totalItems:S}):c?e.jsx("div",{className:"flex h-full flex-col items-center justify-center",children:e.jsx(ut,{actions:e.jsx(z,{variant:"outline",onClick:()=>m({replace:!1}),children:"Show all members"}),title:"No matching members found.",children:e.jsx(dt,{})})}):e.jsx(fn,{membershipsEnabled:s,onMemberCreated:async()=>{await I()}}),L&&e.jsx(Yn,{})]})]})},Zi=()=>{const[t]=ps(),{data:s,isLoading:r}=ze({}),a=t.get("filter")??void 0,i=!!s?.settings,o=wi(a,i,r);if(r||!s?.settings||o)return e.jsxs(As,{children:[e.jsx("div",{className:"sticky top-0 z-50 bg-gradient-to-b from-background via-background/70 to-background/70 backdrop-blur-md dark:bg-black",children:e.jsx(Ds,{isLoading:!0,totalMembers:0})}),e.jsx(Ms,{children:e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsx(Qe,{size:"lg"})})})]});const f=ws(s.settings),c=Se(s.settings,"members_signup_access")!=="none";return e.jsx(Ei,{membershipsEnabled:c,timezone:f})};export{Zi as default};